From 1a8313e4f6a9404a9e2788076353d9f4a6dd7478 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Mon, 21 Mar 2022 12:53:40 +0100
Subject: [PATCH 01/39] WIP
---
docs/requirements.txt | 2 +-
requirements.txt | 4 ++--
setup.py | 1 +
soil/environment.py | 25 ++++++++++++++++++-------
soil/exporters.py | 6 +++---
soil/simulation.py | 17 ++++++++++++-----
soil/stats.py | 2 +-
soil/utils.py | 18 ++++++++++--------
test-requirements.txt | 2 +-
tests/test_analysis.py | 1 +
tests/test_exporters.py | 3 ++-
tests/test_main.py | 33 +++++++++++++++++++++++++++++----
12 files changed, 81 insertions(+), 33 deletions(-)
diff --git a/docs/requirements.txt b/docs/requirements.txt
index 28a6674..654cff4 100644
--- a/docs/requirements.txt
+++ b/docs/requirements.txt
@@ -1 +1 @@
-ipython==7.31.1
+ipython>=7.31.1
diff --git a/requirements.txt b/requirements.txt
index 5a1d973..9d28021 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,5 +5,5 @@ pyyaml>=5.1
pandas>=0.23
SALib>=1.3
Jinja2
-Mesa>=0.8
-tsih>=0.1.5
+Mesa>=0.8.9
+tsih>=0.1.6
diff --git a/setup.py b/setup.py
index 7748e28..151ae7e 100644
--- a/setup.py
+++ b/setup.py
@@ -49,6 +49,7 @@ setup(
extras_require=extras_require,
tests_require=test_reqs,
setup_requires=['pytest-runner', ],
+ pytest_plugins = ['pytest_profiling'],
include_package_data=True,
entry_points={
'console_scripts':
diff --git a/soil/environment.py b/soil/environment.py
index 45453fc..47e0997 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -13,7 +13,7 @@ from networkx.readwrite import json_graph
import networkx as nx
-from tsih import History, Record, Key, NoHistory
+from tsih import History, NoHistory, Record, Key
from mesa import Model
@@ -33,7 +33,7 @@ class Environment(Model):
params, which are used as shared state between agents.
The environment parameters and the state of every agent can be accessed
- both by using the environment as a dictionary or with the environment's
+ both by using the environment as a dictionary or with the environment's
:meth:`soil.environment.Environment.get` method.
"""
@@ -49,7 +49,7 @@ class Environment(Model):
schedule=None,
initial_time=0,
environment_params=None,
- history=True,
+ history=False,
dir_path=None,
**kwargs):
@@ -82,10 +82,12 @@ class Environment(Model):
self._env_agents = {}
self.interval = interval
+
if history:
history = History
else:
history = NoHistory
+
self._history = history(name=self.name,
backup=True)
self['SEED'] = seed
@@ -298,6 +300,9 @@ class Environment(Model):
else:
raise ValueError('Unknown format: {}'.format(f))
+ def df(self):
+ return self._history[None, None, None].df()
+
def dump_sqlite(self, f):
return self._history.dump(f)
@@ -316,8 +321,14 @@ class Environment(Model):
key=k,
value=v)
- def history_to_tuples(self):
- return self._history.to_tuples()
+ def history_to_tuples(self, agent_id=None):
+ if isinstance(self._history, NoHistory):
+ tuples = self.state_to_tuples()
+ else:
+ tuples = self._history.to_tuples()
+ if agent_id is None:
+ return tuples
+ return filter(lambda x: str(x[0]) == str(agent_id), tuples)
def history_to_graph(self):
G = nx.Graph(self.G)
@@ -329,10 +340,10 @@ class Environment(Model):
spells = []
lastvisible = False
laststep = None
- history = self[agent.id, None, None]
+ history = sorted(list(self.history_to_tuples(agent_id=agent.id)))
if not history:
continue
- for t_step, attribute, value in sorted(list(history)):
+ for _, t_step, attribute, value in history:
if attribute == 'visible':
nowvisible = value
if nowvisible and not lastvisible:
diff --git a/soil/exporters.py b/soil/exporters.py
index b526b60..cc4f03c 100644
--- a/soil/exporters.py
+++ b/soil/exporters.py
@@ -1,6 +1,6 @@
import os
import csv as csvlib
-import time
+from time import time as current_time
from io import BytesIO
import matplotlib.pyplot as plt
@@ -133,7 +133,7 @@ class dummy(Exporter):
def start(self):
with self.output('dummy', 'w') as f:
- f.write('simulation started @ {}\n'.format(time.time()))
+ f.write('simulation started @ {}\n'.format(current_time()))
def trial(self, env, stats):
with self.output('dummy', 'w') as f:
@@ -143,7 +143,7 @@ class dummy(Exporter):
def sim(self, stats):
with self.output('dummy', 'a') as f:
- f.write('simulation ended @ {}\n'.format(time.time()))
+ f.write('simulation ended @ {}\n'.format(current_time()))
diff --git a/soil/simulation.py b/soil/simulation.py
index 39d909d..0990bc9 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -1,4 +1,5 @@
import os
+from time import time as current_time, strftime
import importlib
import sys
import yaml
@@ -6,7 +7,6 @@ import traceback
import logging
import networkx as nx
-from time import strftime
from networkx.readwrite import json_graph
from multiprocessing import Pool
from functools import partial
@@ -83,8 +83,9 @@ class Simulation:
Class for the environment. It defailts to soil.environment.Environment
load_module : str, module name, deprecated
If specified, soil will load the content of this module under 'soil.agents.custom'
-
-
+ history: tsih.History subclass, optional
+ Class to use to store the history of the simulation (and environments). It defailts to tsih.History
+ If set to True, tsih.History will be used. If set to False or None, tsih.NoHistory will be used.
"""
def __init__(self, name=None, group=None, topology=None, network_params=None,
@@ -93,7 +94,7 @@ class Simulation:
max_time=100, load_module=None, seed=None,
dir_path=None, environment_agents=None,
environment_params=None, environment_class=None,
- **kwargs):
+ history=History, **kwargs):
self.load_module = load_module
self.network_params = network_params
@@ -133,7 +134,12 @@ class Simulation:
self.states = agents._validate_states(states,
self.topology)
- self._history = History(name=self.name,
+ if history == True:
+ history = History
+ elif not history:
+ history = NoHistory
+
+ self._history = history(name=self.name,
backup=False)
def run_simulation(self, *args, **kwargs):
@@ -233,6 +239,7 @@ class Simulation:
'states': self.states,
'dir_path': self.dir_path,
'default_state': self.default_state,
+ 'history': bool(self._history),
'environment_agents': self.environment_agents,
})
opts.update(kwargs)
diff --git a/soil/stats.py b/soil/stats.py
index 2a7636f..84082bd 100644
--- a/soil/stats.py
+++ b/soil/stats.py
@@ -35,7 +35,7 @@ class distribution(Stats):
self.counts = []
def trial(self, env):
- df = env[None, None, None].df()
+ df = env.df()
df = df.drop('SEED', axis=1)
ix = df.index[-1]
attrs = df.columns.get_level_values(0)
diff --git a/soil/utils.py b/soil/utils.py
index e95758c..562def1 100644
--- a/soil/utils.py
+++ b/soil/utils.py
@@ -1,5 +1,5 @@
import logging
-import time
+from time import time as current_time, strftime, gmtime, localtime
import os
from shutil import copyfile
@@ -13,13 +13,13 @@ logger = logging.getLogger('soil')
@contextmanager
def timer(name='task', pre="", function=logger.info, to_object=None):
- start = time.time()
+ start = current_time()
function('{}Starting {} at {}.'.format(pre, name,
- time.strftime("%X", time.gmtime(start))))
+ strftime("%X", gmtime(start))))
yield start
- end = time.time()
+ end = current_time()
function('{}Finished {} at {} in {} seconds'.format(pre, name,
- time.strftime("%X", time.gmtime(end)),
+ strftime("%X", gmtime(end)),
str(end-start)))
if to_object:
to_object.start = start
@@ -34,7 +34,7 @@ def safe_open(path, mode='r', backup=True, **kwargs):
os.makedirs(outdir)
if backup and 'w' in mode and os.path.exists(path):
creation = os.path.getctime(path)
- stamp = time.strftime('%Y-%m-%d_%H.%M.%S', time.localtime(creation))
+ stamp = strftime('%Y-%m-%d_%H.%M.%S', localtime(creation))
backup_dir = os.path.join(outdir, 'backup')
if not os.path.exists(backup_dir):
@@ -45,11 +45,13 @@ def safe_open(path, mode='r', backup=True, **kwargs):
return open(path, mode=mode, **kwargs)
+@contextmanager
def open_or_reuse(f, *args, **kwargs):
try:
- return safe_open(f, *args, **kwargs)
+ with safe_open(f, *args, **kwargs) as f:
+ yield f
except (AttributeError, TypeError):
- return f
+ yield f
def flatten_dict(d):
if not isinstance(d, dict):
diff --git a/test-requirements.txt b/test-requirements.txt
index cf59a7e..d95c1b1 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,4 +1,4 @@
pytest
-mesa>=0.8.9
+pytest-profiling
scipy>=1.3
tornado
diff --git a/tests/test_analysis.py b/tests/test_analysis.py
index 47c649b..83d6e54 100644
--- a/tests/test_analysis.py
+++ b/tests/test_analysis.py
@@ -50,6 +50,7 @@ class TestAnalysis(TestCase):
'states': [{'interval': 1}, {'interval': 2}],
'max_time': 30,
'num_trials': 1,
+ 'history': True,
'environment_params': {
}
}
diff --git a/tests/test_exporters.py b/tests/test_exporters.py
index 1583f23..790eaa8 100644
--- a/tests/test_exporters.py
+++ b/tests/test_exporters.py
@@ -2,7 +2,6 @@ import os
import io
import tempfile
import shutil
-from time import time
from unittest import TestCase
from soil import exporters
@@ -68,6 +67,7 @@ class Exporters(TestCase):
'agent_type': 'CounterModel',
'max_time': 2,
'num_trials': n_trials,
+ 'dry_run': False,
'environment_params': {}
}
output = io.StringIO()
@@ -79,6 +79,7 @@ class Exporters(TestCase):
exporters.gexf,
],
stats=[distribution,],
+ dry_run=False,
outdir=tmpdir,
exporter_params={'copy_to': output})
result = output.getvalue()
diff --git a/tests/test_main.py b/tests/test_main.py
index d7dc58c..15ad035 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -11,6 +11,7 @@ from os.path import join
from soil import (simulation, Environment, agents, serialization,
utils)
from soil.time import Delta
+from tsih import NoHistory, History
ROOT = os.path.abspath(os.path.dirname(__file__))
@@ -205,7 +206,7 @@ class TestMain(TestCase):
assert config == nconfig
def test_row_conversion(self):
- env = Environment()
+ env = Environment(history=True)
env['test'] = 'test_value'
res = list(env.history_to_tuples())
@@ -228,7 +229,14 @@ class TestMain(TestCase):
f = io.BytesIO()
env.dump_gexf(f)
- def test_save_graph(self):
+ def test_nohistory(self):
+ '''
+ Make sure that no history(/sqlite) is used by default
+ '''
+ env = Environment(topology=nx.Graph(), network_agents=[])
+ assert isinstance(env._history, NoHistory)
+
+ def test_save_graph_history(self):
'''
The history_to_graph method should return a valid networkx graph.
@@ -236,7 +244,7 @@ class TestMain(TestCase):
'''
G = nx.cycle_graph(5)
distribution = agents.calculate_distribution(None, agents.BaseAgent)
- env = Environment(topology=G, network_agents=distribution)
+ env = Environment(topology=G, network_agents=distribution, history=True)
env[0, 0, 'testvalue'] = 'start'
env[0, 10, 'testvalue'] = 'finish'
nG = env.history_to_graph()
@@ -244,6 +252,23 @@ class TestMain(TestCase):
assert ('start', 0, 10) in values
assert ('finish', 10, None) in values
+ def test_save_graph_nohistory(self):
+ '''
+ The history_to_graph method should return a valid networkx graph.
+
+ When NoHistory is used, only the last known value is known
+ '''
+ G = nx.cycle_graph(5)
+ distribution = agents.calculate_distribution(None, agents.BaseAgent)
+ env = Environment(topology=G, network_agents=distribution, history=False)
+ env.get_agent(0)['testvalue'] = 'start'
+ env.schedule.time = 10
+ env.get_agent(0)['testvalue'] = 'finish'
+ nG = env.history_to_graph()
+ values = nG.nodes[0]['attr_testvalue']
+ assert ('start', 0, None) not in values
+ assert ('finish', 10, None) in values
+
def test_serialize_class(self):
ser, name = serialization.serialize(agents.BaseAgent)
assert name == 'soil.agents.BaseAgent'
@@ -303,7 +328,7 @@ class TestMain(TestCase):
pickle.dumps(converted)
def test_pickle_agent_environment(self):
- env = Environment(name='Test')
+ env = Environment(name='Test', history=True)
a = agents.BaseAgent(model=env, unique_id=25)
a['key'] = 'test'
From 6f7481769e57a98c00e0a73ac21f6de72f8603b0 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Mon, 4 Apr 2022 16:00:54 +0200
Subject: [PATCH 02/39] WIP
---
soil/__init__.py | 6 +-
soil/agents/__init__.py | 13 ++-
soil/config.py | 251 ++++++++++++++++++++++++++++++++++++++++
soil/datacollection.py | 10 +-
soil/environment.py | 174 ++++++++--------------------
soil/exporters.py | 98 +++++++++++++---
soil/serialization.py | 24 +++-
soil/simulation.py | 230 ++++++------------------------------
soil/stats.py | 23 ++--
9 files changed, 467 insertions(+), 362 deletions(-)
create mode 100644 soil/config.py
diff --git a/soil/__init__.py b/soil/__init__.py
index dc79354..44b548f 100644
--- a/soil/__init__.py
+++ b/soil/__init__.py
@@ -36,13 +36,13 @@ def main():
parser.add_argument('--module', '-m', type=str,
help='file containing the code of any custom agents.')
parser.add_argument('--dry-run', '--dry', action='store_true',
- help='Do not store the results of the simulation.')
+ help='Do not store the results of the simulation to disk, show in terminal instead.')
parser.add_argument('--pdb', action='store_true',
help='Use a pdb console in case of exception.')
parser.add_argument('--graph', '-g', action='store_true',
- help='Dump GEXF graph. Defaults to false.')
+ help='Dump each trial\'s network topology as a GEXF graph. Defaults to false.')
parser.add_argument('--csv', action='store_true',
- help='Dump history in CSV format. Defaults to false.')
+ help='Dump all data collected in CSV format. Defaults to false.')
parser.add_argument('--level', type=str,
help='Logging level')
parser.add_argument('--output', '-o', type=str, default="soil_output",
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index 7555207..623c21a 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -26,7 +26,14 @@ class DeadAgent(Exception):
class BaseAgent(Agent):
"""
- A special Agent that keeps track of its state history.
+ A special type of Mesa Agent that:
+
+ * Can be used as a dictionary to access its state.
+ * Has logging built-in
+ * Can be given default arguments through a defaults class attribute,
+ which will be used on construction to initialize each agent's state
+
+ Any attribute that is not preceded by an underscore (`_`) will also be added to its state.
"""
defaults = {}
@@ -61,6 +68,9 @@ class BaseAgent(Agent):
for (k, v) in kwargs.items():
setattr(self, k, v)
+ for (k, v) in getattr(self, 'defaults', {}).items():
+ if not hasattr(self, k) or getattr(self, k) is None:
+ setattr(self, k, v)
# TODO: refactor to clean up mesa compatibility
@property
@@ -79,7 +89,6 @@ class BaseAgent(Agent):
def state(self):
'''
Return the agent itself, which behaves as a dictionary.
- Changes made to `agent.state` will be reflected in the history.
This method shouldn't be used, but is kept here for backwards compatibility.
'''
diff --git a/soil/config.py b/soil/config.py
new file mode 100644
index 0000000..390be62
--- /dev/null
+++ b/soil/config.py
@@ -0,0 +1,251 @@
+import yaml
+import os
+import sys
+import networkx as nx
+import collections.abc
+
+from . import serialization, utils, basestring, agents
+
+class Config(collections.abc.Mapping):
+ """
+
+ 1) agent type can be specified by name or by class.
+ 2) instead of just one type, a network agents distribution can be used.
+ The distribution specifies the weight (or probability) of each
+ agent type in the topology. This is an example distribution: ::
+
+ [
+ {'agent_type': 'agent_type_1',
+ 'weight': 0.2,
+ 'state': {
+ 'id': 0
+ }
+ },
+ {'agent_type': 'agent_type_2',
+ 'weight': 0.8,
+ 'state': {
+ 'id': 1
+ }
+ }
+ ]
+
+ In this example, 20% of the nodes will be marked as type
+ 'agent_type_1'.
+ 3) if no initial state is given, each node's state will be set
+ to `{'id': 0}`.
+
+ Parameters
+ ---------
+ name : str, optional
+ name of the Simulation
+ group : str, optional
+ a group name can be used to link simulations
+ topology (optional): networkx.Graph instance or Node-Link topology as a dict or string (will be loaded with `json_graph.node_link_graph(topology`).
+ network_params : dict
+ parameters used to create a topology with networkx, if no topology is given
+ network_agents : dict
+ definition of agents to populate the topology with
+ agent_type : NetworkAgent subclass, optional
+ Default type of NetworkAgent to use for nodes not specified in network_agents
+ states : list, optional
+ List of initial states corresponding to the nodes in the topology. Basic form is a list of integers
+ whose value indicates the state
+ dir_path: str, optional
+ Directory path to load simulation assets (files, modules...)
+ seed : str, optional
+ Seed to use for the random generator
+ num_trials : int, optional
+ Number of independent simulation runs
+ max_time : int, optional
+ Maximum step/time for each simulation
+ environment_params : dict, optional
+ Dictionary of globally-shared environmental parameters
+ environment_agents: dict, optional
+ Similar to network_agents. Distribution of Agents that control the environment
+ environment_class: soil.environment.Environment subclass, optional
+ Class for the environment. It defailts to soil.environment.Environment
+ """
+ __slots__ = 'name', 'agent_type', 'group', 'network_agents', 'environment_agents', 'states', 'default_state', 'interval', 'network_params', 'seed', 'num_trials', 'max_time', 'topology', 'schedule', 'initial_time', 'environment_params', 'environment_class', 'dir_path', '_added_to_path'
+
+ def __init__(self, name=None,
+ group=None,
+ agent_type='BaseAgent',
+ network_agents=None,
+ environment_agents=None,
+ states=None,
+ default_state=None,
+ interval=1,
+ network_params=None,
+ seed=None,
+ num_trials=1,
+ max_time=None,
+ topology=None,
+ schedule=None,
+ initial_time=0,
+ environment_params={},
+ environment_class='soil.Environment',
+ dir_path=None):
+
+ self.network_params = network_params
+ self.name = name or 'Unnamed'
+ self.seed = str(seed or name)
+ self.group = group or ''
+ self.num_trials = num_trials
+ self.max_time = max_time
+ self.default_state = default_state or {}
+ self.dir_path = dir_path or os.getcwd()
+ self.interval = interval
+
+ self._added_to_path = list(x for x in [os.getcwd(), self.dir_path] if x not in sys.path)
+ sys.path += self._added_to_path
+
+ self.topology = topology
+
+ self.schedule = schedule
+ self.initial_time = initial_time
+
+
+ self.environment_class = environment_class
+ self.environment_params = dict(environment_params)
+
+ #TODO: Check agent distro vs fixed agents
+ self.environment_agents = environment_agents or []
+
+ self.agent_type = agent_type
+
+ self.network_agents = network_agents or {}
+
+ self.states = states or {}
+
+
+ def validate(self):
+ agents._validate_states(self.states,
+ self._topology)
+
+ def restore_path(self):
+ for added in self._added_to_path:
+ sys.path.remove(added)
+
+ def to_yaml(self):
+ return yaml.dump(self.to_dict())
+
+ def dump_yaml(self, f=None, outdir=None):
+ if not f and not outdir:
+ raise ValueError('specify a file or an output directory')
+
+ if not f:
+ f = os.path.join(outdir, '{}.dumped.yml'.format(self.name))
+
+ with utils.open_or_reuse(f, 'w') as f:
+ f.write(self.to_yaml())
+
+ def to_yaml(self):
+ return yaml.dump(self.to_dict())
+
+ # TODO: See note on getstate
+ def to_dict(self):
+ return self.__getstate__()
+
+ def dump_yaml(self, f=None, outdir=None):
+ if not f and not outdir:
+ raise ValueError('specify a file or an output directory')
+
+ if not f:
+ f = os.path.join(outdir, '{}.dumped.yml'.format(self.name))
+
+ with utils.open_or_reuse(f, 'w') as f:
+ f.write(self.to_yaml())
+
+ def __getitem__(self, key):
+ return getattr(self, key)
+
+ def __iter__(self):
+ return (k for k in self.__slots__ if k[0] != '_')
+
+ def __len__(self):
+ return len(self.__slots__)
+
+ def dump_pickle(self, f=None, outdir=None):
+ if not outdir and not f:
+ raise ValueError('specify a file or an output directory')
+
+ if not f:
+ f = os.path.join(outdir,
+ '{}.simulation.pickle'.format(self.name))
+ with utils.open_or_reuse(f, 'wb') as f:
+ pickle.dump(self, f)
+
+ # TODO: remove this. A config should be sendable regardless. Non-pickable objects could be computed via properties and the like
+ # def __getstate__(self):
+ # state={}
+ # for k, v in self.__dict__.items():
+ # if k[0] != '_':
+ # state[k] = v
+ # state['topology'] = json_graph.node_link_data(self.topology)
+ # state['network_agents'] = agents.serialize_definition(self.network_agents,
+ # known_modules = [])
+ # state['environment_agents'] = agents.serialize_definition(self.environment_agents,
+ # known_modules = [])
+ # state['environment_class'] = serialization.serialize(self.environment_class,
+ # known_modules=['soil.environment'])[1] # func, name
+ # if state['load_module'] is None:
+ # del state['load_module']
+ # return state
+
+ # # TODO: remove, same as __getstate__
+ # def __setstate__(self, state):
+ # self.__dict__ = state
+ # self.load_module = getattr(self, 'load_module', None)
+ # if self.dir_path not in sys.path:
+ # sys.path += [self.dir_path, os.getcwd()]
+ # self.topology = json_graph.node_link_graph(state['topology'])
+ # self.network_agents = agents.calculate_distribution(agents._convert_agent_types(self.network_agents))
+ # self.environment_agents = agents._convert_agent_types(self.environment_agents,
+ # known_modules=[self.load_module])
+ # self.environment_class = serialization.deserialize(self.environment_class,
+ # known_modules=[self.load_module,
+ # 'soil.environment', ]) # func, name
+
+class CalculatedConfig(Config):
+ def __init__(self, config):
+ """
+ Returns a configuration object that replaces some "plain" attributes (e.g., `environment_class` string) into
+ a Python object (`soil.environment.Environment` class).
+ """
+ self._config = config
+ values = dict(config)
+ values['environment_class'] = self._environment_class()
+ values['environment_agents'] = self._environment_agents()
+ values['topology'] = self._topology()
+ values['network_agents'] = self._network_agents()
+ values['agent_type'] = serialization.deserialize(self.agent_type, known_modules=['soil.agents'])
+
+ return values
+
+ def _topology(self):
+ topology = self._config.topology
+ if topology is None:
+ topology = serialization.load_network(self._config.network_params,
+ dir_path=self._config.dir_path)
+
+ elif isinstance(topology, basestring) or isinstance(topology, dict):
+ topology = json_graph.node_link_graph(topology)
+
+ return nx.Graph(topology)
+
+ def _environment_class(self):
+ return serialization.deserialize(self._config.environment_class,
+ known_modules=['soil.environment', ]) or Environment
+
+ def _environment_agents(self):
+ return agents._convert_agent_types(self._config.environment_agents)
+
+ def _network_agents(self):
+ distro = agents.calculate_distribution(self._config.network_agents,
+ self._config.agent_type)
+ return agents._convert_agent_types(distro)
+
+ def _environment_class(self):
+ return serialization.deserialize(self._config.environment_class,
+ known_modules=['soil.environment', ]) # func, name
+
diff --git a/soil/datacollection.py b/soil/datacollection.py
index 075d988..979c7bd 100644
--- a/soil/datacollection.py
+++ b/soil/datacollection.py
@@ -8,19 +8,17 @@ class SoilDataCollector(MDC):
# Populate model and env reporters so they have a key per
# So they can be shown in the web interface
self.environment = environment
-
+ raise NotImplementedError()
@property
def model_vars(self):
- pass
+ raise NotImplementedError()
@model_vars.setter
def model_vars(self, value):
- pass
+ raise NotImplementedError()
@property
def agent_reporters(self):
- self.model._history._
-
- pass
+ raise NotImplementedError()
diff --git a/soil/environment.py b/soil/environment.py
index 47e0997..6635849 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -1,23 +1,20 @@
+from __future__ import annotations
import os
import sqlite3
-import csv
import math
import random
-import yaml
-import tempfile
-import logging
-import pandas as pd
from time import time as current_time
from copy import deepcopy
from networkx.readwrite import json_graph
-import networkx as nx
-from tsih import History, NoHistory, Record, Key
+import networkx as nx
from mesa import Model
-from . import serialization, agents, analysis, utils, time
+from tsih import Record
+
+from . import serialization, agents, analysis, utils, time, config
# These properties will be copied when pickling/unpickling the environment
_CONFIG_PROPS = [ 'name',
@@ -49,7 +46,6 @@ class Environment(Model):
schedule=None,
initial_time=0,
environment_params=None,
- history=False,
dir_path=None,
**kwargs):
@@ -76,20 +72,11 @@ class Environment(Model):
topology = nx.Graph()
self.G = nx.Graph(topology)
-
self.environment_params = environment_params or {}
self.environment_params.update(kwargs)
self._env_agents = {}
self.interval = interval
-
- if history:
- history = History
- else:
- history = NoHistory
-
- self._history = history(name=self.name,
- backup=True)
self['SEED'] = seed
if network_agents:
@@ -106,6 +93,19 @@ class Environment(Model):
self.logger = utils.logger.getChild(self.name)
+ @staticmethod
+ def from_config(conf: config.Config, trial_id, **kwargs) -> Environment:
+ '''Create an environment for a trial of the simulation'''
+
+ conf = config.Config(conf, **kwargs)
+ conf.seed = '{}_{}'.format(conf.seed, trial_id)
+ conf.name = '{}_trial_{}'.format(conf.name, trial_id).replace('.', '-')
+ opts = conf.environment_params.copy()
+ opts.update(conf)
+ opts.update(kwargs)
+ env = serialization.deserialize(conf.environment_class)(**opts)
+ return env
+
@property
def now(self):
if self.schedule:
@@ -212,11 +212,14 @@ class Environment(Model):
return self.logger.log(level, message, extra=extra)
def step(self):
+ '''
+ Advance one step in the simulation, and update the data collection and scheduler appropriately
+ '''
super().step()
self.schedule.step()
def run(self, until, *args, **kwargs):
- self._save_state()
+ until = until or float('inf')
while self.schedule.next_time < until:
self.step()
@@ -252,14 +255,16 @@ class Environment(Model):
def get(self, key, default=None):
'''
- Get the value of an environment attribute in a
- given point in the simulation (history).
- If key is an attribute name, this method returns
- the current value.
- To get values at other times, use a
- :meth: `soil.history.Key` tuple.
+ Get the value of an environment attribute.
+ Return `default` if the value is not set.
'''
- return self[key] if key in self else default
+ return self.environment_params.get(key, default)
+
+ def __getitem__(self, key):
+ return self.environment_params.get(key)
+
+ def __setitem__(self, key, value):
+ return self.environment_params.__setitem__(key, value)
def get_agent(self, agent_id):
return self.G.nodes[agent_id]['agent']
@@ -269,112 +274,31 @@ class Environment(Model):
return self.agents
return (self.G.nodes[i]['agent'] for i in nodes)
- def dump_csv(self, f):
- with utils.open_or_reuse(f, 'w') as f:
- cr = csv.writer(f)
- cr.writerow(('agent_id', 't_step', 'key', 'value'))
- for i in self.history_to_tuples():
- cr.writerow(i)
-
- def dump_gexf(self, f):
- G = self.history_to_graph()
- # Workaround for geometric models
- # See soil/soil#4
- for node in G.nodes():
- if 'pos' in G.nodes[node]:
- G.nodes[node]['viz'] = {"position": {"x": G.nodes[node]['pos'][0], "y": G.nodes[node]['pos'][1], "z": 0.0}}
- del (G.nodes[node]['pos'])
-
- nx.write_gexf(G, f, version="1.2draft")
-
- def dump(self, *args, formats=None, **kwargs):
- if not formats:
- return
- functions = {
- 'csv': self.dump_csv,
- 'gexf': self.dump_gexf
- }
- for f in formats:
- if f in functions:
- functions[f](*args, **kwargs)
- else:
- raise ValueError('Unknown format: {}'.format(f))
-
- def df(self):
- return self._history[None, None, None].df()
-
- def dump_sqlite(self, f):
- return self._history.dump(f)
-
- def state_to_tuples(self, now=None):
+ def _agent_to_tuples(self, agent, now=None):
if now is None:
now = self.now
+ for k, v in agent.state.items():
+ yield Record(dict_id=agent.id,
+ t_step=now,
+ key=k,
+ value=v)
+
+ def state_to_tuples(self, agent_id=None, now=None):
+ if now is None:
+ now = self.now
+
+ if agent_id:
+ agent = self.get_agent(agent_id)
+ yield from self._agent_to_tuples(agent, now)
+ return
+
for k, v in self.environment_params.items():
yield Record(dict_id='env',
t_step=now,
key=k,
value=v)
for agent in self.agents:
- for k, v in agent.state.items():
- yield Record(dict_id=agent.id,
- t_step=now,
- key=k,
- value=v)
-
- def history_to_tuples(self, agent_id=None):
- if isinstance(self._history, NoHistory):
- tuples = self.state_to_tuples()
- else:
- tuples = self._history.to_tuples()
- if agent_id is None:
- return tuples
- return filter(lambda x: str(x[0]) == str(agent_id), tuples)
-
- def history_to_graph(self):
- G = nx.Graph(self.G)
-
- for agent in self.network_agents:
-
- attributes = {'agent': str(agent.__class__)}
- lastattributes = {}
- spells = []
- lastvisible = False
- laststep = None
- history = sorted(list(self.history_to_tuples(agent_id=agent.id)))
- if not history:
- continue
- for _, t_step, attribute, value in history:
- if attribute == 'visible':
- nowvisible = value
- if nowvisible and not lastvisible:
- laststep = t_step
- if not nowvisible and lastvisible:
- spells.append((laststep, t_step))
-
- lastvisible = nowvisible
- continue
- key = 'attr_' + attribute
- if key not in attributes:
- attributes[key] = list()
- if key not in lastattributes:
- lastattributes[key] = (value, t_step)
- elif lastattributes[key][0] != value:
- last_value, laststep = lastattributes[key]
- commit_value = (last_value, laststep, t_step)
- if key not in attributes:
- attributes[key] = list()
- attributes[key].append(commit_value)
- lastattributes[key] = (value, t_step)
- for k, v in lastattributes.items():
- attributes[k].append((v[0], v[1], None))
- if lastvisible:
- spells.append((laststep, None))
- if spells:
- G.add_node(agent.id, spells=spells, **attributes)
- else:
- G.add_node(agent.id, **attributes)
-
- return G
+ yield from self._agent_to_tuples(agent, now)
def __getstate__(self):
state = {}
@@ -382,7 +306,6 @@ class Environment(Model):
state[prop] = self.__dict__[prop]
state['G'] = json_graph.node_link_data(self.G)
state['environment_agents'] = self._env_agents
- state['history'] = self._history
state['schedule'] = self.schedule
return state
@@ -391,7 +314,6 @@ class Environment(Model):
self.__dict__[prop] = state[prop]
self._env_agents = state['environment_agents']
self.G = json_graph.node_link_graph(state['G'])
- self._history = state['history']
# self._env = None
self.schedule = state['schedule']
self._queue = []
diff --git a/soil/exporters.py b/soil/exporters.py
index cc4f03c..f2bbe78 100644
--- a/soil/exporters.py
+++ b/soil/exporters.py
@@ -48,20 +48,24 @@ class Exporter:
self.simulation = simulation
outdir = outdir or os.path.join(os.getcwd(), 'soil_output')
self.outdir = os.path.join(outdir,
- simulation.group or '',
- simulation.name)
+ simulation.config.group or '',
+ simulation.config.name)
self.dry_run = dry_run
self.copy_to = copy_to
- def start(self):
+ def sim_start(self):
'''Method to call when the simulation starts'''
pass
- def end(self, stats):
+ def sim_end(self, stats):
'''Method to call when the simulation ends'''
pass
- def trial(self, env, stats):
+ def trial_start(self, env):
+ '''Method to call when a trial start'''
+ pass
+
+ def trial_end(self, env, stats):
'''Method to call when a trial ends'''
pass
@@ -80,21 +84,21 @@ class Exporter:
class default(Exporter):
'''Default exporter. Writes sqlite results, as well as the simulation YAML'''
- def start(self):
+ def sim_start(self):
if not self.dry_run:
logger.info('Dumping results to %s', self.outdir)
self.simulation.dump_yaml(outdir=self.outdir)
else:
logger.info('NOT dumping results')
- def trial(self, env, stats):
+ def trial_start(self, env, stats):
if not self.dry_run:
with timer('Dumping simulation {} trial {}'.format(self.simulation.name,
env.name)):
with self.output('{}.sqlite'.format(env.name), mode='wb') as f:
env.dump_sqlite(f)
- def end(self, stats):
+ def sim_end(self, stats):
with timer('Dumping simulation {}\'s stats'.format(self.simulation.name)):
with self.output('{}.sqlite'.format(self.simulation.name), mode='wb') as f:
self.simulation.dump_sqlite(f)
@@ -102,15 +106,14 @@ class default(Exporter):
class csv(Exporter):
+
'''Export the state of each environment (and its agents) in a separate CSV file'''
- def trial(self, env, stats):
+ def trial_end(self, env, stats):
with timer('[CSV] Dumping simulation {} trial {} @ dir {}'.format(self.simulation.name,
env.name,
self.outdir)):
- with self.output('{}.csv'.format(env.name)) as f:
- env.dump_csv(f)
- with self.output('{}.stats.csv'.format(env.name)) as f:
+ with self.output('{}.stats.{}.csv'.format(env.name, stats.name)) as f:
statwriter = csvlib.writer(f, delimiter='\t', quotechar='"', quoting=csvlib.QUOTE_ALL)
for stat in stats:
@@ -118,7 +121,7 @@ class csv(Exporter):
class gexf(Exporter):
- def trial(self, env, stats):
+ def trial_end(self, env, stats):
if self.dry_run:
logger.info('Not dumping GEXF in dry_run mode')
return
@@ -126,22 +129,32 @@ class gexf(Exporter):
with timer('[GEXF] Dumping simulation {} trial {}'.format(self.simulation.name,
env.name)):
with self.output('{}.gexf'.format(env.name), mode='wb') as f:
- env.dump_gexf(f)
+ self.dump_gexf(env, f)
+ def dump_gexf(self, env, f):
+ G = env.history_to_graph()
+ # Workaround for geometric models
+ # See soil/soil#4
+ for node in G.nodes():
+ if 'pos' in G.nodes[node]:
+ G.nodes[node]['viz'] = {"position": {"x": G.nodes[node]['pos'][0], "y": G.nodes[node]['pos'][1], "z": 0.0}}
+ del (G.nodes[node]['pos'])
+
+ nx.write_gexf(G, f, version="1.2draft")
class dummy(Exporter):
- def start(self):
+ def sim_start(self):
with self.output('dummy', 'w') as f:
f.write('simulation started @ {}\n'.format(current_time()))
- def trial(self, env, stats):
+ def trial_end(self, env, stats):
with self.output('dummy', 'w') as f:
- for i in env.history_to_tuples():
+ for i in stats:
f.write(','.join(map(str, i)))
f.write('\n')
- def sim(self, stats):
+ def sim_end(self, stats):
with self.output('dummy', 'a') as f:
f.write('simulation ended @ {}\n'.format(current_time()))
@@ -149,10 +162,57 @@ class dummy(Exporter):
class graphdrawing(Exporter):
- def trial(self, env, stats):
+ def trial_end(self, env, stats):
# Outside effects
f = plt.figure()
nx.draw(env.G, node_size=10, width=0.2, pos=nx.spring_layout(env.G, scale=100), ax=f.add_subplot(111))
with open('graph-{}.png'.format(env.name)) as f:
f.savefig(f)
+'''
+Convert an environment into a NetworkX graph
+'''
+def env_to_graph(env, history=None):
+ G = nx.Graph(env.G)
+
+ for agent in env.network_agents:
+
+ attributes = {'agent': str(agent.__class__)}
+ lastattributes = {}
+ spells = []
+ lastvisible = False
+ laststep = None
+ if not history:
+ history = sorted(list(env.state_to_tuples()))
+ for _, t_step, attribute, value in history:
+ if attribute == 'visible':
+ nowvisible = value
+ if nowvisible and not lastvisible:
+ laststep = t_step
+ if not nowvisible and lastvisible:
+ spells.append((laststep, t_step))
+
+ lastvisible = nowvisible
+ continue
+ key = 'attr_' + attribute
+ if key not in attributes:
+ attributes[key] = list()
+ if key not in lastattributes:
+ lastattributes[key] = (value, t_step)
+ elif lastattributes[key][0] != value:
+ last_value, laststep = lastattributes[key]
+ commit_value = (last_value, laststep, t_step)
+ if key not in attributes:
+ attributes[key] = list()
+ attributes[key].append(commit_value)
+ lastattributes[key] = (value, t_step)
+ for k, v in lastattributes.items():
+ attributes[k].append((v[0], v[1], None))
+ if lastvisible:
+ spells.append((laststep, None))
+ if spells:
+ G.add_node(agent.id, spells=spells, **attributes)
+ else:
+ G.add_node(agent.id, **attributes)
+
+ return G
diff --git a/soil/serialization.py b/soil/serialization.py
index 76c60fc..dd94108 100644
--- a/soil/serialization.py
+++ b/soil/serialization.py
@@ -2,6 +2,7 @@ import os
import logging
import ast
import sys
+import re
import importlib
from glob import glob
from itertools import product, chain
@@ -18,6 +19,9 @@ logger = logging.getLogger('soil')
def load_network(network_params, dir_path=None):
G = nx.Graph()
+ if not network_params:
+ return G
+
if 'path' in network_params:
path = network_params['path']
if dir_path and not os.path.isabs(path):
@@ -169,6 +173,9 @@ def serialize(v, known_modules=[]):
func = serializer(tname)
return func(v), tname
+
+IS_CLASS = re.compile(r"")
+
def deserializer(type_, known_modules=[]):
if type(type_) != str: # Already deserialized
return type_
@@ -179,6 +186,13 @@ def deserializer(type_, known_modules=[]):
if hasattr(builtins, type_): # Check if it's a builtin type
cls = getattr(builtins, type_)
return lambda x=None: ast.literal_eval(x) if x is not None else cls()
+ match = IS_CLASS.match(type_)
+ if match:
+ modname, tname = match.group(1).rsplit(".", 1)
+ module = importlib.import_module(modname)
+ cls = getattr(module, tname)
+ return getattr(cls, 'deserialize', cls)
+
# Otherwise, see if we can find the module and the class
modules = known_modules or []
options = []
@@ -189,7 +203,7 @@ def deserializer(type_, known_modules=[]):
if '.' in type_: # Fully qualified module
module, type_ = type_.rsplit(".", 1)
- options.append ((module, type_))
+ options.append((module, type_))
errors = []
for modname, tname in options:
@@ -213,10 +227,10 @@ def deserialize(type_, value=None, **kwargs):
def deserialize_all(names, *args, known_modules=['soil'], **kwargs):
- '''Return the set of exporters for a simulation, given the exporter names'''
- exporters = []
+ '''Return the list of deserialized objects'''
+ objects = []
for name in names:
mod = deserialize(name, known_modules=known_modules)
- exporters.append(mod(*args, **kwargs))
- return exporters
+ objects.append(mod(*args, **kwargs))
+ return objects
diff --git a/soil/simulation.py b/soil/simulation.py
index 0990bc9..9985d3e 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -10,8 +10,6 @@ import networkx as nx
from networkx.readwrite import json_graph
from multiprocessing import Pool
from functools import partial
-from tsih import History
-
import pickle
from . import serialization, utils, basestring, agents
@@ -20,127 +18,34 @@ from .utils import logger
from .exporters import default
from .stats import defaultStats
+from .config import Config
+
#TODO: change documentation for simulation
-
class Simulation:
"""
- Similar to nsim.NetworkSimulation with three main differences:
- 1) agent type can be specified by name or by class.
- 2) instead of just one type, a network agents distribution can be used.
- The distribution specifies the weight (or probability) of each
- agent type in the topology. This is an example distribution: ::
-
- [
- {'agent_type': 'agent_type_1',
- 'weight': 0.2,
- 'state': {
- 'id': 0
- }
- },
- {'agent_type': 'agent_type_2',
- 'weight': 0.8,
- 'state': {
- 'id': 1
- }
- }
- ]
-
- In this example, 20% of the nodes will be marked as type
- 'agent_type_1'.
- 3) if no initial state is given, each node's state will be set
- to `{'id': 0}`.
-
Parameters
---------
- name : str, optional
+ config (optional): :class:`config.Config`
name of the Simulation
- group : str, optional
- a group name can be used to link simulations
- topology : networkx.Graph instance, optional
- network_params : dict
- parameters used to create a topology with networkx, if no topology is given
- network_agents : dict
- definition of agents to populate the topology with
- agent_type : NetworkAgent subclass, optional
- Default type of NetworkAgent to use for nodes not specified in network_agents
- states : list, optional
- List of initial states corresponding to the nodes in the topology. Basic form is a list of integers
- whose value indicates the state
- dir_path: str, optional
- Directory path to load simulation assets (files, modules...)
- seed : str, optional
- Seed to use for the random generator
- num_trials : int, optional
- Number of independent simulation runs
- max_time : int, optional
- Time how long the simulation should run
- environment_params : dict, optional
- Dictionary of globally-shared environmental parameters
- environment_agents: dict, optional
- Similar to network_agents. Distribution of Agents that control the environment
- environment_class: soil.environment.Environment subclass, optional
- Class for the environment. It defailts to soil.environment.Environment
- load_module : str, module name, deprecated
- If specified, soil will load the content of this module under 'soil.agents.custom'
- history: tsih.History subclass, optional
- Class to use to store the history of the simulation (and environments). It defailts to tsih.History
- If set to True, tsih.History will be used. If set to False or None, tsih.NoHistory will be used.
+
+ kwargs: parameters to use to initialize a new configuration, if one has not been provided.
"""
- def __init__(self, name=None, group=None, topology=None, network_params=None,
- network_agents=None, agent_type=None, states=None,
- default_state=None, interval=1, num_trials=1,
- max_time=100, load_module=None, seed=None,
- dir_path=None, environment_agents=None,
- environment_params=None, environment_class=None,
- history=History, **kwargs):
+ def __init__(self, config=None,
+ **kwargs):
- self.load_module = load_module
- self.network_params = network_params
- self.name = name or 'Unnamed'
- self.seed = str(seed or name)
- self._id = '{}_{}'.format(self.name, strftime("%Y-%m-%d_%H.%M.%S"))
- self.group = group or ''
- self.num_trials = num_trials
- self.max_time = max_time
- self.default_state = default_state or {}
- self.dir_path = dir_path or os.getcwd()
- self.interval = interval
+ if bool(config) == bool(kwargs):
+ raise ValueError("Specify either a configuration or the parameters to initialize a configuration")
- sys.path += list(x for x in [os.getcwd(), self.dir_path] if x not in sys.path)
+ if kwargs:
+ config = Config(**kwargs)
- if topology is None:
- topology = serialization.load_network(network_params,
- dir_path=self.dir_path)
- elif isinstance(topology, basestring) or isinstance(topology, dict):
- topology = json_graph.node_link_graph(topology)
- self.topology = nx.Graph(topology)
+ self.config = config
-
- self.environment_params = environment_params or {}
- self.environment_class = serialization.deserialize(environment_class,
- known_modules=['soil.environment', ]) or Environment
-
- environment_agents = environment_agents or []
- self.environment_agents = agents._convert_agent_types(environment_agents,
- known_modules=[self.load_module])
-
- distro = agents.calculate_distribution(network_agents,
- agent_type)
- self.network_agents = agents._convert_agent_types(distro,
- known_modules=[self.load_module])
-
- self.states = agents._validate_states(states,
- self.topology)
-
- if history == True:
- history = History
- elif not history:
- history = NoHistory
-
- self._history = history(name=self.name,
- backup=False)
+ @property
+ def name(self) -> str:
+ return self.config.name
def run_simulation(self, *args, **kwargs):
return self.run(*args, **kwargs)
@@ -153,13 +58,13 @@ class Simulation:
if parallel and not os.environ.get('SENPY_DEBUG', None):
p = Pool()
func = partial(self.run_trial_exceptions, **kwargs)
- for i in p.imap_unordered(func, range(self.num_trials)):
+ for i in p.imap_unordered(func, range(self.config.num_trials)):
if isinstance(i, Exception):
logger.error('Trial failed:\n\t%s', i.message)
continue
yield i
else:
- for i in range(self.num_trials):
+ for i in range(self.config.num_trials):
yield self.run_trial(trial_id=i,
**kwargs)
@@ -179,50 +84,47 @@ class Simulation:
outdir=outdir,
**exporter_params)
stats = serialization.deserialize_all(simulation=self,
- names=stats,
- known_modules=['soil.stats',],
- **stats_params)
+ names=stats,
+ known_modules=['soil.stats',],
+ **stats_params)
- with utils.timer('simulation {}'.format(self.name)):
+ with utils.timer('simulation {}'.format(self.config.name)):
for stat in stats:
- stat.start()
+ stat.sim_start()
for exporter in exporters:
exporter.start()
+
for env in self._run_sync_or_async(parallel=parallel,
log_level=log_level,
**kwargs):
- collected = list(stat.trial(env) for stat in stats)
+ for exporter in exporters:
+ exporter.trial_start(env)
- saved = self.save_stats(collected, t_step=env.now, trial_id=env.name)
+ collected = list(stat.trial_end(env) for stat in stats)
+
+ saved = self._update_stats(collected, t_step=env.now, trial_id=env.name)
for exporter in exporters:
- exporter.trial(env, saved)
+ exporter.trial_end(env, saved)
yield env
-
collected = list(stat.end() for stat in stats)
- saved = self.save_stats(collected)
+ saved = self._update_stats(collected)
for exporter in exporters:
- exporter.end(saved)
+ exporter.sim_end(saved)
-
- def save_stats(self, collection, **kwargs):
+ def _update_stats(self, collection, **kwargs):
stats = dict(kwargs)
for stat in collection:
stats.update(stat)
- self._history.save_stats(utils.flatten_dict(stats))
return stats
- def get_stats(self, **kwargs):
- return self._history.get_stats(**kwargs)
-
def log_stats(self, stats):
logger.info('Stats: \n{}'.format(yaml.dump(stats, default_flow_style=False)))
-
def get_env(self, trial_id=0, **kwargs):
'''Create an environment for a trial of the simulation'''
@@ -246,18 +148,20 @@ class Simulation:
env = self.environment_class(**opts)
return env
- def run_trial(self, trial_id=0, until=None, log_level=logging.INFO, **opts):
+ def run_trial(self, trial_id=None, until=None, log_level=logging.INFO, **opts):
"""
Run a single trial of the simulation
"""
+ trial_id = trial_id if trial_id is not None else current_time()
if log_level:
logger.setLevel(log_level)
# Set-up trial environment and graph
- until = until or self.max_time
- env = self.get_env(trial_id=trial_id, **opts)
+ until = until or self.config.max_time
+
+ env = Environment.from_config(self.config, trial_id=trial_id)
# Set up agents on nodes
- with utils.timer('Simulation {} trial {}'.format(self.name, trial_id)):
+ with utils.timer('Simulation {} trial {}'.format(self.config.name, trial_id)):
env.run(until)
return env
@@ -274,64 +178,6 @@ class Simulation:
ex.message = ''.join(traceback.format_exception(type(ex), ex, ex.__traceback__)[:])
return ex
- def to_dict(self):
- return self.__getstate__()
-
- def to_yaml(self):
- return yaml.dump(self.to_dict())
-
-
- def dump_yaml(self, f=None, outdir=None):
- if not f and not outdir:
- raise ValueError('specify a file or an output directory')
-
- if not f:
- f = os.path.join(outdir, '{}.dumped.yml'.format(self.name))
-
- with utils.open_or_reuse(f, 'w') as f:
- f.write(self.to_yaml())
-
- def dump_pickle(self, f=None, outdir=None):
- if not outdir and not f:
- raise ValueError('specify a file or an output directory')
-
- if not f:
- f = os.path.join(outdir,
- '{}.simulation.pickle'.format(self.name))
- with utils.open_or_reuse(f, 'wb') as f:
- pickle.dump(self, f)
-
- def dump_sqlite(self, f):
- return self._history.dump(f)
-
- def __getstate__(self):
- state={}
- for k, v in self.__dict__.items():
- if k[0] != '_':
- state[k] = v
- state['topology'] = json_graph.node_link_data(self.topology)
- state['network_agents'] = agents.serialize_definition(self.network_agents,
- known_modules = [])
- state['environment_agents'] = agents.serialize_definition(self.environment_agents,
- known_modules = [])
- state['environment_class'] = serialization.serialize(self.environment_class,
- known_modules=['soil.environment'])[1] # func, name
- if state['load_module'] is None:
- del state['load_module']
- return state
-
- def __setstate__(self, state):
- self.__dict__ = state
- self.load_module = getattr(self, 'load_module', None)
- if self.dir_path not in sys.path:
- sys.path += [self.dir_path, os.getcwd()]
- self.topology = json_graph.node_link_graph(state['topology'])
- self.network_agents = agents.calculate_distribution(agents._convert_agent_types(self.network_agents))
- self.environment_agents = agents._convert_agent_types(self.environment_agents,
- known_modules=[self.load_module])
- self.environment_class = serialization.deserialize(self.environment_class,
- known_modules=[self.load_module, 'soil.environment', ]) # func, name
-
def all_from_config(config):
configs = list(serialization.load_config(config))
diff --git a/soil/stats.py b/soil/stats.py
index 84082bd..5de9a40 100644
--- a/soil/stats.py
+++ b/soil/stats.py
@@ -8,18 +8,23 @@ class Stats:
if you don't plan to implement all the methods.
'''
- def __init__(self, simulation):
+ def __init__(self, simulation, name=None):
+ self.name = name or type(self).__name__
self.simulation = simulation
- def start(self):
+ def sim_start(self):
'''Method to call when the simulation starts'''
pass
- def end(self):
+ def sim_end(self):
'''Method to call when the simulation ends'''
return {}
- def trial(self, env):
+ def trial_start(self, env):
+ '''Method to call when a trial starts'''
+ return {}
+
+ def trial_end(self, env):
'''Method to call when a trial ends'''
return {}
@@ -30,12 +35,12 @@ class distribution(Stats):
the mean value, and its deviation.
'''
- def start(self):
+ def sim_start(self):
self.means = []
self.counts = []
- def trial(self, env):
- df = env.df()
+ def trial_end(self, env):
+ df = pd.DataFrame(env.state_to_tuples())
df = df.drop('SEED', axis=1)
ix = df.index[-1]
attrs = df.columns.get_level_values(0)
@@ -60,7 +65,7 @@ class distribution(Stats):
return stats
- def end(self):
+ def sim_end(self):
dfm = pd.DataFrame(self.means, columns=['metric', 'key', 'value'])
dfc = pd.DataFrame(self.counts, columns=['metric', 'key', 'value', 'count'])
@@ -87,7 +92,7 @@ class distribution(Stats):
class defaultStats(Stats):
- def trial(self, env):
+ def trial_end(self, env):
c = Counter()
c.update(a.__class__.__name__ for a in env.network_agents)
From bbaed636a8cb59136407bb5203a5276d7159b129 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Tue, 10 May 2022 16:29:06 +0200
Subject: [PATCH 03/39] WIP
---
README.md | 1 +
docs/configuration.rst | 35 +-
examples/complete.yml | 61 +--
examples/newsspread/NewsSpread.yml | 29 +-
examples/rabbits/rabbits.yml | 1 -
examples/terrorism/TerroristNetworkModel.yml | 9 +-
requirements.txt | 1 +
soil/config.py | 378 ++++++++-----------
soil/config_old.py | 264 +++++++++++++
soil/environment.py | 144 +++----
soil/exporters.py | 47 ++-
soil/serialization.py | 15 +-
soil/simulation.py | 38 +-
tests/old_complete.yml | 32 ++
tests/test_config.py | 62 +++
tests/test_examples.py | 6 +-
tests/test_history.py | 128 +++++++
tests/test_main.py | 160 +++-----
18 files changed, 887 insertions(+), 524 deletions(-)
create mode 100644 soil/config_old.py
create mode 100644 tests/old_complete.yml
create mode 100644 tests/test_config.py
create mode 100644 tests/test_history.py
diff --git a/README.md b/README.md
index 714d4df..7ea6f1d 100644
--- a/README.md
+++ b/README.md
@@ -39,6 +39,7 @@ As of this writing,
This is a non-exhaustive list of tasks to achieve compatibility:
* Environments.agents and mesa.Agent.agents are not the same. env is a property, and it only takes into account network and environment agents. Might rename environment_agents to other_agents or sth like that
+
- [ ] Integrate `soil.Simulation` with mesa's runners:
- [ ] `soil.Simulation` could mimic/become a `mesa.batchrunner`
- [ ] Integrate `soil.Environment` with `mesa.Model`:
diff --git a/docs/configuration.rst b/docs/configuration.rst
index c829a2f..3d5a88d 100644
--- a/docs/configuration.rst
+++ b/docs/configuration.rst
@@ -88,9 +88,18 @@ For example, the following configuration is equivalent to :code:`nx.complete_gra
Environment
============
+
The environment is the place where the shared state of the simulation is stored.
-For instance, the probability of disease outbreak.
-The configuration file may specify the initial value of the environment parameters:
+That means both global parameters, such as the probability of disease outbreak.
+But it also means other data, such as a map, or a network topology that connects multiple agents.
+As a result, it is also typical to add custom functions in an environment that help agents interact with each other and with the state of the simulation.
+
+Last but not least, an environment controls when and how its agents will be executed.
+By default, soil environments incorporate a ``soil.time.TimedActivation`` model for agent execution (more on this on the following section).
+
+Soil environments are very similar, and often interchangeable with, mesa models (``mesa.Model``).
+
+A configuration may specify the initial value of the environment parameters:
.. code:: yaml
@@ -98,23 +107,33 @@ The configuration file may specify the initial value of the environment paramete
daily_probability_of_earthquake: 0.001
number_of_earthquakes: 0
-All agents have access to the environment parameters.
+All agents have access to the environment (and its parameters).
In some scenarios, it is useful to have a custom environment, to provide additional methods or to control the way agents update environment state.
For example, if our agents play the lottery, the environment could provide a method to decide whether the agent wins, instead of leaving it to the agent.
-
Agents
======
+
Agents are a way of modelling behavior.
Agents can be characterized with two variables: agent type (``agent_type``) and state.
-Only one agent is executed at a time (generally, every ``interval`` seconds), and it has access to its state and the environment parameters.
+The agent type is a ``soil.Agent`` class, which contains the code that encapsulates the behavior of the agent.
+The state is a set of variables, which may change during the simulation, and that the code may use to control the behavior.
+All agents provide a ``step`` method either explicitly or implicitly (by inheriting it from a superclass), which controls how the agent will behave in each step of the simulation.
+
+When and how agent steps are executed in a simulation depends entirely on the ``environment``.
+Most environments will internally use a scheduler (``mesa.time.BaseScheduler``), which controls the activation of agents.
+
+In soil, we generally used the ``soil.time.TimedActivation`` scheduler, which allows agents to specify when their next activation will happen, defaulting to a
+
+When an agent's step is executed (generally, every ``interval`` seconds), the agent has access to its state and the environment.
Through the environment, it can access the network topology and the state of other agents.
-There are three three types of agents according to how they are added to the simulation: network agents and environment agent.
+There are two types of agents according to how they are added to the simulation: network agents and environment agent.
Network Agents
##############
+
Network agents are attached to a node in the topology.
The configuration file allows you to specify how agents will be mapped to topology nodes.
@@ -125,7 +144,9 @@ Hence, every node in the network will be associated to an agent of that type.
agent_type: SISaModel
-It is also possible to add more than one type of agent to the simulation, and to control the ratio of each type (using the ``weight`` property).
+It is also possible to add more than one type of agent to the simulation.
+
+To control the ratio of each type (using the ``weight`` property).
For instance, with following configuration, it is five times more likely for a node to be assigned a CounterModel type than a SISaModel type.
.. code:: yaml
diff --git a/examples/complete.yml b/examples/complete.yml
index b3d388a..a4b5b04 100644
--- a/examples/complete.yml
+++ b/examples/complete.yml
@@ -1,27 +1,38 @@
---
-name: simple
-group: tests
-dir_path: "/tmp/"
-num_trials: 3
-max_time: 100
-interval: 1
-seed: "CompleteSeed!"
-network_params:
- generator: complete_graph
- n: 10
-network_agents:
- - agent_type: CounterModel
- weight: 1
+general:
+ name: simple
+ group: tests
+ dir_path: "/tmp/"
+ num_trials: 3
+ max_time: 100
+ interval: 1
+ seed: "CompleteSeed!"
+network:
+ group:
+ network
+ params:
+ generator: complete_graph
+ n: 10
+environment:
+ environment_class: Environment
+ params:
+ am_i_complete: true
+agents:
+ default:
+ agent_class: CounterModel
state:
- state_id: 0
- - agent_type: AggregatedCounter
- weight: 0.2
-environment_agents: []
-environment_class: Environment
-environment_params:
- am_i_complete: true
-default_state:
- incidents: 0
-states:
- - name: 'The first node'
- - name: 'The second node'
+ times: 1
+ environment:
+ fixed:
+ - agent_id: 'Environment Agent 1'
+ agent_class: CounterModel
+ state:
+ times: 10
+ network:
+ distribution:
+ - agent_class: CounterModel
+ weight: 1
+ state:
+ state_id: 0
+ - agent_class: AggregatedCounter
+ weight: 0.2
diff --git a/examples/newsspread/NewsSpread.yml b/examples/newsspread/NewsSpread.yml
index ffb1778..27f8411 100644
--- a/examples/newsspread/NewsSpread.yml
+++ b/examples/newsspread/NewsSpread.yml
@@ -1,6 +1,5 @@
---
default_state: {}
-load_module: newsspread
environment_agents: []
environment_params:
prob_neighbor_spread: 0.0
@@ -9,11 +8,11 @@ interval: 1
max_time: 300
name: Sim_all_dumb
network_agents:
-- agent_type: DumbViewer
+- agent_type: newsspread.DumbViewer
state:
has_tv: false
weight: 1
-- agent_type: DumbViewer
+- agent_type: newsspread.DumbViewer
state:
has_tv: true
weight: 1
@@ -24,7 +23,6 @@ network_params:
num_trials: 50
---
default_state: {}
-load_module: newsspread
environment_agents: []
environment_params:
prob_neighbor_spread: 0.0
@@ -33,19 +31,19 @@ interval: 1
max_time: 300
name: Sim_half_herd
network_agents:
-- agent_type: DumbViewer
+- agent_type: newsspread.DumbViewer
state:
has_tv: false
weight: 1
-- agent_type: DumbViewer
+- agent_type: newsspread.DumbViewer
state:
has_tv: true
weight: 1
-- agent_type: HerdViewer
+- agent_type: newsspread.HerdViewer
state:
has_tv: false
weight: 1
-- agent_type: HerdViewer
+- agent_type: newsspread.HerdViewer
state:
has_tv: true
weight: 1
@@ -56,7 +54,6 @@ network_params:
num_trials: 50
---
default_state: {}
-load_module: newsspread
environment_agents: []
environment_params:
prob_neighbor_spread: 0.0
@@ -65,12 +62,12 @@ interval: 1
max_time: 300
name: Sim_all_herd
network_agents:
-- agent_type: HerdViewer
+- agent_type: newsspread.HerdViewer
state:
has_tv: true
state_id: neutral
weight: 1
-- agent_type: HerdViewer
+- agent_type: newsspread.HerdViewer
state:
has_tv: true
state_id: neutral
@@ -82,7 +79,6 @@ network_params:
num_trials: 50
---
default_state: {}
-load_module: newsspread
environment_agents: []
environment_params:
prob_neighbor_spread: 0.0
@@ -92,12 +88,12 @@ interval: 1
max_time: 300
name: Sim_wise_herd
network_agents:
-- agent_type: HerdViewer
+- agent_type: newsspread.HerdViewer
state:
has_tv: true
state_id: neutral
weight: 1
-- agent_type: WiseViewer
+- agent_type: newsspread.WiseViewer
state:
has_tv: true
weight: 1
@@ -108,7 +104,6 @@ network_params:
num_trials: 50
---
default_state: {}
-load_module: newsspread
environment_agents: []
environment_params:
prob_neighbor_spread: 0.0
@@ -118,12 +113,12 @@ interval: 1
max_time: 300
name: Sim_all_wise
network_agents:
-- agent_type: WiseViewer
+- agent_type: newsspread.WiseViewer
state:
has_tv: true
state_id: neutral
weight: 1
-- agent_type: WiseViewer
+- agent_type: newsspread.WiseViewer
state:
has_tv: true
weight: 1
diff --git a/examples/rabbits/rabbits.yml b/examples/rabbits/rabbits.yml
index a78a5db..a4ec8e8 100644
--- a/examples/rabbits/rabbits.yml
+++ b/examples/rabbits/rabbits.yml
@@ -1,5 +1,4 @@
---
-load_module: rabbit_agents
name: rabbits_example
max_time: 100
interval: 1
diff --git a/examples/terrorism/TerroristNetworkModel.yml b/examples/terrorism/TerroristNetworkModel.yml
index 401b77d..45dd1aa 100644
--- a/examples/terrorism/TerroristNetworkModel.yml
+++ b/examples/terrorism/TerroristNetworkModel.yml
@@ -1,5 +1,4 @@
name: TerroristNetworkModel_sim
-load_module: TerroristNetworkModel
max_time: 150
num_trials: 1
network_params:
@@ -9,19 +8,19 @@ network_params:
# theta: 20
n: 100
network_agents:
- - agent_type: TerroristNetworkModel
+ - agent_type: TerroristNetworkModel.TerroristNetworkModel
weight: 0.8
state:
id: civilian # Civilians
- - agent_type: TerroristNetworkModel
+ - agent_type: TerroristNetworkModel.TerroristNetworkModel
weight: 0.1
state:
id: leader # Leaders
- - agent_type: TrainingAreaModel
+ - agent_type: TerroristNetworkModel.TrainingAreaModel
weight: 0.05
state:
id: terrorist # Terrorism
- - agent_type: HavenModel
+ - agent_type: TerroristNetworkModel.HavenModel
weight: 0.05
state:
id: civilian # Civilian
diff --git a/requirements.txt b/requirements.txt
index 9d28021..2660dfd 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -7,3 +7,4 @@ SALib>=1.3
Jinja2
Mesa>=0.8.9
tsih>=0.1.6
+pydantic>=1.9
diff --git a/soil/config.py b/soil/config.py
index 390be62..4f4ceed 100644
--- a/soil/config.py
+++ b/soil/config.py
@@ -1,251 +1,183 @@
+from __future__ import annotations
+from pydantic import BaseModel, ValidationError, validator, root_validator
+
import yaml
import os
import sys
-import networkx as nx
-import collections.abc
-from . import serialization, utils, basestring, agents
+from typing import Any, Callable, Dict, List, Optional, Union, Type
+from pydantic import BaseModel, Extra
-class Config(collections.abc.Mapping):
- """
+class General(BaseModel):
+ id: str = 'Unnamed Simulation'
+ group: str = None
+ dir_path: str = None
+ num_trials: int = 1
+ max_time: float = 100
+ interval: float = 1
+ seed: str = ""
- 1) agent type can be specified by name or by class.
- 2) instead of just one type, a network agents distribution can be used.
- The distribution specifies the weight (or probability) of each
- agent type in the topology. This is an example distribution: ::
-
- [
- {'agent_type': 'agent_type_1',
- 'weight': 0.2,
- 'state': {
- 'id': 0
- }
- },
- {'agent_type': 'agent_type_2',
- 'weight': 0.8,
- 'state': {
- 'id': 1
- }
- }
- ]
-
- In this example, 20% of the nodes will be marked as type
- 'agent_type_1'.
- 3) if no initial state is given, each node's state will be set
- to `{'id': 0}`.
-
- Parameters
- ---------
- name : str, optional
- name of the Simulation
- group : str, optional
- a group name can be used to link simulations
- topology (optional): networkx.Graph instance or Node-Link topology as a dict or string (will be loaded with `json_graph.node_link_graph(topology`).
- network_params : dict
- parameters used to create a topology with networkx, if no topology is given
- network_agents : dict
- definition of agents to populate the topology with
- agent_type : NetworkAgent subclass, optional
- Default type of NetworkAgent to use for nodes not specified in network_agents
- states : list, optional
- List of initial states corresponding to the nodes in the topology. Basic form is a list of integers
- whose value indicates the state
- dir_path: str, optional
- Directory path to load simulation assets (files, modules...)
- seed : str, optional
- Seed to use for the random generator
- num_trials : int, optional
- Number of independent simulation runs
- max_time : int, optional
- Maximum step/time for each simulation
- environment_params : dict, optional
- Dictionary of globally-shared environmental parameters
- environment_agents: dict, optional
- Similar to network_agents. Distribution of Agents that control the environment
- environment_class: soil.environment.Environment subclass, optional
- Class for the environment. It defailts to soil.environment.Environment
- """
- __slots__ = 'name', 'agent_type', 'group', 'network_agents', 'environment_agents', 'states', 'default_state', 'interval', 'network_params', 'seed', 'num_trials', 'max_time', 'topology', 'schedule', 'initial_time', 'environment_params', 'environment_class', 'dir_path', '_added_to_path'
-
- def __init__(self, name=None,
- group=None,
- agent_type='BaseAgent',
- network_agents=None,
- environment_agents=None,
- states=None,
- default_state=None,
- interval=1,
- network_params=None,
- seed=None,
- num_trials=1,
- max_time=None,
- topology=None,
- schedule=None,
- initial_time=0,
- environment_params={},
- environment_class='soil.Environment',
- dir_path=None):
-
- self.network_params = network_params
- self.name = name or 'Unnamed'
- self.seed = str(seed or name)
- self.group = group or ''
- self.num_trials = num_trials
- self.max_time = max_time
- self.default_state = default_state or {}
- self.dir_path = dir_path or os.getcwd()
- self.interval = interval
-
- self._added_to_path = list(x for x in [os.getcwd(), self.dir_path] if x not in sys.path)
- sys.path += self._added_to_path
-
- self.topology = topology
-
- self.schedule = schedule
- self.initial_time = initial_time
+ @staticmethod
+ def default():
+ return General()
- self.environment_class = environment_class
- self.environment_params = dict(environment_params)
+# Could use TypeAlias in python >= 3.10
+nodeId = int
- #TODO: Check agent distro vs fixed agents
- self.environment_agents = environment_agents or []
-
- self.agent_type = agent_type
-
- self.network_agents = network_agents or {}
-
- self.states = states or {}
+class Node(BaseModel):
+ id: nodeId
+ state: Dict[str, Any]
- def validate(self):
- agents._validate_states(self.states,
- self._topology)
+class Edge(BaseModel):
+ source: nodeId
+ target: nodeId
+ value: float = 1
- def restore_path(self):
- for added in self._added_to_path:
- sys.path.remove(added)
- def to_yaml(self):
- return yaml.dump(self.to_dict())
+class Topology(BaseModel):
+ nodes: List[Node]
+ directed: bool
+ links: List[Edge]
- def dump_yaml(self, f=None, outdir=None):
- if not f and not outdir:
- raise ValueError('specify a file or an output directory')
- if not f:
- f = os.path.join(outdir, '{}.dumped.yml'.format(self.name))
+class NetParams(BaseModel, extra=Extra.allow):
+ generator: Union[Callable, str]
+ n: int
- with utils.open_or_reuse(f, 'w') as f:
- f.write(self.to_yaml())
- def to_yaml(self):
- return yaml.dump(self.to_dict())
+class NetConfig(BaseModel):
+ group: str = 'network'
+ params: Optional[NetParams]
+ topology: Optional[Topology]
+ path: Optional[str]
- # TODO: See note on getstate
- def to_dict(self):
- return self.__getstate__()
-
- def dump_yaml(self, f=None, outdir=None):
- if not f and not outdir:
- raise ValueError('specify a file or an output directory')
-
- if not f:
- f = os.path.join(outdir, '{}.dumped.yml'.format(self.name))
-
- with utils.open_or_reuse(f, 'w') as f:
- f.write(self.to_yaml())
-
- def __getitem__(self, key):
- return getattr(self, key)
-
- def __iter__(self):
- return (k for k in self.__slots__ if k[0] != '_')
-
- def __len__(self):
- return len(self.__slots__)
-
- def dump_pickle(self, f=None, outdir=None):
- if not outdir and not f:
- raise ValueError('specify a file or an output directory')
-
- if not f:
- f = os.path.join(outdir,
- '{}.simulation.pickle'.format(self.name))
- with utils.open_or_reuse(f, 'wb') as f:
- pickle.dump(self, f)
-
- # TODO: remove this. A config should be sendable regardless. Non-pickable objects could be computed via properties and the like
- # def __getstate__(self):
- # state={}
- # for k, v in self.__dict__.items():
- # if k[0] != '_':
- # state[k] = v
- # state['topology'] = json_graph.node_link_data(self.topology)
- # state['network_agents'] = agents.serialize_definition(self.network_agents,
- # known_modules = [])
- # state['environment_agents'] = agents.serialize_definition(self.environment_agents,
- # known_modules = [])
- # state['environment_class'] = serialization.serialize(self.environment_class,
- # known_modules=['soil.environment'])[1] # func, name
- # if state['load_module'] is None:
- # del state['load_module']
- # return state
-
- # # TODO: remove, same as __getstate__
- # def __setstate__(self, state):
- # self.__dict__ = state
- # self.load_module = getattr(self, 'load_module', None)
- # if self.dir_path not in sys.path:
- # sys.path += [self.dir_path, os.getcwd()]
- # self.topology = json_graph.node_link_graph(state['topology'])
- # self.network_agents = agents.calculate_distribution(agents._convert_agent_types(self.network_agents))
- # self.environment_agents = agents._convert_agent_types(self.environment_agents,
- # known_modules=[self.load_module])
- # self.environment_class = serialization.deserialize(self.environment_class,
- # known_modules=[self.load_module,
- # 'soil.environment', ]) # func, name
-
-class CalculatedConfig(Config):
- def __init__(self, config):
- """
- Returns a configuration object that replaces some "plain" attributes (e.g., `environment_class` string) into
- a Python object (`soil.environment.Environment` class).
- """
- self._config = config
- values = dict(config)
- values['environment_class'] = self._environment_class()
- values['environment_agents'] = self._environment_agents()
- values['topology'] = self._topology()
- values['network_agents'] = self._network_agents()
- values['agent_type'] = serialization.deserialize(self.agent_type, known_modules=['soil.agents'])
+ @staticmethod
+ def default():
+ return NetConfig(topology=None, params=None)
+ @root_validator
+ def validate_all(cls, values):
+ if 'params' not in values and 'topology' not in values:
+ raise ValueError('You must specify either a topology or the parameters to generate a graph')
return values
- def _topology(self):
- topology = self._config.topology
- if topology is None:
- topology = serialization.load_network(self._config.network_params,
- dir_path=self._config.dir_path)
- elif isinstance(topology, basestring) or isinstance(topology, dict):
- topology = json_graph.node_link_graph(topology)
+class EnvConfig(BaseModel):
+ environment_class: Union[Type, str] = 'soil.Environment'
+ params: Dict[str, Any] = {}
+ schedule: Union[Type, str] = 'soil.time.TimedActivation'
- return nx.Graph(topology)
+ @staticmethod
+ def default():
+ return EnvConfig()
- def _environment_class(self):
- return serialization.deserialize(self._config.environment_class,
- known_modules=['soil.environment', ]) or Environment
- def _environment_agents(self):
- return agents._convert_agent_types(self._config.environment_agents)
+class SingleAgentConfig(BaseModel):
+ agent_class: Union[Type, str] = 'soil.Agent'
+ agent_id: Optional[Union[str, int]] = None
+ params: Dict[str, Any] = {}
+ state: Dict[str, Any] = {}
- def _network_agents(self):
- distro = agents.calculate_distribution(self._config.network_agents,
- self._config.agent_type)
- return agents._convert_agent_types(distro)
- def _environment_class(self):
- return serialization.deserialize(self._config.environment_class,
- known_modules=['soil.environment', ]) # func, name
+class AgentDistro(SingleAgentConfig):
+ weight: Optional[float] = None
+ n: Optional[int] = None
+ @root_validator
+ def validate_all(cls, values):
+ if 'weight' in values and 'count' in values:
+ raise ValueError("You may either specify a weight in the distribution or an agent count")
+ return values
+
+
+class AgentConfig(SingleAgentConfig):
+ n: Optional[int] = None
+ distribution: Optional[List[AgentDistro]] = None
+ fixed: Optional[List[SingleAgentConfig]] = None
+
+ @staticmethod
+ def default():
+ return AgentConfig()
+
+
+class Config(BaseModel, extra=Extra.forbid):
+ general: General = General.default()
+ network: Optional[NetConfig] = None
+ environment: EnvConfig = EnvConfig.default()
+ agents: Dict[str, AgentConfig] = {}
+
+
+def convert_old(old):
+ '''
+ Try to convert old style configs into the new format.
+
+ This is still a work in progress and might not work in many cases.
+ '''
+ new = {}
+
+
+ general = {}
+ for k in ['id',
+ 'group',
+ 'dir_path',
+ 'num_trials',
+ 'max_time',
+ 'interval',
+ 'seed']:
+ if k in old:
+ general[k] = old[k]
+
+ network = {'group': 'network'}
+
+
+ if 'network_params' in old and old['network_params']:
+ for (k, v) in old['network_params'].items():
+ if k == 'path':
+ network['path'] = v
+ else:
+ network.setdefault('params', {})[k] = v
+
+ if 'topology' in old:
+ network['topology'] = old['topology']
+
+ agents = {
+ 'environment': {
+ 'fixed': []
+ },
+ 'network': {},
+ 'default': {},
+ }
+
+ if 'agent_type' in old:
+ agents['default']['agent_class'] = old['agent_type']
+
+ if 'default_state' in old:
+ agents['default']['state'] = old['default_state']
+
+
+ def updated_agent(agent):
+ newagent = dict(agent)
+ newagent['agent_class'] = newagent['agent_type']
+ del newagent['agent_type']
+ return newagent
+
+ for agent in old.get('environment_agents', []):
+ agents['environment']['fixed'].append(updated_agent(agent))
+
+ for agent in old.get('network_agents', []):
+ agents['network'].setdefault('distribution', []).append(updated_agent(agent))
+
+ environment = {'params': {}}
+ if 'environment_class' in old:
+ environment['environment_class'] = old['environment_class']
+
+ for (k, v) in old.get('environment_params', {}).items():
+ environment['params'][k] = v
+
+
+ return Config(general=general,
+ network=network,
+ environment=environment,
+ agents=agents)
diff --git a/soil/config_old.py b/soil/config_old.py
new file mode 100644
index 0000000..ca4eaa9
--- /dev/null
+++ b/soil/config_old.py
@@ -0,0 +1,264 @@
+from pydantic import BaseModel, ValidationError, validator
+
+import yaml
+import os
+import sys
+import networkx as nx
+import collections.abc
+
+from . import serialization, utils, basestring, agents
+
+class Config(collections.abc.Mapping):
+ """
+
+ 1) agent type can be specified by name or by class.
+ 2) instead of just one type, a network agents distribution can be used.
+ The distribution specifies the weight (or probability) of each
+ agent type in the topology. This is an example distribution: ::
+
+ [
+ {'agent_type': 'agent_type_1',
+ 'weight': 0.2,
+ 'state': {
+ 'id': 0
+ }
+ },
+ {'agent_type': 'agent_type_2',
+ 'weight': 0.8,
+ 'state': {
+ 'id': 1
+ }
+ }
+ ]
+
+ In this example, 20% of the nodes will be marked as type
+ 'agent_type_1'.
+ 3) if no initial state is given, each node's state will be set
+ to `{'id': 0}`.
+
+ Parameters
+ ---------
+ name : str, optional
+ name of the Simulation
+ group : str, optional
+ a group name can be used to link simulations
+ topology (optional): networkx.Graph instance or Node-Link topology as a dict or string (will be loaded with `json_graph.node_link_graph(topology`).
+ network_params : dict
+ parameters used to create a topology with networkx, if no topology is given
+ network_agents : dict
+ definition of agents to populate the topology with
+ agent_type : NetworkAgent subclass, optional
+ Default type of NetworkAgent to use for nodes not specified in network_agents
+ states : list, optional
+ List of initial states corresponding to the nodes in the topology. Basic form is a list of integers
+ whose value indicates the state
+ dir_path: str, optional
+ Directory path to load simulation assets (files, modules...)
+ seed : str, optional
+ Seed to use for the random generator
+ num_trials : int, optional
+ Number of independent simulation runs
+ max_time : int, optional
+ Maximum step/time for each simulation
+ environment_params : dict, optional
+ Dictionary of globally-shared environmental parameters
+ environment_agents: dict, optional
+ Similar to network_agents. Distribution of Agents that control the environment
+ environment_class: soil.environment.Environment subclass, optional
+ Class for the environment. It defailts to soil.environment.Environment
+ """
+ __slots__ = 'name', 'agent_type', 'group', 'description', 'network_agents', 'environment_agents', 'states', 'default_state', 'interval', 'network_params', 'seed', 'num_trials', 'max_time', 'topology', 'schedule', 'initial_time', 'environment_params', 'environment_class', 'dir_path', '_added_to_path', 'visualization_params'
+
+ def __init__(self, name=None,
+ group=None,
+ agent_type='BaseAgent',
+ network_agents=None,
+ environment_agents=None,
+ states=None,
+ description=None,
+ default_state=None,
+ interval=1,
+ network_params=None,
+ seed=None,
+ num_trials=1,
+ max_time=None,
+ topology=None,
+ schedule=None,
+ initial_time=0,
+ environment_params={},
+ environment_class='soil.Environment',
+ dir_path=None,
+ visualization_params=None,
+ ):
+
+ self.network_params = network_params
+ self.name = name or 'Unnamed'
+ self.description = description or 'No simulation description available'
+ self.seed = str(seed or name)
+ self.group = group or ''
+ self.num_trials = num_trials
+ self.max_time = max_time
+ self.default_state = default_state or {}
+ self.dir_path = dir_path or os.getcwd()
+ self.interval = interval
+ self.visualization_params = visualization_params or {}
+
+ self._added_to_path = list(x for x in [os.getcwd(), self.dir_path] if x not in sys.path)
+ sys.path += self._added_to_path
+
+ self.topology = topology
+
+ self.schedule = schedule
+ self.initial_time = initial_time
+
+
+ self.environment_class = environment_class
+ self.environment_params = dict(environment_params)
+
+ #TODO: Check agent distro vs fixed agents
+ self.environment_agents = environment_agents or []
+
+ self.agent_type = agent_type
+
+ self.network_agents = network_agents or {}
+
+ self.states = states or {}
+
+
+ def validate(self):
+ agents._validate_states(self.states,
+ self._topology)
+
+ def calculate(self):
+ return CalculatedConfig(self)
+
+ def restore_path(self):
+ for added in self._added_to_path:
+ sys.path.remove(added)
+
+ def to_yaml(self):
+ return yaml.dump(self.to_dict())
+
+ def dump_yaml(self, f=None, outdir=None):
+ if not f and not outdir:
+ raise ValueError('specify a file or an output directory')
+
+ if not f:
+ f = os.path.join(outdir, '{}.dumped.yml'.format(self.name))
+
+ with utils.open_or_reuse(f, 'w') as f:
+ f.write(self.to_yaml())
+
+ def to_yaml(self):
+ return yaml.dump(self.to_dict())
+
+ # TODO: See note on getstate
+ def to_dict(self):
+ return dict(self)
+
+ def __repr__(self):
+ return self.to_yaml()
+
+ def dump_yaml(self, f=None, outdir=None):
+ if not f and not outdir:
+ raise ValueError('specify a file or an output directory')
+
+ if not f:
+ f = os.path.join(outdir, '{}.dumped.yml'.format(self.name))
+
+ with utils.open_or_reuse(f, 'w') as f:
+ f.write(self.to_yaml())
+
+ def __getitem__(self, key):
+ return getattr(self, key)
+
+ def __iter__(self):
+ return (k for k in self.__slots__ if k[0] != '_')
+
+ def __len__(self):
+ return len(self.__slots__)
+
+ def dump_pickle(self, f=None, outdir=None):
+ if not outdir and not f:
+ raise ValueError('specify a file or an output directory')
+
+ if not f:
+ f = os.path.join(outdir,
+ '{}.simulation.pickle'.format(self.name))
+ with utils.open_or_reuse(f, 'wb') as f:
+ pickle.dump(self, f)
+
+ # TODO: remove this. A config should be sendable regardless. Non-pickable objects could be computed via properties and the like
+ # def __getstate__(self):
+ # state={}
+ # for k, v in self.__dict__.items():
+ # if k[0] != '_':
+ # state[k] = v
+ # state['topology'] = json_graph.node_link_data(self.topology)
+ # state['network_agents'] = agents.serialize_definition(self.network_agents,
+ # known_modules = [])
+ # state['environment_agents'] = agents.serialize_definition(self.environment_agents,
+ # known_modules = [])
+ # state['environment_class'] = serialization.serialize(self.environment_class,
+ # known_modules=['soil.environment'])[1] # func, name
+ # if state['load_module'] is None:
+ # del state['load_module']
+ # return state
+
+ # # TODO: remove, same as __getstate__
+ # def __setstate__(self, state):
+ # self.__dict__ = state
+ # self.load_module = getattr(self, 'load_module', None)
+ # if self.dir_path not in sys.path:
+ # sys.path += [self.dir_path, os.getcwd()]
+ # self.topology = json_graph.node_link_graph(state['topology'])
+ # self.network_agents = agents.calculate_distribution(agents._convert_agent_types(self.network_agents))
+ # self.environment_agents = agents._convert_agent_types(self.environment_agents,
+ # known_modules=[self.load_module])
+ # self.environment_class = serialization.deserialize(self.environment_class,
+ # known_modules=[self.load_module,
+ # 'soil.environment', ]) # func, name
+
+class CalculatedConfig(Config):
+ def __init__(self, config):
+ """
+ Returns a configuration object that replaces some "plain" attributes (e.g., `environment_class` string) into
+ a Python object (`soil.environment.Environment` class).
+ """
+ self._config = config
+ values = dict(config)
+ values['environment_class'] = self._environment_class()
+ values['environment_agents'] = self._environment_agents()
+ values['topology'] = self._topology()
+ values['network_agents'] = self._network_agents()
+ values['agent_type'] = serialization.deserialize(self.agent_type, known_modules=['soil.agents'])
+
+ return values
+
+ def _topology(self):
+ topology = self._config.topology
+ if topology is None:
+ topology = serialization.load_network(self._config.network_params,
+ dir_path=self._config.dir_path)
+
+ elif isinstance(topology, basestring) or isinstance(topology, dict):
+ topology = json_graph.node_link_graph(topology)
+
+ return nx.Graph(topology)
+
+ def _environment_class(self):
+ return serialization.deserialize(self._config.environment_class,
+ known_modules=['soil.environment', ]) or Environment
+
+ def _environment_agents(self):
+ return agents._convert_agent_types(self._config.environment_agents)
+
+ def _network_agents(self):
+ distro = agents.calculate_distribution(self._config.network_agents,
+ self._config.agent_type)
+ return agents._convert_agent_types(distro)
+
+ def _environment_class(self):
+ return serialization.deserialize(self._config.environment_class,
+ known_modules=['soil.environment', ]) # func, name
+
diff --git a/soil/environment.py b/soil/environment.py
index 6635849..4e00cd9 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -16,13 +16,6 @@ from tsih import Record
from . import serialization, agents, analysis, utils, time, config
-# These properties will be copied when pickling/unpickling the environment
-_CONFIG_PROPS = [ 'name',
- 'states',
- 'default_state',
- 'interval',
- ]
-
class Environment(Model):
"""
The environment is key in a simulation. It contains the network topology,
@@ -34,76 +27,62 @@ class Environment(Model):
:meth:`soil.environment.Environment.get` method.
"""
- def __init__(self, name=None,
- network_agents=None,
- environment_agents=None,
- states=None,
- default_state=None,
- interval=1,
- network_params=None,
- seed=None,
- topology=None,
+ def __init__(self,
+ env_id,
+ seed='default',
schedule=None,
- initial_time=0,
- environment_params=None,
+ env_params=None,
dir_path=None,
**kwargs):
-
super().__init__()
- self.schedule = schedule
- if schedule is None:
- self.schedule = time.TimedActivation()
- self.name = name or 'UnnamedEnvironment'
+ self.seed = '{}_{}'.format(seed, env_id)
+ self.id = env_id
+
+ self.dir_path = dir_path or os.getcwd()
+
+ if schedule is None:
+ schedule = time.TimedActivation()
+ self.schedule = schedule
+
seed = seed or current_time()
+
random.seed(seed)
+
if isinstance(states, list):
states = dict(enumerate(states))
self.states = deepcopy(states) if states else {}
self.default_state = deepcopy(default_state) or {}
- if topology is None:
- network_params = network_params or {}
- topology = serialization.load_network(network_params,
- dir_path=dir_path)
- if not topology:
- topology = nx.Graph()
- self.G = nx.Graph(topology)
- self.environment_params = environment_params or {}
- self.environment_params.update(kwargs)
+ self.set_topology(topology=topology,
+ network_params=network_params)
+
+ self.agents = agents or {}
+
+ self.env_params = env_params or {}
+ self.env_params.update(kwargs)
- self._env_agents = {}
self.interval = interval
self['SEED'] = seed
- if network_agents:
- distro = agents.calculate_distribution(network_agents)
- self.network_agents = agents._convert_agent_types(distro)
- else:
- self.network_agents = []
-
- environment_agents = environment_agents or []
- if environment_agents:
- distro = agents.calculate_distribution(environment_agents)
- environment_agents = agents._convert_agent_types(distro)
- self.environment_agents = environment_agents
self.logger = utils.logger.getChild(self.name)
@staticmethod
def from_config(conf: config.Config, trial_id, **kwargs) -> Environment:
'''Create an environment for a trial of the simulation'''
-
- conf = config.Config(conf, **kwargs)
- conf.seed = '{}_{}'.format(conf.seed, trial_id)
- conf.name = '{}_trial_{}'.format(conf.name, trial_id).replace('.', '-')
- opts = conf.environment_params.copy()
+ conf = conf
+ if kwargs:
+ conf = config.Config(**conf.dict(exclude_defaults=True), **kwargs)
+ seed = '{}_{}'.format(conf.general.seed, trial_id)
+ id = '{}_trial_{}'.format(conf.general.id, trial_id).replace('.', '-')
+ opts = conf.environment.params.copy()
opts.update(conf)
opts.update(kwargs)
- env = serialization.deserialize(conf.environment_class)(**opts)
+ env = serialization.deserialize(conf.environment.environment_class)(env_id=id, seed=seed, **opts)
return env
@property
@@ -112,21 +91,30 @@ class Environment(Model):
return self.schedule.time
raise Exception('The environment has not been scheduled, so it has no sense of time')
+
+ def set_topology(self, topology, network_params=None, dir_path=None):
+ if topology is None:
+ network_params = network_params or {}
+ topology = serialization.load_network(network_params,
+ dir_path=dir_path or self.dir_path)
+ if not topology:
+ topology = nx.Graph()
+ self.G = nx.Graph(topology)
+
@property
def agents(self):
- yield from self.environment_agents
- yield from self.network_agents
+ for agents in self.agents.values():
+ yield from agents
- @property
- def environment_agents(self):
- for ref in self._env_agents.values():
- yield ref
+ @agents.setter
+ def agents(self, agents):
+ self.agents = {}
- @environment_agents.setter
- def environment_agents(self, environment_agents):
- self._environment_agents = environment_agents
-
- self._env_agents = agents._definition_to_dict(definition=environment_agents)
+ for (k, v) in agents.items():
+ self.agents[k] = agents.from_config(v)
+ for agent in self.agents.get('network', []):
+ node = self.G.nodes[agent.unique_id]
+ node['agent'] = agent
@property
def network_agents(self):
@@ -135,12 +123,6 @@ class Environment(Model):
if 'agent' in node:
yield node['agent']
- @network_agents.setter
- def network_agents(self, network_agents):
- self._network_agents = network_agents
- for ix in self.G.nodes():
- self.init_agent(ix, agent_definitions=network_agents)
-
def init_agent(self, agent_id, agent_definitions):
node = self.G.nodes[agent_id]
init = False
@@ -251,20 +233,20 @@ class Environment(Model):
value=value)
def __contains__(self, key):
- return key in self.environment_params
+ return key in self.env_params
def get(self, key, default=None):
'''
Get the value of an environment attribute.
Return `default` if the value is not set.
'''
- return self.environment_params.get(key, default)
+ return self.env_params.get(key, default)
def __getitem__(self, key):
- return self.environment_params.get(key)
+ return self.env_params.get(key)
def __setitem__(self, key, value):
- return self.environment_params.__setitem__(key, value)
+ return self.env_params.__setitem__(key, value)
def get_agent(self, agent_id):
return self.G.nodes[agent_id]['agent']
@@ -292,7 +274,7 @@ class Environment(Model):
yield from self._agent_to_tuples(agent, now)
return
- for k, v in self.environment_params.items():
+ for k, v in self.env_params.items():
yield Record(dict_id='env',
t_step=now,
key=k,
@@ -300,23 +282,5 @@ class Environment(Model):
for agent in self.agents:
yield from self._agent_to_tuples(agent, now)
- def __getstate__(self):
- state = {}
- for prop in _CONFIG_PROPS:
- state[prop] = self.__dict__[prop]
- state['G'] = json_graph.node_link_data(self.G)
- state['environment_agents'] = self._env_agents
- state['schedule'] = self.schedule
- return state
-
- def __setstate__(self, state):
- for prop in _CONFIG_PROPS:
- self.__dict__[prop] = state[prop]
- self._env_agents = state['environment_agents']
- self.G = json_graph.node_link_graph(state['G'])
- # self._env = None
- self.schedule = state['schedule']
- self._queue = []
-
SoilEnvironment = Environment
diff --git a/soil/exporters.py b/soil/exporters.py
index f2bbe78..0653517 100644
--- a/soil/exporters.py
+++ b/soil/exporters.py
@@ -2,6 +2,8 @@ import os
import csv as csvlib
from time import time as current_time
from io import BytesIO
+from sqlalchemy import create_engine
+
import matplotlib.pyplot as plt
import networkx as nx
@@ -48,8 +50,8 @@ class Exporter:
self.simulation = simulation
outdir = outdir or os.path.join(os.getcwd(), 'soil_output')
self.outdir = os.path.join(outdir,
- simulation.config.group or '',
- simulation.config.name)
+ simulation.config.general.group or '',
+ simulation.config.general.id)
self.dry_run = dry_run
self.copy_to = copy_to
@@ -84,24 +86,33 @@ class Exporter:
class default(Exporter):
'''Default exporter. Writes sqlite results, as well as the simulation YAML'''
- def sim_start(self):
- if not self.dry_run:
- logger.info('Dumping results to %s', self.outdir)
- self.simulation.dump_yaml(outdir=self.outdir)
- else:
- logger.info('NOT dumping results')
+ # def sim_start(self):
+ # if not self.dry_run:
+ # logger.info('Dumping results to %s', self.outdir)
+ # self.simulation.dump_yaml(outdir=self.outdir)
+ # else:
+ # logger.info('NOT dumping results')
- def trial_start(self, env, stats):
- if not self.dry_run:
- with timer('Dumping simulation {} trial {}'.format(self.simulation.name,
- env.name)):
- with self.output('{}.sqlite'.format(env.name), mode='wb') as f:
- env.dump_sqlite(f)
+ # def trial_start(self, env, stats):
+ # if not self.dry_run:
+ # with timer('Dumping simulation {} trial {}'.format(self.simulation.name,
+ # env.name)):
+ # engine = create_engine('sqlite:///{}.sqlite'.format(env.name), echo=False)
- def sim_end(self, stats):
- with timer('Dumping simulation {}\'s stats'.format(self.simulation.name)):
- with self.output('{}.sqlite'.format(self.simulation.name), mode='wb') as f:
- self.simulation.dump_sqlite(f)
+ # dc = env.datacollector
+ # tables = {'env': dc.get_model_vars_dataframe(),
+ # 'agents': dc.get_agent_vars_dataframe(),
+ # 'agents': dc.get_agent_vars_dataframe()}
+ # for table in dc.tables:
+ # tables[table] = dc.get_table_dataframe(table)
+ # for (t, df) in tables.items():
+ # df.to_sql(t, con=engine)
+
+ # def sim_end(self, stats):
+ # with timer('Dumping simulation {}\'s stats'.format(self.simulation.name)):
+ # engine = create_engine('sqlite:///{}.sqlite'.format(self.simulation.name), echo=False)
+ # with self.output('{}.sqlite'.format(self.simulation.name), mode='wb') as f:
+ # self.simulation.dump_sqlite(f)
diff --git a/soil/serialization.py b/soil/serialization.py
index dd94108..3a10de1 100644
--- a/soil/serialization.py
+++ b/soil/serialization.py
@@ -51,8 +51,6 @@ def load_network(network_params, dir_path=None):
return G
-
-
def load_file(infile):
folder = os.path.dirname(infile)
if folder not in sys.path:
@@ -138,7 +136,9 @@ def load_config(config):
builtins = importlib.import_module('builtins')
-def name(value, known_modules=[]):
+KNOWN_MODULES = ['soil', ]
+
+def name(value, known_modules=KNOWN_MODULES):
'''Return a name that can be imported, to serialize/deserialize an object'''
if value is None:
return 'None'
@@ -167,7 +167,7 @@ def serializer(type_):
return lambda x: x
-def serialize(v, known_modules=[]):
+def serialize(v, known_modules=KNOWN_MODULES):
'''Get a text representation of an object.'''
tname = name(v, known_modules=known_modules)
func = serializer(tname)
@@ -176,7 +176,7 @@ def serialize(v, known_modules=[]):
IS_CLASS = re.compile(r"")
-def deserializer(type_, known_modules=[]):
+def deserializer(type_, known_modules=KNOWN_MODULES):
if type(type_) != str: # Already deserialized
return type_
if type_ == 'str':
@@ -194,10 +194,9 @@ def deserializer(type_, known_modules=[]):
return getattr(cls, 'deserialize', cls)
# Otherwise, see if we can find the module and the class
- modules = known_modules or []
options = []
- for mod in modules:
+ for mod in known_modules:
if mod:
options.append((mod, type_))
@@ -226,7 +225,7 @@ def deserialize(type_, value=None, **kwargs):
return des(value)
-def deserialize_all(names, *args, known_modules=['soil'], **kwargs):
+def deserialize_all(names, *args, known_modules=KNOWN_MODULES, **kwargs):
'''Return the list of deserialized objects'''
objects = []
for name in names:
diff --git a/soil/simulation.py b/soil/simulation.py
index 9985d3e..2f346ca 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -18,7 +18,7 @@ from .utils import logger
from .exporters import default
from .stats import defaultStats
-from .config import Config
+from .config import Config, convert_old
#TODO: change documentation for simulation
@@ -34,18 +34,21 @@ class Simulation:
def __init__(self, config=None,
**kwargs):
-
- if bool(config) == bool(kwargs):
- raise ValueError("Specify either a configuration or the parameters to initialize a configuration")
-
if kwargs:
- config = Config(**kwargs)
+ cfg = {}
+ if config:
+ cfg.update(config.dict(include_defaults=False))
+ cfg.update(kwargs)
+ config = Config(**cfg)
+ if not config:
+ raise ValueError("You need to specify a simulation configuration")
self.config = config
+
@property
def name(self) -> str:
- return self.config.name
+ return self.config.general.id
def run_simulation(self, *args, **kwargs):
return self.run(*args, **kwargs)
@@ -58,13 +61,13 @@ class Simulation:
if parallel and not os.environ.get('SENPY_DEBUG', None):
p = Pool()
func = partial(self.run_trial_exceptions, **kwargs)
- for i in p.imap_unordered(func, range(self.config.num_trials)):
+ for i in p.imap_unordered(func, range(self.config.general.num_trials)):
if isinstance(i, Exception):
logger.error('Trial failed:\n\t%s', i.message)
continue
yield i
else:
- for i in range(self.config.num_trials):
+ for i in range(self.config.general.num_trials):
yield self.run_trial(trial_id=i,
**kwargs)
@@ -88,7 +91,7 @@ class Simulation:
known_modules=['soil.stats',],
**stats_params)
- with utils.timer('simulation {}'.format(self.config.name)):
+ with utils.timer('simulation {}'.format(self.config.general.id)):
for stat in stats:
stat.sim_start()
@@ -157,11 +160,11 @@ class Simulation:
if log_level:
logger.setLevel(log_level)
# Set-up trial environment and graph
- until = until or self.config.max_time
+ until = until or self.config.general.max_time
env = Environment.from_config(self.config, trial_id=trial_id)
# Set up agents on nodes
- with utils.timer('Simulation {} trial {}'.format(self.config.name, trial_id)):
+ with utils.timer('Simulation {} trial {}'.format(self.config.general.id, trial_id)):
env.run(until)
return env
@@ -194,15 +197,22 @@ def from_config(conf_or_path):
sim = Simulation(**config)
return sim
+def from_old_config(conf_or_path):
+ config = list(serialization.load_config(conf_or_path))
+ if len(config) > 1:
+ raise AttributeError('Provide only one configuration')
+ config = convert_old(config[0][0])
+ return Simulation(config)
+
def run_from_config(*configs, **kwargs):
for config_def in configs:
# logger.info("Found {} config(s)".format(len(ls)))
for config, path in serialization.load_config(config_def):
- name = config.get('name', 'unnamed')
+ name = config.general.id
logger.info("Using config(s): {name}".format(name=name))
- dir_path = config.pop('dir_path', os.path.dirname(path))
+ dir_path = config.general.dir_path or os.path.dirname(path)
sim = Simulation(dir_path=dir_path,
**config)
sim.run_simulation(**kwargs)
diff --git a/tests/old_complete.yml b/tests/old_complete.yml
new file mode 100644
index 0000000..4382935
--- /dev/null
+++ b/tests/old_complete.yml
@@ -0,0 +1,32 @@
+---
+name: simple
+group: tests
+dir_path: "/tmp/"
+num_trials: 3
+max_time: 100
+interval: 1
+seed: "CompleteSeed!"
+network_params:
+ generator: complete_graph
+ n: 10
+network_agents:
+ - agent_type: CounterModel
+ weight: 1
+ state:
+ state_id: 0
+ - agent_type: AggregatedCounter
+ weight: 0.2
+environment_agents:
+ - agent_id: 'Environment Agent 1'
+ agent_type: CounterModel
+ state:
+ times: 10
+environment_class: Environment
+environment_params:
+ am_i_complete: true
+agent_type: CounterModel
+default_state:
+ times: 1
+states:
+ - name: 'The first node'
+ - name: 'The second node'
diff --git a/tests/test_config.py b/tests/test_config.py
new file mode 100644
index 0000000..359e8ad
--- /dev/null
+++ b/tests/test_config.py
@@ -0,0 +1,62 @@
+from unittest import TestCase
+import os
+from os.path import join
+
+from soil import serialization, config
+
+ROOT = os.path.abspath(os.path.dirname(__file__))
+EXAMPLES = join(ROOT, '..', 'examples')
+
+FORCE_TESTS = os.environ.get('FORCE_TESTS', '')
+
+
+class TestConfig(TestCase):
+
+ def test_conversion(self):
+ new = serialization.load_file(join(EXAMPLES, "complete.yml"))[0]
+ old = serialization.load_file(join(ROOT, "old_complete.yml"))[0]
+ converted = config.convert_old(old).dict(skip_defaults=True)
+ for (k, v) in new.items():
+ assert v == converted[k]
+
+
+def make_example_test(path, cfg):
+ def wrapped(self):
+ root = os.getcwd()
+ s = config.Config(**cfg)
+ import pdb;pdb.set_trace()
+ # for s in simulation.all_from_config(path):
+ # iterations = s.config.max_time * s.config.num_trials
+ # if iterations > 1000:
+ # s.config.max_time = 100
+ # s.config.num_trials = 1
+ # if config.get('skip_test', False) and not FORCE_TESTS:
+ # self.skipTest('Example ignored.')
+ # envs = s.run_simulation(dry_run=True)
+ # assert envs
+ # for env in envs:
+ # assert env
+ # try:
+ # n = config['network_params']['n']
+ # assert len(list(env.network_agents)) == n
+ # assert env.now > 0 # It has run
+ # assert env.now <= config['max_time'] # But not further than allowed
+ # except KeyError:
+ # pass
+ return wrapped
+
+
+def add_example_tests():
+ for config, path in serialization.load_files(
+ join(EXAMPLES, '*', '*.yml'),
+ join(EXAMPLES, '*.yml'),
+ ):
+ p = make_example_test(path=path, cfg=config)
+ fname = os.path.basename(path)
+ p.__name__ = 'test_example_file_%s' % fname
+ p.__doc__ = '%s should be a valid configuration' % fname
+ setattr(TestConfig, p.__name__, p)
+ del p
+
+
+add_example_tests()
diff --git a/tests/test_examples.py b/tests/test_examples.py
index 6a00367..a516c27 100644
--- a/tests/test_examples.py
+++ b/tests/test_examples.py
@@ -18,10 +18,10 @@ def make_example_test(path, config):
def wrapped(self):
root = os.getcwd()
for s in simulation.all_from_config(path):
- iterations = s.max_time * s.num_trials
+ iterations = s.config.max_time * s.config.num_trials
if iterations > 1000:
- s.max_time = 100
- s.num_trials = 1
+ s.config.max_time = 100
+ s.config.num_trials = 1
if config.get('skip_test', False) and not FORCE_TESTS:
self.skipTest('Example ignored.')
envs = s.run_simulation(dry_run=True)
diff --git a/tests/test_history.py b/tests/test_history.py
new file mode 100644
index 0000000..4a76d5c
--- /dev/null
+++ b/tests/test_history.py
@@ -0,0 +1,128 @@
+from unittest import TestCase
+
+import os
+import io
+import yaml
+import copy
+import pickle
+import networkx as nx
+from functools import partial
+
+from os.path import join
+from soil import (simulation, Environment, agents, serialization,
+ utils)
+from soil.time import Delta
+from tsih import NoHistory, History
+
+
+ROOT = os.path.abspath(os.path.dirname(__file__))
+EXAMPLES = join(ROOT, '..', 'examples')
+
+
+class CustomAgent(agents.FSM):
+ @agents.default_state
+ @agents.state
+ def normal(self):
+ self.neighbors = self.count_agents(state_id='normal',
+ limit_neighbors=True)
+ @agents.state
+ def unreachable(self):
+ return
+
+class TestHistory(TestCase):
+
+ def test_counter_agent_history(self):
+ """
+ The evolution of the state should be recorded in the logging agent
+ """
+ config = {
+ 'name': 'CounterAgent',
+ 'network_params': {
+ 'path': join(ROOT, 'test.gexf')
+ },
+ 'network_agents': [{
+ 'agent_type': 'AggregatedCounter',
+ 'weight': 1,
+ 'state': {'state_id': 0}
+
+ }],
+ 'max_time': 10,
+ 'environment_params': {
+ }
+ }
+ s = simulation.from_config(config)
+ env = s.run_simulation(dry_run=True)[0]
+ for agent in env.network_agents:
+ last = 0
+ assert len(agent[None, None]) == 11
+ for step, total in sorted(agent['total', None]):
+ assert total == last + 2
+ last = total
+
+ def test_row_conversion(self):
+ env = Environment(history=True)
+ env['test'] = 'test_value'
+
+ res = list(env.history_to_tuples())
+ assert len(res) == len(env.environment_params)
+
+ env.schedule.time = 1
+ env['test'] = 'second_value'
+ res = list(env.history_to_tuples())
+
+ assert env['env', 0, 'test' ] == 'test_value'
+ assert env['env', 1, 'test' ] == 'second_value'
+
+ def test_nohistory(self):
+ '''
+ Make sure that no history(/sqlite) is used by default
+ '''
+ env = Environment(topology=nx.Graph(), network_agents=[])
+ assert isinstance(env._history, NoHistory)
+
+ def test_save_graph_history(self):
+ '''
+ The history_to_graph method should return a valid networkx graph.
+
+ The state of the agent should be encoded as intervals in the nx graph.
+ '''
+ G = nx.cycle_graph(5)
+ distribution = agents.calculate_distribution(None, agents.BaseAgent)
+ env = Environment(topology=G, network_agents=distribution, history=True)
+ env[0, 0, 'testvalue'] = 'start'
+ env[0, 10, 'testvalue'] = 'finish'
+ nG = env.history_to_graph()
+ values = nG.nodes[0]['attr_testvalue']
+ assert ('start', 0, 10) in values
+ assert ('finish', 10, None) in values
+
+ def test_save_graph_nohistory(self):
+ '''
+ The history_to_graph method should return a valid networkx graph.
+
+ When NoHistory is used, only the last known value is known
+ '''
+ G = nx.cycle_graph(5)
+ distribution = agents.calculate_distribution(None, agents.BaseAgent)
+ env = Environment(topology=G, network_agents=distribution, history=False)
+ env.get_agent(0)['testvalue'] = 'start'
+ env.schedule.time = 10
+ env.get_agent(0)['testvalue'] = 'finish'
+ nG = env.history_to_graph()
+ values = nG.nodes[0]['attr_testvalue']
+ assert ('start', 0, None) not in values
+ assert ('finish', 10, None) in values
+
+ def test_pickle_agent_environment(self):
+ env = Environment(name='Test', history=True)
+ a = agents.BaseAgent(model=env, unique_id=25)
+
+ a['key'] = 'test'
+
+ pickled = pickle.dumps(a)
+ recovered = pickle.loads(pickled)
+
+ assert recovered.env.name == 'Test'
+ assert list(recovered.env._history.to_tuples())
+ assert recovered['key', 0] == 'test'
+ assert recovered['key'] == 'test'
diff --git a/tests/test_main.py b/tests/test_main.py
index 15ad035..2e89a2d 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -3,6 +3,7 @@ from unittest import TestCase
import os
import io
import yaml
+import copy
import pickle
import networkx as nx
from functools import partial
@@ -11,8 +12,6 @@ from os.path import join
from soil import (simulation, Environment, agents, serialization,
utils)
from soil.time import Delta
-from tsih import NoHistory, History
-
ROOT = os.path.abspath(os.path.dirname(__file__))
EXAMPLES = join(ROOT, '..', 'examples')
@@ -79,9 +78,31 @@ class TestMain(TestCase):
'environment_params': {
}
}
- s = simulation.from_config(config)
+ s = simulation.from_old_config(config)
s.run_simulation(dry_run=True)
+
+ def test_network_agent(self):
+ """
+ The initial states should be applied to the agent and the
+ agent should be able to update its state."""
+ config = {
+ 'name': 'CounterAgent',
+ 'network_params': {
+ 'generator': nx.complete_graph,
+ 'n': 2,
+ },
+ 'agent_type': 'CounterModel',
+ 'states': {
+ 0: {'times': 10},
+ 1: {'times': 20},
+ },
+ 'max_time': 2,
+ 'num_trials': 1,
+ 'environment_params': {
+ }
+ }
+ s = simulation.from_old_config(config)
def test_counter_agent(self):
"""
The initial states should be applied to the agent and the
@@ -98,41 +119,13 @@ class TestMain(TestCase):
'environment_params': {
}
}
- s = simulation.from_config(config)
+ s = simulation.from_old_config(config)
env = s.run_simulation(dry_run=True)[0]
assert env.get_agent(0)['times', 0] == 11
assert env.get_agent(0)['times', 1] == 12
assert env.get_agent(1)['times', 0] == 21
assert env.get_agent(1)['times', 1] == 22
- def test_counter_agent_history(self):
- """
- The evolution of the state should be recorded in the logging agent
- """
- config = {
- 'name': 'CounterAgent',
- 'network_params': {
- 'path': join(ROOT, 'test.gexf')
- },
- 'network_agents': [{
- 'agent_type': 'AggregatedCounter',
- 'weight': 1,
- 'state': {'state_id': 0}
-
- }],
- 'max_time': 10,
- 'environment_params': {
- }
- }
- s = simulation.from_config(config)
- env = s.run_simulation(dry_run=True)[0]
- for agent in env.network_agents:
- last = 0
- assert len(agent[None, None]) == 10
- for step, total in sorted(agent['total', None]):
- assert total == last + 2
- last = total
-
def test_custom_agent(self):
"""Allow for search of neighbors with a certain state_id"""
config = {
@@ -148,7 +141,7 @@ class TestMain(TestCase):
'environment_params': {
}
}
- s = simulation.from_config(config)
+ s = simulation.from_old_config(config)
env = s.run_simulation(dry_run=True)[0]
assert env.get_agent(1).count_agents(state_id='normal') == 2
assert env.get_agent(1).count_agents(state_id='normal', limit_neighbors=True) == 1
@@ -159,7 +152,7 @@ class TestMain(TestCase):
config = serialization.load_file(join(EXAMPLES, 'torvalds.yml'))[0]
config['network_params']['path'] = join(EXAMPLES,
config['network_params']['path'])
- s = simulation.from_config(config)
+ s = simulation.from_old_config(config)
env = s.run_simulation(dry_run=True)[0]
for a in env.network_agents:
skill_level = a.state['skill_level']
@@ -178,19 +171,23 @@ class TestMain(TestCase):
def test_yaml(self):
"""
- The YAML version of a newly created simulation
- should be equivalent to the configuration file used
+ The YAML version of a newly created configuration should be equivalent
+ to the configuration file used.
+ Values not present in the original config file should have reasonable
+ defaults.
"""
with utils.timer('loading'):
config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0]
- s = simulation.from_config(config)
+ s = simulation.from_old_config(config)
with utils.timer('serializing'):
- serial = s.to_yaml()
+ serial = s.config.to_yaml()
with utils.timer('recovering'):
recovered = yaml.load(serial, Loader=yaml.SafeLoader)
with utils.timer('deleting'):
del recovered['topology']
- assert config == recovered
+ for (k, v) in config.items():
+ assert recovered[k] == v
+ # assert config == recovered
def test_configuration_changes(self):
"""
@@ -198,26 +195,13 @@ class TestMain(TestCase):
the simulation.
"""
config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0]
- s = simulation.from_config(config)
+ s = simulation.from_old_config(config)
+ init_config = copy.copy(s.config)
s.run_simulation(dry_run=True)
- nconfig = s.to_dict()
- del nconfig['topology']
- assert config == nconfig
-
- def test_row_conversion(self):
- env = Environment(history=True)
- env['test'] = 'test_value'
-
- res = list(env.history_to_tuples())
- assert len(res) == len(env.environment_params)
-
- env.schedule.time = 1
- env['test'] = 'second_value'
- res = list(env.history_to_tuples())
-
- assert env['env', 0, 'test' ] == 'test_value'
- assert env['env', 1, 'test' ] == 'second_value'
+ nconfig = s.config
+ # del nconfig['to
+ assert init_config == nconfig
def test_save_geometric(self):
"""
@@ -229,51 +213,15 @@ class TestMain(TestCase):
f = io.BytesIO()
env.dump_gexf(f)
- def test_nohistory(self):
- '''
- Make sure that no history(/sqlite) is used by default
- '''
- env = Environment(topology=nx.Graph(), network_agents=[])
- assert isinstance(env._history, NoHistory)
-
- def test_save_graph_history(self):
- '''
- The history_to_graph method should return a valid networkx graph.
-
- The state of the agent should be encoded as intervals in the nx graph.
- '''
- G = nx.cycle_graph(5)
- distribution = agents.calculate_distribution(None, agents.BaseAgent)
- env = Environment(topology=G, network_agents=distribution, history=True)
- env[0, 0, 'testvalue'] = 'start'
- env[0, 10, 'testvalue'] = 'finish'
- nG = env.history_to_graph()
- values = nG.nodes[0]['attr_testvalue']
- assert ('start', 0, 10) in values
- assert ('finish', 10, None) in values
-
- def test_save_graph_nohistory(self):
- '''
- The history_to_graph method should return a valid networkx graph.
-
- When NoHistory is used, only the last known value is known
- '''
- G = nx.cycle_graph(5)
- distribution = agents.calculate_distribution(None, agents.BaseAgent)
- env = Environment(topology=G, network_agents=distribution, history=False)
- env.get_agent(0)['testvalue'] = 'start'
- env.schedule.time = 10
- env.get_agent(0)['testvalue'] = 'finish'
- nG = env.history_to_graph()
- values = nG.nodes[0]['attr_testvalue']
- assert ('start', 0, None) not in values
- assert ('finish', 10, None) in values
-
def test_serialize_class(self):
- ser, name = serialization.serialize(agents.BaseAgent)
+ ser, name = serialization.serialize(agents.BaseAgent, known_modules=[])
assert name == 'soil.agents.BaseAgent'
assert ser == agents.BaseAgent
+ ser, name = serialization.serialize(agents.BaseAgent, known_modules=['soil', ])
+ assert name == 'BaseAgent'
+ assert ser == agents.BaseAgent
+
ser, name = serialization.serialize(CustomAgent)
assert name == 'test_main.CustomAgent'
assert ser == CustomAgent
@@ -327,20 +275,6 @@ class TestMain(TestCase):
assert converted[1]['agent_type'] == 'test_main.CustomAgent'
pickle.dumps(converted)
- def test_pickle_agent_environment(self):
- env = Environment(name='Test', history=True)
- a = agents.BaseAgent(model=env, unique_id=25)
-
- a['key'] = 'test'
-
- pickled = pickle.dumps(a)
- recovered = pickle.loads(pickled)
-
- assert recovered.env.name == 'Test'
- assert list(recovered.env._history.to_tuples())
- assert recovered['key', 0] == 'test'
- assert recovered['key'] == 'test'
-
def test_subgraph(self):
'''An agent should be able to subgraph the global topology'''
G = nx.Graph()
@@ -371,7 +305,7 @@ class TestMain(TestCase):
'num_trials': 50,
'environment_params': {}
}
- s = simulation.from_config(config)
+ s = simulation.from_old_config(config)
runs = list(s.run_simulation(dry_run=True))
over = list(x.now for x in runs if x.now>2)
assert len(runs) == config['num_trials']
From e41dc3dae2b3f26d43063c9bd08cea6b061b9b9c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Tue, 13 Sep 2022 18:16:31 +0200
Subject: [PATCH 04/39] WIP
---
CHANGELOG.md | 6 +
examples/complete.yml | 41 ++++--
requirements.txt | 1 -
soil/agents/CounterModel.py | 10 +-
soil/agents/__init__.py | 243 ++++++++++++++++++++++++++++--------
soil/config.py | 89 +++++++++----
soil/environment.py | 137 ++++++++------------
soil/serialization.py | 58 ++++-----
soil/simulation.py | 83 ++++++------
soil/time.py | 4 +-
tests/test_config.py | 54 ++++++--
tests/test_exporters.py | 6 +-
tests/test_main.py | 75 ++++++-----
13 files changed, 521 insertions(+), 286 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index fe425d0..6b7dc3e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,12 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [UNRELEASED]
+### Changed
+* Configuration schema is very different now. Check `soil.config` for more information. We are using Pydantic for (de)serialization.
+* There may be more than one topology/network in the simulation
+* Agents are split into groups now. Each group may be assigned a given set of agents or an agent distribution, and a network topology to be assigned to.
+### Removed
+* Any `tsih` and `History` integration in the main classes. To record the state of environments/agents, just use a datacollector. In some cases this may be slower or consume more memory than the previous system. However, few cases actually used the full potential of the history, and it came at the cost of unnecessary complexity and worse performance for the majority of cases.
## [0.20.7]
### Changed
* Creating a `time.When` from another `time.When` does not nest them anymore (it returns the argument)
diff --git a/examples/complete.yml b/examples/complete.yml
index a4b5b04..f017075 100644
--- a/examples/complete.yml
+++ b/examples/complete.yml
@@ -1,38 +1,59 @@
---
+version: '2'
general:
- name: simple
+ id: simple
group: tests
dir_path: "/tmp/"
num_trials: 3
max_time: 100
interval: 1
seed: "CompleteSeed!"
-network:
- group:
- network
- params:
- generator: complete_graph
- n: 10
+topologies:
+ default:
+ params:
+ generator: complete_graph
+ n: 10
+ another_graph:
+ params:
+ generator: complete_graph
+ n: 2
environment:
environment_class: Environment
params:
am_i_complete: true
agents:
- default:
+# Agents are split into groups, each with its own definition
+ default: # This is a special group. Its values will be used as default values for the rest of the groups
agent_class: CounterModel
+ topology: default
state:
times: 1
environment:
+ # In this group we are not specifying any topology
fixed:
- agent_id: 'Environment Agent 1'
agent_class: CounterModel
state:
times: 10
- network:
+ general_counters:
+ topology: default
distribution:
- agent_class: CounterModel
weight: 1
state:
- state_id: 0
+ id: 0
+ times: 3
- agent_class: AggregatedCounter
weight: 0.2
+ other_counters:
+ topology: another_graph
+ fixed:
+ - agent_class: CounterModel
+ id: 0
+ state:
+ times: 1
+ total: 0
+ - agent_class: CounterModel
+ id: 1
+ # If not specified, it will use the state set in the default
+ # state:
diff --git a/requirements.txt b/requirements.txt
index 2660dfd..31f12d5 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -6,5 +6,4 @@ pandas>=0.23
SALib>=1.3
Jinja2
Mesa>=0.8.9
-tsih>=0.1.6
pydantic>=1.9
diff --git a/soil/agents/CounterModel.py b/soil/agents/CounterModel.py
index 528b957..d2edc1b 100644
--- a/soil/agents/CounterModel.py
+++ b/soil/agents/CounterModel.py
@@ -7,9 +7,15 @@ class CounterModel(NetworkAgent):
in each step and adds it to its state.
"""
+ defaults = {
+ 'times': 0,
+ 'neighbors': 0,
+ 'total': 0
+ }
+
def step(self):
# Outside effects
- total = len(list(self.get_agents()))
+ total = len(list(self.env.agents))
neighbors = len(list(self.get_neighboring_agents()))
self['times'] = self.get('times', 0) + 1
self['neighbors'] = neighbors
@@ -33,6 +39,6 @@ class AggregatedCounter(NetworkAgent):
self['times'] += 1
neighbors = len(list(self.get_neighboring_agents()))
self['neighbors'] += neighbors
- total = len(list(self.get_agents()))
+ total = len(list(self.env.agents))
self['total'] += total
self.debug('Running for step: {}. Total: {}'.format(self.now, total))
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index 623c21a..1b9b714 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -1,16 +1,17 @@
import logging
from collections import OrderedDict, defaultdict
+from collections.abc import Mapping, Set
from copy import deepcopy
from functools import partial, wraps
-from itertools import islice
+from itertools import islice, chain
import json
import networkx as nx
-from .. import serialization, utils, time
+from mesa import Agent as MesaAgent
+from typing import Dict, List
-from tsih import Key
+from .. import serialization, utils, time, config
-from mesa import Agent
def as_node(agent):
@@ -24,7 +25,7 @@ IGNORED_FIELDS = ('model', 'logger')
class DeadAgent(Exception):
pass
-class BaseAgent(Agent):
+class BaseAgent(MesaAgent):
"""
A special type of Mesa Agent that:
@@ -47,9 +48,8 @@ class BaseAgent(Agent):
):
# Check for REQUIRED arguments
# Initialize agent parameters
- if isinstance(unique_id, Agent):
+ if isinstance(unique_id, MesaAgent):
raise Exception()
- self._saved = set()
super().__init__(unique_id=unique_id, model=model)
self.name = name or '{}[{}]'.format(type(self).__name__, self.unique_id)
@@ -57,7 +57,7 @@ class BaseAgent(Agent):
self.alive = True
self.interval = interval or self.get('interval', 1)
- self.logger = logging.getLogger(self.model.name).getChild(self.name)
+ self.logger = logging.getLogger(self.model.id).getChild(self.name)
if hasattr(self, 'level'):
self.logger.setLevel(self.level)
@@ -66,6 +66,7 @@ class BaseAgent(Agent):
setattr(self, k, deepcopy(v))
for (k, v) in kwargs.items():
+
setattr(self, k, v)
for (k, v) in getattr(self, 'defaults', {}).items():
@@ -107,23 +108,7 @@ class BaseAgent(Agent):
def environment_params(self, value):
self.model.environment_params = value
- def __setattr__(self, key, value):
- if not key.startswith('_') and key not in IGNORED_FIELDS:
- try:
- k = Key(t_step=self.now,
- dict_id=self.unique_id,
- key=key)
- self._saved.add(key)
- self.model[k] = value
- except AttributeError:
- pass
- super().__setattr__(key, value)
-
def __getitem__(self, key):
- if isinstance(key, tuple):
- key, t_step = key
- k = Key(key=key, t_step=t_step, dict_id=self.unique_id)
- return self.model[k]
return getattr(self, key)
def __delitem__(self, key):
@@ -135,8 +120,11 @@ class BaseAgent(Agent):
def __setitem__(self, key, value):
setattr(self, key, value)
+ def keys(self):
+ return (k for k in self.__dict__ if k[0] != '_')
+
def items(self):
- return ((k, getattr(self, k)) for k in self._saved)
+ return ((k, v) for (k, v) in self.__dict__.items() if k[0] != '_')
def get(self, key, default=None):
return self[key] if key in self else default
@@ -174,22 +162,32 @@ class BaseAgent(Agent):
extra['agent_name'] = self.name
return self.logger.log(level, message, extra=extra)
+
+
def debug(self, *args, **kwargs):
return self.log(*args, level=logging.DEBUG, **kwargs)
def info(self, *args, **kwargs):
return self.log(*args, level=logging.INFO, **kwargs)
+# Alias
+# Agent = BaseAgent
class NetworkAgent(BaseAgent):
-
- @property
- def topology(self):
- return self.model.G
+ def __init__(self,
+ *args,
+ graph_name: str,
+ node_id: int = None,
+ **kwargs,
+ ):
+ super().__init__(*args, **kwargs)
+ self.graph_name = graph_name
+ self.topology = self.env.topologies[self.graph_name]
+ self.node_id = node_id
@property
def G(self):
- return self.model.G
+ return self.model.topologies[self._topology]
def count_agents(self, **kwargs):
return len(list(self.get_agents(**kwargs)))
@@ -210,8 +208,7 @@ class NetworkAgent(BaseAgent):
if limit_neighbors:
agents = self.topology.neighbors(self.unique_id)
- agents = self.model.get_agents(agents)
- return select(agents, **kwargs)
+ return self.model.agents(ids=agents, **kwargs)
def subgraph(self, center=True, **kwargs):
include = [self] if center else []
@@ -229,7 +226,6 @@ class NetworkAgent(BaseAgent):
self.topology.add_edge(self.unique_id, other.unique_id, edge_attr_dict=edge_attr_dict, *edge_attrs)
-
def ego_search(self, steps=1, center=False, node=None, **kwargs):
'''Get a list of nodes in the ego network of *node* of radius *steps*'''
node = as_node(node if node is not None else self)
@@ -311,7 +307,7 @@ class MetaFSM(type):
cls.states = states
-class FSM(NetworkAgent, metaclass=MetaFSM):
+class FSM(BaseAgent, metaclass=MetaFSM):
def __init__(self, *args, **kwargs):
super(FSM, self).__init__(*args, **kwargs)
if not hasattr(self, 'state_id'):
@@ -537,32 +533,171 @@ def _definition_to_dict(definition, size=None, default_state=None):
return agents
-def select(agents, state_id=None, agent_type=None, ignore=None, iterator=False, **kwargs):
+class AgentView(Mapping, Set):
+ """A lazy-loaded list of agents.
+ """
- if state_id is not None and not isinstance(state_id, (tuple, list)):
- state_id = tuple([state_id])
- if agent_type is not None:
- try:
- agent_type = tuple(agent_type)
- except TypeError:
- agent_type = tuple([agent_type])
+ __slots__ = ("_agents",)
- f = agents
- if ignore:
- f = filter(lambda x: x not in ignore, f)
+ def __init__(self, agents):
+ self._agents = agents
- if state_id is not None:
- f = filter(lambda agent: agent.get('state_id', None) in state_id, f)
+ def __getstate__(self):
+ return {"_agents": self._agents}
- if agent_type is not None:
- f = filter(lambda agent: isinstance(agent, agent_type), f)
- for k, v in kwargs.items():
- f = filter(lambda agent: agent.state.get(k, None) == v, f)
+ def __setstate__(self, state):
+ self._agents = state["_agents"]
- if iterator:
- return f
- return f
+ # Mapping methods
+ def __len__(self):
+ return sum(len(x) for x in self._agents.values())
+
+ def __iter__(self):
+ return iter(chain.from_iterable(g.values() for g in self._agents.values()))
+
+ def __getitem__(self, agent_id):
+ if isinstance(agent_id, slice):
+ raise ValueError(f"Slicing is not supported")
+ for group in self._agents.values():
+ if agent_id in group:
+ return group[agent_id]
+ raise ValueError(f"Agent {agent_id} not found")
+
+ def filter(self, ids=None, groups=None, state_id=None, agent_type=None, ignore=None, iterator=False, **kwargs):
+
+ if state_id is not None and not isinstance(state_id, (tuple, list)):
+ state_id = tuple([state_id])
+
+ agents = self._agents
+
+ if groups:
+ agents = {(k,v) for (k, v) in agents.items() if k in groups}
+
+ if agent_type is not None:
+ try:
+ agent_type = tuple(agent_type)
+ except TypeError:
+ agent_type = tuple([agent_type])
+
+ if ids:
+ agents = (v[aid] for v in agents.values() for aid in ids if aid in v)
+ else:
+ agents = (a for v in agents.values() for a in v.values())
+
+ f = agents
+ if ignore:
+ f = filter(lambda x: x not in ignore, f)
+
+ if state_id is not None:
+ f = filter(lambda agent: agent.get('state_id', None) in state_id, f)
+
+ if agent_type is not None:
+ f = filter(lambda agent: isinstance(agent, agent_type), f)
+ for k, v in kwargs.items():
+ f = filter(lambda agent: agent.state.get(k, None) == v, f)
+
+ if iterator:
+ return f
+ return list(f)
+
+ def __call__(self, *args, **kwargs):
+ return self.filter(*args, **kwargs)
+
+ def __contains__(self, agent_id):
+ return any(agent_id in g for g in self._agents)
+
+ def __str__(self):
+ return str(list(a.id for a in self))
+
+ def __repr__(self):
+ return f"{self.__class__.__name__}({self})"
+
+
+def from_config(cfg: Dict[str, config.AgentConfig], env):
+ '''
+ Agents are specified in groups.
+ Each group can be specified in two ways, either through a fixed list in which each item has
+ has the agent type, number of agents to create, and the other parameters, or through what we call
+ an `agent distribution`, which is similar but instead of number of agents, it specifies the weight
+ of each agent type.
+ '''
+ default = cfg.get('default', None)
+ return {k: _group_from_config(c, default=default, env=env) for (k, c) in cfg.items() if k is not 'default'}
+
+
+def _group_from_config(cfg: config.AgentConfig, default: config.SingleAgentConfig, env):
+ agents = {}
+ if cfg.fixed is not None:
+ agents = _from_fixed(cfg.fixed, topology=cfg.topology, default=default, env=env)
+ if cfg.distribution:
+ n = cfg.n or len(env.topologies[cfg.topology])
+ agents.update(_from_distro(cfg.distribution, n - len(agents),
+ topology=cfg.topology or default.topology,
+ default=default,
+ env=env))
+ return agents
+
+
+def _from_fixed(lst: List[config.FixedAgentConfig], topology: str, default: config.SingleAgentConfig, env):
+ agents = {}
+
+ for fixed in lst:
+ agent_id = fixed.agent_id
+ if agent_id is None:
+ agent_id = env.next_id()
+
+ cls = serialization.deserialize(fixed.agent_class or default.agent_class)
+ state = fixed.state.copy()
+ state.update(default.state)
+ agents[agent_id] = cls(unique_id=agent_id,
+ model=env,
+ graph_name=fixed.topology or topology or default.topology,
+ **state)
+
+ return agents
+
+
+def _from_distro(distro: List[config.AgentDistro],
+ n: int,
+ topology: str,
+ default: config.SingleAgentConfig,
+ env):
+
+ agents = {}
+
+ if n is None:
+ if any(lambda dist: dist.n is None, distro):
+ raise ValueError('You must provide a total number of agents, or the number of each type')
+ n = sum(dist.n for dist in distro)
+
+
+ total = sum((dist.weight if dist.weight is not None else 1) for dist in distro)
+ thres = {}
+ last = 0
+ for i in sorted(distro, key=lambda x: x.weight):
+
+ cls = serialization.deserialize(i.agent_class or default.agent_class)
+ thres[(last, last + i.weight/total)] = (cls, i)
+
+ acc = 0
+
+ # using np.choice would be more efficient, but this allows us to use soil without
+ # numpy
+ for i in range(n):
+ r = random.random()
+ for (t, (cls, d)) in thres.items():
+ if r >= t[0] and r <= t[1]:
+ agent_id = d.agent_id
+ if agent_id is None:
+ agent_id = env.next_id()
+
+ state = d.state.copy()
+ state.update(default.state)
+ agents[agent_id] = cls(unique_id=agent_id, model=env, graph_name=d.topology or topology or default.topology, **state)
+ break
+
+ return agents
from .BassModel import *
diff --git a/soil/config.py b/soil/config.py
index 4f4ceed..a47e5a2 100644
--- a/soil/config.py
+++ b/soil/config.py
@@ -11,7 +11,7 @@ from pydantic import BaseModel, Extra
class General(BaseModel):
id: str = 'Unnamed Simulation'
group: str = None
- dir_path: str = None
+ dir_path: Optional[str] = None
num_trials: int = 1
max_time: float = 100
interval: float = 1
@@ -27,13 +27,13 @@ nodeId = int
class Node(BaseModel):
id: nodeId
- state: Dict[str, Any]
+ state: Optional[Dict[str, Any]] = {}
class Edge(BaseModel):
source: nodeId
target: nodeId
- value: float = 1
+ value: Optional[float] = 1
class Topology(BaseModel):
@@ -75,46 +75,62 @@ class EnvConfig(BaseModel):
class SingleAgentConfig(BaseModel):
- agent_class: Union[Type, str] = 'soil.Agent'
+ agent_class: Optional[Union[Type, str]] = None
agent_id: Optional[Union[str, int]] = None
- params: Dict[str, Any] = {}
- state: Dict[str, Any] = {}
+ topology: Optional[str] = None
+ state: Optional[Dict[str, Any]] = {}
-
-class AgentDistro(SingleAgentConfig):
- weight: Optional[float] = None
- n: Optional[int] = None
+class FixedAgentConfig(SingleAgentConfig):
+ n: Optional[int] = 1
@root_validator
def validate_all(cls, values):
- if 'weight' in values and 'count' in values:
- raise ValueError("You may either specify a weight in the distribution or an agent count")
+ if 'agent_id' in values and values.get('n', 1) > 1:
+ raise ValueError("An agent_id can only be provided when there is only one agent")
return values
+class AgentDistro(SingleAgentConfig):
+ weight: Optional[float] = 1
+
+
class AgentConfig(SingleAgentConfig):
n: Optional[int] = None
+ topology: Optional[str] = None
distribution: Optional[List[AgentDistro]] = None
- fixed: Optional[List[SingleAgentConfig]] = None
+ fixed: Optional[List[FixedAgentConfig]] = None
@staticmethod
def default():
return AgentConfig()
+ @root_validator
+ def validate_all(cls, values):
+ if 'distribution' in values and ('n' not in values and 'topology' not in values):
+ raise ValueError("You need to provide the number of agents or a topology to extract the value from.")
+ return values
+
class Config(BaseModel, extra=Extra.forbid):
+ version: Optional[str] = '1'
general: General = General.default()
- network: Optional[NetConfig] = None
+ topologies: Optional[Dict[str, NetConfig]] = {}
environment: EnvConfig = EnvConfig.default()
- agents: Dict[str, AgentConfig] = {}
+ agents: Optional[Dict[str, AgentConfig]] = {}
-def convert_old(old):
+def convert_old(old, strict=True):
'''
Try to convert old style configs into the new format.
This is still a work in progress and might not work in many cases.
'''
+
+ # TODO: translate states
+
+ if strict and old.get('states', {}):
+ raise ValueError('Custom (i.e., manual) agent states cannot be translated to v2 configuration files. Please, convert your configuration file to the new format.')
+
new = {}
@@ -129,7 +145,10 @@ def convert_old(old):
if k in old:
general[k] = old[k]
- network = {'group': 'network'}
+ if 'name' in old:
+ general['id'] = old['name']
+
+ network = {}
if 'network_params' in old and old['network_params']:
@@ -143,9 +162,6 @@ def convert_old(old):
network['topology'] = old['topology']
agents = {
- 'environment': {
- 'fixed': []
- },
'network': {},
'default': {},
}
@@ -164,10 +180,31 @@ def convert_old(old):
return newagent
for agent in old.get('environment_agents', []):
- agents['environment']['fixed'].append(updated_agent(agent))
+ agents['environment'] = {'distribution': [], 'fixed': []}
+ if 'agent_id' not in agent:
+ agents['environment']['distribution'].append(updated_agent(agent))
+ else:
+ agents['environment']['fixed'].append(updated_agent(agent))
- for agent in old.get('network_agents', []):
- agents['network'].setdefault('distribution', []).append(updated_agent(agent))
+ by_weight = []
+ fixed = []
+
+ if 'network_agents' in old:
+ agents['network']['topology'] = 'default'
+
+ for agent in old['network_agents']:
+ agent = updated_agent(agent)
+ if 'agent_id' in agent:
+ fixed.append(agent)
+ else:
+ by_weight.append(agent)
+
+ if 'agent_type' in old and (not fixed and not by_weight):
+ agents['network']['topology'] = 'default'
+ by_weight = [{'agent_type': old['agent_type']}]
+
+ agents['network']['fixed'] = fixed
+ agents['network']['distribution'] = by_weight
environment = {'params': {}}
if 'environment_class' in old:
@@ -176,8 +213,8 @@ def convert_old(old):
for (k, v) in old.get('environment_params', {}).items():
environment['params'][k] = v
-
- return Config(general=general,
- network=network,
+ return Config(version='2',
+ general=general,
+ topologies={'default': network},
environment=environment,
agents=agents)
diff --git a/soil/environment.py b/soil/environment.py
index 4e00cd9..f95b901 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -3,6 +3,10 @@ import os
import sqlite3
import math
import random
+import logging
+
+from typing import Dict
+from collections import namedtuple
from time import time as current_time
from copy import deepcopy
from networkx.readwrite import json_graph
@@ -12,9 +16,11 @@ import networkx as nx
from mesa import Model
-from tsih import Record
+from . import serialization, agents, analysis, utils, time, config, network
+
+
+Record = namedtuple('Record', 'dict_id t_step key value')
-from . import serialization, agents, analysis, utils, time, config
class Environment(Model):
"""
@@ -28,15 +34,17 @@ class Environment(Model):
"""
def __init__(self,
- env_id,
+ env_id='unnamed_env',
seed='default',
schedule=None,
- env_params=None,
dir_path=None,
- **kwargs):
+ interval=1,
+ agents: Dict[str, config.AgentConfig] = {},
+ topologies: Dict[str, config.NetConfig] = {},
+ **env_params):
super().__init__()
-
+ self.current_id = -1
self.seed = '{}_{}'.format(seed, env_id)
self.id = env_id
@@ -51,25 +59,28 @@ class Environment(Model):
random.seed(seed)
- if isinstance(states, list):
- states = dict(enumerate(states))
- self.states = deepcopy(states) if states else {}
- self.default_state = deepcopy(default_state) or {}
-
-
- self.set_topology(topology=topology,
- network_params=network_params)
+ self.topologies = {}
+ for (name, cfg) in topologies.items():
+ self.set_topology(cfg=cfg,
+ graph=name)
self.agents = agents or {}
self.env_params = env_params or {}
- self.env_params.update(kwargs)
self.interval = interval
self['SEED'] = seed
+ self.logger = utils.logger.getChild(self.id)
+
+ @property
+ def topology(self):
+ return self.topologies['default']
+
+ @property
+ def network_agents(self):
+ yield from self.agents(agent_type=agents.NetworkAgent, iterator=True)
- self.logger = utils.logger.getChild(self.name)
@staticmethod
def from_config(conf: config.Config, trial_id, **kwargs) -> Environment:
@@ -92,39 +103,30 @@ class Environment(Model):
raise Exception('The environment has not been scheduled, so it has no sense of time')
- def set_topology(self, topology, network_params=None, dir_path=None):
- if topology is None:
- network_params = network_params or {}
- topology = serialization.load_network(network_params,
- dir_path=dir_path or self.dir_path)
- if not topology:
- topology = nx.Graph()
- self.G = nx.Graph(topology)
+ def set_topology(self, cfg=None, dir_path=None, graph='default'):
+ self.topologies[graph] = network.from_config(cfg, dir_path=dir_path)
@property
def agents(self):
- for agents in self.agents.values():
- yield from agents
+ return agents.AgentView(self._agents)
@agents.setter
- def agents(self, agents):
- self.agents = {}
+ def agents(self, agents_def: Dict[str, config.AgentConfig]):
+ self._agents = agents.from_config(agents_def, env=self)
+ for d in self._agents.values():
+ for a in d.values():
+ self.schedule.add(a)
- for (k, v) in agents.items():
- self.agents[k] = agents.from_config(v)
- for agent in self.agents.get('network', []):
- node = self.G.nodes[agent.unique_id]
- node['agent'] = agent
- @property
- def network_agents(self):
- for i in self.G.nodes():
- node = self.G.nodes[i]
- if 'agent' in node:
- yield node['agent']
+ # @property
+ # def network_agents(self):
+ # for i in self.G.nodes():
+ # node = self.G.nodes[i]
+ # if 'agent' in node:
+ # yield node['agent']
- def init_agent(self, agent_id, agent_definitions):
- node = self.G.nodes[agent_id]
+ def init_agent(self, agent_id, agent_definitions, graph='default'):
+ node = self.topologies[graph].nodes[agent_id]
init = False
state = dict(node)
@@ -145,8 +147,8 @@ class Environment(Model):
return
return self.set_agent(agent_id, agent_type, state)
- def set_agent(self, agent_id, agent_type, state=None):
- node = self.G.nodes[agent_id]
+ def set_agent(self, agent_id, agent_type, state=None, graph='default'):
+ node = self.topologies[graph].nodes[agent_id]
defstate = deepcopy(self.default_state) or {}
defstate.update(self.states.get(agent_id, {}))
defstate.update(node.get('state', {}))
@@ -166,20 +168,20 @@ class Environment(Model):
self.schedule.add(a)
return a
- def add_node(self, agent_type, state=None):
- agent_id = int(len(self.G.nodes()))
- self.G.add_node(agent_id)
- a = self.set_agent(agent_id, agent_type, state)
+ def add_node(self, agent_type, state=None, graph='default'):
+ agent_id = int(len(self.topologies[graph].nodes()))
+ self.topologies[graph].add_node(agent_id)
+ a = self.set_agent(agent_id, agent_type, state, graph=graph)
a['visible'] = True
return a
- def add_edge(self, agent1, agent2, start=None, **attrs):
+ def add_edge(self, agent1, agent2, start=None, graph='default', **attrs):
if hasattr(agent1, 'id'):
agent1 = agent1.id
if hasattr(agent2, 'id'):
agent2 = agent2.id
start = start or self.now
- return self.G.add_edge(agent1, agent2, **attrs)
+ return self.topologies[graph].add_edge(agent1, agent2, **attrs)
def log(self, message, *args, level=logging.INFO, **kwargs):
if not self.logger.isEnabledFor(level):
@@ -190,7 +192,7 @@ class Environment(Model):
message += " {k}={v} ".format(k, v)
extra = {}
extra['now'] = self.now
- extra['unique_id'] = self.name
+ extra['unique_id'] = self.id
return self.logger.log(level, message, extra=extra)
def step(self):
@@ -207,30 +209,6 @@ class Environment(Model):
self.step()
utils.logger.debug(f'Simulation step {self.schedule.time}/{until}. Next: {self.schedule.next_time}')
self.schedule.time = until
- self._history.flush_cache()
-
- def _save_state(self, now=None):
- serialization.logger.debug('Saving state @{}'.format(self.now))
- self._history.save_records(self.state_to_tuples(now=now))
-
- def __getitem__(self, key):
- if isinstance(key, tuple):
- self._history.flush_cache()
- return self._history[key]
-
- return self.environment_params[key]
-
- def __setitem__(self, key, value):
- if isinstance(key, tuple):
- k = Key(*key)
- self._history.save_record(*k,
- value=value)
- return
- self.environment_params[key] = value
- self._history.save_record(dict_id='env',
- t_step=self.now,
- key=key,
- value=value)
def __contains__(self, key):
return key in self.env_params
@@ -248,14 +226,6 @@ class Environment(Model):
def __setitem__(self, key, value):
return self.env_params.__setitem__(key, value)
- def get_agent(self, agent_id):
- return self.G.nodes[agent_id]['agent']
-
- def get_agents(self, nodes=None):
- if nodes is None:
- return self.agents
- return (self.G.nodes[i]['agent'] for i in nodes)
-
def _agent_to_tuples(self, agent, now=None):
if now is None:
now = self.now
@@ -270,7 +240,7 @@ class Environment(Model):
now = self.now
if agent_id:
- agent = self.get_agent(agent_id)
+ agent = self.agents[agent_id]
yield from self._agent_to_tuples(agent, now)
return
@@ -283,4 +253,5 @@ class Environment(Model):
yield from self._agent_to_tuples(agent, now)
+
SoilEnvironment = Environment
diff --git a/soil/serialization.py b/soil/serialization.py
index 3a10de1..8c17f23 100644
--- a/soil/serialization.py
+++ b/soil/serialization.py
@@ -16,39 +16,39 @@ from jinja2 import Template
logger = logging.getLogger('soil')
-def load_network(network_params, dir_path=None):
- G = nx.Graph()
+# def load_network(network_params, dir_path=None):
+# G = nx.Graph()
- if not network_params:
- return G
+# if not network_params:
+# return G
- if 'path' in network_params:
- path = network_params['path']
- if dir_path and not os.path.isabs(path):
- path = os.path.join(dir_path, path)
- extension = os.path.splitext(path)[1][1:]
- kwargs = {}
- if extension == 'gexf':
- kwargs['version'] = '1.2draft'
- kwargs['node_type'] = int
- try:
- method = getattr(nx.readwrite, 'read_' + extension)
- except AttributeError:
- raise AttributeError('Unknown format')
- G = method(path, **kwargs)
+# if 'path' in network_params:
+# path = network_params['path']
+# if dir_path and not os.path.isabs(path):
+# path = os.path.join(dir_path, path)
+# extension = os.path.splitext(path)[1][1:]
+# kwargs = {}
+# if extension == 'gexf':
+# kwargs['version'] = '1.2draft'
+# kwargs['node_type'] = int
+# try:
+# method = getattr(nx.readwrite, 'read_' + extension)
+# except AttributeError:
+# raise AttributeError('Unknown format')
+# G = method(path, **kwargs)
- elif 'generator' in network_params:
- net_args = network_params.copy()
- net_gen = net_args.pop('generator')
+# elif 'generator' in network_params:
+# net_args = network_params.copy()
+# net_gen = net_args.pop('generator')
- if dir_path not in sys.path:
- sys.path.append(dir_path)
+# if dir_path not in sys.path:
+# sys.path.append(dir_path)
- method = deserializer(net_gen,
- known_modules=['networkx.generators',])
- G = method(**net_args)
+# method = deserializer(net_gen,
+# known_modules=['networkx.generators',])
+# G = method(**net_args)
- return G
+# return G
def load_file(infile):
@@ -122,8 +122,8 @@ def load_files(*patterns, **kwargs):
for i in glob(pattern, **kwargs):
for config in load_file(i):
path = os.path.abspath(i)
- if 'dir_path' not in config:
- config['dir_path'] = os.path.dirname(path)
+ if 'general' in config and 'dir_path' not in config['general']:
+ config['general']['dir_path'] = os.path.dirname(path)
yield config, path
diff --git a/soil/simulation.py b/soil/simulation.py
index 2f346ca..3826459 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -96,7 +96,7 @@ class Simulation:
stat.sim_start()
for exporter in exporters:
- exporter.start()
+ exporter.sim_start()
for env in self._run_sync_or_async(parallel=parallel,
log_level=log_level,
@@ -107,7 +107,7 @@ class Simulation:
collected = list(stat.trial_end(env) for stat in stats)
- saved = self._update_stats(collected, t_step=env.now, trial_id=env.name)
+ saved = self._update_stats(collected, t_step=env.now, trial_id=env.id)
for exporter in exporters:
exporter.trial_end(env, saved)
@@ -117,6 +117,9 @@ class Simulation:
collected = list(stat.end() for stat in stats)
saved = self._update_stats(collected)
+ for stat in stats:
+ stat.sim_end()
+
for exporter in exporters:
exporter.sim_end(saved)
@@ -131,24 +134,24 @@ class Simulation:
def get_env(self, trial_id=0, **kwargs):
'''Create an environment for a trial of the simulation'''
- opts = self.environment_params.copy()
- opts.update({
- 'name': '{}_trial_{}'.format(self.name, trial_id),
- 'topology': self.topology.copy(),
- 'network_params': self.network_params,
- 'seed': '{}_trial_{}'.format(self.seed, trial_id),
- 'initial_time': 0,
- 'interval': self.interval,
- 'network_agents': self.network_agents,
- 'initial_time': 0,
- 'states': self.states,
- 'dir_path': self.dir_path,
- 'default_state': self.default_state,
- 'history': bool(self._history),
- 'environment_agents': self.environment_agents,
- })
- opts.update(kwargs)
- env = self.environment_class(**opts)
+ # opts = self.environment_params.copy()
+ # opts.update({
+ # 'name': '{}_trial_{}'.format(self.name, trial_id),
+ # 'topology': self.topology.copy(),
+ # 'network_params': self.network_params,
+ # 'seed': '{}_trial_{}'.format(self.seed, trial_id),
+ # 'initial_time': 0,
+ # 'interval': self.interval,
+ # 'network_agents': self.network_agents,
+ # 'initial_time': 0,
+ # 'states': self.states,
+ # 'dir_path': self.dir_path,
+ # 'default_state': self.default_state,
+ # 'history': bool(self._history),
+ # 'environment_agents': self.environment_agents,
+ # })
+ # opts.update(kwargs)
+ env = Environment.from_config(self.config, trial_id=trial_id, **kwargs)
return env
def run_trial(self, trial_id=None, until=None, log_level=logging.INFO, **opts):
@@ -162,7 +165,7 @@ class Simulation:
# Set-up trial environment and graph
until = until or self.config.general.max_time
- env = Environment.from_config(self.config, trial_id=trial_id)
+ env = self.get_env(trial_id, **opts)
# Set up agents on nodes
with utils.timer('Simulation {} trial {}'.format(self.config.general.id, trial_id)):
env.run(until)
@@ -181,21 +184,31 @@ class Simulation:
ex.message = ''.join(traceback.format_exception(type(ex), ex, ex.__traceback__)[:])
return ex
+ def to_dict(self):
+ return self.config.dict()
+
+ def to_yaml(self):
+ return yaml.dump(self.config.dict())
+
def all_from_config(config):
configs = list(serialization.load_config(config))
- for config, _ in configs:
- sim = Simulation(**config)
+ for config, path in configs:
+ if config.get('version', '1') == '1':
+ config = convert_old(config)
+ if not isinstance(config, Config):
+ config = Config(**config)
+ if not config.general.dir_path:
+ config.general.dir_path = os.path.dirname(path)
+ sim = Simulation(config=config)
yield sim
def from_config(conf_or_path):
- config = list(serialization.load_config(conf_or_path))
- if len(config) > 1:
+ lst = list(all_from_config(conf_or_path))
+ if len(lst) > 1:
raise AttributeError('Provide only one configuration')
- config = config[0][0]
- sim = Simulation(**config)
- return sim
+ return lst[0]
def from_old_config(conf_or_path):
config = list(serialization.load_config(conf_or_path))
@@ -206,13 +219,7 @@ def from_old_config(conf_or_path):
def run_from_config(*configs, **kwargs):
- for config_def in configs:
- # logger.info("Found {} config(s)".format(len(ls)))
- for config, path in serialization.load_config(config_def):
- name = config.general.id
- logger.info("Using config(s): {name}".format(name=name))
-
- dir_path = config.general.dir_path or os.path.dirname(path)
- sim = Simulation(dir_path=dir_path,
- **config)
- sim.run_simulation(**kwargs)
+ for sim in all_from_config(configs):
+ name = config.general.id
+ logger.info("Using config(s): {name}".format(name=name))
+ sim.run_simulation(**kwargs)
diff --git a/soil/time.py b/soil/time.py
index 90ec513..b74ef82 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -3,7 +3,7 @@ from queue import Empty
from heapq import heappush, heappop
import math
from .utils import logger
-from mesa import Agent
+from mesa import Agent as MesaAgent
INFINITY = float('inf')
@@ -41,7 +41,7 @@ class TimedActivation(BaseScheduler):
self._queue = []
self.next_time = 0
- def add(self, agent: Agent):
+ def add(self, agent: MesaAgent):
if agent.unique_id not in self._agents:
heappush(self._queue, (self.time, agent.unique_id))
super().add(agent)
diff --git a/tests/test_config.py b/tests/test_config.py
index 359e8ad..f4ad32e 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -2,7 +2,7 @@ from unittest import TestCase
import os
from os.path import join
-from soil import serialization, config
+from soil import simulation, serialization, config, network
ROOT = os.path.abspath(os.path.dirname(__file__))
EXAMPLES = join(ROOT, '..', 'examples')
@@ -13,18 +13,58 @@ FORCE_TESTS = os.environ.get('FORCE_TESTS', '')
class TestConfig(TestCase):
def test_conversion(self):
- new = serialization.load_file(join(EXAMPLES, "complete.yml"))[0]
+ new = serialization.load_file(join(ROOT, "complete_converted.yml"))[0]
old = serialization.load_file(join(ROOT, "old_complete.yml"))[0]
- converted = config.convert_old(old).dict(skip_defaults=True)
- for (k, v) in new.items():
- assert v == converted[k]
+ converted_defaults = config.convert_old(old, strict=False)
+ converted = converted_defaults.dict(skip_defaults=True)
+ def isequal(old, new):
+ if isinstance(old, dict):
+ for (k, v) in old.items():
+ isequal(old[k], new[k])
+ return
+ assert old == new
+
+ isequal(new, converted)
+
+ def test_topology_config(self):
+ netconfig = config.NetConfig(**{
+ 'path': join(ROOT, 'test.gexf')
+ })
+ net = network.from_config(netconfig, dir_path=ROOT)
+ assert len(net.nodes) == 2
+ assert len(net.edges) == 1
+
+ def test_env_from_config(self):
+ """
+ Simple configuration that tests that the graph is loaded, and that
+ network agents are initialized properly.
+ """
+ config = {
+ 'name': 'CounterAgent',
+ 'network_params': {
+ 'path': join(ROOT, 'test.gexf')
+ },
+ 'agent_type': 'CounterModel',
+ # 'states': [{'times': 10}, {'times': 20}],
+ 'max_time': 2,
+ 'dry_run': True,
+ 'num_trials': 1,
+ 'environment_params': {
+ }
+ }
+ s = simulation.from_old_config(config)
+ env = s.get_env()
+ assert len(env.topologies['default'].nodes) == 2
+ assert len(env.topologies['default'].edges) == 1
+ assert len(env.agents) == 2
+ assert env.agents[0].topology == env.topologies['default']
def make_example_test(path, cfg):
def wrapped(self):
root = os.getcwd()
- s = config.Config(**cfg)
- import pdb;pdb.set_trace()
+ print(path)
+ s = simulation.from_config(cfg)
# for s in simulation.all_from_config(path):
# iterations = s.config.max_time * s.config.num_trials
# if iterations > 1000:
diff --git a/tests/test_exporters.py b/tests/test_exporters.py
index 790eaa8..79ffe25 100644
--- a/tests/test_exporters.py
+++ b/tests/test_exporters.py
@@ -18,17 +18,17 @@ class Dummy(exporters.Exporter):
called_trial = 0
called_end = 0
- def start(self):
+ def sim_start(self):
self.__class__.called_start += 1
self.__class__.started = True
- def trial(self, env, stats):
+ def trial_end(self, env, stats):
assert env
self.__class__.trials += 1
self.__class__.total_time += env.now
self.__class__.called_trial += 1
- def end(self, stats):
+ def sim_end(self, stats):
self.__class__.ended = True
self.__class__.called_end += 1
diff --git a/tests/test_main.py b/tests/test_main.py
index 2e89a2d..f63128e 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -9,7 +9,7 @@ import networkx as nx
from functools import partial
from os.path import join
-from soil import (simulation, Environment, agents, serialization,
+from soil import (simulation, Environment, agents, network, serialization,
utils)
from soil.time import Delta
@@ -17,7 +17,7 @@ ROOT = os.path.abspath(os.path.dirname(__file__))
EXAMPLES = join(ROOT, '..', 'examples')
-class CustomAgent(agents.FSM):
+class CustomAgent(agents.FSM, agents.NetworkAgent):
@agents.default_state
@agents.state
def normal(self):
@@ -39,7 +39,7 @@ class TestMain(TestCase):
'path': join(ROOT, 'test.gexf')
}
}
- G = serialization.load_network(config['network_params'])
+ G = network.from_config(config['network_params'])
assert G
assert len(G) == 2
with self.assertRaises(AttributeError):
@@ -48,7 +48,7 @@ class TestMain(TestCase):
'path': join(ROOT, 'unknown.extension')
}
}
- G = serialization.load_network(config['network_params'])
+ G = network.from_config(config['network_params'])
print(G)
def test_generate_barabasi(self):
@@ -56,16 +56,16 @@ class TestMain(TestCase):
If no path is given, a generator and network parameters
should be used to generate a network
"""
- config = {
- 'network_params': {
+ cfg = {
+ 'params': {
'generator': 'barabasi_albert_graph'
}
}
- with self.assertRaises(TypeError):
- G = serialization.load_network(config['network_params'])
- config['network_params']['n'] = 100
- config['network_params']['m'] = 10
- G = serialization.load_network(config['network_params'])
+ with self.assertRaises(Exception):
+ G = network.from_config(cfg)
+ cfg['params']['n'] = 100
+ cfg['params']['m'] = 10
+ G = network.from_config(cfg)
assert len(G) == 100
def test_empty_simulation(self):
@@ -103,28 +103,43 @@ class TestMain(TestCase):
}
}
s = simulation.from_old_config(config)
+
def test_counter_agent(self):
"""
The initial states should be applied to the agent and the
agent should be able to update its state."""
config = {
- 'name': 'CounterAgent',
- 'network_params': {
- 'path': join(ROOT, 'test.gexf')
+ 'version': '2',
+ 'general': {
+ 'name': 'CounterAgent',
+ 'max_time': 2,
+ 'dry_run': True,
+ 'num_trials': 1,
},
- 'agent_type': 'CounterModel',
- 'states': [{'times': 10}, {'times': 20}],
- 'max_time': 2,
- 'num_trials': 1,
- 'environment_params': {
+ 'topologies': {
+ 'default': {
+ 'path': join(ROOT, 'test.gexf')
+ }
+ },
+ 'agents': {
+ 'default': {
+ 'agent_class': 'CounterModel',
+ },
+ 'counters': {
+ 'topology': 'default',
+ 'fixed': [{'state': {'times': 10}}, {'state': {'times': 20}}],
+ }
}
}
- s = simulation.from_old_config(config)
- env = s.run_simulation(dry_run=True)[0]
- assert env.get_agent(0)['times', 0] == 11
- assert env.get_agent(0)['times', 1] == 12
- assert env.get_agent(1)['times', 0] == 21
- assert env.get_agent(1)['times', 1] == 22
+ s = simulation.from_config(config)
+ env = s.get_env()
+ assert isinstance(env.agents[0], agents.CounterModel)
+ assert env.agents[0].topology == env.topologies['default']
+ assert env.agents[0]['times'] == 10
+ assert env.agents[0]['times'] == 10
+ env.step()
+ assert env.agents[0]['times'] == 11
+ assert env.agents[1]['times'] == 21
def test_custom_agent(self):
"""Allow for search of neighbors with a certain state_id"""
@@ -143,9 +158,9 @@ class TestMain(TestCase):
}
s = simulation.from_old_config(config)
env = s.run_simulation(dry_run=True)[0]
- assert env.get_agent(1).count_agents(state_id='normal') == 2
- assert env.get_agent(1).count_agents(state_id='normal', limit_neighbors=True) == 1
- assert env.get_agent(0).neighbors == 1
+ assert env.agents[1].count_agents(state_id='normal') == 2
+ assert env.agents[1].count_agents(state_id='normal', limit_neighbors=True) == 1
+ assert env.agents[0].neighbors == 1
def test_torvalds_example(self):
"""A complete example from a documentation should work."""
@@ -180,11 +195,9 @@ class TestMain(TestCase):
config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0]
s = simulation.from_old_config(config)
with utils.timer('serializing'):
- serial = s.config.to_yaml()
+ serial = s.to_yaml()
with utils.timer('recovering'):
recovered = yaml.load(serial, Loader=yaml.SafeLoader)
- with utils.timer('deleting'):
- del recovered['topology']
for (k, v) in config.items():
assert recovered[k] == v
# assert config == recovered
From 3dc56892c105b1402a42c5cd919d106ecbdc45a2 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Thu, 15 Sep 2022 19:27:17 +0200
Subject: [PATCH 05/39] WIP: working config
---
examples/complete.yml | 12 ++-
soil/agents/__init__.py | 189 ++++++++++++++++++++++-------------
soil/config.py | 43 +++++---
soil/environment.py | 2 +-
soil/network.py | 42 ++++++++
soil/simulation.py | 2 +-
tests/complete_converted.yml | 49 +++++++++
tests/old_complete.yml | 4 +-
tests/test_config.py | 35 +++++--
tests/test_examples.py | 6 +-
10 files changed, 284 insertions(+), 100 deletions(-)
create mode 100644 soil/network.py
create mode 100644 tests/complete_converted.yml
diff --git a/examples/complete.yml b/examples/complete.yml
index f017075..adf1e7e 100644
--- a/examples/complete.yml
+++ b/examples/complete.yml
@@ -22,7 +22,7 @@ environment:
params:
am_i_complete: true
agents:
-# Agents are split into groups, each with its own definition
+# Agents are split several groups, each with its own definition
default: # This is a special group. Its values will be used as default values for the rest of the groups
agent_class: CounterModel
topology: default
@@ -31,7 +31,7 @@ agents:
environment:
# In this group we are not specifying any topology
fixed:
- - agent_id: 'Environment Agent 1'
+ - name: 'Environment Agent 1'
agent_class: CounterModel
state:
times: 10
@@ -41,10 +41,16 @@ agents:
- agent_class: CounterModel
weight: 1
state:
- id: 0
times: 3
- agent_class: AggregatedCounter
weight: 0.2
+ override:
+ - filter:
+ agent_class: AggregatedCounter
+ n: 2
+ state:
+ times: 5
+
other_counters:
topology: another_graph
fixed:
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index 1b9b714..3b585f1 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -1,6 +1,7 @@
import logging
from collections import OrderedDict, defaultdict
-from collections.abc import Mapping, Set
+from collections.abc import MutableMapping, Mapping, Set
+from abc import ABCMeta
from copy import deepcopy
from functools import partial, wraps
from itertools import islice, chain
@@ -10,6 +11,8 @@ import networkx as nx
from mesa import Agent as MesaAgent
from typing import Dict, List
+from random import shuffle
+
from .. import serialization, utils, time, config
@@ -25,7 +28,7 @@ IGNORED_FIELDS = ('model', 'logger')
class DeadAgent(Exception):
pass
-class BaseAgent(MesaAgent):
+class BaseAgent(MesaAgent, MutableMapping):
"""
A special type of Mesa Agent that:
@@ -50,8 +53,10 @@ class BaseAgent(MesaAgent):
# Initialize agent parameters
if isinstance(unique_id, MesaAgent):
raise Exception()
+ assert isinstance(unique_id, int)
super().__init__(unique_id=unique_id, model=model)
- self.name = name or '{}[{}]'.format(type(self).__name__, self.unique_id)
+ self.name = str(name) if name else'{}[{}]'.format(type(self).__name__, self.unique_id)
+
self._neighbors = None
self.alive = True
@@ -120,6 +125,12 @@ class BaseAgent(MesaAgent):
def __setitem__(self, key, value):
setattr(self, key, value)
+ def __len__(self):
+ return sum(1 for n in self.keys())
+
+ def __iter__(self):
+ return self.items()
+
def keys(self):
return (k for k in self.__dict__ if k[0] != '_')
@@ -284,7 +295,7 @@ def default_state(func):
return func
-class MetaFSM(type):
+class MetaFSM(ABCMeta):
def __init__(cls, name, bases, nmspc):
super(MetaFSM, cls).__init__(name, bases, nmspc)
states = {}
@@ -486,14 +497,15 @@ def _definition_to_dict(definition, size=None, default_state=None):
distro = sorted([item for item in definition if 'weight' in item])
- ix = 0
+ id = 0
+
def init_agent(item, id=ix):
while id in agents:
id += 1
agent = remaining[id]
agent['state'].update(copy(item.get('state', {})))
- agents[id] = agent
+ agents[agent.unique_id] = agent
del remaining[id]
return agent
@@ -554,7 +566,7 @@ class AgentView(Mapping, Set):
return sum(len(x) for x in self._agents.values())
def __iter__(self):
- return iter(chain.from_iterable(g.values() for g in self._agents.values()))
+ yield from iter(chain.from_iterable(g.values() for g in self._agents.values()))
def __getitem__(self, agent_id):
if isinstance(agent_id, slice):
@@ -564,45 +576,11 @@ class AgentView(Mapping, Set):
return group[agent_id]
raise ValueError(f"Agent {agent_id} not found")
- def filter(self, ids=None, groups=None, state_id=None, agent_type=None, ignore=None, iterator=False, **kwargs):
-
- if state_id is not None and not isinstance(state_id, (tuple, list)):
- state_id = tuple([state_id])
-
- agents = self._agents
-
- if groups:
- agents = {(k,v) for (k, v) in agents.items() if k in groups}
-
- if agent_type is not None:
- try:
- agent_type = tuple(agent_type)
- except TypeError:
- agent_type = tuple([agent_type])
-
- if ids:
- agents = (v[aid] for v in agents.values() for aid in ids if aid in v)
- else:
- agents = (a for v in agents.values() for a in v.values())
-
- f = agents
- if ignore:
- f = filter(lambda x: x not in ignore, f)
-
- if state_id is not None:
- f = filter(lambda agent: agent.get('state_id', None) in state_id, f)
-
- if agent_type is not None:
- f = filter(lambda agent: isinstance(agent, agent_type), f)
- for k, v in kwargs.items():
- f = filter(lambda agent: agent.state.get(k, None) == v, f)
-
- if iterator:
- return f
- return list(f)
+ def filter(self, *group_ids, **kwargs):
+ yield from filter_groups(self._agents, group_ids=group_ids, **kwargs)
def __call__(self, *args, **kwargs):
- return self.filter(*args, **kwargs)
+ return list(self.filter(*args, **kwargs))
def __contains__(self, agent_id):
return any(agent_id in g for g in self._agents)
@@ -614,6 +592,57 @@ class AgentView(Mapping, Set):
return f"{self.__class__.__name__}({self})"
+def filter_groups(groups, group_ids=None, **kwargs):
+ assert isinstance(groups, dict)
+ if group_ids:
+ groups = list(groups[g] for g in group_ids if g in groups)
+ else:
+ groups = list(groups.values())
+
+ agents = chain.from_iterable(filter_group(g, **kwargs) for g in groups)
+
+ yield from agents
+
+
+def filter_group(group, ids=None, state_id=None, agent_type=None, ignore=None, state=None, **kwargs):
+ '''
+ Filter agents given as a dict, by the criteria given as arguments (e.g., certain type or state id).
+ '''
+ assert isinstance(group, dict)
+
+ if state_id is not None and not isinstance(state_id, (tuple, list)):
+ state_id = tuple([state_id])
+
+ if agent_type is not None:
+ try:
+ agent_type = tuple(agent_type)
+ except TypeError:
+ agent_type = tuple([agent_type])
+
+ if ids:
+ agents = (v[aid] for aid in ids if aid in group)
+ else:
+ agents = (a for a in group.values())
+
+ f = agents
+ if ignore:
+ f = filter(lambda x: x not in ignore, f)
+
+ if state_id is not None:
+ f = filter(lambda agent: agent.get('state_id', None) in state_id, f)
+
+ if agent_type is not None:
+ f = filter(lambda agent: isinstance(agent, agent_type), f)
+
+ state = state or dict()
+ state.update(kwargs)
+
+ for k, v in state.items():
+ f = filter(lambda agent: agent.state.get(k, None) == v, f)
+
+ yield from f
+
+
def from_config(cfg: Dict[str, config.AgentConfig], env):
'''
Agents are specified in groups.
@@ -632,10 +661,22 @@ def _group_from_config(cfg: config.AgentConfig, default: config.SingleAgentConfi
agents = _from_fixed(cfg.fixed, topology=cfg.topology, default=default, env=env)
if cfg.distribution:
n = cfg.n or len(env.topologies[cfg.topology])
- agents.update(_from_distro(cfg.distribution, n - len(agents),
+ target = n - len(agents)
+ agents.update(_from_distro(cfg.distribution, target,
topology=cfg.topology or default.topology,
default=default,
env=env))
+ assert len(agents) == n
+ if cfg.override:
+ for attrs in cfg.override:
+ if attrs.filter:
+ filtered = list(filter_group(agents, **attrs.filter))
+ else:
+ filtered = list(agents)
+
+ for agent in random.sample(filtered, attrs.n):
+ agent.state.update(attrs.state)
+
return agents
@@ -650,10 +691,11 @@ def _from_fixed(lst: List[config.FixedAgentConfig], topology: str, default: conf
cls = serialization.deserialize(fixed.agent_class or default.agent_class)
state = fixed.state.copy()
state.update(default.state)
- agents[agent_id] = cls(unique_id=agent_id,
- model=env,
- graph_name=fixed.topology or topology or default.topology,
- **state)
+ agent = cls(unique_id=agent_id,
+ model=env,
+ graph_name=fixed.topology or topology or default.topology,
+ **state)
+ agents[agent.unique_id] = agent
return agents
@@ -671,31 +713,40 @@ def _from_distro(distro: List[config.AgentDistro],
raise ValueError('You must provide a total number of agents, or the number of each type')
n = sum(dist.n for dist in distro)
+ weights = list(dist.weight if dist.weight is not None else 1 for dist in distro)
+ minw = min(weights)
+ norm = list(weight / minw for weight in weights)
+ total = sum(norm)
+ chunk = n // total
- total = sum((dist.weight if dist.weight is not None else 1) for dist in distro)
- thres = {}
- last = 0
- for i in sorted(distro, key=lambda x: x.weight):
+ # random.choices would be enough to get a weighted distribution. But it can vary a lot for smaller k
+ # So instead we calculate our own distribution to make sure the actual ratios are close to what we would expect
- cls = serialization.deserialize(i.agent_class or default.agent_class)
- thres[(last, last + i.weight/total)] = (cls, i)
+ # Calculate how many times each has to appear
+ indices = list(chain.from_iterable([idx] * int(n*chunk) for (idx, n) in enumerate(norm)))
- acc = 0
+ # Complete with random agents following the original weight distribution
+ if len(indices) < n:
+ indices += random.choices(list(range(len(distro))), weights=[d.weight for d in distro], k=n-len(indices))
- # using np.choice would be more efficient, but this allows us to use soil without
- # numpy
- for i in range(n):
- r = random.random()
- for (t, (cls, d)) in thres.items():
- if r >= t[0] and r <= t[1]:
- agent_id = d.agent_id
- if agent_id is None:
- agent_id = env.next_id()
+ # Deserialize classes for efficiency
+ classes = list(serialization.deserialize(i.agent_class or default.agent_class) for i in distro)
- state = d.state.copy()
- state.update(default.state)
- agents[agent_id] = cls(unique_id=agent_id, model=env, graph_name=d.topology or topology or default.topology, **state)
- break
+ # Add them in random order
+ random.shuffle(indices)
+
+
+ for idx in indices:
+ d = distro[idx]
+ cls = classes[idx]
+ agent_id = env.next_id()
+ state = d.state.copy()
+ state.update(default.state)
+ agent = cls(unique_id=agent_id, model=env, graph_name=d.topology or topology or default.topology, **state)
+ assert agent.name is not None
+ assert agent.name != 'None'
+ assert agent.name
+ agents[agent.unique_id] = agent
return agents
diff --git a/soil/config.py b/soil/config.py
index a47e5a2..eabb43f 100644
--- a/soil/config.py
+++ b/soil/config.py
@@ -76,8 +76,9 @@ class EnvConfig(BaseModel):
class SingleAgentConfig(BaseModel):
agent_class: Optional[Union[Type, str]] = None
- agent_id: Optional[Union[str, int]] = None
- topology: Optional[str] = None
+ agent_id: Optional[int] = None
+ topology: Optional[str] = 'default'
+ name: Optional[str] = None
state: Optional[Dict[str, Any]] = {}
class FixedAgentConfig(SingleAgentConfig):
@@ -85,11 +86,16 @@ class FixedAgentConfig(SingleAgentConfig):
@root_validator
def validate_all(cls, values):
- if 'agent_id' in values and values.get('n', 1) > 1:
- raise ValueError("An agent_id can only be provided when there is only one agent")
+ if values.get('agent_id', None) is not None and values.get('n', 1) > 1:
+ print(values)
+ raise ValueError(f"An agent_id can only be provided when there is only one agent ({values.get('n')} given)")
return values
+class OverrideAgentConfig(FixedAgentConfig):
+ filter: Optional[Dict[str, Any]] = None
+
+
class AgentDistro(SingleAgentConfig):
weight: Optional[float] = 1
@@ -99,6 +105,7 @@ class AgentConfig(SingleAgentConfig):
topology: Optional[str] = None
distribution: Optional[List[AgentDistro]] = None
fixed: Optional[List[FixedAgentConfig]] = None
+ override: Optional[List[OverrideAgentConfig]] = None
@staticmethod
def default():
@@ -118,7 +125,6 @@ class Config(BaseModel, extra=Extra.forbid):
environment: EnvConfig = EnvConfig.default()
agents: Optional[Dict[str, AgentConfig]] = {}
-
def convert_old(old, strict=True):
'''
Try to convert old style configs into the new format.
@@ -126,10 +132,6 @@ def convert_old(old, strict=True):
This is still a work in progress and might not work in many cases.
'''
- # TODO: translate states
-
- if strict and old.get('states', {}):
- raise ValueError('Custom (i.e., manual) agent states cannot be translated to v2 configuration files. Please, convert your configuration file to the new format.')
new = {}
@@ -181,13 +183,16 @@ def convert_old(old, strict=True):
for agent in old.get('environment_agents', []):
agents['environment'] = {'distribution': [], 'fixed': []}
- if 'agent_id' not in agent:
- agents['environment']['distribution'].append(updated_agent(agent))
- else:
+ if 'agent_id' in agent:
+ agent['name'] = agent['agent_id']
+ del agent['agent_id']
agents['environment']['fixed'].append(updated_agent(agent))
+ else:
+ agents['environment']['distribution'].append(updated_agent(agent))
by_weight = []
fixed = []
+ override = []
if 'network_agents' in old:
agents['network']['topology'] = 'default'
@@ -203,6 +208,20 @@ def convert_old(old, strict=True):
agents['network']['topology'] = 'default'
by_weight = [{'agent_type': old['agent_type']}]
+
+ # TODO: translate states
+ if 'states' in old:
+ states = old['states']
+ if isinstance(states, dict):
+ states = states.items()
+ else:
+ states = enumerate(states)
+ for (k, v) in states:
+ override.append({'filter': {'id': k},
+ 'state': v
+ })
+
+ agents['network']['override'] = override
agents['network']['fixed'] = fixed
agents['network']['distribution'] = by_weight
diff --git a/soil/environment.py b/soil/environment.py
index f95b901..ddb46cb 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -79,7 +79,7 @@ class Environment(Model):
@property
def network_agents(self):
- yield from self.agents(agent_type=agents.NetworkAgent, iterator=True)
+ yield from self.agents(agent_type=agents.NetworkAgent, iterator=False)
@staticmethod
diff --git a/soil/network.py b/soil/network.py
new file mode 100644
index 0000000..0eb3688
--- /dev/null
+++ b/soil/network.py
@@ -0,0 +1,42 @@
+from typing import Dict
+import os
+import sys
+
+import networkx as nx
+
+from . import config, serialization, basestring
+
+def from_config(cfg: config.NetConfig, dir_path: str = None):
+ if not isinstance(cfg, config.NetConfig):
+ cfg = config.NetConfig(**cfg)
+
+ if cfg.path:
+ path = cfg.path
+ if dir_path and not os.path.isabs(path):
+ path = os.path.join(dir_path, path)
+ extension = os.path.splitext(path)[1][1:]
+ kwargs = {}
+ if extension == 'gexf':
+ kwargs['version'] = '1.2draft'
+ kwargs['node_type'] = int
+ try:
+ method = getattr(nx.readwrite, 'read_' + extension)
+ except AttributeError:
+ raise AttributeError('Unknown format')
+ return method(path, **kwargs)
+
+ if cfg.params:
+ net_args = cfg.params.dict()
+ net_gen = net_args.pop('generator')
+
+ if dir_path not in sys.path:
+ sys.path.append(dir_path)
+
+ method = serialization.deserializer(net_gen,
+ known_modules=['networkx.generators',])
+ return method(**net_args)
+
+ if isinstance(cfg.topology, basestring) or isinstance(cfg.topology, dict):
+ return nx.json_graph.node_link_graph(cfg.topology)
+
+ return nx.Graph()
diff --git a/soil/simulation.py b/soil/simulation.py
index 3826459..0892731 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -42,7 +42,6 @@ class Simulation:
config = Config(**cfg)
if not config:
raise ValueError("You need to specify a simulation configuration")
-
self.config = config
@@ -151,6 +150,7 @@ class Simulation:
# 'environment_agents': self.environment_agents,
# })
# opts.update(kwargs)
+ print(self.config)
env = Environment.from_config(self.config, trial_id=trial_id, **kwargs)
return env
diff --git a/tests/complete_converted.yml b/tests/complete_converted.yml
new file mode 100644
index 0000000..ffb5a16
--- /dev/null
+++ b/tests/complete_converted.yml
@@ -0,0 +1,49 @@
+---
+version: '2'
+general:
+ id: simple
+ group: tests
+ dir_path: "/tmp/"
+ num_trials: 3
+ max_time: 100
+ interval: 1
+ seed: "CompleteSeed!"
+topologies:
+ default:
+ params:
+ generator: complete_graph
+ n: 10
+agents:
+ default:
+ agent_class: CounterModel
+ state:
+ times: 1
+ network:
+ topology: 'default'
+ distribution:
+ - agent_class: CounterModel
+ weight: 0.4
+ state:
+ state_id: 0
+ - agent_class: AggregatedCounter
+ weight: 0.6
+ override:
+ - filter:
+ id: 0
+ state:
+ name: 'The first node'
+ - filter:
+ id: 1
+ state:
+ name: 'The second node'
+
+ environment:
+ fixed:
+ - name: 'Environment Agent 1'
+ agent_class: CounterModel
+ state:
+ times: 10
+environment:
+ environment_class: Environment
+ params:
+ am_i_complete: true
diff --git a/tests/old_complete.yml b/tests/old_complete.yml
index 4382935..8609eb9 100644
--- a/tests/old_complete.yml
+++ b/tests/old_complete.yml
@@ -11,11 +11,11 @@ network_params:
n: 10
network_agents:
- agent_type: CounterModel
- weight: 1
+ weight: 0.4
state:
state_id: 0
- agent_type: AggregatedCounter
- weight: 0.2
+ weight: 0.6
environment_agents:
- agent_id: 'Environment Agent 1'
agent_type: CounterModel
diff --git a/tests/test_config.py b/tests/test_config.py
index f4ad32e..7cba6af 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -2,7 +2,7 @@ from unittest import TestCase
import os
from os.path import join
-from soil import simulation, serialization, config, network
+from soil import simulation, serialization, config, network, agents
ROOT = os.path.abspath(os.path.dirname(__file__))
EXAMPLES = join(ROOT, '..', 'examples')
@@ -13,18 +13,22 @@ FORCE_TESTS = os.environ.get('FORCE_TESTS', '')
class TestConfig(TestCase):
def test_conversion(self):
- new = serialization.load_file(join(ROOT, "complete_converted.yml"))[0]
+ expected = serialization.load_file(join(ROOT, "complete_converted.yml"))[0]
old = serialization.load_file(join(ROOT, "old_complete.yml"))[0]
converted_defaults = config.convert_old(old, strict=False)
converted = converted_defaults.dict(skip_defaults=True)
- def isequal(old, new):
- if isinstance(old, dict):
- for (k, v) in old.items():
- isequal(old[k], new[k])
- return
- assert old == new
- isequal(new, converted)
+ def isequal(a, b):
+ if isinstance(a, dict):
+ for (k, v) in a.items():
+ if v:
+ isequal(a[k], b[k])
+ else:
+ assert not b.get(k, None)
+ return
+ assert a == b
+
+ isequal(converted, expected)
def test_topology_config(self):
netconfig = config.NetConfig(**{
@@ -60,6 +64,19 @@ class TestConfig(TestCase):
assert env.agents[0].topology == env.topologies['default']
+ def test_agents_from_config(self):
+ '''We test that the known complete configuration produces
+ the right agents in the right groups'''
+ cfg = serialization.load_file(join(ROOT, "complete_converted.yml"))[0]
+ s = simulation.from_config(cfg)
+ env = s.get_env()
+ assert len(env.topologies['default'].nodes) == 10
+ assert len(env.agents('network')) == 10
+ assert len(env.agents('environment')) == 1
+
+ assert sum(1 for a in env.agents('network') if isinstance(a, agents.CounterModel)) == 4
+ assert sum(1 for a in env.agents('network') if isinstance(a, agents.AggregatedCounter)) == 6
+
def make_example_test(path, cfg):
def wrapped(self):
root = os.getcwd()
diff --git a/tests/test_examples.py b/tests/test_examples.py
index a516c27..1cc4cca 100644
--- a/tests/test_examples.py
+++ b/tests/test_examples.py
@@ -18,10 +18,10 @@ def make_example_test(path, config):
def wrapped(self):
root = os.getcwd()
for s in simulation.all_from_config(path):
- iterations = s.config.max_time * s.config.num_trials
+ iterations = s.config.general.max_time * s.config.general.num_trials
if iterations > 1000:
- s.config.max_time = 100
- s.config.num_trials = 1
+ s.config.general.max_time = 100
+ s.config.general.num_trials = 1
if config.get('skip_test', False) and not FORCE_TESTS:
self.skipTest('Example ignored.')
envs = s.run_simulation(dry_run=True)
From 0a9c6d8b190a1c4bb4a114265226c31b2f5abee4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Fri, 16 Sep 2022 18:13:39 +0200
Subject: [PATCH 06/39] WIP: removed stats
---
examples/mesa/mesa.yml | 1 -
examples/mesa/social_wealth.py | 5 +-
examples/newsspread/newsspread.py | 4 +-
examples/pubcrawl/pubcrawl.py | 6 +-
examples/rabbits/rabbit_agents.py | 8 +-
soil/agents/__init__.py | 155 +++++++++++-------
soil/config.py | 19 ++-
soil/config_old.py | 264 ------------------------------
soil/environment.py | 92 +++++++----
soil/exporters.py | 49 +++---
soil/simulation.py | 35 +---
soil/stats.py | 111 -------------
tests/complete_converted.yml | 4 +-
tests/test_config.py | 8 +-
tests/test_exporters.py | 7 +-
tests/test_main.py | 11 +-
tests/test_stats.py | 34 ----
17 files changed, 224 insertions(+), 589 deletions(-)
delete mode 100644 soil/config_old.py
delete mode 100644 soil/stats.py
delete mode 100644 tests/test_stats.py
diff --git a/examples/mesa/mesa.yml b/examples/mesa/mesa.yml
index 01096eb..19148a2 100644
--- a/examples/mesa/mesa.yml
+++ b/examples/mesa/mesa.yml
@@ -14,7 +14,6 @@ network_agents:
weight: 1
environment_class: social_wealth.MoneyEnv
environment_params:
- num_mesa_agents: 5
mesa_agent_type: social_wealth.MoneyAgent
N: 10
width: 50
diff --git a/examples/mesa/social_wealth.py b/examples/mesa/social_wealth.py
index 3398884..5f7590b 100644
--- a/examples/mesa/social_wealth.py
+++ b/examples/mesa/social_wealth.py
@@ -71,10 +71,9 @@ class SocialMoneyAgent(NetworkAgent, MoneyAgent):
class MoneyEnv(Environment):
"""A model with some number of agents."""
- def __init__(self, N, width, height, *args, network_params, **kwargs):
+ def __init__(self, width, height, *args, topologies, **kwargs):
- network_params['n'] = N
- super().__init__(*args, network_params=network_params, **kwargs)
+ super().__init__(*args, topologies=topologies, **kwargs)
self.grid = MultiGrid(width, height, False)
# Create agents
diff --git a/examples/newsspread/newsspread.py b/examples/newsspread/newsspread.py
index dc77f09..c3b5e6b 100644
--- a/examples/newsspread/newsspread.py
+++ b/examples/newsspread/newsspread.py
@@ -1,8 +1,8 @@
-from soil.agents import FSM, state, default_state, prob
+from soil.agents import FSM, NetworkAgent, state, default_state, prob
import logging
-class DumbViewer(FSM):
+class DumbViewer(FSM, NetworkAgent):
'''
A viewer that gets infected via TV (if it has one) and tries to infect
its neighbors once it's infected.
diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py
index 6c8d632..e6c92bd 100644
--- a/examples/pubcrawl/pubcrawl.py
+++ b/examples/pubcrawl/pubcrawl.py
@@ -1,4 +1,4 @@
-from soil.agents import FSM, state, default_state
+from soil.agents import FSM, NetworkAgent, state, default_state
from soil import Environment
from random import random, shuffle
from itertools import islice
@@ -53,7 +53,7 @@ class CityPubs(Environment):
pub['occupancy'] -= 1
-class Patron(FSM):
+class Patron(FSM, NetworkAgent):
'''Agent that looks for friends to drink with. It will do three things:
1) Look for other patrons to drink with
2) Look for a bar where the agent and other agents in the same group can get in.
@@ -151,7 +151,7 @@ class Patron(FSM):
return befriended
-class Police(FSM):
+class Police(FSM, NetworkAgent):
'''Simple agent to take drunk people out of pubs.'''
level = logging.INFO
diff --git a/examples/rabbits/rabbit_agents.py b/examples/rabbits/rabbit_agents.py
index a8e6028..a70b21a 100644
--- a/examples/rabbits/rabbit_agents.py
+++ b/examples/rabbits/rabbit_agents.py
@@ -10,7 +10,7 @@ class Genders(Enum):
female = 'female'
-class RabbitModel(FSM):
+class RabbitModel(FSM, NetworkAgent):
defaults = {
'age': 0,
@@ -110,12 +110,12 @@ class Female(RabbitModel):
self.info('A mother has died carrying a baby!!')
-class RandomAccident(NetworkAgent):
+class RandomAccident(BaseAgent):
level = logging.DEBUG
def step(self):
- rabbits_total = self.topology.number_of_nodes()
+ rabbits_total = self.env.topology.number_of_nodes()
if 'rabbits_alive' not in self.env:
self.env['rabbits_alive'] = 0
rabbits_alive = self.env.get('rabbits_alive', rabbits_total)
@@ -131,5 +131,5 @@ class RandomAccident(NetworkAgent):
self.log('Rabbits alive: {}'.format(self.env['rabbits_alive']))
i.set_state(i.dead)
self.log('Rabbits alive: {}/{}'.format(rabbits_alive, rabbits_total))
- if self.count_agents(state_id=RabbitModel.dead.id) == self.topology.number_of_nodes():
+ if self.env.count_agents(state_id=RabbitModel.dead.id) == self.env.topology.number_of_nodes():
self.die()
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index 3b585f1..28cfbfe 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -55,6 +55,7 @@ class BaseAgent(MesaAgent, MutableMapping):
raise Exception()
assert isinstance(unique_id, int)
super().__init__(unique_id=unique_id, model=model)
+
self.name = str(name) if name else'{}[{}]'.format(type(self).__name__, self.unique_id)
@@ -78,6 +79,9 @@ class BaseAgent(MesaAgent, MutableMapping):
if not hasattr(self, k) or getattr(self, k) is None:
setattr(self, k, v)
+ def __hash__(self):
+ return hash(self.unique_id)
+
# TODO: refactor to clean up mesa compatibility
@property
def id(self):
@@ -185,16 +189,14 @@ class BaseAgent(MesaAgent, MutableMapping):
# Agent = BaseAgent
class NetworkAgent(BaseAgent):
- def __init__(self,
- *args,
- graph_name: str,
- node_id: int = None,
- **kwargs,
- ):
- super().__init__(*args, **kwargs)
- self.graph_name = graph_name
- self.topology = self.env.topologies[self.graph_name]
- self.node_id = node_id
+
+ @property
+ def topology(self):
+ return self.env.topology_for(self.unique_id)
+
+ @property
+ def node_id(self):
+ return self.env.node_id_for(self.unique_id)
@property
def G(self):
@@ -215,15 +217,19 @@ class NetworkAgent(BaseAgent):
it = islice(it, limit)
return list(it)
- def iter_agents(self, agents=None, limit_neighbors=False, **kwargs):
+ def iter_agents(self, unique_id=None, limit_neighbors=False, **kwargs):
if limit_neighbors:
- agents = self.topology.neighbors(self.unique_id)
+ unique_id = [self.topology.nodes[node]['agent_id'] for node in self.topology.neighbors(self.node_id)]
+ if not unique_id:
+ return
+
+ yield from self.model.agents(unique_id=unique_id, **kwargs)
- return self.model.agents(ids=agents, **kwargs)
def subgraph(self, center=True, **kwargs):
include = [self] if center else []
- return self.topology.subgraph(n.unique_id for n in list(self.get_agents(**kwargs))+include)
+ G = self.topology.subgraph(n.node_id for n in list(self.get_agents(**kwargs)+include))
+ return G
def remove_node(self, unique_id):
self.topology.remove_node(unique_id)
@@ -366,7 +372,7 @@ def prob(prob=1):
def calculate_distribution(network_agents=None,
- agent_type=None):
+ agent_class=None):
'''
Calculate the threshold values (thresholds for a uniform distribution)
of an agent distribution given the weights of each agent type.
@@ -374,13 +380,13 @@ def calculate_distribution(network_agents=None,
The input has this form: ::
[
- {'agent_type': 'agent_type_1',
+ {'agent_class': 'agent_class_1',
'weight': 0.2,
'state': {
'id': 0
}
},
- {'agent_type': 'agent_type_2',
+ {'agent_class': 'agent_class_2',
'weight': 0.8,
'state': {
'id': 1
@@ -389,12 +395,12 @@ def calculate_distribution(network_agents=None,
]
In this example, 20% of the nodes will be marked as type
- 'agent_type_1'.
+ 'agent_class_1'.
'''
if network_agents:
network_agents = [deepcopy(agent) for agent in network_agents if not hasattr(agent, 'id')]
- elif agent_type:
- network_agents = [{'agent_type': agent_type}]
+ elif agent_class:
+ network_agents = [{'agent_class': agent_class}]
else:
raise ValueError('Specify a distribution or a default agent type')
@@ -414,11 +420,11 @@ def calculate_distribution(network_agents=None,
return network_agents
-def serialize_type(agent_type, known_modules=[], **kwargs):
- if isinstance(agent_type, str):
- return agent_type
+def serialize_type(agent_class, known_modules=[], **kwargs):
+ if isinstance(agent_class, str):
+ return agent_class
known_modules += ['soil.agents']
- return serialization.serialize(agent_type, known_modules=known_modules, **kwargs)[1] # Get the name of the class
+ return serialization.serialize(agent_class, known_modules=known_modules, **kwargs)[1] # Get the name of the class
def serialize_definition(network_agents, known_modules=[]):
@@ -430,23 +436,23 @@ def serialize_definition(network_agents, known_modules=[]):
for v in d:
if 'threshold' in v:
del v['threshold']
- v['agent_type'] = serialize_type(v['agent_type'],
+ v['agent_class'] = serialize_type(v['agent_class'],
known_modules=known_modules)
return d
-def deserialize_type(agent_type, known_modules=[]):
- if not isinstance(agent_type, str):
- return agent_type
+def deserialize_type(agent_class, known_modules=[]):
+ if not isinstance(agent_class, str):
+ return agent_class
known = known_modules + ['soil.agents', 'soil.agents.custom' ]
- agent_type = serialization.deserializer(agent_type, known_modules=known)
- return agent_type
+ agent_class = serialization.deserializer(agent_class, known_modules=known)
+ return agent_class
def deserialize_definition(ind, **kwargs):
d = deepcopy(ind)
for v in d:
- v['agent_type'] = deserialize_type(v['agent_type'], **kwargs)
+ v['agent_class'] = deserialize_type(v['agent_class'], **kwargs)
return d
@@ -461,7 +467,7 @@ def _validate_states(states, topology):
return states
-def _convert_agent_types(ind, to_string=False, **kwargs):
+def _convert_agent_classs(ind, to_string=False, **kwargs):
'''Convenience method to allow specifying agents by class or class name.'''
if to_string:
return serialize_definition(ind, **kwargs)
@@ -480,7 +486,7 @@ def _agent_from_definition(definition, value=-1, unique_id=None):
state = {}
if 'state' in d:
state = deepcopy(d['state'])
- return d['agent_type'], state
+ return d['agent_class'], state
raise Exception('Definition for value {} not found in: {}'.format(value, definition))
@@ -576,8 +582,11 @@ class AgentView(Mapping, Set):
return group[agent_id]
raise ValueError(f"Agent {agent_id} not found")
- def filter(self, *group_ids, **kwargs):
- yield from filter_groups(self._agents, group_ids=group_ids, **kwargs)
+ def filter(self, *args, **kwargs):
+ yield from filter_groups(self._agents, *args, **kwargs)
+
+ def one(self, *args, **kwargs):
+ return next(filter_groups(self._agents, *args, **kwargs))
def __call__(self, *args, **kwargs):
return list(self.filter(*args, **kwargs))
@@ -586,41 +595,57 @@ class AgentView(Mapping, Set):
return any(agent_id in g for g in self._agents)
def __str__(self):
- return str(list(a.id for a in self))
+ return str(list(a.unique_id for a in self))
def __repr__(self):
return f"{self.__class__.__name__}({self})"
-def filter_groups(groups, group_ids=None, **kwargs):
+def filter_groups(groups, *, group=None, **kwargs):
assert isinstance(groups, dict)
- if group_ids:
- groups = list(groups[g] for g in group_ids if g in groups)
+
+ if group is not None and not isinstance(group, list):
+ group = [group]
+
+ if group:
+ groups = list(groups[g] for g in group if g in groups)
else:
groups = list(groups.values())
-
+
agents = chain.from_iterable(filter_group(g, **kwargs) for g in groups)
yield from agents
-def filter_group(group, ids=None, state_id=None, agent_type=None, ignore=None, state=None, **kwargs):
+def filter_group(group, *id_args, unique_id=None, state_id=None, agent_class=None, ignore=None, state=None, **kwargs):
'''
Filter agents given as a dict, by the criteria given as arguments (e.g., certain type or state id).
'''
assert isinstance(group, dict)
+ ids = []
+
+ if unique_id is not None:
+ if isinstance(unique_id, list):
+ ids += unique_id
+ else:
+ ids.append(unique_id)
+
+ if id_args:
+ ids += id_args
+
if state_id is not None and not isinstance(state_id, (tuple, list)):
state_id = tuple([state_id])
- if agent_type is not None:
+ if agent_class is not None:
+ agent_class = deserialize_type(agent_class)
try:
- agent_type = tuple(agent_type)
+ agent_class = tuple(agent_class)
except TypeError:
- agent_type = tuple([agent_type])
+ agent_class = tuple([agent_class])
if ids:
- agents = (v[aid] for aid in ids if aid in group)
+ agents = (group[aid] for aid in ids if aid in group)
else:
agents = (a for a in group.values())
@@ -631,8 +656,8 @@ def filter_group(group, ids=None, state_id=None, agent_type=None, ignore=None, s
if state_id is not None:
f = filter(lambda agent: agent.get('state_id', None) in state_id, f)
- if agent_type is not None:
- f = filter(lambda agent: isinstance(agent, agent_type), f)
+ if agent_class is not None:
+ f = filter(lambda agent: isinstance(agent, agent_class), f)
state = state or dict()
state.update(kwargs)
@@ -660,7 +685,7 @@ def _group_from_config(cfg: config.AgentConfig, default: config.SingleAgentConfi
if cfg.fixed is not None:
agents = _from_fixed(cfg.fixed, topology=cfg.topology, default=default, env=env)
if cfg.distribution:
- n = cfg.n or len(env.topologies[cfg.topology])
+ n = cfg.n or len(env.topologies[cfg.topology or default.topology])
target = n - len(agents)
agents.update(_from_distro(cfg.distribution, target,
topology=cfg.topology or default.topology,
@@ -674,6 +699,8 @@ def _group_from_config(cfg: config.AgentConfig, default: config.SingleAgentConfi
else:
filtered = list(agents)
+ if attrs.n > len(filtered):
+ raise ValueError(f'Not enough agents to sample. Got {len(filtered)}, expected >= {attrs.n}')
for agent in random.sample(filtered, attrs.n):
agent.state.update(attrs.state)
@@ -684,18 +711,20 @@ def _from_fixed(lst: List[config.FixedAgentConfig], topology: str, default: conf
agents = {}
for fixed in lst:
- agent_id = fixed.agent_id
- if agent_id is None:
- agent_id = env.next_id()
+ agent_id = fixed.agent_id
+ if agent_id is None:
+ agent_id = env.next_id()
- cls = serialization.deserialize(fixed.agent_class or default.agent_class)
- state = fixed.state.copy()
- state.update(default.state)
- agent = cls(unique_id=agent_id,
- model=env,
- graph_name=fixed.topology or topology or default.topology,
- **state)
- agents[agent.unique_id] = agent
+ cls = serialization.deserialize(fixed.agent_class or default.agent_class)
+ state = fixed.state.copy()
+ state.update(default.state)
+ agent = cls(unique_id=agent_id,
+ model=env,
+ **state)
+ topology = fixed.topology if (fixed.topology is not None) else (topology or default.topology)
+ if topology:
+ env.agent_to_node(agent_id, topology, fixed.node_id)
+ agents[agent.unique_id] = agent
return agents
@@ -741,8 +770,12 @@ def _from_distro(distro: List[config.AgentDistro],
cls = classes[idx]
agent_id = env.next_id()
state = d.state.copy()
- state.update(default.state)
- agent = cls(unique_id=agent_id, model=env, graph_name=d.topology or topology or default.topology, **state)
+ if default:
+ state.update(default.state)
+ agent = cls(unique_id=agent_id, model=env, **state)
+ topology = d.topology if (d.topology is not None) else topology or default.topology
+ if topology:
+ env.agent_to_node(agent.unique_id, topology)
assert agent.name is not None
assert agent.name != 'None'
assert agent.name
diff --git a/soil/config.py b/soil/config.py
index eabb43f..3cc4fd6 100644
--- a/soil/config.py
+++ b/soil/config.py
@@ -7,6 +7,7 @@ import sys
from typing import Any, Callable, Dict, List, Optional, Union, Type
from pydantic import BaseModel, Extra
+import networkx as nx
class General(BaseModel):
id: str = 'Unnamed Simulation'
@@ -50,9 +51,12 @@ class NetParams(BaseModel, extra=Extra.allow):
class NetConfig(BaseModel):
group: str = 'network'
params: Optional[NetParams]
- topology: Optional[Topology]
+ topology: Optional[Union[Topology, nx.Graph]]
path: Optional[str]
+ class Config:
+ arbitrary_types_allowed = True
+
@staticmethod
def default():
return NetConfig(topology=None, params=None)
@@ -77,7 +81,8 @@ class EnvConfig(BaseModel):
class SingleAgentConfig(BaseModel):
agent_class: Optional[Union[Type, str]] = None
agent_id: Optional[int] = None
- topology: Optional[str] = 'default'
+ topology: Optional[str] = None
+ node_id: Optional[Union[int, str]] = None
name: Optional[str] = None
state: Optional[Dict[str, Any]] = {}
@@ -186,9 +191,7 @@ def convert_old(old, strict=True):
if 'agent_id' in agent:
agent['name'] = agent['agent_id']
del agent['agent_id']
- agents['environment']['fixed'].append(updated_agent(agent))
- else:
- agents['environment']['distribution'].append(updated_agent(agent))
+ agents['environment']['fixed'].append(updated_agent(agent))
by_weight = []
fixed = []
@@ -206,10 +209,10 @@ def convert_old(old, strict=True):
if 'agent_type' in old and (not fixed and not by_weight):
agents['network']['topology'] = 'default'
- by_weight = [{'agent_type': old['agent_type']}]
+ by_weight = [{'agent_class': old['agent_type']}]
- # TODO: translate states
+ # TODO: translate states properly
if 'states' in old:
states = old['states']
if isinstance(states, dict):
@@ -217,7 +220,7 @@ def convert_old(old, strict=True):
else:
states = enumerate(states)
for (k, v) in states:
- override.append({'filter': {'id': k},
+ override.append({'filter': {'node_id': k},
'state': v
})
diff --git a/soil/config_old.py b/soil/config_old.py
deleted file mode 100644
index ca4eaa9..0000000
--- a/soil/config_old.py
+++ /dev/null
@@ -1,264 +0,0 @@
-from pydantic import BaseModel, ValidationError, validator
-
-import yaml
-import os
-import sys
-import networkx as nx
-import collections.abc
-
-from . import serialization, utils, basestring, agents
-
-class Config(collections.abc.Mapping):
- """
-
- 1) agent type can be specified by name or by class.
- 2) instead of just one type, a network agents distribution can be used.
- The distribution specifies the weight (or probability) of each
- agent type in the topology. This is an example distribution: ::
-
- [
- {'agent_type': 'agent_type_1',
- 'weight': 0.2,
- 'state': {
- 'id': 0
- }
- },
- {'agent_type': 'agent_type_2',
- 'weight': 0.8,
- 'state': {
- 'id': 1
- }
- }
- ]
-
- In this example, 20% of the nodes will be marked as type
- 'agent_type_1'.
- 3) if no initial state is given, each node's state will be set
- to `{'id': 0}`.
-
- Parameters
- ---------
- name : str, optional
- name of the Simulation
- group : str, optional
- a group name can be used to link simulations
- topology (optional): networkx.Graph instance or Node-Link topology as a dict or string (will be loaded with `json_graph.node_link_graph(topology`).
- network_params : dict
- parameters used to create a topology with networkx, if no topology is given
- network_agents : dict
- definition of agents to populate the topology with
- agent_type : NetworkAgent subclass, optional
- Default type of NetworkAgent to use for nodes not specified in network_agents
- states : list, optional
- List of initial states corresponding to the nodes in the topology. Basic form is a list of integers
- whose value indicates the state
- dir_path: str, optional
- Directory path to load simulation assets (files, modules...)
- seed : str, optional
- Seed to use for the random generator
- num_trials : int, optional
- Number of independent simulation runs
- max_time : int, optional
- Maximum step/time for each simulation
- environment_params : dict, optional
- Dictionary of globally-shared environmental parameters
- environment_agents: dict, optional
- Similar to network_agents. Distribution of Agents that control the environment
- environment_class: soil.environment.Environment subclass, optional
- Class for the environment. It defailts to soil.environment.Environment
- """
- __slots__ = 'name', 'agent_type', 'group', 'description', 'network_agents', 'environment_agents', 'states', 'default_state', 'interval', 'network_params', 'seed', 'num_trials', 'max_time', 'topology', 'schedule', 'initial_time', 'environment_params', 'environment_class', 'dir_path', '_added_to_path', 'visualization_params'
-
- def __init__(self, name=None,
- group=None,
- agent_type='BaseAgent',
- network_agents=None,
- environment_agents=None,
- states=None,
- description=None,
- default_state=None,
- interval=1,
- network_params=None,
- seed=None,
- num_trials=1,
- max_time=None,
- topology=None,
- schedule=None,
- initial_time=0,
- environment_params={},
- environment_class='soil.Environment',
- dir_path=None,
- visualization_params=None,
- ):
-
- self.network_params = network_params
- self.name = name or 'Unnamed'
- self.description = description or 'No simulation description available'
- self.seed = str(seed or name)
- self.group = group or ''
- self.num_trials = num_trials
- self.max_time = max_time
- self.default_state = default_state or {}
- self.dir_path = dir_path or os.getcwd()
- self.interval = interval
- self.visualization_params = visualization_params or {}
-
- self._added_to_path = list(x for x in [os.getcwd(), self.dir_path] if x not in sys.path)
- sys.path += self._added_to_path
-
- self.topology = topology
-
- self.schedule = schedule
- self.initial_time = initial_time
-
-
- self.environment_class = environment_class
- self.environment_params = dict(environment_params)
-
- #TODO: Check agent distro vs fixed agents
- self.environment_agents = environment_agents or []
-
- self.agent_type = agent_type
-
- self.network_agents = network_agents or {}
-
- self.states = states or {}
-
-
- def validate(self):
- agents._validate_states(self.states,
- self._topology)
-
- def calculate(self):
- return CalculatedConfig(self)
-
- def restore_path(self):
- for added in self._added_to_path:
- sys.path.remove(added)
-
- def to_yaml(self):
- return yaml.dump(self.to_dict())
-
- def dump_yaml(self, f=None, outdir=None):
- if not f and not outdir:
- raise ValueError('specify a file or an output directory')
-
- if not f:
- f = os.path.join(outdir, '{}.dumped.yml'.format(self.name))
-
- with utils.open_or_reuse(f, 'w') as f:
- f.write(self.to_yaml())
-
- def to_yaml(self):
- return yaml.dump(self.to_dict())
-
- # TODO: See note on getstate
- def to_dict(self):
- return dict(self)
-
- def __repr__(self):
- return self.to_yaml()
-
- def dump_yaml(self, f=None, outdir=None):
- if not f and not outdir:
- raise ValueError('specify a file or an output directory')
-
- if not f:
- f = os.path.join(outdir, '{}.dumped.yml'.format(self.name))
-
- with utils.open_or_reuse(f, 'w') as f:
- f.write(self.to_yaml())
-
- def __getitem__(self, key):
- return getattr(self, key)
-
- def __iter__(self):
- return (k for k in self.__slots__ if k[0] != '_')
-
- def __len__(self):
- return len(self.__slots__)
-
- def dump_pickle(self, f=None, outdir=None):
- if not outdir and not f:
- raise ValueError('specify a file or an output directory')
-
- if not f:
- f = os.path.join(outdir,
- '{}.simulation.pickle'.format(self.name))
- with utils.open_or_reuse(f, 'wb') as f:
- pickle.dump(self, f)
-
- # TODO: remove this. A config should be sendable regardless. Non-pickable objects could be computed via properties and the like
- # def __getstate__(self):
- # state={}
- # for k, v in self.__dict__.items():
- # if k[0] != '_':
- # state[k] = v
- # state['topology'] = json_graph.node_link_data(self.topology)
- # state['network_agents'] = agents.serialize_definition(self.network_agents,
- # known_modules = [])
- # state['environment_agents'] = agents.serialize_definition(self.environment_agents,
- # known_modules = [])
- # state['environment_class'] = serialization.serialize(self.environment_class,
- # known_modules=['soil.environment'])[1] # func, name
- # if state['load_module'] is None:
- # del state['load_module']
- # return state
-
- # # TODO: remove, same as __getstate__
- # def __setstate__(self, state):
- # self.__dict__ = state
- # self.load_module = getattr(self, 'load_module', None)
- # if self.dir_path not in sys.path:
- # sys.path += [self.dir_path, os.getcwd()]
- # self.topology = json_graph.node_link_graph(state['topology'])
- # self.network_agents = agents.calculate_distribution(agents._convert_agent_types(self.network_agents))
- # self.environment_agents = agents._convert_agent_types(self.environment_agents,
- # known_modules=[self.load_module])
- # self.environment_class = serialization.deserialize(self.environment_class,
- # known_modules=[self.load_module,
- # 'soil.environment', ]) # func, name
-
-class CalculatedConfig(Config):
- def __init__(self, config):
- """
- Returns a configuration object that replaces some "plain" attributes (e.g., `environment_class` string) into
- a Python object (`soil.environment.Environment` class).
- """
- self._config = config
- values = dict(config)
- values['environment_class'] = self._environment_class()
- values['environment_agents'] = self._environment_agents()
- values['topology'] = self._topology()
- values['network_agents'] = self._network_agents()
- values['agent_type'] = serialization.deserialize(self.agent_type, known_modules=['soil.agents'])
-
- return values
-
- def _topology(self):
- topology = self._config.topology
- if topology is None:
- topology = serialization.load_network(self._config.network_params,
- dir_path=self._config.dir_path)
-
- elif isinstance(topology, basestring) or isinstance(topology, dict):
- topology = json_graph.node_link_graph(topology)
-
- return nx.Graph(topology)
-
- def _environment_class(self):
- return serialization.deserialize(self._config.environment_class,
- known_modules=['soil.environment', ]) or Environment
-
- def _environment_agents(self):
- return agents._convert_agent_types(self._config.environment_agents)
-
- def _network_agents(self):
- distro = agents.calculate_distribution(self._config.network_agents,
- self._config.agent_type)
- return agents._convert_agent_types(distro)
-
- def _environment_class(self):
- return serialization.deserialize(self._config.environment_class,
- known_modules=['soil.environment', ]) # func, name
-
diff --git a/soil/environment.py b/soil/environment.py
index ddb46cb..9e00f36 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -15,6 +15,7 @@ from networkx.readwrite import json_graph
import networkx as nx
from mesa import Model
+from mesa.datacollection import DataCollector
from . import serialization, agents, analysis, utils, time, config, network
@@ -41,6 +42,9 @@ class Environment(Model):
interval=1,
agents: Dict[str, config.AgentConfig] = {},
topologies: Dict[str, config.NetConfig] = {},
+ agent_reporters: Optional[Any] = None,
+ model_reporters: Optional[Any] = None,
+ tables: Optional[Any] = None,
**env_params):
super().__init__()
@@ -61,6 +65,7 @@ class Environment(Model):
self.topologies = {}
+ self._node_ids = {}
for (name, cfg) in topologies.items():
self.set_topology(cfg=cfg,
graph=name)
@@ -72,6 +77,7 @@ class Environment(Model):
self['SEED'] = seed
self.logger = utils.logger.getChild(self.id)
+ self.datacollector = DataCollector(model_reporters, agent_reporters, tables)
@property
def topology(self):
@@ -79,8 +85,7 @@ class Environment(Model):
@property
def network_agents(self):
- yield from self.agents(agent_type=agents.NetworkAgent, iterator=False)
-
+ yield from self.agents(agent_class=agents.NetworkAgent)
@staticmethod
def from_config(conf: config.Config, trial_id, **kwargs) -> Environment:
@@ -91,9 +96,10 @@ class Environment(Model):
seed = '{}_{}'.format(conf.general.seed, trial_id)
id = '{}_trial_{}'.format(conf.general.id, trial_id).replace('.', '-')
opts = conf.environment.params.copy()
+ dir_path = conf.general.dir_path
opts.update(conf)
opts.update(kwargs)
- env = serialization.deserialize(conf.environment.environment_class)(env_id=id, seed=seed, **opts)
+ env = serialization.deserialize(conf.environment.environment_class)(env_id=id, seed=seed, dir_path=dir_path, **opts)
return env
@property
@@ -103,12 +109,31 @@ class Environment(Model):
raise Exception('The environment has not been scheduled, so it has no sense of time')
+ def topology_for(self, agent_id):
+ return self.topologies[self._node_ids[agent_id][0]]
+
+ def node_id_for(self, agent_id):
+ return self._node_ids[agent_id][1]
+
def set_topology(self, cfg=None, dir_path=None, graph='default'):
- self.topologies[graph] = network.from_config(cfg, dir_path=dir_path)
+ topology = cfg
+ if not isinstance(cfg, nx.Graph):
+ topology = network.from_config(cfg, dir_path=dir_path or self.dir_path)
+
+ self.topologies[graph] = topology
@property
def agents(self):
return agents.AgentView(self._agents)
+
+ def count_agents(self, *args, **kwargs):
+ return sum(1 for i in self.find_all(*args, **kwargs))
+
+ def find_all(self, *args, **kwargs):
+ return agents.AgentView(self._agents).filter(*args, **kwargs)
+
+ def find_one(self, *args, **kwargs):
+ return agents.AgentView(self._agents).one(*args, **kwargs)
@agents.setter
def agents(self, agents_def: Dict[str, config.AgentConfig]):
@@ -117,37 +142,47 @@ class Environment(Model):
for a in d.values():
self.schedule.add(a)
-
- # @property
- # def network_agents(self):
- # for i in self.G.nodes():
- # node = self.G.nodes[i]
- # if 'agent' in node:
- # yield node['agent']
-
def init_agent(self, agent_id, agent_definitions, graph='default'):
node = self.topologies[graph].nodes[agent_id]
init = False
state = dict(node)
- agent_type = None
- if 'agent_type' in self.states.get(agent_id, {}):
- agent_type = self.states[agent_id]['agent_type']
- elif 'agent_type' in node:
- agent_type = node['agent_type']
- elif 'agent_type' in self.default_state:
- agent_type = self.default_state['agent_type']
+ agent_class = None
+ if 'agent_class' in self.states.get(agent_id, {}):
+ agent_class = self.states[agent_id]['agent_class']
+ elif 'agent_class' in node:
+ agent_class = node['agent_class']
+ elif 'agent_class' in self.default_state:
+ agent_class = self.default_state['agent_class']
- if agent_type:
- agent_type = agents.deserialize_type(agent_type)
+ if agent_class:
+ agent_class = agents.deserialize_type(agent_class)
elif agent_definitions:
- agent_type, state = agents._agent_from_definition(agent_definitions, unique_id=agent_id)
+ agent_class, state = agents._agent_from_definition(agent_definitions, unique_id=agent_id)
else:
serialization.logger.debug('Skipping node {}'.format(agent_id))
return
- return self.set_agent(agent_id, agent_type, state)
+ return self.set_agent(agent_id, agent_class, state)
- def set_agent(self, agent_id, agent_type, state=None, graph='default'):
+ def agent_to_node(self, agent_id, graph_name='default', node_id=None, shuffle=False):
+ #TODO: test
+ if node_id is None:
+ G = self.topologies[graph_name]
+ candidates = list(G.nodes(data=True))
+ if shuffle:
+ random.shuffle(candidates)
+ for next_id, data in candidates:
+ if data.get('agent_id', None) is None:
+ node_id = next_id
+ data['agent_id'] = agent_id
+ break
+
+
+ self._node_ids[agent_id] = (graph_name, node_id)
+ print(self._node_ids)
+
+
+ def set_agent(self, agent_id, agent_class, state=None, graph='default'):
node = self.topologies[graph].nodes[agent_id]
defstate = deepcopy(self.default_state) or {}
defstate.update(self.states.get(agent_id, {}))
@@ -155,9 +190,9 @@ class Environment(Model):
if state:
defstate.update(state)
a = None
- if agent_type:
+ if agent_class:
state = defstate
- a = agent_type(model=self,
+ a = agent_class(model=self,
unique_id=agent_id
)
@@ -168,10 +203,10 @@ class Environment(Model):
self.schedule.add(a)
return a
- def add_node(self, agent_type, state=None, graph='default'):
+ def add_node(self, agent_class, state=None, graph='default'):
agent_id = int(len(self.topologies[graph].nodes()))
self.topologies[graph].add_node(agent_id)
- a = self.set_agent(agent_id, agent_type, state, graph=graph)
+ a = self.set_agent(agent_id, agent_class, state, graph=graph)
a['visible'] = True
return a
@@ -201,6 +236,7 @@ class Environment(Model):
'''
super().step()
self.schedule.step()
+ self.datacollector.collect(self)
def run(self, until, *args, **kwargs):
until = until or float('inf')
diff --git a/soil/exporters.py b/soil/exporters.py
index 0653517..1bd06de 100644
--- a/soil/exporters.py
+++ b/soil/exporters.py
@@ -1,5 +1,4 @@
import os
-import csv as csvlib
from time import time as current_time
from io import BytesIO
from sqlalchemy import create_engine
@@ -59,7 +58,7 @@ class Exporter:
'''Method to call when the simulation starts'''
pass
- def sim_end(self, stats):
+ def sim_end(self):
'''Method to call when the simulation ends'''
pass
@@ -67,7 +66,7 @@ class Exporter:
'''Method to call when a trial start'''
pass
- def trial_end(self, env, stats):
+ def trial_end(self, env):
'''Method to call when a trial ends'''
pass
@@ -115,31 +114,35 @@ class default(Exporter):
# self.simulation.dump_sqlite(f)
+def get_dc_dfs(dc):
+ dfs = {'env': dc.get_model_vars_dataframe(),
+ 'agents': dc.get_agent_vars_dataframe }
+ for table_name in dc.tables:
+ dfs[table_name] = dc.get_table_dataframe(table_name)
+ yield from dfs.items()
+
class csv(Exporter):
'''Export the state of each environment (and its agents) in a separate CSV file'''
- def trial_end(self, env, stats):
+ def trial_end(self, env):
with timer('[CSV] Dumping simulation {} trial {} @ dir {}'.format(self.simulation.name,
- env.name,
+ env.id,
self.outdir)):
-
- with self.output('{}.stats.{}.csv'.format(env.name, stats.name)) as f:
- statwriter = csvlib.writer(f, delimiter='\t', quotechar='"', quoting=csvlib.QUOTE_ALL)
-
- for stat in stats:
- statwriter.writerow(stat)
+ for (df_name, df) in get_dc_dfs(env.datacollector):
+ with self.output('{}.stats.{}.csv'.format(env.id, df_name)) as f:
+ df.to_csv(f)
class gexf(Exporter):
- def trial_end(self, env, stats):
+ def trial_end(self, env):
if self.dry_run:
logger.info('Not dumping GEXF in dry_run mode')
return
with timer('[GEXF] Dumping simulation {} trial {}'.format(self.simulation.name,
- env.name)):
- with self.output('{}.gexf'.format(env.name), mode='wb') as f:
+ env.id)):
+ with self.output('{}.gexf'.format(env.id), mode='wb') as f:
self.dump_gexf(env, f)
def dump_gexf(self, env, f):
@@ -159,25 +162,25 @@ class dummy(Exporter):
with self.output('dummy', 'w') as f:
f.write('simulation started @ {}\n'.format(current_time()))
- def trial_end(self, env, stats):
+ def trial_start(self, env):
with self.output('dummy', 'w') as f:
- for i in stats:
- f.write(','.join(map(str, i)))
- f.write('\n')
+ f.write('trial started@ {}\n'.format(current_time()))
- def sim_end(self, stats):
+ def trial_end(self, env):
+ with self.output('dummy', 'w') as f:
+ f.write('trial ended@ {}\n'.format(current_time()))
+
+ def sim_end(self):
with self.output('dummy', 'a') as f:
f.write('simulation ended @ {}\n'.format(current_time()))
-
-
class graphdrawing(Exporter):
- def trial_end(self, env, stats):
+ def trial_end(self, env):
# Outside effects
f = plt.figure()
nx.draw(env.G, node_size=10, width=0.2, pos=nx.spring_layout(env.G, scale=100), ax=f.add_subplot(111))
- with open('graph-{}.png'.format(env.name)) as f:
+ with open('graph-{}.png'.format(env.id)) as f:
f.savefig(f)
'''
diff --git a/soil/simulation.py b/soil/simulation.py
index 0892731..d28549d 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -16,7 +16,6 @@ from . import serialization, utils, basestring, agents
from .environment import Environment
from .utils import logger
from .exporters import default
-from .stats import defaultStats
from .config import Config, convert_old
@@ -71,8 +70,8 @@ class Simulation:
**kwargs)
def run_gen(self, parallel=False, dry_run=False,
- exporters=[default, ], stats=[], outdir=None, exporter_params={},
- stats_params={}, log_level=None,
+ exporters=[default, ], outdir=None, exporter_params={},
+ log_level=None,
**kwargs):
'''Run the simulation and yield the resulting environments.'''
if log_level:
@@ -85,15 +84,8 @@ class Simulation:
dry_run=dry_run,
outdir=outdir,
**exporter_params)
- stats = serialization.deserialize_all(simulation=self,
- names=stats,
- known_modules=['soil.stats',],
- **stats_params)
with utils.timer('simulation {}'.format(self.config.general.id)):
- for stat in stats:
- stat.sim_start()
-
for exporter in exporters:
exporter.sim_start()
@@ -104,32 +96,13 @@ class Simulation:
for exporter in exporters:
exporter.trial_start(env)
- collected = list(stat.trial_end(env) for stat in stats)
-
- saved = self._update_stats(collected, t_step=env.now, trial_id=env.id)
-
for exporter in exporters:
- exporter.trial_end(env, saved)
+ exporter.trial_end(env)
yield env
- collected = list(stat.end() for stat in stats)
- saved = self._update_stats(collected)
-
- for stat in stats:
- stat.sim_end()
-
for exporter in exporters:
- exporter.sim_end(saved)
-
- def _update_stats(self, collection, **kwargs):
- stats = dict(kwargs)
- for stat in collection:
- stats.update(stat)
- return stats
-
- def log_stats(self, stats):
- logger.info('Stats: \n{}'.format(yaml.dump(stats, default_flow_style=False)))
+ exporter.sim_end()
def get_env(self, trial_id=0, **kwargs):
'''Create an environment for a trial of the simulation'''
diff --git a/soil/stats.py b/soil/stats.py
deleted file mode 100644
index 5de9a40..0000000
--- a/soil/stats.py
+++ /dev/null
@@ -1,111 +0,0 @@
-import pandas as pd
-
-from collections import Counter
-
-class Stats:
- '''
- Interface for all stats. It is not necessary, but it is useful
- if you don't plan to implement all the methods.
- '''
-
- def __init__(self, simulation, name=None):
- self.name = name or type(self).__name__
- self.simulation = simulation
-
- def sim_start(self):
- '''Method to call when the simulation starts'''
- pass
-
- def sim_end(self):
- '''Method to call when the simulation ends'''
- return {}
-
- def trial_start(self, env):
- '''Method to call when a trial starts'''
- return {}
-
- def trial_end(self, env):
- '''Method to call when a trial ends'''
- return {}
-
-
-class distribution(Stats):
- '''
- Calculate the distribution of agent states at the end of each trial,
- the mean value, and its deviation.
- '''
-
- def sim_start(self):
- self.means = []
- self.counts = []
-
- def trial_end(self, env):
- df = pd.DataFrame(env.state_to_tuples())
- df = df.drop('SEED', axis=1)
- ix = df.index[-1]
- attrs = df.columns.get_level_values(0)
- vc = {}
- stats = {
- 'mean': {},
- 'count': {},
- }
- for a in attrs:
- t = df.loc[(ix, a)]
- try:
- stats['mean'][a] = t.mean()
- self.means.append(('mean', a, t.mean()))
- except TypeError:
- pass
-
- for name, count in t.value_counts().iteritems():
- if a not in stats['count']:
- stats['count'][a] = {}
- stats['count'][a][name] = count
- self.counts.append(('count', a, name, count))
-
- return stats
-
- def sim_end(self):
- dfm = pd.DataFrame(self.means, columns=['metric', 'key', 'value'])
- dfc = pd.DataFrame(self.counts, columns=['metric', 'key', 'value', 'count'])
-
- count = {}
- mean = {}
-
- if self.means:
- res = dfm.groupby(by=['key']).agg(['mean', 'std', 'count', 'median', 'max', 'min'])
- mean = res['value'].to_dict()
- if self.counts:
- res = dfc.groupby(by=['key', 'value']).agg(['mean', 'std', 'count', 'median', 'max', 'min'])
- for k,v in res['count'].to_dict().items():
- if k not in count:
- count[k] = {}
- for tup, times in v.items():
- subkey, subcount = tup
- if subkey not in count[k]:
- count[k][subkey] = {}
- count[k][subkey][subcount] = times
-
-
- return {'count': count, 'mean': mean}
-
-
-class defaultStats(Stats):
-
- def trial_end(self, env):
- c = Counter()
- c.update(a.__class__.__name__ for a in env.network_agents)
-
- c2 = Counter()
- c2.update(a['id'] for a in env.network_agents)
-
- return {
- 'network ': {
- 'n_nodes': env.G.number_of_nodes(),
- 'n_edges': env.G.number_of_edges(),
- },
- 'agents': {
- 'model_count': dict(c),
- 'state_count': dict(c2),
- }
- }
diff --git a/tests/complete_converted.yml b/tests/complete_converted.yml
index ffb5a16..36a0a96 100644
--- a/tests/complete_converted.yml
+++ b/tests/complete_converted.yml
@@ -29,11 +29,11 @@ agents:
weight: 0.6
override:
- filter:
- id: 0
+ node_id: 0
state:
name: 'The first node'
- filter:
- id: 1
+ node_id: 1
state:
name: 'The second node'
diff --git a/tests/test_config.py b/tests/test_config.py
index 7cba6af..6f69ee2 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -71,11 +71,11 @@ class TestConfig(TestCase):
s = simulation.from_config(cfg)
env = s.get_env()
assert len(env.topologies['default'].nodes) == 10
- assert len(env.agents('network')) == 10
- assert len(env.agents('environment')) == 1
+ assert len(env.agents(group='network')) == 10
+ assert len(env.agents(group='environment')) == 1
- assert sum(1 for a in env.agents('network') if isinstance(a, agents.CounterModel)) == 4
- assert sum(1 for a in env.agents('network') if isinstance(a, agents.AggregatedCounter)) == 6
+ assert sum(1 for a in env.agents(group='network', agent_type=agents.CounterModel)) == 4
+ assert sum(1 for a in env.agents(group='network', agent_type=agents.AggregatedCounter)) == 6
def make_example_test(path, cfg):
def wrapped(self):
diff --git a/tests/test_exporters.py b/tests/test_exporters.py
index 79ffe25..6ff544b 100644
--- a/tests/test_exporters.py
+++ b/tests/test_exporters.py
@@ -7,8 +7,6 @@ from unittest import TestCase
from soil import exporters
from soil import simulation
-from soil.stats import distribution
-
class Dummy(exporters.Exporter):
started = False
trials = 0
@@ -22,13 +20,13 @@ class Dummy(exporters.Exporter):
self.__class__.called_start += 1
self.__class__.started = True
- def trial_end(self, env, stats):
+ def trial_end(self, env):
assert env
self.__class__.trials += 1
self.__class__.total_time += env.now
self.__class__.called_trial += 1
- def sim_end(self, stats):
+ def sim_end(self):
self.__class__.ended = True
self.__class__.called_end += 1
@@ -78,7 +76,6 @@ class Exporters(TestCase):
exporters.csv,
exporters.gexf,
],
- stats=[distribution,],
dry_run=False,
outdir=tmpdir,
exporter_params={'copy_to': output})
diff --git a/tests/test_main.py b/tests/test_main.py
index f63128e..017e92e 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -10,7 +10,7 @@ from functools import partial
from os.path import join
from soil import (simulation, Environment, agents, network, serialization,
- utils)
+ utils, config)
from soil.time import Delta
ROOT = os.path.abspath(os.path.dirname(__file__))
@@ -200,7 +200,6 @@ class TestMain(TestCase):
recovered = yaml.load(serial, Loader=yaml.SafeLoader)
for (k, v) in config.items():
assert recovered[k] == v
- # assert config == recovered
def test_configuration_changes(self):
"""
@@ -294,11 +293,13 @@ class TestMain(TestCase):
G.add_node(3)
G.add_edge(1, 2)
distro = agents.calculate_distribution(agent_type=agents.NetworkAgent)
- env = Environment(name='Test', topology=G, network_agents=distro)
+ distro[0]['topology'] = 'default'
+ aconfig = config.AgentConfig(distribution=distro, topology='default')
+ env = Environment(name='Test', topologies={'default': G}, agents={'network': aconfig})
lst = list(env.network_agents)
- a2 = env.get_agent(2)
- a3 = env.get_agent(3)
+ a2 = env.find_one(node_id=2)
+ a3 = env.find_one(node_id=3)
assert len(a2.subgraph(limit_neighbors=True)) == 2
assert len(a3.subgraph(limit_neighbors=True)) == 1
assert len(a3.subgraph(limit_neighbors=True, center=False)) == 0
diff --git a/tests/test_stats.py b/tests/test_stats.py
deleted file mode 100644
index 406e1fd..0000000
--- a/tests/test_stats.py
+++ /dev/null
@@ -1,34 +0,0 @@
-from unittest import TestCase
-
-from soil import simulation, stats
-from soil.utils import unflatten_dict
-
-class Stats(TestCase):
-
- def test_distribution(self):
- '''The distribution exporter should write the number of agents in each state'''
- config = {
- 'name': 'exporter_sim',
- 'network_params': {
- 'generator': 'complete_graph',
- 'n': 4
- },
- 'agent_type': 'CounterModel',
- 'max_time': 2,
- 'num_trials': 5,
- 'environment_params': {}
- }
- s = simulation.from_config(config)
- for env in s.run_simulation(stats=[stats.distribution]):
- pass
- # stats_res = unflatten_dict(dict(env._history['stats', -1, None]))
- allstats = s.get_stats()
- for stat in allstats:
- assert 'count' in stat
- assert 'mean' in stat
- if 'trial_id' in stat:
- assert stat['mean']['neighbors'] == 3
- assert stat['count']['total']['4'] == 4
- else:
- assert stat['count']['count']['neighbors']['3'] == 20
- assert stat['mean']['min']['neighbors'] == stat['mean']['max']['neighbors']
From f811ee18c5e3b2d7e2c1c434516c2ce9f116c62f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Thu, 6 Oct 2022 15:49:10 +0200
Subject: [PATCH 07/39] WIP
---
CHANGELOG.md | 5 +-
README.md | 55 ++--
docs/configuration.rst | 28 +-
docs/example.yml | 6 +-
docs/quickstart.yml | 4 +-
docs/soil_tutorial.rst | 10 +-
examples/NewsSpread.ipynb | 24 +-
examples/Untitled.ipynb | 200 ++++++------
examples/complete.yml | 1 +
.../custom_generator/custom_generator.yml | 2 +-
examples/custom_generator/mymodule.py | 7 +-
examples/custom_timeouts/custom_timeouts.py | 4 +-
examples/mesa/mesa.yml | 4 +-
examples/mesa/server.py | 2 +-
examples/mesa/social_wealth.py | 2 +-
examples/newsspread/NewsSpread.ipynb | 24 +-
examples/newsspread/NewsSpread.yml | 24 +-
examples/programmatic/programmatic.py | 2 +-
examples/pubcrawl/pubcrawl.py | 5 +-
examples/pubcrawl/pubcrawl.yml | 6 +-
examples/rabbits/rabbit_agents.py | 12 +-
examples/rabbits/rabbits.yml | 8 +-
examples/random_delays/random_delays.py | 9 +-
examples/template.yml | 4 +-
examples/terrorism/TerroristNetworkModel.py | 27 +-
examples/terrorism/TerroristNetworkModel.yml | 8 +-
examples/torvalds.yml | 2 +-
examples/tutorial/soil_tutorial.html | 10 +-
examples/tutorial/soil_tutorial.ipynb | 10 +-
soil/agents/BassModel.py | 5 +-
soil/agents/BigMarketModel.py | 11 +-
soil/agents/IndependentCascadeModel.py | 5 +-
soil/agents/ModelM2.py | 66 ++--
soil/agents/SISaModel.py | 35 +--
soil/agents/SentimentCorrelationModel.py | 5 +-
soil/agents/__init__.py | 30 +-
soil/config.py | 47 ++-
soil/datacollection.py | 20 +-
soil/environment.py | 289 +++++++++---------
soil/exporters.py | 4 +-
soil/network.py | 23 ++
soil/serialization.py | 2 -
soil/simulation.py | 163 +++++-----
soil/time.py | 11 +-
soil/utils.py | 15 +
soil/web/config.yml | 4 +-
tests/old_complete.yml | 8 +-
tests/test_analysis.py | 2 +-
tests/test_config.py | 64 +++-
tests/test_exporters.py | 4 +-
tests/test_history.py | 2 +-
tests/test_main.py | 225 +++++---------
tests/test_network.py | 85 ++++++
53 files changed, 856 insertions(+), 774 deletions(-)
create mode 100644 tests/test_network.py
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 6b7dc3e..92c457e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,13 +3,14 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-## [UNRELEASED]
+## [0.3 UNRELEASED]
### Changed
-* Configuration schema is very different now. Check `soil.config` for more information. We are using Pydantic for (de)serialization.
+* Configuration schema is very different now. Check `soil.config` for more information. We are also using Pydantic for (de)serialization.
* There may be more than one topology/network in the simulation
* Agents are split into groups now. Each group may be assigned a given set of agents or an agent distribution, and a network topology to be assigned to.
### Removed
* Any `tsih` and `History` integration in the main classes. To record the state of environments/agents, just use a datacollector. In some cases this may be slower or consume more memory than the previous system. However, few cases actually used the full potential of the history, and it came at the cost of unnecessary complexity and worse performance for the majority of cases.
+
## [0.20.7]
### Changed
* Creating a `time.When` from another `time.When` does not nest them anymore (it returns the argument)
diff --git a/README.md b/README.md
index 7ea6f1d..8bcca61 100644
--- a/README.md
+++ b/README.md
@@ -5,6 +5,42 @@ Learn how to run your own simulations with our [documentation](http://soilsim.re
Follow our [tutorial](examples/tutorial/soil_tutorial.ipynb) to develop your own agent models.
+
+# Changes in version 0.3
+
+Version 0.3 came packed with many changes to provide much better integration with MESA.
+For a long time, we tried to keep soil backwards-compatible, but it turned out to be a big endeavour and the resulting code was less readable.
+This translates to harder maintenance and a worse experience for newcomers.
+In the end, we decided to make some breaking changes.
+
+If you have an older Soil simulation, you have two options:
+
+* Update the necessary configuration files and code. You may use the examples in the `examples` folder for reference, as well as the documentation.
+* Keep using a previous `soil` version.
+
+## Mesa compatibility
+
+Soil is in the process of becoming fully compatible with MESA.
+The idea is to provide a set of modular classes and functions that extend the functionality of mesa, whilst staying compatible.
+In the end, it should be possible to add regular mesa agents to a soil simulation, or use a soil agent within a mesa simulation/model.
+
+This is a non-exhaustive list of tasks to achieve compatibility:
+
+- [ ] Integrate `soil.Simulation` with mesa's runners:
+ - [ ] `soil.Simulation` could mimic/become a `mesa.batchrunner`
+- [ ] Integrate `soil.Environment` with `mesa.Model`:
+ - [x] `Soil.Environment` inherits from `mesa.Model`
+ - [x] `Soil.Environment` includes a Mesa-like Scheduler (see the `soil.time` module.
+ - [ ] Allow for `mesa.Model` to be used in a simulation.
+- [ ] Integrate `soil.Agent` with `mesa.Agent`:
+ - [x] Rename agent.id to unique_id?
+ - [x] mesa agents can be used in soil simulations (see `examples/mesa`)
+- [ ] Provide examples
+ - [ ] Using mesa modules in a soil simulation
+ - [ ] Using soil modules in a mesa simulation
+- [ ] Document the new APIs and usage
+
+
## Citation
@@ -31,25 +67,6 @@ If you use Soil in your research, don't forget to cite this paper:
```
-## Mesa compatibility
-
-Soil is in the process of becoming fully compatible with MESA.
-As of this writing,
-
-This is a non-exhaustive list of tasks to achieve compatibility:
-
-* Environments.agents and mesa.Agent.agents are not the same. env is a property, and it only takes into account network and environment agents. Might rename environment_agents to other_agents or sth like that
-
-- [ ] Integrate `soil.Simulation` with mesa's runners:
- - [ ] `soil.Simulation` could mimic/become a `mesa.batchrunner`
-- [ ] Integrate `soil.Environment` with `mesa.Model`:
- - [x] `Soil.Environment` inherits from `mesa.Model`
- - [x] `Soil.Environment` includes a Mesa-like Scheduler (see the `soil.time` module.
-- [ ] Integrate `soil.Agent` with `mesa.Agent`:
- - [x] Rename agent.id to unique_id?
- - [x] mesa agents can be used in soil simulations (see `examples/mesa`)
-- [ ] Document the new APIs and usage
-
@Copyright GSI - Universidad Politécnica de Madrid 2017-2021
[](https://www.gsi.upm.es)
diff --git a/docs/configuration.rst b/docs/configuration.rst
index 3d5a88d..223fbbc 100644
--- a/docs/configuration.rst
+++ b/docs/configuration.rst
@@ -13,7 +13,7 @@ Here's an example (``example.yml``).
This example configuration will run three trials (``num_trials``) of a simulation containing a randomly generated network (``network_params``).
-The 100 nodes in the network will be SISaModel agents (``network_agents.agent_type``), which is an agent behavior that is included in Soil.
+The 100 nodes in the network will be SISaModel agents (``network_agents.agent_class``), which is an agent behavior that is included in Soil.
10% of the agents (``weight=1``) will start in the content state, 10% in the discontent state, and the remaining 80% (``weight=8``) in the neutral state.
All agents will have access to the environment (``environment_params``), which only contains one variable, ``prob_infected``.
The state of the agents will be updated every 2 seconds (``interval``).
@@ -116,7 +116,7 @@ Agents
======
Agents are a way of modelling behavior.
-Agents can be characterized with two variables: agent type (``agent_type``) and state.
+Agents can be characterized with two variables: agent type (``agent_class``) and state.
The agent type is a ``soil.Agent`` class, which contains the code that encapsulates the behavior of the agent.
The state is a set of variables, which may change during the simulation, and that the code may use to control the behavior.
All agents provide a ``step`` method either explicitly or implicitly (by inheriting it from a superclass), which controls how the agent will behave in each step of the simulation.
@@ -142,7 +142,7 @@ Hence, every node in the network will be associated to an agent of that type.
.. code:: yaml
- agent_type: SISaModel
+ agent_class: SISaModel
It is also possible to add more than one type of agent to the simulation.
@@ -152,9 +152,9 @@ For instance, with following configuration, it is five times more likely for a n
.. code:: yaml
network_agents:
- - agent_type: SISaModel
+ - agent_class: SISaModel
weight: 1
- - agent_type: CounterModel
+ - agent_class: CounterModel
weight: 5
The third option is to specify the type of agent on the node itself, e.g.:
@@ -165,10 +165,10 @@ The third option is to specify the type of agent on the node itself, e.g.:
topology:
nodes:
- id: first
- agent_type: BaseAgent
+ agent_class: BaseAgent
states:
first:
- agent_type: SISaModel
+ agent_class: SISaModel
This would also work with a randomly generated network:
@@ -179,9 +179,9 @@ This would also work with a randomly generated network:
network:
generator: complete
n: 5
- agent_type: BaseAgent
+ agent_class: BaseAgent
states:
- - agent_type: SISaModel
+ - agent_class: SISaModel
@@ -192,11 +192,11 @@ e.g., to populate the network with SISaModel, roughly 10% of them with a discont
.. code:: yaml
network_agents:
- - agent_type: SISaModel
+ - agent_class: SISaModel
weight: 9
state:
id: neutral
- - agent_type: SISaModel
+ - agent_class: SISaModel
weight: 1
state:
id: discontent
@@ -206,7 +206,7 @@ For instance, to add a state for the two nodes in this configuration:
.. code:: yaml
- agent_type: SISaModel
+ agent_class: SISaModel
network:
generator: complete_graph
n: 2
@@ -231,10 +231,10 @@ These agents are programmed in much the same way as network agents, the only dif
.. code::
environment_agents:
- - agent_type: MyAgent
+ - agent_class: MyAgent
state:
mood: happy
- - agent_type: DummyAgent
+ - agent_class: DummyAgent
You may use environment agents to model events that a normal agent cannot control, such as natural disasters or chance.
diff --git a/docs/example.yml b/docs/example.yml
index 4ef6ef2..1554512 100644
--- a/docs/example.yml
+++ b/docs/example.yml
@@ -8,15 +8,15 @@ network_params:
n: 100
m: 2
network_agents:
- - agent_type: SISaModel
+ - agent_class: SISaModel
weight: 1
state:
id: content
- - agent_type: SISaModel
+ - agent_class: SISaModel
weight: 1
state:
id: discontent
- - agent_type: SISaModel
+ - agent_class: SISaModel
weight: 8
state:
id: neutral
diff --git a/docs/quickstart.yml b/docs/quickstart.yml
index 76ed3e2..3b1f36d 100644
--- a/docs/quickstart.yml
+++ b/docs/quickstart.yml
@@ -3,11 +3,11 @@ name: quickstart
num_trials: 1
max_time: 1000
network_agents:
- - agent_type: SISaModel
+ - agent_class: SISaModel
state:
id: neutral
weight: 1
- - agent_type: SISaModel
+ - agent_class: SISaModel
state:
id: content
weight: 2
diff --git a/docs/soil_tutorial.rst b/docs/soil_tutorial.rst
index 647ae0c..f7eefe9 100644
--- a/docs/soil_tutorial.rst
+++ b/docs/soil_tutorial.rst
@@ -211,11 +211,11 @@ nodes in that network. Notice how node 0 is the only one with a TV.
sim = soil.Simulation(topology=G,
num_trials=1,
max_time=MAX_TIME,
- environment_agents=[{'agent_type': NewsEnvironmentAgent,
+ environment_agents=[{'agent_class': NewsEnvironmentAgent,
'state': {
'event_time': EVENT_TIME
}}],
- network_agents=[{'agent_type': NewsSpread,
+ network_agents=[{'agent_class': NewsSpread,
'weight': 1}],
states={0: {'has_tv': True}},
default_state={'has_tv': False},
@@ -285,14 +285,14 @@ For this demo, we will use a python dictionary:
},
'network_agents': [
{
- 'agent_type': NewsSpread,
+ 'agent_class': NewsSpread,
'weight': 1,
'state': {
'has_tv': False
}
},
{
- 'agent_type': NewsSpread,
+ 'agent_class': NewsSpread,
'weight': 2,
'state': {
'has_tv': True
@@ -300,7 +300,7 @@ For this demo, we will use a python dictionary:
}
],
'environment_agents':[
- {'agent_type': NewsEnvironmentAgent,
+ {'agent_class': NewsEnvironmentAgent,
'state': {
'event_time': 10
}
diff --git a/examples/NewsSpread.ipynb b/examples/NewsSpread.ipynb
index 3f73ff6..87b53f2 100644
--- a/examples/NewsSpread.ipynb
+++ b/examples/NewsSpread.ipynb
@@ -98,11 +98,11 @@
"max_time: 30\r\n",
"name: Sim_all_dumb\r\n",
"network_agents:\r\n",
- "- agent_type: DumbViewer\r\n",
+ "- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: false\r\n",
" weight: 1\r\n",
- "- agent_type: DumbViewer\r\n",
+ "- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
@@ -122,19 +122,19 @@
"max_time: 30\r\n",
"name: Sim_half_herd\r\n",
"network_agents:\r\n",
- "- agent_type: DumbViewer\r\n",
+ "- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: false\r\n",
" weight: 1\r\n",
- "- agent_type: DumbViewer\r\n",
+ "- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
- "- agent_type: HerdViewer\r\n",
+ "- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: false\r\n",
" weight: 1\r\n",
- "- agent_type: HerdViewer\r\n",
+ "- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
@@ -154,12 +154,12 @@
"max_time: 30\r\n",
"name: Sim_all_herd\r\n",
"network_agents:\r\n",
- "- agent_type: HerdViewer\r\n",
+ "- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
" weight: 1\r\n",
- "- agent_type: HerdViewer\r\n",
+ "- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
@@ -181,12 +181,12 @@
"max_time: 30\r\n",
"name: Sim_wise_herd\r\n",
"network_agents:\r\n",
- "- agent_type: HerdViewer\r\n",
+ "- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
" weight: 1\r\n",
- "- agent_type: WiseViewer\r\n",
+ "- agent_class: WiseViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
@@ -207,12 +207,12 @@
"max_time: 30\r\n",
"name: Sim_all_wise\r\n",
"network_agents:\r\n",
- "- agent_type: WiseViewer\r\n",
+ "- agent_class: WiseViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
" weight: 1\r\n",
- "- agent_type: WiseViewer\r\n",
+ "- agent_class: WiseViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
diff --git a/examples/Untitled.ipynb b/examples/Untitled.ipynb
index eb0387f..29e00b1 100644
--- a/examples/Untitled.ipynb
+++ b/examples/Untitled.ipynb
@@ -141,10 +141,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -1758,10 +1758,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -3363,10 +3363,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -4977,10 +4977,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -6591,10 +6591,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -8211,10 +8211,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -9828,10 +9828,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -11448,10 +11448,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -13062,10 +13062,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -14679,10 +14679,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -16296,10 +16296,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -17916,10 +17916,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -19521,10 +19521,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -21144,10 +21144,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -22767,10 +22767,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -24375,10 +24375,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -25992,10 +25992,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -27603,10 +27603,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -29220,10 +29220,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -30819,10 +30819,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -32439,10 +32439,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -34056,10 +34056,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -35676,10 +35676,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -37293,10 +37293,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -38913,10 +38913,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -40518,10 +40518,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -42129,10 +42129,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -43746,10 +43746,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -45357,10 +45357,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -46974,10 +46974,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -48588,10 +48588,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -50202,10 +50202,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -51819,10 +51819,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -53436,10 +53436,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -55041,10 +55041,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -56655,10 +56655,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -58257,10 +58257,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -59877,10 +59877,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -61494,10 +61494,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -63108,10 +63108,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -64713,10 +64713,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -66330,10 +66330,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -67947,10 +67947,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -69561,10 +69561,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -71178,10 +71178,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -72801,10 +72801,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -74418,10 +74418,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -76035,10 +76035,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -77643,10 +77643,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
@@ -79260,10 +79260,10 @@
" 'load_module': 'newsspread',\n",
" 'max_time': 30,\n",
" 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_type': 'DumbViewer',\n",
+ " 'network_agents': [{'agent_class': 'DumbViewer',\n",
" 'state': {'has_tv': False},\n",
" 'weight': 1},\n",
- " {'agent_type': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
+ " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
" 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
" 'num_trials': 50,\n",
" 'seed': 'None',\n",
diff --git a/examples/complete.yml b/examples/complete.yml
index adf1e7e..d33cbaf 100644
--- a/examples/complete.yml
+++ b/examples/complete.yml
@@ -30,6 +30,7 @@ agents:
times: 1
environment:
# In this group we are not specifying any topology
+ topology: False
fixed:
- name: 'Environment Agent 1'
agent_class: CounterModel
diff --git a/examples/custom_generator/custom_generator.yml b/examples/custom_generator/custom_generator.yml
index 8c128f3..12c130d 100644
--- a/examples/custom_generator/custom_generator.yml
+++ b/examples/custom_generator/custom_generator.yml
@@ -10,7 +10,7 @@ network_params:
n: 10
n_edges: 5
network_agents:
- - agent_type: CounterModel
+ - agent_class: CounterModel
weight: 1
state:
state_id: 0
diff --git a/examples/custom_generator/mymodule.py b/examples/custom_generator/mymodule.py
index 4f80510..ef3bacc 100644
--- a/examples/custom_generator/mymodule.py
+++ b/examples/custom_generator/mymodule.py
@@ -1,6 +1,5 @@
from networkx import Graph
import networkx as nx
-from random import choice
def mygenerator(n=5, n_edges=5):
'''
@@ -14,9 +13,9 @@ def mygenerator(n=5, n_edges=5):
for i in range(n_edges):
nodes = list(G.nodes)
- n_in = choice(nodes)
+ n_in = self.random.choice(nodes)
nodes.remove(n_in) # Avoid loops
- n_out = choice(nodes)
+ n_out = self.random.choice(nodes)
G.add_edge(n_in, n_out)
return G
@@ -24,4 +23,4 @@ def mygenerator(n=5, n_edges=5):
-
\ No newline at end of file
+
diff --git a/examples/custom_timeouts/custom_timeouts.py b/examples/custom_timeouts/custom_timeouts.py
index 75cfc91..16b8d66 100644
--- a/examples/custom_timeouts/custom_timeouts.py
+++ b/examples/custom_timeouts/custom_timeouts.py
@@ -27,8 +27,8 @@ if __name__ == '__main__':
import logging
logging.basicConfig(level=logging.INFO)
from soil import Simulation
- s = Simulation(network_agents=[{'ids': [0], 'agent_type': Fibonacci},
- {'ids': [1], 'agent_type': Odds}],
+ s = Simulation(network_agents=[{'ids': [0], 'agent_class': Fibonacci},
+ {'ids': [1], 'agent_class': Odds}],
network_params={"generator": "complete_graph", "n": 2},
max_time=100,
)
diff --git a/examples/mesa/mesa.yml b/examples/mesa/mesa.yml
index 19148a2..a1572f2 100644
--- a/examples/mesa/mesa.yml
+++ b/examples/mesa/mesa.yml
@@ -10,11 +10,11 @@ network_params:
generator: social_wealth.graph_generator
n: 5
network_agents:
- - agent_type: social_wealth.SocialMoneyAgent
+ - agent_class: social_wealth.SocialMoneyAgent
weight: 1
environment_class: social_wealth.MoneyEnv
environment_params:
- mesa_agent_type: social_wealth.MoneyAgent
+ mesa_agent_class: social_wealth.MoneyAgent
N: 10
width: 50
height: 50
diff --git a/examples/mesa/server.py b/examples/mesa/server.py
index e6afecd..fc9b0b1 100644
--- a/examples/mesa/server.py
+++ b/examples/mesa/server.py
@@ -70,7 +70,7 @@ model_params = {
1,
description="Choose how many agents to include in the model",
),
- "network_agents": [{"agent_type": SocialMoneyAgent}],
+ "network_agents": [{"agent_class": SocialMoneyAgent}],
"height": UserSettableParameter(
"slider",
"height",
diff --git a/examples/mesa/social_wealth.py b/examples/mesa/social_wealth.py
index 5f7590b..b20bc9a 100644
--- a/examples/mesa/social_wealth.py
+++ b/examples/mesa/social_wealth.py
@@ -99,7 +99,7 @@ if __name__ == '__main__':
G = graph_generator()
fixed_params = {"topology": G,
"width": 10,
- "network_agents": [{"agent_type": SocialMoneyAgent,
+ "network_agents": [{"agent_class": SocialMoneyAgent,
'weight': 1}],
"height": 10}
diff --git a/examples/newsspread/NewsSpread.ipynb b/examples/newsspread/NewsSpread.ipynb
index 198588a..0c44b6e 100644
--- a/examples/newsspread/NewsSpread.ipynb
+++ b/examples/newsspread/NewsSpread.ipynb
@@ -89,11 +89,11 @@
"max_time: 30\r\n",
"name: Sim_all_dumb\r\n",
"network_agents:\r\n",
- "- agent_type: DumbViewer\r\n",
+ "- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: false\r\n",
" weight: 1\r\n",
- "- agent_type: DumbViewer\r\n",
+ "- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
@@ -113,19 +113,19 @@
"max_time: 30\r\n",
"name: Sim_half_herd\r\n",
"network_agents:\r\n",
- "- agent_type: DumbViewer\r\n",
+ "- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: false\r\n",
" weight: 1\r\n",
- "- agent_type: DumbViewer\r\n",
+ "- agent_class: DumbViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
- "- agent_type: HerdViewer\r\n",
+ "- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: false\r\n",
" weight: 1\r\n",
- "- agent_type: HerdViewer\r\n",
+ "- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
@@ -145,12 +145,12 @@
"max_time: 30\r\n",
"name: Sim_all_herd\r\n",
"network_agents:\r\n",
- "- agent_type: HerdViewer\r\n",
+ "- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
" weight: 1\r\n",
- "- agent_type: HerdViewer\r\n",
+ "- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
@@ -172,12 +172,12 @@
"max_time: 30\r\n",
"name: Sim_wise_herd\r\n",
"network_agents:\r\n",
- "- agent_type: HerdViewer\r\n",
+ "- agent_class: HerdViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
" weight: 1\r\n",
- "- agent_type: WiseViewer\r\n",
+ "- agent_class: WiseViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
@@ -198,12 +198,12 @@
"max_time: 30\r\n",
"name: Sim_all_wise\r\n",
"network_agents:\r\n",
- "- agent_type: WiseViewer\r\n",
+ "- agent_class: WiseViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" id: neutral\r\n",
" weight: 1\r\n",
- "- agent_type: WiseViewer\r\n",
+ "- agent_class: WiseViewer\r\n",
" state:\r\n",
" has_tv: true\r\n",
" weight: 1\r\n",
diff --git a/examples/newsspread/NewsSpread.yml b/examples/newsspread/NewsSpread.yml
index 27f8411..10ae525 100644
--- a/examples/newsspread/NewsSpread.yml
+++ b/examples/newsspread/NewsSpread.yml
@@ -8,11 +8,11 @@ interval: 1
max_time: 300
name: Sim_all_dumb
network_agents:
-- agent_type: newsspread.DumbViewer
+- agent_class: newsspread.DumbViewer
state:
has_tv: false
weight: 1
-- agent_type: newsspread.DumbViewer
+- agent_class: newsspread.DumbViewer
state:
has_tv: true
weight: 1
@@ -31,19 +31,19 @@ interval: 1
max_time: 300
name: Sim_half_herd
network_agents:
-- agent_type: newsspread.DumbViewer
+- agent_class: newsspread.DumbViewer
state:
has_tv: false
weight: 1
-- agent_type: newsspread.DumbViewer
+- agent_class: newsspread.DumbViewer
state:
has_tv: true
weight: 1
-- agent_type: newsspread.HerdViewer
+- agent_class: newsspread.HerdViewer
state:
has_tv: false
weight: 1
-- agent_type: newsspread.HerdViewer
+- agent_class: newsspread.HerdViewer
state:
has_tv: true
weight: 1
@@ -62,12 +62,12 @@ interval: 1
max_time: 300
name: Sim_all_herd
network_agents:
-- agent_type: newsspread.HerdViewer
+- agent_class: newsspread.HerdViewer
state:
has_tv: true
state_id: neutral
weight: 1
-- agent_type: newsspread.HerdViewer
+- agent_class: newsspread.HerdViewer
state:
has_tv: true
state_id: neutral
@@ -88,12 +88,12 @@ interval: 1
max_time: 300
name: Sim_wise_herd
network_agents:
-- agent_type: newsspread.HerdViewer
+- agent_class: newsspread.HerdViewer
state:
has_tv: true
state_id: neutral
weight: 1
-- agent_type: newsspread.WiseViewer
+- agent_class: newsspread.WiseViewer
state:
has_tv: true
weight: 1
@@ -113,12 +113,12 @@ interval: 1
max_time: 300
name: Sim_all_wise
network_agents:
-- agent_type: newsspread.WiseViewer
+- agent_class: newsspread.WiseViewer
state:
has_tv: true
state_id: neutral
weight: 1
-- agent_type: newsspread.WiseViewer
+- agent_class: newsspread.WiseViewer
state:
has_tv: true
weight: 1
diff --git a/examples/programmatic/programmatic.py b/examples/programmatic/programmatic.py
index 7c8d54a..3b9f86f 100644
--- a/examples/programmatic/programmatic.py
+++ b/examples/programmatic/programmatic.py
@@ -27,7 +27,7 @@ s = Simulation(name='Programmatic',
network_params={'generator': mygenerator},
num_trials=1,
max_time=100,
- agent_type=MyAgent,
+ agent_class=MyAgent,
dry_run=True)
diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py
index e6c92bd..7fc5b5f 100644
--- a/examples/pubcrawl/pubcrawl.py
+++ b/examples/pubcrawl/pubcrawl.py
@@ -1,6 +1,5 @@
from soil.agents import FSM, NetworkAgent, state, default_state
from soil import Environment
-from random import random, shuffle
from itertools import islice
import logging
@@ -128,7 +127,7 @@ class Patron(FSM, NetworkAgent):
Try to become friends with another agent. The chances of
success depend on both agents' openness.
'''
- if force or self['openness'] > random():
+ if force or self['openness'] > self.random.random():
self.env.add_edge(self, other_agent)
self.info('Made some friend {}'.format(other_agent))
return True
@@ -138,7 +137,7 @@ class Patron(FSM, NetworkAgent):
''' Look for random agents around me and try to befriend them'''
befriended = False
k = int(10*self['openness'])
- shuffle(others)
+ self.random.shuffle(others)
for friend in islice(others, k): # random.choice >= 3.7
if friend == self:
continue
diff --git a/examples/pubcrawl/pubcrawl.yml b/examples/pubcrawl/pubcrawl.yml
index 7a464a6..1f83f95 100644
--- a/examples/pubcrawl/pubcrawl.yml
+++ b/examples/pubcrawl/pubcrawl.yml
@@ -8,18 +8,18 @@ network_params:
generator: empty_graph
n: 30
network_agents:
- - agent_type: pubcrawl.Patron
+ - agent_class: pubcrawl.Patron
description: Extroverted patron
state:
openness: 1.0
weight: 9
- - agent_type: pubcrawl.Patron
+ - agent_class: pubcrawl.Patron
description: Introverted patron
state:
openness: 0.1
weight: 1
environment_agents:
- - agent_type: pubcrawl.Police
+ - agent_class: pubcrawl.Police
environment_class: pubcrawl.CityPubs
environment_params:
altercations: 0
diff --git a/examples/rabbits/rabbit_agents.py b/examples/rabbits/rabbit_agents.py
index a70b21a..df371b2 100644
--- a/examples/rabbits/rabbit_agents.py
+++ b/examples/rabbits/rabbit_agents.py
@@ -1,6 +1,5 @@
from soil.agents import FSM, state, default_state, BaseAgent, NetworkAgent
from enum import Enum
-from random import random, choice
import logging
import math
@@ -57,10 +56,10 @@ class Male(RabbitModel):
# Males try to mate
for f in self.get_agents(state_id=Female.fertile.id,
- agent_type=Female,
+ agent_class=Female,
limit_neighbors=False,
limit=self.max_females):
- r = random()
+ r = self.random.random()
if r < self['mating_prob']:
self.impregnate(f)
break # Take a break
@@ -85,11 +84,11 @@ class Female(RabbitModel):
self['pregnancy'] += 1
self.debug('Pregnancy: {}'.format(self['pregnancy']))
if self['pregnancy'] >= self.gestation:
- number_of_babies = int(8+4*random())
+ number_of_babies = int(8+4*self.random.random())
self.info('Having {} babies'.format(number_of_babies))
for i in range(number_of_babies):
state = {}
- state['gender'] = choice(list(Genders)).value
+ state['gender'] = self.random.choice(list(Genders)).value
child = self.env.add_node(self.__class__, state)
self.env.add_edge(self.id, child.id)
self.env.add_edge(self['mate'], child.id)
@@ -124,8 +123,7 @@ class RandomAccident(BaseAgent):
for i in self.env.network_agents:
if i.state['id'] == i.dead.id:
continue
- r = random()
- if r < prob_death:
+ if self.prob(prob_death):
self.debug('I killed a rabbit: {}'.format(i.id))
rabbits_alive = self.env['rabbits_alive'] = rabbits_alive -1
self.log('Rabbits alive: {}'.format(self.env['rabbits_alive']))
diff --git a/examples/rabbits/rabbits.yml b/examples/rabbits/rabbits.yml
index a4ec8e8..1b1d148 100644
--- a/examples/rabbits/rabbits.yml
+++ b/examples/rabbits/rabbits.yml
@@ -3,9 +3,9 @@ name: rabbits_example
max_time: 100
interval: 1
seed: MySeed
-agent_type: rabbit_agents.RabbitModel
+agent_class: rabbit_agents.RabbitModel
environment_agents:
- - agent_type: rabbit_agents.RandomAccident
+ - agent_class: rabbit_agents.RandomAccident
environment_params:
prob_death: 0.001
default_state:
@@ -13,8 +13,8 @@ default_state:
topology:
nodes:
- id: 1
- agent_type: rabbit_agents.Male
+ agent_class: rabbit_agents.Male
- id: 0
- agent_type: rabbit_agents.Female
+ agent_class: rabbit_agents.Female
directed: true
links: []
diff --git a/examples/random_delays/random_delays.py b/examples/random_delays/random_delays.py
index c3a6961..52dd55e 100644
--- a/examples/random_delays/random_delays.py
+++ b/examples/random_delays/random_delays.py
@@ -4,7 +4,6 @@ Example of a fully programmatic simulation, without definition files.
'''
from soil import Simulation, agents
from soil.time import Delta
-from random import expovariate
import logging
@@ -20,7 +19,7 @@ class MyAgent(agents.FSM):
@agents.state
def ping(self):
self.info('Ping')
- return self.pong, Delta(expovariate(1/16))
+ return self.pong, Delta(self.random.expovariate(1/16))
@agents.state
def pong(self):
@@ -29,15 +28,15 @@ class MyAgent(agents.FSM):
self.info(str(self.pong_counts))
if self.pong_counts < 1:
return self.die()
- return None, Delta(expovariate(1/16))
+ return None, Delta(self.random.expovariate(1/16))
s = Simulation(name='Programmatic',
- network_agents=[{'agent_type': MyAgent, 'id': 0}],
+ network_agents=[{'agent_class': MyAgent, 'id': 0}],
topology={'nodes': [{'id': 0}], 'links': []},
num_trials=1,
max_time=100,
- agent_type=MyAgent,
+ agent_class=MyAgent,
dry_run=True)
diff --git a/examples/template.yml b/examples/template.yml
index f61757d..a307eff 100644
--- a/examples/template.yml
+++ b/examples/template.yml
@@ -13,11 +13,11 @@ template:
generator: complete_graph
n: 10
network_agents:
- - agent_type: CounterModel
+ - agent_class: CounterModel
weight: "{{ x1 }}"
state:
state_id: 0
- - agent_type: AggregatedCounter
+ - agent_class: AggregatedCounter
weight: "{{ 1 - x1 }}"
environment_params:
name: "{{ x3 }}"
diff --git a/examples/terrorism/TerroristNetworkModel.py b/examples/terrorism/TerroristNetworkModel.py
index 3cdc675..2fa6de4 100644
--- a/examples/terrorism/TerroristNetworkModel.py
+++ b/examples/terrorism/TerroristNetworkModel.py
@@ -1,4 +1,3 @@
-import random
import networkx as nx
from soil.agents import Geo, NetworkAgent, FSM, state, default_state
from soil import Environment
@@ -26,26 +25,26 @@ class TerroristSpreadModel(FSM, Geo):
self.prob_interaction = model.environment_params['prob_interaction']
if self['id'] == self.civilian.id: # Civilian
- self.mean_belief = random.uniform(0.00, 0.5)
+ self.mean_belief = self.random.uniform(0.00, 0.5)
elif self['id'] == self.terrorist.id: # Terrorist
- self.mean_belief = random.uniform(0.8, 1.00)
+ self.mean_belief = self.random.uniform(0.8, 1.00)
elif self['id'] == self.leader.id: # Leader
self.mean_belief = 1.00
else:
raise Exception('Invalid state id: {}'.format(self['id']))
if 'min_vulnerability' in model.environment_params:
- self.vulnerability = random.uniform( model.environment_params['min_vulnerability'], model.environment_params['max_vulnerability'] )
+ self.vulnerability = self.random.uniform( model.environment_params['min_vulnerability'], model.environment_params['max_vulnerability'] )
else :
- self.vulnerability = random.uniform( 0, model.environment_params['max_vulnerability'] )
+ self.vulnerability = self.random.uniform( 0, model.environment_params['max_vulnerability'] )
@state
def civilian(self):
- neighbours = list(self.get_neighboring_agents(agent_type=TerroristSpreadModel))
+ neighbours = list(self.get_neighboring_agents(agent_class=TerroristSpreadModel))
if len(neighbours) > 0:
# Only interact with some of the neighbors
- interactions = list(n for n in neighbours if random.random() <= self.prob_interaction)
+ interactions = list(n for n in neighbours if self.random.random() <= self.prob_interaction)
influence = sum( self.degree(i) for i in interactions )
mean_belief = sum( i.mean_belief * self.degree(i) / influence for i in interactions )
mean_belief = mean_belief * self.information_spread_intensity + self.mean_belief * ( 1 - self.information_spread_intensity )
@@ -64,7 +63,7 @@ class TerroristSpreadModel(FSM, Geo):
@state
def terrorist(self):
neighbours = self.get_agents(state_id=[self.terrorist.id, self.leader.id],
- agent_type=TerroristSpreadModel,
+ agent_class=TerroristSpreadModel,
limit_neighbors=True)
if len(neighbours) > 0:
influence = sum( self.degree(n) for n in neighbours )
@@ -103,7 +102,7 @@ class TrainingAreaModel(FSM, Geo):
@default_state
@state
def terrorist(self):
- for neighbour in self.get_neighboring_agents(agent_type=TerroristSpreadModel):
+ for neighbour in self.get_neighboring_agents(agent_class=TerroristSpreadModel):
if neighbour.vulnerability > self.min_vulnerability:
neighbour.vulnerability = neighbour.vulnerability ** ( 1 - self.training_influence )
@@ -129,7 +128,7 @@ class HavenModel(FSM, Geo):
self.max_vulnerability = model.environment_params['max_vulnerability']
def get_occupants(self, **kwargs):
- return self.get_neighboring_agents(agent_type=TerroristSpreadModel, **kwargs)
+ return self.get_neighboring_agents(agent_class=TerroristSpreadModel, **kwargs)
@state
def civilian(self):
@@ -182,15 +181,15 @@ class TerroristNetworkModel(TerroristSpreadModel):
def update_relationships(self):
if self.count_neighboring_agents(state_id=self.civilian.id) == 0:
- close_ups = set(self.geo_search(radius=self.vision_range, agent_type=TerroristNetworkModel))
- step_neighbours = set(self.ego_search(self.sphere_influence, agent_type=TerroristNetworkModel, center=False))
- neighbours = set(agent.id for agent in self.get_neighboring_agents(agent_type=TerroristNetworkModel))
+ close_ups = set(self.geo_search(radius=self.vision_range, agent_class=TerroristNetworkModel))
+ step_neighbours = set(self.ego_search(self.sphere_influence, agent_class=TerroristNetworkModel, center=False))
+ neighbours = set(agent.id for agent in self.get_neighboring_agents(agent_class=TerroristNetworkModel))
search = (close_ups | step_neighbours) - neighbours
for agent in self.get_agents(search):
social_distance = 1 / self.shortest_path_length(agent.id)
spatial_proximity = ( 1 - self.get_distance(agent.id) )
prob_new_interaction = self.weight_social_distance * social_distance + self.weight_link_distance * spatial_proximity
- if agent['id'] == agent.civilian.id and random.random() < prob_new_interaction:
+ if agent['id'] == agent.civilian.id and self.random.random() < prob_new_interaction:
self.add_edge(agent)
break
diff --git a/examples/terrorism/TerroristNetworkModel.yml b/examples/terrorism/TerroristNetworkModel.yml
index 45dd1aa..b5a3d09 100644
--- a/examples/terrorism/TerroristNetworkModel.yml
+++ b/examples/terrorism/TerroristNetworkModel.yml
@@ -8,19 +8,19 @@ network_params:
# theta: 20
n: 100
network_agents:
- - agent_type: TerroristNetworkModel.TerroristNetworkModel
+ - agent_class: TerroristNetworkModel.TerroristNetworkModel
weight: 0.8
state:
id: civilian # Civilians
- - agent_type: TerroristNetworkModel.TerroristNetworkModel
+ - agent_class: TerroristNetworkModel.TerroristNetworkModel
weight: 0.1
state:
id: leader # Leaders
- - agent_type: TerroristNetworkModel.TrainingAreaModel
+ - agent_class: TerroristNetworkModel.TrainingAreaModel
weight: 0.05
state:
id: terrorist # Terrorism
- - agent_type: TerroristNetworkModel.HavenModel
+ - agent_class: TerroristNetworkModel.HavenModel
weight: 0.05
state:
id: civilian # Civilian
diff --git a/examples/torvalds.yml b/examples/torvalds.yml
index e338163..421e2ac 100644
--- a/examples/torvalds.yml
+++ b/examples/torvalds.yml
@@ -2,7 +2,7 @@
name: torvalds_example
max_time: 10
interval: 2
-agent_type: CounterModel
+agent_class: CounterModel
default_state:
skill_level: 'beginner'
network_params:
diff --git a/examples/tutorial/soil_tutorial.html b/examples/tutorial/soil_tutorial.html
index f93ca03..3f98f61 100644
--- a/examples/tutorial/soil_tutorial.html
+++ b/examples/tutorial/soil_tutorial.html
@@ -12330,11 +12330,11 @@ Notice how node 0 is the only one with a TV.
sim = soil.Simulation(topology=G,
num_trials=1,
max_time=MAX_TIME,
- environment_agents=[{'agent_type': NewsEnvironmentAgent,
+ environment_agents=[{'agent_class': NewsEnvironmentAgent,
'state': {
'event_time': EVENT_TIME
}}],
- network_agents=[{'agent_type': NewsSpread,
+ network_agents=[{'agent_class': NewsSpread,
'weight': 1}],
states={0: {'has_tv': True}},
default_state={'has_tv': False},
@@ -12468,14 +12468,14 @@ For this demo, we will use a python dictionary:
},
'network_agents': [
{
- 'agent_type': NewsSpread,
+ 'agent_class': NewsSpread,
'weight': 1,
'state': {
'has_tv': False
}
},
{
- 'agent_type': NewsSpread,
+ 'agent_class': NewsSpread,
'weight': 2,
'state': {
'has_tv': True
@@ -12483,7 +12483,7 @@ For this demo, we will use a python dictionary:
}
],
'environment_agents':[
- {'agent_type': NewsEnvironmentAgent,
+ {'agent_class': NewsEnvironmentAgent,
'state': {
'event_time': 10
}
diff --git a/examples/tutorial/soil_tutorial.ipynb b/examples/tutorial/soil_tutorial.ipynb
index 3e0ff2d..7599ab2 100644
--- a/examples/tutorial/soil_tutorial.ipynb
+++ b/examples/tutorial/soil_tutorial.ipynb
@@ -459,11 +459,11 @@
"sim = soil.Simulation(topology=G,\n",
" num_trials=1,\n",
" max_time=MAX_TIME,\n",
- " environment_agents=[{'agent_type': NewsEnvironmentAgent,\n",
+ " environment_agents=[{'agent_class': NewsEnvironmentAgent,\n",
" 'state': {\n",
" 'event_time': EVENT_TIME\n",
" }}],\n",
- " network_agents=[{'agent_type': NewsSpread,\n",
+ " network_agents=[{'agent_class': NewsSpread,\n",
" 'weight': 1}],\n",
" states={0: {'has_tv': True}},\n",
" default_state={'has_tv': False},\n",
@@ -588,14 +588,14 @@
" },\n",
" 'network_agents': [\n",
" {\n",
- " 'agent_type': NewsSpread,\n",
+ " 'agent_class': NewsSpread,\n",
" 'weight': 1,\n",
" 'state': {\n",
" 'has_tv': False\n",
" }\n",
" },\n",
" {\n",
- " 'agent_type': NewsSpread,\n",
+ " 'agent_class': NewsSpread,\n",
" 'weight': 2,\n",
" 'state': {\n",
" 'has_tv': True\n",
@@ -603,7 +603,7 @@
" }\n",
" ],\n",
" 'environment_agents':[\n",
- " {'agent_type': NewsEnvironmentAgent,\n",
+ " {'agent_class': NewsEnvironmentAgent,\n",
" 'state': {\n",
" 'event_time': 10\n",
" }\n",
diff --git a/soil/agents/BassModel.py b/soil/agents/BassModel.py
index cba6790..e3f5015 100644
--- a/soil/agents/BassModel.py
+++ b/soil/agents/BassModel.py
@@ -1,4 +1,3 @@
-import random
from . import FSM, state, default_state
@@ -16,13 +15,13 @@ class BassModel(FSM):
@default_state
@state
def innovation(self):
- if random.random() < self.innovation_prob:
+ if self.prob(self.innovation_prob):
self.sentimentCorrelation = 1
return self.aware
else:
aware_neighbors = self.get_neighboring_agents(state_id=self.aware.id)
num_neighbors_aware = len(aware_neighbors)
- if random.random() < (self['imitation_prob']*num_neighbors_aware):
+ if self.prob((self['imitation_prob']*num_neighbors_aware)):
self.sentimentCorrelation = 1
return self.aware
diff --git a/soil/agents/BigMarketModel.py b/soil/agents/BigMarketModel.py
index fbc3ba5..7db663d 100644
--- a/soil/agents/BigMarketModel.py
+++ b/soil/agents/BigMarketModel.py
@@ -1,4 +1,3 @@
-import random
from . import FSM, state, default_state
@@ -39,10 +38,10 @@ class BigMarketModel(FSM):
@state
def enterprise(self):
- if random.random() < self.tweet_probability: # Tweets
+ if self.random.random() < self.tweet_probability: # Tweets
aware_neighbors = self.get_neighboring_agents(state_id=self.number_of_enterprises) # Nodes neighbour users
for x in aware_neighbors:
- if random.uniform(0,10) < 5:
+ if self.random.uniform(0,10) < 5:
x.sentiment_about[self.id] += 0.1 # Increments for enterprise
else:
x.sentiment_about[self.id] -= 0.1 # Decrements for enterprise
@@ -57,11 +56,11 @@ class BigMarketModel(FSM):
@state
def user(self):
- if random.random() < self.tweet_probability: # Tweets
- if random.random() < self.tweet_relevant_probability: # Tweets something relevant
+ if self.random.random() < self.tweet_probability: # Tweets
+ if self.random.random() < self.tweet_relevant_probability: # Tweets something relevant
# Tweet probability per enterprise
for i in range(len(self.enterprises)):
- random_num = random.random()
+ random_num = self.random.random()
if random_num < self.tweet_probability_about[i]:
# The condition is fulfilled, sentiments are evaluated towards that enterprise
if self.sentiment_about[i] < 0:
diff --git a/soil/agents/IndependentCascadeModel.py b/soil/agents/IndependentCascadeModel.py
index ab5a8a8..e927a6f 100644
--- a/soil/agents/IndependentCascadeModel.py
+++ b/soil/agents/IndependentCascadeModel.py
@@ -1,4 +1,3 @@
-import random
from . import BaseAgent
@@ -23,7 +22,7 @@ class IndependentCascadeModel(BaseAgent):
def behaviour(self):
aware_neighbors_1_time_step = []
# Outside effects
- if random.random() < self.innovation_prob:
+ if self.prob(self.innovation_prob):
if self.state['id'] == 0:
self.state['id'] = 1
self.state['sentimentCorrelation'] = 1
@@ -40,7 +39,7 @@ class IndependentCascadeModel(BaseAgent):
if x.state['time_awareness'] == (self.env.now-1):
aware_neighbors_1_time_step.append(x)
num_neighbors_aware = len(aware_neighbors_1_time_step)
- if random.random() < (self.imitation_prob*num_neighbors_aware):
+ if self.prob(self.imitation_prob*num_neighbors_aware):
self.state['id'] = 1
self.state['sentimentCorrelation'] = 1
else:
diff --git a/soil/agents/ModelM2.py b/soil/agents/ModelM2.py
index ec0f98d..dec6b97 100644
--- a/soil/agents/ModelM2.py
+++ b/soil/agents/ModelM2.py
@@ -1,4 +1,3 @@
-import random
import numpy as np
from . import BaseAgent
@@ -24,23 +23,26 @@ class SpreadModelM2(BaseAgent):
def __init__(self, model=None, unique_id=0, state=()):
super().__init__(model=environment, unique_id=unique_id, state=state)
- self.prob_neutral_making_denier = np.random.normal(environment.environment_params['prob_neutral_making_denier'],
- environment.environment_params['standard_variance'])
- self.prob_infect = np.random.normal(environment.environment_params['prob_infect'],
- environment.environment_params['standard_variance'])
+ # Use a single generator with the same seed as `self.random`
+ random = np.random.default_rng(seed=self._seed)
+ self.prob_neutral_making_denier = random.normal(environment.environment_params['prob_neutral_making_denier'],
+ environment.environment_params['standard_variance'])
- self.prob_cured_healing_infected = np.random.normal(environment.environment_params['prob_cured_healing_infected'],
- environment.environment_params['standard_variance'])
- self.prob_cured_vaccinate_neutral = np.random.normal(environment.environment_params['prob_cured_vaccinate_neutral'],
- environment.environment_params['standard_variance'])
+ self.prob_infect = random.normal(environment.environment_params['prob_infect'],
+ environment.environment_params['standard_variance'])
- self.prob_vaccinated_healing_infected = np.random.normal(environment.environment_params['prob_vaccinated_healing_infected'],
- environment.environment_params['standard_variance'])
- self.prob_vaccinated_vaccinate_neutral = np.random.normal(environment.environment_params['prob_vaccinated_vaccinate_neutral'],
- environment.environment_params['standard_variance'])
- self.prob_generate_anti_rumor = np.random.normal(environment.environment_params['prob_generate_anti_rumor'],
+ self.prob_cured_healing_infected = random.normal(environment.environment_params['prob_cured_healing_infected'],
environment.environment_params['standard_variance'])
+ self.prob_cured_vaccinate_neutral = random.normal(environment.environment_params['prob_cured_vaccinate_neutral'],
+ environment.environment_params['standard_variance'])
+
+ self.prob_vaccinated_healing_infected = random.normal(environment.environment_params['prob_vaccinated_healing_infected'],
+ environment.environment_params['standard_variance'])
+ self.prob_vaccinated_vaccinate_neutral = random.normal(environment.environment_params['prob_vaccinated_vaccinate_neutral'],
+ environment.environment_params['standard_variance'])
+ self.prob_generate_anti_rumor = random.normal(environment.environment_params['prob_generate_anti_rumor'],
+ environment.environment_params['standard_variance'])
def step(self):
@@ -58,7 +60,7 @@ class SpreadModelM2(BaseAgent):
# Infected
infected_neighbors = self.get_neighboring_agents(state_id=1)
if len(infected_neighbors) > 0:
- if random.random() < self.prob_neutral_making_denier:
+ if self.prob(self.prob_neutral_making_denier):
self.state['id'] = 3 # Vaccinated making denier
def infected_behaviour(self):
@@ -66,7 +68,7 @@ class SpreadModelM2(BaseAgent):
# Neutral
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
- if random.random() < self.prob_infect:
+ if self.prob(self.prob_infect):
neighbor.state['id'] = 1 # Infected
def cured_behaviour(self):
@@ -74,13 +76,13 @@ class SpreadModelM2(BaseAgent):
# Vaccinate
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
- if random.random() < self.prob_cured_vaccinate_neutral:
+ if self.prob(self.prob_cured_vaccinate_neutral):
neighbor.state['id'] = 3 # Vaccinated
# Cure
infected_neighbors = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors:
- if random.random() < self.prob_cured_healing_infected:
+ if self.prob(self.prob_cured_healing_infected):
neighbor.state['id'] = 2 # Cured
def vaccinated_behaviour(self):
@@ -88,19 +90,19 @@ class SpreadModelM2(BaseAgent):
# Cure
infected_neighbors = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors:
- if random.random() < self.prob_cured_healing_infected:
+ if self.prob(self.prob_cured_healing_infected):
neighbor.state['id'] = 2 # Cured
# Vaccinate
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
- if random.random() < self.prob_cured_vaccinate_neutral:
+ if self.prob(self.prob_cured_vaccinate_neutral):
neighbor.state['id'] = 3 # Vaccinated
# Generate anti-rumor
infected_neighbors_2 = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors_2:
- if random.random() < self.prob_generate_anti_rumor:
+ if self.prob(self.prob_generate_anti_rumor):
neighbor.state['id'] = 2 # Cured
@@ -165,7 +167,7 @@ class ControlModelM2(BaseAgent):
# Infected
infected_neighbors = self.get_neighboring_agents(state_id=1)
if len(infected_neighbors) > 0:
- if random.random() < self.prob_neutral_making_denier:
+ if self.random(self.prob_neutral_making_denier):
self.state['id'] = 3 # Vaccinated making denier
def infected_behaviour(self):
@@ -173,7 +175,7 @@ class ControlModelM2(BaseAgent):
# Neutral
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
- if random.random() < self.prob_infect:
+ if self.prob(self.prob_infect):
neighbor.state['id'] = 1 # Infected
self.state['visible'] = False
@@ -183,13 +185,13 @@ class ControlModelM2(BaseAgent):
# Vaccinate
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
- if random.random() < self.prob_cured_vaccinate_neutral:
+ if self.prob(self.prob_cured_vaccinate_neutral):
neighbor.state['id'] = 3 # Vaccinated
# Cure
infected_neighbors = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors:
- if random.random() < self.prob_cured_healing_infected:
+ if self.prob(self.prob_cured_healing_infected):
neighbor.state['id'] = 2 # Cured
def vaccinated_behaviour(self):
@@ -198,19 +200,19 @@ class ControlModelM2(BaseAgent):
# Cure
infected_neighbors = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors:
- if random.random() < self.prob_cured_healing_infected:
+ if self.prob(self.prob_cured_healing_infected):
neighbor.state['id'] = 2 # Cured
# Vaccinate
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
- if random.random() < self.prob_cured_vaccinate_neutral:
+ if self.prob(self.prob_cured_vaccinate_neutral):
neighbor.state['id'] = 3 # Vaccinated
# Generate anti-rumor
infected_neighbors_2 = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors_2:
- if random.random() < self.prob_generate_anti_rumor:
+ if self.prob(self.prob_generate_anti_rumor):
neighbor.state['id'] = 2 # Cured
def beacon_off_behaviour(self):
@@ -224,19 +226,19 @@ class ControlModelM2(BaseAgent):
# Cure (M2 feature added)
infected_neighbors = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors:
- if random.random() < self.prob_generate_anti_rumor:
+ if self.prob(self.prob_generate_anti_rumor):
neighbor.state['id'] = 2 # Cured
neutral_neighbors_infected = neighbor.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors_infected:
- if random.random() < self.prob_generate_anti_rumor:
+ if self.prob(self.prob_generate_anti_rumor):
neighbor.state['id'] = 3 # Vaccinated
infected_neighbors_infected = neighbor.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors_infected:
- if random.random() < self.prob_generate_anti_rumor:
+ if self.prob(self.prob_generate_anti_rumor):
neighbor.state['id'] = 2 # Cured
# Vaccinate
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
- if random.random() < self.prob_cured_vaccinate_neutral:
+ if self.prob(self.prob_cured_vaccinate_neutral):
neighbor.state['id'] = 3 # Vaccinated
diff --git a/soil/agents/SISaModel.py b/soil/agents/SISaModel.py
index 4b66087..fa0d224 100644
--- a/soil/agents/SISaModel.py
+++ b/soil/agents/SISaModel.py
@@ -1,4 +1,3 @@
-import random
import numpy as np
from . import FSM, state
@@ -32,62 +31,64 @@ class SISaModel(FSM):
def __init__(self, environment, unique_id=0, state=()):
super().__init__(model=environment, unique_id=unique_id, state=state)
- self.neutral_discontent_spon_prob = np.random.normal(self.env['neutral_discontent_spon_prob'],
+ random = np.random.default_rng(seed=self._seed)
+
+ self.neutral_discontent_spon_prob = random.normal(self.env['neutral_discontent_spon_prob'],
self.env['standard_variance'])
- self.neutral_discontent_infected_prob = np.random.normal(self.env['neutral_discontent_infected_prob'],
+ self.neutral_discontent_infected_prob = random.normal(self.env['neutral_discontent_infected_prob'],
self.env['standard_variance'])
- self.neutral_content_spon_prob = np.random.normal(self.env['neutral_content_spon_prob'],
+ self.neutral_content_spon_prob = random.normal(self.env['neutral_content_spon_prob'],
self.env['standard_variance'])
- self.neutral_content_infected_prob = np.random.normal(self.env['neutral_content_infected_prob'],
+ self.neutral_content_infected_prob = random.normal(self.env['neutral_content_infected_prob'],
self.env['standard_variance'])
- self.discontent_neutral = np.random.normal(self.env['discontent_neutral'],
+ self.discontent_neutral = random.normal(self.env['discontent_neutral'],
self.env['standard_variance'])
- self.discontent_content = np.random.normal(self.env['discontent_content'],
+ self.discontent_content = random.normal(self.env['discontent_content'],
self.env['variance_d_c'])
- self.content_discontent = np.random.normal(self.env['content_discontent'],
+ self.content_discontent = random.normal(self.env['content_discontent'],
self.env['variance_c_d'])
- self.content_neutral = np.random.normal(self.env['content_neutral'],
+ self.content_neutral = random.normal(self.env['content_neutral'],
self.env['standard_variance'])
@state
def neutral(self):
# Spontaneous effects
- if random.random() < self.neutral_discontent_spon_prob:
+ if self.prob(self.neutral_discontent_spon_prob):
return self.discontent
- if random.random() < self.neutral_content_spon_prob:
+ if self.prob(self.neutral_content_spon_prob):
return self.content
# Infected
discontent_neighbors = self.count_neighboring_agents(state_id=self.discontent)
- if random.random() < discontent_neighbors * self.neutral_discontent_infected_prob:
+ if self.prob(scontent_neighbors * self.neutral_discontent_infected_prob):
return self.discontent
content_neighbors = self.count_neighboring_agents(state_id=self.content.id)
- if random.random() < content_neighbors * self.neutral_content_infected_prob:
+ if self.prob(s * self.neutral_content_infected_prob):
return self.content
return self.neutral
@state
def discontent(self):
# Healing
- if random.random() < self.discontent_neutral:
+ if self.prob(self.discontent_neutral):
return self.neutral
# Superinfected
content_neighbors = self.count_neighboring_agents(state_id=self.content.id)
- if random.random() < content_neighbors * self.discontent_content:
+ if self.prob(s * self.discontent_content):
return self.content
return self.discontent
@state
def content(self):
# Healing
- if random.random() < self.content_neutral:
+ if self.prob(self.content_neutral):
return self.neutral
# Superinfected
discontent_neighbors = self.count_neighboring_agents(state_id=self.discontent.id)
- if random.random() < discontent_neighbors * self.content_discontent:
+ if self.prob(scontent_neighbors * self.content_discontent):
self.discontent
return self.content
diff --git a/soil/agents/SentimentCorrelationModel.py b/soil/agents/SentimentCorrelationModel.py
index 7c12d7b..96907aa 100644
--- a/soil/agents/SentimentCorrelationModel.py
+++ b/soil/agents/SentimentCorrelationModel.py
@@ -1,4 +1,3 @@
-import random
from . import BaseAgent
@@ -68,10 +67,10 @@ class SentimentCorrelationModel(BaseAgent):
disgust_prob = self.disgust_prob+(len(disgusted_neighbors_1_time_step)*self.disgust_prob)
outside_effects_prob = self.outside_effects_prob
- num = random.random()
+ num = self.random.random()
if num= 3.10
nodeId = int
@@ -125,10 +112,18 @@ class AgentConfig(SingleAgentConfig):
class Config(BaseModel, extra=Extra.forbid):
version: Optional[str] = '1'
- general: General = General.default()
- topologies: Optional[Dict[str, NetConfig]] = {}
- environment: EnvConfig = EnvConfig.default()
- agents: Optional[Dict[str, AgentConfig]] = {}
+
+ id: str = 'Unnamed Simulation'
+ group: str = None
+ dir_path: Optional[str] = None
+ num_trials: int = 1
+ max_time: float = 100
+ interval: float = 1
+ seed: str = ""
+
+ model_class: Union[Type, str]
+ model_parameters: Optiona[Dict[str, Any]] = {}
+
def convert_old(old, strict=True):
'''
@@ -137,10 +132,14 @@ def convert_old(old, strict=True):
This is still a work in progress and might not work in many cases.
'''
+ #TODO: implement actual conversion
+ print('The old configuration format is no longer supported. \
+ Update your config files or run Soil==0.20')
+ raise NotImplementedError()
+
new = {}
-
general = {}
for k in ['id',
'group',
@@ -173,8 +172,8 @@ def convert_old(old, strict=True):
'default': {},
}
- if 'agent_type' in old:
- agents['default']['agent_class'] = old['agent_type']
+ if 'agent_class' in old:
+ agents['default']['agent_class'] = old['agent_class']
if 'default_state' in old:
agents['default']['state'] = old['default_state']
@@ -182,8 +181,8 @@ def convert_old(old, strict=True):
def updated_agent(agent):
newagent = dict(agent)
- newagent['agent_class'] = newagent['agent_type']
- del newagent['agent_type']
+ newagent['agent_class'] = newagent['agent_class']
+ del newagent['agent_class']
return newagent
for agent in old.get('environment_agents', []):
@@ -207,9 +206,9 @@ def convert_old(old, strict=True):
else:
by_weight.append(agent)
- if 'agent_type' in old and (not fixed and not by_weight):
+ if 'agent_class' in old and (not fixed and not by_weight):
agents['network']['topology'] = 'default'
- by_weight = [{'agent_class': old['agent_type']}]
+ by_weight = [{'agent_class': old['agent_class']}]
# TODO: translate states properly
diff --git a/soil/datacollection.py b/soil/datacollection.py
index 979c7bd..a889a76 100644
--- a/soil/datacollection.py
+++ b/soil/datacollection.py
@@ -2,23 +2,5 @@ from mesa import DataCollector as MDC
class SoilDataCollector(MDC):
-
- def __init__(self, environment, *args, **kwargs):
+ def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
- # Populate model and env reporters so they have a key per
- # So they can be shown in the web interface
- self.environment = environment
- raise NotImplementedError()
-
- @property
- def model_vars(self):
- raise NotImplementedError()
-
- @model_vars.setter
- def model_vars(self, value):
- raise NotImplementedError()
-
- @property
- def agent_reporters(self):
- raise NotImplementedError()
-
diff --git a/soil/environment.py b/soil/environment.py
index 9e00f36..2f59553 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -5,7 +5,7 @@ import math
import random
import logging
-from typing import Dict
+from typing import Any, Dict, Optional, Union
from collections import namedtuple
from time import time as current_time
from copy import deepcopy
@@ -17,20 +17,24 @@ import networkx as nx
from mesa import Model
from mesa.datacollection import DataCollector
-from . import serialization, agents, analysis, utils, time, config, network
+from . import serialization, analysis, utils, time, network
+
+from .agents import AgentView, BaseAgent, NetworkAgent, from_config as agents_from_config
Record = namedtuple('Record', 'dict_id t_step key value')
-class Environment(Model):
+class BaseEnvironment(Model):
"""
- The environment is key in a simulation. It contains the network topology,
- a reference to network and environment agents, as well as the environment
- params, which are used as shared state between agents.
+ The environment is key in a simulation. It controls how agents interact,
+ and what information is available to them.
+
+ This is an opinionated version of `mesa.Model` class, which adds many
+ convenience methods and abstractions.
The environment parameters and the state of every agent can be accessed
- both by using the environment as a dictionary or with the environment's
+ both by using the environment as a dictionary and with the environment's
:meth:`soil.environment.Environment.get` method.
"""
@@ -40,67 +44,62 @@ class Environment(Model):
schedule=None,
dir_path=None,
interval=1,
- agents: Dict[str, config.AgentConfig] = {},
- topologies: Dict[str, config.NetConfig] = {},
+ agent_class=BaseAgent,
+ agents: [tuple[type, Dict[str, Any]]] = {},
agent_reporters: Optional[Any] = None,
model_reporters: Optional[Any] = None,
tables: Optional[Any] = None,
**env_params):
- super().__init__()
+ super().__init__(seed=seed)
self.current_id = -1
- self.seed = '{}_{}'.format(seed, env_id)
self.id = env_id
self.dir_path = dir_path or os.getcwd()
if schedule is None:
- schedule = time.TimedActivation()
+ schedule = time.TimedActivation(self)
self.schedule = schedule
- seed = seed or current_time()
+ self.agent_class = agent_class
- random.seed(seed)
-
-
- self.topologies = {}
- self._node_ids = {}
- for (name, cfg) in topologies.items():
- self.set_topology(cfg=cfg,
- graph=name)
- self.agents = agents or {}
+ self.init_agents(agents)
self.env_params = env_params or {}
self.interval = interval
- self['SEED'] = seed
self.logger = utils.logger.getChild(self.id)
- self.datacollector = DataCollector(model_reporters, agent_reporters, tables)
+
+ self.datacollector = DataCollector(
+ model_reporters=model_reporters,
+ agent_reporters=agent_reporters,
+ tables=tables,
+ )
+
+ def __read_agent_tuple(self, tup):
+ cls = self.agent_class
+ args = tup
+ if isinstance(tup, tuple):
+ cls = tup[0]
+ args = tup[1]
+ return serialization.deserialize(cls)(unique_id=self.next_id(),
+ model=self, **args)
+
+ def init_agents(self, agents: [tuple[type, Dict[str, Any]]] = {}):
+ agents = [self.__read_agent_tuple(tup) for tup in agents]
+ self._agents = {'default': {agent.id: agent for agent in agents}}
@property
- def topology(self):
- return self.topologies['default']
+ def agents(self):
+ return AgentView(self._agents)
- @property
- def network_agents(self):
- yield from self.agents(agent_class=agents.NetworkAgent)
-
- @staticmethod
- def from_config(conf: config.Config, trial_id, **kwargs) -> Environment:
- '''Create an environment for a trial of the simulation'''
- conf = conf
- if kwargs:
- conf = config.Config(**conf.dict(exclude_defaults=True), **kwargs)
- seed = '{}_{}'.format(conf.general.seed, trial_id)
- id = '{}_trial_{}'.format(conf.general.id, trial_id).replace('.', '-')
- opts = conf.environment.params.copy()
- dir_path = conf.general.dir_path
- opts.update(conf)
- opts.update(kwargs)
- env = serialization.deserialize(conf.environment.environment_class)(env_id=id, seed=seed, dir_path=dir_path, **opts)
- return env
+ def find_one(self, *args, **kwargs):
+ return AgentView(self._agents).one(*args, **kwargs)
+
+ def count_agents(self, *args, **kwargs):
+ return sum(1 for i in self.agents(*args, **kwargs))
@property
def now(self):
@@ -109,115 +108,42 @@ class Environment(Model):
raise Exception('The environment has not been scheduled, so it has no sense of time')
- def topology_for(self, agent_id):
- return self.topologies[self._node_ids[agent_id][0]]
+ # def init_agent(self, agent_id, agent_definitions, state=None):
+ # state = state or {}
- def node_id_for(self, agent_id):
- return self._node_ids[agent_id][1]
+ # agent_class = None
+ # if 'agent_class' in self.states.get(agent_id, {}):
+ # agent_class = self.states[agent_id]['agent_class']
+ # elif 'agent_class' in self.default_state:
+ # agent_class = self.default_state['agent_class']
- def set_topology(self, cfg=None, dir_path=None, graph='default'):
- topology = cfg
- if not isinstance(cfg, nx.Graph):
- topology = network.from_config(cfg, dir_path=dir_path or self.dir_path)
-
- self.topologies[graph] = topology
-
- @property
- def agents(self):
- return agents.AgentView(self._agents)
-
- def count_agents(self, *args, **kwargs):
- return sum(1 for i in self.find_all(*args, **kwargs))
-
- def find_all(self, *args, **kwargs):
- return agents.AgentView(self._agents).filter(*args, **kwargs)
-
- def find_one(self, *args, **kwargs):
- return agents.AgentView(self._agents).one(*args, **kwargs)
-
- @agents.setter
- def agents(self, agents_def: Dict[str, config.AgentConfig]):
- self._agents = agents.from_config(agents_def, env=self)
- for d in self._agents.values():
- for a in d.values():
- self.schedule.add(a)
-
- def init_agent(self, agent_id, agent_definitions, graph='default'):
- node = self.topologies[graph].nodes[agent_id]
- init = False
- state = dict(node)
-
- agent_class = None
- if 'agent_class' in self.states.get(agent_id, {}):
- agent_class = self.states[agent_id]['agent_class']
- elif 'agent_class' in node:
- agent_class = node['agent_class']
- elif 'agent_class' in self.default_state:
- agent_class = self.default_state['agent_class']
-
- if agent_class:
- agent_class = agents.deserialize_type(agent_class)
- elif agent_definitions:
- agent_class, state = agents._agent_from_definition(agent_definitions, unique_id=agent_id)
- else:
- serialization.logger.debug('Skipping node {}'.format(agent_id))
- return
- return self.set_agent(agent_id, agent_class, state)
-
- def agent_to_node(self, agent_id, graph_name='default', node_id=None, shuffle=False):
- #TODO: test
- if node_id is None:
- G = self.topologies[graph_name]
- candidates = list(G.nodes(data=True))
- if shuffle:
- random.shuffle(candidates)
- for next_id, data in candidates:
- if data.get('agent_id', None) is None:
- node_id = next_id
- data['agent_id'] = agent_id
- break
-
-
- self._node_ids[agent_id] = (graph_name, node_id)
- print(self._node_ids)
+ # if agent_class:
+ # agent_class = agents.deserialize_type(agent_class)
+ # elif agent_definitions:
+ # agent_class, state = agents._agent_from_definition(agent_definitions, unique_id=agent_id)
+ # else:
+ # serialization.logger.debug('Skipping agent {}'.format(agent_id))
+ # return
+ # return self.add_agent(agent_id, agent_class, state)
- def set_agent(self, agent_id, agent_class, state=None, graph='default'):
- node = self.topologies[graph].nodes[agent_id]
+ def add_agent(self, agent_id, agent_class, state=None, graph='default'):
defstate = deepcopy(self.default_state) or {}
defstate.update(self.states.get(agent_id, {}))
- defstate.update(node.get('state', {}))
if state:
defstate.update(state)
a = None
if agent_class:
state = defstate
a = agent_class(model=self,
- unique_id=agent_id
- )
+ unique_id=agent_id)
for (k, v) in state.items():
setattr(a, k, v)
- node['agent'] = a
self.schedule.add(a)
return a
- def add_node(self, agent_class, state=None, graph='default'):
- agent_id = int(len(self.topologies[graph].nodes()))
- self.topologies[graph].add_node(agent_id)
- a = self.set_agent(agent_id, agent_class, state, graph=graph)
- a['visible'] = True
- return a
-
- def add_edge(self, agent1, agent2, start=None, graph='default', **attrs):
- if hasattr(agent1, 'id'):
- agent1 = agent1.id
- if hasattr(agent2, 'id'):
- agent2 = agent2.id
- start = start or self.now
- return self.topologies[graph].add_edge(agent1, agent2, **attrs)
-
def log(self, message, *args, level=logging.INFO, **kwargs):
if not self.logger.isEnabledFor(level):
return
@@ -238,14 +164,6 @@ class Environment(Model):
self.schedule.step()
self.datacollector.collect(self)
- def run(self, until, *args, **kwargs):
- until = until or float('inf')
-
- while self.schedule.next_time < until:
- self.step()
- utils.logger.debug(f'Simulation step {self.schedule.time}/{until}. Next: {self.schedule.next_time}')
- self.schedule.time = until
-
def __contains__(self, key):
return key in self.env_params
@@ -289,5 +207,90 @@ class Environment(Model):
yield from self._agent_to_tuples(agent, now)
+class AgentConfigEnvironment(BaseEnvironment):
-SoilEnvironment = Environment
+ def __init__(self, *args,
+ agents: Dict[str, config.AgentConfig] = {},
+ **kwargs):
+ return super().__init__(*args, agents=agents, **kwargs)
+
+ def init_agents(self, agents: Union[Dict[str, config.AgentConfig], [tuple[type, Dict[str, Any]]]] = {}):
+ if not isinstance(agents, dict):
+ return BaseEnvironment.init_agents(self, agents)
+
+ self._agents = agents_from_config(agents,
+ env=self,
+ random=self.random)
+ for d in self._agents.values():
+ for a in d.values():
+ self.schedule.add(a)
+
+
+class NetworkConfigEnvironment(BaseEnvironment):
+
+ def __init__(self, *args, topologies: Dict[str, config.NetConfig] = {}, **kwargs):
+ super().__init__(*args, **kwargs)
+ self.topologies = {}
+ self._node_ids = {}
+ for (name, cfg) in topologies.items():
+ self.set_topology(cfg=cfg, graph=name)
+
+ @property
+ def topology(self):
+ return self.topologies['default']
+
+ def set_topology(self, cfg=None, dir_path=None, graph='default'):
+ topology = cfg
+ if not isinstance(cfg, nx.Graph):
+ topology = network.from_config(cfg, dir_path=dir_path or self.dir_path)
+
+ self.topologies[graph] = topology
+
+ def topology_for(self, agent_id):
+ return self.topologies[self._node_ids[agent_id][0]]
+
+ @property
+ def network_agents(self):
+ yield from self.agents(agent_class=NetworkAgent)
+
+ def agent_to_node(self, agent_id, graph_name='default', node_id=None, shuffle=False):
+ node_id = network.agent_to_node(G=self.topologies[graph_name], agent_id=agent_id,
+ node_id=node_id, shuffle=shuffle,
+ random=self.random)
+
+ self._node_ids[agent_id] = (graph_name, node_id)
+
+
+ def add_node(self, agent_class, state=None, graph='default'):
+ agent_id = int(len(self.topologies[graph].nodes()))
+ self.topologies[graph].add_node(agent_id)
+ a = self.add_agent(agent_id, agent_class, state, graph=graph)
+ a['visible'] = True
+ return a
+
+ def add_edge(self, agent1, agent2, start=None, graph='default', **attrs):
+ if hasattr(agent1, 'id'):
+ agent1 = agent1.id
+ if hasattr(agent2, 'id'):
+ agent2 = agent2.id
+ start = start or self.now
+ return self.topologies[graph].add_edge(agent1, agent2, **attrs)
+
+ def add_agent(self, *args, state=None, graph='default', **kwargs):
+ node = self.topologies[graph].nodes[agent_id]
+ node_state = node.get('state', {})
+ if node_state:
+ node_state.update(state or {})
+ state = node_state
+ a = super().add_agent(*args, state=state, **kwargs)
+ node['agent'] = a
+ return a
+
+ def node_id_for(self, agent_id):
+ return self._node_ids[agent_id][1]
+
+class Environment(AgentConfigEnvironment, NetworkConfigEnvironment):
+ def __init__(self, *args, **kwargs):
+ agents = kwargs.pop('agents', {})
+ NetworkConfigEnvironment.__init__(self, *args, **kwargs)
+ AgentConfigEnvironment.__init__(self, *args, agents=agents, **kwargs)
diff --git a/soil/exporters.py b/soil/exporters.py
index 1bd06de..20a0f92 100644
--- a/soil/exporters.py
+++ b/soil/exporters.py
@@ -49,8 +49,8 @@ class Exporter:
self.simulation = simulation
outdir = outdir or os.path.join(os.getcwd(), 'soil_output')
self.outdir = os.path.join(outdir,
- simulation.config.general.group or '',
- simulation.config.general.id)
+ simulation.group or '',
+ simulation.name)
self.dry_run = dry_run
self.copy_to = copy_to
diff --git a/soil/network.py b/soil/network.py
index 0eb3688..25b55ab 100644
--- a/soil/network.py
+++ b/soil/network.py
@@ -1,6 +1,7 @@
from typing import Dict
import os
import sys
+import random
import networkx as nx
@@ -40,3 +41,25 @@ def from_config(cfg: config.NetConfig, dir_path: str = None):
return nx.json_graph.node_link_graph(cfg.topology)
return nx.Graph()
+
+
+def agent_to_node(G, agent_id, node_id=None, shuffle=False, random=random):
+ '''
+ Link an agent to a node in a topology.
+
+ If node_id is None, a node without an agent_id will be found.
+ '''
+ #TODO: test
+ if node_id is None:
+ candidates = list(G.nodes(data=True))
+ if shuffle:
+ random.shuffle(candidates)
+ for next_id, data in candidates:
+ if data.get('agent_id', None) is None:
+ node_id = next_id
+ data['agent_id'] = agent_id
+ break
+
+ if node_id is None:
+ raise ValueError(f"Not enough nodes in topology to assign one to agent {agent_id}")
+ return node_id
diff --git a/soil/serialization.py b/soil/serialization.py
index 8c17f23..328efdd 100644
--- a/soil/serialization.py
+++ b/soil/serialization.py
@@ -122,8 +122,6 @@ def load_files(*patterns, **kwargs):
for i in glob(pattern, **kwargs):
for config in load_file(i):
path = os.path.abspath(i)
- if 'general' in config and 'dir_path' not in config['general']:
- config['general']['dir_path'] = os.path.dirname(path)
yield config, path
diff --git a/soil/simulation.py b/soil/simulation.py
index d28549d..4d50c30 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -7,6 +7,10 @@ import traceback
import logging
import networkx as nx
+from dataclasses import dataclass, field, asdict
+from typing import Union
+
+
from networkx.readwrite import json_graph
from multiprocessing import Pool
from functools import partial
@@ -14,13 +18,15 @@ import pickle
from . import serialization, utils, basestring, agents
from .environment import Environment
-from .utils import logger
+from .utils import logger, run_and_return_exceptions
from .exporters import default
+from .time import INFINITY
from .config import Config, convert_old
#TODO: change documentation for simulation
+@dataclass
class Simulation:
"""
Parameters
@@ -30,23 +36,16 @@ class Simulation:
kwargs: parameters to use to initialize a new configuration, if one has not been provided.
"""
-
- def __init__(self, config=None,
- **kwargs):
- if kwargs:
- cfg = {}
- if config:
- cfg.update(config.dict(include_defaults=False))
- cfg.update(kwargs)
- config = Config(**cfg)
- if not config:
- raise ValueError("You need to specify a simulation configuration")
- self.config = config
-
-
- @property
- def name(self) -> str:
- return self.config.general.id
+ name: str = 'Unnamed simulation'
+ group: str = None
+ model_class: Union[str, type] = 'soil.Environment'
+ model_params: dict = field(default_factory=dict)
+ seed: str = field(default_factory=lambda: current_time())
+ dir_path: str = field(default_factory=lambda: os.getcwd())
+ max_time: float = float('inf')
+ max_steps: int = -1
+ num_trials: int = 3
+ dry_run: bool = False
def run_simulation(self, *args, **kwargs):
return self.run(*args, **kwargs)
@@ -58,14 +57,14 @@ class Simulation:
def _run_sync_or_async(self, parallel=False, **kwargs):
if parallel and not os.environ.get('SENPY_DEBUG', None):
p = Pool()
- func = partial(self.run_trial_exceptions, **kwargs)
- for i in p.imap_unordered(func, range(self.config.general.num_trials)):
+ func = partial(run_and_return_exceptions, self.run_trial, **kwargs)
+ for i in p.imap_unordered(func, self.num_trials):
if isinstance(i, Exception):
logger.error('Trial failed:\n\t%s', i.message)
continue
yield i
else:
- for i in range(self.config.general.num_trials):
+ for i in range(self.num_trials):
yield self.run_trial(trial_id=i,
**kwargs)
@@ -80,12 +79,12 @@ class Simulation:
logger.info('Output directory: %s', outdir)
exporters = serialization.deserialize_all(exporters,
simulation=self,
- known_modules=['soil.exporters',],
+ known_modules=['soil.exporters', ],
dry_run=dry_run,
outdir=outdir,
**exporter_params)
- with utils.timer('simulation {}'.format(self.config.general.id)):
+ with utils.timer('simulation {}'.format(self.name)):
for exporter in exporters:
exporter.sim_start()
@@ -104,95 +103,95 @@ class Simulation:
for exporter in exporters:
exporter.sim_end()
+ def run_model(self, until=None, *args, **kwargs):
+ until = until or float('inf')
+
+ while self.schedule.next_time < until:
+ self.step()
+ utils.logger.debug(f'Simulation step {self.schedule.time}/{until}. Next: {self.schedule.next_time}')
+ self.schedule.time = until
+
def get_env(self, trial_id=0, **kwargs):
'''Create an environment for a trial of the simulation'''
- # opts = self.environment_params.copy()
- # opts.update({
- # 'name': '{}_trial_{}'.format(self.name, trial_id),
- # 'topology': self.topology.copy(),
- # 'network_params': self.network_params,
- # 'seed': '{}_trial_{}'.format(self.seed, trial_id),
- # 'initial_time': 0,
- # 'interval': self.interval,
- # 'network_agents': self.network_agents,
- # 'initial_time': 0,
- # 'states': self.states,
- # 'dir_path': self.dir_path,
- # 'default_state': self.default_state,
- # 'history': bool(self._history),
- # 'environment_agents': self.environment_agents,
- # })
- # opts.update(kwargs)
- print(self.config)
- env = Environment.from_config(self.config, trial_id=trial_id, **kwargs)
- return env
+ def deserialize_reporters(reporters):
+ for (k, v) in reporters.items():
+ if isinstance(v, str) and v.startswith('py:'):
+ reporters[k] = serialization.deserialize(value.lsplit(':', 1)[1])
+
+ model_params = self.model_params.copy()
+ model_params.update(kwargs)
+
+ agent_reporters = deserialize_reporters(model_params.pop('agent_reporters', {}))
+ model_reporters = deserialize_reporters(model_params.pop('model_reporters', {}))
+
+ env = serialization.deserialize(self.model_class)
+ return env(id=f'{self.name}_trial_{trial_id}',
+ seed=f'{self.seed}_trial_{trial_id}',
+ dir_path=self.dir_path,
+ agent_reporters=agent_reporters,
+ model_reporters=model_reporters,
+ **model_params)
def run_trial(self, trial_id=None, until=None, log_level=logging.INFO, **opts):
"""
Run a single trial of the simulation
"""
+ model = self.get_env(trial_id, **opts)
+ return self.run_model(model, trial_id=trial_id, until=until, log_level=log_level)
+
+ def run_model(self, model, trial_id=None, until=None, log_level=logging.INFO, **opts):
trial_id = trial_id if trial_id is not None else current_time()
if log_level:
logger.setLevel(log_level)
# Set-up trial environment and graph
- until = until or self.config.general.max_time
+ until = until or self.max_time
- env = self.get_env(trial_id, **opts)
# Set up agents on nodes
- with utils.timer('Simulation {} trial {}'.format(self.config.general.id, trial_id)):
- env.run(until)
- return env
+ is_done = lambda: False
+ if self.max_time and hasattr(self.schedule, 'time'):
+ is_done = lambda x: is_done() or self.schedule.time >= self.max_time
+ if self.max_steps and hasattr(self.schedule, 'time'):
+ is_done = lambda: is_done() or self.schedule.steps >= self.max_steps
- def run_trial_exceptions(self, *args, **kwargs):
- '''
- A wrapper for run_trial that catches exceptions and returns them.
- It is meant for async simulations
- '''
- try:
- return self.run_trial(*args, **kwargs)
- except Exception as ex:
- if ex.__cause__ is not None:
- ex = ex.__cause__
- ex.message = ''.join(traceback.format_exception(type(ex), ex, ex.__traceback__)[:])
- return ex
+ with utils.timer('Simulation {} trial {}'.format(self.name, trial_id)):
+ while not is_done():
+ utils.logger.debug(f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}')
+ model.step()
+ return model
def to_dict(self):
- return self.config.dict()
+ d = asdict(self)
+ d['model_class'] = serialization.serialize(d['model_class'])[0]
+ d['model_params'] = serialization.serialize(d['model_params'])[0]
+ d['dir_path'] = str(d['dir_path'])
+
+ return d
def to_yaml(self):
- return yaml.dump(self.config.dict())
+ return yaml.dump(self.asdict())
-def all_from_config(config):
+def iter_from_config(config):
configs = list(serialization.load_config(config))
for config, path in configs:
- if config.get('version', '1') == '1':
- config = convert_old(config)
- if not isinstance(config, Config):
- config = Config(**config)
- if not config.general.dir_path:
- config.general.dir_path = os.path.dirname(path)
- sim = Simulation(config=config)
- yield sim
+ d = dict(config)
+ if 'dir_path' not in d:
+ d['dir_path'] = os.path.dirname(path)
+ if d.get('version', '2') == '1' or 'agents' in d or 'network_agents' in d or 'environment_agents' in d:
+ d = convert_old(d)
+ d.pop('version', None)
+ yield Simulation(**d)
def from_config(conf_or_path):
- lst = list(all_from_config(conf_or_path))
+ lst = list(iter_from_config(conf_or_path))
if len(lst) > 1:
raise AttributeError('Provide only one configuration')
return lst[0]
-def from_old_config(conf_or_path):
- config = list(serialization.load_config(conf_or_path))
- if len(config) > 1:
- raise AttributeError('Provide only one configuration')
- config = convert_old(config[0][0])
- return Simulation(config)
-
def run_from_config(*configs, **kwargs):
- for sim in all_from_config(configs):
- name = config.general.id
- logger.info("Using config(s): {name}".format(name=name))
+ for sim in iter_from_config(configs):
+ logger.info(f"Using config(s): {sim.id}")
sim.run_simulation(**kwargs)
diff --git a/soil/time.py b/soil/time.py
index b74ef82..b2faf46 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -37,9 +37,10 @@ class TimedActivation(BaseScheduler):
"""
def __init__(self, *args, **kwargs):
- super().__init__(self)
+ super().__init__(*args, **kwargs)
self._queue = []
self.next_time = 0
+ self.logger = logger.getChild(f'time_{ self.model }')
def add(self, agent: MesaAgent):
if agent.unique_id not in self._agents:
@@ -52,7 +53,8 @@ class TimedActivation(BaseScheduler):
an agent will signal when it wants to be scheduled next.
"""
- if self.next_time == INFINITY:
+ self.logger.debug(f'Simulation step {self.next_time}')
+ if not self.model.running:
return
self.time = self.next_time
@@ -60,7 +62,7 @@ class TimedActivation(BaseScheduler):
while self._queue and self._queue[0][0] == self.time:
(when, agent_id) = heappop(self._queue)
- logger.debug(f'Stepping agent {agent_id}')
+ self.logger.debug(f'Stepping agent {agent_id}')
returned = self._agents[agent_id].step()
when = (returned or Delta(1)).abs(self.time)
@@ -74,7 +76,8 @@ class TimedActivation(BaseScheduler):
if not self._queue:
self.time = INFINITY
self.next_time = INFINITY
+ self.model.running = False
return
self.next_time = self._queue[0][0]
-
+ self.logger.debug(f'Next step: {self.next_time}')
diff --git a/soil/utils.py b/soil/utils.py
index 562def1..cd82588 100644
--- a/soil/utils.py
+++ b/soil/utils.py
@@ -1,6 +1,7 @@
import logging
from time import time as current_time, strftime, gmtime, localtime
import os
+import traceback
from shutil import copyfile
@@ -89,3 +90,17 @@ def unflatten_dict(d):
target = target[token]
target[tokens[-1]] = v
return out
+
+
+def run_and_return_exceptions(self, func, *args, **kwargs):
+ '''
+ A wrapper for run_trial that catches exceptions and returns them.
+ It is meant for async simulations.
+ '''
+ try:
+ return func(*args, **kwargs)
+ except Exception as ex:
+ if ex.__cause__ is not None:
+ ex = ex.__cause__
+ ex.message = ''.join(traceback.format_exception(type(ex), ex, ex.__traceback__)[:])
+ return ex
diff --git a/soil/web/config.yml b/soil/web/config.yml
index 1f741eb..27e2785 100644
--- a/soil/web/config.yml
+++ b/soil/web/config.yml
@@ -6,11 +6,11 @@ network_params:
n: 100
m: 2
network_agents:
- - agent_type: ControlModelM2
+ - agent_class: ControlModelM2
weight: 0.1
state:
id: 1
- - agent_type: ControlModelM2
+ - agent_class: ControlModelM2
weight: 0.9
state:
id: 0
diff --git a/tests/old_complete.yml b/tests/old_complete.yml
index 8609eb9..517abc4 100644
--- a/tests/old_complete.yml
+++ b/tests/old_complete.yml
@@ -10,21 +10,21 @@ network_params:
generator: complete_graph
n: 10
network_agents:
- - agent_type: CounterModel
+ - agent_class: CounterModel
weight: 0.4
state:
state_id: 0
- - agent_type: AggregatedCounter
+ - agent_class: AggregatedCounter
weight: 0.6
environment_agents:
- agent_id: 'Environment Agent 1'
- agent_type: CounterModel
+ agent_class: CounterModel
state:
times: 10
environment_class: Environment
environment_params:
am_i_complete: true
-agent_type: CounterModel
+agent_class: CounterModel
default_state:
times: 1
states:
diff --git a/tests/test_analysis.py b/tests/test_analysis.py
index 83d6e54..204b4dd 100644
--- a/tests/test_analysis.py
+++ b/tests/test_analysis.py
@@ -46,7 +46,7 @@ class TestAnalysis(TestCase):
'generator': 'complete_graph',
'n': 2
},
- 'agent_type': Ping,
+ 'agent_class': Ping,
'states': [{'interval': 1}, {'interval': 2}],
'max_time': 30,
'num_trials': 1,
diff --git a/tests/test_config.py b/tests/test_config.py
index 6f69ee2..fd9fc70 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -1,8 +1,10 @@
from unittest import TestCase
import os
+import yaml
+import copy
from os.path import join
-from soil import simulation, serialization, config, network, agents
+from soil import simulation, serialization, config, network, agents, utils
ROOT = os.path.abspath(os.path.dirname(__file__))
EXAMPLES = join(ROOT, '..', 'examples')
@@ -10,6 +12,17 @@ EXAMPLES = join(ROOT, '..', 'examples')
FORCE_TESTS = os.environ.get('FORCE_TESTS', '')
+def isequal(a, b):
+ if isinstance(a, dict):
+ for (k, v) in a.items():
+ if v:
+ isequal(a[k], b[k])
+ else:
+ assert not b.get(k, None)
+ return
+ assert a == b
+
+
class TestConfig(TestCase):
def test_conversion(self):
@@ -18,18 +31,23 @@ class TestConfig(TestCase):
converted_defaults = config.convert_old(old, strict=False)
converted = converted_defaults.dict(skip_defaults=True)
- def isequal(a, b):
- if isinstance(a, dict):
- for (k, v) in a.items():
- if v:
- isequal(a[k], b[k])
- else:
- assert not b.get(k, None)
- return
- assert a == b
-
isequal(converted, expected)
+ def test_configuration_changes(self):
+ """
+ The configuration should not change after running
+ the simulation.
+ """
+ config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0]
+ s = simulation.from_config(config)
+ init_config = copy.copy(s.config)
+
+ s.run_simulation(dry_run=True)
+ nconfig = s.config
+ # del nconfig['to
+ isequal(init_config, nconfig)
+
+
def test_topology_config(self):
netconfig = config.NetConfig(**{
'path': join(ROOT, 'test.gexf')
@@ -48,7 +66,7 @@ class TestConfig(TestCase):
'network_params': {
'path': join(ROOT, 'test.gexf')
},
- 'agent_type': 'CounterModel',
+ 'agent_class': 'CounterModel',
# 'states': [{'times': 10}, {'times': 20}],
'max_time': 2,
'dry_run': True,
@@ -63,7 +81,6 @@ class TestConfig(TestCase):
assert len(env.agents) == 2
assert env.agents[0].topology == env.topologies['default']
-
def test_agents_from_config(self):
'''We test that the known complete configuration produces
the right agents in the right groups'''
@@ -74,8 +91,25 @@ class TestConfig(TestCase):
assert len(env.agents(group='network')) == 10
assert len(env.agents(group='environment')) == 1
- assert sum(1 for a in env.agents(group='network', agent_type=agents.CounterModel)) == 4
- assert sum(1 for a in env.agents(group='network', agent_type=agents.AggregatedCounter)) == 6
+ assert sum(1 for a in env.agents(group='network', agent_class=agents.CounterModel)) == 4
+ assert sum(1 for a in env.agents(group='network', agent_class=agents.AggregatedCounter)) == 6
+
+ def test_yaml(self):
+ """
+ The YAML version of a newly created configuration should be equivalent
+ to the configuration file used.
+ Values not present in the original config file should have reasonable
+ defaults.
+ """
+ with utils.timer('loading'):
+ config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0]
+ s = simulation.from_config(config)
+ with utils.timer('serializing'):
+ serial = s.to_yaml()
+ with utils.timer('recovering'):
+ recovered = yaml.load(serial, Loader=yaml.SafeLoader)
+ for (k, v) in config.items():
+ assert recovered[k] == v
def make_example_test(path, cfg):
def wrapped(self):
diff --git a/tests/test_exporters.py b/tests/test_exporters.py
index 6ff544b..debc14a 100644
--- a/tests/test_exporters.py
+++ b/tests/test_exporters.py
@@ -36,7 +36,7 @@ class Exporters(TestCase):
config = {
'name': 'exporter_sim',
'network_params': {},
- 'agent_type': 'CounterModel',
+ 'agent_class': 'CounterModel',
'max_time': 2,
'num_trials': 5,
'environment_params': {}
@@ -62,7 +62,7 @@ class Exporters(TestCase):
'generator': 'complete_graph',
'n': 4
},
- 'agent_type': 'CounterModel',
+ 'agent_class': 'CounterModel',
'max_time': 2,
'num_trials': n_trials,
'dry_run': False,
diff --git a/tests/test_history.py b/tests/test_history.py
index 4a76d5c..773cfd6 100644
--- a/tests/test_history.py
+++ b/tests/test_history.py
@@ -41,7 +41,7 @@ class TestHistory(TestCase):
'path': join(ROOT, 'test.gexf')
},
'network_agents': [{
- 'agent_type': 'AggregatedCounter',
+ 'agent_class': 'AggregatedCounter',
'weight': 1,
'state': {'state_id': 0}
diff --git a/tests/test_main.py b/tests/test_main.py
index 017e92e..a114b6c 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -1,9 +1,6 @@
from unittest import TestCase
import os
-import io
-import yaml
-import copy
import pickle
import networkx as nx
from functools import partial
@@ -29,56 +26,17 @@ class CustomAgent(agents.FSM, agents.NetworkAgent):
class TestMain(TestCase):
- def test_load_graph(self):
- """
- Load a graph from file if the extension is known.
- Raise an exception otherwise.
- """
- config = {
- 'network_params': {
- 'path': join(ROOT, 'test.gexf')
- }
- }
- G = network.from_config(config['network_params'])
- assert G
- assert len(G) == 2
- with self.assertRaises(AttributeError):
- config = {
- 'network_params': {
- 'path': join(ROOT, 'unknown.extension')
- }
- }
- G = network.from_config(config['network_params'])
- print(G)
-
- def test_generate_barabasi(self):
- """
- If no path is given, a generator and network parameters
- should be used to generate a network
- """
- cfg = {
- 'params': {
- 'generator': 'barabasi_albert_graph'
- }
- }
- with self.assertRaises(Exception):
- G = network.from_config(cfg)
- cfg['params']['n'] = 100
- cfg['params']['m'] = 10
- G = network.from_config(cfg)
- assert len(G) == 100
-
def test_empty_simulation(self):
"""A simulation with a base behaviour should do nothing"""
config = {
- 'network_params': {
- 'path': join(ROOT, 'test.gexf')
- },
- 'agent_type': 'BaseAgent',
- 'environment_params': {
+ 'model_params': {
+ 'network_params': {
+ 'path': join(ROOT, 'test.gexf')
+ },
+ 'agent_class': 'BaseAgent',
}
}
- s = simulation.from_old_config(config)
+ s = simulation.from_config(config)
s.run_simulation(dry_run=True)
@@ -88,21 +46,21 @@ class TestMain(TestCase):
agent should be able to update its state."""
config = {
'name': 'CounterAgent',
- 'network_params': {
- 'generator': nx.complete_graph,
- 'n': 2,
- },
- 'agent_type': 'CounterModel',
- 'states': {
- 0: {'times': 10},
- 1: {'times': 20},
- },
- 'max_time': 2,
'num_trials': 1,
- 'environment_params': {
+ 'max_time': 2,
+ 'model_params': {
+ 'network_params': {
+ 'generator': nx.complete_graph,
+ 'n': 2,
+ },
+ 'agent_class': 'CounterModel',
+ 'states': {
+ 0: {'times': 10},
+ 1: {'times': 20},
+ },
}
}
- s = simulation.from_old_config(config)
+ s = simulation.from_config(config)
def test_counter_agent(self):
"""
@@ -110,24 +68,24 @@ class TestMain(TestCase):
agent should be able to update its state."""
config = {
'version': '2',
- 'general': {
- 'name': 'CounterAgent',
- 'max_time': 2,
- 'dry_run': True,
- 'num_trials': 1,
- },
- 'topologies': {
- 'default': {
- 'path': join(ROOT, 'test.gexf')
- }
- },
- 'agents': {
- 'default': {
- 'agent_class': 'CounterModel',
+ 'name': 'CounterAgent',
+ 'dry_run': True,
+ 'num_trials': 1,
+ 'max_time': 2,
+ 'model_params': {
+ 'topologies': {
+ 'default': {
+ 'path': join(ROOT, 'test.gexf')
+ }
},
- 'counters': {
- 'topology': 'default',
- 'fixed': [{'state': {'times': 10}}, {'state': {'times': 20}}],
+ 'agents': {
+ 'default': {
+ 'agent_class': 'CounterModel',
+ },
+ 'counters': {
+ 'topology': 'default',
+ 'fixed': [{'state': {'times': 10}}, {'state': {'times': 20}}],
+ }
}
}
}
@@ -141,33 +99,37 @@ class TestMain(TestCase):
assert env.agents[0]['times'] == 11
assert env.agents[1]['times'] == 21
- def test_custom_agent(self):
- """Allow for search of neighbors with a certain state_id"""
+ def test_init_and_count_agents(self):
+ """Agents should be properly initialized and counting should filter them properly"""
+ #TODO: separate this test into two or more test cases
config = {
- 'network_params': {
- 'path': join(ROOT, 'test.gexf')
- },
- 'network_agents': [{
- 'agent_type': CustomAgent,
- 'weight': 1
-
- }],
'max_time': 10,
- 'environment_params': {
- }
+ 'model_params': {
+ 'agents': [(CustomAgent, {'weight': 1}),
+ (CustomAgent, {'weight': 3}),
+ ],
+ 'topologies': {
+ 'default': {
+ 'path': join(ROOT, 'test.gexf')
+ }
+ },
+ },
}
- s = simulation.from_old_config(config)
+ s = simulation.from_config(config)
env = s.run_simulation(dry_run=True)[0]
- assert env.agents[1].count_agents(state_id='normal') == 2
- assert env.agents[1].count_agents(state_id='normal', limit_neighbors=True) == 1
- assert env.agents[0].neighbors == 1
+ assert env.agents[0].weight == 1
+ assert env.count_agents() == 2
+ assert env.count_agents(weight=1) == 1
+ assert env.count_agents(weight=3) == 1
+ assert env.count_agents(agent_class=CustomAgent) == 2
+
def test_torvalds_example(self):
"""A complete example from a documentation should work."""
config = serialization.load_file(join(EXAMPLES, 'torvalds.yml'))[0]
- config['network_params']['path'] = join(EXAMPLES,
+ config['model_params']['network_params']['path'] = join(EXAMPLES,
config['network_params']['path'])
- s = simulation.from_old_config(config)
+ s = simulation.from_config(config)
env = s.run_simulation(dry_run=True)[0]
for a in env.network_agents:
skill_level = a.state['skill_level']
@@ -184,47 +146,6 @@ class TestMain(TestCase):
assert a.state['total'] == 3
assert a.state['neighbors'] == 1
- def test_yaml(self):
- """
- The YAML version of a newly created configuration should be equivalent
- to the configuration file used.
- Values not present in the original config file should have reasonable
- defaults.
- """
- with utils.timer('loading'):
- config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0]
- s = simulation.from_old_config(config)
- with utils.timer('serializing'):
- serial = s.to_yaml()
- with utils.timer('recovering'):
- recovered = yaml.load(serial, Loader=yaml.SafeLoader)
- for (k, v) in config.items():
- assert recovered[k] == v
-
- def test_configuration_changes(self):
- """
- The configuration should not change after running
- the simulation.
- """
- config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0]
- s = simulation.from_old_config(config)
- init_config = copy.copy(s.config)
-
- s.run_simulation(dry_run=True)
- nconfig = s.config
- # del nconfig['to
- assert init_config == nconfig
-
- def test_save_geometric(self):
- """
- There is a bug in networkx that prevents it from creating a GEXF file
- from geometric models. We should work around it.
- """
- G = nx.random_geometric_graph(20, 0.1)
- env = Environment(topology=G)
- f = io.BytesIO()
- env.dump_gexf(f)
-
def test_serialize_class(self):
ser, name = serialization.serialize(agents.BaseAgent, known_modules=[])
assert name == 'soil.agents.BaseAgent'
@@ -247,7 +168,7 @@ class TestMain(TestCase):
des = serialization.deserialize(name, ser)
assert i == des
- def test_serialize_agent_type(self):
+ def test_serialize_agent_class(self):
'''A class from soil.agents should be serialized without the module part'''
ser = agents.serialize_type(CustomAgent)
assert ser == 'test_main.CustomAgent'
@@ -258,33 +179,33 @@ class TestMain(TestCase):
def test_deserialize_agent_distribution(self):
agent_distro = [
{
- 'agent_type': 'CounterModel',
+ 'agent_class': 'CounterModel',
'weight': 1
},
{
- 'agent_type': 'test_main.CustomAgent',
+ 'agent_class': 'test_main.CustomAgent',
'weight': 2
},
]
converted = agents.deserialize_definition(agent_distro)
- assert converted[0]['agent_type'] == agents.CounterModel
- assert converted[1]['agent_type'] == CustomAgent
+ assert converted[0]['agent_class'] == agents.CounterModel
+ assert converted[1]['agent_class'] == CustomAgent
pickle.dumps(converted)
def test_serialize_agent_distribution(self):
agent_distro = [
{
- 'agent_type': agents.CounterModel,
+ 'agent_class': agents.CounterModel,
'weight': 1
},
{
- 'agent_type': CustomAgent,
+ 'agent_class': CustomAgent,
'weight': 2
},
]
converted = agents.serialize_definition(agent_distro)
- assert converted[0]['agent_type'] == 'CounterModel'
- assert converted[1]['agent_type'] == 'test_main.CustomAgent'
+ assert converted[0]['agent_class'] == 'CounterModel'
+ assert converted[1]['agent_class'] == 'test_main.CustomAgent'
pickle.dumps(converted)
def test_subgraph(self):
@@ -292,7 +213,7 @@ class TestMain(TestCase):
G = nx.Graph()
G.add_node(3)
G.add_edge(1, 2)
- distro = agents.calculate_distribution(agent_type=agents.NetworkAgent)
+ distro = agents.calculate_distribution(agent_class=agents.NetworkAgent)
distro[0]['topology'] = 'default'
aconfig = config.AgentConfig(distribution=distro, topology='default')
env = Environment(name='Test', topologies={'default': G}, agents={'network': aconfig})
@@ -303,7 +224,7 @@ class TestMain(TestCase):
assert len(a2.subgraph(limit_neighbors=True)) == 2
assert len(a3.subgraph(limit_neighbors=True)) == 1
assert len(a3.subgraph(limit_neighbors=True, center=False)) == 0
- assert len(a3.subgraph(agent_type=agents.NetworkAgent)) == 3
+ assert len(a3.subgraph(agent_class=agents.NetworkAgent)) == 3
def test_templates(self):
'''Loading a template should result in several configs'''
@@ -313,19 +234,19 @@ class TestMain(TestCase):
def test_until(self):
config = {
'name': 'until_sim',
- 'network_params': {},
- 'agent_type': 'CounterModel',
+ 'model_params': {
+ 'network_params': {},
+ 'agent_class': 'CounterModel',
+ },
'max_time': 2,
'num_trials': 50,
- 'environment_params': {}
}
- s = simulation.from_old_config(config)
+ s = simulation.from_config(config)
runs = list(s.run_simulation(dry_run=True))
over = list(x.now for x in runs if x.now>2)
assert len(runs) == config['num_trials']
assert len(over) == 0
-
def test_fsm(self):
'''Basic state change'''
class ToggleAgent(agents.FSM):
diff --git a/tests/test_network.py b/tests/test_network.py
new file mode 100644
index 0000000..b111a94
--- /dev/null
+++ b/tests/test_network.py
@@ -0,0 +1,85 @@
+from unittest import TestCase
+
+import io
+import os
+import networkx as nx
+
+from os.path import join
+
+from soil import network, environment
+
+ROOT = os.path.abspath(os.path.dirname(__file__))
+EXAMPLES = join(ROOT, '..', 'examples')
+
+
+class TestNetwork(TestCase):
+ def test_load_graph(self):
+ """
+ Load a graph from file if the extension is known.
+ Raise an exception otherwise.
+ """
+ config = {
+ 'network_params': {
+ 'path': join(ROOT, 'test.gexf')
+ }
+ }
+ G = network.from_config(config['network_params'])
+ assert G
+ assert len(G) == 2
+ with self.assertRaises(AttributeError):
+ config = {
+ 'network_params': {
+ 'path': join(ROOT, 'unknown.extension')
+ }
+ }
+ G = network.from_config(config['network_params'])
+ print(G)
+
+ def test_generate_barabasi(self):
+ """
+ If no path is given, a generator and network parameters
+ should be used to generate a network
+ """
+ cfg = {
+ 'params': {
+ 'generator': 'barabasi_albert_graph'
+ }
+ }
+ with self.assertRaises(Exception):
+ G = network.from_config(cfg)
+ cfg['params']['n'] = 100
+ cfg['params']['m'] = 10
+ G = network.from_config(cfg)
+ assert len(G) == 100
+
+ def test_save_geometric(self):
+ """
+ There is a bug in networkx that prevents it from creating a GEXF file
+ from geometric models. We should work around it.
+ """
+ G = nx.random_geometric_graph(20, 0.1)
+ env = environment.NetworkEnvironment(topology=G)
+ f = io.BytesIO()
+ env.dump_gexf(f)
+
+ def test_custom_agent_neighbors(self):
+ """Allow for search of neighbors with a certain state_id"""
+ config = {
+ 'network_params': {
+ 'path': join(ROOT, 'test.gexf')
+ },
+ 'network_agents': [{
+ 'agent_class': CustomAgent,
+ 'weight': 1
+
+ }],
+ 'max_time': 10,
+ 'environment_params': {
+ }
+ }
+ s = simulation.from_config(config)
+ env = s.run_simulation(dry_run=True)[0]
+ assert env.agents[1].count_agents(state_id='normal') == 2
+ assert env.agents[1].count_agents(state_id='normal', limit_neighbors=True) == 1
+ assert env.agents[0].neighbors == 1
+
From cd62c23cb955e6695d30fead1556845bd2454ae9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Thu, 13 Oct 2022 22:43:16 +0200
Subject: [PATCH 08/39] WIP: all tests pass
---
CHANGELOG.md | 2 +
docs/soil-vs.rst | 12 +
examples/complete.yml | 81 ++-
examples/complete_opt2.yml | 63 ++
.../custom_generator/custom_generator.yml | 2 +-
examples/custom_generator/mymodule.py | 5 +-
examples/mesa/mesa.yml | 22 +-
examples/newsspread/NewsSpread.yml | 10 +-
examples/newsspread/newsspread.py | 16 +-
examples/pubcrawl/pubcrawl.py | 18 +-
examples/pubcrawl/pubcrawl.yml | 2 +-
examples/rabbits/README.md | 4 +
examples/rabbits/basic/rabbit_agents.py | 130 ++++
examples/rabbits/basic/rabbits.yml | 41 ++
examples/rabbits/improved/rabbit_agents.py | 130 ++++
examples/rabbits/improved/rabbits.yml | 41 ++
examples/rabbits/rabbit_agents.py | 133 ----
examples/rabbits/rabbits.yml | 20 -
examples/template.yml | 24 +-
examples/terrorism/TerroristNetworkModel.py | 26 +-
examples/terrorism/TerroristNetworkModel.yml | 50 +-
examples/torvalds.yml | 23 +-
requirements.txt | 5 +-
soil/__init__.py | 79 ++-
soil/agents/CounterModel.py | 20 +-
soil/agents/__init__.py | 641 ++++++++++--------
soil/analysis.py | 206 ------
soil/config.py | 167 +++--
soil/debugging.py | 151 +++++
soil/environment.py | 202 +++---
soil/exporters.py | 58 +-
soil/network.py | 19 +-
soil/serialization.py | 31 +-
soil/simulation.py | 144 ++--
soil/time.py | 30 +-
soil/utils.py | 39 +-
tests/complete_converted.yml | 65 +-
tests/old_complete.yml | 17 +-
tests/test_agents.py | 6 +-
tests/test_analysis.py | 91 ---
tests/test_config.py | 21 +-
tests/test_examples.py | 27 +-
tests/test_exporters.py | 37 +-
tests/test_history.py | 128 ----
tests/test_main.py | 45 +-
tests/test_network.py | 70 +-
46 files changed, 1720 insertions(+), 1434 deletions(-)
create mode 100644 docs/soil-vs.rst
create mode 100644 examples/complete_opt2.yml
create mode 100644 examples/rabbits/README.md
create mode 100644 examples/rabbits/basic/rabbit_agents.py
create mode 100644 examples/rabbits/basic/rabbits.yml
create mode 100644 examples/rabbits/improved/rabbit_agents.py
create mode 100644 examples/rabbits/improved/rabbits.yml
delete mode 100644 examples/rabbits/rabbit_agents.py
delete mode 100644 examples/rabbits/rabbits.yml
delete mode 100644 soil/analysis.py
create mode 100644 soil/debugging.py
delete mode 100644 tests/test_analysis.py
delete mode 100644 tests/test_history.py
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 92c457e..a0a8a2a 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [0.3 UNRELEASED]
+### Added
+* Simple debugging capabilities, with a custom `pdb.Debugger` subclass that exposes commands to list agents and their status and set breakpoints on states (for FSM agents)
### Changed
* Configuration schema is very different now. Check `soil.config` for more information. We are also using Pydantic for (de)serialization.
* There may be more than one topology/network in the simulation
diff --git a/docs/soil-vs.rst b/docs/soil-vs.rst
new file mode 100644
index 0000000..53b6891
--- /dev/null
+++ b/docs/soil-vs.rst
@@ -0,0 +1,12 @@
+### MESA
+
+Starting with version 0.3, Soil has been redesigned to complement Mesa, while remaining compatible with it.
+That means that every component in Soil (i.e., Models, Environments, etc.) can be mixed with existing mesa components.
+In fact, there are examples that show how that integration may be used, in the `examples/mesa` folder in the repository.
+
+Here are some reasons to use Soil instead of plain mesa:
+
+- Less boilerplate for common scenarios (by some definitions of common)
+- Functions to automatically populate a topology with an agent distribution (i.e., different ratios of agent class and state)
+- The `soil.Simulation` class allows you to run multiple instances of the same experiment (i.e., multiple trials with the same parameters but a different randomness seed)
+- Reporting functions that aggregate multiple
diff --git a/examples/complete.yml b/examples/complete.yml
index d33cbaf..2677c22 100644
--- a/examples/complete.yml
+++ b/examples/complete.yml
@@ -1,46 +1,54 @@
---
version: '2'
-general:
- id: simple
- group: tests
- dir_path: "/tmp/"
- num_trials: 3
- max_time: 100
- interval: 1
- seed: "CompleteSeed!"
-topologies:
- default:
- params:
- generator: complete_graph
- n: 10
- another_graph:
- params:
- generator: complete_graph
- n: 2
-environment:
- environment_class: Environment
- params:
- am_i_complete: true
-agents:
-# Agents are split several groups, each with its own definition
- default: # This is a special group. Its values will be used as default values for the rest of the groups
+name: simple
+group: tests
+dir_path: "/tmp/"
+num_trials: 3
+max_steps: 100
+interval: 1
+seed: "CompleteSeed!"
+model_class: Environment
+model_params:
+ am_i_complete: true
+ topologies:
+ default:
+ params:
+ generator: complete_graph
+ n: 10
+ another_graph:
+ params:
+ generator: complete_graph
+ n: 2
+ environment:
+ agents:
agent_class: CounterModel
topology: default
state:
times: 1
- environment:
- # In this group we are not specifying any topology
- topology: False
+ # In this group we are not specifying any topology
fixed:
- name: 'Environment Agent 1'
- agent_class: CounterModel
+ agent_class: BaseAgent
+ group: environment
+ topology: null
+ hidden: true
state:
times: 10
- general_counters:
- topology: default
+ - agent_class: CounterModel
+ id: 0
+ group: other_counters
+ topology: another_graph
+ state:
+ times: 1
+ total: 0
+ - agent_class: CounterModel
+ topology: another_graph
+ group: other_counters
+ id: 1
distribution:
- agent_class: CounterModel
weight: 1
+ group: general_counters
state:
times: 3
- agent_class: AggregatedCounter
@@ -51,16 +59,3 @@ agents:
n: 2
state:
times: 5
-
- other_counters:
- topology: another_graph
- fixed:
- - agent_class: CounterModel
- id: 0
- state:
- times: 1
- total: 0
- - agent_class: CounterModel
- id: 1
- # If not specified, it will use the state set in the default
- # state:
diff --git a/examples/complete_opt2.yml b/examples/complete_opt2.yml
new file mode 100644
index 0000000..b4acc26
--- /dev/null
+++ b/examples/complete_opt2.yml
@@ -0,0 +1,63 @@
+---
+version: '2'
+id: simple
+group: tests
+dir_path: "/tmp/"
+num_trials: 3
+max_steps: 100
+interval: 1
+seed: "CompleteSeed!"
+model_class: "soil.Environment"
+model_params:
+ topologies:
+ default:
+ params:
+ generator: complete_graph
+ n: 10
+ another_graph:
+ params:
+ generator: complete_graph
+ n: 2
+ agents:
+ # The values here will be used as default values for any agent
+ agent_class: CounterModel
+ topology: default
+ state:
+ times: 1
+ # This specifies a distribution of agents, each with a `weight` or an explicit number of agents
+ distribution:
+ - agent_class: CounterModel
+ weight: 1
+ # This is inherited from the default settings
+ #topology: default
+ state:
+ times: 3
+ - agent_class: AggregatedCounter
+ topology: default
+ weight: 0.2
+ fixed:
+ - name: 'Environment Agent 1'
+ # All the other agents will assigned to the 'default' group
+ group: environment
+ # Do not count this agent towards total limits
+ hidden: true
+ agent_class: soil.BaseAgent
+ topology: null
+ state:
+ times: 10
+ - agent_class: CounterModel
+ topology: another_graph
+ id: 0
+ state:
+ times: 1
+ total: 0
+ - agent_class: CounterModel
+ topology: another_graph
+ id: 1
+ override:
+ # 2 agents that match this filter will be updated to match the state {times: 5}
+ - filter:
+ agent_class: AggregatedCounter
+ n: 2
+ state:
+ times: 5
diff --git a/examples/custom_generator/custom_generator.yml b/examples/custom_generator/custom_generator.yml
index 12c130d..81f0314 100644
--- a/examples/custom_generator/custom_generator.yml
+++ b/examples/custom_generator/custom_generator.yml
@@ -2,7 +2,7 @@
name: custom-generator
description: Using a custom generator for the network
num_trials: 3
-max_time: 100
+max_steps: 100
interval: 1
network_params:
generator: mymodule.mygenerator
diff --git a/examples/custom_generator/mymodule.py b/examples/custom_generator/mymodule.py
index ef3bacc..85226e0 100644
--- a/examples/custom_generator/mymodule.py
+++ b/examples/custom_generator/mymodule.py
@@ -1,4 +1,5 @@
from networkx import Graph
+import random
import networkx as nx
def mygenerator(n=5, n_edges=5):
@@ -13,9 +14,9 @@ def mygenerator(n=5, n_edges=5):
for i in range(n_edges):
nodes = list(G.nodes)
- n_in = self.random.choice(nodes)
+ n_in = random.choice(nodes)
nodes.remove(n_in) # Avoid loops
- n_out = self.random.choice(nodes)
+ n_out = random.choice(nodes)
G.add_edge(n_in, n_out)
return G
diff --git a/examples/mesa/mesa.yml b/examples/mesa/mesa.yml
index a1572f2..6bdae6f 100644
--- a/examples/mesa/mesa.yml
+++ b/examples/mesa/mesa.yml
@@ -3,17 +3,21 @@ name: mesa_sim
group: tests
dir_path: "/tmp"
num_trials: 3
-max_time: 100
+max_steps: 100
interval: 1
seed: '1'
-network_params:
- generator: social_wealth.graph_generator
- n: 5
-network_agents:
- - agent_class: social_wealth.SocialMoneyAgent
- weight: 1
-environment_class: social_wealth.MoneyEnv
-environment_params:
+model_class: social_wealth.MoneyEnv
+model_params:
+ topologies:
+ default:
+ params:
+ generator: social_wealth.graph_generator
+ n: 5
+ agents:
+ distribution:
+ - agent_class: social_wealth.SocialMoneyAgent
+ topology: default
+ weight: 1
mesa_agent_class: social_wealth.MoneyAgent
N: 10
width: 50
diff --git a/examples/newsspread/NewsSpread.yml b/examples/newsspread/NewsSpread.yml
index 10ae525..d80a5d5 100644
--- a/examples/newsspread/NewsSpread.yml
+++ b/examples/newsspread/NewsSpread.yml
@@ -5,7 +5,7 @@ environment_params:
prob_neighbor_spread: 0.0
prob_tv_spread: 0.01
interval: 1
-max_time: 300
+max_steps: 300
name: Sim_all_dumb
network_agents:
- agent_class: newsspread.DumbViewer
@@ -28,7 +28,7 @@ environment_params:
prob_neighbor_spread: 0.0
prob_tv_spread: 0.01
interval: 1
-max_time: 300
+max_steps: 300
name: Sim_half_herd
network_agents:
- agent_class: newsspread.DumbViewer
@@ -59,7 +59,7 @@ environment_params:
prob_neighbor_spread: 0.0
prob_tv_spread: 0.01
interval: 1
-max_time: 300
+max_steps: 300
name: Sim_all_herd
network_agents:
- agent_class: newsspread.HerdViewer
@@ -85,7 +85,7 @@ environment_params:
prob_tv_spread: 0.01
prob_neighbor_cure: 0.1
interval: 1
-max_time: 300
+max_steps: 300
name: Sim_wise_herd
network_agents:
- agent_class: newsspread.HerdViewer
@@ -110,7 +110,7 @@ environment_params:
prob_tv_spread: 0.01
prob_neighbor_cure: 0.1
interval: 1
-max_time: 300
+max_steps: 300
name: Sim_all_wise
network_agents:
- agent_class: newsspread.WiseViewer
diff --git a/examples/newsspread/newsspread.py b/examples/newsspread/newsspread.py
index c3b5e6b..14d666f 100644
--- a/examples/newsspread/newsspread.py
+++ b/examples/newsspread/newsspread.py
@@ -16,13 +16,13 @@ class DumbViewer(FSM, NetworkAgent):
@state
def neutral(self):
if self['has_tv']:
- if prob(self.env['prob_tv_spread']):
+ if self.prob(self.model['prob_tv_spread']):
return self.infected
@state
def infected(self):
for neighbor in self.get_neighboring_agents(state_id=self.neutral.id):
- if prob(self.env['prob_neighbor_spread']):
+ if self.prob(self.model['prob_neighbor_spread']):
neighbor.infect()
def infect(self):
@@ -44,9 +44,9 @@ class HerdViewer(DumbViewer):
'''Notice again that this is NOT a state. See DumbViewer.infect for reference'''
infected = self.count_neighboring_agents(state_id=self.infected.id)
total = self.count_neighboring_agents()
- prob_infect = self.env['prob_neighbor_spread'] * infected/total
+ prob_infect = self.model['prob_neighbor_spread'] * infected/total
self.debug('prob_infect', prob_infect)
- if prob(prob_infect):
+ if self.prob(prob_infect):
self.set_state(self.infected)
@@ -63,9 +63,9 @@ class WiseViewer(HerdViewer):
@state
def cured(self):
- prob_cure = self.env['prob_neighbor_cure']
+ prob_cure = self.model['prob_neighbor_cure']
for neighbor in self.get_neighboring_agents(state_id=self.infected.id):
- if prob(prob_cure):
+ if self.prob(prob_cure):
try:
neighbor.cure()
except AttributeError:
@@ -80,7 +80,7 @@ class WiseViewer(HerdViewer):
1.0)
infected = max(self.count_neighboring_agents(self.infected.id),
1.0)
- prob_cure = self.env['prob_neighbor_cure'] * (cured/infected)
- if prob(prob_cure):
+ prob_cure = self.model['prob_neighbor_cure'] * (cured/infected)
+ if self.prob(prob_cure):
return self.cured
return self.set_state(super().infected)
diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py
index 7fc5b5f..e100893 100644
--- a/examples/pubcrawl/pubcrawl.py
+++ b/examples/pubcrawl/pubcrawl.py
@@ -60,12 +60,10 @@ class Patron(FSM, NetworkAgent):
'''
level = logging.DEBUG
- defaults = {
- 'pub': None,
- 'drunk': False,
- 'pints': 0,
- 'max_pints': 3,
- }
+ pub = None
+ drunk = False
+ pints = 0
+ max_pints = 3
@default_state
@state
@@ -89,9 +87,9 @@ class Patron(FSM, NetworkAgent):
return self.sober_in_pub
self.debug('I am looking for a pub')
group = list(self.get_neighboring_agents())
- for pub in self.env.available_pubs():
+ for pub in self.model.available_pubs():
self.debug('We\'re trying to get into {}: total: {}'.format(pub, len(group)))
- if self.env.enter(pub, self, *group):
+ if self.model.enter(pub, self, *group):
self.info('We\'re all {} getting in {}!'.format(len(group), pub))
return self.sober_in_pub
@@ -128,7 +126,7 @@ class Patron(FSM, NetworkAgent):
success depend on both agents' openness.
'''
if force or self['openness'] > self.random.random():
- self.env.add_edge(self, other_agent)
+ self.model.add_edge(self, other_agent)
self.info('Made some friend {}'.format(other_agent))
return True
return False
@@ -150,7 +148,7 @@ class Patron(FSM, NetworkAgent):
return befriended
-class Police(FSM, NetworkAgent):
+class Police(FSM):
'''Simple agent to take drunk people out of pubs.'''
level = logging.INFO
diff --git a/examples/pubcrawl/pubcrawl.yml b/examples/pubcrawl/pubcrawl.yml
index 1f83f95..220b705 100644
--- a/examples/pubcrawl/pubcrawl.yml
+++ b/examples/pubcrawl/pubcrawl.yml
@@ -1,7 +1,7 @@
---
name: pubcrawl
num_trials: 3
-max_time: 10
+max_steps: 10
dump: false
network_params:
# Generate 100 empty nodes. They will be assigned a network agent
diff --git a/examples/rabbits/README.md b/examples/rabbits/README.md
new file mode 100644
index 0000000..42b6011
--- /dev/null
+++ b/examples/rabbits/README.md
@@ -0,0 +1,4 @@
+There are two similar implementations of this simulation.
+
+- `basic`. Using simple primites
+- `improved`. Using more advanced features such as the `time` module to avoid unnecessary computations (i.e., skip steps), and generator functions.
diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py
new file mode 100644
index 0000000..2d5cf40
--- /dev/null
+++ b/examples/rabbits/basic/rabbit_agents.py
@@ -0,0 +1,130 @@
+from soil.agents import FSM, state, default_state, BaseAgent, NetworkAgent
+from soil.time import Delta
+from enum import Enum
+from collections import Counter
+import logging
+import math
+
+
+class RabbitModel(FSM, NetworkAgent):
+
+ sexual_maturity = 30
+ life_expectancy = 300
+
+ @default_state
+ @state
+ def newborn(self):
+ self.info('I am a newborn.')
+ self.age = 0
+ self.offspring = 0
+ return self.youngling
+
+ @state
+ def youngling(self):
+ self.age += 1
+ if self.age >= self.sexual_maturity:
+ self.info(f'I am fertile! My age is {self.age}')
+ return self.fertile
+
+ @state
+ def fertile(self):
+ raise Exception("Each subclass should define its fertile state")
+
+ @state
+ def dead(self):
+ self.die()
+
+
+class Male(RabbitModel):
+ max_females = 5
+ mating_prob = 0.001
+
+ @state
+ def fertile(self):
+ self.age += 1
+
+ if self.age > self.life_expectancy:
+ return self.dead
+
+ # Males try to mate
+ for f in self.model.agents(agent_class=Female,
+ state_id=Female.fertile.id,
+ limit=self.max_females):
+ self.debug('FOUND A FEMALE: ', repr(f), self.mating_prob)
+ if self.prob(self['mating_prob']):
+ f.impregnate(self)
+ break # Take a break
+
+
+class Female(RabbitModel):
+ gestation = 100
+
+ @state
+ def fertile(self):
+ # Just wait for a Male
+ self.age += 1
+ if self.age > self.life_expectancy:
+ return self.dead
+
+ def impregnate(self, male):
+ self.info(f'{repr(male)} impregnating female {repr(self)}')
+ self.mate = male
+ self.pregnancy = -1
+ self.set_state(self.pregnant, when=self.now)
+ self.number_of_babies = int(8+4*self.random.random())
+ self.debug('I am pregnant')
+
+ @state
+ def pregnant(self):
+ self.age += 1
+ self.pregnancy += 1
+
+ if self.prob(self.age / self.life_expectancy):
+ return self.die()
+
+ if self.pregnancy >= self.gestation:
+ self.info('Having {} babies'.format(self.number_of_babies))
+ for i in range(self.number_of_babies):
+ state = {}
+ agent_class = self.random.choice([Male, Female])
+ child = self.model.add_node(agent_class=agent_class,
+ topology=self.topology,
+ **state)
+ child.add_edge(self)
+ try:
+ child.add_edge(self.mate)
+ self.model.agents[self.mate].offspring += 1
+ except ValueError:
+ self.debug('The father has passed away')
+
+ self.offspring += 1
+ self.mate = None
+ return self.fertile
+
+ @state
+ def dead(self):
+ super().dead()
+ if 'pregnancy' in self and self['pregnancy'] > -1:
+ self.info('A mother has died carrying a baby!!')
+
+
+class RandomAccident(BaseAgent):
+
+ level = logging.INFO
+
+ def step(self):
+ rabbits_alive = self.model.topology.number_of_nodes()
+
+ if not rabbits_alive:
+ return self.die()
+
+ prob_death = self.model.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive)))
+ self.debug('Killing some rabbits with prob={}!'.format(prob_death))
+ for i in self.iter_agents(agent_class=RabbitModel):
+ if i.state.id == i.dead.id:
+ continue
+ if self.prob(prob_death):
+ self.info('I killed a rabbit: {}'.format(i.id))
+ rabbits_alive -= 1
+ i.set_state(i.dead)
+ self.debug('Rabbits alive: {}'.format(rabbits_alive))
diff --git a/examples/rabbits/basic/rabbits.yml b/examples/rabbits/basic/rabbits.yml
new file mode 100644
index 0000000..facaefe
--- /dev/null
+++ b/examples/rabbits/basic/rabbits.yml
@@ -0,0 +1,41 @@
+---
+version: '2'
+name: rabbits_basic
+num_trials: 1
+seed: MySeed
+description: null
+group: null
+interval: 1.0
+max_time: 100
+model_class: soil.environment.Environment
+model_params:
+ agents:
+ topology: default
+ agent_class: rabbit_agents.RabbitModel
+ distribution:
+ - agent_class: rabbit_agents.Male
+ topology: default
+ weight: 1
+ - agent_class: rabbit_agents.Female
+ topology: default
+ weight: 1
+ fixed:
+ - agent_class: rabbit_agents.RandomAccident
+ topology: null
+ hidden: true
+ state:
+ group: environment
+ state:
+ group: network
+ mating_prob: 0.1
+ prob_death: 0.001
+ topologies:
+ default:
+ topology:
+ directed: true
+ links: []
+ nodes:
+ - id: 1
+ - id: 0
+extra:
+ visualization_params: {}
diff --git a/examples/rabbits/improved/rabbit_agents.py b/examples/rabbits/improved/rabbit_agents.py
new file mode 100644
index 0000000..d97b7e7
--- /dev/null
+++ b/examples/rabbits/improved/rabbit_agents.py
@@ -0,0 +1,130 @@
+from soil.agents import FSM, state, default_state, BaseAgent, NetworkAgent
+from soil.time import Delta, When, NEVER
+from enum import Enum
+import logging
+import math
+
+
+class RabbitModel(FSM, NetworkAgent):
+
+ mating_prob = 0.005
+ offspring = 0
+ birth = None
+
+ sexual_maturity = 3
+ life_expectancy = 30
+
+ @default_state
+ @state
+ def newborn(self):
+ self.birth = self.now
+ self.info(f'I am a newborn.')
+ self.model['rabbits_alive'] = self.model.get('rabbits_alive', 0) + 1
+
+ # Here we can skip the `youngling` state by using a coroutine/generator.
+ while self.age < self.sexual_maturity:
+ interval = self.sexual_maturity - self.age
+ yield Delta(interval)
+
+ self.info(f'I am fertile! My age is {self.age}')
+ return self.fertile
+
+ @property
+ def age(self):
+ return self.now - self.birth
+
+ @state
+ def fertile(self):
+ raise Exception("Each subclass should define its fertile state")
+
+ def step(self):
+ super().step()
+ if self.prob(self.age / self.life_expectancy):
+ return self.die()
+
+
+class Male(RabbitModel):
+
+ max_females = 5
+
+ @state
+ def fertile(self):
+ # Males try to mate
+ for f in self.model.agents(agent_class=Female,
+ state_id=Female.fertile.id,
+ limit=self.max_females):
+ self.debug('Found a female:', repr(f))
+ if self.prob(self['mating_prob']):
+ f.impregnate(self)
+ break # Take a break, don't try to impregnate the rest
+
+
+class Female(RabbitModel):
+ due_date = None
+ age_of_pregnancy = None
+ gestation = 10
+ mate = None
+
+ @state
+ def fertile(self):
+ return self.fertile, NEVER
+
+ @state
+ def pregnant(self):
+ self.info('I am pregnant')
+ if self.age > self.life_expectancy:
+ return self.dead
+
+ self.due_date = self.now + self.gestation
+
+ number_of_babies = int(8+4*self.random.random())
+
+ while self.now < self.due_date:
+ yield When(self.due_date)
+
+ self.info('Having {} babies'.format(number_of_babies))
+ for i in range(number_of_babies):
+ agent_class = self.random.choice([Male, Female])
+ child = self.model.add_node(agent_class=agent_class,
+ topology=self.topology)
+ self.model.add_edge(self, child)
+ self.model.add_edge(self.mate, child)
+ self.offspring += 1
+ self.model.agents[self.mate].offspring += 1
+ self.mate = None
+ self.due_date = None
+ return self.fertile
+
+ @state
+ def dead(self):
+ super().dead()
+ if self.due_date is not None:
+ self.info('A mother has died carrying a baby!!')
+
+ def impregnate(self, male):
+ self.info(f'{repr(male)} impregnating female {repr(self)}')
+ self.mate = male
+ self.set_state(self.pregnant, when=self.now)
+
+
+class RandomAccident(BaseAgent):
+
+ level = logging.INFO
+
+ def step(self):
+ rabbits_total = self.model.topology.number_of_nodes()
+ if 'rabbits_alive' not in self.model:
+ self.model['rabbits_alive'] = 0
+ rabbits_alive = self.model.get('rabbits_alive', rabbits_total)
+ prob_death = self.model.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive)))
+ self.debug('Killing some rabbits with prob={}!'.format(prob_death))
+ for i in self.model.network_agents:
+ if i.state.id == i.dead.id:
+ continue
+ if self.prob(prob_death):
+ self.info('I killed a rabbit: {}'.format(i.id))
+ rabbits_alive = self.model['rabbits_alive'] = rabbits_alive -1
+ i.set_state(i.dead)
+ self.debug('Rabbits alive: {}/{}'.format(rabbits_alive, rabbits_total))
+ if self.model.count_agents(state_id=RabbitModel.dead.id) == self.model.topology.number_of_nodes():
+ self.die()
diff --git a/examples/rabbits/improved/rabbits.yml b/examples/rabbits/improved/rabbits.yml
new file mode 100644
index 0000000..ce5dd68
--- /dev/null
+++ b/examples/rabbits/improved/rabbits.yml
@@ -0,0 +1,41 @@
+---
+version: '2'
+name: rabbits_improved
+num_trials: 1
+seed: MySeed
+description: null
+group: null
+interval: 1.0
+max_time: 100
+model_class: soil.environment.Environment
+model_params:
+ agents:
+ topology: default
+ agent_class: rabbit_agents.RabbitModel
+ distribution:
+ - agent_class: rabbit_agents.Male
+ topology: default
+ weight: 1
+ - agent_class: rabbit_agents.Female
+ topology: default
+ weight: 1
+ fixed:
+ - agent_class: rabbit_agents.RandomAccident
+ topology: null
+ hidden: true
+ state:
+ group: environment
+ state:
+ group: network
+ mating_prob: 0.1
+ prob_death: 0.001
+ topologies:
+ default:
+ topology:
+ directed: true
+ links: []
+ nodes:
+ - id: 1
+ - id: 0
+extra:
+ visualization_params: {}
diff --git a/examples/rabbits/rabbit_agents.py b/examples/rabbits/rabbit_agents.py
deleted file mode 100644
index df371b2..0000000
--- a/examples/rabbits/rabbit_agents.py
+++ /dev/null
@@ -1,133 +0,0 @@
-from soil.agents import FSM, state, default_state, BaseAgent, NetworkAgent
-from enum import Enum
-import logging
-import math
-
-
-class Genders(Enum):
- male = 'male'
- female = 'female'
-
-
-class RabbitModel(FSM, NetworkAgent):
-
- defaults = {
- 'age': 0,
- 'gender': Genders.male.value,
- 'mating_prob': 0.001,
- 'offspring': 0,
- }
-
- sexual_maturity = 3 #4*30
- life_expectancy = 365 * 3
- gestation = 33
- pregnancy = -1
- max_females = 5
-
- @default_state
- @state
- def newborn(self):
- self.debug(f'I am a newborn at age {self["age"]}')
- self['age'] += 1
-
- if self['age'] >= self.sexual_maturity:
- self.debug('I am fertile!')
- return self.fertile
- @state
- def fertile(self):
- raise Exception("Each subclass should define its fertile state")
-
- @state
- def dead(self):
- self.info('Agent {} is dying'.format(self.id))
- self.die()
-
-
-class Male(RabbitModel):
-
- @state
- def fertile(self):
- self['age'] += 1
- if self['age'] > self.life_expectancy:
- return self.dead
-
- if self['gender'] == Genders.female.value:
- return
-
- # Males try to mate
- for f in self.get_agents(state_id=Female.fertile.id,
- agent_class=Female,
- limit_neighbors=False,
- limit=self.max_females):
- r = self.random.random()
- if r < self['mating_prob']:
- self.impregnate(f)
- break # Take a break
- def impregnate(self, whom):
- whom['pregnancy'] = 0
- whom['mate'] = self.id
- whom.set_state(whom.pregnant)
- self.debug('{} impregnating: {}. {}'.format(self.id, whom.id, whom.state))
-
-class Female(RabbitModel):
- @state
- def fertile(self):
- # Just wait for a Male
- pass
-
- @state
- def pregnant(self):
- self['age'] += 1
- if self['age'] > self.life_expectancy:
- return self.dead
-
- self['pregnancy'] += 1
- self.debug('Pregnancy: {}'.format(self['pregnancy']))
- if self['pregnancy'] >= self.gestation:
- number_of_babies = int(8+4*self.random.random())
- self.info('Having {} babies'.format(number_of_babies))
- for i in range(number_of_babies):
- state = {}
- state['gender'] = self.random.choice(list(Genders)).value
- child = self.env.add_node(self.__class__, state)
- self.env.add_edge(self.id, child.id)
- self.env.add_edge(self['mate'], child.id)
- # self.add_edge()
- self.debug('A BABY IS COMING TO LIFE')
- self.env['rabbits_alive'] = self.env.get('rabbits_alive', self.topology.number_of_nodes())+1
- self.debug('Rabbits alive: {}'.format(self.env['rabbits_alive']))
- self['offspring'] += 1
- self.env.get_agent(self['mate'])['offspring'] += 1
- del self['mate']
- self['pregnancy'] = -1
- return self.fertile
-
- @state
- def dead(self):
- super().dead()
- if 'pregnancy' in self and self['pregnancy'] > -1:
- self.info('A mother has died carrying a baby!!')
-
-
-class RandomAccident(BaseAgent):
-
- level = logging.DEBUG
-
- def step(self):
- rabbits_total = self.env.topology.number_of_nodes()
- if 'rabbits_alive' not in self.env:
- self.env['rabbits_alive'] = 0
- rabbits_alive = self.env.get('rabbits_alive', rabbits_total)
- prob_death = self.env.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive)))
- self.debug('Killing some rabbits with prob={}!'.format(prob_death))
- for i in self.env.network_agents:
- if i.state['id'] == i.dead.id:
- continue
- if self.prob(prob_death):
- self.debug('I killed a rabbit: {}'.format(i.id))
- rabbits_alive = self.env['rabbits_alive'] = rabbits_alive -1
- self.log('Rabbits alive: {}'.format(self.env['rabbits_alive']))
- i.set_state(i.dead)
- self.log('Rabbits alive: {}/{}'.format(rabbits_alive, rabbits_total))
- if self.env.count_agents(state_id=RabbitModel.dead.id) == self.env.topology.number_of_nodes():
- self.die()
diff --git a/examples/rabbits/rabbits.yml b/examples/rabbits/rabbits.yml
deleted file mode 100644
index 1b1d148..0000000
--- a/examples/rabbits/rabbits.yml
+++ /dev/null
@@ -1,20 +0,0 @@
----
-name: rabbits_example
-max_time: 100
-interval: 1
-seed: MySeed
-agent_class: rabbit_agents.RabbitModel
-environment_agents:
- - agent_class: rabbit_agents.RandomAccident
-environment_params:
- prob_death: 0.001
-default_state:
- mating_prob: 0.1
-topology:
- nodes:
- - id: 1
- agent_class: rabbit_agents.Male
- - id: 0
- agent_class: rabbit_agents.Female
- directed: true
- links: []
diff --git a/examples/template.yml b/examples/template.yml
index a307eff..2b1f2b7 100644
--- a/examples/template.yml
+++ b/examples/template.yml
@@ -6,20 +6,20 @@ template:
group: simple
num_trials: 1
interval: 1
- max_time: 2
+ max_steps: 2
seed: "CompleteSeed!"
dump: false
- network_params:
- generator: complete_graph
- n: 10
- network_agents:
- - agent_class: CounterModel
- weight: "{{ x1 }}"
- state:
- state_id: 0
- - agent_class: AggregatedCounter
- weight: "{{ 1 - x1 }}"
- environment_params:
+ model_params:
+ network_params:
+ generator: complete_graph
+ n: 10
+ network_agents:
+ - agent_class: CounterModel
+ weight: "{{ x1 }}"
+ state:
+ state_id: 0
+ - agent_class: AggregatedCounter
+ weight: "{{ 1 - x1 }}"
name: "{{ x3 }}"
skip_test: true
vars:
diff --git a/examples/terrorism/TerroristNetworkModel.py b/examples/terrorism/TerroristNetworkModel.py
index 2fa6de4..bf5045f 100644
--- a/examples/terrorism/TerroristNetworkModel.py
+++ b/examples/terrorism/TerroristNetworkModel.py
@@ -81,6 +81,26 @@ class TerroristSpreadModel(FSM, Geo):
return
return self.leader
+ def ego_search(self, steps=1, center=False, node=None, **kwargs):
+ '''Get a list of nodes in the ego network of *node* of radius *steps*'''
+ node = as_node(node if node is not None else self)
+ G = self.subgraph(**kwargs)
+ return nx.ego_graph(G, node, center=center, radius=steps).nodes()
+
+ def degree(self, node, force=False):
+ node = as_node(node)
+ if force or (not hasattr(self.model, '_degree')) or getattr(self.model, '_last_step', 0) < self.now:
+ self.model._degree = nx.degree_centrality(self.G)
+ self.model._last_step = self.now
+ return self.model._degree[node]
+
+ def betweenness(self, node, force=False):
+ node = as_node(node)
+ if force or (not hasattr(self.model, '_betweenness')) or getattr(self.model, '_last_step', 0) < self.now:
+ self.model._betweenness = nx.betweenness_centrality(self.G)
+ self.model._last_step = self.now
+ return self.model._betweenness[node]
+
class TrainingAreaModel(FSM, Geo):
"""
@@ -194,14 +214,14 @@ class TerroristNetworkModel(TerroristSpreadModel):
break
def get_distance(self, target):
- source_x, source_y = nx.get_node_attributes(self.topology, 'pos')[self.id]
- target_x, target_y = nx.get_node_attributes(self.topology, 'pos')[target]
+ source_x, source_y = nx.get_node_attributes(self.G, 'pos')[self.id]
+ target_x, target_y = nx.get_node_attributes(self.G, 'pos')[target]
dx = abs( source_x - target_x )
dy = abs( source_y - target_y )
return ( dx ** 2 + dy ** 2 ) ** ( 1 / 2 )
def shortest_path_length(self, target):
try:
- return nx.shortest_path_length(self.topology, self.id, target)
+ return nx.shortest_path_length(self.G, self.id, target)
except nx.NetworkXNoPath:
return float('inf')
diff --git a/examples/terrorism/TerroristNetworkModel.yml b/examples/terrorism/TerroristNetworkModel.yml
index b5a3d09..f709766 100644
--- a/examples/terrorism/TerroristNetworkModel.yml
+++ b/examples/terrorism/TerroristNetworkModel.yml
@@ -1,31 +1,31 @@
name: TerroristNetworkModel_sim
-max_time: 150
+max_steps: 150
num_trials: 1
-network_params:
- generator: random_geometric_graph
- radius: 0.2
- # generator: geographical_threshold_graph
- # theta: 20
- n: 100
-network_agents:
- - agent_class: TerroristNetworkModel.TerroristNetworkModel
- weight: 0.8
- state:
- id: civilian # Civilians
- - agent_class: TerroristNetworkModel.TerroristNetworkModel
- weight: 0.1
- state:
- id: leader # Leaders
- - agent_class: TerroristNetworkModel.TrainingAreaModel
- weight: 0.05
- state:
- id: terrorist # Terrorism
- - agent_class: TerroristNetworkModel.HavenModel
- weight: 0.05
- state:
- id: civilian # Civilian
+model_params:
+ network_params:
+ generator: random_geometric_graph
+ radius: 0.2
+ # generator: geographical_threshold_graph
+ # theta: 20
+ n: 100
+ network_agents:
+ - agent_class: TerroristNetworkModel.TerroristNetworkModel
+ weight: 0.8
+ state:
+ id: civilian # Civilians
+ - agent_class: TerroristNetworkModel.TerroristNetworkModel
+ weight: 0.1
+ state:
+ id: leader # Leaders
+ - agent_class: TerroristNetworkModel.TrainingAreaModel
+ weight: 0.05
+ state:
+ id: terrorist # Terrorism
+ - agent_class: TerroristNetworkModel.HavenModel
+ weight: 0.05
+ state:
+ id: civilian # Civilian
-environment_params:
# TerroristSpreadModel
information_spread_intensity: 0.7
terrorist_additional_influence: 0.035
diff --git a/examples/torvalds.yml b/examples/torvalds.yml
index 421e2ac..3073d8c 100644
--- a/examples/torvalds.yml
+++ b/examples/torvalds.yml
@@ -1,14 +1,15 @@
---
name: torvalds_example
-max_time: 10
+max_steps: 10
interval: 2
-agent_class: CounterModel
-default_state:
- skill_level: 'beginner'
-network_params:
- path: 'torvalds.edgelist'
-states:
- Torvalds:
- skill_level: 'God'
- balkian:
- skill_level: 'developer'
+model_params:
+ agent_class: CounterModel
+ default_state:
+ skill_level: 'beginner'
+ network_params:
+ path: 'torvalds.edgelist'
+ states:
+ Torvalds:
+ skill_level: 'God'
+ balkian:
+ skill_level: 'developer'
diff --git a/requirements.txt b/requirements.txt
index 31f12d5..8383887 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -2,8 +2,9 @@ networkx>=2.5
numpy
matplotlib
pyyaml>=5.1
-pandas>=0.23
+pandas>=1
SALib>=1.3
Jinja2
-Mesa>=0.8.9
+Mesa>=1
pydantic>=1.9
+sqlalchemy>=1.4
diff --git a/soil/__init__.py b/soil/__init__.py
index 44b548f..9219e04 100644
--- a/soil/__init__.py
+++ b/soil/__init__.py
@@ -1,8 +1,10 @@
+from __future__ import annotations
+
import importlib
import sys
import os
-import pdb
import logging
+import traceback
from .version import __version__
@@ -16,11 +18,10 @@ from . import agents
from .simulation import *
from .environment import Environment
from . import serialization
-from . import analysis
from .utils import logger
from .time import *
-def main():
+def main(cfg='simulation.yml', **kwargs):
import argparse
from . import simulation
@@ -29,7 +30,7 @@ def main():
parser = argparse.ArgumentParser(description='Run a SOIL simulation')
parser.add_argument('file', type=str,
nargs="?",
- default='simulation.yml',
+ default=cfg,
help='Configuration file for the simulation (e.g., YAML or JSON)')
parser.add_argument('--version', action='store_true',
help='Show version info and exit')
@@ -39,6 +40,8 @@ def main():
help='Do not store the results of the simulation to disk, show in terminal instead.')
parser.add_argument('--pdb', action='store_true',
help='Use a pdb console in case of exception.')
+ parser.add_argument('--debug', action='store_true',
+ help='Run a customized version of a pdb console to debug a simulation.')
parser.add_argument('--graph', '-g', action='store_true',
help='Dump each trial\'s network topology as a GEXF graph. Defaults to false.')
parser.add_argument('--csv', action='store_true',
@@ -51,9 +54,22 @@ def main():
help='Run trials serially and synchronously instead of in parallel. Defaults to false.')
parser.add_argument('-e', '--exporter', action='append',
help='Export environment and/or simulations using this exporter')
+ parser.add_argument('--only-convert', '--convert', action='store_true',
+ help='Do not run the simulation, only convert the configuration file(s) and output them.')
+
+
+ parser.add_argument("--set",
+ metavar="KEY=VALUE",
+ action='append',
+ help="Set a number of parameters that will be passed to the simulation."
+ "(do not put spaces before or after the = sign). "
+ "If a value contains spaces, you should define "
+ "it with double quotes: "
+ 'foo="this is a sentence". Note that '
+ "values are always treated as strings.")
args = parser.parse_args()
- logging.basicConfig(level=getattr(logging, (args.level or 'INFO').upper()))
+ logger.setLevel(getattr(logging, (args.level or 'INFO').upper()))
if args.version:
return
@@ -65,9 +81,10 @@ def main():
logger.info('Loading config file: {}'.format(args.file))
- if args.pdb:
+ if args.pdb or args.debug:
args.synchronous = True
-
+ if args.debug:
+ os.environ['SOIL_DEBUG'] = 'true'
try:
exporters = list(args.exporter or ['default', ])
@@ -82,18 +99,48 @@ def main():
if not os.path.exists(args.file):
logger.error('Please, input a valid file')
return
- simulation.run_from_config(args.file,
- dry_run=args.dry_run,
- exporters=exporters,
- parallel=(not args.synchronous),
- outdir=args.output,
- exporter_params=exp_params)
- except Exception:
+ for sim in simulation.iter_from_config(args.file):
+ if args.set:
+ for s in args.set:
+ k, v = s.split('=', 1)[:2]
+ v = eval(v)
+ tail, *head = k.rsplit('.', 1)[::-1]
+ target = sim
+ if head:
+ for part in head[0].split('.'):
+ try:
+ target = getattr(target, part)
+ except AttributeError:
+ target = target[part]
+ try:
+ setattr(target, tail, v)
+ except AttributeError:
+ target[tail] = v
+
+ if args.only_convert:
+ print(sim.to_yaml())
+ continue
+
+ sim.run_simulation(dry_run=args.dry_run,
+ exporters=exporters,
+ parallel=(not args.synchronous),
+ outdir=args.output,
+ exporter_params=exp_params,
+ **kwargs)
+
+ except Exception as ex:
if args.pdb:
- pdb.post_mortem()
+ from .debugging import post_mortem
+ print(traceback.format_exc())
+ post_mortem()
else:
raise
-
+def easy(cfg, debug=False):
+ sim = simulation.from_config(cfg)
+ if debug or os.environ.get('SOIL_DEBUG'):
+ from .debugging import setup
+ setup(sys._getframe().f_back)
+ return sim
if __name__ == '__main__':
main()
diff --git a/soil/agents/CounterModel.py b/soil/agents/CounterModel.py
index d2edc1b..97c7356 100644
--- a/soil/agents/CounterModel.py
+++ b/soil/agents/CounterModel.py
@@ -7,15 +7,13 @@ class CounterModel(NetworkAgent):
in each step and adds it to its state.
"""
- defaults = {
- 'times': 0,
- 'neighbors': 0,
- 'total': 0
- }
+ times = 0
+ neighbors = 0
+ total = 0
def step(self):
# Outside effects
- total = len(list(self.env.agents))
+ total = len(list(self.model.schedule._agents))
neighbors = len(list(self.get_neighboring_agents()))
self['times'] = self.get('times', 0) + 1
self['neighbors'] = neighbors
@@ -28,17 +26,15 @@ class AggregatedCounter(NetworkAgent):
in each step and adds it to its state.
"""
- defaults = {
- 'times': 0,
- 'neighbors': 0,
- 'total': 0
- }
+ times = 0
+ neighbors = 0
+ total = 0
def step(self):
# Outside effects
self['times'] += 1
neighbors = len(list(self.get_neighboring_agents()))
self['neighbors'] += neighbors
- total = len(list(self.env.agents))
+ total = len(list(self.model.schedule.agents))
self['total'] += total
self.debug('Running for step: {}. Total: {}'.format(self.now, total))
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index 213c345..c7763f2 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -1,3 +1,5 @@
+from __future__ import annotations
+
import logging
from collections import OrderedDict, defaultdict
from collections.abc import MutableMapping, Mapping, Set
@@ -5,9 +7,13 @@ from abc import ABCMeta
from copy import deepcopy, copy
from functools import partial, wraps
from itertools import islice, chain
-import json
+import inspect
+import types
+import textwrap
import networkx as nx
+from typing import Any
+
from mesa import Agent as MesaAgent
from typing import Dict, List
@@ -27,7 +33,31 @@ class DeadAgent(Exception):
pass
-class BaseAgent(MesaAgent, MutableMapping):
+class MetaAgent(ABCMeta):
+ def __new__(mcls, name, bases, namespace):
+ defaults = {}
+
+ # Re-use defaults from inherited classes
+ for i in bases:
+ if isinstance(i, MetaAgent):
+ defaults.update(i._defaults)
+
+ new_nmspc = {
+ '_defaults': defaults,
+ }
+
+ for attr, func in namespace.items():
+ if isinstance(func, types.FunctionType) or isinstance(func, property) or attr[0] == '_':
+ new_nmspc[attr] = func
+ elif attr == 'defaults':
+ defaults.update(func)
+ else:
+ defaults[attr] = copy(func)
+
+ return super().__new__(mcls=mcls, name=name, bases=bases, namespace=new_nmspc)
+
+
+class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
"""
A special type of Mesa Agent that:
@@ -39,15 +69,12 @@ class BaseAgent(MesaAgent, MutableMapping):
Any attribute that is not preceded by an underscore (`_`) will also be added to its state.
"""
- defaults = {}
-
def __init__(self,
unique_id,
model,
name=None,
interval=None,
- **kwargs
- ):
+ **kwargs):
# Check for REQUIRED arguments
# Initialize agent parameters
if isinstance(unique_id, MesaAgent):
@@ -58,15 +85,16 @@ class BaseAgent(MesaAgent, MutableMapping):
self.name = str(name) if name else'{}[{}]'.format(type(self).__name__, self.unique_id)
- self._neighbors = None
self.alive = True
self.interval = interval or self.get('interval', 1)
- self.logger = logging.getLogger(self.model.id).getChild(self.name)
+ logger = utils.logger.getChild(getattr(self.model, 'id', self.model)).getChild(self.name)
+ self.logger = logging.LoggerAdapter(logger, {'agent_name': self.name})
if hasattr(self, 'level'):
self.logger.setLevel(self.level)
- for (k, v) in self.defaults.items():
+
+ for (k, v) in self._defaults.items():
if not hasattr(self, k) or getattr(self, k) is None:
setattr(self, k, deepcopy(v))
@@ -74,10 +102,6 @@ class BaseAgent(MesaAgent, MutableMapping):
setattr(self, k, v)
- for (k, v) in getattr(self, 'defaults', {}).items():
- if not hasattr(self, k) or getattr(self, k) is None:
- setattr(self, k, v)
-
def __hash__(self):
return hash(self.unique_id)
@@ -89,14 +113,6 @@ class BaseAgent(MesaAgent, MutableMapping):
def id(self):
return self.unique_id
- @property
- def env(self):
- return self.model
-
- @env.setter
- def env(self, model):
- self.model = model
-
@property
def state(self):
'''
@@ -108,19 +124,16 @@ class BaseAgent(MesaAgent, MutableMapping):
@state.setter
def state(self, value):
+ if not value:
+ return
for k, v in value.items():
self[k] = v
- @property
- def environment_params(self):
- return self.model.environment_params
-
- @environment_params.setter
- def environment_params(self, value):
- self.model.environment_params = value
-
def __getitem__(self, key):
- return getattr(self, key)
+ try:
+ return getattr(self, key)
+ except AttributeError:
+ raise KeyError(f'key {key} not found in agent')
def __delitem__(self, key):
return delattr(self, key)
@@ -138,11 +151,15 @@ class BaseAgent(MesaAgent, MutableMapping):
return self.items()
def keys(self):
- return (k for k in self.__dict__ if k[0] != '_')
-
- def items(self):
- return ((k, v) for (k, v) in self.__dict__.items() if k[0] != '_')
+ return (k for k in self.__dict__ if k[0] != '_' and k not in IGNORED_FIELDS)
+ def items(self, keys=None, skip=None):
+ keys = keys if keys is not None else self.keys()
+ it = ((k, self.get(k, None)) for k in keys)
+ if skip:
+ return filter(lambda x: x[0] not in skip, it)
+ return it
+
def get(self, key, default=None):
return self[key] if key in self else default
@@ -154,11 +171,9 @@ class BaseAgent(MesaAgent, MutableMapping):
# No environment
return None
- def die(self, remove=False):
- self.info(f'agent {self.unique_id} is dying')
+ def die(self):
+ self.info(f'agent dying')
self.alive = False
- if remove:
- self.remove_node(self.id)
return time.NEVER
def step(self):
@@ -170,7 +185,7 @@ class BaseAgent(MesaAgent, MutableMapping):
if not self.logger.isEnabledFor(level):
return
message = message + " ".join(str(i) for i in args)
- message = " @{:>3}: {}".format(self.now, message)
+ message = "[@{:>4}]\t{:>10}: {}".format(self.now, repr(self), message)
for k, v in kwargs:
message += " {k}={v} ".format(k, v)
extra = {}
@@ -179,33 +194,48 @@ class BaseAgent(MesaAgent, MutableMapping):
extra['agent_name'] = self.name
return self.logger.log(level, message, extra=extra)
-
-
def debug(self, *args, **kwargs):
return self.log(*args, level=logging.DEBUG, **kwargs)
def info(self, *args, **kwargs):
return self.log(*args, level=logging.INFO, **kwargs)
-# Alias
-# Agent = BaseAgent
+ def count_agents(self, **kwargs):
+ return len(list(self.get_agents(**kwargs)))
+
+ def get_agents(self, *args, **kwargs):
+ it = self.iter_agents(*args, **kwargs)
+ return list(it)
+
+ def iter_agents(self, *args, **kwargs):
+ yield from filter_agents(self.model.schedule._agents, *args, **kwargs)
+
+ def __str__(self):
+ return self.to_str()
+
+ def to_str(self, keys=None, skip=None, pretty=False):
+ content = dict(self.items(keys=keys))
+ if pretty and content:
+ d = content
+ content = '\n'
+ for k, v in d.items():
+ content += f'- {k}: {v}\n'
+ content = textwrap.indent(content, ' ')
+ return f"{repr(self)}{content}"
+
+ def __repr__(self):
+ return f"{self.__class__.__name__}({self.unique_id})"
+
class NetworkAgent(BaseAgent):
- @property
- def topology(self):
- return self.env.topology_for(self.unique_id)
+ def __init__(self, *args, topology, node_id, **kwargs):
+ super().__init__(*args, **kwargs)
- @property
- def node_id(self):
- return self.env.node_id_for(self.unique_id)
-
- @property
- def G(self):
- return self.model.topologies[self._topology]
-
- def count_agents(self, **kwargs):
- return len(list(self.get_agents(**kwargs)))
+ self.topology = topology
+ self.node_id = node_id
+ self.G = self.model.topologies[topology]
+ assert self.G
def count_neighboring_agents(self, state_id=None, **kwargs):
return len(self.get_neighboring_agents(state_id=state_id, **kwargs))
@@ -213,57 +243,47 @@ class NetworkAgent(BaseAgent):
def get_neighboring_agents(self, state_id=None, **kwargs):
return self.get_agents(limit_neighbors=True, state_id=state_id, **kwargs)
- def get_agents(self, *args, limit=None, **kwargs):
- it = self.iter_agents(*args, **kwargs)
- if limit is not None:
- it = islice(it, limit)
- return list(it)
-
def iter_agents(self, unique_id=None, limit_neighbors=False, **kwargs):
+ unique_ids = None
+ if isinstance(unique_id, list):
+ unique_ids = set(unique_id)
+ elif unique_id is not None:
+ unique_ids = set([unique_id,])
+
if limit_neighbors:
- unique_id = [self.topology.nodes[node]['agent_id'] for node in self.topology.neighbors(self.node_id)]
- if not unique_id:
+ neighbor_ids = set()
+ for node_id in self.G.neighbors(self.node_id):
+ if self.G.nodes[node_id].get('agent_id') is not None:
+ neighbor_ids.add(node_id)
+ if unique_ids:
+ unique_ids = unique_ids & neighbor_ids
+ else:
+ unique_ids = neighbor_ids
+ if not unique_ids:
return
-
- yield from self.model.agents(unique_id=unique_id, **kwargs)
-
+ unique_ids = list(unique_ids)
+ yield from super().iter_agents(unique_id=unique_ids, **kwargs)
def subgraph(self, center=True, **kwargs):
include = [self] if center else []
- G = self.topology.subgraph(n.node_id for n in list(self.get_agents(**kwargs)+include))
+ G = self.G.subgraph(n.node_id for n in list(self.get_agents(**kwargs)+include))
return G
- def remove_node(self, unique_id):
- self.topology.remove_node(unique_id)
+ def remove_node(self):
+ self.G.remove_node(self.node_id)
def add_edge(self, other, edge_attr_dict=None, *edge_attrs):
- # return super(NetworkAgent, self).add_edge(node1=self.id, node2=other, **kwargs)
- if self.unique_id not in self.topology.nodes(data=False):
+ if self.node_id not in self.G.nodes(data=False):
raise ValueError('{} not in list of existing agents in the network'.format(self.unique_id))
- if other.unique_id not in self.topology.nodes(data=False):
+ if other.node_id not in self.G.nodes(data=False):
raise ValueError('{} not in list of existing agents in the network'.format(other))
- self.topology.add_edge(self.unique_id, other.unique_id, edge_attr_dict=edge_attr_dict, *edge_attrs)
+ self.G.add_edge(self.node_id, other.node_id, edge_attr_dict=edge_attr_dict, *edge_attrs)
- def ego_search(self, steps=1, center=False, node=None, **kwargs):
- '''Get a list of nodes in the ego network of *node* of radius *steps*'''
- node = as_node(node if node is not None else self)
- G = self.subgraph(**kwargs)
- return nx.ego_graph(G, node, center=center, radius=steps).nodes()
-
- def degree(self, node, force=False):
- node = as_node(node)
- if force or (not hasattr(self.model, '_degree')) or getattr(self.model, '_last_step', 0) < self.now:
- self.model._degree = nx.degree_centrality(self.topology)
- self.model._last_step = self.now
- return self.model._degree[node]
-
- def betweenness(self, node, force=False):
- node = as_node(node)
- if force or (not hasattr(self.model, '_betweenness')) or getattr(self.model, '_last_step', 0) < self.now:
- self.model._betweenness = nx.betweenness_centrality(self.topology)
- self.model._last_step = self.now
- return self.model._betweenness[node]
+ def die(self, remove=True):
+ if remove:
+ self.remove_node()
+ return super().die()
def state(name=None):
@@ -273,24 +293,29 @@ def state(name=None):
The default value for state_id is the current state id.
The default value for when is the interval defined in the environment.
'''
+ if inspect.isgeneratorfunction(func):
+ orig_func = func
- @wraps(func)
- def func_wrapper(self):
- next_state = func(self)
- when = None
- if next_state is None:
- return when
- try:
- next_state, when = next_state
- except (ValueError, TypeError):
- pass
- if next_state:
- self.set_state(next_state)
- return when
+ @wraps(func)
+ def func(self):
+ while True:
+ if not self._coroutine:
+ self._coroutine = orig_func(self)
+ try:
+ n = next(self._coroutine)
+ if n:
+ return None, n
+ return
+ except StopIteration as ex:
+ self._coroutine = None
+ next_state = ex.value
+ if next_state is not None:
+ self.set_state(next_state)
+ return next_state
- func_wrapper.id = name or func.__name__
- func_wrapper.is_default = False
- return func_wrapper
+ func.id = name or func.__name__
+ func.is_default = False
+ return func
if callable(name):
return decorator(name)
@@ -303,60 +328,84 @@ def default_state(func):
return func
-class MetaFSM(ABCMeta):
- def __init__(cls, name, bases, nmspc):
- super(MetaFSM, cls).__init__(name, bases, nmspc)
+class MetaFSM(MetaAgent):
+ def __new__(mcls, name, bases, namespace):
states = {}
# Re-use states from inherited classes
default_state = None
for i in bases:
if isinstance(i, MetaFSM):
- for state_id, state in i.states.items():
+ for state_id, state in i._states.items():
if state.is_default:
default_state = state
states[state_id] = state
# Add new states
- for name, func in nmspc.items():
+ for attr, func in namespace.items():
if hasattr(func, 'id'):
if func.is_default:
default_state = func
states[func.id] = func
- cls.default_state = default_state
- cls.states = states
+
+ namespace.update({
+ '_default_state': default_state,
+ '_states': states,
+ })
+
+ return super(MetaFSM, mcls).__new__(mcls=mcls, name=name, bases=bases, namespace=namespace)
class FSM(BaseAgent, metaclass=MetaFSM):
def __init__(self, *args, **kwargs):
super(FSM, self).__init__(*args, **kwargs)
if not hasattr(self, 'state_id'):
- if not self.default_state:
+ if not self._default_state:
raise ValueError('No default state specified for {}'.format(self.unique_id))
- self.state_id = self.default_state.id
+ self.state_id = self._default_state.id
+ self._coroutine = None
self.set_state(self.state_id)
def step(self):
self.debug(f'Agent {self.unique_id} @ state {self.state_id}')
- interval = super().step()
- if 'id' not in self.state:
- if self.default_state:
- self.set_state(self.default_state.id)
- else:
- raise Exception('{} has no valid state id or default state'.format(self))
- interval = self.states[self.state_id](self) or interval
- if not self.alive:
- return time.NEVER
- return interval
+ default_interval = super().step()
- def set_state(self, state):
+ next_state = self._states[self.state_id](self)
+
+ when = None
+ try:
+ next_state, *when = next_state
+ if not when:
+ when = None
+ elif len(when) == 1:
+ when = when[0]
+ else:
+ raise ValueError('Too many values returned. Only state (and time) allowed')
+ except TypeError:
+ pass
+
+ if next_state is not None:
+ self.set_state(next_state)
+
+ return when or default_interval
+
+ def set_state(self, state, when=None):
if hasattr(state, 'id'):
state = state.id
- if state not in self.states:
+ if state not in self._states:
raise ValueError('{} is not a valid state'.format(state))
self.state_id = state
+ if when is not None:
+ self.model.schedule.add(self, when=when)
return state
+ def die(self):
+ return self.dead, super().die()
+
+ @state
+ def dead(self):
+ return self.die()
+
def prob(prob, random):
'''
@@ -476,81 +525,81 @@ def _convert_agent_classs(ind, to_string=False, **kwargs):
return deserialize_definition(ind, **kwargs)
-def _agent_from_definition(definition, random, value=-1, unique_id=None):
- """Used in the initialization of agents given an agent distribution."""
- if value < 0:
- value = random.random()
- for d in sorted(definition, key=lambda x: x.get('threshold')):
- threshold = d.get('threshold', (-1, -1))
- # Check if the definition matches by id (first) or by threshold
- if (unique_id is not None and unique_id in d.get('ids', [])) or \
- (value >= threshold[0] and value < threshold[1]):
- state = {}
- if 'state' in d:
- state = deepcopy(d['state'])
- return d['agent_class'], state
+# def _agent_from_definition(definition, random, value=-1, unique_id=None):
+# """Used in the initialization of agents given an agent distribution."""
+# if value < 0:
+# value = random.random()
+# for d in sorted(definition, key=lambda x: x.get('threshold')):
+# threshold = d.get('threshold', (-1, -1))
+# # Check if the definition matches by id (first) or by threshold
+# if (unique_id is not None and unique_id in d.get('ids', [])) or \
+# (value >= threshold[0] and value < threshold[1]):
+# state = {}
+# if 'state' in d:
+# state = deepcopy(d['state'])
+# return d['agent_class'], state
- raise Exception('Definition for value {} not found in: {}'.format(value, definition))
+# raise Exception('Definition for value {} not found in: {}'.format(value, definition))
-def _definition_to_dict(definition, random, size=None, default_state=None):
- state = default_state or {}
- agents = {}
- remaining = {}
- if size:
- for ix in range(size):
- remaining[ix] = copy(state)
- else:
- remaining = defaultdict(lambda x: copy(state))
+# def _definition_to_dict(definition, random, size=None, default_state=None):
+# state = default_state or {}
+# agents = {}
+# remaining = {}
+# if size:
+# for ix in range(size):
+# remaining[ix] = copy(state)
+# else:
+# remaining = defaultdict(lambda x: copy(state))
- distro = sorted([item for item in definition if 'weight' in item])
+# distro = sorted([item for item in definition if 'weight' in item])
- id = 0
+# id = 0
- def init_agent(item, id=ix):
- while id in agents:
- id += 1
+# def init_agent(item, id=ix):
+# while id in agents:
+# id += 1
- agent = remaining[id]
- agent['state'].update(copy(item.get('state', {})))
- agents[agent.unique_id] = agent
- del remaining[id]
- return agent
+# agent = remaining[id]
+# agent['state'].update(copy(item.get('state', {})))
+# agents[agent.unique_id] = agent
+# del remaining[id]
+# return agent
- for item in definition:
- if 'ids' in item:
- ids = item['ids']
- del item['ids']
- for id in ids:
- agent = init_agent(item, id)
+# for item in definition:
+# if 'ids' in item:
+# ids = item['ids']
+# del item['ids']
+# for id in ids:
+# agent = init_agent(item, id)
- for item in definition:
- if 'number' in item:
- times = item['number']
- del item['number']
- for times in range(times):
- if size:
- ix = random.choice(remaining.keys())
- agent = init_agent(item, id)
- else:
- agent = init_agent(item)
- if not size:
- return agents
+# for item in definition:
+# if 'number' in item:
+# times = item['number']
+# del item['number']
+# for times in range(times):
+# if size:
+# ix = random.choice(remaining.keys())
+# agent = init_agent(item, id)
+# else:
+# agent = init_agent(item)
+# if not size:
+# return agents
- if len(remaining) < 0:
- raise Exception('Invalid definition. Too many agents to add')
+# if len(remaining) < 0:
+# raise Exception('Invalid definition. Too many agents to add')
- total_weight = float(sum(s['weight'] for s in distro))
- unit = size / total_weight
+# total_weight = float(sum(s['weight'] for s in distro))
+# unit = size / total_weight
- for item in distro:
- times = unit * item['weight']
- del item['weight']
- for times in range(times):
- ix = random.choice(remaining.keys())
- agent = init_agent(item, id)
- return agents
+# for item in distro:
+# times = unit * item['weight']
+# del item['weight']
+# for times in range(times):
+# ix = random.choice(remaining.keys())
+# agent = init_agent(item, id)
+# return agents
class AgentView(Mapping, Set):
@@ -571,59 +620,43 @@ class AgentView(Mapping, Set):
# Mapping methods
def __len__(self):
- return sum(len(x) for x in self._agents.values())
+ return len(self._agents)
def __iter__(self):
- yield from iter(chain.from_iterable(g.values() for g in self._agents.values()))
+ yield from self._agents.values()
def __getitem__(self, agent_id):
if isinstance(agent_id, slice):
raise ValueError(f"Slicing is not supported")
- for group in self._agents.values():
- if agent_id in group:
- return group[agent_id]
+ if agent_id in self._agents:
+ return self._agents[agent_id]
raise ValueError(f"Agent {agent_id} not found")
def filter(self, *args, **kwargs):
- yield from filter_groups(self._agents, *args, **kwargs)
+ yield from filter_agents(self._agents, *args, **kwargs)
def one(self, *args, **kwargs):
- return next(filter_groups(self._agents, *args, **kwargs))
+ return next(filter_agents(self._agents, *args, **kwargs))
def __call__(self, *args, **kwargs):
return list(self.filter(*args, **kwargs))
def __contains__(self, agent_id):
- return any(agent_id in g for g in self._agents)
+ return agent_id in self._agents
def __str__(self):
- return str(list(a.unique_id for a in self))
+ return str(list(unique_id for unique_id in self.keys()))
def __repr__(self):
return f"{self.__class__.__name__}({self})"
-def filter_groups(groups, *, group=None, **kwargs):
- assert isinstance(groups, dict)
-
- if group is not None and not isinstance(group, list):
- group = [group]
-
- if group:
- groups = list(groups[g] for g in group if g in groups)
- else:
- groups = list(groups.values())
-
- agents = chain.from_iterable(filter_group(g, **kwargs) for g in groups)
-
- yield from agents
-
-
-def filter_group(group, *id_args, unique_id=None, state_id=None, agent_class=None, ignore=None, state=None, **kwargs):
+def filter_agents(agents, *id_args, unique_id=None, state_id=None, agent_class=None, ignore=None, state=None,
+ limit=None, **kwargs):
'''
Filter agents given as a dict, by the criteria given as arguments (e.g., certain type or state id).
'''
- assert isinstance(group, dict)
+ assert isinstance(agents, dict)
ids = []
@@ -636,6 +669,11 @@ def filter_group(group, *id_args, unique_id=None, state_id=None, agent_class=Non
if id_args:
ids += id_args
+ if ids:
+ f = (agents[aid] for aid in ids if aid in agents)
+ else:
+ f = (a for a in agents.values())
+
if state_id is not None and not isinstance(state_id, (tuple, list)):
state_id = tuple([state_id])
@@ -646,12 +684,6 @@ def filter_group(group, *id_args, unique_id=None, state_id=None, agent_class=Non
except TypeError:
agent_class = tuple([agent_class])
- if ids:
- agents = (group[aid] for aid in ids if aid in group)
- else:
- agents = (a for a in group.values())
-
- f = agents
if ignore:
f = filter(lambda x: x not in ignore, f)
@@ -667,83 +699,125 @@ def filter_group(group, *id_args, unique_id=None, state_id=None, agent_class=Non
for k, v in state.items():
f = filter(lambda agent: agent.state.get(k, None) == v, f)
+ if limit is not None:
+ f = islice(f, limit)
+
yield from f
-def from_config(cfg: Dict[str, config.AgentConfig], env, random):
+def from_config(cfg: config.AgentConfig, random, topologies: Dict[str, nx.Graph] = None) -> List[Dict[str, Any]]:
'''
- Agents are specified in groups.
- Each group can be specified in two ways, either through a fixed list in which each item has
- has the agent type, number of agents to create, and the other parameters, or through what we call
- an `agent distribution`, which is similar but instead of number of agents, it specifies the weight
- of each agent type.
+ This function turns an agentconfig into a list of individual "agent specifications", which are just a dictionary
+ with the parameters that the environment will use to construct each agent.
+
+ This function does NOT return a list of agents, mostly because some attributes to the agent are not known at the
+ time of calling this function, such as `unique_id`.
'''
- default = cfg.get('default', None)
- return {k: _group_from_config(c, default=default, env=env, random=random) for (k, c) in cfg.items() if k is not 'default'}
+ default = cfg or config.AgentConfig()
+ if not isinstance(cfg, config.AgentConfig):
+ cfg = config.AgentConfig(**cfg)
+ return _agents_from_config(cfg, topologies=topologies, random=random)
-def _group_from_config(cfg: config.AgentConfig, default: config.SingleAgentConfig, env, random):
+def _agents_from_config(cfg: config.AgentConfig,
+ topologies: Dict[str, nx.Graph],
+ random) -> List[Dict[str, Any]]:
if cfg and not isinstance(cfg, config.AgentConfig):
cfg = config.AgentConfig(**cfg)
- if default and not isinstance(default, config.SingleAgentConfig):
- default = config.SingleAgentConfig(**default)
- agents = {}
+ agents = []
+
+ assigned = defaultdict(int)
+
if cfg.fixed is not None:
- agents = _from_fixed(cfg.fixed, topology=cfg.topology, default=default, env=env)
- if cfg.distribution:
- n = cfg.n or len(env.topologies[cfg.topology or default.topology])
- target = n - len(agents)
- agents.update(_from_distro(cfg.distribution, target,
- topology=cfg.topology or default.topology,
- default=default,
- env=env, random=random))
- assert len(agents) == n
- if cfg.override:
- for attrs in cfg.override:
- if attrs.filter:
- filtered = list(filter_group(agents, **attrs.filter))
- else:
- filtered = list(agents)
+ agents, counts = _from_fixed(cfg.fixed, topology=cfg.topology, default=cfg)
+ assigned.update(counts)
- if attrs.n > len(filtered):
- raise ValueError(f'Not enough agents to sample. Got {len(filtered)}, expected >= {attrs.n}')
- for agent in random.sample(filtered, attrs.n):
- agent.state.update(attrs.state)
+ n = cfg.n
+
+ if cfg.distribution:
+ topo_size = {top: len(topologies[top]) for top in topologies}
+
+ grouped = defaultdict(list)
+ total = []
+
+ for d in cfg.distribution:
+ if d.strategy == config.Strategy.topology:
+ topology = d.topology if ('topology' in d.__fields_set__) else cfg.topology
+ if not topology:
+ raise ValueError('The "topology" strategy only works if the topology parameter is specified')
+ if topology not in topo_size:
+ raise ValueError(f'Unknown topology selected: { topology }. Make sure the topology has been defined')
+
+ grouped[topology].append(d)
+
+ if d.strategy == config.Strategy.total:
+ if not cfg.n:
+ raise ValueError('Cannot use the "total" strategy without providing the total number of agents')
+ total.append(d)
+
+
+ for (topo, distro) in grouped.items():
+ if not topologies or topo not in topo_size:
+ raise ValueError(
+ 'You need to specify a target number of agents for the distribution \
+ or a configuration with a topology, along with a dictionary with \
+ all the available topologies')
+ n = len(topologies[topo])
+ target = topo_size[topo] - assigned[topo]
+ new_agents = _from_distro(cfg.distribution, target,
+ topology=topo,
+ default=cfg,
+ random=random)
+ assigned[topo] += len(new_agents)
+ agents += new_agents
+
+ if total:
+ remaining = n - sum(assigned.values())
+ agents += _from_distro(total, remaining,
+ topology='', # DO NOT assign to any topology
+ default=cfg,
+ random=random)
+
+
+ if sum(assigned.values()) != sum(topo_size.values()):
+ utils.logger.warn(f'The total number of agents does not match the total number of nodes in '
+ 'every topology. This may be due to a definition error: assigned: '
+ f'{ assigned } total sizes: { topo_size }')
return agents
-def _from_fixed(lst: List[config.FixedAgentConfig], topology: str, default: config.SingleAgentConfig, env):
- agents = {}
+def _from_fixed(lst: List[config.FixedAgentConfig], topology: str, default: config.SingleAgentConfig) -> List[Dict[str, Any]]:
+ agents = []
+
+ counts = {}
for fixed in lst:
- agent_id = fixed.agent_id
- if agent_id is None:
- agent_id = env.next_id()
+ agent = {}
+ if default:
+ agent = default.state.copy()
+ agent.update(fixed.state)
+ cls = serialization.deserialize(fixed.agent_class or (default and default.agent_class))
+ agent['agent_class'] = cls
+ topo = fixed.topology if ('topology' in fixed.__fields_set__) else topology or default.topology
- cls = serialization.deserialize(fixed.agent_class or default.agent_class)
- state = fixed.state.copy()
- state.update(default.state)
- agent = cls(unique_id=agent_id,
- model=env,
- **state)
- topology = fixed.topology if (fixed.topology is not None) else (topology or default.topology)
- if topology:
- env.agent_to_node(agent_id, topology, fixed.node_id)
- agents[agent.unique_id] = agent
+ if topo:
+ agent['topology'] = topo
+ if not fixed.hidden:
+ counts[topo] = counts.get(topo, 0) + 1
+ agents.append(agent)
- return agents
+ return agents, counts
def _from_distro(distro: List[config.AgentDistro],
n: int,
topology: str,
default: config.SingleAgentConfig,
- env,
- random):
+ random) -> List[Dict[str, Any]]:
- agents = {}
+ agents = []
if n is None:
if any(lambda dist: dist.n is None, distro):
@@ -775,19 +849,16 @@ def _from_distro(distro: List[config.AgentDistro],
for idx in indices:
d = distro[idx]
+ agent = d.state.copy()
cls = classes[idx]
- agent_id = env.next_id()
- state = d.state.copy()
+ agent['agent_class'] = cls
if default:
- state.update(default.state)
- agent = cls(unique_id=agent_id, model=env, **state)
- topology = d.topology if (d.topology is not None) else topology or default.topology
+ agent.update(default.state)
+ # agent = cls(unique_id=agent_id, model=env, **state)
+ topology = d.topology if ('topology' in d.__fields_set__) else topology or default.topology
if topology:
- env.agent_to_node(agent.unique_id, topology)
- assert agent.name is not None
- assert agent.name != 'None'
- assert agent.name
- agents[agent.unique_id] = agent
+ agent['topology'] = topology
+ agents.append(agent)
return agents
diff --git a/soil/analysis.py b/soil/analysis.py
deleted file mode 100644
index 65d8468..0000000
--- a/soil/analysis.py
+++ /dev/null
@@ -1,206 +0,0 @@
-import pandas as pd
-
-import glob
-import yaml
-from os.path import join
-
-from . import serialization
-from tsih import History
-
-
-def read_data(*args, group=False, **kwargs):
- iterable = _read_data(*args, **kwargs)
- if group:
- return group_trials(iterable)
- else:
- return list(iterable)
-
-
-def _read_data(pattern, *args, from_csv=False, process_args=None, **kwargs):
- if not process_args:
- process_args = {}
- for folder in glob.glob(pattern):
- config_file = glob.glob(join(folder, '*.yml'))[0]
- config = yaml.load(open(config_file), Loader=yaml.SafeLoader)
- df = None
- if from_csv:
- for trial_data in sorted(glob.glob(join(folder,
- '*.environment.csv'))):
- df = read_csv(trial_data, **kwargs)
- yield config_file, df, config
- else:
- for trial_data in sorted(glob.glob(join(folder, '*.sqlite'))):
- df = read_sql(trial_data, **kwargs)
- yield config_file, df, config
-
-
-def read_sql(db, *args, **kwargs):
- h = History(db_path=db, backup=False, readonly=True)
- df = h.read_sql(*args, **kwargs)
- return df
-
-
-def read_csv(filename, keys=None, convert_types=False, **kwargs):
- '''
- Read a CSV in canonical form: ::
-
-
-
- '''
- df = pd.read_csv(filename)
- if convert_types:
- df = convert_types_slow(df)
- if keys:
- df = df[df['key'].isin(keys)]
- df = process_one(df)
- return df
-
-
-def convert_row(row):
- row['value'] = serialization.deserialize(row['value_type'], row['value'])
- return row
-
-
-def convert_types_slow(df):
- '''
- Go over every column in a dataframe and convert it to the type determined by the `get_types`
- function.
-
- This is a slow operation.
- '''
- dtypes = get_types(df)
- for k, v in dtypes.items():
- t = df[df['key']==k]
- t['value'] = t['value'].astype(v)
- df = df.apply(convert_row, axis=1)
- return df
-
-
-def split_processed(df):
- env = df.loc[:, df.columns.get_level_values(1).isin(['env', 'stats'])]
- agents = df.loc[:, ~df.columns.get_level_values(1).isin(['env', 'stats'])]
- return env, agents
-
-
-def split_df(df):
- '''
- Split a dataframe in two dataframes: one with the history of agents,
- and one with the environment history
- '''
- envmask = (df['agent_id'] == 'env')
- n_env = envmask.sum()
- if n_env == len(df):
- return df, None
- elif n_env == 0:
- return None, df
- agents, env = [x for _, x in df.groupby(envmask)]
- return env, agents
-
-
-def process(df, **kwargs):
- '''
- Process a dataframe in canonical form ``(t_step, agent_id, key, value, value_type)`` into
- two dataframes with a column per key: one with the history of the agents, and one for the
- history of the environment.
- '''
- env, agents = split_df(df)
- return process_one(env, **kwargs), process_one(agents, **kwargs)
-
-
-def get_types(df):
- '''
- Get the value type for every key stored in a raw history dataframe.
- '''
- dtypes = df.groupby(by=['key'])['value_type'].unique()
- return {k:v[0] for k,v in dtypes.iteritems()}
-
-
-def process_one(df, *keys, columns=['key', 'agent_id'], values='value',
- fill=True, index=['t_step',],
- aggfunc='first', **kwargs):
- '''
- Process a dataframe in canonical form ``(t_step, agent_id, key, value, value_type)`` into
- a dataframe with a column per key
- '''
- if df is None:
- return df
- if keys:
- df = df[df['key'].isin(keys)]
-
- df = df.pivot_table(values=values, index=index, columns=columns,
- aggfunc=aggfunc, **kwargs)
- if fill:
- df = fillna(df)
- return df
-
-
-def get_count(df, *keys):
- '''
- For every t_step and key, get the value count.
-
- The result is a dataframe with `t_step` as index, an a multiindex column based on `key` and the values found for each `key`.
- '''
- if keys:
- df = df[list(keys)]
- df.columns = df.columns.remove_unused_levels()
- counts = pd.DataFrame()
- for key in df.columns.levels[0]:
- g = df[[key]].apply(pd.Series.value_counts, axis=1).fillna(0)
- for value, series in g.iteritems():
- counts[key, value] = series
- counts.columns = pd.MultiIndex.from_tuples(counts.columns)
- return counts
-
-
-def get_majority(df, *keys):
- '''
- For every t_step and key, get the value of the majority of agents
-
- The result is a dataframe with `t_step` as index, and columns based on `key`.
- '''
- df = get_count(df, *keys)
- return df.stack(level=0).idxmax(axis=1).unstack()
-
-
-def get_value(df, *keys, aggfunc='sum'):
- '''
- For every t_step and key, get the value of *numeric columns*, aggregated using a specific function.
- '''
- if keys:
- df = df[list(keys)]
- df.columns = df.columns.remove_unused_levels()
- df = df.select_dtypes('number')
- return df.groupby(level='key', axis=1).agg(aggfunc)
-
-
-def plot_all(*args, plot_args={}, **kwargs):
- '''
- Read all the trial data and plot the result of applying a function on them.
- '''
- dfs = do_all(*args, **kwargs)
- ps = []
- for line in dfs:
- f, df, config = line
- if len(df) < 1:
- continue
- df.plot(title=config['name'], **plot_args)
- ps.append(df)
- return ps
-
-def do_all(pattern, func, *keys, include_env=False, **kwargs):
- for config_file, df, config in read_data(pattern, keys=keys):
- if len(df) < 1:
- continue
- p = func(df, *keys, **kwargs)
- yield config_file, p, config
-
-
-def group_trials(trials, aggfunc=['mean', 'min', 'max', 'std']):
- trials = list(trials)
- trials = list(map(lambda x: x[1] if isinstance(x, tuple) else x, trials))
- return pd.concat(trials).groupby(level=0).agg(aggfunc).reorder_levels([2, 0,1] ,axis=1)
-
-
-def fillna(df):
- new_df = df.ffill(axis=0)
- return new_df
diff --git a/soil/config.py b/soil/config.py
index cf4cee2..20934db 100644
--- a/soil/config.py
+++ b/soil/config.py
@@ -1,12 +1,18 @@
from __future__ import annotations
+
+from enum import Enum
from pydantic import BaseModel, ValidationError, validator, root_validator
import yaml
import os
import sys
+
from typing import Any, Callable, Dict, List, Optional, Union, Type
from pydantic import BaseModel, Extra
+
+from . import environment, utils
+
import networkx as nx
@@ -36,7 +42,6 @@ class NetParams(BaseModel, extra=Extra.allow):
class NetConfig(BaseModel):
- group: str = 'network'
params: Optional[NetParams]
topology: Optional[Union[Topology, nx.Graph]]
path: Optional[str]
@@ -56,9 +61,6 @@ class NetConfig(BaseModel):
class EnvConfig(BaseModel):
- environment_class: Union[Type, str] = 'soil.Environment'
- params: Dict[str, Any] = {}
- schedule: Union[Type, str] = 'soil.time.TimedActivation'
@staticmethod
def default():
@@ -67,19 +69,19 @@ class EnvConfig(BaseModel):
class SingleAgentConfig(BaseModel):
agent_class: Optional[Union[Type, str]] = None
- agent_id: Optional[int] = None
+ unique_id: Optional[int] = None
topology: Optional[str] = None
node_id: Optional[Union[int, str]] = None
- name: Optional[str] = None
state: Optional[Dict[str, Any]] = {}
+
class FixedAgentConfig(SingleAgentConfig):
n: Optional[int] = 1
+ hidden: Optional[bool] = False # Do not count this agent towards total agent count
@root_validator
def validate_all(cls, values):
if values.get('agent_id', None) is not None and values.get('n', 1) > 1:
- print(values)
raise ValueError(f"An agent_id can only be provided when there is only one agent ({values.get('n')} given)")
return values
@@ -88,13 +90,19 @@ class OverrideAgentConfig(FixedAgentConfig):
filter: Optional[Dict[str, Any]] = None
+class Strategy(Enum):
+ topology = 'topology'
+ total = 'total'
+
+
class AgentDistro(SingleAgentConfig):
weight: Optional[float] = 1
+ strategy: Strategy = Strategy.topology
class AgentConfig(SingleAgentConfig):
n: Optional[int] = None
- topology: Optional[str] = None
+ topology: Optional[str]
distribution: Optional[List[AgentDistro]] = None
fixed: Optional[List[FixedAgentConfig]] = None
override: Optional[List[OverrideAgentConfig]] = None
@@ -110,19 +118,32 @@ class AgentConfig(SingleAgentConfig):
return values
-class Config(BaseModel, extra=Extra.forbid):
+class Config(BaseModel, extra=Extra.allow):
version: Optional[str] = '1'
- id: str = 'Unnamed Simulation'
+ name: str = 'Unnamed Simulation'
+ description: Optional[str] = None
group: str = None
dir_path: Optional[str] = None
num_trials: int = 1
max_time: float = 100
+ max_steps: int = -1
interval: float = 1
seed: str = ""
+ dry_run: bool = False
- model_class: Union[Type, str]
- model_parameters: Optiona[Dict[str, Any]] = {}
+ model_class: Union[Type, str] = environment.Environment
+ model_params: Optional[Dict[str, Any]] = {}
+
+ visualization_params: Optional[Dict[str, Any]] = {}
+
+ @classmethod
+ def from_raw(cls, cfg):
+ if isinstance(cfg, Config):
+ return cfg
+ if cfg.get('version', '1') == '1' and any(k in cfg for k in ['agents', 'agent_class', 'topology', 'environment_class']):
+ return convert_old(cfg)
+ return Config(**cfg)
def convert_old(old, strict=True):
@@ -132,87 +153,84 @@ def convert_old(old, strict=True):
This is still a work in progress and might not work in many cases.
'''
- #TODO: implement actual conversion
- print('The old configuration format is no longer supported. \
- Update your config files or run Soil==0.20')
- raise NotImplementedError()
+ utils.logger.warning('The old configuration format is deprecated. The converted file MAY NOT yield the right results')
-
- new = {}
-
- general = {}
- for k in ['id',
- 'group',
- 'dir_path',
- 'num_trials',
- 'max_time',
- 'interval',
- 'seed']:
- if k in old:
- general[k] = old[k]
-
- if 'name' in old:
- general['id'] = old['name']
+ new = old.copy()
network = {}
+ if 'topology' in old:
+ del new['topology']
+ network['topology'] = old['topology']
if 'network_params' in old and old['network_params']:
+ del new['network_params']
for (k, v) in old['network_params'].items():
if k == 'path':
network['path'] = v
else:
network.setdefault('params', {})[k] = v
- if 'topology' in old:
- network['topology'] = old['topology']
+ topologies = {}
+ if network:
+ topologies['default'] = network
- agents = {
- 'network': {},
- 'default': {},
- }
-
- if 'agent_class' in old:
- agents['default']['agent_class'] = old['agent_class']
-
- if 'default_state' in old:
- agents['default']['state'] = old['default_state']
+ agents = {'fixed': [], 'distribution': []}
def updated_agent(agent):
+ '''Convert an agent definition'''
newagent = dict(agent)
- newagent['agent_class'] = newagent['agent_class']
- del newagent['agent_class']
return newagent
- for agent in old.get('environment_agents', []):
- agents['environment'] = {'distribution': [], 'fixed': []}
- if 'agent_id' in agent:
- agent['name'] = agent['agent_id']
- del agent['agent_id']
- agents['environment']['fixed'].append(updated_agent(agent))
-
by_weight = []
fixed = []
override = []
- if 'network_agents' in old:
- agents['network']['topology'] = 'default'
+ if 'environment_agents' in new:
- for agent in old['network_agents']:
+ for agent in new['environment_agents']:
+ agent.setdefault('state', {})['group'] = 'environment'
+ if 'agent_id' in agent:
+ agent['state']['name'] = agent['agent_id']
+ del agent['agent_id']
+ agent['hidden'] = True
+ agent['topology'] = None
+ fixed.append(updated_agent(agent))
+ del new['environment_agents']
+
+
+ if 'agent_class' in old:
+ del new['agent_class']
+ agents['agent_class'] = old['agent_class']
+
+ if 'default_state' in old:
+ del new['default_state']
+ agents['state'] = old['default_state']
+
+ if 'network_agents' in old:
+ agents['topology'] = 'default'
+
+ agents.setdefault('state', {})['group'] = 'network'
+
+ for agent in new['network_agents']:
agent = updated_agent(agent)
if 'agent_id' in agent:
+ agent['state']['name'] = agent['agent_id']
+ del agent['agent_id']
fixed.append(agent)
else:
by_weight.append(agent)
+ del new['network_agents']
if 'agent_class' in old and (not fixed and not by_weight):
- agents['network']['topology'] = 'default'
- by_weight = [{'agent_class': old['agent_class']}]
+ agents['topology'] = 'default'
+ by_weight = [{'agent_class': old['agent_class'], 'weight': 1}]
# TODO: translate states properly
if 'states' in old:
+ del new['states']
states = old['states']
if isinstance(states, dict):
states = states.items()
@@ -220,22 +238,29 @@ def convert_old(old, strict=True):
states = enumerate(states)
for (k, v) in states:
override.append({'filter': {'node_id': k},
- 'state': v
- })
+ 'state': v})
- agents['network']['override'] = override
- agents['network']['fixed'] = fixed
- agents['network']['distribution'] = by_weight
+ agents['override'] = override
+ agents['fixed'] = fixed
+ agents['distribution'] = by_weight
+
+
+ model_params = {}
+ if 'environment_params' in new:
+ del new['environment_params']
+ model_params = dict(old['environment_params'])
- environment = {'params': {}}
if 'environment_class' in old:
- environment['environment_class'] = old['environment_class']
+ del new['environment_class']
+ new['model_class'] = old['environment_class']
- for (k, v) in old.get('environment_params', {}).items():
- environment['params'][k] = v
+ if 'dump' in old:
+ del new['dump']
+ new['dry_run'] = not old['dump']
+
+ model_params['topologies'] = topologies
+ model_params['agents'] = agents
return Config(version='2',
- general=general,
- topologies={'default': network},
- environment=environment,
- agents=agents)
+ model_params=model_params,
+ **new)
diff --git a/soil/debugging.py b/soil/debugging.py
new file mode 100644
index 0000000..98c25e1
--- /dev/null
+++ b/soil/debugging.py
@@ -0,0 +1,151 @@
+from __future__ import annotations
+
+import pdb
+import sys
+import os
+
+from textwrap import indent
+from functools import wraps
+
+from .agents import FSM, MetaFSM
+
+
+def wrapcmd(func):
+ @wraps(func)
+ def wrapper(self, arg: str, temporary=False):
+ sys.settrace(self.trace_dispatch)
+
+ known = globals()
+ known.update(self.curframe.f_globals)
+ known.update(self.curframe.f_locals)
+ known['agent'] = known.get('self', None)
+ known['model'] = known.get('self', {}).get('model')
+ known['attrs'] = arg.strip().split()
+
+ exec(func.__code__, known, known)
+
+ return wrapper
+
+
+class Debug(pdb.Pdb):
+ def __init__(self, *args, skip_soil=False, **kwargs):
+ skip = kwargs.get('skip', [])
+ if skip_soil:
+ skip.append('soil.*')
+ skip.append('mesa.*')
+ super(Debug, self).__init__(*args, skip=skip, **kwargs)
+ self.prompt = "[soil-pdb] "
+
+ @staticmethod
+ def _soil_agents(model, attrs=None, pretty=True, **kwargs):
+ for agent in model.agents(**kwargs):
+ d = agent
+ print(' - ' + indent(agent.to_str(keys=attrs, pretty=pretty), ' '))
+
+ @wrapcmd
+ def do_soil_agents():
+ return Debug._soil_agents(model, attrs=attrs or None)
+
+ do_sa = do_soil_agents
+
+ @wrapcmd
+ def do_soil_list():
+ return Debug._soil_agents(model, attrs=['state_id'], pretty=False)
+
+ do_sl = do_soil_list
+
+ @wrapcmd
+ def do_soil_self():
+ if not agent:
+ print('No agent available')
+ return
+
+ keys = None
+ if attrs:
+ keys = []
+ for k in attrs:
+ for key in agent.keys():
+ if key.startswith(k):
+ keys.append(key)
+
+ print(agent.to_str(pretty=True, keys=keys))
+
+ do_ss = do_soil_self
+
+ def do_break_state(self, arg: str, temporary=False):
+ '''
+ Break before a specified state is stepped into.
+ '''
+
+ klass = None
+ state = arg.strip()
+ if not state:
+ self.error("Specify at least a state name")
+ return
+
+ comma = arg.find(':')
+ if comma > 0:
+ state = arg[comma+1:].lstrip()
+ klass = arg[:comma].rstrip()
+ klass = eval(klass,
+ self.curframe.f_globals,
+ self.curframe_locals)
+
+ if klass:
+ klasses = [klass]
+ else:
+ klasses = [k for k in self.curframe.f_globals.values() if isinstance(k, type) and issubclass(k, FSM)]
+ print(klasses)
+ if not klasses:
+ self.error('No agent classes found')
+
+ for klass in klasses:
+ try:
+ func = getattr(klass, state)
+ except AttributeError:
+ continue
+ if hasattr(func, '__func__'):
+ func = func.__func__
+
+ code = func.__code__
+ #use co_name to identify the bkpt (function names
+ #could be aliased, but co_name is invariant)
+ funcname = code.co_name
+ lineno = code.co_firstlineno
+ filename = code.co_filename
+
+ # Check for reasonable breakpoint
+ line = self.checkline(filename, lineno)
+ if not line:
+ raise ValueError('no line found')
+ # now set the break point
+ cond = None
+ existing = self.get_breaks(filename, line)
+ if existing:
+ self.message("Breakpoint already exists at %s:%d" %
+ (filename, line))
+ continue
+ err = self.set_break(filename, line, temporary, cond, funcname)
+ if err:
+ self.error(err)
+ else:
+ bp = self.get_breaks(filename, line)[-1]
+ self.message("Breakpoint %d at %s:%d" %
+ (bp.number, bp.file, bp.line))
+ do_bs = do_break_state
+
+
+def setup(frame=None):
+ debugger = Debug()
+ frame = frame or sys._getframe().f_back
+ debugger.set_trace(frame)
+
+def debug_env():
+ if os.environ.get('SOIL_DEBUG'):
+ return setup(frame=sys._getframe().f_back)
+
+def post_mortem(traceback=None):
+ p = Debug()
+ t = sys.exc_info()[2]
+ p.reset()
+ p.interaction(None, t)
diff --git a/soil/environment.py b/soil/environment.py
index 2f59553..303a00f 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -1,4 +1,5 @@
from __future__ import annotations
+
import os
import sqlite3
import math
@@ -17,9 +18,7 @@ import networkx as nx
from mesa import Model
from mesa.datacollection import DataCollector
-from . import serialization, analysis, utils, time, network
-
-from .agents import AgentView, BaseAgent, NetworkAgent, from_config as agents_from_config
+from . import agents as agentmod, config, serialization, utils, time, network
Record = namedtuple('Record', 'dict_id t_step key value')
@@ -39,12 +38,12 @@ class BaseEnvironment(Model):
"""
def __init__(self,
- env_id='unnamed_env',
+ id='unnamed_env',
seed='default',
schedule=None,
dir_path=None,
interval=1,
- agent_class=BaseAgent,
+ agent_class=None,
agents: [tuple[type, Dict[str, Any]]] = {},
agent_reporters: Optional[Any] = None,
model_reporters: Optional[Any] = None,
@@ -54,7 +53,7 @@ class BaseEnvironment(Model):
super().__init__(seed=seed)
self.current_id = -1
- self.id = env_id
+ self.id = id
self.dir_path = dir_path or os.getcwd()
@@ -62,7 +61,7 @@ class BaseEnvironment(Model):
schedule = time.TimedActivation(self)
self.schedule = schedule
- self.agent_class = agent_class
+ self.agent_class = agent_class or agentmod.BaseAgent
self.init_agents(agents)
@@ -78,25 +77,51 @@ class BaseEnvironment(Model):
tables=tables,
)
- def __read_agent_tuple(self, tup):
- cls = self.agent_class
- args = tup
- if isinstance(tup, tuple):
- cls = tup[0]
- args = tup[1]
- return serialization.deserialize(cls)(unique_id=self.next_id(),
- model=self, **args)
+ def _read_single_agent(self, agent):
+ agent = dict(**agent)
+ cls = agent.pop('agent_class', None) or self.agent_class
+ unique_id = agent.pop('unique_id', None)
+ if unique_id is None:
+ unique_id = self.next_id()
+
+ return serialization.deserialize(cls)(unique_id=unique_id,
+ model=self, **agent)
+
+ def init_agents(self, agents: Union[config.AgentConfig, [Dict[str, Any]]] = {}):
+ if not agents:
+ return
+
+ lst = agents
+ override = []
+ if not isinstance(lst, list):
+ if not isinstance(agents, config.AgentConfig):
+ lst = config.AgentConfig(**agents)
+ if lst.override:
+ override = lst.override
+ lst = agentmod.from_config(lst,
+ topologies=getattr(self, 'topologies', None),
+ random=self.random)
+
+ #TODO: check override is working again. It cannot (easily) be part of agents.from_config anymore,
+ # because it needs attribute such as unique_id, which are only present after init
+ new_agents = [self._read_single_agent(agent) for agent in lst]
+
+
+ for a in new_agents:
+ self.schedule.add(a)
+
+ for rule in override:
+ for agent in agentmod.filter_agents(self.schedule._agents, **rule.filter):
+ for attr, value in rule.state.items():
+ setattr(agent, attr, value)
- def init_agents(self, agents: [tuple[type, Dict[str, Any]]] = {}):
- agents = [self.__read_agent_tuple(tup) for tup in agents]
- self._agents = {'default': {agent.id: agent for agent in agents}}
@property
def agents(self):
- return AgentView(self._agents)
+ return agentmod.AgentView(self.schedule._agents)
def find_one(self, *args, **kwargs):
- return AgentView(self._agents).one(*args, **kwargs)
+ return agentmod.AgentView(self.schedule._agents).one(*args, **kwargs)
def count_agents(self, *args, **kwargs):
return sum(1 for i in self.agents(*args, **kwargs))
@@ -108,38 +133,12 @@ class BaseEnvironment(Model):
raise Exception('The environment has not been scheduled, so it has no sense of time')
- # def init_agent(self, agent_id, agent_definitions, state=None):
- # state = state or {}
-
- # agent_class = None
- # if 'agent_class' in self.states.get(agent_id, {}):
- # agent_class = self.states[agent_id]['agent_class']
- # elif 'agent_class' in self.default_state:
- # agent_class = self.default_state['agent_class']
-
- # if agent_class:
- # agent_class = agents.deserialize_type(agent_class)
- # elif agent_definitions:
- # agent_class, state = agents._agent_from_definition(agent_definitions, unique_id=agent_id)
- # else:
- # serialization.logger.debug('Skipping agent {}'.format(agent_id))
- # return
- # return self.add_agent(agent_id, agent_class, state)
-
-
- def add_agent(self, agent_id, agent_class, state=None, graph='default'):
- defstate = deepcopy(self.default_state) or {}
- defstate.update(self.states.get(agent_id, {}))
- if state:
- defstate.update(state)
+ def add_agent(self, agent_id, agent_class, **kwargs):
a = None
if agent_class:
- state = defstate
a = agent_class(model=self,
- unique_id=agent_id)
-
- for (k, v) in state.items():
- setattr(a, k, v)
+ unique_id=agent_id,
+ **kwargs)
self.schedule.add(a)
return a
@@ -153,7 +152,7 @@ class BaseEnvironment(Model):
message += " {k}={v} ".format(k, v)
extra = {}
extra['now'] = self.now
- extra['unique_id'] = self.id
+ extra['id'] = self.id
return self.logger.log(level, message, extra=extra)
def step(self):
@@ -161,6 +160,7 @@ class BaseEnvironment(Model):
Advance one step in the simulation, and update the data collection and scheduler appropriately
'''
super().step()
+ self.logger.info(f'--- Step {self.now:^5} ---')
self.schedule.step()
self.datacollector.collect(self)
@@ -207,34 +207,41 @@ class BaseEnvironment(Model):
yield from self._agent_to_tuples(agent, now)
-class AgentConfigEnvironment(BaseEnvironment):
+class NetworkEnvironment(BaseEnvironment):
- def __init__(self, *args,
- agents: Dict[str, config.AgentConfig] = {},
- **kwargs):
- return super().__init__(*args, agents=agents, **kwargs)
-
- def init_agents(self, agents: Union[Dict[str, config.AgentConfig], [tuple[type, Dict[str, Any]]]] = {}):
- if not isinstance(agents, dict):
- return BaseEnvironment.init_agents(self, agents)
-
- self._agents = agents_from_config(agents,
- env=self,
- random=self.random)
- for d in self._agents.values():
- for a in d.values():
- self.schedule.add(a)
-
-
-class NetworkConfigEnvironment(BaseEnvironment):
-
- def __init__(self, *args, topologies: Dict[str, config.NetConfig] = {}, **kwargs):
- super().__init__(*args, **kwargs)
- self.topologies = {}
+ def __init__(self, *args, topology: nx.Graph = None, topologies: Dict[str, config.NetConfig] = {}, **kwargs):
+ agents = kwargs.pop('agents', None)
+ super().__init__(*args, agents=None, **kwargs)
self._node_ids = {}
+ assert not hasattr(self, 'topologies')
+ if topology is not None:
+ if topologies:
+ raise ValueError('Please, provide either a single topology or a dictionary of them')
+ topologies = {'default': topology}
+
+ self.topologies = {}
for (name, cfg) in topologies.items():
self.set_topology(cfg=cfg, graph=name)
+ self.init_agents(agents)
+
+
+ def _read_single_agent(self, agent, unique_id=None):
+ agent = dict(agent)
+
+ if agent.get('topology', None) is not None:
+ topology = agent.get('topology')
+ if unique_id is None:
+ unique_id = self.next_id()
+ if topology:
+ node_id = self.agent_to_node(unique_id, graph_name=topology, node_id=agent.get('node_id'))
+ agent['node_id'] = node_id
+ agent['topology'] = topology
+ agent['unique_id'] = unique_id
+
+ return super()._read_single_agent(agent)
+
+
@property
def topology(self):
return self.topologies['default']
@@ -246,51 +253,50 @@ class NetworkConfigEnvironment(BaseEnvironment):
self.topologies[graph] = topology
- def topology_for(self, agent_id):
- return self.topologies[self._node_ids[agent_id][0]]
+ def topology_for(self, unique_id):
+ return self.topologies[self._node_ids[unique_id][0]]
@property
def network_agents(self):
- yield from self.agents(agent_class=NetworkAgent)
+ yield from self.agents(agent_class=agentmod.NetworkAgent)
- def agent_to_node(self, agent_id, graph_name='default', node_id=None, shuffle=False):
- node_id = network.agent_to_node(G=self.topologies[graph_name], agent_id=agent_id,
- node_id=node_id, shuffle=shuffle,
+ def agent_to_node(self, unique_id, graph_name='default',
+ node_id=None, shuffle=False):
+ node_id = network.agent_to_node(G=self.topologies[graph_name],
+ agent_id=unique_id,
+ node_id=node_id,
+ shuffle=shuffle,
random=self.random)
- self._node_ids[agent_id] = (graph_name, node_id)
+ self._node_ids[unique_id] = (graph_name, node_id)
+ return node_id
+ def add_node(self, agent_class, topology, **kwargs):
+ unique_id = self.next_id()
+ self.topologies[topology].add_node(unique_id)
+ node_id = self.agent_to_node(unique_id=unique_id, node_id=unique_id, graph_name=topology)
- def add_node(self, agent_class, state=None, graph='default'):
- agent_id = int(len(self.topologies[graph].nodes()))
- self.topologies[graph].add_node(agent_id)
- a = self.add_agent(agent_id, agent_class, state, graph=graph)
+ a = self.add_agent(unique_id=unique_id, agent_class=agent_class, node_id=node_id, topology=topology, **kwargs)
a['visible'] = True
return a
def add_edge(self, agent1, agent2, start=None, graph='default', **attrs):
- if hasattr(agent1, 'id'):
- agent1 = agent1.id
- if hasattr(agent2, 'id'):
- agent2 = agent2.id
- start = start or self.now
- return self.topologies[graph].add_edge(agent1, agent2, **attrs)
+ agent1 = agent1.node_id
+ agent2 = agent2.node_id
+ return self.topologies[graph].add_edge(agent1, agent2, start=start)
- def add_agent(self, *args, state=None, graph='default', **kwargs):
- node = self.topologies[graph].nodes[agent_id]
+ def add_agent(self, unique_id, state=None, graph='default', **kwargs):
+ node = self.topologies[graph].nodes[unique_id]
node_state = node.get('state', {})
if node_state:
node_state.update(state or {})
state = node_state
- a = super().add_agent(*args, state=state, **kwargs)
+ a = super().add_agent(unique_id, state=state, **kwargs)
node['agent'] = a
return a
def node_id_for(self, agent_id):
return self._node_ids[agent_id][1]
-class Environment(AgentConfigEnvironment, NetworkConfigEnvironment):
- def __init__(self, *args, **kwargs):
- agents = kwargs.pop('agents', {})
- NetworkConfigEnvironment.__init__(self, *args, **kwargs)
- AgentConfigEnvironment.__init__(self, *args, agents=agents, **kwargs)
+
+Environment = NetworkEnvironment
diff --git a/soil/exporters.py b/soil/exporters.py
index 20a0f92..055afd4 100644
--- a/soil/exporters.py
+++ b/soil/exporters.py
@@ -12,7 +12,7 @@ from .serialization import deserialize
from .utils import open_or_reuse, logger, timer
-from . import utils
+from . import utils, network
class DryRunner(BytesIO):
@@ -85,38 +85,28 @@ class Exporter:
class default(Exporter):
'''Default exporter. Writes sqlite results, as well as the simulation YAML'''
- # def sim_start(self):
- # if not self.dry_run:
- # logger.info('Dumping results to %s', self.outdir)
- # self.simulation.dump_yaml(outdir=self.outdir)
- # else:
- # logger.info('NOT dumping results')
+ def sim_start(self):
+ if not self.dry_run:
+ logger.info('Dumping results to %s', self.outdir)
+ with self.output(self.simulation.name + '.dumped.yml') as f:
+ f.write(self.simulation.to_yaml())
+ else:
+ logger.info('NOT dumping results')
- # def trial_start(self, env, stats):
- # if not self.dry_run:
- # with timer('Dumping simulation {} trial {}'.format(self.simulation.name,
- # env.name)):
- # engine = create_engine('sqlite:///{}.sqlite'.format(env.name), echo=False)
+ def trial_end(self, env):
+ if not self.dry_run:
+ with timer('Dumping simulation {} trial {}'.format(self.simulation.name,
+ env.id)):
+ engine = create_engine('sqlite:///{}.sqlite'.format(env.id), echo=False)
- # dc = env.datacollector
- # tables = {'env': dc.get_model_vars_dataframe(),
- # 'agents': dc.get_agent_vars_dataframe(),
- # 'agents': dc.get_agent_vars_dataframe()}
- # for table in dc.tables:
- # tables[table] = dc.get_table_dataframe(table)
- # for (t, df) in tables.items():
- # df.to_sql(t, con=engine)
-
- # def sim_end(self, stats):
- # with timer('Dumping simulation {}\'s stats'.format(self.simulation.name)):
- # engine = create_engine('sqlite:///{}.sqlite'.format(self.simulation.name), echo=False)
- # with self.output('{}.sqlite'.format(self.simulation.name), mode='wb') as f:
- # self.simulation.dump_sqlite(f)
+ dc = env.datacollector
+ for (t, df) in get_dc_dfs(dc):
+ df.to_sql(t, con=engine, if_exists='append')
def get_dc_dfs(dc):
dfs = {'env': dc.get_model_vars_dataframe(),
- 'agents': dc.get_agent_vars_dataframe }
+ 'agents': dc.get_agent_vars_dataframe() }
for table_name in dc.tables:
dfs[table_name] = dc.get_table_dataframe(table_name)
yield from dfs.items()
@@ -130,10 +120,11 @@ class csv(Exporter):
env.id,
self.outdir)):
for (df_name, df) in get_dc_dfs(env.datacollector):
- with self.output('{}.stats.{}.csv'.format(env.id, df_name)) as f:
+ with self.output('{}.{}.csv'.format(env.id, df_name)) as f:
df.to_csv(f)
+#TODO: reimplement GEXF exporting without history
class gexf(Exporter):
def trial_end(self, env):
if self.dry_run:
@@ -143,18 +134,9 @@ class gexf(Exporter):
with timer('[GEXF] Dumping simulation {} trial {}'.format(self.simulation.name,
env.id)):
with self.output('{}.gexf'.format(env.id), mode='wb') as f:
+ network.dump_gexf(env.history_to_graph(), f)
self.dump_gexf(env, f)
- def dump_gexf(self, env, f):
- G = env.history_to_graph()
- # Workaround for geometric models
- # See soil/soil#4
- for node in G.nodes():
- if 'pos' in G.nodes[node]:
- G.nodes[node]['viz'] = {"position": {"x": G.nodes[node]['pos'][0], "y": G.nodes[node]['pos'][1], "z": 0.0}}
- del (G.nodes[node]['pos'])
-
- nx.write_gexf(G, f, version="1.2draft")
class dummy(Exporter):
diff --git a/soil/network.py b/soil/network.py
index 25b55ab..0836f35 100644
--- a/soil/network.py
+++ b/soil/network.py
@@ -1,3 +1,5 @@
+from __future__ import annotations
+
from typing import Dict
import os
import sys
@@ -37,8 +39,10 @@ def from_config(cfg: config.NetConfig, dir_path: str = None):
known_modules=['networkx.generators',])
return method(**net_args)
- if isinstance(cfg.topology, basestring) or isinstance(cfg.topology, dict):
- return nx.json_graph.node_link_graph(cfg.topology)
+ if isinstance(cfg.topology, config.Topology):
+ cfg = cfg.topology.dict()
+ if isinstance(cfg, str) or isinstance(cfg, dict):
+ return nx.json_graph.node_link_graph(cfg)
return nx.Graph()
@@ -57,9 +61,18 @@ def agent_to_node(G, agent_id, node_id=None, shuffle=False, random=random):
for next_id, data in candidates:
if data.get('agent_id', None) is None:
node_id = next_id
- data['agent_id'] = agent_id
break
if node_id is None:
raise ValueError(f"Not enough nodes in topology to assign one to agent {agent_id}")
+ G.nodes[node_id]['agent_id'] = agent_id
return node_id
+
+
+def dump_gexf(G, f):
+ for node in G.nodes():
+ if 'pos' in G.nodes[node]:
+ G.nodes[node]['viz'] = {"position": {"x": G.nodes[node]['pos'][0], "y": G.nodes[node]['pos'][1], "z": 0.0}}
+ del (G.nodes[node]['pos'])
+
+ nx.write_gexf(G, f, version="1.2draft")
diff --git a/soil/serialization.py b/soil/serialization.py
index 328efdd..9c2af63 100644
--- a/soil/serialization.py
+++ b/soil/serialization.py
@@ -7,6 +7,8 @@ import importlib
from glob import glob
from itertools import product, chain
+from .config import Config
+
import yaml
import networkx as nx
@@ -120,22 +122,25 @@ def params_for_template(config):
def load_files(*patterns, **kwargs):
for pattern in patterns:
for i in glob(pattern, **kwargs):
- for config in load_file(i):
+ for cfg in load_file(i):
path = os.path.abspath(i)
- yield config, path
+ yield Config.from_raw(cfg), path
-def load_config(config):
- if isinstance(config, dict):
- yield config, os.getcwd()
+def load_config(cfg):
+ if isinstance(cfg, Config):
+ yield cfg, os.getcwd()
+ elif isinstance(cfg, dict):
+ yield Config.from_raw(cfg), os.getcwd()
else:
- yield from load_files(config)
+ yield from load_files(cfg)
builtins = importlib.import_module('builtins')
KNOWN_MODULES = ['soil', ]
+
def name(value, known_modules=KNOWN_MODULES):
'''Return a name that can be imported, to serialize/deserialize an object'''
if value is None:
@@ -172,8 +177,22 @@ def serialize(v, known_modules=KNOWN_MODULES):
return func(v), tname
+def serialize_dict(d, known_modules=KNOWN_MODULES):
+ d = dict(d)
+ for (k, v) in d.items():
+ if isinstance(v, dict):
+ d[k] = serialize_dict(v, known_modules=known_modules)
+ elif isinstance(v, list):
+ for ix in range(len(v)):
+ v[ix] = serialize_dict(v[ix], known_modules=known_modules)
+ elif isinstance(v, type):
+ d[k] = serialize(v, known_modules=known_modules)[1]
+ return d
+
+
IS_CLASS = re.compile(r"")
+
def deserializer(type_, known_modules=KNOWN_MODULES):
if type(type_) != str: # Already deserialized
return type_
diff --git a/soil/simulation.py b/soil/simulation.py
index 4d50c30..1ed5dbc 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -4,15 +4,17 @@ import importlib
import sys
import yaml
import traceback
+import inspect
import logging
import networkx as nx
+from textwrap import dedent
+
from dataclasses import dataclass, field, asdict
-from typing import Union
+from typing import Any, Dict, Union, Optional
from networkx.readwrite import json_graph
-from multiprocessing import Pool
from functools import partial
import pickle
@@ -21,7 +23,6 @@ from .environment import Environment
from .utils import logger, run_and_return_exceptions
from .exporters import default
from .time import INFINITY
-
from .config import Config, convert_old
@@ -36,7 +37,9 @@ class Simulation:
kwargs: parameters to use to initialize a new configuration, if one has not been provided.
"""
+ version: str = '2'
name: str = 'Unnamed simulation'
+ description: Optional[str] = ''
group: str = None
model_class: Union[str, type] = 'soil.Environment'
model_params: dict = field(default_factory=dict)
@@ -44,30 +47,37 @@ class Simulation:
dir_path: str = field(default_factory=lambda: os.getcwd())
max_time: float = float('inf')
max_steps: int = -1
+ interval: int = 1
num_trials: int = 3
dry_run: bool = False
+ extra: Dict[str, Any] = field(default_factory=dict)
+
+ @classmethod
+ def from_dict(cls, env):
+
+ ignored = {k: v for k, v in env.items()
+ if k not in inspect.signature(cls).parameters}
+
+ kwargs = {k:v for k, v in env.items() if k not in ignored}
+ if ignored:
+ kwargs.setdefault('extra', {}).update(ignored)
+ if ignored:
+ print(f'Warning: Ignoring these parameters (added to "extra"): { ignored }')
+
+ return cls(**kwargs)
def run_simulation(self, *args, **kwargs):
return self.run(*args, **kwargs)
def run(self, *args, **kwargs):
'''Run the simulation and return the list of resulting environments'''
+ logger.info(dedent('''
+ Simulation:
+ ---
+ ''') +
+ self.to_yaml())
return list(self.run_gen(*args, **kwargs))
- def _run_sync_or_async(self, parallel=False, **kwargs):
- if parallel and not os.environ.get('SENPY_DEBUG', None):
- p = Pool()
- func = partial(run_and_return_exceptions, self.run_trial, **kwargs)
- for i in p.imap_unordered(func, self.num_trials):
- if isinstance(i, Exception):
- logger.error('Trial failed:\n\t%s', i.message)
- continue
- yield i
- else:
- for i in range(self.num_trials):
- yield self.run_trial(trial_id=i,
- **kwargs)
-
def run_gen(self, parallel=False, dry_run=False,
exporters=[default, ], outdir=None, exporter_params={},
log_level=None,
@@ -88,9 +98,11 @@ class Simulation:
for exporter in exporters:
exporter.sim_start()
- for env in self._run_sync_or_async(parallel=parallel,
- log_level=log_level,
- **kwargs):
+ for env in utils.run_parallel(func=self.run_trial,
+ iterable=range(int(self.num_trials)),
+ parallel=parallel,
+ log_level=log_level,
+ **kwargs):
for exporter in exporters:
exporter.trial_start(env)
@@ -103,14 +115,6 @@ class Simulation:
for exporter in exporters:
exporter.sim_end()
- def run_model(self, until=None, *args, **kwargs):
- until = until or float('inf')
-
- while self.schedule.next_time < until:
- self.step()
- utils.logger.debug(f'Simulation step {self.schedule.time}/{until}. Next: {self.schedule.next_time}')
- self.schedule.time = until
-
def get_env(self, trial_id=0, **kwargs):
'''Create an environment for a trial of the simulation'''
def deserialize_reporters(reporters):
@@ -132,56 +136,76 @@ class Simulation:
model_reporters=model_reporters,
**model_params)
- def run_trial(self, trial_id=None, until=None, log_level=logging.INFO, **opts):
+ def run_trial(self, trial_id=None, until=None, log_file=False, log_level=logging.INFO, **opts):
"""
Run a single trial of the simulation
"""
- model = self.get_env(trial_id, **opts)
- return self.run_model(model, trial_id=trial_id, until=until, log_level=log_level)
-
- def run_model(self, model, trial_id=None, until=None, log_level=logging.INFO, **opts):
- trial_id = trial_id if trial_id is not None else current_time()
if log_level:
logger.setLevel(log_level)
+ model = self.get_env(trial_id, **opts)
+ trial_id = trial_id if trial_id is not None else current_time()
+ with utils.timer('Simulation {} trial {}'.format(self.name, trial_id)):
+ return self.run_model(model=model, trial_id=trial_id, until=until, log_level=log_level)
+
+ def run_model(self, model, until=None, **opts):
# Set-up trial environment and graph
- until = until or self.max_time
+ until = float(until or self.max_time or 'inf')
# Set up agents on nodes
- is_done = lambda: False
- if self.max_time and hasattr(self.schedule, 'time'):
- is_done = lambda x: is_done() or self.schedule.time >= self.max_time
- if self.max_steps and hasattr(self.schedule, 'time'):
- is_done = lambda: is_done() or self.schedule.steps >= self.max_steps
+ def is_done():
+ return False
- with utils.timer('Simulation {} trial {}'.format(self.name, trial_id)):
- while not is_done():
- utils.logger.debug(f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}')
- model.step()
+ if until and hasattr(model.schedule, 'time'):
+ prev = is_done
+
+ def is_done():
+ return prev() or model.schedule.time >= until
+
+ if self.max_steps and self.max_steps > 0 and hasattr(model.schedule, 'steps'):
+ prev_steps = is_done
+
+ def is_done():
+ return prev_steps() or model.schedule.steps >= self.max_steps
+
+ newline = '\n'
+ logger.info(dedent(f'''
+Model stats:
+ Agents (total: { model.schedule.get_agent_count() }):
+ - { (newline + ' - ').join(str(a) for a in model.schedule.agents) }'''
+f'''
+
+ Topologies (size):
+ - { dict( (k, len(v)) for (k, v) in model.topologies.items()) }
+''' if getattr(model, "topologies", None) else ''
+))
+
+ while not is_done():
+ utils.logger.debug(f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}')
+ model.step()
return model
def to_dict(self):
d = asdict(self)
- d['model_class'] = serialization.serialize(d['model_class'])[0]
- d['model_params'] = serialization.serialize(d['model_params'])[0]
+ if not isinstance(d['model_class'], str):
+ d['model_class'] = serialization.name(d['model_class'])
+ d['model_params'] = serialization.serialize_dict(d['model_params'])
d['dir_path'] = str(d['dir_path'])
-
+ d['version'] = '2'
return d
def to_yaml(self):
- return yaml.dump(self.asdict())
+ return yaml.dump(self.to_dict())
-def iter_from_config(config):
- configs = list(serialization.load_config(config))
- for config, path in configs:
- d = dict(config)
- if 'dir_path' not in d:
- d['dir_path'] = os.path.dirname(path)
- if d.get('version', '2') == '1' or 'agents' in d or 'network_agents' in d or 'environment_agents' in d:
- d = convert_old(d)
- d.pop('version', None)
- yield Simulation(**d)
+def iter_from_config(*cfgs):
+ for config in cfgs:
+ configs = list(serialization.load_config(config))
+ for config, path in configs:
+ d = dict(config)
+ if 'dir_path' not in d:
+ d['dir_path'] = os.path.dirname(path)
+ yield Simulation.from_dict(d)
def from_config(conf_or_path):
@@ -192,6 +216,6 @@ def from_config(conf_or_path):
def run_from_config(*configs, **kwargs):
- for sim in iter_from_config(configs):
- logger.info(f"Using config(s): {sim.id}")
+ for sim in iter_from_config(*configs):
+ logger.info(f"Using config(s): {sim.name}")
sim.run_simulation(**kwargs)
diff --git a/soil/time.py b/soil/time.py
index b2faf46..b95c51e 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -1,6 +1,6 @@
from mesa.time import BaseScheduler
from queue import Empty
-from heapq import heappush, heappop
+from heapq import heappush, heappop, heapify
import math
from .utils import logger
from mesa import Agent as MesaAgent
@@ -17,6 +17,7 @@ class When:
def abs(self, time):
return self._time
+
NEVER = When(INFINITY)
@@ -38,14 +39,22 @@ class TimedActivation(BaseScheduler):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
+ self._next = {}
self._queue = []
self.next_time = 0
self.logger = logger.getChild(f'time_{ self.model }')
- def add(self, agent: MesaAgent):
- if agent.unique_id not in self._agents:
- heappush(self._queue, (self.time, agent.unique_id))
- super().add(agent)
+ def add(self, agent: MesaAgent, when=None):
+ if when is None:
+ when = self.time
+ if agent.unique_id in self._agents:
+ self._queue.remove((self._next[agent.unique_id], agent.unique_id))
+ del self._agents[agent.unique_id]
+ heapify(self._queue)
+
+ heappush(self._queue, (when, agent.unique_id))
+ self._next[agent.unique_id] = when
+ super().add(agent)
def step(self) -> None:
"""
@@ -64,11 +73,18 @@ class TimedActivation(BaseScheduler):
(when, agent_id) = heappop(self._queue)
self.logger.debug(f'Stepping agent {agent_id}')
- returned = self._agents[agent_id].step()
+ agent = self._agents[agent_id]
+ returned = agent.step()
+
+ if not agent.alive:
+ self.remove(agent)
+ continue
+
when = (returned or Delta(1)).abs(self.time)
if when < self.time:
raise Exception("Cannot schedule an agent for a time in the past ({} < {})".format(when, self.time))
+ self._next[agent_id] = when
heappush(self._queue, (when, agent_id))
self.steps += 1
@@ -77,7 +93,7 @@ class TimedActivation(BaseScheduler):
self.time = INFINITY
self.next_time = INFINITY
self.model.running = False
- return
+ return self.time
self.next_time = self._queue[0][0]
self.logger.debug(f'Next step: {self.next_time}')
diff --git a/soil/utils.py b/soil/utils.py
index cd82588..faa34d1 100644
--- a/soil/utils.py
+++ b/soil/utils.py
@@ -3,13 +3,27 @@ from time import time as current_time, strftime, gmtime, localtime
import os
import traceback
+from functools import partial
from shutil import copyfile
+from multiprocessing import Pool
from contextlib import contextmanager
logger = logging.getLogger('soil')
-# logging.basicConfig()
-# logger.setLevel(logging.INFO)
+logger.setLevel(logging.INFO)
+
+timeformat = "%H:%M:%S"
+
+if os.environ.get('SOIL_VERBOSE', ''):
+ logformat = "[%(levelname)-5.5s][%(asctime)s][%(name)s]: %(message)s"
+else:
+ logformat = "[%(levelname)-5.5s][%(asctime)s] %(message)s"
+
+logFormatter = logging.Formatter(logformat, timeformat)
+
+consoleHandler = logging.StreamHandler()
+consoleHandler.setFormatter(logFormatter)
+logger.addHandler(consoleHandler)
@contextmanager
@@ -27,8 +41,6 @@ def timer(name='task', pre="", function=logger.info, to_object=None):
to_object.end = end
-
-
def safe_open(path, mode='r', backup=True, **kwargs):
outdir = os.path.dirname(path)
if outdir and not os.path.exists(outdir):
@@ -41,7 +53,7 @@ def safe_open(path, mode='r', backup=True, **kwargs):
if not os.path.exists(backup_dir):
os.makedirs(backup_dir)
newpath = os.path.join(backup_dir, '{}@{}'.format(os.path.basename(path),
- stamp))
+ stamp))
copyfile(path, newpath)
return open(path, mode=mode, **kwargs)
@@ -92,7 +104,7 @@ def unflatten_dict(d):
return out
-def run_and_return_exceptions(self, func, *args, **kwargs):
+def run_and_return_exceptions(func, *args, **kwargs):
'''
A wrapper for run_trial that catches exceptions and returns them.
It is meant for async simulations.
@@ -104,3 +116,18 @@ def run_and_return_exceptions(self, func, *args, **kwargs):
ex = ex.__cause__
ex.message = ''.join(traceback.format_exception(type(ex), ex, ex.__traceback__)[:])
return ex
+
+
+def run_parallel(func, iterable, parallel=False, **kwargs):
+ if parallel and not os.environ.get('SOIL_DEBUG', None):
+ p = Pool()
+ wrapped_func = partial(run_and_return_exceptions,
+ func, **kwargs)
+ for i in p.imap_unordered(wrapped_func, iterable):
+ if isinstance(i, Exception):
+ logger.error('Trial failed:\n\t%s', i.message)
+ continue
+ yield i
+ else:
+ for i in iterable:
+ yield func(i, **kwargs)
diff --git a/tests/complete_converted.yml b/tests/complete_converted.yml
index 36a0a96..d1c3358 100644
--- a/tests/complete_converted.yml
+++ b/tests/complete_converted.yml
@@ -1,49 +1,50 @@
---
version: '2'
-general:
- id: simple
- group: tests
- dir_path: "/tmp/"
- num_trials: 3
- max_time: 100
- interval: 1
- seed: "CompleteSeed!"
-topologies:
- default:
- params:
- generator: complete_graph
- n: 10
-agents:
- default:
+name: simple
+group: tests
+dir_path: "/tmp/"
+num_trials: 3
+max_time: 100
+interval: 1
+seed: "CompleteSeed!"
+model_class: Environment
+model_params:
+ topologies:
+ default:
+ params:
+ generator: complete_graph
+ n: 4
+ agents:
agent_class: CounterModel
state:
+ group: network
times: 1
- network:
topology: 'default'
distribution:
- agent_class: CounterModel
- weight: 0.4
+ weight: 0.25
state:
state_id: 0
+ times: 1
- agent_class: AggregatedCounter
- weight: 0.6
- override:
- - filter:
- node_id: 0
+ weight: 0.5
state:
- name: 'The first node'
+ times: 2
+ override:
- filter:
node_id: 1
state:
- name: 'The second node'
-
- environment:
- fixed:
- - name: 'Environment Agent 1'
- agent_class: CounterModel
+ name: 'Node 1'
+ - filter:
+ node_id: 2
state:
+ name: 'Node 2'
+ fixed:
+ - agent_class: BaseAgent
+ hidden: true
+ topology: null
+ state:
+ name: 'Environment Agent 1'
times: 10
-environment:
- environment_class: Environment
- params:
- am_i_complete: true
+ group: environment
+ am_i_complete: true
diff --git a/tests/old_complete.yml b/tests/old_complete.yml
index 517abc4..9e4315b 100644
--- a/tests/old_complete.yml
+++ b/tests/old_complete.yml
@@ -8,17 +8,20 @@ interval: 1
seed: "CompleteSeed!"
network_params:
generator: complete_graph
- n: 10
+ n: 4
network_agents:
- agent_class: CounterModel
- weight: 0.4
+ weight: 0.25
state:
state_id: 0
+ times: 1
- agent_class: AggregatedCounter
- weight: 0.6
+ weight: 0.5
+ state:
+ times: 2
environment_agents:
- agent_id: 'Environment Agent 1'
- agent_class: CounterModel
+ agent_class: BaseAgent
state:
times: 10
environment_class: Environment
@@ -28,5 +31,7 @@ agent_class: CounterModel
default_state:
times: 1
states:
- - name: 'The first node'
- - name: 'The second node'
+ 1:
+ name: 'Node 1'
+ 2:
+ name: 'Node 2'
diff --git a/tests/test_agents.py b/tests/test_agents.py
index e95c11c..cb33f1f 100644
--- a/tests/test_agents.py
+++ b/tests/test_agents.py
@@ -8,7 +8,7 @@ class Dead(agents.FSM):
@agents.default_state
@agents.state
def only(self):
- self.die()
+ return self.die()
class TestMain(TestCase):
def test_die_raises_exception(self):
@@ -19,4 +19,6 @@ class TestMain(TestCase):
def test_die_returns_infinity(self):
d = Dead(unique_id=0, model=environment.Environment())
- assert d.step().abs(0) == stime.INFINITY
+ ret = d.step().abs(0)
+ print(ret, 'next')
+ assert ret == stime.INFINITY
diff --git a/tests/test_analysis.py b/tests/test_analysis.py
deleted file mode 100644
index 204b4dd..0000000
--- a/tests/test_analysis.py
+++ /dev/null
@@ -1,91 +0,0 @@
-from unittest import TestCase
-
-import os
-import pandas as pd
-import yaml
-from functools import partial
-
-from os.path import join
-from soil import simulation, analysis, agents
-
-
-ROOT = os.path.abspath(os.path.dirname(__file__))
-
-
-class Ping(agents.FSM):
-
- defaults = {
- 'count': 0,
- }
-
- @agents.default_state
- @agents.state
- def even(self):
- self.debug(f'Even {self["count"]}')
- self['count'] += 1
- return self.odd
-
- @agents.state
- def odd(self):
- self.debug(f'Odd {self["count"]}')
- self['count'] += 1
- return self.even
-
-
-class TestAnalysis(TestCase):
-
- # Code to generate a simple sqlite history
- def setUp(self):
- """
- The initial states should be applied to the agent and the
- agent should be able to update its state."""
- config = {
- 'name': 'analysis',
- 'seed': 'seed',
- 'network_params': {
- 'generator': 'complete_graph',
- 'n': 2
- },
- 'agent_class': Ping,
- 'states': [{'interval': 1}, {'interval': 2}],
- 'max_time': 30,
- 'num_trials': 1,
- 'history': True,
- 'environment_params': {
- }
- }
- s = simulation.from_config(config)
- self.env = s.run_simulation(dry_run=True)[0]
-
- def test_saved(self):
- env = self.env
- assert env.get_agent(0)['count', 0] == 1
- assert env.get_agent(0)['count', 29] == 30
- assert env.get_agent(1)['count', 0] == 1
- assert env.get_agent(1)['count', 29] == 15
- assert env['env', 29, None]['SEED'] == env['env', 29, 'SEED']
-
- def test_count(self):
- env = self.env
- df = analysis.read_sql(env._history.db_path)
- res = analysis.get_count(df, 'SEED', 'state_id')
- assert res['SEED'][self.env['SEED']].iloc[0] == 1
- assert res['SEED'][self.env['SEED']].iloc[-1] == 1
- assert res['state_id']['odd'].iloc[0] == 2
- assert res['state_id']['even'].iloc[0] == 0
- assert res['state_id']['odd'].iloc[-1] == 1
- assert res['state_id']['even'].iloc[-1] == 1
-
- def test_value(self):
- env = self.env
- df = analysis.read_sql(env._history.db_path)
- res_sum = analysis.get_value(df, 'count')
-
- assert res_sum['count'].iloc[0] == 2
-
- import numpy as np
- res_mean = analysis.get_value(df, 'count', aggfunc=np.mean)
- assert res_mean['count'].iloc[15] == (16+8)/2
-
- res_total = analysis.get_majority(df)
- res_total['SEED'].iloc[0] == self.env['SEED']
diff --git a/tests/test_config.py b/tests/test_config.py
index fd9fc70..3597844 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -29,7 +29,7 @@ class TestConfig(TestCase):
expected = serialization.load_file(join(ROOT, "complete_converted.yml"))[0]
old = serialization.load_file(join(ROOT, "old_complete.yml"))[0]
converted_defaults = config.convert_old(old, strict=False)
- converted = converted_defaults.dict(skip_defaults=True)
+ converted = converted_defaults.dict(exclude_unset=True)
isequal(converted, expected)
@@ -40,10 +40,10 @@ class TestConfig(TestCase):
"""
config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0]
s = simulation.from_config(config)
- init_config = copy.copy(s.config)
+ init_config = copy.copy(s.to_dict())
s.run_simulation(dry_run=True)
- nconfig = s.config
+ nconfig = s.to_dict()
# del nconfig['to
isequal(init_config, nconfig)
@@ -61,7 +61,7 @@ class TestConfig(TestCase):
Simple configuration that tests that the graph is loaded, and that
network agents are initialized properly.
"""
- config = {
+ cfg = {
'name': 'CounterAgent',
'network_params': {
'path': join(ROOT, 'test.gexf')
@@ -74,12 +74,14 @@ class TestConfig(TestCase):
'environment_params': {
}
}
- s = simulation.from_old_config(config)
+ conf = config.convert_old(cfg)
+ s = simulation.from_config(conf)
+
env = s.get_env()
assert len(env.topologies['default'].nodes) == 2
assert len(env.topologies['default'].edges) == 1
assert len(env.agents) == 2
- assert env.agents[0].topology == env.topologies['default']
+ assert env.agents[0].G == env.topologies['default']
def test_agents_from_config(self):
'''We test that the known complete configuration produces
@@ -87,12 +89,9 @@ class TestConfig(TestCase):
cfg = serialization.load_file(join(ROOT, "complete_converted.yml"))[0]
s = simulation.from_config(cfg)
env = s.get_env()
- assert len(env.topologies['default'].nodes) == 10
- assert len(env.agents(group='network')) == 10
+ assert len(env.topologies['default'].nodes) == 4
+ assert len(env.agents(group='network')) == 4
assert len(env.agents(group='environment')) == 1
-
- assert sum(1 for a in env.agents(group='network', agent_class=agents.CounterModel)) == 4
- assert sum(1 for a in env.agents(group='network', agent_class=agents.AggregatedCounter)) == 6
def test_yaml(self):
"""
diff --git a/tests/test_examples.py b/tests/test_examples.py
index 1cc4cca..af77c33 100644
--- a/tests/test_examples.py
+++ b/tests/test_examples.py
@@ -2,7 +2,7 @@ from unittest import TestCase
import os
from os.path import join
-from soil import serialization, simulation
+from soil import serialization, simulation, config
ROOT = os.path.abspath(os.path.dirname(__file__))
EXAMPLES = join(ROOT, '..', 'examples')
@@ -14,36 +14,37 @@ class TestExamples(TestCase):
pass
-def make_example_test(path, config):
+def make_example_test(path, cfg):
def wrapped(self):
root = os.getcwd()
- for s in simulation.all_from_config(path):
- iterations = s.config.general.max_time * s.config.general.num_trials
- if iterations > 1000:
- s.config.general.max_time = 100
- s.config.general.num_trials = 1
- if config.get('skip_test', False) and not FORCE_TESTS:
+ for s in simulation.iter_from_config(cfg):
+ iterations = s.max_steps * s.num_trials
+ if iterations < 0 or iterations > 1000:
+ s.max_steps = 100
+ s.num_trials = 1
+ assert isinstance(cfg, config.Config)
+ if getattr(cfg, 'skip_test', False) and not FORCE_TESTS:
self.skipTest('Example ignored.')
envs = s.run_simulation(dry_run=True)
assert envs
for env in envs:
assert env
try:
- n = config['network_params']['n']
+ n = cfg.model_params['network_params']['n']
assert len(list(env.network_agents)) == n
- assert env.now > 0 # It has run
- assert env.now <= config['max_time'] # But not further than allowed
except KeyError:
pass
+ assert env.schedule.steps > 0 # It has run
+ assert env.schedule.steps <= s.max_steps # But not further than allowed
return wrapped
def add_example_tests():
- for config, path in serialization.load_files(
+ for cfg, path in serialization.load_files(
join(EXAMPLES, '*', '*.yml'),
join(EXAMPLES, '*.yml'),
):
- p = make_example_test(path=path, config=config)
+ p = make_example_test(path=path, cfg=config.Config.from_raw(cfg))
fname = os.path.basename(path)
p.__name__ = 'test_example_file_%s' % fname
p.__doc__ = '%s should be a valid configuration' % fname
diff --git a/tests/test_exporters.py b/tests/test_exporters.py
index debc14a..cbd88bd 100644
--- a/tests/test_exporters.py
+++ b/tests/test_exporters.py
@@ -6,6 +6,8 @@ import shutil
from unittest import TestCase
from soil import exporters
from soil import simulation
+from soil import agents
+
class Dummy(exporters.Exporter):
started = False
@@ -33,28 +35,36 @@ class Dummy(exporters.Exporter):
class Exporters(TestCase):
def test_basic(self):
+ # We need to add at least one agent to make sure the scheduler
+ # ticks every step
+ num_trials = 5
+ max_time = 2
config = {
'name': 'exporter_sim',
- 'network_params': {},
- 'agent_class': 'CounterModel',
- 'max_time': 2,
- 'num_trials': 5,
- 'environment_params': {}
+ 'model_params': {
+ 'agents': [{
+ 'agent_class': agents.BaseAgent
+ }]
+ },
+ 'max_time': max_time,
+ 'num_trials': num_trials,
}
s = simulation.from_config(config)
+
for env in s.run_simulation(exporters=[Dummy], dry_run=True):
- assert env.now <= 2
+ assert len(env.agents) == 1
+ assert env.now == max_time
assert Dummy.started
assert Dummy.ended
assert Dummy.called_start == 1
assert Dummy.called_end == 1
- assert Dummy.called_trial == 5
- assert Dummy.trials == 5
- assert Dummy.total_time == 2*5
+ assert Dummy.called_trial == num_trials
+ assert Dummy.trials == num_trials
+ assert Dummy.total_time == max_time * num_trials
def test_writing(self):
- '''Try to write CSV, GEXF, sqlite and YAML (without dry_run)'''
+ '''Try to write CSV, sqlite and YAML (without dry_run)'''
n_trials = 5
config = {
'name': 'exporter_sim',
@@ -74,7 +84,6 @@ class Exporters(TestCase):
envs = s.run_simulation(exporters=[
exporters.default,
exporters.csv,
- exporters.gexf,
],
dry_run=False,
outdir=tmpdir,
@@ -88,11 +97,7 @@ class Exporters(TestCase):
try:
for e in envs:
- with open(os.path.join(simdir, '{}.gexf'.format(e.name))) as f:
- result = f.read()
- assert result
-
- with open(os.path.join(simdir, '{}.csv'.format(e.name))) as f:
+ with open(os.path.join(simdir, '{}.env.csv'.format(e.id))) as f:
result = f.read()
assert result
finally:
diff --git a/tests/test_history.py b/tests/test_history.py
deleted file mode 100644
index 773cfd6..0000000
--- a/tests/test_history.py
+++ /dev/null
@@ -1,128 +0,0 @@
-from unittest import TestCase
-
-import os
-import io
-import yaml
-import copy
-import pickle
-import networkx as nx
-from functools import partial
-
-from os.path import join
-from soil import (simulation, Environment, agents, serialization,
- utils)
-from soil.time import Delta
-from tsih import NoHistory, History
-
-
-ROOT = os.path.abspath(os.path.dirname(__file__))
-EXAMPLES = join(ROOT, '..', 'examples')
-
-
-class CustomAgent(agents.FSM):
- @agents.default_state
- @agents.state
- def normal(self):
- self.neighbors = self.count_agents(state_id='normal',
- limit_neighbors=True)
- @agents.state
- def unreachable(self):
- return
-
-class TestHistory(TestCase):
-
- def test_counter_agent_history(self):
- """
- The evolution of the state should be recorded in the logging agent
- """
- config = {
- 'name': 'CounterAgent',
- 'network_params': {
- 'path': join(ROOT, 'test.gexf')
- },
- 'network_agents': [{
- 'agent_class': 'AggregatedCounter',
- 'weight': 1,
- 'state': {'state_id': 0}
-
- }],
- 'max_time': 10,
- 'environment_params': {
- }
- }
- s = simulation.from_config(config)
- env = s.run_simulation(dry_run=True)[0]
- for agent in env.network_agents:
- last = 0
- assert len(agent[None, None]) == 11
- for step, total in sorted(agent['total', None]):
- assert total == last + 2
- last = total
-
- def test_row_conversion(self):
- env = Environment(history=True)
- env['test'] = 'test_value'
-
- res = list(env.history_to_tuples())
- assert len(res) == len(env.environment_params)
-
- env.schedule.time = 1
- env['test'] = 'second_value'
- res = list(env.history_to_tuples())
-
- assert env['env', 0, 'test' ] == 'test_value'
- assert env['env', 1, 'test' ] == 'second_value'
-
- def test_nohistory(self):
- '''
- Make sure that no history(/sqlite) is used by default
- '''
- env = Environment(topology=nx.Graph(), network_agents=[])
- assert isinstance(env._history, NoHistory)
-
- def test_save_graph_history(self):
- '''
- The history_to_graph method should return a valid networkx graph.
-
- The state of the agent should be encoded as intervals in the nx graph.
- '''
- G = nx.cycle_graph(5)
- distribution = agents.calculate_distribution(None, agents.BaseAgent)
- env = Environment(topology=G, network_agents=distribution, history=True)
- env[0, 0, 'testvalue'] = 'start'
- env[0, 10, 'testvalue'] = 'finish'
- nG = env.history_to_graph()
- values = nG.nodes[0]['attr_testvalue']
- assert ('start', 0, 10) in values
- assert ('finish', 10, None) in values
-
- def test_save_graph_nohistory(self):
- '''
- The history_to_graph method should return a valid networkx graph.
-
- When NoHistory is used, only the last known value is known
- '''
- G = nx.cycle_graph(5)
- distribution = agents.calculate_distribution(None, agents.BaseAgent)
- env = Environment(topology=G, network_agents=distribution, history=False)
- env.get_agent(0)['testvalue'] = 'start'
- env.schedule.time = 10
- env.get_agent(0)['testvalue'] = 'finish'
- nG = env.history_to_graph()
- values = nG.nodes[0]['attr_testvalue']
- assert ('start', 0, None) not in values
- assert ('finish', 10, None) in values
-
- def test_pickle_agent_environment(self):
- env = Environment(name='Test', history=True)
- a = agents.BaseAgent(model=env, unique_id=25)
-
- a['key'] = 'test'
-
- pickled = pickle.dumps(a)
- recovered = pickle.loads(pickled)
-
- assert recovered.env.name == 'Test'
- assert list(recovered.env._history.to_tuples())
- assert recovered['key', 0] == 'test'
- assert recovered['key'] == 'test'
diff --git a/tests/test_main.py b/tests/test_main.py
index a114b6c..6ac26e4 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -24,6 +24,7 @@ class CustomAgent(agents.FSM, agents.NetworkAgent):
def unreachable(self):
return
+
class TestMain(TestCase):
def test_empty_simulation(self):
@@ -79,20 +80,16 @@ class TestMain(TestCase):
}
},
'agents': {
- 'default': {
- 'agent_class': 'CounterModel',
- },
- 'counters': {
- 'topology': 'default',
- 'fixed': [{'state': {'times': 10}}, {'state': {'times': 20}}],
- }
+ 'agent_class': 'CounterModel',
+ 'topology': 'default',
+ 'fixed': [{'state': {'times': 10}}, {'state': {'times': 20}}],
}
}
}
s = simulation.from_config(config)
env = s.get_env()
assert isinstance(env.agents[0], agents.CounterModel)
- assert env.agents[0].topology == env.topologies['default']
+ assert env.agents[0].G == env.topologies['default']
assert env.agents[0]['times'] == 10
assert env.agents[0]['times'] == 10
env.step()
@@ -105,8 +102,8 @@ class TestMain(TestCase):
config = {
'max_time': 10,
'model_params': {
- 'agents': [(CustomAgent, {'weight': 1}),
- (CustomAgent, {'weight': 3}),
+ 'agents': [{'agent_class': CustomAgent, 'weight': 1, 'topology': 'default'},
+ {'agent_class': CustomAgent, 'weight': 3, 'topology': 'default'},
],
'topologies': {
'default': {
@@ -128,7 +125,7 @@ class TestMain(TestCase):
"""A complete example from a documentation should work."""
config = serialization.load_file(join(EXAMPLES, 'torvalds.yml'))[0]
config['model_params']['network_params']['path'] = join(EXAMPLES,
- config['network_params']['path'])
+ config['model_params']['network_params']['path'])
s = simulation.from_config(config)
env = s.run_simulation(dry_run=True)[0]
for a in env.network_agents:
@@ -208,24 +205,6 @@ class TestMain(TestCase):
assert converted[1]['agent_class'] == 'test_main.CustomAgent'
pickle.dumps(converted)
- def test_subgraph(self):
- '''An agent should be able to subgraph the global topology'''
- G = nx.Graph()
- G.add_node(3)
- G.add_edge(1, 2)
- distro = agents.calculate_distribution(agent_class=agents.NetworkAgent)
- distro[0]['topology'] = 'default'
- aconfig = config.AgentConfig(distribution=distro, topology='default')
- env = Environment(name='Test', topologies={'default': G}, agents={'network': aconfig})
- lst = list(env.network_agents)
-
- a2 = env.find_one(node_id=2)
- a3 = env.find_one(node_id=3)
- assert len(a2.subgraph(limit_neighbors=True)) == 2
- assert len(a3.subgraph(limit_neighbors=True)) == 1
- assert len(a3.subgraph(limit_neighbors=True, center=False)) == 0
- assert len(a3.subgraph(agent_class=agents.NetworkAgent)) == 3
-
def test_templates(self):
'''Loading a template should result in several configs'''
configs = serialization.load_file(join(EXAMPLES, 'template.yml'))
@@ -236,14 +215,18 @@ class TestMain(TestCase):
'name': 'until_sim',
'model_params': {
'network_params': {},
- 'agent_class': 'CounterModel',
+ 'agents': {
+ 'fixed': [{
+ 'agent_class': agents.BaseAgent,
+ }]
+ },
},
'max_time': 2,
'num_trials': 50,
}
s = simulation.from_config(config)
runs = list(s.run_simulation(dry_run=True))
- over = list(x.now for x in runs if x.now>2)
+ over = list(x.now for x in runs if x.now > 2)
assert len(runs) == config['num_trials']
assert len(over) == 0
diff --git a/tests/test_network.py b/tests/test_network.py
index b111a94..d984320 100644
--- a/tests/test_network.py
+++ b/tests/test_network.py
@@ -6,7 +6,8 @@ import networkx as nx
from os.path import join
-from soil import network, environment
+from soil import config, network, environment, agents, simulation
+from test_main import CustomAgent
ROOT = os.path.abspath(os.path.dirname(__file__))
EXAMPLES = join(ROOT, '..', 'examples')
@@ -60,22 +61,53 @@ class TestNetwork(TestCase):
G = nx.random_geometric_graph(20, 0.1)
env = environment.NetworkEnvironment(topology=G)
f = io.BytesIO()
- env.dump_gexf(f)
+ assert env.topologies['default']
+ network.dump_gexf(env.topologies['default'], f)
+
+ def test_networkenvironment_creation(self):
+ """Networkenvironment should accept netconfig as parameters"""
+ model_params = {
+ 'topologies': {
+ 'default': {
+ 'path': join(ROOT, 'test.gexf')
+ }
+ },
+ 'agents': {
+ 'topology': 'default',
+ 'distribution': [{
+ 'agent_class': CustomAgent,
+ }]
+ }
+ }
+ env = environment.Environment(**model_params)
+ assert env.topologies
+ env.step()
+ assert len(env.topologies['default']) == 2
+ assert len(env.agents) == 2
+ assert env.agents[1].count_agents(state_id='normal') == 2
+ assert env.agents[1].count_agents(state_id='normal', limit_neighbors=True) == 1
+ assert env.agents[0].neighbors == 1
def test_custom_agent_neighbors(self):
"""Allow for search of neighbors with a certain state_id"""
config = {
- 'network_params': {
- 'path': join(ROOT, 'test.gexf')
+ 'model_params': {
+ 'topologies': {
+ 'default': {
+ 'path': join(ROOT, 'test.gexf')
+ }
+ },
+ 'agents': {
+ 'topology': 'default',
+ 'distribution': [
+ {
+ 'weight': 1,
+ 'agent_class': CustomAgent
+ }
+ ]
+ }
},
- 'network_agents': [{
- 'agent_class': CustomAgent,
- 'weight': 1
-
- }],
'max_time': 10,
- 'environment_params': {
- }
}
s = simulation.from_config(config)
env = s.run_simulation(dry_run=True)[0]
@@ -83,3 +115,19 @@ class TestNetwork(TestCase):
assert env.agents[1].count_agents(state_id='normal', limit_neighbors=True) == 1
assert env.agents[0].neighbors == 1
+ def test_subgraph(self):
+ '''An agent should be able to subgraph the global topology'''
+ G = nx.Graph()
+ G.add_node(3)
+ G.add_edge(1, 2)
+ distro = agents.calculate_distribution(agent_class=agents.NetworkAgent)
+ aconfig = config.AgentConfig(distribution=distro, topology='default')
+ env = environment.Environment(name='Test', topologies={'default': G}, agents=aconfig)
+ lst = list(env.network_agents)
+
+ a2 = env.find_one(node_id=2)
+ a3 = env.find_one(node_id=3)
+ assert len(a2.subgraph(limit_neighbors=True)) == 2
+ assert len(a3.subgraph(limit_neighbors=True)) == 1
+ assert len(a3.subgraph(limit_neighbors=True, center=False)) == 0
+ assert len(a3.subgraph(agent_class=agents.NetworkAgent)) == 3
From d9947c2c525a213f7dc4fac3e21335970f21c78b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Sun, 16 Oct 2022 17:54:03 +0200
Subject: [PATCH 09/39] WIP: all tests pass
Documentation needs some improvement
The API has been simplified to only allow for ONE topology per
NetworkEnvironment.
This covers the main use case, and simplifies the code.
---
CHANGELOG.md | 10 +-
examples/complete.yml | 25 +--
examples/complete_opt2.yml | 63 ------
examples/custom_timeouts/custom_timeouts.py | 4 +-
examples/mesa/mesa.yml | 9 +-
examples/mesa/server.py | 31 +--
examples/mesa/social_wealth.py | 43 ++--
examples/pubcrawl/pubcrawl.py | 2 +-
examples/rabbits/basic/rabbit_agents.py | 14 +-
examples/rabbits/basic/rabbits.yml | 21 +-
examples/rabbits/improved/rabbits.yml | 21 +-
examples/random_delays/random_delays.py | 2 -
requirements.txt | 2 +-
setup.py | 2 +-
soil/__init__.py | 91 +++++----
soil/__main__.py | 7 +-
soil/agents/__init__.py | 123 ++++++------
soil/config.py | 21 +-
soil/debugging.py | 78 +++++--
soil/environment.py | 212 ++++++++++----------
soil/exporters.py | 22 +-
soil/network.py | 25 +--
soil/serialization.py | 49 +----
soil/simulation.py | 60 +++---
soil/time.py | 2 +-
soil/utils.py | 5 +-
tests/complete_converted.yml | 13 +-
tests/test_agents.py | 4 +-
tests/test_config.py | 63 +++---
tests/test_examples.py | 18 +-
tests/test_exporters.py | 67 ++++---
tests/test_main.py | 211 +++++++++----------
tests/test_mesa.py | 16 +-
tests/test_network.py | 93 ++++-----
34 files changed, 693 insertions(+), 736 deletions(-)
delete mode 100644 examples/complete_opt2.yml
diff --git a/CHANGELOG.md b/CHANGELOG.md
index a0a8a2a..0ca9fc3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,14 +5,20 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [0.3 UNRELEASED]
### Added
-* Simple debugging capabilities, with a custom `pdb.Debugger` subclass that exposes commands to list agents and their status and set breakpoints on states (for FSM agents)
+* Simple debugging capabilities in `soil.debugging`, with a custom `pdb.Debugger` subclass that exposes commands to list agents and their status and set breakpoints on states (for FSM agents). Try it with `soil --debug `
+* Ability to run
+* Ability to
+* The `soil.exporters` module to export the results of datacollectors (model.datacollector) into files at the end of trials/simulations
+* A modular set of classes for environments/models. Now the ability to configure the agents through an agent definition and a topology through a network configuration is split into two classes (`soil.agents.BaseEnvironment` for agents, `soil.agents.NetworkEnvironment` to add topology).
+* FSM agents can now have generators as states. They work similar to normal states, with one caveat. Only `time` values can be yielded, not a state. This is because the state will not change, it will be resumed after the yield, at the appropriate time. The return value *can* be a state, or a `(state, time)` tuple, just like in normal states.
### Changed
* Configuration schema is very different now. Check `soil.config` for more information. We are also using Pydantic for (de)serialization.
* There may be more than one topology/network in the simulation
-* Agents are split into groups now. Each group may be assigned a given set of agents or an agent distribution, and a network topology to be assigned to.
+* Ability
### Removed
* Any `tsih` and `History` integration in the main classes. To record the state of environments/agents, just use a datacollector. In some cases this may be slower or consume more memory than the previous system. However, few cases actually used the full potential of the history, and it came at the cost of unnecessary complexity and worse performance for the majority of cases.
+
## [0.20.7]
### Changed
* Creating a `time.When` from another `time.When` does not nest them anymore (it returns the argument)
diff --git a/examples/complete.yml b/examples/complete.yml
index 2677c22..130b1e7 100644
--- a/examples/complete.yml
+++ b/examples/complete.yml
@@ -10,19 +10,14 @@ seed: "CompleteSeed!"
model_class: Environment
model_params:
am_i_complete: true
- topologies:
- default:
- params:
- generator: complete_graph
- n: 10
- another_graph:
- params:
- generator: complete_graph
- n: 2
+ topology:
+ params:
+ generator: complete_graph
+ n: 12
environment:
agents:
agent_class: CounterModel
- topology: default
+ topology: true
state:
times: 1
# In this group we are not specifying any topology
@@ -30,25 +25,23 @@ model_params:
- name: 'Environment Agent 1'
agent_class: BaseAgent
group: environment
- topology: null
+ topology: false
hidden: true
state:
times: 10
- agent_class: CounterModel
id: 0
- group: other_counters
- topology: another_graph
+ group: fixed_counters
state:
times: 1
total: 0
- agent_class: CounterModel
- topology: another_graph
- group: other_counters
+ group: fixed_counters
id: 1
distribution:
- agent_class: CounterModel
weight: 1
- group: general_counters
+ group: distro_counters
state:
times: 3
- agent_class: AggregatedCounter
diff --git a/examples/complete_opt2.yml b/examples/complete_opt2.yml
deleted file mode 100644
index b4acc26..0000000
--- a/examples/complete_opt2.yml
+++ /dev/null
@@ -1,63 +0,0 @@
----
-version: '2'
-id: simple
-group: tests
-dir_path: "/tmp/"
-num_trials: 3
-max_steps: 100
-interval: 1
-seed: "CompleteSeed!"
-model_class: "soil.Environment"
-model_params:
- topologies:
- default:
- params:
- generator: complete_graph
- n: 10
- another_graph:
- params:
- generator: complete_graph
- n: 2
- agents:
- # The values here will be used as default values for any agent
- agent_class: CounterModel
- topology: default
- state:
- times: 1
- # This specifies a distribution of agents, each with a `weight` or an explicit number of agents
- distribution:
- - agent_class: CounterModel
- weight: 1
- # This is inherited from the default settings
- #topology: default
- state:
- times: 3
- - agent_class: AggregatedCounter
- topology: default
- weight: 0.2
- fixed:
- - name: 'Environment Agent 1'
- # All the other agents will assigned to the 'default' group
- group: environment
- # Do not count this agent towards total limits
- hidden: true
- agent_class: soil.BaseAgent
- topology: null
- state:
- times: 10
- - agent_class: CounterModel
- topology: another_graph
- id: 0
- state:
- times: 1
- total: 0
- - agent_class: CounterModel
- topology: another_graph
- id: 1
- override:
- # 2 agents that match this filter will be updated to match the state {times: 5}
- - filter:
- agent_class: AggregatedCounter
- n: 2
- state:
- times: 5
diff --git a/examples/custom_timeouts/custom_timeouts.py b/examples/custom_timeouts/custom_timeouts.py
index 16b8d66..b269c0a 100644
--- a/examples/custom_timeouts/custom_timeouts.py
+++ b/examples/custom_timeouts/custom_timeouts.py
@@ -15,6 +15,7 @@ class Fibonacci(FSM):
prev, self['prev'] = self['prev'], max([self.now, self['prev']])
return None, self.env.timeout(prev)
+
class Odds(FSM):
'''Agent that only executes in odd t_steps'''
@default_state
@@ -23,9 +24,8 @@ class Odds(FSM):
self.log('Stopping at {}'.format(self.now))
return None, self.env.timeout(1+self.now%2)
+
if __name__ == '__main__':
- import logging
- logging.basicConfig(level=logging.INFO)
from soil import Simulation
s = Simulation(network_agents=[{'ids': [0], 'agent_class': Fibonacci},
{'ids': [1], 'agent_class': Odds}],
diff --git a/examples/mesa/mesa.yml b/examples/mesa/mesa.yml
index 6bdae6f..eb10b8d 100644
--- a/examples/mesa/mesa.yml
+++ b/examples/mesa/mesa.yml
@@ -8,17 +8,12 @@ interval: 1
seed: '1'
model_class: social_wealth.MoneyEnv
model_params:
- topologies:
- default:
- params:
- generator: social_wealth.graph_generator
- n: 5
+ generator: social_wealth.graph_generator
agents:
+ topology: true
distribution:
- agent_class: social_wealth.SocialMoneyAgent
- topology: default
weight: 1
- mesa_agent_class: social_wealth.MoneyAgent
N: 10
width: 50
height: 50
diff --git a/examples/mesa/server.py b/examples/mesa/server.py
index fc9b0b1..7fe820f 100644
--- a/examples/mesa/server.py
+++ b/examples/mesa/server.py
@@ -2,6 +2,7 @@ from mesa.visualization.ModularVisualization import ModularServer
from soil.visualization import UserSettableParameter
from mesa.visualization.modules import ChartModule, NetworkModule, CanvasGrid
from social_wealth import MoneyEnv, graph_generator, SocialMoneyAgent
+import networkx as nx
class MyNetwork(NetworkModule):
@@ -13,15 +14,16 @@ def network_portrayal(env):
# The model ensures there is 0 or 1 agent per node
portrayal = dict()
+ wealths = {node_id: data['agent'].wealth for (node_id, data) in env.G.nodes(data=True)}
portrayal["nodes"] = [
{
- "id": agent_id,
- "size": env.get_agent(agent_id).wealth,
- # "color": "#CC0000" if not agents or agents[0].wealth == 0 else "#007959",
- "color": "#CC0000",
- "label": f"{agent_id}: {env.get_agent(agent_id).wealth}",
- }
- for (agent_id) in env.G.nodes
+ "id": node_id,
+ "size": 2*(wealth+1),
+ "color": "#CC0000" if wealth == 0 else "#007959",
+ # "color": "#CC0000",
+ "label": f"{node_id}: {wealth}",
+ } for (node_id, wealth) in wealths.items()
+
]
portrayal["edges"] = [
@@ -29,7 +31,6 @@ def network_portrayal(env):
for edge_id, (source, target) in enumerate(env.G.edges)
]
-
return portrayal
@@ -55,7 +56,7 @@ def gridPortrayal(agent):
}
-grid = MyNetwork(network_portrayal, 500, 500, library="sigma")
+grid = MyNetwork(network_portrayal, 500, 500)
chart = ChartModule(
[{"Label": "Gini", "Color": "Black"}], data_collector_name="datacollector"
)
@@ -70,7 +71,6 @@ model_params = {
1,
description="Choose how many agents to include in the model",
),
- "network_agents": [{"agent_class": SocialMoneyAgent}],
"height": UserSettableParameter(
"slider",
"height",
@@ -89,12 +89,15 @@ model_params = {
1,
description="Grid width",
),
- "network_params": {
- 'generator': graph_generator
- },
+ "agent_class": UserSettableParameter('choice', 'Agent class', value='MoneyAgent',
+ choices=['MoneyAgent', 'SocialMoneyAgent']),
+ "generator": graph_generator,
}
-canvas_element = CanvasGrid(gridPortrayal, model_params["width"].value, model_params["height"].value, 500, 500)
+
+canvas_element = CanvasGrid(gridPortrayal,
+ model_params["width"].value,
+ model_params["height"].value, 500, 500)
server = ModularServer(
diff --git a/examples/mesa/social_wealth.py b/examples/mesa/social_wealth.py
index b20bc9a..c8b1701 100644
--- a/examples/mesa/social_wealth.py
+++ b/examples/mesa/social_wealth.py
@@ -10,7 +10,7 @@ from mesa.batchrunner import BatchRunner
import networkx as nx
-from soil import NetworkAgent, Environment
+from soil import NetworkAgent, Environment, serialization
def compute_gini(model):
agent_wealths = [agent.wealth for agent in model.agents]
@@ -19,15 +19,16 @@ def compute_gini(model):
B = sum( xi * (N-i) for i,xi in enumerate(x) ) / (N*sum(x))
return (1 + (1/N) - 2*B)
+
class MoneyAgent(MesaAgent):
"""
A MESA agent with fixed initial wealth.
It will only share wealth with neighbors based on grid proximity
"""
- def __init__(self, unique_id, model):
+ def __init__(self, unique_id, model, wealth=1):
super().__init__(unique_id=unique_id, model=model)
- self.wealth = 1
+ self.wealth = wealth
def move(self):
possible_steps = self.model.grid.get_neighborhood(
@@ -45,7 +46,7 @@ class MoneyAgent(MesaAgent):
self.wealth -= 1
def step(self):
- self.info("Crying wolf", self.pos)
+ print("Crying wolf", self.pos)
self.move()
if self.wealth > 0:
self.give_money()
@@ -58,8 +59,8 @@ class SocialMoneyAgent(NetworkAgent, MoneyAgent):
cellmates = set(self.model.grid.get_cell_list_contents([self.pos]))
friends = set(self.get_neighboring_agents())
self.info("Trying to give money")
- self.debug("Cellmates: ", cellmates)
- self.debug("Friends: ", friends)
+ self.info("Cellmates: ", cellmates)
+ self.info("Friends: ", friends)
nearby_friends = list(cellmates & friends)
@@ -68,14 +69,29 @@ class SocialMoneyAgent(NetworkAgent, MoneyAgent):
other.wealth += 1
self.wealth -= 1
+def graph_generator(n=5):
+ G = nx.Graph()
+ for ix in range(n):
+ G.add_edge(0, ix)
+ return G
+
class MoneyEnv(Environment):
"""A model with some number of agents."""
- def __init__(self, width, height, *args, topologies, **kwargs):
+ def __init__(self, width, height, N, generator=graph_generator,
+ agent_class=SocialMoneyAgent,
+ topology=None, **kwargs):
- super().__init__(*args, topologies=topologies, **kwargs)
+ generator = serialization.deserialize(generator)
+ agent_class = serialization.deserialize(agent_class, globs=globals())
+ topology = generator(n=N)
+ super().__init__(topology=topology,
+ N=N,
+ **kwargs)
self.grid = MultiGrid(width, height, False)
+ self.populate_network(agent_class=agent_class)
+
# Create agents
for agent in self.agents:
x = self.random.randrange(self.grid.width)
@@ -87,17 +103,9 @@ class MoneyEnv(Environment):
agent_reporters={"Wealth": "wealth"})
-def graph_generator(n=5):
- G = nx.Graph()
- for ix in range(n):
- G.add_edge(0, ix)
- return G
-
if __name__ == '__main__':
-
- G = graph_generator()
- fixed_params = {"topology": G,
+ fixed_params = {"generator": nx.complete_graph,
"width": 10,
"network_agents": [{"agent_class": SocialMoneyAgent,
'weight': 1}],
@@ -116,4 +124,3 @@ if __name__ == '__main__':
run_data = batch_run.get_model_vars_dataframe()
run_data.head()
print(run_data.Gini)
-
diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py
index e100893..b220856 100644
--- a/examples/pubcrawl/pubcrawl.py
+++ b/examples/pubcrawl/pubcrawl.py
@@ -126,7 +126,7 @@ class Patron(FSM, NetworkAgent):
success depend on both agents' openness.
'''
if force or self['openness'] > self.random.random():
- self.model.add_edge(self, other_agent)
+ self.add_edge(self, other_agent)
self.info('Made some friend {}'.format(other_agent))
return True
return False
diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py
index 2d5cf40..fc7b73b 100644
--- a/examples/rabbits/basic/rabbit_agents.py
+++ b/examples/rabbits/basic/rabbit_agents.py
@@ -57,7 +57,7 @@ class Male(RabbitModel):
class Female(RabbitModel):
- gestation = 100
+ gestation = 30
@state
def fertile(self):
@@ -72,10 +72,10 @@ class Female(RabbitModel):
self.pregnancy = -1
self.set_state(self.pregnant, when=self.now)
self.number_of_babies = int(8+4*self.random.random())
- self.debug('I am pregnant')
@state
def pregnant(self):
+ self.debug('I am pregnant')
self.age += 1
self.pregnancy += 1
@@ -88,7 +88,6 @@ class Female(RabbitModel):
state = {}
agent_class = self.random.choice([Male, Female])
child = self.model.add_node(agent_class=agent_class,
- topology=self.topology,
**state)
child.add_edge(self)
try:
@@ -113,7 +112,7 @@ class RandomAccident(BaseAgent):
level = logging.INFO
def step(self):
- rabbits_alive = self.model.topology.number_of_nodes()
+ rabbits_alive = self.model.G.number_of_nodes()
if not rabbits_alive:
return self.die()
@@ -121,10 +120,15 @@ class RandomAccident(BaseAgent):
prob_death = self.model.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive)))
self.debug('Killing some rabbits with prob={}!'.format(prob_death))
for i in self.iter_agents(agent_class=RabbitModel):
- if i.state.id == i.dead.id:
+ if i.state_id == i.dead.id:
continue
if self.prob(prob_death):
self.info('I killed a rabbit: {}'.format(i.id))
rabbits_alive -= 1
i.set_state(i.dead)
self.debug('Rabbits alive: {}'.format(rabbits_alive))
+
+if __name__ == '__main__':
+ from soil import easy
+ sim = easy('rabbits.yml')
+ sim.run()
diff --git a/examples/rabbits/basic/rabbits.yml b/examples/rabbits/basic/rabbits.yml
index facaefe..6945f67 100644
--- a/examples/rabbits/basic/rabbits.yml
+++ b/examples/rabbits/basic/rabbits.yml
@@ -10,18 +10,16 @@ max_time: 100
model_class: soil.environment.Environment
model_params:
agents:
- topology: default
+ topology: true
agent_class: rabbit_agents.RabbitModel
distribution:
- agent_class: rabbit_agents.Male
- topology: default
weight: 1
- agent_class: rabbit_agents.Female
- topology: default
weight: 1
fixed:
- agent_class: rabbit_agents.RandomAccident
- topology: null
+ topology: false
hidden: true
state:
group: environment
@@ -29,13 +27,12 @@ model_params:
group: network
mating_prob: 0.1
prob_death: 0.001
- topologies:
- default:
- topology:
- directed: true
- links: []
- nodes:
- - id: 1
- - id: 0
+ topology:
+ fixed:
+ directed: true
+ links: []
+ nodes:
+ - id: 1
+ - id: 0
extra:
visualization_params: {}
diff --git a/examples/rabbits/improved/rabbits.yml b/examples/rabbits/improved/rabbits.yml
index ce5dd68..dd13c4e 100644
--- a/examples/rabbits/improved/rabbits.yml
+++ b/examples/rabbits/improved/rabbits.yml
@@ -10,18 +10,16 @@ max_time: 100
model_class: soil.environment.Environment
model_params:
agents:
- topology: default
+ topology: true
agent_class: rabbit_agents.RabbitModel
distribution:
- agent_class: rabbit_agents.Male
- topology: default
weight: 1
- agent_class: rabbit_agents.Female
- topology: default
weight: 1
fixed:
- agent_class: rabbit_agents.RandomAccident
- topology: null
+ topology: false
hidden: true
state:
group: environment
@@ -29,13 +27,12 @@ model_params:
group: network
mating_prob: 0.1
prob_death: 0.001
- topologies:
- default:
- topology:
- directed: true
- links: []
- nodes:
- - id: 1
- - id: 0
+ topology:
+ fixed:
+ directed: true
+ links: []
+ nodes:
+ - id: 1
+ - id: 0
extra:
visualization_params: {}
diff --git a/examples/random_delays/random_delays.py b/examples/random_delays/random_delays.py
index 52dd55e..8455e5e 100644
--- a/examples/random_delays/random_delays.py
+++ b/examples/random_delays/random_delays.py
@@ -4,7 +4,6 @@ Example of a fully programmatic simulation, without definition files.
'''
from soil import Simulation, agents
from soil.time import Delta
-import logging
@@ -40,5 +39,4 @@ s = Simulation(name='Programmatic',
dry_run=True)
-logging.basicConfig(level=logging.INFO)
envs = s.run()
diff --git a/requirements.txt b/requirements.txt
index 8383887..834b156 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,6 +5,6 @@ pyyaml>=5.1
pandas>=1
SALib>=1.3
Jinja2
-Mesa>=1
+Mesa>=1.1
pydantic>=1.9
sqlalchemy>=1.4
diff --git a/setup.py b/setup.py
index 151ae7e..e9b3df6 100644
--- a/setup.py
+++ b/setup.py
@@ -53,6 +53,6 @@ setup(
include_package_data=True,
entry_points={
'console_scripts':
- ['soil = soil.__init__:main',
+ ['soil = soil.__main__:main',
'soil-web = soil.web.__init__:main']
})
diff --git a/soil/__init__.py b/soil/__init__.py
index 9219e04..be53c47 100644
--- a/soil/__init__.py
+++ b/soil/__init__.py
@@ -21,7 +21,8 @@ from . import serialization
from .utils import logger
from .time import *
-def main(cfg='simulation.yml', **kwargs):
+
+def main(cfg='simulation.yml', exporters=None, parallel=None, output="soil_output", *, do_run=False, debug=False, **kwargs):
import argparse
from . import simulation
@@ -48,16 +49,19 @@ def main(cfg='simulation.yml', **kwargs):
help='Dump all data collected in CSV format. Defaults to false.')
parser.add_argument('--level', type=str,
help='Logging level')
- parser.add_argument('--output', '-o', type=str, default="soil_output",
+ parser.add_argument('--output', '-o', type=str, default=output or "soil_output",
help='folder to write results to. It defaults to the current directory.')
- parser.add_argument('--synchronous', action='store_true',
- help='Run trials serially and synchronously instead of in parallel. Defaults to false.')
+ if parallel is None:
+ parser.add_argument('--synchronous', action='store_true',
+ help='Run trials serially and synchronously instead of in parallel. Defaults to false.')
+
parser.add_argument('-e', '--exporter', action='append',
+ default=[],
help='Export environment and/or simulations using this exporter')
+
parser.add_argument('--only-convert', '--convert', action='store_true',
help='Do not run the simulation, only convert the configuration file(s) and output them.')
-
parser.add_argument("--set",
metavar="KEY=VALUE",
action='append',
@@ -74,32 +78,49 @@ def main(cfg='simulation.yml', **kwargs):
if args.version:
return
+ if parallel is None:
+ parallel = not args.synchronous
+
+ exporters = exporters or ['default', ]
+ for exp in args.exporter:
+ if exp not in exporters:
+ exporters.append(exp)
+ if args.csv:
+ exporters.append('csv')
+ if args.graph:
+ exporters.append('gexf')
+
if os.getcwd() not in sys.path:
sys.path.append(os.getcwd())
if args.module:
importlib.import_module(args.module)
+ if output is None:
+ output = args.output
+
logger.info('Loading config file: {}'.format(args.file))
- if args.pdb or args.debug:
- args.synchronous = True
- if args.debug:
- os.environ['SOIL_DEBUG'] = 'true'
+ debug = debug or args.debug
+ if args.pdb or debug:
+ args.synchronous = True
+
+
+ res = []
try:
- exporters = list(args.exporter or ['default', ])
- if args.csv:
- exporters.append('csv')
- if args.graph:
- exporters.append('gexf')
exp_params = {}
- if args.dry_run:
- exp_params['copy_to'] = sys.stdout
if not os.path.exists(args.file):
logger.error('Please, input a valid file')
return
- for sim in simulation.iter_from_config(args.file):
+
+ for sim in simulation.iter_from_config(args.file,
+ dry_run=args.dry_run,
+ exporters=exporters,
+ parallel=parallel,
+ outdir=output,
+ exporter_params=exp_params,
+ **kwargs):
if args.set:
for s in args.set:
k, v = s.split('=', 1)[:2]
@@ -117,16 +138,14 @@ def main(cfg='simulation.yml', **kwargs):
except AttributeError:
target[tail] = v
- if args.only_convert:
- print(sim.to_yaml())
- continue
-
- sim.run_simulation(dry_run=args.dry_run,
- exporters=exporters,
- parallel=(not args.synchronous),
- outdir=args.output,
- exporter_params=exp_params,
- **kwargs)
+ if args.only_convert:
+ print(sim.to_yaml())
+ continue
+ if do_run:
+ res.append(sim.run())
+ else:
+ print('not running')
+ res.append(sim)
except Exception as ex:
if args.pdb:
@@ -135,12 +154,16 @@ def main(cfg='simulation.yml', **kwargs):
post_mortem()
else:
raise
+ if debug:
+ from .debugging import set_trace
+ os.environ['SOIL_DEBUG'] = 'true'
+ set_trace()
+ return res
+
+
+def easy(cfg, debug=False, **kwargs):
+ return main(cfg, **kwargs)[0]
+
-def easy(cfg, debug=False):
- sim = simulation.from_config(cfg)
- if debug or os.environ.get('SOIL_DEBUG'):
- from .debugging import setup
- setup(sys._getframe().f_back)
- return sim
if __name__ == '__main__':
- main()
+ main(do_run=True)
diff --git a/soil/__main__.py b/soil/__main__.py
index c7c70d0..9ad5c4f 100644
--- a/soil/__main__.py
+++ b/soil/__main__.py
@@ -1,4 +1,7 @@
-from . import main
+from . import main as init_main
+
+def main():
+ init_main(do_run=True)
if __name__ == '__main__':
- main()
+ init_main(do_run=True)
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index c7763f2..ad3e4a7 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -47,7 +47,7 @@ class MetaAgent(ABCMeta):
}
for attr, func in namespace.items():
- if isinstance(func, types.FunctionType) or isinstance(func, property) or attr[0] == '_':
+ if isinstance(func, types.FunctionType) or isinstance(func, property) or isinstance(func, classmethod) or attr[0] == '_':
new_nmspc[attr] = func
elif attr == 'defaults':
defaults.update(func)
@@ -113,21 +113,18 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
def id(self):
return self.unique_id
- @property
- def state(self):
- '''
- Return the agent itself, which behaves as a dictionary.
-
- This method shouldn't be used, but is kept here for backwards compatibility.
- '''
- return self
-
- @state.setter
- def state(self, value):
- if not value:
- return
- for k, v in value.items():
- self[k] = v
+ @classmethod
+ def from_dict(cls, model, attrs, warn_extra=True):
+ ignored = {}
+ args = {}
+ for k, v in attrs.items():
+ if k in inspect.signature(cls).parameters:
+ args[k] = v
+ else:
+ ignored[k] = v
+ if ignored and warn_extra:
+ utils.logger.info(f'Ignoring the following arguments for agent class { agent_class.__name__ }: { ignored }')
+ return cls(model=model, **args)
def __getitem__(self, key):
try:
@@ -232,18 +229,27 @@ class NetworkAgent(BaseAgent):
def __init__(self, *args, topology, node_id, **kwargs):
super().__init__(*args, **kwargs)
- self.topology = topology
- self.node_id = node_id
- self.G = self.model.topologies[topology]
+ assert topology is not None
+ assert node_id is not None
+ self.G = topology
assert self.G
+ self.node_id = node_id
def count_neighboring_agents(self, state_id=None, **kwargs):
return len(self.get_neighboring_agents(state_id=state_id, **kwargs))
- def get_neighboring_agents(self, state_id=None, **kwargs):
- return self.get_agents(limit_neighbors=True, state_id=state_id, **kwargs)
+ def get_neighboring_agents(self, **kwargs):
+ return list(self.iter_agents(limit_neighbors=True, **kwargs))
- def iter_agents(self, unique_id=None, limit_neighbors=False, **kwargs):
+ def add_edge(self, other):
+ self.topology.add_edge(self.node_id, other.node_id)
+
+ @property
+ def node(self):
+ return self.topology.nodes[self.node_id]
+
+
+ def iter_agents(self, unique_id=None, *, limit_neighbors=False, **kwargs):
unique_ids = None
if isinstance(unique_id, list):
unique_ids = set(unique_id)
@@ -253,7 +259,7 @@ class NetworkAgent(BaseAgent):
if limit_neighbors:
neighbor_ids = set()
for node_id in self.G.neighbors(self.node_id):
- if self.G.nodes[node_id].get('agent_id') is not None:
+ if self.G.nodes[node_id].get('agent') is not None:
neighbor_ids.add(node_id)
if unique_ids:
unique_ids = unique_ids & neighbor_ids
@@ -697,7 +703,7 @@ def filter_agents(agents, *id_args, unique_id=None, state_id=None, agent_class=N
state.update(kwargs)
for k, v in state.items():
- f = filter(lambda agent: agent.state.get(k, None) == v, f)
+ f = filter(lambda agent: getattr(agent, k, None) == v, f)
if limit is not None:
f = islice(f, limit)
@@ -705,7 +711,7 @@ def filter_agents(agents, *id_args, unique_id=None, state_id=None, agent_class=N
yield from f
-def from_config(cfg: config.AgentConfig, random, topologies: Dict[str, nx.Graph] = None) -> List[Dict[str, Any]]:
+def from_config(cfg: config.AgentConfig, random, topology: nx.Graph = None) -> List[Dict[str, Any]]:
'''
This function turns an agentconfig into a list of individual "agent specifications", which are just a dictionary
with the parameters that the environment will use to construct each agent.
@@ -716,40 +722,40 @@ def from_config(cfg: config.AgentConfig, random, topologies: Dict[str, nx.Graph]
default = cfg or config.AgentConfig()
if not isinstance(cfg, config.AgentConfig):
cfg = config.AgentConfig(**cfg)
- return _agents_from_config(cfg, topologies=topologies, random=random)
+ return _agents_from_config(cfg, topology=topology, random=random)
def _agents_from_config(cfg: config.AgentConfig,
- topologies: Dict[str, nx.Graph],
+ topology: nx.Graph,
random) -> List[Dict[str, Any]]:
if cfg and not isinstance(cfg, config.AgentConfig):
cfg = config.AgentConfig(**cfg)
agents = []
- assigned = defaultdict(int)
+ assigned_total = 0
+ assigned_network = 0
if cfg.fixed is not None:
- agents, counts = _from_fixed(cfg.fixed, topology=cfg.topology, default=cfg)
- assigned.update(counts)
+ agents, assigned_total, assigned_network = _from_fixed(cfg.fixed, topology=cfg.topology, default=cfg)
n = cfg.n
if cfg.distribution:
- topo_size = {top: len(topologies[top]) for top in topologies}
+ topo_size = len(topology) if topology else 0
- grouped = defaultdict(list)
+ networked = []
total = []
for d in cfg.distribution:
if d.strategy == config.Strategy.topology:
- topology = d.topology if ('topology' in d.__fields_set__) else cfg.topology
- if not topology:
- raise ValueError('The "topology" strategy only works if the topology parameter is specified')
- if topology not in topo_size:
- raise ValueError(f'Unknown topology selected: { topology }. Make sure the topology has been defined')
+ topo = d.topology if ('topology' in d.__fields_set__) else cfg.topology
+ if not topo:
+ raise ValueError('The "topology" strategy only works if the topology parameter is set to True')
+ if not topo_size:
+ raise ValueError(f'Topology does not have enough free nodes to assign one to the agent')
- grouped[topology].append(d)
+ networked.append(d)
if d.strategy == config.Strategy.total:
if not cfg.n:
@@ -757,41 +763,36 @@ def _agents_from_config(cfg: config.AgentConfig,
total.append(d)
- for (topo, distro) in grouped.items():
- if not topologies or topo not in topo_size:
- raise ValueError(
- 'You need to specify a target number of agents for the distribution \
- or a configuration with a topology, along with a dictionary with \
- all the available topologies')
- n = len(topologies[topo])
- target = topo_size[topo] - assigned[topo]
- new_agents = _from_distro(cfg.distribution, target,
+ if networked:
+ new_agents = _from_distro(networked,
+ n= topo_size - assigned_network,
topology=topo,
default=cfg,
random=random)
- assigned[topo] += len(new_agents)
+ assigned_total += len(new_agents)
+ assigned_network += len(new_agents)
agents += new_agents
if total:
- remaining = n - sum(assigned.values())
- agents += _from_distro(total, remaining,
- topology='', # DO NOT assign to any topology
- default=cfg,
- random=random)
+ remaining = n - assigned_total
+ agents += _from_distro(total, n=remaining,
+ default=cfg,
+ random=random)
- if sum(assigned.values()) != sum(topo_size.values()):
+ if assigned_network < topo_size:
utils.logger.warn(f'The total number of agents does not match the total number of nodes in '
'every topology. This may be due to a definition error: assigned: '
- f'{ assigned } total sizes: { topo_size }')
+ f'{ assigned } total size: { topo_size }')
return agents
-def _from_fixed(lst: List[config.FixedAgentConfig], topology: str, default: config.SingleAgentConfig) -> List[Dict[str, Any]]:
+def _from_fixed(lst: List[config.FixedAgentConfig], topology: bool, default: config.SingleAgentConfig) -> List[Dict[str, Any]]:
agents = []
- counts = {}
+ counts_total = 0
+ counts_network = 0
for fixed in lst:
agent = {}
@@ -803,12 +804,13 @@ def _from_fixed(lst: List[config.FixedAgentConfig], topology: str, default: conf
topo = fixed.topology if ('topology' in fixed.__fields_set__) else topology or default.topology
if topo:
- agent['topology'] = topo
+ agent['topology'] = True
+ counts_network += 1
if not fixed.hidden:
- counts[topo] = counts.get(topo, 0) + 1
+ counts_total += 1
agents.append(agent)
- return agents, counts
+ return agents, counts_total, counts_network
def _from_distro(distro: List[config.AgentDistro],
@@ -854,7 +856,6 @@ def _from_distro(distro: List[config.AgentDistro],
agent['agent_class'] = cls
if default:
agent.update(default.state)
- # agent = cls(unique_id=agent_id, model=env, **state)
topology = d.topology if ('topology' in d.__fields_set__) else topology or default.topology
if topology:
agent['topology'] = topology
diff --git a/soil/config.py b/soil/config.py
index 20934db..7b39154 100644
--- a/soil/config.py
+++ b/soil/config.py
@@ -43,7 +43,7 @@ class NetParams(BaseModel, extra=Extra.allow):
class NetConfig(BaseModel):
params: Optional[NetParams]
- topology: Optional[Union[Topology, nx.Graph]]
+ fixed: Optional[Union[Topology, nx.Graph]]
path: Optional[str]
class Config:
@@ -70,7 +70,7 @@ class EnvConfig(BaseModel):
class SingleAgentConfig(BaseModel):
agent_class: Optional[Union[Type, str]] = None
unique_id: Optional[int] = None
- topology: Optional[str] = None
+ topology: Optional[bool] = False
node_id: Optional[Union[int, str]] = None
state: Optional[Dict[str, Any]] = {}
@@ -81,8 +81,8 @@ class FixedAgentConfig(SingleAgentConfig):
@root_validator
def validate_all(cls, values):
- if values.get('agent_id', None) is not None and values.get('n', 1) > 1:
- raise ValueError(f"An agent_id can only be provided when there is only one agent ({values.get('n')} given)")
+ if values.get('unique_id', None) is not None and values.get('n', 1) > 1:
+ raise ValueError(f"An unique_id can only be provided when there is only one agent ({values.get('n')} given)")
return values
@@ -102,7 +102,6 @@ class AgentDistro(SingleAgentConfig):
class AgentConfig(SingleAgentConfig):
n: Optional[int] = None
- topology: Optional[str]
distribution: Optional[List[AgentDistro]] = None
fixed: Optional[List[FixedAgentConfig]] = None
override: Optional[List[OverrideAgentConfig]] = None
@@ -171,9 +170,9 @@ def convert_old(old, strict=True):
else:
network.setdefault('params', {})[k] = v
- topologies = {}
+ topology = None
if network:
- topologies['default'] = network
+ topology = network
agents = {'fixed': [], 'distribution': []}
@@ -195,7 +194,7 @@ def convert_old(old, strict=True):
agent['state']['name'] = agent['agent_id']
del agent['agent_id']
agent['hidden'] = True
- agent['topology'] = None
+ agent['topology'] = False
fixed.append(updated_agent(agent))
del new['environment_agents']
@@ -209,7 +208,7 @@ def convert_old(old, strict=True):
agents['state'] = old['default_state']
if 'network_agents' in old:
- agents['topology'] = 'default'
+ agents['topology'] = True
agents.setdefault('state', {})['group'] = 'network'
@@ -224,7 +223,7 @@ def convert_old(old, strict=True):
del new['network_agents']
if 'agent_class' in old and (not fixed and not by_weight):
- agents['topology'] = 'default'
+ agents['topology'] = True
by_weight = [{'agent_class': old['agent_class'], 'weight': 1}]
@@ -258,7 +257,7 @@ def convert_old(old, strict=True):
del new['dump']
new['dry_run'] = not old['dump']
- model_params['topologies'] = topologies
+ model_params['topology'] = topology
model_params['agents'] = agents
return Config(version='2',
diff --git a/soil/debugging.py b/soil/debugging.py
index 98c25e1..863c50a 100644
--- a/soil/debugging.py
+++ b/soil/debugging.py
@@ -30,7 +30,9 @@ def wrapcmd(func):
class Debug(pdb.Pdb):
def __init__(self, *args, skip_soil=False, **kwargs):
skip = kwargs.get('skip', [])
+ skip.append('soil')
if skip_soil:
+ skip.append('soil')
skip.append('soil.*')
skip.append('mesa.*')
super(Debug, self).__init__(*args, skip=skip, **kwargs)
@@ -54,8 +56,14 @@ class Debug(pdb.Pdb):
do_sl = do_soil_list
+ def do_continue_state(self, arg):
+ self.do_break_state(arg, temporary=True)
+ return self.do_continue('')
+
+ do_cs = do_continue_state
+
@wrapcmd
- def do_soil_self():
+ def do_soil_agent():
if not agent:
print('No agent available')
return
@@ -70,23 +78,31 @@ class Debug(pdb.Pdb):
print(agent.to_str(pretty=True, keys=keys))
- do_ss = do_soil_self
+ do_aa = do_soil_agent
- def do_break_state(self, arg: str, temporary=False):
+ def do_break_state(self, arg: str, instances=None, temporary=False):
'''
Break before a specified state is stepped into.
'''
klass = None
- state = arg.strip()
+ state = arg
if not state:
self.error("Specify at least a state name")
return
- comma = arg.find(':')
- if comma > 0:
- state = arg[comma+1:].lstrip()
- klass = arg[:comma].rstrip()
+ state, *tokens = state.lstrip().split()
+ if tokens:
+ instances = list(eval(token) for token in tokens)
+
+ colon = state.find(':')
+
+ if colon > 0:
+ klass = state[:colon].rstrip()
+ state = state[colon+1:].strip()
+
+
+ print(klass, state, tokens)
klass = eval(klass,
self.curframe.f_globals,
self.curframe_locals)
@@ -95,14 +111,16 @@ class Debug(pdb.Pdb):
klasses = [klass]
else:
klasses = [k for k in self.curframe.f_globals.values() if isinstance(k, type) and issubclass(k, FSM)]
- print(klasses)
- if not klasses:
- self.error('No agent classes found')
+
+ if not klasses:
+ self.error('No agent classes found')
+
for klass in klasses:
try:
func = getattr(klass, state)
except AttributeError:
+ self.error(f'State {state} not found in class {klass}')
continue
if hasattr(func, '__func__'):
func = func.__func__
@@ -120,6 +138,9 @@ class Debug(pdb.Pdb):
raise ValueError('no line found')
# now set the break point
cond = None
+ if instances:
+ cond = f'self.unique_id in { repr(instances) }'
+
existing = self.get_breaks(filename, line)
if existing:
self.message("Breakpoint already exists at %s:%d" %
@@ -132,20 +153,39 @@ class Debug(pdb.Pdb):
bp = self.get_breaks(filename, line)[-1]
self.message("Breakpoint %d at %s:%d" %
(bp.number, bp.file, bp.line))
+
do_bs = do_break_state
+ def do_break_state_self(self, arg: str, temporary=False):
+ '''
+ Break before a specified state is stepped into, for the current agent
+ '''
+ agent = self.curframe.f_locals.get('self')
+ if not agent:
+ self.error('No current agent.')
+ self.error('Try this again when the debugger is stopped inside an agent')
+ return
-def setup(frame=None):
- debugger = Debug()
+ arg = f'{agent.__class__.__name__}:{ arg } {agent.unique_id}'
+ return self.do_break_state(arg)
+
+ do_bss = do_break_state_self
+
+
+debugger = None
+
+def set_trace(frame=None, **kwargs):
+ global debugger
+ if debugger is None:
+ debugger = Debug(**kwargs)
frame = frame or sys._getframe().f_back
debugger.set_trace(frame)
-def debug_env():
- if os.environ.get('SOIL_DEBUG'):
- return setup(frame=sys._getframe().f_back)
def post_mortem(traceback=None):
- p = Debug()
+ global debugger
+ if debugger is None:
+ debugger = Debug(**kwargs)
t = sys.exc_info()[2]
- p.reset()
- p.interaction(None, t)
+ debugger.reset()
+ debugger.interaction(None, t)
diff --git a/soil/environment.py b/soil/environment.py
index 303a00f..8588eaf 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -5,6 +5,7 @@ import sqlite3
import math
import random
import logging
+import inspect
from typing import Any, Dict, Optional, Union
from collections import namedtuple
@@ -21,9 +22,6 @@ from mesa.datacollection import DataCollector
from . import agents as agentmod, config, serialization, utils, time, network
-Record = namedtuple('Record', 'dict_id t_step key value')
-
-
class BaseEnvironment(Model):
"""
The environment is key in a simulation. It controls how agents interact,
@@ -51,6 +49,8 @@ class BaseEnvironment(Model):
**env_params):
super().__init__(seed=seed)
+ self.env_params = env_params or {}
+
self.current_id = -1
self.id = id
@@ -63,11 +63,8 @@ class BaseEnvironment(Model):
self.agent_class = agent_class or agentmod.BaseAgent
- self.init_agents(agents)
-
- self.env_params = env_params or {}
-
self.interval = interval
+ self.init_agents(agents)
self.logger = utils.logger.getChild(self.id)
@@ -77,7 +74,10 @@ class BaseEnvironment(Model):
tables=tables,
)
- def _read_single_agent(self, agent):
+ def _agent_from_dict(self, agent):
+ '''
+ Translate an agent dictionary into an agent
+ '''
agent = dict(**agent)
cls = agent.pop('agent_class', None) or self.agent_class
unique_id = agent.pop('unique_id', None)
@@ -88,6 +88,14 @@ class BaseEnvironment(Model):
model=self, **agent)
def init_agents(self, agents: Union[config.AgentConfig, [Dict[str, Any]]] = {}):
+ '''
+ Initialize the agents in the model from either a `soil.config.AgentConfig` or a list of
+ dictionaries that each describes an agent.
+
+ If given a list of dictionaries, an agent will be created for each dictionary. The agent
+ class can be specified through the `agent_class` key. The rest of the items will be used
+ as parameters to the agent.
+ '''
if not agents:
return
@@ -98,13 +106,11 @@ class BaseEnvironment(Model):
lst = config.AgentConfig(**agents)
if lst.override:
override = lst.override
- lst = agentmod.from_config(lst,
- topologies=getattr(self, 'topologies', None),
- random=self.random)
+ lst = self._agent_dict_from_config(lst)
#TODO: check override is working again. It cannot (easily) be part of agents.from_config anymore,
# because it needs attribute such as unique_id, which are only present after init
- new_agents = [self._read_single_agent(agent) for agent in lst]
+ new_agents = [self._agent_from_dict(agent) for agent in lst]
for a in new_agents:
@@ -115,6 +121,9 @@ class BaseEnvironment(Model):
for attr, value in rule.state.items():
setattr(agent, attr, value)
+ def _agent_dict_from_config(self, cfg):
+ return agentmod.from_config(cfg,
+ random=self.random)
@property
def agents(self):
@@ -133,12 +142,15 @@ class BaseEnvironment(Model):
raise Exception('The environment has not been scheduled, so it has no sense of time')
- def add_agent(self, agent_id, agent_class, **kwargs):
+ def add_agent(self, agent_class, unique_id=None, **kwargs):
a = None
- if agent_class:
- a = agent_class(model=self,
- unique_id=agent_id,
- **kwargs)
+ if unique_id is None:
+ unique_id = self.next_id()
+
+
+ a = agent_class(model=self,
+ unique_id=unique_id,
+ **args)
self.schedule.add(a)
return a
@@ -180,123 +192,109 @@ class BaseEnvironment(Model):
def __setitem__(self, key, value):
return self.env_params.__setitem__(key, value)
- def _agent_to_tuples(self, agent, now=None):
- if now is None:
- now = self.now
- for k, v in agent.state.items():
- yield Record(dict_id=agent.id,
- t_step=now,
- key=k,
- value=v)
-
- def state_to_tuples(self, agent_id=None, now=None):
- if now is None:
- now = self.now
-
- if agent_id:
- agent = self.agents[agent_id]
- yield from self._agent_to_tuples(agent, now)
- return
-
- for k, v in self.env_params.items():
- yield Record(dict_id='env',
- t_step=now,
- key=k,
- value=v)
- for agent in self.agents:
- yield from self._agent_to_tuples(agent, now)
+ def __str__(self):
+ return str(self.env_params)
class NetworkEnvironment(BaseEnvironment):
+ '''
+ The NetworkEnvironment is an environment that includes one or more networkx.Graph intances
+ and methods to associate agents to nodes and vice versa.
+ '''
- def __init__(self, *args, topology: nx.Graph = None, topologies: Dict[str, config.NetConfig] = {}, **kwargs):
+ def __init__(self, *args, topology: Union[config.NetConfig, nx.Graph] = None, **kwargs):
agents = kwargs.pop('agents', None)
super().__init__(*args, agents=None, **kwargs)
- self._node_ids = {}
- assert not hasattr(self, 'topologies')
- if topology is not None:
- if topologies:
- raise ValueError('Please, provide either a single topology or a dictionary of them')
- topologies = {'default': topology}
- self.topologies = {}
- for (name, cfg) in topologies.items():
- self.set_topology(cfg=cfg, graph=name)
+ self._set_topology(topology)
self.init_agents(agents)
+ def init_agents(self, *args, **kwargs):
+ '''Initialize the agents from a '''
+ super().init_agents(*args, **kwargs)
+ for agent in self.schedule._agents.values():
+ if hasattr(agent, 'node_id'):
+ self._init_node(agent)
- def _read_single_agent(self, agent, unique_id=None):
+ def _init_node(self, agent):
+ '''
+ Make sure the node for a given agent has the proper attributes.
+ '''
+ self.G.nodes[agent.node_id]['agent'] = agent
+
+ def _agent_dict_from_config(self, cfg):
+ return agentmod.from_config(cfg,
+ topology=self.G,
+ random=self.random)
+
+ def _agent_from_dict(self, agent, unique_id=None):
agent = dict(agent)
- if agent.get('topology', None) is not None:
- topology = agent.get('topology')
- if unique_id is None:
- unique_id = self.next_id()
- if topology:
- node_id = self.agent_to_node(unique_id, graph_name=topology, node_id=agent.get('node_id'))
- agent['node_id'] = node_id
- agent['topology'] = topology
- agent['unique_id'] = unique_id
+ if not agent.get('topology', False):
+ return super()._agent_from_dict(agent)
- return super()._read_single_agent(agent)
-
+ if unique_id is None:
+ unique_id = self.next_id()
+ node_id = agent.get('node_id', None)
+ if node_id is None:
+ node_id = network.find_unassigned(self.G, random=self.random)
+ agent['node_id'] = node_id
+ agent['unique_id'] = unique_id
+ agent['topology'] = self.G
+ node_attrs = self.G.nodes[node_id]
+ node_attrs.update(agent)
+ agent = node_attrs
- @property
- def topology(self):
- return self.topologies['default']
+ a = super()._agent_from_dict(agent)
+ self._init_node(a)
- def set_topology(self, cfg=None, dir_path=None, graph='default'):
- topology = cfg
- if not isinstance(cfg, nx.Graph):
- topology = network.from_config(cfg, dir_path=dir_path or self.dir_path)
+ return a
- self.topologies[graph] = topology
+ def _set_topology(self, cfg=None, dir_path=None):
+ if cfg is None:
+ cfg = nx.Graph()
+ elif not isinstance(cfg, nx.Graph):
+ cfg = network.from_config(cfg, dir_path=dir_path or self.dir_path)
- def topology_for(self, unique_id):
- return self.topologies[self._node_ids[unique_id][0]]
+ self.G = cfg
@property
def network_agents(self):
- yield from self.agents(agent_class=agentmod.NetworkAgent)
+ for a in self.schedule._agents:
+ if isinstance(a, agentmod.NetworkAgent):
+ yield a
- def agent_to_node(self, unique_id, graph_name='default',
- node_id=None, shuffle=False):
- node_id = network.agent_to_node(G=self.topologies[graph_name],
- agent_id=unique_id,
- node_id=node_id,
- shuffle=shuffle,
- random=self.random)
+ def add_node(self, agent_class, unique_id=None, node_id=None, **kwargs):
+ if unique_id is None:
+ unique_id = self.next_id()
+ if node_id is None:
+ node_id = network.find_unassigned(G=self.G,
+ shuffle=True,
+ random=self.random)
+
+ if node_id in G.nodes:
+ self.G.nodes[node_id]['agent'] = None # Reserve
+ else:
+ self.G.add_node(node_id)
- self._node_ids[unique_id] = (graph_name, node_id)
- return node_id
-
- def add_node(self, agent_class, topology, **kwargs):
- unique_id = self.next_id()
- self.topologies[topology].add_node(unique_id)
- node_id = self.agent_to_node(unique_id=unique_id, node_id=unique_id, graph_name=topology)
-
- a = self.add_agent(unique_id=unique_id, agent_class=agent_class, node_id=node_id, topology=topology, **kwargs)
+ a = self.add_agent(unique_id=unique_id, agent_class=agent_class, node_id=node_id, **kwargs)
a['visible'] = True
return a
- def add_edge(self, agent1, agent2, start=None, graph='default', **attrs):
- agent1 = agent1.node_id
- agent2 = agent2.node_id
- return self.topologies[graph].add_edge(agent1, agent2, start=start)
+ def agent_for_node_id(self, node_id):
+ return self.G.nodes[node_id].get('agent')
- def add_agent(self, unique_id, state=None, graph='default', **kwargs):
- node = self.topologies[graph].nodes[unique_id]
- node_state = node.get('state', {})
- if node_state:
- node_state.update(state or {})
- state = node_state
- a = super().add_agent(unique_id, state=state, **kwargs)
- node['agent'] = a
- return a
-
- def node_id_for(self, agent_id):
- return self._node_ids[agent_id][1]
+ def populate_network(self, agent_class, weights=None, **agent_params):
+ if not hasattr(agent_class, 'len'):
+ agent_class = [agent_class]
+ weights = None
+ for (node_id, node) in self.G.nodes(data=True):
+ if 'agent' in node:
+ continue
+ a_class = self.random.choices(agent_class, weights)[0]
+ self.add_agent(node_id=node_id,
+ agent_class=a_class, **agent_params)
Environment = NetworkEnvironment
diff --git a/soil/exporters.py b/soil/exporters.py
index 055afd4..648ba77 100644
--- a/soil/exporters.py
+++ b/soil/exporters.py
@@ -1,4 +1,5 @@
import os
+import sys
from time import time as current_time
from io import BytesIO
from sqlalchemy import create_engine
@@ -52,6 +53,8 @@ class Exporter:
simulation.group or '',
simulation.name)
self.dry_run = dry_run
+ if copy_to is None and dry_run:
+ copy_to = sys.stdout
self.copy_to = copy_to
def sim_start(self):
@@ -94,14 +97,19 @@ class default(Exporter):
logger.info('NOT dumping results')
def trial_end(self, env):
- if not self.dry_run:
- with timer('Dumping simulation {} trial {}'.format(self.simulation.name,
- env.id)):
- engine = create_engine('sqlite:///{}.sqlite'.format(env.id), echo=False)
+ if self.dry_run:
+ logger.info('Running in DRY_RUN mode, the database will NOT be created')
+ return
- dc = env.datacollector
- for (t, df) in get_dc_dfs(dc):
- df.to_sql(t, con=engine, if_exists='append')
+ with timer('Dumping simulation {} trial {}'.format(self.simulation.name,
+ env.id)):
+
+ fpath = os.path.join(self.outdir, f'{env.id}.sqlite')
+ engine = create_engine(f'sqlite:///{fpath}', echo=False)
+
+ dc = env.datacollector
+ for (t, df) in get_dc_dfs(dc):
+ df.to_sql(t, con=engine, if_exists='append')
def get_dc_dfs(dc):
diff --git a/soil/network.py b/soil/network.py
index 0836f35..bc69716 100644
--- a/soil/network.py
+++ b/soil/network.py
@@ -39,33 +39,30 @@ def from_config(cfg: config.NetConfig, dir_path: str = None):
known_modules=['networkx.generators',])
return method(**net_args)
- if isinstance(cfg.topology, config.Topology):
- cfg = cfg.topology.dict()
+ if isinstance(cfg.fixed, config.Topology):
+ cfg = cfg.fixed.dict()
+
if isinstance(cfg, str) or isinstance(cfg, dict):
return nx.json_graph.node_link_graph(cfg)
return nx.Graph()
-def agent_to_node(G, agent_id, node_id=None, shuffle=False, random=random):
+def find_unassigned(G, shuffle=False, random=random):
'''
Link an agent to a node in a topology.
If node_id is None, a node without an agent_id will be found.
'''
#TODO: test
- if node_id is None:
- candidates = list(G.nodes(data=True))
- if shuffle:
- random.shuffle(candidates)
- for next_id, data in candidates:
- if data.get('agent_id', None) is None:
- node_id = next_id
- break
+ candidates = list(G.nodes(data=True))
+ if shuffle:
+ random.shuffle(candidates)
+ for next_id, data in candidates:
+ if 'agent' not in data:
+ node_id = next_id
+ break
- if node_id is None:
- raise ValueError(f"Not enough nodes in topology to assign one to agent {agent_id}")
- G.nodes[node_id]['agent_id'] = agent_id
return node_id
diff --git a/soil/serialization.py b/soil/serialization.py
index 9c2af63..972ca69 100644
--- a/soil/serialization.py
+++ b/soil/serialization.py
@@ -17,42 +17,6 @@ from jinja2 import Template
logger = logging.getLogger('soil')
-
-# def load_network(network_params, dir_path=None):
-# G = nx.Graph()
-
-# if not network_params:
-# return G
-
-# if 'path' in network_params:
-# path = network_params['path']
-# if dir_path and not os.path.isabs(path):
-# path = os.path.join(dir_path, path)
-# extension = os.path.splitext(path)[1][1:]
-# kwargs = {}
-# if extension == 'gexf':
-# kwargs['version'] = '1.2draft'
-# kwargs['node_type'] = int
-# try:
-# method = getattr(nx.readwrite, 'read_' + extension)
-# except AttributeError:
-# raise AttributeError('Unknown format')
-# G = method(path, **kwargs)
-
-# elif 'generator' in network_params:
-# net_args = network_params.copy()
-# net_gen = net_args.pop('generator')
-
-# if dir_path not in sys.path:
-# sys.path.append(dir_path)
-
-# method = deserializer(net_gen,
-# known_modules=['networkx.generators',])
-# G = method(**net_args)
-
-# return G
-
-
def load_file(infile):
folder = os.path.dirname(infile)
if folder not in sys.path:
@@ -121,7 +85,7 @@ def params_for_template(config):
def load_files(*patterns, **kwargs):
for pattern in patterns:
- for i in glob(pattern, **kwargs):
+ for i in glob(pattern, **kwargs, recursive=True):
for cfg in load_file(i):
path = os.path.abspath(i)
yield Config.from_raw(cfg), path
@@ -229,14 +193,17 @@ def deserializer(type_, known_modules=KNOWN_MODULES):
return getattr(cls, 'deserialize', cls)
except (ImportError, AttributeError) as ex:
errors.append((modname, tname, ex))
- raise Exception('Could not find type {}. Tried: {}'.format(type_, errors))
+ raise Exception('Could not find type "{}". Tried: {}'.format(type_, errors))
-def deserialize(type_, value=None, **kwargs):
+def deserialize(type_, value=None, globs=None, **kwargs):
'''Get an object from a text representation'''
if not isinstance(type_, str):
return type_
- des = deserializer(type_, **kwargs)
+ if globs and type_ in globs:
+ des = globs[type_]
+ else:
+ des = deserializer(type_, **kwargs)
if value is None:
return des
return des(value)
@@ -244,6 +211,8 @@ def deserialize(type_, value=None, **kwargs):
def deserialize_all(names, *args, known_modules=KNOWN_MODULES, **kwargs):
'''Return the list of deserialized objects'''
+ #TODO: remove
+ print('SERIALIZATION', kwargs)
objects = []
for name in names:
mod = deserialize(name, known_modules=known_modules)
diff --git a/soil/simulation.py b/soil/simulation.py
index 1ed5dbc..baee50f 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -11,17 +11,16 @@ import networkx as nx
from textwrap import dedent
from dataclasses import dataclass, field, asdict
-from typing import Any, Dict, Union, Optional
+from typing import Any, Dict, Union, Optional, List
from networkx.readwrite import json_graph
from functools import partial
import pickle
-from . import serialization, utils, basestring, agents
+from . import serialization, exporters, utils, basestring, agents
from .environment import Environment
from .utils import logger, run_and_return_exceptions
-from .exporters import default
from .time import INFINITY
from .config import Config, convert_old
@@ -35,7 +34,7 @@ class Simulation:
config (optional): :class:`config.Config`
name of the Simulation
- kwargs: parameters to use to initialize a new configuration, if one has not been provided.
+ kwargs: parameters to use to initialize a new configuration, if one not been provided.
"""
version: str = '2'
name: str = 'Unnamed simulation'
@@ -49,22 +48,27 @@ class Simulation:
max_steps: int = -1
interval: int = 1
num_trials: int = 3
+ parallel: Optional[bool] = None
+ exporters: Optional[List[str]] = field(default_factory=list)
+ outdir: Optional[str] = None
+ exporter_params: Optional[Dict[str, Any]] = field(default_factory=dict)
dry_run: bool = False
extra: Dict[str, Any] = field(default_factory=dict)
@classmethod
- def from_dict(cls, env):
+ def from_dict(cls, env, **kwargs):
ignored = {k: v for k, v in env.items()
if k not in inspect.signature(cls).parameters}
- kwargs = {k:v for k, v in env.items() if k not in ignored}
+ d = {k:v for k, v in env.items() if k not in ignored}
if ignored:
- kwargs.setdefault('extra', {}).update(ignored)
+ d.setdefault('extra', {}).update(ignored)
if ignored:
print(f'Warning: Ignoring these parameters (added to "extra"): { ignored }')
+ d.update(kwargs)
- return cls(**kwargs)
+ return cls(**d)
def run_simulation(self, *args, **kwargs):
return self.run(*args, **kwargs)
@@ -78,15 +82,23 @@ class Simulation:
self.to_yaml())
return list(self.run_gen(*args, **kwargs))
- def run_gen(self, parallel=False, dry_run=False,
- exporters=[default, ], outdir=None, exporter_params={},
+ def run_gen(self, parallel=False, dry_run=None,
+ exporters=None, outdir=None, exporter_params={},
log_level=None,
**kwargs):
'''Run the simulation and yield the resulting environments.'''
if log_level:
logger.setLevel(log_level)
+ outdir = outdir or self.outdir
logger.info('Using exporters: %s', exporters or [])
logger.info('Output directory: %s', outdir)
+ if dry_run is None:
+ dry_run = self.dry_run
+ if exporters is None:
+ exporters = self.exporters
+ if not exporter_params:
+ exporter_params = self.exporter_params
+
exporters = serialization.deserialize_all(exporters,
simulation=self,
known_modules=['soil.exporters', ],
@@ -115,18 +127,21 @@ class Simulation:
for exporter in exporters:
exporter.sim_end()
- def get_env(self, trial_id=0, **kwargs):
+ def get_env(self, trial_id=0, model_params=None, **kwargs):
'''Create an environment for a trial of the simulation'''
def deserialize_reporters(reporters):
for (k, v) in reporters.items():
if isinstance(v, str) and v.startswith('py:'):
reporters[k] = serialization.deserialize(value.lsplit(':', 1)[1])
+ return reporters
- model_params = self.model_params.copy()
- model_params.update(kwargs)
+ params = self.model_params.copy()
+ if model_params:
+ params.update(model_params)
+ params.update(kwargs)
- agent_reporters = deserialize_reporters(model_params.pop('agent_reporters', {}))
- model_reporters = deserialize_reporters(model_params.pop('model_reporters', {}))
+ agent_reporters = deserialize_reporters(params.pop('agent_reporters', {}))
+ model_reporters = deserialize_reporters(params.pop('model_reporters', {}))
env = serialization.deserialize(self.model_class)
return env(id=f'{self.name}_trial_{trial_id}',
@@ -134,7 +149,7 @@ class Simulation:
dir_path=self.dir_path,
agent_reporters=agent_reporters,
model_reporters=model_reporters,
- **model_params)
+ **params)
def run_trial(self, trial_id=None, until=None, log_file=False, log_level=logging.INFO, **opts):
"""
@@ -172,13 +187,10 @@ class Simulation:
logger.info(dedent(f'''
Model stats:
Agents (total: { model.schedule.get_agent_count() }):
- - { (newline + ' - ').join(str(a) for a in model.schedule.agents) }'''
-f'''
+ - { (newline + ' - ').join(str(a) for a in model.schedule.agents) }
- Topologies (size):
- - { dict( (k, len(v)) for (k, v) in model.topologies.items()) }
-''' if getattr(model, "topologies", None) else ''
-))
+ Topology size: { len(model.G) if hasattr(model, "G") else 0 }
+ '''))
while not is_done():
utils.logger.debug(f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}')
@@ -198,14 +210,14 @@ f'''
return yaml.dump(self.to_dict())
-def iter_from_config(*cfgs):
+def iter_from_config(*cfgs, **kwargs):
for config in cfgs:
configs = list(serialization.load_config(config))
for config, path in configs:
d = dict(config)
if 'dir_path' not in d:
d['dir_path'] = os.path.dirname(path)
- yield Simulation.from_dict(d)
+ yield Simulation.from_dict(d, **kwargs)
def from_config(conf_or_path):
diff --git a/soil/time.py b/soil/time.py
index b95c51e..602aa8c 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -76,7 +76,7 @@ class TimedActivation(BaseScheduler):
agent = self._agents[agent_id]
returned = agent.step()
- if not agent.alive:
+ if not getattr(agent, 'alive', True):
self.remove(agent)
continue
diff --git a/soil/utils.py b/soil/utils.py
index faa34d1..6c25dbc 100644
--- a/soil/utils.py
+++ b/soil/utils.py
@@ -20,10 +20,11 @@ else:
logformat = "[%(levelname)-5.5s][%(asctime)s] %(message)s"
logFormatter = logging.Formatter(logformat, timeformat)
-
consoleHandler = logging.StreamHandler()
consoleHandler.setFormatter(logFormatter)
-logger.addHandler(consoleHandler)
+
+logging.basicConfig(level=logging.INFO,
+ handlers=[consoleHandler,])
@contextmanager
diff --git a/tests/complete_converted.yml b/tests/complete_converted.yml
index d1c3358..63f31a5 100644
--- a/tests/complete_converted.yml
+++ b/tests/complete_converted.yml
@@ -9,17 +9,16 @@ interval: 1
seed: "CompleteSeed!"
model_class: Environment
model_params:
- topologies:
- default:
- params:
- generator: complete_graph
- n: 4
+ topology:
+ params:
+ generator: complete_graph
+ n: 4
agents:
agent_class: CounterModel
state:
group: network
times: 1
- topology: 'default'
+ topology: true
distribution:
- agent_class: CounterModel
weight: 0.25
@@ -42,7 +41,7 @@ model_params:
fixed:
- agent_class: BaseAgent
hidden: true
- topology: null
+ topology: false
state:
name: 'Environment Agent 1'
times: 10
diff --git a/tests/test_agents.py b/tests/test_agents.py
index cb33f1f..bee9a9a 100644
--- a/tests/test_agents.py
+++ b/tests/test_agents.py
@@ -4,12 +4,14 @@ import pytest
from soil import agents, environment
from soil import time as stime
+
class Dead(agents.FSM):
@agents.default_state
@agents.state
def only(self):
return self.die()
+
class TestMain(TestCase):
def test_die_raises_exception(self):
d = Dead(unique_id=0, model=environment.Environment())
@@ -20,5 +22,5 @@ class TestMain(TestCase):
def test_die_returns_infinity(self):
d = Dead(unique_id=0, model=environment.Environment())
ret = d.step().abs(0)
- print(ret, 'next')
+ print(ret, "next")
assert ret == stime.INFINITY
diff --git a/tests/test_config.py b/tests/test_config.py
index 3597844..8d1d471 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -7,9 +7,9 @@ from os.path import join
from soil import simulation, serialization, config, network, agents, utils
ROOT = os.path.abspath(os.path.dirname(__file__))
-EXAMPLES = join(ROOT, '..', 'examples')
+EXAMPLES = join(ROOT, "..", "examples")
-FORCE_TESTS = os.environ.get('FORCE_TESTS', '')
+FORCE_TESTS = os.environ.get("FORCE_TESTS", "")
def isequal(a, b):
@@ -24,7 +24,6 @@ def isequal(a, b):
class TestConfig(TestCase):
-
def test_conversion(self):
expected = serialization.load_file(join(ROOT, "complete_converted.yml"))[0]
old = serialization.load_file(join(ROOT, "old_complete.yml"))[0]
@@ -38,7 +37,7 @@ class TestConfig(TestCase):
The configuration should not change after running
the simulation.
"""
- config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0]
+ config = serialization.load_file(join(EXAMPLES, "complete.yml"))[0]
s = simulation.from_config(config)
init_config = copy.copy(s.to_dict())
@@ -47,11 +46,8 @@ class TestConfig(TestCase):
# del nconfig['to
isequal(init_config, nconfig)
-
def test_topology_config(self):
- netconfig = config.NetConfig(**{
- 'path': join(ROOT, 'test.gexf')
- })
+ netconfig = config.NetConfig(**{"path": join(ROOT, "test.gexf")})
net = network.from_config(netconfig, dir_path=ROOT)
assert len(net.nodes) == 2
assert len(net.edges) == 1
@@ -62,36 +58,33 @@ class TestConfig(TestCase):
network agents are initialized properly.
"""
cfg = {
- 'name': 'CounterAgent',
- 'network_params': {
- 'path': join(ROOT, 'test.gexf')
- },
- 'agent_class': 'CounterModel',
+ "name": "CounterAgent",
+ "network_params": {"path": join(ROOT, "test.gexf")},
+ "agent_class": "CounterModel",
# 'states': [{'times': 10}, {'times': 20}],
- 'max_time': 2,
- 'dry_run': True,
- 'num_trials': 1,
- 'environment_params': {
- }
+ "max_time": 2,
+ "dry_run": True,
+ "num_trials": 1,
+ "environment_params": {},
}
conf = config.convert_old(cfg)
s = simulation.from_config(conf)
env = s.get_env()
- assert len(env.topologies['default'].nodes) == 2
- assert len(env.topologies['default'].edges) == 1
+ assert len(env.G.nodes) == 2
+ assert len(env.G.edges) == 1
assert len(env.agents) == 2
- assert env.agents[0].G == env.topologies['default']
+ assert env.agents[0].G == env.G
def test_agents_from_config(self):
- '''We test that the known complete configuration produces
- the right agents in the right groups'''
+ """We test that the known complete configuration produces
+ the right agents in the right groups"""
cfg = serialization.load_file(join(ROOT, "complete_converted.yml"))[0]
s = simulation.from_config(cfg)
env = s.get_env()
- assert len(env.topologies['default'].nodes) == 4
- assert len(env.agents(group='network')) == 4
- assert len(env.agents(group='environment')) == 1
+ assert len(env.G.nodes) == 4
+ assert len(env.agents(group="network")) == 4
+ assert len(env.agents(group="environment")) == 1
def test_yaml(self):
"""
@@ -100,16 +93,17 @@ class TestConfig(TestCase):
Values not present in the original config file should have reasonable
defaults.
"""
- with utils.timer('loading'):
- config = serialization.load_file(join(EXAMPLES, 'complete.yml'))[0]
+ with utils.timer("loading"):
+ config = serialization.load_file(join(EXAMPLES, "complete.yml"))[0]
s = simulation.from_config(config)
- with utils.timer('serializing'):
+ with utils.timer("serializing"):
serial = s.to_yaml()
- with utils.timer('recovering'):
+ with utils.timer("recovering"):
recovered = yaml.load(serial, Loader=yaml.SafeLoader)
for (k, v) in config.items():
assert recovered[k] == v
+
def make_example_test(path, cfg):
def wrapped(self):
root = os.getcwd()
@@ -133,18 +127,19 @@ def make_example_test(path, cfg):
# assert env.now <= config['max_time'] # But not further than allowed
# except KeyError:
# pass
+
return wrapped
def add_example_tests():
for config, path in serialization.load_files(
- join(EXAMPLES, '*', '*.yml'),
- join(EXAMPLES, '*.yml'),
+ join(EXAMPLES, "*", "*.yml"),
+ join(EXAMPLES, "*.yml"),
):
p = make_example_test(path=path, cfg=config)
fname = os.path.basename(path)
- p.__name__ = 'test_example_file_%s' % fname
- p.__doc__ = '%s should be a valid configuration' % fname
+ p.__name__ = "test_example_file_%s" % fname
+ p.__doc__ = "%s should be a valid configuration" % fname
setattr(TestConfig, p.__name__, p)
del p
diff --git a/tests/test_examples.py b/tests/test_examples.py
index af77c33..a0a2bd5 100644
--- a/tests/test_examples.py
+++ b/tests/test_examples.py
@@ -5,9 +5,9 @@ from os.path import join
from soil import serialization, simulation, config
ROOT = os.path.abspath(os.path.dirname(__file__))
-EXAMPLES = join(ROOT, '..', 'examples')
+EXAMPLES = join(ROOT, "..", "examples")
-FORCE_TESTS = os.environ.get('FORCE_TESTS', '')
+FORCE_TESTS = os.environ.get("FORCE_TESTS", "")
class TestExamples(TestCase):
@@ -23,31 +23,31 @@ def make_example_test(path, cfg):
s.max_steps = 100
s.num_trials = 1
assert isinstance(cfg, config.Config)
- if getattr(cfg, 'skip_test', False) and not FORCE_TESTS:
- self.skipTest('Example ignored.')
+ if getattr(cfg, "skip_test", False) and not FORCE_TESTS:
+ self.skipTest("Example ignored.")
envs = s.run_simulation(dry_run=True)
assert envs
for env in envs:
assert env
try:
- n = cfg.model_params['network_params']['n']
+ n = cfg.model_params["network_params"]["n"]
assert len(list(env.network_agents)) == n
except KeyError:
pass
assert env.schedule.steps > 0 # It has run
assert env.schedule.steps <= s.max_steps # But not further than allowed
+
return wrapped
def add_example_tests():
for cfg, path in serialization.load_files(
- join(EXAMPLES, '*', '*.yml'),
- join(EXAMPLES, '*.yml'),
+ join(EXAMPLES, "**", "*.yml"),
):
p = make_example_test(path=path, cfg=config.Config.from_raw(cfg))
fname = os.path.basename(path)
- p.__name__ = 'test_example_file_%s' % fname
- p.__doc__ = '%s should be a valid configuration' % fname
+ p.__name__ = "test_example_file_%s" % fname
+ p.__doc__ = "%s should be a valid configuration" % fname
setattr(TestExamples, p.__name__, p)
del p
diff --git a/tests/test_exporters.py b/tests/test_exporters.py
index cbd88bd..973bd06 100644
--- a/tests/test_exporters.py
+++ b/tests/test_exporters.py
@@ -2,6 +2,7 @@ import os
import io
import tempfile
import shutil
+import sqlite3
from unittest import TestCase
from soil import exporters
@@ -40,14 +41,10 @@ class Exporters(TestCase):
num_trials = 5
max_time = 2
config = {
- 'name': 'exporter_sim',
- 'model_params': {
- 'agents': [{
- 'agent_class': agents.BaseAgent
- }]
- },
- 'max_time': max_time,
- 'num_trials': num_trials,
+ "name": "exporter_sim",
+ "model_params": {"agents": [{"agent_class": agents.BaseAgent}]},
+ "max_time": max_time,
+ "num_trials": num_trials,
}
s = simulation.from_config(config)
@@ -64,40 +61,52 @@ class Exporters(TestCase):
assert Dummy.total_time == max_time * num_trials
def test_writing(self):
- '''Try to write CSV, sqlite and YAML (without dry_run)'''
+ """Try to write CSV, sqlite and YAML (without dry_run)"""
n_trials = 5
config = {
- 'name': 'exporter_sim',
- 'network_params': {
- 'generator': 'complete_graph',
- 'n': 4
- },
- 'agent_class': 'CounterModel',
- 'max_time': 2,
- 'num_trials': n_trials,
- 'dry_run': False,
- 'environment_params': {}
+ "name": "exporter_sim",
+ "network_params": {"generator": "complete_graph", "n": 4},
+ "agent_class": "CounterModel",
+ "max_time": 2,
+ "num_trials": n_trials,
+ "dry_run": False,
+ "environment_params": {},
}
output = io.StringIO()
s = simulation.from_config(config)
tmpdir = tempfile.mkdtemp()
- envs = s.run_simulation(exporters=[
- exporters.default,
- exporters.csv,
- ],
- dry_run=False,
- outdir=tmpdir,
- exporter_params={'copy_to': output})
+ envs = s.run_simulation(
+ exporters=[
+ exporters.default,
+ exporters.csv,
+ ],
+ model_params={
+ "agent_reporters": {"times": "times"},
+ "model_reporters": {
+ "constant": lambda x: 1,
+ },
+ },
+ dry_run=False,
+ outdir=tmpdir,
+ exporter_params={"copy_to": output},
+ )
result = output.getvalue()
- simdir = os.path.join(tmpdir, s.group or '', s.name)
- with open(os.path.join(simdir, '{}.dumped.yml'.format(s.name))) as f:
+ simdir = os.path.join(tmpdir, s.group or "", s.name)
+ with open(os.path.join(simdir, "{}.dumped.yml".format(s.name))) as f:
result = f.read()
assert result
try:
for e in envs:
- with open(os.path.join(simdir, '{}.env.csv'.format(e.id))) as f:
+ db = sqlite3.connect(os.path.join(simdir, f"{e.id}.sqlite"))
+ cur = db.cursor()
+ agent_entries = cur.execute("SELECT * from agents").fetchall()
+ env_entries = cur.execute("SELECT * from env").fetchall()
+ assert len(agent_entries) > 0
+ assert len(env_entries) > 0
+
+ with open(os.path.join(simdir, "{}.env.csv".format(e.id))) as f:
result = f.read()
assert result
finally:
diff --git a/tests/test_main.py b/tests/test_main.py
index 6ac26e4..f2004ad 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -6,60 +6,55 @@ import networkx as nx
from functools import partial
from os.path import join
-from soil import (simulation, Environment, agents, network, serialization,
- utils, config)
+from soil import simulation, Environment, agents, network, serialization, utils, config
from soil.time import Delta
ROOT = os.path.abspath(os.path.dirname(__file__))
-EXAMPLES = join(ROOT, '..', 'examples')
+EXAMPLES = join(ROOT, "..", "examples")
class CustomAgent(agents.FSM, agents.NetworkAgent):
@agents.default_state
@agents.state
def normal(self):
- self.neighbors = self.count_agents(state_id='normal',
- limit_neighbors=True)
+ self.neighbors = self.count_agents(state_id="normal", limit_neighbors=True)
+
@agents.state
def unreachable(self):
return
class TestMain(TestCase):
-
def test_empty_simulation(self):
"""A simulation with a base behaviour should do nothing"""
config = {
- 'model_params': {
- 'network_params': {
- 'path': join(ROOT, 'test.gexf')
- },
- 'agent_class': 'BaseAgent',
+ "model_params": {
+ "network_params": {"path": join(ROOT, "test.gexf")},
+ "agent_class": "BaseAgent",
}
}
s = simulation.from_config(config)
s.run_simulation(dry_run=True)
-
def test_network_agent(self):
"""
The initial states should be applied to the agent and the
agent should be able to update its state."""
config = {
- 'name': 'CounterAgent',
- 'num_trials': 1,
- 'max_time': 2,
- 'model_params': {
- 'network_params': {
- 'generator': nx.complete_graph,
- 'n': 2,
+ "name": "CounterAgent",
+ "num_trials": 1,
+ "max_time": 2,
+ "model_params": {
+ "network_params": {
+ "generator": nx.complete_graph,
+ "n": 2,
},
- 'agent_class': 'CounterModel',
- 'states': {
- 0: {'times': 10},
- 1: {'times': 20},
+ "agent_class": "CounterModel",
+ "states": {
+ 0: {"times": 10},
+ 1: {"times": 20},
},
- }
+ },
}
s = simulation.from_config(config)
@@ -68,48 +63,41 @@ class TestMain(TestCase):
The initial states should be applied to the agent and the
agent should be able to update its state."""
config = {
- 'version': '2',
- 'name': 'CounterAgent',
- 'dry_run': True,
- 'num_trials': 1,
- 'max_time': 2,
- 'model_params': {
- 'topologies': {
- 'default': {
- 'path': join(ROOT, 'test.gexf')
- }
+ "version": "2",
+ "name": "CounterAgent",
+ "dry_run": True,
+ "num_trials": 1,
+ "max_time": 2,
+ "model_params": {
+ "topology": {"path": join(ROOT, "test.gexf")},
+ "agents": {
+ "agent_class": "CounterModel",
+ "topology": True,
+ "fixed": [{"state": {"times": 10}}, {"state": {"times": 20}}],
},
- 'agents': {
- 'agent_class': 'CounterModel',
- 'topology': 'default',
- 'fixed': [{'state': {'times': 10}}, {'state': {'times': 20}}],
- }
- }
+ },
}
s = simulation.from_config(config)
env = s.get_env()
assert isinstance(env.agents[0], agents.CounterModel)
- assert env.agents[0].G == env.topologies['default']
- assert env.agents[0]['times'] == 10
- assert env.agents[0]['times'] == 10
+ assert env.agents[0].G == env.G
+ assert env.agents[0]["times"] == 10
+ assert env.agents[0]["times"] == 10
env.step()
- assert env.agents[0]['times'] == 11
- assert env.agents[1]['times'] == 21
+ assert env.agents[0]["times"] == 11
+ assert env.agents[1]["times"] == 21
def test_init_and_count_agents(self):
"""Agents should be properly initialized and counting should filter them properly"""
- #TODO: separate this test into two or more test cases
+ # TODO: separate this test into two or more test cases
config = {
- 'max_time': 10,
- 'model_params': {
- 'agents': [{'agent_class': CustomAgent, 'weight': 1, 'topology': 'default'},
- {'agent_class': CustomAgent, 'weight': 3, 'topology': 'default'},
+ "max_time": 10,
+ "model_params": {
+ "agents": [
+ {"agent_class": CustomAgent, "weight": 1, "topology": True},
+ {"agent_class": CustomAgent, "weight": 3, "topology": True},
],
- 'topologies': {
- 'default': {
- 'path': join(ROOT, 'test.gexf')
- }
- },
+ "topology": {"path": join(ROOT, "test.gexf")},
},
}
s = simulation.from_config(config)
@@ -120,40 +108,45 @@ class TestMain(TestCase):
assert env.count_agents(weight=3) == 1
assert env.count_agents(agent_class=CustomAgent) == 2
-
def test_torvalds_example(self):
"""A complete example from a documentation should work."""
- config = serialization.load_file(join(EXAMPLES, 'torvalds.yml'))[0]
- config['model_params']['network_params']['path'] = join(EXAMPLES,
- config['model_params']['network_params']['path'])
+ config = serialization.load_file(join(EXAMPLES, "torvalds.yml"))[0]
+ config["model_params"]["network_params"]["path"] = join(
+ EXAMPLES, config["model_params"]["network_params"]["path"]
+ )
s = simulation.from_config(config)
env = s.run_simulation(dry_run=True)[0]
for a in env.network_agents:
- skill_level = a.state['skill_level']
- if a.id == 'Torvalds':
- assert skill_level == 'God'
- assert a.state['total'] == 3
- assert a.state['neighbors'] == 2
- elif a.id == 'balkian':
- assert skill_level == 'developer'
- assert a.state['total'] == 3
- assert a.state['neighbors'] == 1
+ skill_level = a.state["skill_level"]
+ if a.id == "Torvalds":
+ assert skill_level == "God"
+ assert a.state["total"] == 3
+ assert a.state["neighbors"] == 2
+ elif a.id == "balkian":
+ assert skill_level == "developer"
+ assert a.state["total"] == 3
+ assert a.state["neighbors"] == 1
else:
- assert skill_level == 'beginner'
- assert a.state['total'] == 3
- assert a.state['neighbors'] == 1
+ assert skill_level == "beginner"
+ assert a.state["total"] == 3
+ assert a.state["neighbors"] == 1
def test_serialize_class(self):
ser, name = serialization.serialize(agents.BaseAgent, known_modules=[])
- assert name == 'soil.agents.BaseAgent'
+ assert name == "soil.agents.BaseAgent"
assert ser == agents.BaseAgent
- ser, name = serialization.serialize(agents.BaseAgent, known_modules=['soil', ])
- assert name == 'BaseAgent'
+ ser, name = serialization.serialize(
+ agents.BaseAgent,
+ known_modules=[
+ "soil",
+ ],
+ )
+ assert name == "BaseAgent"
assert ser == agents.BaseAgent
ser, name = serialization.serialize(CustomAgent)
- assert name == 'test_main.CustomAgent'
+ assert name == "test_main.CustomAgent"
assert ser == CustomAgent
pickle.dumps(ser)
@@ -166,72 +159,63 @@ class TestMain(TestCase):
assert i == des
def test_serialize_agent_class(self):
- '''A class from soil.agents should be serialized without the module part'''
+ """A class from soil.agents should be serialized without the module part"""
ser = agents.serialize_type(CustomAgent)
- assert ser == 'test_main.CustomAgent'
+ assert ser == "test_main.CustomAgent"
ser = agents.serialize_type(agents.BaseAgent)
- assert ser == 'BaseAgent'
+ assert ser == "BaseAgent"
pickle.dumps(ser)
-
+
def test_deserialize_agent_distribution(self):
agent_distro = [
- {
- 'agent_class': 'CounterModel',
- 'weight': 1
- },
- {
- 'agent_class': 'test_main.CustomAgent',
- 'weight': 2
- },
+ {"agent_class": "CounterModel", "weight": 1},
+ {"agent_class": "test_main.CustomAgent", "weight": 2},
]
converted = agents.deserialize_definition(agent_distro)
- assert converted[0]['agent_class'] == agents.CounterModel
- assert converted[1]['agent_class'] == CustomAgent
+ assert converted[0]["agent_class"] == agents.CounterModel
+ assert converted[1]["agent_class"] == CustomAgent
pickle.dumps(converted)
def test_serialize_agent_distribution(self):
agent_distro = [
- {
- 'agent_class': agents.CounterModel,
- 'weight': 1
- },
- {
- 'agent_class': CustomAgent,
- 'weight': 2
- },
+ {"agent_class": agents.CounterModel, "weight": 1},
+ {"agent_class": CustomAgent, "weight": 2},
]
converted = agents.serialize_definition(agent_distro)
- assert converted[0]['agent_class'] == 'CounterModel'
- assert converted[1]['agent_class'] == 'test_main.CustomAgent'
+ assert converted[0]["agent_class"] == "CounterModel"
+ assert converted[1]["agent_class"] == "test_main.CustomAgent"
pickle.dumps(converted)
def test_templates(self):
- '''Loading a template should result in several configs'''
- configs = serialization.load_file(join(EXAMPLES, 'template.yml'))
+ """Loading a template should result in several configs"""
+ configs = serialization.load_file(join(EXAMPLES, "template.yml"))
assert len(configs) > 0
def test_until(self):
config = {
- 'name': 'until_sim',
- 'model_params': {
- 'network_params': {},
- 'agents': {
- 'fixed': [{
- 'agent_class': agents.BaseAgent,
- }]
+ "name": "until_sim",
+ "model_params": {
+ "network_params": {},
+ "agents": {
+ "fixed": [
+ {
+ "agent_class": agents.BaseAgent,
+ }
+ ]
},
},
- 'max_time': 2,
- 'num_trials': 50,
+ "max_time": 2,
+ "num_trials": 50,
}
s = simulation.from_config(config)
runs = list(s.run_simulation(dry_run=True))
over = list(x.now for x in runs if x.now > 2)
- assert len(runs) == config['num_trials']
+ assert len(runs) == config["num_trials"]
assert len(over) == 0
def test_fsm(self):
- '''Basic state change'''
+ """Basic state change"""
+
class ToggleAgent(agents.FSM):
@agents.default_state
@agents.state
@@ -250,7 +234,8 @@ class TestMain(TestCase):
assert a.state_id == a.ping.id
def test_fsm_when(self):
- '''Basic state change'''
+ """Basic state change"""
+
class ToggleAgent(agents.FSM):
@agents.default_state
@agents.state
diff --git a/tests/test_mesa.py b/tests/test_mesa.py
index b219de9..a0aa5a1 100644
--- a/tests/test_mesa.py
+++ b/tests/test_mesa.py
@@ -1,4 +1,4 @@
-'''
+"""
Mesa-SOIL integration tests
We have to test that:
@@ -8,13 +8,15 @@ We have to test that:
- Mesa visualizations work with SOIL simulations
-'''
+"""
from mesa import Agent, Model
from mesa.time import RandomActivation
from mesa.space import MultiGrid
+
class MoneyAgent(Agent):
- """ An agent with fixed initial wealth."""
+ """An agent with fixed initial wealth."""
+
def __init__(self, unique_id, model):
super().__init__(unique_id, model)
self.wealth = 1
@@ -33,15 +35,15 @@ class MoneyAgent(Agent):
def move(self):
possible_steps = self.model.grid.get_neighborhood(
- self.pos,
- moore=True,
- include_center=False)
+ self.pos, moore=True, include_center=False
+ )
new_position = self.random.choice(possible_steps)
self.model.grid.move_agent(self, new_position)
class MoneyModel(Model):
"""A model with some number of agents."""
+
def __init__(self, N, width, height):
self.num_agents = N
self.grid = MultiGrid(width, height, True)
@@ -58,7 +60,7 @@ class MoneyModel(Model):
self.grid.place_agent(a, (x, y))
def step(self):
- '''Advance the model by one step.'''
+ """Advance the model by one step."""
self.schedule.step()
diff --git a/tests/test_network.py b/tests/test_network.py
index d984320..a860b14 100644
--- a/tests/test_network.py
+++ b/tests/test_network.py
@@ -10,7 +10,7 @@ from soil import config, network, environment, agents, simulation
from test_main import CustomAgent
ROOT = os.path.abspath(os.path.dirname(__file__))
-EXAMPLES = join(ROOT, '..', 'examples')
+EXAMPLES = join(ROOT, "..", "examples")
class TestNetwork(TestCase):
@@ -19,21 +19,13 @@ class TestNetwork(TestCase):
Load a graph from file if the extension is known.
Raise an exception otherwise.
"""
- config = {
- 'network_params': {
- 'path': join(ROOT, 'test.gexf')
- }
- }
- G = network.from_config(config['network_params'])
+ config = {"network_params": {"path": join(ROOT, "test.gexf")}}
+ G = network.from_config(config["network_params"])
assert G
assert len(G) == 2
with self.assertRaises(AttributeError):
- config = {
- 'network_params': {
- 'path': join(ROOT, 'unknown.extension')
- }
- }
- G = network.from_config(config['network_params'])
+ config = {"network_params": {"path": join(ROOT, "unknown.extension")}}
+ G = network.from_config(config["network_params"])
print(G)
def test_generate_barabasi(self):
@@ -41,88 +33,73 @@ class TestNetwork(TestCase):
If no path is given, a generator and network parameters
should be used to generate a network
"""
- cfg = {
- 'params': {
- 'generator': 'barabasi_albert_graph'
- }
- }
+ cfg = {"params": {"generator": "barabasi_albert_graph"}}
with self.assertRaises(Exception):
G = network.from_config(cfg)
- cfg['params']['n'] = 100
- cfg['params']['m'] = 10
+ cfg["params"]["n"] = 100
+ cfg["params"]["m"] = 10
G = network.from_config(cfg)
assert len(G) == 100
def test_save_geometric(self):
"""
- There is a bug in networkx that prevents it from creating a GEXF file
+ There is a bug in networkx that prevents it from creating a GEXF file
from geometric models. We should work around it.
"""
G = nx.random_geometric_graph(20, 0.1)
env = environment.NetworkEnvironment(topology=G)
f = io.BytesIO()
- assert env.topologies['default']
- network.dump_gexf(env.topologies['default'], f)
+ assert env.G
+ network.dump_gexf(env.G, f)
def test_networkenvironment_creation(self):
"""Networkenvironment should accept netconfig as parameters"""
model_params = {
- 'topologies': {
- 'default': {
- 'path': join(ROOT, 'test.gexf')
- }
+ "topology": {"path": join(ROOT, "test.gexf")},
+ "agents": {
+ "topology": True,
+ "distribution": [
+ {
+ "agent_class": CustomAgent,
+ }
+ ],
},
- 'agents': {
- 'topology': 'default',
- 'distribution': [{
- 'agent_class': CustomAgent,
- }]
- }
}
env = environment.Environment(**model_params)
- assert env.topologies
+ assert env.G
env.step()
- assert len(env.topologies['default']) == 2
+ assert len(env.G) == 2
assert len(env.agents) == 2
- assert env.agents[1].count_agents(state_id='normal') == 2
- assert env.agents[1].count_agents(state_id='normal', limit_neighbors=True) == 1
+ assert env.agents[1].count_agents(state_id="normal") == 2
+ assert env.agents[1].count_agents(state_id="normal", limit_neighbors=True) == 1
assert env.agents[0].neighbors == 1
def test_custom_agent_neighbors(self):
"""Allow for search of neighbors with a certain state_id"""
config = {
- 'model_params': {
- 'topologies': {
- 'default': {
- 'path': join(ROOT, 'test.gexf')
- }
- },
- 'agents': {
- 'topology': 'default',
- 'distribution': [
- {
- 'weight': 1,
- 'agent_class': CustomAgent
- }
- ]
- }
+ "model_params": {
+ "topology": {"path": join(ROOT, "test.gexf")},
+ "agents": {
+ "topology": True,
+ "distribution": [{"weight": 1, "agent_class": CustomAgent}],
+ },
},
- 'max_time': 10,
+ "max_time": 10,
}
s = simulation.from_config(config)
env = s.run_simulation(dry_run=True)[0]
- assert env.agents[1].count_agents(state_id='normal') == 2
- assert env.agents[1].count_agents(state_id='normal', limit_neighbors=True) == 1
+ assert env.agents[1].count_agents(state_id="normal") == 2
+ assert env.agents[1].count_agents(state_id="normal", limit_neighbors=True) == 1
assert env.agents[0].neighbors == 1
def test_subgraph(self):
- '''An agent should be able to subgraph the global topology'''
+ """An agent should be able to subgraph the global topology"""
G = nx.Graph()
G.add_node(3)
G.add_edge(1, 2)
distro = agents.calculate_distribution(agent_class=agents.NetworkAgent)
- aconfig = config.AgentConfig(distribution=distro, topology='default')
- env = environment.Environment(name='Test', topologies={'default': G}, agents=aconfig)
+ aconfig = config.AgentConfig(distribution=distro, topology=True)
+ env = environment.Environment(name="Test", topology=G, agents=aconfig)
lst = list(env.network_agents)
a2 = env.find_one(node_id=2)
From 78833a9e08814eb6ce1c8a2d006b8029a5fa1add Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Sun, 16 Oct 2022 17:58:19 +0200
Subject: [PATCH 10/39] Formatted with black
---
soil/__init__.py | 177 +++++++-----
soil/__main__.py | 4 +-
soil/agents/BassModel.py | 3 +-
soil/agents/BigMarketModel.py | 72 +++--
soil/agents/CounterModel.py | 14 +-
soil/agents/Geo.py | 8 +-
soil/agents/IndependentCascadeModel.py | 28 +-
soil/agents/ModelM2.py | 166 +++++++-----
soil/agents/SISaModel.py | 64 +++--
soil/agents/SentimentCorrelationModel.py | 100 ++++---
soil/agents/__init__.py | 330 ++++++++++++++---------
soil/config.py | 169 ++++++------
soil/datacollection.py | 2 +-
soil/debugging.py | 79 +++---
soil/environment.py | 132 +++++----
soil/exporters.py | 127 +++++----
soil/network.py | 41 +--
soil/serialization.py | 83 +++---
soil/simulation.py | 161 ++++++-----
soil/time.py | 21 +-
soil/utils.py | 63 +++--
soil/version.py | 9 +-
soil/visualization.py | 1 +
soil/web/__init__.py | 270 +++++++++++--------
soil/web/__main__.py | 2 +-
soil/web/run.py | 27 +-
26 files changed, 1254 insertions(+), 899 deletions(-)
diff --git a/soil/__init__.py b/soil/__init__.py
index be53c47..46d56bd 100644
--- a/soil/__init__.py
+++ b/soil/__init__.py
@@ -22,58 +22,107 @@ from .utils import logger
from .time import *
-def main(cfg='simulation.yml', exporters=None, parallel=None, output="soil_output", *, do_run=False, debug=False, **kwargs):
+def main(
+ cfg="simulation.yml",
+ exporters=None,
+ parallel=None,
+ output="soil_output",
+ *,
+ do_run=False,
+ debug=False,
+ **kwargs,
+):
import argparse
from . import simulation
- logger.info('Running SOIL version: {}'.format(__version__))
+ logger.info("Running SOIL version: {}".format(__version__))
- parser = argparse.ArgumentParser(description='Run a SOIL simulation')
- parser.add_argument('file', type=str,
- nargs="?",
- default=cfg,
- help='Configuration file for the simulation (e.g., YAML or JSON)')
- parser.add_argument('--version', action='store_true',
- help='Show version info and exit')
- parser.add_argument('--module', '-m', type=str,
- help='file containing the code of any custom agents.')
- parser.add_argument('--dry-run', '--dry', action='store_true',
- help='Do not store the results of the simulation to disk, show in terminal instead.')
- parser.add_argument('--pdb', action='store_true',
- help='Use a pdb console in case of exception.')
- parser.add_argument('--debug', action='store_true',
- help='Run a customized version of a pdb console to debug a simulation.')
- parser.add_argument('--graph', '-g', action='store_true',
- help='Dump each trial\'s network topology as a GEXF graph. Defaults to false.')
- parser.add_argument('--csv', action='store_true',
- help='Dump all data collected in CSV format. Defaults to false.')
- parser.add_argument('--level', type=str,
- help='Logging level')
- parser.add_argument('--output', '-o', type=str, default=output or "soil_output",
- help='folder to write results to. It defaults to the current directory.')
+ parser = argparse.ArgumentParser(description="Run a SOIL simulation")
+ parser.add_argument(
+ "file",
+ type=str,
+ nargs="?",
+ default=cfg,
+ help="Configuration file for the simulation (e.g., YAML or JSON)",
+ )
+ parser.add_argument(
+ "--version", action="store_true", help="Show version info and exit"
+ )
+ parser.add_argument(
+ "--module",
+ "-m",
+ type=str,
+ help="file containing the code of any custom agents.",
+ )
+ parser.add_argument(
+ "--dry-run",
+ "--dry",
+ action="store_true",
+ help="Do not store the results of the simulation to disk, show in terminal instead.",
+ )
+ parser.add_argument(
+ "--pdb", action="store_true", help="Use a pdb console in case of exception."
+ )
+ parser.add_argument(
+ "--debug",
+ action="store_true",
+ help="Run a customized version of a pdb console to debug a simulation.",
+ )
+ parser.add_argument(
+ "--graph",
+ "-g",
+ action="store_true",
+ help="Dump each trial's network topology as a GEXF graph. Defaults to false.",
+ )
+ parser.add_argument(
+ "--csv",
+ action="store_true",
+ help="Dump all data collected in CSV format. Defaults to false.",
+ )
+ parser.add_argument("--level", type=str, help="Logging level")
+ parser.add_argument(
+ "--output",
+ "-o",
+ type=str,
+ default=output or "soil_output",
+ help="folder to write results to. It defaults to the current directory.",
+ )
if parallel is None:
- parser.add_argument('--synchronous', action='store_true',
- help='Run trials serially and synchronously instead of in parallel. Defaults to false.')
+ parser.add_argument(
+ "--synchronous",
+ action="store_true",
+ help="Run trials serially and synchronously instead of in parallel. Defaults to false.",
+ )
- parser.add_argument('-e', '--exporter', action='append',
- default=[],
- help='Export environment and/or simulations using this exporter')
+ parser.add_argument(
+ "-e",
+ "--exporter",
+ action="append",
+ default=[],
+ help="Export environment and/or simulations using this exporter",
+ )
- parser.add_argument('--only-convert', '--convert', action='store_true',
- help='Do not run the simulation, only convert the configuration file(s) and output them.')
+ parser.add_argument(
+ "--only-convert",
+ "--convert",
+ action="store_true",
+ help="Do not run the simulation, only convert the configuration file(s) and output them.",
+ )
- parser.add_argument("--set",
- metavar="KEY=VALUE",
- action='append',
- help="Set a number of parameters that will be passed to the simulation."
- "(do not put spaces before or after the = sign). "
- "If a value contains spaces, you should define "
- "it with double quotes: "
- 'foo="this is a sentence". Note that '
- "values are always treated as strings.")
+ parser.add_argument(
+ "--set",
+ metavar="KEY=VALUE",
+ action="append",
+ help="Set a number of parameters that will be passed to the simulation."
+ "(do not put spaces before or after the = sign). "
+ "If a value contains spaces, you should define "
+ "it with double quotes: "
+ 'foo="this is a sentence". Note that '
+ "values are always treated as strings.",
+ )
args = parser.parse_args()
- logger.setLevel(getattr(logging, (args.level or 'INFO').upper()))
+ logger.setLevel(getattr(logging, (args.level or "INFO").upper()))
if args.version:
return
@@ -81,14 +130,16 @@ def main(cfg='simulation.yml', exporters=None, parallel=None, output="soil_outpu
if parallel is None:
parallel = not args.synchronous
- exporters = exporters or ['default', ]
+ exporters = exporters or [
+ "default",
+ ]
for exp in args.exporter:
if exp not in exporters:
exporters.append(exp)
if args.csv:
- exporters.append('csv')
+ exporters.append("csv")
if args.graph:
- exporters.append('gexf')
+ exporters.append("gexf")
if os.getcwd() not in sys.path:
sys.path.append(os.getcwd())
@@ -97,38 +148,38 @@ def main(cfg='simulation.yml', exporters=None, parallel=None, output="soil_outpu
if output is None:
output = args.output
-
- logger.info('Loading config file: {}'.format(args.file))
+ logger.info("Loading config file: {}".format(args.file))
debug = debug or args.debug
if args.pdb or debug:
args.synchronous = True
-
res = []
try:
exp_params = {}
if not os.path.exists(args.file):
- logger.error('Please, input a valid file')
+ logger.error("Please, input a valid file")
return
- for sim in simulation.iter_from_config(args.file,
- dry_run=args.dry_run,
- exporters=exporters,
- parallel=parallel,
- outdir=output,
- exporter_params=exp_params,
- **kwargs):
+ for sim in simulation.iter_from_config(
+ args.file,
+ dry_run=args.dry_run,
+ exporters=exporters,
+ parallel=parallel,
+ outdir=output,
+ exporter_params=exp_params,
+ **kwargs,
+ ):
if args.set:
for s in args.set:
- k, v = s.split('=', 1)[:2]
+ k, v = s.split("=", 1)[:2]
v = eval(v)
- tail, *head = k.rsplit('.', 1)[::-1]
+ tail, *head = k.rsplit(".", 1)[::-1]
target = sim
if head:
- for part in head[0].split('.'):
+ for part in head[0].split("."):
try:
target = getattr(target, part)
except AttributeError:
@@ -144,19 +195,21 @@ def main(cfg='simulation.yml', exporters=None, parallel=None, output="soil_outpu
if do_run:
res.append(sim.run())
else:
- print('not running')
+ print("not running")
res.append(sim)
except Exception as ex:
if args.pdb:
from .debugging import post_mortem
+
print(traceback.format_exc())
post_mortem()
else:
raise
if debug:
from .debugging import set_trace
- os.environ['SOIL_DEBUG'] = 'true'
+
+ os.environ["SOIL_DEBUG"] = "true"
set_trace()
return res
@@ -165,5 +218,5 @@ def easy(cfg, debug=False, **kwargs):
return main(cfg, **kwargs)[0]
-if __name__ == '__main__':
+if __name__ == "__main__":
main(do_run=True)
diff --git a/soil/__main__.py b/soil/__main__.py
index 9ad5c4f..0c76791 100644
--- a/soil/__main__.py
+++ b/soil/__main__.py
@@ -1,7 +1,9 @@
from . import main as init_main
+
def main():
init_main(do_run=True)
-if __name__ == '__main__':
+
+if __name__ == "__main__":
init_main(do_run=True)
diff --git a/soil/agents/BassModel.py b/soil/agents/BassModel.py
index e3f5015..416063d 100644
--- a/soil/agents/BassModel.py
+++ b/soil/agents/BassModel.py
@@ -7,6 +7,7 @@ class BassModel(FSM):
innovation_prob
imitation_prob
"""
+
sentimentCorrelation = 0
def step(self):
@@ -21,7 +22,7 @@ class BassModel(FSM):
else:
aware_neighbors = self.get_neighboring_agents(state_id=self.aware.id)
num_neighbors_aware = len(aware_neighbors)
- if self.prob((self['imitation_prob']*num_neighbors_aware)):
+ if self.prob((self["imitation_prob"] * num_neighbors_aware)):
self.sentimentCorrelation = 1
return self.aware
diff --git a/soil/agents/BigMarketModel.py b/soil/agents/BigMarketModel.py
index 7db663d..5a93b23 100644
--- a/soil/agents/BigMarketModel.py
+++ b/soil/agents/BigMarketModel.py
@@ -6,42 +6,54 @@ class BigMarketModel(FSM):
Settings:
Names:
enterprises [Array]
-
+
tweet_probability_enterprises [Array]
Users:
tweet_probability_users
-
+
tweet_relevant_probability
-
+
tweet_probability_about [Array]
-
+
sentiment_about [Array]
"""
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
- self.enterprises = self.env.environment_params['enterprises']
+ self.enterprises = self.env.environment_params["enterprises"]
self.type = ""
if self.id < len(self.enterprises): # Enterprises
self.set_state(self.enterprise.id)
self.type = "Enterprise"
- self.tweet_probability = environment.environment_params['tweet_probability_enterprises'][self.id]
+ self.tweet_probability = environment.environment_params[
+ "tweet_probability_enterprises"
+ ][self.id]
else: # normal users
self.type = "User"
self.set_state(self.user.id)
- self.tweet_probability = environment.environment_params['tweet_probability_users']
- self.tweet_relevant_probability = environment.environment_params['tweet_relevant_probability']
- self.tweet_probability_about = environment.environment_params['tweet_probability_about'] # List
- self.sentiment_about = environment.environment_params['sentiment_about'] # List
+ self.tweet_probability = environment.environment_params[
+ "tweet_probability_users"
+ ]
+ self.tweet_relevant_probability = environment.environment_params[
+ "tweet_relevant_probability"
+ ]
+ self.tweet_probability_about = environment.environment_params[
+ "tweet_probability_about"
+ ] # List
+ self.sentiment_about = environment.environment_params[
+ "sentiment_about"
+ ] # List
@state
def enterprise(self):
if self.random.random() < self.tweet_probability: # Tweets
- aware_neighbors = self.get_neighboring_agents(state_id=self.number_of_enterprises) # Nodes neighbour users
+ aware_neighbors = self.get_neighboring_agents(
+ state_id=self.number_of_enterprises
+ ) # Nodes neighbour users
for x in aware_neighbors:
- if self.random.uniform(0,10) < 5:
+ if self.random.uniform(0, 10) < 5:
x.sentiment_about[self.id] += 0.1 # Increments for enterprise
else:
x.sentiment_about[self.id] -= 0.1 # Decrements for enterprise
@@ -49,15 +61,19 @@ class BigMarketModel(FSM):
# Establecemos limites
if x.sentiment_about[self.id] > 1:
x.sentiment_about[self.id] = 1
- if x.sentiment_about[self.id]< -1:
+ if x.sentiment_about[self.id] < -1:
x.sentiment_about[self.id] = -1
- x.attrs['sentiment_enterprise_%s'% self.enterprises[self.id]] = x.sentiment_about[self.id]
+ x.attrs[
+ "sentiment_enterprise_%s" % self.enterprises[self.id]
+ ] = x.sentiment_about[self.id]
@state
def user(self):
if self.random.random() < self.tweet_probability: # Tweets
- if self.random.random() < self.tweet_relevant_probability: # Tweets something relevant
+ if (
+ self.random.random() < self.tweet_relevant_probability
+ ): # Tweets something relevant
# Tweet probability per enterprise
for i in range(len(self.enterprises)):
random_num = self.random.random()
@@ -65,23 +81,29 @@ class BigMarketModel(FSM):
# The condition is fulfilled, sentiments are evaluated towards that enterprise
if self.sentiment_about[i] < 0:
# NEGATIVO
- self.userTweets("negative",i)
+ self.userTweets("negative", i)
elif self.sentiment_about[i] == 0:
# NEUTRO
pass
else:
# POSITIVO
- self.userTweets("positive",i)
- for i in range(len(self.enterprises)): # So that it never is set to 0 if there are not changes (logs)
- self.attrs['sentiment_enterprise_%s'% self.enterprises[i]] = self.sentiment_about[i]
+ self.userTweets("positive", i)
+ for i in range(
+ len(self.enterprises)
+ ): # So that it never is set to 0 if there are not changes (logs)
+ self.attrs[
+ "sentiment_enterprise_%s" % self.enterprises[i]
+ ] = self.sentiment_about[i]
- def userTweets(self, sentiment,enterprise):
- aware_neighbors = self.get_neighboring_agents(state_id=self.number_of_enterprises) # Nodes neighbours users
+ def userTweets(self, sentiment, enterprise):
+ aware_neighbors = self.get_neighboring_agents(
+ state_id=self.number_of_enterprises
+ ) # Nodes neighbours users
for x in aware_neighbors:
if sentiment == "positive":
- x.sentiment_about[enterprise] +=0.003
+ x.sentiment_about[enterprise] += 0.003
elif sentiment == "negative":
- x.sentiment_about[enterprise] -=0.003
+ x.sentiment_about[enterprise] -= 0.003
else:
pass
@@ -91,4 +113,6 @@ class BigMarketModel(FSM):
if x.sentiment_about[enterprise] < -1:
x.sentiment_about[enterprise] = -1
- x.attrs['sentiment_enterprise_%s'% self.enterprises[enterprise]] = x.sentiment_about[enterprise]
+ x.attrs[
+ "sentiment_enterprise_%s" % self.enterprises[enterprise]
+ ] = x.sentiment_about[enterprise]
diff --git a/soil/agents/CounterModel.py b/soil/agents/CounterModel.py
index 97c7356..731c61d 100644
--- a/soil/agents/CounterModel.py
+++ b/soil/agents/CounterModel.py
@@ -15,9 +15,9 @@ class CounterModel(NetworkAgent):
# Outside effects
total = len(list(self.model.schedule._agents))
neighbors = len(list(self.get_neighboring_agents()))
- self['times'] = self.get('times', 0) + 1
- self['neighbors'] = neighbors
- self['total'] = total
+ self["times"] = self.get("times", 0) + 1
+ self["neighbors"] = neighbors
+ self["total"] = total
class AggregatedCounter(NetworkAgent):
@@ -32,9 +32,9 @@ class AggregatedCounter(NetworkAgent):
def step(self):
# Outside effects
- self['times'] += 1
+ self["times"] += 1
neighbors = len(list(self.get_neighboring_agents()))
- self['neighbors'] += neighbors
+ self["neighbors"] += neighbors
total = len(list(self.model.schedule.agents))
- self['total'] += total
- self.debug('Running for step: {}. Total: {}'.format(self.now, total))
+ self["total"] += total
+ self.debug("Running for step: {}. Total: {}".format(self.now, total))
diff --git a/soil/agents/Geo.py b/soil/agents/Geo.py
index bf505bf..d61d1ce 100644
--- a/soil/agents/Geo.py
+++ b/soil/agents/Geo.py
@@ -2,20 +2,20 @@ from scipy.spatial import cKDTree as KDTree
import networkx as nx
from . import NetworkAgent, as_node
+
class Geo(NetworkAgent):
- '''In this type of network, nodes have a "pos" attribute.'''
+ """In this type of network, nodes have a "pos" attribute."""
def geo_search(self, radius, node=None, center=False, **kwargs):
- '''Get a list of nodes whose coordinates are closer than *radius* to *node*.'''
+ """Get a list of nodes whose coordinates are closer than *radius* to *node*."""
node = as_node(node if node is not None else self)
G = self.subgraph(**kwargs)
- pos = nx.get_node_attributes(G, 'pos')
+ pos = nx.get_node_attributes(G, "pos")
if not pos:
return []
nodes, coords = list(zip(*pos.items()))
kdtree = KDTree(coords) # Cannot provide generator.
indices = kdtree.query_ball_point(pos[node], radius)
return [nodes[i] for i in indices if center or (nodes[i] != node)]
-
diff --git a/soil/agents/IndependentCascadeModel.py b/soil/agents/IndependentCascadeModel.py
index e927a6f..d3280e0 100644
--- a/soil/agents/IndependentCascadeModel.py
+++ b/soil/agents/IndependentCascadeModel.py
@@ -11,10 +11,10 @@ class IndependentCascadeModel(BaseAgent):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
- self.innovation_prob = self.env.environment_params['innovation_prob']
- self.imitation_prob = self.env.environment_params['imitation_prob']
- self.state['time_awareness'] = 0
- self.state['sentimentCorrelation'] = 0
+ self.innovation_prob = self.env.environment_params["innovation_prob"]
+ self.imitation_prob = self.env.environment_params["imitation_prob"]
+ self.state["time_awareness"] = 0
+ self.state["sentimentCorrelation"] = 0
def step(self):
self.behaviour()
@@ -23,25 +23,27 @@ class IndependentCascadeModel(BaseAgent):
aware_neighbors_1_time_step = []
# Outside effects
if self.prob(self.innovation_prob):
- if self.state['id'] == 0:
- self.state['id'] = 1
- self.state['sentimentCorrelation'] = 1
- self.state['time_awareness'] = self.env.now # To know when they have been infected
+ if self.state["id"] == 0:
+ self.state["id"] = 1
+ self.state["sentimentCorrelation"] = 1
+ self.state[
+ "time_awareness"
+ ] = self.env.now # To know when they have been infected
else:
pass
return
# Imitation effects
- if self.state['id'] == 0:
+ if self.state["id"] == 0:
aware_neighbors = self.get_neighboring_agents(state_id=1)
for x in aware_neighbors:
- if x.state['time_awareness'] == (self.env.now-1):
+ if x.state["time_awareness"] == (self.env.now - 1):
aware_neighbors_1_time_step.append(x)
num_neighbors_aware = len(aware_neighbors_1_time_step)
- if self.prob(self.imitation_prob*num_neighbors_aware):
- self.state['id'] = 1
- self.state['sentimentCorrelation'] = 1
+ if self.prob(self.imitation_prob * num_neighbors_aware):
+ self.state["id"] = 1
+ self.state["sentimentCorrelation"] = 1
else:
pass
diff --git a/soil/agents/ModelM2.py b/soil/agents/ModelM2.py
index dec6b97..b22cafa 100644
--- a/soil/agents/ModelM2.py
+++ b/soil/agents/ModelM2.py
@@ -23,36 +23,49 @@ class SpreadModelM2(BaseAgent):
def __init__(self, model=None, unique_id=0, state=()):
super().__init__(model=environment, unique_id=unique_id, state=state)
-
# Use a single generator with the same seed as `self.random`
random = np.random.default_rng(seed=self._seed)
- self.prob_neutral_making_denier = random.normal(environment.environment_params['prob_neutral_making_denier'],
- environment.environment_params['standard_variance'])
+ self.prob_neutral_making_denier = random.normal(
+ environment.environment_params["prob_neutral_making_denier"],
+ environment.environment_params["standard_variance"],
+ )
- self.prob_infect = random.normal(environment.environment_params['prob_infect'],
- environment.environment_params['standard_variance'])
+ self.prob_infect = random.normal(
+ environment.environment_params["prob_infect"],
+ environment.environment_params["standard_variance"],
+ )
- self.prob_cured_healing_infected = random.normal(environment.environment_params['prob_cured_healing_infected'],
- environment.environment_params['standard_variance'])
- self.prob_cured_vaccinate_neutral = random.normal(environment.environment_params['prob_cured_vaccinate_neutral'],
- environment.environment_params['standard_variance'])
+ self.prob_cured_healing_infected = random.normal(
+ environment.environment_params["prob_cured_healing_infected"],
+ environment.environment_params["standard_variance"],
+ )
+ self.prob_cured_vaccinate_neutral = random.normal(
+ environment.environment_params["prob_cured_vaccinate_neutral"],
+ environment.environment_params["standard_variance"],
+ )
- self.prob_vaccinated_healing_infected = random.normal(environment.environment_params['prob_vaccinated_healing_infected'],
- environment.environment_params['standard_variance'])
- self.prob_vaccinated_vaccinate_neutral = random.normal(environment.environment_params['prob_vaccinated_vaccinate_neutral'],
- environment.environment_params['standard_variance'])
- self.prob_generate_anti_rumor = random.normal(environment.environment_params['prob_generate_anti_rumor'],
- environment.environment_params['standard_variance'])
+ self.prob_vaccinated_healing_infected = random.normal(
+ environment.environment_params["prob_vaccinated_healing_infected"],
+ environment.environment_params["standard_variance"],
+ )
+ self.prob_vaccinated_vaccinate_neutral = random.normal(
+ environment.environment_params["prob_vaccinated_vaccinate_neutral"],
+ environment.environment_params["standard_variance"],
+ )
+ self.prob_generate_anti_rumor = random.normal(
+ environment.environment_params["prob_generate_anti_rumor"],
+ environment.environment_params["standard_variance"],
+ )
def step(self):
- if self.state['id'] == 0: # Neutral
+ if self.state["id"] == 0: # Neutral
self.neutral_behaviour()
- elif self.state['id'] == 1: # Infected
+ elif self.state["id"] == 1: # Infected
self.infected_behaviour()
- elif self.state['id'] == 2: # Cured
+ elif self.state["id"] == 2: # Cured
self.cured_behaviour()
- elif self.state['id'] == 3: # Vaccinated
+ elif self.state["id"] == 3: # Vaccinated
self.vaccinated_behaviour()
def neutral_behaviour(self):
@@ -61,7 +74,7 @@ class SpreadModelM2(BaseAgent):
infected_neighbors = self.get_neighboring_agents(state_id=1)
if len(infected_neighbors) > 0:
if self.prob(self.prob_neutral_making_denier):
- self.state['id'] = 3 # Vaccinated making denier
+ self.state["id"] = 3 # Vaccinated making denier
def infected_behaviour(self):
@@ -69,7 +82,7 @@ class SpreadModelM2(BaseAgent):
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
if self.prob(self.prob_infect):
- neighbor.state['id'] = 1 # Infected
+ neighbor.state["id"] = 1 # Infected
def cured_behaviour(self):
@@ -77,13 +90,13 @@ class SpreadModelM2(BaseAgent):
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
if self.prob(self.prob_cured_vaccinate_neutral):
- neighbor.state['id'] = 3 # Vaccinated
+ neighbor.state["id"] = 3 # Vaccinated
# Cure
infected_neighbors = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors:
if self.prob(self.prob_cured_healing_infected):
- neighbor.state['id'] = 2 # Cured
+ neighbor.state["id"] = 2 # Cured
def vaccinated_behaviour(self):
@@ -91,19 +104,19 @@ class SpreadModelM2(BaseAgent):
infected_neighbors = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors:
if self.prob(self.prob_cured_healing_infected):
- neighbor.state['id'] = 2 # Cured
+ neighbor.state["id"] = 2 # Cured
# Vaccinate
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
if self.prob(self.prob_cured_vaccinate_neutral):
- neighbor.state['id'] = 3 # Vaccinated
+ neighbor.state["id"] = 3 # Vaccinated
# Generate anti-rumor
infected_neighbors_2 = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors_2:
if self.prob(self.prob_generate_anti_rumor):
- neighbor.state['id'] = 2 # Cured
+ neighbor.state["id"] = 2 # Cured
class ControlModelM2(BaseAgent):
@@ -112,63 +125,76 @@ class ControlModelM2(BaseAgent):
prob_neutral_making_denier
prob_infect
-
+
prob_cured_healing_infected
-
+
prob_cured_vaccinate_neutral
-
+
prob_vaccinated_healing_infected
-
+
prob_vaccinated_vaccinate_neutral
-
+
prob_generate_anti_rumor
"""
-
def __init__(self, model=None, unique_id=0, state=()):
super().__init__(model=environment, unique_id=unique_id, state=state)
- self.prob_neutral_making_denier = np.random.normal(environment.environment_params['prob_neutral_making_denier'],
- environment.environment_params['standard_variance'])
+ self.prob_neutral_making_denier = np.random.normal(
+ environment.environment_params["prob_neutral_making_denier"],
+ environment.environment_params["standard_variance"],
+ )
- self.prob_infect = np.random.normal(environment.environment_params['prob_infect'],
- environment.environment_params['standard_variance'])
+ self.prob_infect = np.random.normal(
+ environment.environment_params["prob_infect"],
+ environment.environment_params["standard_variance"],
+ )
- self.prob_cured_healing_infected = np.random.normal(environment.environment_params['prob_cured_healing_infected'],
- environment.environment_params['standard_variance'])
- self.prob_cured_vaccinate_neutral = np.random.normal(environment.environment_params['prob_cured_vaccinate_neutral'],
- environment.environment_params['standard_variance'])
+ self.prob_cured_healing_infected = np.random.normal(
+ environment.environment_params["prob_cured_healing_infected"],
+ environment.environment_params["standard_variance"],
+ )
+ self.prob_cured_vaccinate_neutral = np.random.normal(
+ environment.environment_params["prob_cured_vaccinate_neutral"],
+ environment.environment_params["standard_variance"],
+ )
- self.prob_vaccinated_healing_infected = np.random.normal(environment.environment_params['prob_vaccinated_healing_infected'],
- environment.environment_params['standard_variance'])
- self.prob_vaccinated_vaccinate_neutral = np.random.normal(environment.environment_params['prob_vaccinated_vaccinate_neutral'],
- environment.environment_params['standard_variance'])
- self.prob_generate_anti_rumor = np.random.normal(environment.environment_params['prob_generate_anti_rumor'],
- environment.environment_params['standard_variance'])
+ self.prob_vaccinated_healing_infected = np.random.normal(
+ environment.environment_params["prob_vaccinated_healing_infected"],
+ environment.environment_params["standard_variance"],
+ )
+ self.prob_vaccinated_vaccinate_neutral = np.random.normal(
+ environment.environment_params["prob_vaccinated_vaccinate_neutral"],
+ environment.environment_params["standard_variance"],
+ )
+ self.prob_generate_anti_rumor = np.random.normal(
+ environment.environment_params["prob_generate_anti_rumor"],
+ environment.environment_params["standard_variance"],
+ )
def step(self):
- if self.state['id'] == 0: # Neutral
+ if self.state["id"] == 0: # Neutral
self.neutral_behaviour()
- elif self.state['id'] == 1: # Infected
+ elif self.state["id"] == 1: # Infected
self.infected_behaviour()
- elif self.state['id'] == 2: # Cured
+ elif self.state["id"] == 2: # Cured
self.cured_behaviour()
- elif self.state['id'] == 3: # Vaccinated
+ elif self.state["id"] == 3: # Vaccinated
self.vaccinated_behaviour()
- elif self.state['id'] == 4: # Beacon-off
+ elif self.state["id"] == 4: # Beacon-off
self.beacon_off_behaviour()
- elif self.state['id'] == 5: # Beacon-on
+ elif self.state["id"] == 5: # Beacon-on
self.beacon_on_behaviour()
def neutral_behaviour(self):
- self.state['visible'] = False
+ self.state["visible"] = False
# Infected
infected_neighbors = self.get_neighboring_agents(state_id=1)
if len(infected_neighbors) > 0:
if self.random(self.prob_neutral_making_denier):
- self.state['id'] = 3 # Vaccinated making denier
+ self.state["id"] = 3 # Vaccinated making denier
def infected_behaviour(self):
@@ -176,69 +202,69 @@ class ControlModelM2(BaseAgent):
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
if self.prob(self.prob_infect):
- neighbor.state['id'] = 1 # Infected
- self.state['visible'] = False
+ neighbor.state["id"] = 1 # Infected
+ self.state["visible"] = False
def cured_behaviour(self):
- self.state['visible'] = True
+ self.state["visible"] = True
# Vaccinate
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
if self.prob(self.prob_cured_vaccinate_neutral):
- neighbor.state['id'] = 3 # Vaccinated
+ neighbor.state["id"] = 3 # Vaccinated
# Cure
infected_neighbors = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors:
if self.prob(self.prob_cured_healing_infected):
- neighbor.state['id'] = 2 # Cured
+ neighbor.state["id"] = 2 # Cured
def vaccinated_behaviour(self):
- self.state['visible'] = True
+ self.state["visible"] = True
# Cure
infected_neighbors = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors:
if self.prob(self.prob_cured_healing_infected):
- neighbor.state['id'] = 2 # Cured
+ neighbor.state["id"] = 2 # Cured
# Vaccinate
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
if self.prob(self.prob_cured_vaccinate_neutral):
- neighbor.state['id'] = 3 # Vaccinated
+ neighbor.state["id"] = 3 # Vaccinated
# Generate anti-rumor
infected_neighbors_2 = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors_2:
if self.prob(self.prob_generate_anti_rumor):
- neighbor.state['id'] = 2 # Cured
+ neighbor.state["id"] = 2 # Cured
def beacon_off_behaviour(self):
- self.state['visible'] = False
+ self.state["visible"] = False
infected_neighbors = self.get_neighboring_agents(state_id=1)
if len(infected_neighbors) > 0:
- self.state['id'] == 5 # Beacon on
+ self.state["id"] == 5 # Beacon on
def beacon_on_behaviour(self):
- self.state['visible'] = False
+ self.state["visible"] = False
# Cure (M2 feature added)
infected_neighbors = self.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors:
if self.prob(self.prob_generate_anti_rumor):
- neighbor.state['id'] = 2 # Cured
+ neighbor.state["id"] = 2 # Cured
neutral_neighbors_infected = neighbor.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors_infected:
if self.prob(self.prob_generate_anti_rumor):
- neighbor.state['id'] = 3 # Vaccinated
+ neighbor.state["id"] = 3 # Vaccinated
infected_neighbors_infected = neighbor.get_neighboring_agents(state_id=1)
for neighbor in infected_neighbors_infected:
if self.prob(self.prob_generate_anti_rumor):
- neighbor.state['id'] = 2 # Cured
+ neighbor.state["id"] = 2 # Cured
# Vaccinate
neutral_neighbors = self.get_neighboring_agents(state_id=0)
for neighbor in neutral_neighbors:
if self.prob(self.prob_cured_vaccinate_neutral):
- neighbor.state['id'] = 3 # Vaccinated
+ neighbor.state["id"] = 3 # Vaccinated
diff --git a/soil/agents/SISaModel.py b/soil/agents/SISaModel.py
index fa0d224..e298e8a 100644
--- a/soil/agents/SISaModel.py
+++ b/soil/agents/SISaModel.py
@@ -6,25 +6,25 @@ class SISaModel(FSM):
"""
Settings:
neutral_discontent_spon_prob
-
+
neutral_discontent_infected_prob
-
+
neutral_content_spon_prob
-
+
neutral_content_infected_prob
-
+
discontent_neutral
-
+
discontent_content
-
+
variance_d_c
-
+
content_discontent
-
+
variance_c_d
-
+
content_neutral
-
+
standard_variance
"""
@@ -33,24 +33,32 @@ class SISaModel(FSM):
random = np.random.default_rng(seed=self._seed)
- self.neutral_discontent_spon_prob = random.normal(self.env['neutral_discontent_spon_prob'],
- self.env['standard_variance'])
- self.neutral_discontent_infected_prob = random.normal(self.env['neutral_discontent_infected_prob'],
- self.env['standard_variance'])
- self.neutral_content_spon_prob = random.normal(self.env['neutral_content_spon_prob'],
- self.env['standard_variance'])
- self.neutral_content_infected_prob = random.normal(self.env['neutral_content_infected_prob'],
- self.env['standard_variance'])
+ self.neutral_discontent_spon_prob = random.normal(
+ self.env["neutral_discontent_spon_prob"], self.env["standard_variance"]
+ )
+ self.neutral_discontent_infected_prob = random.normal(
+ self.env["neutral_discontent_infected_prob"], self.env["standard_variance"]
+ )
+ self.neutral_content_spon_prob = random.normal(
+ self.env["neutral_content_spon_prob"], self.env["standard_variance"]
+ )
+ self.neutral_content_infected_prob = random.normal(
+ self.env["neutral_content_infected_prob"], self.env["standard_variance"]
+ )
- self.discontent_neutral = random.normal(self.env['discontent_neutral'],
- self.env['standard_variance'])
- self.discontent_content = random.normal(self.env['discontent_content'],
- self.env['variance_d_c'])
+ self.discontent_neutral = random.normal(
+ self.env["discontent_neutral"], self.env["standard_variance"]
+ )
+ self.discontent_content = random.normal(
+ self.env["discontent_content"], self.env["variance_d_c"]
+ )
- self.content_discontent = random.normal(self.env['content_discontent'],
- self.env['variance_c_d'])
- self.content_neutral = random.normal(self.env['content_neutral'],
- self.env['standard_variance'])
+ self.content_discontent = random.normal(
+ self.env["content_discontent"], self.env["variance_c_d"]
+ )
+ self.content_neutral = random.normal(
+ self.env["content_neutral"], self.env["standard_variance"]
+ )
@state
def neutral(self):
@@ -88,7 +96,9 @@ class SISaModel(FSM):
return self.neutral
# Superinfected
- discontent_neighbors = self.count_neighboring_agents(state_id=self.discontent.id)
+ discontent_neighbors = self.count_neighboring_agents(
+ state_id=self.discontent.id
+ )
if self.prob(scontent_neighbors * self.content_discontent):
self.discontent
return self.content
diff --git a/soil/agents/SentimentCorrelationModel.py b/soil/agents/SentimentCorrelationModel.py
index 96907aa..721d026 100644
--- a/soil/agents/SentimentCorrelationModel.py
+++ b/soil/agents/SentimentCorrelationModel.py
@@ -5,27 +5,31 @@ class SentimentCorrelationModel(BaseAgent):
"""
Settings:
outside_effects_prob
-
+
anger_prob
-
+
joy_prob
-
+
sadness_prob
-
+
disgust_prob
"""
def __init__(self, environment, unique_id=0, state=()):
super().__init__(model=environment, unique_id=unique_id, state=state)
- self.outside_effects_prob = environment.environment_params['outside_effects_prob']
- self.anger_prob = environment.environment_params['anger_prob']
- self.joy_prob = environment.environment_params['joy_prob']
- self.sadness_prob = environment.environment_params['sadness_prob']
- self.disgust_prob = environment.environment_params['disgust_prob']
- self.state['time_awareness'] = []
+ self.outside_effects_prob = environment.environment_params[
+ "outside_effects_prob"
+ ]
+ self.anger_prob = environment.environment_params["anger_prob"]
+ self.joy_prob = environment.environment_params["joy_prob"]
+ self.sadness_prob = environment.environment_params["sadness_prob"]
+ self.disgust_prob = environment.environment_params["disgust_prob"]
+ self.state["time_awareness"] = []
for i in range(4): # In this model we have 4 sentiments
- self.state['time_awareness'].append(0) # 0-> Anger, 1-> joy, 2->sadness, 3 -> disgust
- self.state['sentimentCorrelation'] = 0
+ self.state["time_awareness"].append(
+ 0
+ ) # 0-> Anger, 1-> joy, 2->sadness, 3 -> disgust
+ self.state["sentimentCorrelation"] = 0
def step(self):
self.behaviour()
@@ -39,63 +43,73 @@ class SentimentCorrelationModel(BaseAgent):
angry_neighbors = self.get_neighboring_agents(state_id=1)
for x in angry_neighbors:
- if x.state['time_awareness'][0] > (self.env.now-500):
+ if x.state["time_awareness"][0] > (self.env.now - 500):
angry_neighbors_1_time_step.append(x)
num_neighbors_angry = len(angry_neighbors_1_time_step)
joyful_neighbors = self.get_neighboring_agents(state_id=2)
for x in joyful_neighbors:
- if x.state['time_awareness'][1] > (self.env.now-500):
+ if x.state["time_awareness"][1] > (self.env.now - 500):
joyful_neighbors_1_time_step.append(x)
num_neighbors_joyful = len(joyful_neighbors_1_time_step)
sad_neighbors = self.get_neighboring_agents(state_id=3)
for x in sad_neighbors:
- if x.state['time_awareness'][2] > (self.env.now-500):
+ if x.state["time_awareness"][2] > (self.env.now - 500):
sad_neighbors_1_time_step.append(x)
num_neighbors_sad = len(sad_neighbors_1_time_step)
disgusted_neighbors = self.get_neighboring_agents(state_id=4)
for x in disgusted_neighbors:
- if x.state['time_awareness'][3] > (self.env.now-500):
+ if x.state["time_awareness"][3] > (self.env.now - 500):
disgusted_neighbors_1_time_step.append(x)
num_neighbors_disgusted = len(disgusted_neighbors_1_time_step)
- anger_prob = self.anger_prob+(len(angry_neighbors_1_time_step)*self.anger_prob)
- joy_prob = self.joy_prob+(len(joyful_neighbors_1_time_step)*self.joy_prob)
- sadness_prob = self.sadness_prob+(len(sad_neighbors_1_time_step)*self.sadness_prob)
- disgust_prob = self.disgust_prob+(len(disgusted_neighbors_1_time_step)*self.disgust_prob)
+ anger_prob = self.anger_prob + (
+ len(angry_neighbors_1_time_step) * self.anger_prob
+ )
+ joy_prob = self.joy_prob + (len(joyful_neighbors_1_time_step) * self.joy_prob)
+ sadness_prob = self.sadness_prob + (
+ len(sad_neighbors_1_time_step) * self.sadness_prob
+ )
+ disgust_prob = self.disgust_prob + (
+ len(disgusted_neighbors_1_time_step) * self.disgust_prob
+ )
outside_effects_prob = self.outside_effects_prob
num = self.random.random()
- if num anger_prob:
- self.state['id'] = 1
- self.state['sentimentCorrelation'] = 1
- self.state['time_awareness'][self.state['id']-1] = self.env.now
- elif (numanger_prob):
+ self.state["id"] = 2
+ self.state["sentimentCorrelation"] = 2
+ self.state["time_awareness"][self.state["id"] - 1] = self.env.now
+ elif num < sadness_prob + anger_prob + joy_prob and num > joy_prob + anger_prob:
- self.state['id'] = 2
- self.state['sentimentCorrelation'] = 2
- self.state['time_awareness'][self.state['id']-1] = self.env.now
- elif (numjoy_prob+anger_prob):
+ self.state["id"] = 3
+ self.state["sentimentCorrelation"] = 3
+ self.state["time_awareness"][self.state["id"] - 1] = self.env.now
+ elif (
+ num < disgust_prob + sadness_prob + anger_prob + joy_prob
+ and num > sadness_prob + anger_prob + joy_prob
+ ):
- self.state['id'] = 3
- self.state['sentimentCorrelation'] = 3
- self.state['time_awareness'][self.state['id']-1] = self.env.now
- elif (numsadness_prob+anger_prob+joy_prob):
+ self.state["id"] = 4
+ self.state["sentimentCorrelation"] = 4
+ self.state["time_awareness"][self.state["id"] - 1] = self.env.now
- self.state['id'] = 4
- self.state['sentimentCorrelation'] = 4
- self.state['time_awareness'][self.state['id']-1] = self.env.now
-
- self.state['sentiment'] = self.state['id']
+ self.state["sentiment"] = self.state["id"]
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index ad3e4a7..c284604 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -20,13 +20,13 @@ from typing import Dict, List
from .. import serialization, utils, time, config
-
def as_node(agent):
if isinstance(agent, BaseAgent):
return agent.id
return agent
-IGNORED_FIELDS = ('model', 'logger')
+
+IGNORED_FIELDS = ("model", "logger")
class DeadAgent(Exception):
@@ -43,13 +43,18 @@ class MetaAgent(ABCMeta):
defaults.update(i._defaults)
new_nmspc = {
- '_defaults': defaults,
+ "_defaults": defaults,
}
for attr, func in namespace.items():
- if isinstance(func, types.FunctionType) or isinstance(func, property) or isinstance(func, classmethod) or attr[0] == '_':
+ if (
+ isinstance(func, types.FunctionType)
+ or isinstance(func, property)
+ or isinstance(func, classmethod)
+ or attr[0] == "_"
+ ):
new_nmspc[attr] = func
- elif attr == 'defaults':
+ elif attr == "defaults":
defaults.update(func)
else:
defaults[attr] = copy(func)
@@ -69,12 +74,7 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
Any attribute that is not preceded by an underscore (`_`) will also be added to its state.
"""
- def __init__(self,
- unique_id,
- model,
- name=None,
- interval=None,
- **kwargs):
+ def __init__(self, unique_id, model, name=None, interval=None, **kwargs):
# Check for REQUIRED arguments
# Initialize agent parameters
if isinstance(unique_id, MesaAgent):
@@ -82,16 +82,19 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
assert isinstance(unique_id, int)
super().__init__(unique_id=unique_id, model=model)
- self.name = str(name) if name else'{}[{}]'.format(type(self).__name__, self.unique_id)
-
+ self.name = (
+ str(name) if name else "{}[{}]".format(type(self).__name__, self.unique_id)
+ )
self.alive = True
- self.interval = interval or self.get('interval', 1)
- logger = utils.logger.getChild(getattr(self.model, 'id', self.model)).getChild(self.name)
- self.logger = logging.LoggerAdapter(logger, {'agent_name': self.name})
+ self.interval = interval or self.get("interval", 1)
+ logger = utils.logger.getChild(getattr(self.model, "id", self.model)).getChild(
+ self.name
+ )
+ self.logger = logging.LoggerAdapter(logger, {"agent_name": self.name})
- if hasattr(self, 'level'):
+ if hasattr(self, "level"):
self.logger.setLevel(self.level)
for (k, v) in self._defaults.items():
@@ -117,20 +120,22 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
def from_dict(cls, model, attrs, warn_extra=True):
ignored = {}
args = {}
- for k, v in attrs.items():
+ for k, v in attrs.items():
if k in inspect.signature(cls).parameters:
args[k] = v
else:
ignored[k] = v
if ignored and warn_extra:
- utils.logger.info(f'Ignoring the following arguments for agent class { agent_class.__name__ }: { ignored }')
+ utils.logger.info(
+ f"Ignoring the following arguments for agent class { agent_class.__name__ }: { ignored }"
+ )
return cls(model=model, **args)
def __getitem__(self, key):
try:
return getattr(self, key)
except AttributeError:
- raise KeyError(f'key {key} not found in agent')
+ raise KeyError(f"key {key} not found in agent")
def __delitem__(self, key):
return delattr(self, key)
@@ -148,7 +153,7 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
return self.items()
def keys(self):
- return (k for k in self.__dict__ if k[0] != '_' and k not in IGNORED_FIELDS)
+ return (k for k in self.__dict__ if k[0] != "_" and k not in IGNORED_FIELDS)
def items(self, keys=None, skip=None):
keys = keys if keys is not None else self.keys()
@@ -156,7 +161,7 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
if skip:
return filter(lambda x: x[0] not in skip, it)
return it
-
+
def get(self, key, default=None):
return self[key] if key in self else default
@@ -169,7 +174,7 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
return None
def die(self):
- self.info(f'agent dying')
+ self.info(f"agent dying")
self.alive = False
return time.NEVER
@@ -186,9 +191,9 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
for k, v in kwargs:
message += " {k}={v} ".format(k, v)
extra = {}
- extra['now'] = self.now
- extra['unique_id'] = self.unique_id
- extra['agent_name'] = self.name
+ extra["now"] = self.now
+ extra["unique_id"] = self.unique_id
+ extra["agent_name"] = self.name
return self.logger.log(level, message, extra=extra)
def debug(self, *args, **kwargs):
@@ -214,10 +219,10 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
content = dict(self.items(keys=keys))
if pretty and content:
d = content
- content = '\n'
+ content = "\n"
for k, v in d.items():
- content += f'- {k}: {v}\n'
- content = textwrap.indent(content, ' ')
+ content += f"- {k}: {v}\n"
+ content = textwrap.indent(content, " ")
return f"{repr(self)}{content}"
def __repr__(self):
@@ -225,7 +230,6 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
class NetworkAgent(BaseAgent):
-
def __init__(self, *args, topology, node_id, **kwargs):
super().__init__(*args, **kwargs)
@@ -248,18 +252,21 @@ class NetworkAgent(BaseAgent):
def node(self):
return self.topology.nodes[self.node_id]
-
def iter_agents(self, unique_id=None, *, limit_neighbors=False, **kwargs):
unique_ids = None
if isinstance(unique_id, list):
unique_ids = set(unique_id)
elif unique_id is not None:
- unique_ids = set([unique_id,])
+ unique_ids = set(
+ [
+ unique_id,
+ ]
+ )
if limit_neighbors:
neighbor_ids = set()
for node_id in self.G.neighbors(self.node_id):
- if self.G.nodes[node_id].get('agent') is not None:
+ if self.G.nodes[node_id].get("agent") is not None:
neighbor_ids.add(node_id)
if unique_ids:
unique_ids = unique_ids & neighbor_ids
@@ -272,7 +279,9 @@ class NetworkAgent(BaseAgent):
def subgraph(self, center=True, **kwargs):
include = [self] if center else []
- G = self.G.subgraph(n.node_id for n in list(self.get_agents(**kwargs)+include))
+ G = self.G.subgraph(
+ n.node_id for n in list(self.get_agents(**kwargs) + include)
+ )
return G
def remove_node(self):
@@ -280,11 +289,19 @@ class NetworkAgent(BaseAgent):
def add_edge(self, other, edge_attr_dict=None, *edge_attrs):
if self.node_id not in self.G.nodes(data=False):
- raise ValueError('{} not in list of existing agents in the network'.format(self.unique_id))
+ raise ValueError(
+ "{} not in list of existing agents in the network".format(
+ self.unique_id
+ )
+ )
if other.node_id not in self.G.nodes(data=False):
- raise ValueError('{} not in list of existing agents in the network'.format(other))
+ raise ValueError(
+ "{} not in list of existing agents in the network".format(other)
+ )
- self.G.add_edge(self.node_id, other.node_id, edge_attr_dict=edge_attr_dict, *edge_attrs)
+ self.G.add_edge(
+ self.node_id, other.node_id, edge_attr_dict=edge_attr_dict, *edge_attrs
+ )
def die(self, remove=True):
if remove:
@@ -294,11 +311,11 @@ class NetworkAgent(BaseAgent):
def state(name=None):
def decorator(func, name=None):
- '''
+ """
A state function should return either a state id, or a tuple (state_id, when)
The default value for state_id is the current state id.
The default value for when is the interval defined in the environment.
- '''
+ """
if inspect.isgeneratorfunction(func):
orig_func = func
@@ -348,32 +365,38 @@ class MetaFSM(MetaAgent):
# Add new states
for attr, func in namespace.items():
- if hasattr(func, 'id'):
+ if hasattr(func, "id"):
if func.is_default:
default_state = func
states[func.id] = func
- namespace.update({
- '_default_state': default_state,
- '_states': states,
- })
+ namespace.update(
+ {
+ "_default_state": default_state,
+ "_states": states,
+ }
+ )
- return super(MetaFSM, mcls).__new__(mcls=mcls, name=name, bases=bases, namespace=namespace)
+ return super(MetaFSM, mcls).__new__(
+ mcls=mcls, name=name, bases=bases, namespace=namespace
+ )
class FSM(BaseAgent, metaclass=MetaFSM):
def __init__(self, *args, **kwargs):
super(FSM, self).__init__(*args, **kwargs)
- if not hasattr(self, 'state_id'):
+ if not hasattr(self, "state_id"):
if not self._default_state:
- raise ValueError('No default state specified for {}'.format(self.unique_id))
+ raise ValueError(
+ "No default state specified for {}".format(self.unique_id)
+ )
self.state_id = self._default_state.id
self._coroutine = None
self.set_state(self.state_id)
def step(self):
- self.debug(f'Agent {self.unique_id} @ state {self.state_id}')
+ self.debug(f"Agent {self.unique_id} @ state {self.state_id}")
default_interval = super().step()
next_state = self._states[self.state_id](self)
@@ -386,7 +409,9 @@ class FSM(BaseAgent, metaclass=MetaFSM):
elif len(when) == 1:
when = when[0]
else:
- raise ValueError('Too many values returned. Only state (and time) allowed')
+ raise ValueError(
+ "Too many values returned. Only state (and time) allowed"
+ )
except TypeError:
pass
@@ -396,10 +421,10 @@ class FSM(BaseAgent, metaclass=MetaFSM):
return when or default_interval
def set_state(self, state, when=None):
- if hasattr(state, 'id'):
+ if hasattr(state, "id"):
state = state.id
if state not in self._states:
- raise ValueError('{} is not a valid state'.format(state))
+ raise ValueError("{} is not a valid state".format(state))
self.state_id = state
if when is not None:
self.model.schedule.add(self, when=when)
@@ -414,23 +439,22 @@ class FSM(BaseAgent, metaclass=MetaFSM):
def prob(prob, random):
- '''
+ """
A true/False uniform distribution with a given probability.
To be used like this:
.. code-block:: python
-
+
if prob(0.3):
do_something()
- '''
+ """
r = random.random()
return r < prob
-def calculate_distribution(network_agents=None,
- agent_class=None):
- '''
+def calculate_distribution(network_agents=None, agent_class=None):
+ """
Calculate the threshold values (thresholds for a uniform distribution)
of an agent distribution given the weights of each agent type.
@@ -453,26 +477,28 @@ def calculate_distribution(network_agents=None,
In this example, 20% of the nodes will be marked as type
'agent_class_1'.
- '''
+ """
if network_agents:
- network_agents = [deepcopy(agent) for agent in network_agents if not hasattr(agent, 'id')]
+ network_agents = [
+ deepcopy(agent) for agent in network_agents if not hasattr(agent, "id")
+ ]
elif agent_class:
- network_agents = [{'agent_class': agent_class}]
+ network_agents = [{"agent_class": agent_class}]
else:
- raise ValueError('Specify a distribution or a default agent type')
+ raise ValueError("Specify a distribution or a default agent type")
# Fix missing weights and incompatible types
for x in network_agents:
- x['weight'] = float(x.get('weight', 1))
+ x["weight"] = float(x.get("weight", 1))
# Calculate the thresholds
- total = sum(x['weight'] for x in network_agents)
+ total = sum(x["weight"] for x in network_agents)
acc = 0
for v in network_agents:
- if 'ids' in v:
+ if "ids" in v:
continue
- upper = acc + (v['weight']/total)
- v['threshold'] = [acc, upper]
+ upper = acc + (v["weight"] / total)
+ v["threshold"] = [acc, upper]
acc = upper
return network_agents
@@ -480,28 +506,29 @@ def calculate_distribution(network_agents=None,
def serialize_type(agent_class, known_modules=[], **kwargs):
if isinstance(agent_class, str):
return agent_class
- known_modules += ['soil.agents']
- return serialization.serialize(agent_class, known_modules=known_modules, **kwargs)[1] # Get the name of the class
+ known_modules += ["soil.agents"]
+ return serialization.serialize(agent_class, known_modules=known_modules, **kwargs)[
+ 1
+ ] # Get the name of the class
def serialize_definition(network_agents, known_modules=[]):
- '''
+ """
When serializing an agent distribution, remove the thresholds, in order
to avoid cluttering the YAML definition file.
- '''
+ """
d = deepcopy(list(network_agents))
for v in d:
- if 'threshold' in v:
- del v['threshold']
- v['agent_class'] = serialize_type(v['agent_class'],
- known_modules=known_modules)
+ if "threshold" in v:
+ del v["threshold"]
+ v["agent_class"] = serialize_type(v["agent_class"], known_modules=known_modules)
return d
def deserialize_type(agent_class, known_modules=[]):
if not isinstance(agent_class, str):
return agent_class
- known = known_modules + ['soil.agents', 'soil.agents.custom' ]
+ known = known_modules + ["soil.agents", "soil.agents.custom"]
agent_class = serialization.deserializer(agent_class, known_modules=known)
return agent_class
@@ -509,12 +536,12 @@ def deserialize_type(agent_class, known_modules=[]):
def deserialize_definition(ind, **kwargs):
d = deepcopy(ind)
for v in d:
- v['agent_class'] = deserialize_type(v['agent_class'], **kwargs)
+ v["agent_class"] = deserialize_type(v["agent_class"], **kwargs)
return d
def _validate_states(states, topology):
- '''Validate states to avoid ignoring states during initialization'''
+ """Validate states to avoid ignoring states during initialization"""
states = states or []
if isinstance(states, dict):
for x in states:
@@ -525,7 +552,7 @@ def _validate_states(states, topology):
def _convert_agent_classs(ind, to_string=False, **kwargs):
- '''Convenience method to allow specifying agents by class or class name.'''
+ """Convenience method to allow specifying agents by class or class name."""
if to_string:
return serialize_definition(ind, **kwargs)
return deserialize_definition(ind, **kwargs)
@@ -609,12 +636,10 @@ def _convert_agent_classs(ind, to_string=False, **kwargs):
class AgentView(Mapping, Set):
- """A lazy-loaded list of agents.
- """
+ """A lazy-loaded list of agents."""
__slots__ = ("_agents",)
-
def __init__(self, agents):
self._agents = agents
@@ -657,11 +682,20 @@ class AgentView(Mapping, Set):
return f"{self.__class__.__name__}({self})"
-def filter_agents(agents, *id_args, unique_id=None, state_id=None, agent_class=None, ignore=None, state=None,
- limit=None, **kwargs):
- '''
+def filter_agents(
+ agents,
+ *id_args,
+ unique_id=None,
+ state_id=None,
+ agent_class=None,
+ ignore=None,
+ state=None,
+ limit=None,
+ **kwargs,
+):
+ """
Filter agents given as a dict, by the criteria given as arguments (e.g., certain type or state id).
- '''
+ """
assert isinstance(agents, dict)
ids = []
@@ -694,7 +728,7 @@ def filter_agents(agents, *id_args, unique_id=None, state_id=None, agent_class=N
f = filter(lambda x: x not in ignore, f)
if state_id is not None:
- f = filter(lambda agent: agent.get('state_id', None) in state_id, f)
+ f = filter(lambda agent: agent.get("state_id", None) in state_id, f)
if agent_class is not None:
f = filter(lambda agent: isinstance(agent, agent_class), f)
@@ -711,23 +745,25 @@ def filter_agents(agents, *id_args, unique_id=None, state_id=None, agent_class=N
yield from f
-def from_config(cfg: config.AgentConfig, random, topology: nx.Graph = None) -> List[Dict[str, Any]]:
- '''
+def from_config(
+ cfg: config.AgentConfig, random, topology: nx.Graph = None
+) -> List[Dict[str, Any]]:
+ """
This function turns an agentconfig into a list of individual "agent specifications", which are just a dictionary
with the parameters that the environment will use to construct each agent.
This function does NOT return a list of agents, mostly because some attributes to the agent are not known at the
time of calling this function, such as `unique_id`.
- '''
+ """
default = cfg or config.AgentConfig()
if not isinstance(cfg, config.AgentConfig):
cfg = config.AgentConfig(**cfg)
return _agents_from_config(cfg, topology=topology, random=random)
-def _agents_from_config(cfg: config.AgentConfig,
- topology: nx.Graph,
- random) -> List[Dict[str, Any]]:
+def _agents_from_config(
+ cfg: config.AgentConfig, topology: nx.Graph, random
+) -> List[Dict[str, Any]]:
if cfg and not isinstance(cfg, config.AgentConfig):
cfg = config.AgentConfig(**cfg)
@@ -737,7 +773,9 @@ def _agents_from_config(cfg: config.AgentConfig,
assigned_network = 0
if cfg.fixed is not None:
- agents, assigned_total, assigned_network = _from_fixed(cfg.fixed, topology=cfg.topology, default=cfg)
+ agents, assigned_total, assigned_network = _from_fixed(
+ cfg.fixed, topology=cfg.topology, default=cfg
+ )
n = cfg.n
@@ -749,46 +787,56 @@ def _agents_from_config(cfg: config.AgentConfig,
for d in cfg.distribution:
if d.strategy == config.Strategy.topology:
- topo = d.topology if ('topology' in d.__fields_set__) else cfg.topology
+ topo = d.topology if ("topology" in d.__fields_set__) else cfg.topology
if not topo:
- raise ValueError('The "topology" strategy only works if the topology parameter is set to True')
+ raise ValueError(
+ 'The "topology" strategy only works if the topology parameter is set to True'
+ )
if not topo_size:
- raise ValueError(f'Topology does not have enough free nodes to assign one to the agent')
+ raise ValueError(
+ f"Topology does not have enough free nodes to assign one to the agent"
+ )
networked.append(d)
if d.strategy == config.Strategy.total:
if not cfg.n:
- raise ValueError('Cannot use the "total" strategy without providing the total number of agents')
+ raise ValueError(
+ 'Cannot use the "total" strategy without providing the total number of agents'
+ )
total.append(d)
-
if networked:
- new_agents = _from_distro(networked,
- n= topo_size - assigned_network,
- topology=topo,
- default=cfg,
- random=random)
+ new_agents = _from_distro(
+ networked,
+ n=topo_size - assigned_network,
+ topology=topo,
+ default=cfg,
+ random=random,
+ )
assigned_total += len(new_agents)
assigned_network += len(new_agents)
agents += new_agents
if total:
- remaining = n - assigned_total
- agents += _from_distro(total, n=remaining,
- default=cfg,
- random=random)
-
+ remaining = n - assigned_total
+ agents += _from_distro(total, n=remaining, default=cfg, random=random)
if assigned_network < topo_size:
- utils.logger.warn(f'The total number of agents does not match the total number of nodes in '
- 'every topology. This may be due to a definition error: assigned: '
- f'{ assigned } total size: { topo_size }')
+ utils.logger.warn(
+ f"The total number of agents does not match the total number of nodes in "
+ "every topology. This may be due to a definition error: assigned: "
+ f"{ assigned } total size: { topo_size }"
+ )
return agents
-def _from_fixed(lst: List[config.FixedAgentConfig], topology: bool, default: config.SingleAgentConfig) -> List[Dict[str, Any]]:
+def _from_fixed(
+ lst: List[config.FixedAgentConfig],
+ topology: bool,
+ default: config.SingleAgentConfig,
+) -> List[Dict[str, Any]]:
agents = []
counts_total = 0
@@ -799,12 +847,18 @@ def _from_fixed(lst: List[config.FixedAgentConfig], topology: bool, default: con
if default:
agent = default.state.copy()
agent.update(fixed.state)
- cls = serialization.deserialize(fixed.agent_class or (default and default.agent_class))
- agent['agent_class'] = cls
- topo = fixed.topology if ('topology' in fixed.__fields_set__) else topology or default.topology
+ cls = serialization.deserialize(
+ fixed.agent_class or (default and default.agent_class)
+ )
+ agent["agent_class"] = cls
+ topo = (
+ fixed.topology
+ if ("topology" in fixed.__fields_set__)
+ else topology or default.topology
+ )
if topo:
- agent['topology'] = True
+ agent["topology"] = True
counts_network += 1
if not fixed.hidden:
counts_total += 1
@@ -813,17 +867,21 @@ def _from_fixed(lst: List[config.FixedAgentConfig], topology: bool, default: con
return agents, counts_total, counts_network
-def _from_distro(distro: List[config.AgentDistro],
- n: int,
- topology: str,
- default: config.SingleAgentConfig,
- random) -> List[Dict[str, Any]]:
+def _from_distro(
+ distro: List[config.AgentDistro],
+ n: int,
+ topology: str,
+ default: config.SingleAgentConfig,
+ random,
+) -> List[Dict[str, Any]]:
agents = []
if n is None:
if any(lambda dist: dist.n is None, distro):
- raise ValueError('You must provide a total number of agents, or the number of each type')
+ raise ValueError(
+ "You must provide a total number of agents, or the number of each type"
+ )
n = sum(dist.n for dist in distro)
weights = list(dist.weight if dist.weight is not None else 1 for dist in distro)
@@ -836,29 +894,40 @@ def _from_distro(distro: List[config.AgentDistro],
# So instead we calculate our own distribution to make sure the actual ratios are close to what we would expect
# Calculate how many times each has to appear
- indices = list(chain.from_iterable([idx] * int(n*chunk) for (idx, n) in enumerate(norm)))
+ indices = list(
+ chain.from_iterable([idx] * int(n * chunk) for (idx, n) in enumerate(norm))
+ )
# Complete with random agents following the original weight distribution
if len(indices) < n:
- indices += random.choices(list(range(len(distro))), weights=[d.weight for d in distro], k=n-len(indices))
+ indices += random.choices(
+ list(range(len(distro))),
+ weights=[d.weight for d in distro],
+ k=n - len(indices),
+ )
# Deserialize classes for efficiency
- classes = list(serialization.deserialize(i.agent_class or default.agent_class) for i in distro)
+ classes = list(
+ serialization.deserialize(i.agent_class or default.agent_class) for i in distro
+ )
# Add them in random order
random.shuffle(indices)
-
for idx in indices:
d = distro[idx]
agent = d.state.copy()
cls = classes[idx]
- agent['agent_class'] = cls
+ agent["agent_class"] = cls
if default:
agent.update(default.state)
- topology = d.topology if ('topology' in d.__fields_set__) else topology or default.topology
+ topology = (
+ d.topology
+ if ("topology" in d.__fields_set__)
+ else topology or default.topology
+ )
if topology:
- agent['topology'] = topology
+ agent["topology"] = topology
agents.append(agent)
return agents
@@ -877,4 +946,5 @@ try:
from .Geo import Geo
except ImportError:
import sys
- print('Could not load the Geo Agent, scipy is not installed', file=sys.stderr)
+
+ print("Could not load the Geo Agent, scipy is not installed", file=sys.stderr)
diff --git a/soil/config.py b/soil/config.py
index 7b39154..8dbbffa 100644
--- a/soil/config.py
+++ b/soil/config.py
@@ -19,6 +19,7 @@ import networkx as nx
# Could use TypeAlias in python >= 3.10
nodeId = int
+
class Node(BaseModel):
id: nodeId
state: Optional[Dict[str, Any]] = {}
@@ -38,7 +39,7 @@ class Topology(BaseModel):
class NetParams(BaseModel, extra=Extra.allow):
generator: Union[Callable, str]
- n: int
+ n: int
class NetConfig(BaseModel):
@@ -54,14 +55,15 @@ class NetConfig(BaseModel):
return NetConfig(topology=None, params=None)
@root_validator
- def validate_all(cls, values):
- if 'params' not in values and 'topology' not in values:
- raise ValueError('You must specify either a topology or the parameters to generate a graph')
+ def validate_all(cls, values):
+ if "params" not in values and "topology" not in values:
+ raise ValueError(
+ "You must specify either a topology or the parameters to generate a graph"
+ )
return values
class EnvConfig(BaseModel):
-
@staticmethod
def default():
return EnvConfig()
@@ -80,9 +82,11 @@ class FixedAgentConfig(SingleAgentConfig):
hidden: Optional[bool] = False # Do not count this agent towards total agent count
@root_validator
- def validate_all(cls, values):
- if values.get('unique_id', None) is not None and values.get('n', 1) > 1:
- raise ValueError(f"An unique_id can only be provided when there is only one agent ({values.get('n')} given)")
+ def validate_all(cls, values):
+ if values.get("unique_id", None) is not None and values.get("n", 1) > 1:
+ raise ValueError(
+ f"An unique_id can only be provided when there is only one agent ({values.get('n')} given)"
+ )
return values
@@ -91,8 +95,8 @@ class OverrideAgentConfig(FixedAgentConfig):
class Strategy(Enum):
- topology = 'topology'
- total = 'total'
+ topology = "topology"
+ total = "total"
class AgentDistro(SingleAgentConfig):
@@ -111,16 +115,20 @@ class AgentConfig(SingleAgentConfig):
return AgentConfig()
@root_validator
- def validate_all(cls, values):
- if 'distribution' in values and ('n' not in values and 'topology' not in values):
- raise ValueError("You need to provide the number of agents or a topology to extract the value from.")
+ def validate_all(cls, values):
+ if "distribution" in values and (
+ "n" not in values and "topology" not in values
+ ):
+ raise ValueError(
+ "You need to provide the number of agents or a topology to extract the value from."
+ )
return values
class Config(BaseModel, extra=Extra.allow):
- version: Optional[str] = '1'
+ version: Optional[str] = "1"
- name: str = 'Unnamed Simulation'
+ name: str = "Unnamed Simulation"
description: Optional[str] = None
group: str = None
dir_path: Optional[str] = None
@@ -140,45 +148,48 @@ class Config(BaseModel, extra=Extra.allow):
def from_raw(cls, cfg):
if isinstance(cfg, Config):
return cfg
- if cfg.get('version', '1') == '1' and any(k in cfg for k in ['agents', 'agent_class', 'topology', 'environment_class']):
+ if cfg.get("version", "1") == "1" and any(
+ k in cfg for k in ["agents", "agent_class", "topology", "environment_class"]
+ ):
return convert_old(cfg)
return Config(**cfg)
def convert_old(old, strict=True):
- '''
+ """
Try to convert old style configs into the new format.
This is still a work in progress and might not work in many cases.
- '''
+ """
- utils.logger.warning('The old configuration format is deprecated. The converted file MAY NOT yield the right results')
+ utils.logger.warning(
+ "The old configuration format is deprecated. The converted file MAY NOT yield the right results"
+ )
new = old.copy()
network = {}
- if 'topology' in old:
- del new['topology']
- network['topology'] = old['topology']
+ if "topology" in old:
+ del new["topology"]
+ network["topology"] = old["topology"]
- if 'network_params' in old and old['network_params']:
- del new['network_params']
- for (k, v) in old['network_params'].items():
- if k == 'path':
- network['path'] = v
+ if "network_params" in old and old["network_params"]:
+ del new["network_params"]
+ for (k, v) in old["network_params"].items():
+ if k == "path":
+ network["path"] = v
else:
- network.setdefault('params', {})[k] = v
+ network.setdefault("params", {})[k] = v
topology = None
if network:
topology = network
-
- agents = {'fixed': [], 'distribution': []}
+ agents = {"fixed": [], "distribution": []}
def updated_agent(agent):
- '''Convert an agent definition'''
+ """Convert an agent definition"""
newagent = dict(agent)
return newagent
@@ -186,80 +197,74 @@ def convert_old(old, strict=True):
fixed = []
override = []
- if 'environment_agents' in new:
+ if "environment_agents" in new:
- for agent in new['environment_agents']:
- agent.setdefault('state', {})['group'] = 'environment'
- if 'agent_id' in agent:
- agent['state']['name'] = agent['agent_id']
- del agent['agent_id']
- agent['hidden'] = True
- agent['topology'] = False
+ for agent in new["environment_agents"]:
+ agent.setdefault("state", {})["group"] = "environment"
+ if "agent_id" in agent:
+ agent["state"]["name"] = agent["agent_id"]
+ del agent["agent_id"]
+ agent["hidden"] = True
+ agent["topology"] = False
fixed.append(updated_agent(agent))
- del new['environment_agents']
+ del new["environment_agents"]
+ if "agent_class" in old:
+ del new["agent_class"]
+ agents["agent_class"] = old["agent_class"]
- if 'agent_class' in old:
- del new['agent_class']
- agents['agent_class'] = old['agent_class']
+ if "default_state" in old:
+ del new["default_state"]
+ agents["state"] = old["default_state"]
- if 'default_state' in old:
- del new['default_state']
- agents['state'] = old['default_state']
+ if "network_agents" in old:
+ agents["topology"] = True
- if 'network_agents' in old:
- agents['topology'] = True
+ agents.setdefault("state", {})["group"] = "network"
- agents.setdefault('state', {})['group'] = 'network'
-
- for agent in new['network_agents']:
+ for agent in new["network_agents"]:
agent = updated_agent(agent)
- if 'agent_id' in agent:
- agent['state']['name'] = agent['agent_id']
- del agent['agent_id']
+ if "agent_id" in agent:
+ agent["state"]["name"] = agent["agent_id"]
+ del agent["agent_id"]
fixed.append(agent)
else:
by_weight.append(agent)
- del new['network_agents']
+ del new["network_agents"]
- if 'agent_class' in old and (not fixed and not by_weight):
- agents['topology'] = True
- by_weight = [{'agent_class': old['agent_class'], 'weight': 1}]
+ if "agent_class" in old and (not fixed and not by_weight):
+ agents["topology"] = True
+ by_weight = [{"agent_class": old["agent_class"], "weight": 1}]
-
# TODO: translate states properly
- if 'states' in old:
- del new['states']
- states = old['states']
+ if "states" in old:
+ del new["states"]
+ states = old["states"]
if isinstance(states, dict):
states = states.items()
else:
states = enumerate(states)
for (k, v) in states:
- override.append({'filter': {'node_id': k},
- 'state': v})
-
- agents['override'] = override
- agents['fixed'] = fixed
- agents['distribution'] = by_weight
+ override.append({"filter": {"node_id": k}, "state": v})
+ agents["override"] = override
+ agents["fixed"] = fixed
+ agents["distribution"] = by_weight
model_params = {}
- if 'environment_params' in new:
- del new['environment_params']
- model_params = dict(old['environment_params'])
+ if "environment_params" in new:
+ del new["environment_params"]
+ model_params = dict(old["environment_params"])
- if 'environment_class' in old:
- del new['environment_class']
- new['model_class'] = old['environment_class']
+ if "environment_class" in old:
+ del new["environment_class"]
+ new["model_class"] = old["environment_class"]
- if 'dump' in old:
- del new['dump']
- new['dry_run'] = not old['dump']
+ if "dump" in old:
+ del new["dump"]
+ new["dry_run"] = not old["dump"]
- model_params['topology'] = topology
- model_params['agents'] = agents
+ model_params["topology"] = topology
+ model_params["agents"] = agents
- return Config(version='2',
- model_params=model_params,
- **new)
+ return Config(version="2", model_params=model_params, **new)
diff --git a/soil/datacollection.py b/soil/datacollection.py
index a889a76..dea9f1d 100644
--- a/soil/datacollection.py
+++ b/soil/datacollection.py
@@ -1,6 +1,6 @@
from mesa import DataCollector as MDC
-class SoilDataCollector(MDC):
+class SoilDataCollector(MDC):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
diff --git a/soil/debugging.py b/soil/debugging.py
index 863c50a..607996b 100644
--- a/soil/debugging.py
+++ b/soil/debugging.py
@@ -18,9 +18,9 @@ def wrapcmd(func):
known = globals()
known.update(self.curframe.f_globals)
known.update(self.curframe.f_locals)
- known['agent'] = known.get('self', None)
- known['model'] = known.get('self', {}).get('model')
- known['attrs'] = arg.strip().split()
+ known["agent"] = known.get("self", None)
+ known["model"] = known.get("self", {}).get("model")
+ known["attrs"] = arg.strip().split()
exec(func.__code__, known, known)
@@ -29,12 +29,12 @@ def wrapcmd(func):
class Debug(pdb.Pdb):
def __init__(self, *args, skip_soil=False, **kwargs):
- skip = kwargs.get('skip', [])
- skip.append('soil')
+ skip = kwargs.get("skip", [])
+ skip.append("soil")
if skip_soil:
- skip.append('soil')
- skip.append('soil.*')
- skip.append('mesa.*')
+ skip.append("soil")
+ skip.append("soil.*")
+ skip.append("mesa.*")
super(Debug, self).__init__(*args, skip=skip, **kwargs)
self.prompt = "[soil-pdb] "
@@ -42,7 +42,7 @@ class Debug(pdb.Pdb):
def _soil_agents(model, attrs=None, pretty=True, **kwargs):
for agent in model.agents(**kwargs):
d = agent
- print(' - ' + indent(agent.to_str(keys=attrs, pretty=pretty), ' '))
+ print(" - " + indent(agent.to_str(keys=attrs, pretty=pretty), " "))
@wrapcmd
def do_soil_agents():
@@ -52,20 +52,20 @@ class Debug(pdb.Pdb):
@wrapcmd
def do_soil_list():
- return Debug._soil_agents(model, attrs=['state_id'], pretty=False)
+ return Debug._soil_agents(model, attrs=["state_id"], pretty=False)
do_sl = do_soil_list
def do_continue_state(self, arg):
self.do_break_state(arg, temporary=True)
- return self.do_continue('')
+ return self.do_continue("")
do_cs = do_continue_state
@wrapcmd
def do_soil_agent():
if not agent:
- print('No agent available')
+ print("No agent available")
return
keys = None
@@ -81,9 +81,9 @@ class Debug(pdb.Pdb):
do_aa = do_soil_agent
def do_break_state(self, arg: str, instances=None, temporary=False):
- '''
+ """
Break before a specified state is stepped into.
- '''
+ """
klass = None
state = arg
@@ -95,39 +95,39 @@ class Debug(pdb.Pdb):
if tokens:
instances = list(eval(token) for token in tokens)
- colon = state.find(':')
+ colon = state.find(":")
if colon > 0:
klass = state[:colon].rstrip()
- state = state[colon+1:].strip()
-
+ state = state[colon + 1 :].strip()
print(klass, state, tokens)
- klass = eval(klass,
- self.curframe.f_globals,
- self.curframe_locals)
+ klass = eval(klass, self.curframe.f_globals, self.curframe_locals)
if klass:
klasses = [klass]
else:
- klasses = [k for k in self.curframe.f_globals.values() if isinstance(k, type) and issubclass(k, FSM)]
+ klasses = [
+ k
+ for k in self.curframe.f_globals.values()
+ if isinstance(k, type) and issubclass(k, FSM)
+ ]
if not klasses:
- self.error('No agent classes found')
-
-
+ self.error("No agent classes found")
+
for klass in klasses:
try:
func = getattr(klass, state)
except AttributeError:
- self.error(f'State {state} not found in class {klass}')
+ self.error(f"State {state} not found in class {klass}")
continue
- if hasattr(func, '__func__'):
+ if hasattr(func, "__func__"):
func = func.__func__
code = func.__code__
- #use co_name to identify the bkpt (function names
- #could be aliased, but co_name is invariant)
+ # use co_name to identify the bkpt (function names
+ # could be aliased, but co_name is invariant)
funcname = code.co_name
lineno = code.co_firstlineno
filename = code.co_filename
@@ -135,38 +135,36 @@ class Debug(pdb.Pdb):
# Check for reasonable breakpoint
line = self.checkline(filename, lineno)
if not line:
- raise ValueError('no line found')
+ raise ValueError("no line found")
# now set the break point
cond = None
if instances:
- cond = f'self.unique_id in { repr(instances) }'
+ cond = f"self.unique_id in { repr(instances) }"
existing = self.get_breaks(filename, line)
if existing:
- self.message("Breakpoint already exists at %s:%d" %
- (filename, line))
+ self.message("Breakpoint already exists at %s:%d" % (filename, line))
continue
err = self.set_break(filename, line, temporary, cond, funcname)
if err:
self.error(err)
else:
bp = self.get_breaks(filename, line)[-1]
- self.message("Breakpoint %d at %s:%d" %
- (bp.number, bp.file, bp.line))
+ self.message("Breakpoint %d at %s:%d" % (bp.number, bp.file, bp.line))
do_bs = do_break_state
def do_break_state_self(self, arg: str, temporary=False):
- '''
+ """
Break before a specified state is stepped into, for the current agent
- '''
- agent = self.curframe.f_locals.get('self')
+ """
+ agent = self.curframe.f_locals.get("self")
if not agent:
- self.error('No current agent.')
- self.error('Try this again when the debugger is stopped inside an agent')
+ self.error("No current agent.")
+ self.error("Try this again when the debugger is stopped inside an agent")
return
- arg = f'{agent.__class__.__name__}:{ arg } {agent.unique_id}'
+ arg = f"{agent.__class__.__name__}:{ arg } {agent.unique_id}"
return self.do_break_state(arg)
do_bss = do_break_state_self
@@ -174,6 +172,7 @@ class Debug(pdb.Pdb):
debugger = None
+
def set_trace(frame=None, **kwargs):
global debugger
if debugger is None:
diff --git a/soil/environment.py b/soil/environment.py
index 8588eaf..d89585e 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -35,18 +35,20 @@ class BaseEnvironment(Model):
:meth:`soil.environment.Environment.get` method.
"""
- def __init__(self,
- id='unnamed_env',
- seed='default',
- schedule=None,
- dir_path=None,
- interval=1,
- agent_class=None,
- agents: [tuple[type, Dict[str, Any]]] = {},
- agent_reporters: Optional[Any] = None,
- model_reporters: Optional[Any] = None,
- tables: Optional[Any] = None,
- **env_params):
+ def __init__(
+ self,
+ id="unnamed_env",
+ seed="default",
+ schedule=None,
+ dir_path=None,
+ interval=1,
+ agent_class=None,
+ agents: [tuple[type, Dict[str, Any]]] = {},
+ agent_reporters: Optional[Any] = None,
+ model_reporters: Optional[Any] = None,
+ tables: Optional[Any] = None,
+ **env_params,
+ ):
super().__init__(seed=seed)
self.env_params = env_params or {}
@@ -75,27 +77,26 @@ class BaseEnvironment(Model):
)
def _agent_from_dict(self, agent):
- '''
+ """
Translate an agent dictionary into an agent
- '''
+ """
agent = dict(**agent)
- cls = agent.pop('agent_class', None) or self.agent_class
- unique_id = agent.pop('unique_id', None)
+ cls = agent.pop("agent_class", None) or self.agent_class
+ unique_id = agent.pop("unique_id", None)
if unique_id is None:
unique_id = self.next_id()
- return serialization.deserialize(cls)(unique_id=unique_id,
- model=self, **agent)
+ return serialization.deserialize(cls)(unique_id=unique_id, model=self, **agent)
def init_agents(self, agents: Union[config.AgentConfig, [Dict[str, Any]]] = {}):
- '''
+ """
Initialize the agents in the model from either a `soil.config.AgentConfig` or a list of
dictionaries that each describes an agent.
If given a list of dictionaries, an agent will be created for each dictionary. The agent
class can be specified through the `agent_class` key. The rest of the items will be used
as parameters to the agent.
- '''
+ """
if not agents:
return
@@ -108,11 +109,10 @@ class BaseEnvironment(Model):
override = lst.override
lst = self._agent_dict_from_config(lst)
- #TODO: check override is working again. It cannot (easily) be part of agents.from_config anymore,
+ # TODO: check override is working again. It cannot (easily) be part of agents.from_config anymore,
# because it needs attribute such as unique_id, which are only present after init
new_agents = [self._agent_from_dict(agent) for agent in lst]
-
for a in new_agents:
self.schedule.add(a)
@@ -122,8 +122,7 @@ class BaseEnvironment(Model):
setattr(agent, attr, value)
def _agent_dict_from_config(self, cfg):
- return agentmod.from_config(cfg,
- random=self.random)
+ return agentmod.from_config(cfg, random=self.random)
@property
def agents(self):
@@ -131,7 +130,7 @@ class BaseEnvironment(Model):
def find_one(self, *args, **kwargs):
return agentmod.AgentView(self.schedule._agents).one(*args, **kwargs)
-
+
def count_agents(self, *args, **kwargs):
return sum(1 for i in self.agents(*args, **kwargs))
@@ -139,18 +138,16 @@ class BaseEnvironment(Model):
def now(self):
if self.schedule:
return self.schedule.time
- raise Exception('The environment has not been scheduled, so it has no sense of time')
-
+ raise Exception(
+ "The environment has not been scheduled, so it has no sense of time"
+ )
def add_agent(self, agent_class, unique_id=None, **kwargs):
a = None
if unique_id is None:
unique_id = self.next_id()
-
- a = agent_class(model=self,
- unique_id=unique_id,
- **args)
+ a = agent_class(model=self, unique_id=unique_id, **args)
self.schedule.add(a)
return a
@@ -163,16 +160,16 @@ class BaseEnvironment(Model):
for k, v in kwargs:
message += " {k}={v} ".format(k, v)
extra = {}
- extra['now'] = self.now
- extra['id'] = self.id
+ extra["now"] = self.now
+ extra["id"] = self.id
return self.logger.log(level, message, extra=extra)
def step(self):
- '''
+ """
Advance one step in the simulation, and update the data collection and scheduler appropriately
- '''
+ """
super().step()
- self.logger.info(f'--- Step {self.now:^5} ---')
+ self.logger.info(f"--- Step {self.now:^5} ---")
self.schedule.step()
self.datacollector.collect(self)
@@ -180,10 +177,10 @@ class BaseEnvironment(Model):
return key in self.env_params
def get(self, key, default=None):
- '''
+ """
Get the value of an environment attribute.
Return `default` if the value is not set.
- '''
+ """
return self.env_params.get(key, default)
def __getitem__(self, key):
@@ -197,13 +194,15 @@ class BaseEnvironment(Model):
class NetworkEnvironment(BaseEnvironment):
- '''
+ """
The NetworkEnvironment is an environment that includes one or more networkx.Graph intances
and methods to associate agents to nodes and vice versa.
- '''
+ """
- def __init__(self, *args, topology: Union[config.NetConfig, nx.Graph] = None, **kwargs):
- agents = kwargs.pop('agents', None)
+ def __init__(
+ self, *args, topology: Union[config.NetConfig, nx.Graph] = None, **kwargs
+ ):
+ agents = kwargs.pop("agents", None)
super().__init__(*args, agents=None, **kwargs)
self._set_topology(topology)
@@ -211,37 +210,35 @@ class NetworkEnvironment(BaseEnvironment):
self.init_agents(agents)
def init_agents(self, *args, **kwargs):
- '''Initialize the agents from a '''
+ """Initialize the agents from a"""
super().init_agents(*args, **kwargs)
for agent in self.schedule._agents.values():
- if hasattr(agent, 'node_id'):
+ if hasattr(agent, "node_id"):
self._init_node(agent)
def _init_node(self, agent):
- '''
+ """
Make sure the node for a given agent has the proper attributes.
- '''
- self.G.nodes[agent.node_id]['agent'] = agent
+ """
+ self.G.nodes[agent.node_id]["agent"] = agent
def _agent_dict_from_config(self, cfg):
- return agentmod.from_config(cfg,
- topology=self.G,
- random=self.random)
+ return agentmod.from_config(cfg, topology=self.G, random=self.random)
def _agent_from_dict(self, agent, unique_id=None):
agent = dict(agent)
- if not agent.get('topology', False):
+ if not agent.get("topology", False):
return super()._agent_from_dict(agent)
if unique_id is None:
unique_id = self.next_id()
- node_id = agent.get('node_id', None)
+ node_id = agent.get("node_id", None)
if node_id is None:
node_id = network.find_unassigned(self.G, random=self.random)
- agent['node_id'] = node_id
- agent['unique_id'] = unique_id
- agent['topology'] = self.G
+ agent["node_id"] = node_id
+ agent["unique_id"] = unique_id
+ agent["topology"] = self.G
node_attrs = self.G.nodes[node_id]
node_attrs.update(agent)
agent = node_attrs
@@ -269,32 +266,33 @@ class NetworkEnvironment(BaseEnvironment):
if unique_id is None:
unique_id = self.next_id()
if node_id is None:
- node_id = network.find_unassigned(G=self.G,
- shuffle=True,
- random=self.random)
-
+ node_id = network.find_unassigned(
+ G=self.G, shuffle=True, random=self.random
+ )
+
if node_id in G.nodes:
- self.G.nodes[node_id]['agent'] = None # Reserve
+ self.G.nodes[node_id]["agent"] = None # Reserve
else:
self.G.add_node(node_id)
- a = self.add_agent(unique_id=unique_id, agent_class=agent_class, node_id=node_id, **kwargs)
- a['visible'] = True
+ a = self.add_agent(
+ unique_id=unique_id, agent_class=agent_class, node_id=node_id, **kwargs
+ )
+ a["visible"] = True
return a
def agent_for_node_id(self, node_id):
- return self.G.nodes[node_id].get('agent')
+ return self.G.nodes[node_id].get("agent")
def populate_network(self, agent_class, weights=None, **agent_params):
- if not hasattr(agent_class, 'len'):
+ if not hasattr(agent_class, "len"):
agent_class = [agent_class]
weights = None
for (node_id, node) in self.G.nodes(data=True):
- if 'agent' in node:
+ if "agent" in node:
continue
a_class = self.random.choices(agent_class, weights)[0]
- self.add_agent(node_id=node_id,
- agent_class=a_class, **agent_params)
+ self.add_agent(node_id=node_id, agent_class=a_class, **agent_params)
Environment = NetworkEnvironment
diff --git a/soil/exporters.py b/soil/exporters.py
index 648ba77..a31921d 100644
--- a/soil/exporters.py
+++ b/soil/exporters.py
@@ -24,56 +24,58 @@ class DryRunner(BytesIO):
def write(self, txt):
if self.__copy_to:
- self.__copy_to.write('{}:::{}'.format(self.__fname, txt))
+ self.__copy_to.write("{}:::{}".format(self.__fname, txt))
try:
super().write(txt)
except TypeError:
- super().write(bytes(txt, 'utf-8'))
+ super().write(bytes(txt, "utf-8"))
def close(self):
- content = '(binary data not shown)'
+ content = "(binary data not shown)"
try:
content = self.getvalue().decode()
except UnicodeDecodeError:
pass
- logger.info('**Not** written to {} (dry run mode):\n\n{}\n\n'.format(self.__fname, content))
+ logger.info(
+ "**Not** written to {} (dry run mode):\n\n{}\n\n".format(
+ self.__fname, content
+ )
+ )
super().close()
class Exporter:
- '''
+ """
Interface for all exporters. It is not necessary, but it is useful
if you don't plan to implement all the methods.
- '''
+ """
def __init__(self, simulation, outdir=None, dry_run=None, copy_to=None):
self.simulation = simulation
- outdir = outdir or os.path.join(os.getcwd(), 'soil_output')
- self.outdir = os.path.join(outdir,
- simulation.group or '',
- simulation.name)
+ outdir = outdir or os.path.join(os.getcwd(), "soil_output")
+ self.outdir = os.path.join(outdir, simulation.group or "", simulation.name)
self.dry_run = dry_run
if copy_to is None and dry_run:
copy_to = sys.stdout
self.copy_to = copy_to
def sim_start(self):
- '''Method to call when the simulation starts'''
+ """Method to call when the simulation starts"""
pass
def sim_end(self):
- '''Method to call when the simulation ends'''
+ """Method to call when the simulation ends"""
pass
def trial_start(self, env):
- '''Method to call when a trial start'''
+ """Method to call when a trial start"""
pass
def trial_end(self, env):
- '''Method to call when a trial ends'''
+ """Method to call when a trial ends"""
pass
- def output(self, f, mode='w', **kwargs):
+ def output(self, f, mode="w", **kwargs):
if self.dry_run:
f = DryRunner(f, copy_to=self.copy_to)
else:
@@ -86,102 +88,117 @@ class Exporter:
class default(Exporter):
- '''Default exporter. Writes sqlite results, as well as the simulation YAML'''
+ """Default exporter. Writes sqlite results, as well as the simulation YAML"""
def sim_start(self):
if not self.dry_run:
- logger.info('Dumping results to %s', self.outdir)
- with self.output(self.simulation.name + '.dumped.yml') as f:
+ logger.info("Dumping results to %s", self.outdir)
+ with self.output(self.simulation.name + ".dumped.yml") as f:
f.write(self.simulation.to_yaml())
else:
- logger.info('NOT dumping results')
+ logger.info("NOT dumping results")
def trial_end(self, env):
if self.dry_run:
- logger.info('Running in DRY_RUN mode, the database will NOT be created')
+ logger.info("Running in DRY_RUN mode, the database will NOT be created")
return
- with timer('Dumping simulation {} trial {}'.format(self.simulation.name,
- env.id)):
+ with timer(
+ "Dumping simulation {} trial {}".format(self.simulation.name, env.id)
+ ):
- fpath = os.path.join(self.outdir, f'{env.id}.sqlite')
- engine = create_engine(f'sqlite:///{fpath}', echo=False)
+ fpath = os.path.join(self.outdir, f"{env.id}.sqlite")
+ engine = create_engine(f"sqlite:///{fpath}", echo=False)
dc = env.datacollector
for (t, df) in get_dc_dfs(dc):
- df.to_sql(t, con=engine, if_exists='append')
+ df.to_sql(t, con=engine, if_exists="append")
def get_dc_dfs(dc):
- dfs = {'env': dc.get_model_vars_dataframe(),
- 'agents': dc.get_agent_vars_dataframe() }
+ dfs = {
+ "env": dc.get_model_vars_dataframe(),
+ "agents": dc.get_agent_vars_dataframe(),
+ }
for table_name in dc.tables:
dfs[table_name] = dc.get_table_dataframe(table_name)
- yield from dfs.items()
+ yield from dfs.items()
class csv(Exporter):
- '''Export the state of each environment (and its agents) in a separate CSV file'''
+ """Export the state of each environment (and its agents) in a separate CSV file"""
+
def trial_end(self, env):
- with timer('[CSV] Dumping simulation {} trial {} @ dir {}'.format(self.simulation.name,
- env.id,
- self.outdir)):
+ with timer(
+ "[CSV] Dumping simulation {} trial {} @ dir {}".format(
+ self.simulation.name, env.id, self.outdir
+ )
+ ):
for (df_name, df) in get_dc_dfs(env.datacollector):
- with self.output('{}.{}.csv'.format(env.id, df_name)) as f:
+ with self.output("{}.{}.csv".format(env.id, df_name)) as f:
df.to_csv(f)
-#TODO: reimplement GEXF exporting without history
+# TODO: reimplement GEXF exporting without history
class gexf(Exporter):
def trial_end(self, env):
if self.dry_run:
- logger.info('Not dumping GEXF in dry_run mode')
+ logger.info("Not dumping GEXF in dry_run mode")
return
- with timer('[GEXF] Dumping simulation {} trial {}'.format(self.simulation.name,
- env.id)):
- with self.output('{}.gexf'.format(env.id), mode='wb') as f:
+ with timer(
+ "[GEXF] Dumping simulation {} trial {}".format(self.simulation.name, env.id)
+ ):
+ with self.output("{}.gexf".format(env.id), mode="wb") as f:
network.dump_gexf(env.history_to_graph(), f)
self.dump_gexf(env, f)
class dummy(Exporter):
-
def sim_start(self):
- with self.output('dummy', 'w') as f:
- f.write('simulation started @ {}\n'.format(current_time()))
+ with self.output("dummy", "w") as f:
+ f.write("simulation started @ {}\n".format(current_time()))
def trial_start(self, env):
- with self.output('dummy', 'w') as f:
- f.write('trial started@ {}\n'.format(current_time()))
+ with self.output("dummy", "w") as f:
+ f.write("trial started@ {}\n".format(current_time()))
def trial_end(self, env):
- with self.output('dummy', 'w') as f:
- f.write('trial ended@ {}\n'.format(current_time()))
+ with self.output("dummy", "w") as f:
+ f.write("trial ended@ {}\n".format(current_time()))
def sim_end(self):
- with self.output('dummy', 'a') as f:
- f.write('simulation ended @ {}\n'.format(current_time()))
+ with self.output("dummy", "a") as f:
+ f.write("simulation ended @ {}\n".format(current_time()))
+
class graphdrawing(Exporter):
-
def trial_end(self, env):
# Outside effects
f = plt.figure()
- nx.draw(env.G, node_size=10, width=0.2, pos=nx.spring_layout(env.G, scale=100), ax=f.add_subplot(111))
- with open('graph-{}.png'.format(env.id)) as f:
+ nx.draw(
+ env.G,
+ node_size=10,
+ width=0.2,
+ pos=nx.spring_layout(env.G, scale=100),
+ ax=f.add_subplot(111),
+ )
+ with open("graph-{}.png".format(env.id)) as f:
f.savefig(f)
-'''
+
+"""
Convert an environment into a NetworkX graph
-'''
+"""
+
+
def env_to_graph(env, history=None):
G = nx.Graph(env.G)
for agent in env.network_agents:
- attributes = {'agent': str(agent.__class__)}
+ attributes = {"agent": str(agent.__class__)}
lastattributes = {}
spells = []
lastvisible = False
@@ -189,7 +206,7 @@ def env_to_graph(env, history=None):
if not history:
history = sorted(list(env.state_to_tuples()))
for _, t_step, attribute, value in history:
- if attribute == 'visible':
+ if attribute == "visible":
nowvisible = value
if nowvisible and not lastvisible:
laststep = t_step
@@ -198,7 +215,7 @@ def env_to_graph(env, history=None):
lastvisible = nowvisible
continue
- key = 'attr_' + attribute
+ key = "attr_" + attribute
if key not in attributes:
attributes[key] = list()
if key not in lastattributes:
diff --git a/soil/network.py b/soil/network.py
index bc69716..5c0b005 100644
--- a/soil/network.py
+++ b/soil/network.py
@@ -9,6 +9,7 @@ import networkx as nx
from . import config, serialization, basestring
+
def from_config(cfg: config.NetConfig, dir_path: str = None):
if not isinstance(cfg, config.NetConfig):
cfg = config.NetConfig(**cfg)
@@ -19,24 +20,28 @@ def from_config(cfg: config.NetConfig, dir_path: str = None):
path = os.path.join(dir_path, path)
extension = os.path.splitext(path)[1][1:]
kwargs = {}
- if extension == 'gexf':
- kwargs['version'] = '1.2draft'
- kwargs['node_type'] = int
+ if extension == "gexf":
+ kwargs["version"] = "1.2draft"
+ kwargs["node_type"] = int
try:
- method = getattr(nx.readwrite, 'read_' + extension)
+ method = getattr(nx.readwrite, "read_" + extension)
except AttributeError:
- raise AttributeError('Unknown format')
+ raise AttributeError("Unknown format")
return method(path, **kwargs)
if cfg.params:
net_args = cfg.params.dict()
- net_gen = net_args.pop('generator')
+ net_gen = net_args.pop("generator")
if dir_path not in sys.path:
sys.path.append(dir_path)
- method = serialization.deserializer(net_gen,
- known_modules=['networkx.generators',])
+ method = serialization.deserializer(
+ net_gen,
+ known_modules=[
+ "networkx.generators",
+ ],
+ )
return method(**net_args)
if isinstance(cfg.fixed, config.Topology):
@@ -49,17 +54,17 @@ def from_config(cfg: config.NetConfig, dir_path: str = None):
def find_unassigned(G, shuffle=False, random=random):
- '''
+ """
Link an agent to a node in a topology.
If node_id is None, a node without an agent_id will be found.
- '''
- #TODO: test
+ """
+ # TODO: test
candidates = list(G.nodes(data=True))
if shuffle:
random.shuffle(candidates)
for next_id, data in candidates:
- if 'agent' not in data:
+ if "agent" not in data:
node_id = next_id
break
@@ -68,8 +73,14 @@ def find_unassigned(G, shuffle=False, random=random):
def dump_gexf(G, f):
for node in G.nodes():
- if 'pos' in G.nodes[node]:
- G.nodes[node]['viz'] = {"position": {"x": G.nodes[node]['pos'][0], "y": G.nodes[node]['pos'][1], "z": 0.0}}
- del (G.nodes[node]['pos'])
+ if "pos" in G.nodes[node]:
+ G.nodes[node]["viz"] = {
+ "position": {
+ "x": G.nodes[node]["pos"][0],
+ "y": G.nodes[node]["pos"][1],
+ "z": 0.0,
+ }
+ }
+ del G.nodes[node]["pos"]
nx.write_gexf(G, f, version="1.2draft")
diff --git a/soil/serialization.py b/soil/serialization.py
index 972ca69..b728983 100644
--- a/soil/serialization.py
+++ b/soil/serialization.py
@@ -15,13 +15,14 @@ import networkx as nx
from jinja2 import Template
-logger = logging.getLogger('soil')
+logger = logging.getLogger("soil")
+
def load_file(infile):
folder = os.path.dirname(infile)
if folder not in sys.path:
sys.path.append(folder)
- with open(infile, 'r') as f:
+ with open(infile, "r") as f:
return list(chain.from_iterable(map(expand_template, load_string(f))))
@@ -30,14 +31,15 @@ def load_string(string):
def expand_template(config):
- if 'template' not in config:
+ if "template" not in config:
yield config
return
- if 'vars' not in config:
- raise ValueError(('You must provide a definition of variables'
- ' for the template.'))
+ if "vars" not in config:
+ raise ValueError(
+ ("You must provide a definition of variables" " for the template.")
+ )
- template = config['template']
+ template = config["template"]
if not isinstance(template, str):
template = yaml.dump(template)
@@ -49,9 +51,9 @@ def expand_template(config):
blank_str = template.render({k: 0 for k in params[0].keys()})
blank = list(load_string(blank_str))
if len(blank) > 1:
- raise ValueError('Templates must not return more than one configuration')
- if 'name' in blank[0]:
- raise ValueError('Templates cannot be named, use group instead')
+ raise ValueError("Templates must not return more than one configuration")
+ if "name" in blank[0]:
+ raise ValueError("Templates cannot be named, use group instead")
for ps in params:
string = template.render(ps)
@@ -60,25 +62,25 @@ def expand_template(config):
def params_for_template(config):
- sampler_config = config.get('sampler', {'N': 100})
- sampler = sampler_config.pop('method', 'SALib.sample.morris.sample')
+ sampler_config = config.get("sampler", {"N": 100})
+ sampler = sampler_config.pop("method", "SALib.sample.morris.sample")
sampler = deserializer(sampler)
- bounds = config['vars']['bounds']
+ bounds = config["vars"]["bounds"]
problem = {
- 'num_vars': len(bounds),
- 'names': list(bounds.keys()),
- 'bounds': list(v for v in bounds.values())
+ "num_vars": len(bounds),
+ "names": list(bounds.keys()),
+ "bounds": list(v for v in bounds.values()),
}
samples = sampler(problem, **sampler_config)
- lists = config['vars'].get('lists', {})
+ lists = config["vars"].get("lists", {})
names = list(lists.keys())
values = list(lists.values())
combs = list(product(*values))
- allnames = names + problem['names']
- allvalues = [(list(i[0])+list(i[1])) for i in product(combs, samples)]
+ allnames = names + problem["names"]
+ allvalues = [(list(i[0]) + list(i[1])) for i in product(combs, samples)]
params = list(map(lambda x: dict(zip(allnames, x)), allvalues))
return params
@@ -100,22 +102,24 @@ def load_config(cfg):
yield from load_files(cfg)
-builtins = importlib.import_module('builtins')
+builtins = importlib.import_module("builtins")
-KNOWN_MODULES = ['soil', ]
+KNOWN_MODULES = [
+ "soil",
+]
def name(value, known_modules=KNOWN_MODULES):
- '''Return a name that can be imported, to serialize/deserialize an object'''
+ """Return a name that can be imported, to serialize/deserialize an object"""
if value is None:
- return 'None'
+ return "None"
if not isinstance(value, type): # Get the class name first
value = type(value)
tname = value.__name__
if hasattr(builtins, tname):
return tname
modname = value.__module__
- if modname == '__main__':
+ if modname == "__main__":
return tname
if known_modules and modname in known_modules:
return tname
@@ -125,17 +129,17 @@ def name(value, known_modules=KNOWN_MODULES):
module = importlib.import_module(kmod)
if hasattr(module, tname):
return tname
- return '{}.{}'.format(modname, tname)
+ return "{}.{}".format(modname, tname)
def serializer(type_):
- if type_ != 'str' and hasattr(builtins, type_):
+ if type_ != "str" and hasattr(builtins, type_):
return repr
return lambda x: x
def serialize(v, known_modules=KNOWN_MODULES):
- '''Get a text representation of an object.'''
+ """Get a text representation of an object."""
tname = name(v, known_modules=known_modules)
func = serializer(tname)
return func(v), tname
@@ -160,9 +164,9 @@ IS_CLASS = re.compile(r"")
def deserializer(type_, known_modules=KNOWN_MODULES):
if type(type_) != str: # Already deserialized
return type_
- if type_ == 'str':
- return lambda x='': x
- if type_ == 'None':
+ if type_ == "str":
+ return lambda x="": x
+ if type_ == "None":
return lambda x=None: None
if hasattr(builtins, type_): # Check if it's a builtin type
cls = getattr(builtins, type_)
@@ -172,8 +176,8 @@ def deserializer(type_, known_modules=KNOWN_MODULES):
modname, tname = match.group(1).rsplit(".", 1)
module = importlib.import_module(modname)
cls = getattr(module, tname)
- return getattr(cls, 'deserialize', cls)
-
+ return getattr(cls, "deserialize", cls)
+
# Otherwise, see if we can find the module and the class
options = []
@@ -181,7 +185,7 @@ def deserializer(type_, known_modules=KNOWN_MODULES):
if mod:
options.append((mod, type_))
- if '.' in type_: # Fully qualified module
+ if "." in type_: # Fully qualified module
module, type_ = type_.rsplit(".", 1)
options.append((module, type_))
@@ -190,32 +194,31 @@ def deserializer(type_, known_modules=KNOWN_MODULES):
try:
module = importlib.import_module(modname)
cls = getattr(module, tname)
- return getattr(cls, 'deserialize', cls)
+ return getattr(cls, "deserialize", cls)
except (ImportError, AttributeError) as ex:
errors.append((modname, tname, ex))
raise Exception('Could not find type "{}". Tried: {}'.format(type_, errors))
def deserialize(type_, value=None, globs=None, **kwargs):
- '''Get an object from a text representation'''
+ """Get an object from a text representation"""
if not isinstance(type_, str):
return type_
if globs and type_ in globs:
des = globs[type_]
else:
- des = deserializer(type_, **kwargs)
+ des = deserializer(type_, **kwargs)
if value is None:
return des
return des(value)
def deserialize_all(names, *args, known_modules=KNOWN_MODULES, **kwargs):
- '''Return the list of deserialized objects'''
- #TODO: remove
- print('SERIALIZATION', kwargs)
+ """Return the list of deserialized objects"""
+ # TODO: remove
+ print("SERIALIZATION", kwargs)
objects = []
for name in names:
mod = deserialize(name, known_modules=known_modules)
objects.append(mod(*args, **kwargs))
return objects
-
diff --git a/soil/simulation.py b/soil/simulation.py
index baee50f..7c79d92 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -1,5 +1,5 @@
import os
-from time import time as current_time, strftime
+from time import time as current_time, strftime
import importlib
import sys
import yaml
@@ -25,7 +25,7 @@ from .time import INFINITY
from .config import Config, convert_old
-#TODO: change documentation for simulation
+# TODO: change documentation for simulation
@dataclass
class Simulation:
"""
@@ -36,15 +36,16 @@ class Simulation:
kwargs: parameters to use to initialize a new configuration, if one not been provided.
"""
- version: str = '2'
- name: str = 'Unnamed simulation'
- description: Optional[str] = ''
+
+ version: str = "2"
+ name: str = "Unnamed simulation"
+ description: Optional[str] = ""
group: str = None
- model_class: Union[str, type] = 'soil.Environment'
+ model_class: Union[str, type] = "soil.Environment"
model_params: dict = field(default_factory=dict)
seed: str = field(default_factory=lambda: current_time())
dir_path: str = field(default_factory=lambda: os.getcwd())
- max_time: float = float('inf')
+ max_time: float = float("inf")
max_steps: int = -1
interval: int = 1
num_trials: int = 3
@@ -56,14 +57,15 @@ class Simulation:
extra: Dict[str, Any] = field(default_factory=dict)
@classmethod
- def from_dict(cls, env, **kwargs):
+ def from_dict(cls, env, **kwargs):
- ignored = {k: v for k, v in env.items()
- if k not in inspect.signature(cls).parameters}
+ ignored = {
+ k: v for k, v in env.items() if k not in inspect.signature(cls).parameters
+ }
- d = {k:v for k, v in env.items() if k not in ignored}
+ d = {k: v for k, v in env.items() if k not in ignored}
if ignored:
- d.setdefault('extra', {}).update(ignored)
+ d.setdefault("extra", {}).update(ignored)
if ignored:
print(f'Warning: Ignoring these parameters (added to "extra"): { ignored }')
d.update(kwargs)
@@ -74,24 +76,34 @@ class Simulation:
return self.run(*args, **kwargs)
def run(self, *args, **kwargs):
- '''Run the simulation and return the list of resulting environments'''
- logger.info(dedent('''
+ """Run the simulation and return the list of resulting environments"""
+ logger.info(
+ dedent(
+ """
Simulation:
---
- ''') +
- self.to_yaml())
+ """
+ )
+ + self.to_yaml()
+ )
return list(self.run_gen(*args, **kwargs))
- def run_gen(self, parallel=False, dry_run=None,
- exporters=None, outdir=None, exporter_params={},
- log_level=None,
- **kwargs):
- '''Run the simulation and yield the resulting environments.'''
+ def run_gen(
+ self,
+ parallel=False,
+ dry_run=None,
+ exporters=None,
+ outdir=None,
+ exporter_params={},
+ log_level=None,
+ **kwargs,
+ ):
+ """Run the simulation and yield the resulting environments."""
if log_level:
logger.setLevel(log_level)
outdir = outdir or self.outdir
- logger.info('Using exporters: %s', exporters or [])
- logger.info('Output directory: %s', outdir)
+ logger.info("Using exporters: %s", exporters or [])
+ logger.info("Output directory: %s", outdir)
if dry_run is None:
dry_run = self.dry_run
if exporters is None:
@@ -99,22 +111,28 @@ class Simulation:
if not exporter_params:
exporter_params = self.exporter_params
- exporters = serialization.deserialize_all(exporters,
- simulation=self,
- known_modules=['soil.exporters', ],
- dry_run=dry_run,
- outdir=outdir,
- **exporter_params)
+ exporters = serialization.deserialize_all(
+ exporters,
+ simulation=self,
+ known_modules=[
+ "soil.exporters",
+ ],
+ dry_run=dry_run,
+ outdir=outdir,
+ **exporter_params,
+ )
- with utils.timer('simulation {}'.format(self.name)):
+ with utils.timer("simulation {}".format(self.name)):
for exporter in exporters:
exporter.sim_start()
- for env in utils.run_parallel(func=self.run_trial,
- iterable=range(int(self.num_trials)),
- parallel=parallel,
- log_level=log_level,
- **kwargs):
+ for env in utils.run_parallel(
+ func=self.run_trial,
+ iterable=range(int(self.num_trials)),
+ parallel=parallel,
+ log_level=log_level,
+ **kwargs,
+ ):
for exporter in exporters:
exporter.trial_start(env)
@@ -128,11 +146,12 @@ class Simulation:
exporter.sim_end()
def get_env(self, trial_id=0, model_params=None, **kwargs):
- '''Create an environment for a trial of the simulation'''
+ """Create an environment for a trial of the simulation"""
+
def deserialize_reporters(reporters):
for (k, v) in reporters.items():
- if isinstance(v, str) and v.startswith('py:'):
- reporters[k] = serialization.deserialize(value.lsplit(':', 1)[1])
+ if isinstance(v, str) and v.startswith("py:"):
+ reporters[k] = serialization.deserialize(value.lsplit(":", 1)[1])
return reporters
params = self.model_params.copy()
@@ -140,18 +159,22 @@ class Simulation:
params.update(model_params)
params.update(kwargs)
- agent_reporters = deserialize_reporters(params.pop('agent_reporters', {}))
- model_reporters = deserialize_reporters(params.pop('model_reporters', {}))
+ agent_reporters = deserialize_reporters(params.pop("agent_reporters", {}))
+ model_reporters = deserialize_reporters(params.pop("model_reporters", {}))
- env = serialization.deserialize(self.model_class)
- return env(id=f'{self.name}_trial_{trial_id}',
- seed=f'{self.seed}_trial_{trial_id}',
- dir_path=self.dir_path,
- agent_reporters=agent_reporters,
- model_reporters=model_reporters,
- **params)
+ env = serialization.deserialize(self.model_class)
+ return env(
+ id=f"{self.name}_trial_{trial_id}",
+ seed=f"{self.seed}_trial_{trial_id}",
+ dir_path=self.dir_path,
+ agent_reporters=agent_reporters,
+ model_reporters=model_reporters,
+ **params,
+ )
- def run_trial(self, trial_id=None, until=None, log_file=False, log_level=logging.INFO, **opts):
+ def run_trial(
+ self, trial_id=None, until=None, log_file=False, log_level=logging.INFO, **opts
+ ):
"""
Run a single trial of the simulation
@@ -160,50 +183,58 @@ class Simulation:
logger.setLevel(log_level)
model = self.get_env(trial_id, **opts)
trial_id = trial_id if trial_id is not None else current_time()
- with utils.timer('Simulation {} trial {}'.format(self.name, trial_id)):
- return self.run_model(model=model, trial_id=trial_id, until=until, log_level=log_level)
+ with utils.timer("Simulation {} trial {}".format(self.name, trial_id)):
+ return self.run_model(
+ model=model, trial_id=trial_id, until=until, log_level=log_level
+ )
def run_model(self, model, until=None, **opts):
# Set-up trial environment and graph
- until = float(until or self.max_time or 'inf')
+ until = float(until or self.max_time or "inf")
# Set up agents on nodes
def is_done():
return False
- if until and hasattr(model.schedule, 'time'):
+ if until and hasattr(model.schedule, "time"):
prev = is_done
def is_done():
return prev() or model.schedule.time >= until
- if self.max_steps and self.max_steps > 0 and hasattr(model.schedule, 'steps'):
+ if self.max_steps and self.max_steps > 0 and hasattr(model.schedule, "steps"):
prev_steps = is_done
def is_done():
return prev_steps() or model.schedule.steps >= self.max_steps
- newline = '\n'
- logger.info(dedent(f'''
+ newline = "\n"
+ logger.info(
+ dedent(
+ f"""
Model stats:
Agents (total: { model.schedule.get_agent_count() }):
- { (newline + ' - ').join(str(a) for a in model.schedule.agents) }
Topology size: { len(model.G) if hasattr(model, "G") else 0 }
- '''))
+ """
+ )
+ )
while not is_done():
- utils.logger.debug(f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}')
+ utils.logger.debug(
+ f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}'
+ )
model.step()
return model
def to_dict(self):
d = asdict(self)
- if not isinstance(d['model_class'], str):
- d['model_class'] = serialization.name(d['model_class'])
- d['model_params'] = serialization.serialize_dict(d['model_params'])
- d['dir_path'] = str(d['dir_path'])
- d['version'] = '2'
+ if not isinstance(d["model_class"], str):
+ d["model_class"] = serialization.name(d["model_class"])
+ d["model_params"] = serialization.serialize_dict(d["model_params"])
+ d["dir_path"] = str(d["dir_path"])
+ d["version"] = "2"
return d
def to_yaml(self):
@@ -215,15 +246,15 @@ def iter_from_config(*cfgs, **kwargs):
configs = list(serialization.load_config(config))
for config, path in configs:
d = dict(config)
- if 'dir_path' not in d:
- d['dir_path'] = os.path.dirname(path)
+ if "dir_path" not in d:
+ d["dir_path"] = os.path.dirname(path)
yield Simulation.from_dict(d, **kwargs)
def from_config(conf_or_path):
lst = list(iter_from_config(conf_or_path))
if len(lst) > 1:
- raise AttributeError('Provide only one configuration')
+ raise AttributeError("Provide only one configuration")
return lst[0]
diff --git a/soil/time.py b/soil/time.py
index 602aa8c..11e3178 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -6,7 +6,8 @@ from .utils import logger
from mesa import Agent as MesaAgent
-INFINITY = float('inf')
+INFINITY = float("inf")
+
class When:
def __init__(self, time):
@@ -42,7 +43,7 @@ class TimedActivation(BaseScheduler):
self._next = {}
self._queue = []
self.next_time = 0
- self.logger = logger.getChild(f'time_{ self.model }')
+ self.logger = logger.getChild(f"time_{ self.model }")
def add(self, agent: MesaAgent, when=None):
if when is None:
@@ -51,7 +52,7 @@ class TimedActivation(BaseScheduler):
self._queue.remove((self._next[agent.unique_id], agent.unique_id))
del self._agents[agent.unique_id]
heapify(self._queue)
-
+
heappush(self._queue, (when, agent.unique_id))
self._next[agent.unique_id] = when
super().add(agent)
@@ -62,7 +63,7 @@ class TimedActivation(BaseScheduler):
an agent will signal when it wants to be scheduled next.
"""
- self.logger.debug(f'Simulation step {self.next_time}')
+ self.logger.debug(f"Simulation step {self.next_time}")
if not self.model.running:
return
@@ -71,18 +72,22 @@ class TimedActivation(BaseScheduler):
while self._queue and self._queue[0][0] == self.time:
(when, agent_id) = heappop(self._queue)
- self.logger.debug(f'Stepping agent {agent_id}')
+ self.logger.debug(f"Stepping agent {agent_id}")
agent = self._agents[agent_id]
returned = agent.step()
- if not getattr(agent, 'alive', True):
+ if not getattr(agent, "alive", True):
self.remove(agent)
continue
when = (returned or Delta(1)).abs(self.time)
if when < self.time:
- raise Exception("Cannot schedule an agent for a time in the past ({} < {})".format(when, self.time))
+ raise Exception(
+ "Cannot schedule an agent for a time in the past ({} < {})".format(
+ when, self.time
+ )
+ )
self._next[agent_id] = when
heappush(self._queue, (when, agent_id))
@@ -96,4 +101,4 @@ class TimedActivation(BaseScheduler):
return self.time
self.next_time = self._queue[0][0]
- self.logger.debug(f'Next step: {self.next_time}')
+ self.logger.debug(f"Next step: {self.next_time}")
diff --git a/soil/utils.py b/soil/utils.py
index 6c25dbc..9c4bcc7 100644
--- a/soil/utils.py
+++ b/soil/utils.py
@@ -9,12 +9,12 @@ from multiprocessing import Pool
from contextlib import contextmanager
-logger = logging.getLogger('soil')
+logger = logging.getLogger("soil")
logger.setLevel(logging.INFO)
timeformat = "%H:%M:%S"
-if os.environ.get('SOIL_VERBOSE', ''):
+if os.environ.get("SOIL_VERBOSE", ""):
logformat = "[%(levelname)-5.5s][%(asctime)s][%(name)s]: %(message)s"
else:
logformat = "[%(levelname)-5.5s][%(asctime)s] %(message)s"
@@ -23,38 +23,44 @@ logFormatter = logging.Formatter(logformat, timeformat)
consoleHandler = logging.StreamHandler()
consoleHandler.setFormatter(logFormatter)
-logging.basicConfig(level=logging.INFO,
- handlers=[consoleHandler,])
+logging.basicConfig(
+ level=logging.INFO,
+ handlers=[
+ consoleHandler,
+ ],
+)
@contextmanager
-def timer(name='task', pre="", function=logger.info, to_object=None):
+def timer(name="task", pre="", function=logger.info, to_object=None):
start = current_time()
- function('{}Starting {} at {}.'.format(pre, name,
- strftime("%X", gmtime(start))))
+ function("{}Starting {} at {}.".format(pre, name, strftime("%X", gmtime(start))))
yield start
end = current_time()
- function('{}Finished {} at {} in {} seconds'.format(pre, name,
- strftime("%X", gmtime(end)),
- str(end-start)))
+ function(
+ "{}Finished {} at {} in {} seconds".format(
+ pre, name, strftime("%X", gmtime(end)), str(end - start)
+ )
+ )
if to_object:
to_object.start = start
to_object.end = end
-def safe_open(path, mode='r', backup=True, **kwargs):
+def safe_open(path, mode="r", backup=True, **kwargs):
outdir = os.path.dirname(path)
if outdir and not os.path.exists(outdir):
os.makedirs(outdir)
- if backup and 'w' in mode and os.path.exists(path):
+ if backup and "w" in mode and os.path.exists(path):
creation = os.path.getctime(path)
- stamp = strftime('%Y-%m-%d_%H.%M.%S', localtime(creation))
+ stamp = strftime("%Y-%m-%d_%H.%M.%S", localtime(creation))
- backup_dir = os.path.join(outdir, 'backup')
+ backup_dir = os.path.join(outdir, "backup")
if not os.path.exists(backup_dir):
os.makedirs(backup_dir)
- newpath = os.path.join(backup_dir, '{}@{}'.format(os.path.basename(path),
- stamp))
+ newpath = os.path.join(
+ backup_dir, "{}@{}".format(os.path.basename(path), stamp)
+ )
copyfile(path, newpath)
return open(path, mode=mode, **kwargs)
@@ -67,21 +73,23 @@ def open_or_reuse(f, *args, **kwargs):
except (AttributeError, TypeError):
yield f
+
def flatten_dict(d):
if not isinstance(d, dict):
return d
return dict(_flatten_dict(d))
-def _flatten_dict(d, prefix=''):
+
+def _flatten_dict(d, prefix=""):
if not isinstance(d, dict):
# print('END:', prefix, d)
yield prefix, d
return
if prefix:
- prefix = prefix + '.'
+ prefix = prefix + "."
for k, v in d.items():
# print(k, v)
- res = list(_flatten_dict(v, prefix='{}{}'.format(prefix, k)))
+ res = list(_flatten_dict(v, prefix="{}{}".format(prefix, k)))
# print('RES:', res)
yield from res
@@ -93,7 +101,7 @@ def unflatten_dict(d):
if not isinstance(k, str):
target[k] = v
continue
- tokens = k.split('.')
+ tokens = k.split(".")
if len(tokens) < 2:
target[k] = v
continue
@@ -106,27 +114,28 @@ def unflatten_dict(d):
def run_and_return_exceptions(func, *args, **kwargs):
- '''
+ """
A wrapper for run_trial that catches exceptions and returns them.
It is meant for async simulations.
- '''
+ """
try:
return func(*args, **kwargs)
except Exception as ex:
if ex.__cause__ is not None:
ex = ex.__cause__
- ex.message = ''.join(traceback.format_exception(type(ex), ex, ex.__traceback__)[:])
+ ex.message = "".join(
+ traceback.format_exception(type(ex), ex, ex.__traceback__)[:]
+ )
return ex
def run_parallel(func, iterable, parallel=False, **kwargs):
- if parallel and not os.environ.get('SOIL_DEBUG', None):
+ if parallel and not os.environ.get("SOIL_DEBUG", None):
p = Pool()
- wrapped_func = partial(run_and_return_exceptions,
- func, **kwargs)
+ wrapped_func = partial(run_and_return_exceptions, func, **kwargs)
for i in p.imap_unordered(wrapped_func, iterable):
if isinstance(i, Exception):
- logger.error('Trial failed:\n\t%s', i.message)
+ logger.error("Trial failed:\n\t%s", i.message)
continue
yield i
else:
diff --git a/soil/version.py b/soil/version.py
index ea5b40a..ae66caa 100644
--- a/soil/version.py
+++ b/soil/version.py
@@ -4,7 +4,7 @@ import logging
logger = logging.getLogger(__name__)
ROOT = os.path.dirname(__file__)
-DEFAULT_FILE = os.path.join(ROOT, 'VERSION')
+DEFAULT_FILE = os.path.join(ROOT, "VERSION")
def read_version(versionfile=DEFAULT_FILE):
@@ -12,9 +12,10 @@ def read_version(versionfile=DEFAULT_FILE):
with open(versionfile) as f:
return f.read().strip()
except IOError: # pragma: no cover
- logger.error(('Running an unknown version of {}.'
- 'Be careful!.').format(__name__))
- return '0.0'
+ logger.error(
+ ("Running an unknown version of {}." "Be careful!.").format(__name__)
+ )
+ return "0.0"
__version__ = read_version()
diff --git a/soil/visualization.py b/soil/visualization.py
index fe12aca..a1cb7b8 100644
--- a/soil/visualization.py
+++ b/soil/visualization.py
@@ -1,5 +1,6 @@
from mesa.visualization.UserParam import UserSettableParameter
+
class UserSettableParameter(UserSettableParameter):
def __str__(self):
return self.value
diff --git a/soil/web/__init__.py b/soil/web/__init__.py
index 2339288..5327703 100644
--- a/soil/web/__init__.py
+++ b/soil/web/__init__.py
@@ -20,6 +20,7 @@ from tornado.concurrent import run_on_executor
from concurrent.futures import ThreadPoolExecutor
from ..simulation import Simulation
+
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
@@ -31,140 +32,183 @@ LOGGING_INTERVAL = 0.5
# Workaround to let Soil load the required modules
sys.path.append(ROOT)
+
class PageHandler(tornado.web.RequestHandler):
- """ Handler for the HTML template which holds the visualization. """
+ """Handler for the HTML template which holds the visualization."""
def get(self):
- self.render('index.html', port=self.application.port,
- name=self.application.name)
+ self.render(
+ "index.html", port=self.application.port, name=self.application.name
+ )
class SocketHandler(tornado.websocket.WebSocketHandler):
- """ Handler for websocket. """
+ """Handler for websocket."""
+
executor = ThreadPoolExecutor(max_workers=MAX_WORKERS)
def open(self):
if self.application.verbose:
- logger.info('Socket opened!')
+ logger.info("Socket opened!")
def check_origin(self, origin):
return True
def on_message(self, message):
- """ Receiving a message from the websocket, parse, and act accordingly. """
+ """Receiving a message from the websocket, parse, and act accordingly."""
msg = tornado.escape.json_decode(message)
- if msg['type'] == 'config_file':
+ if msg["type"] == "config_file":
if self.application.verbose:
- print(msg['data'])
+ print(msg["data"])
- self.config = list(yaml.load_all(msg['data']))
+ self.config = list(yaml.load_all(msg["data"]))
if len(self.config) > 1:
- error = 'Please, provide only one configuration.'
+ error = "Please, provide only one configuration."
if self.application.verbose:
logger.error(error)
- self.write_message({'type': 'error',
- 'error': error})
+ self.write_message({"type": "error", "error": error})
return
self.config = self.config[0]
- self.send_log('INFO.' + self.simulation_name,
- 'Using config: {name}'.format(name=self.config['name']))
+ self.send_log(
+ "INFO." + self.simulation_name,
+ "Using config: {name}".format(name=self.config["name"]),
+ )
- if 'visualization_params' in self.config:
- self.write_message({'type': 'visualization_params',
- 'data': self.config['visualization_params']})
- self.name = self.config['name']
+ if "visualization_params" in self.config:
+ self.write_message(
+ {
+ "type": "visualization_params",
+ "data": self.config["visualization_params"],
+ }
+ )
+ self.name = self.config["name"]
self.run_simulation()
settings = []
- for key in self.config['environment_params']:
- if type(self.config['environment_params'][key]) == float or type(self.config['environment_params'][key]) == int:
- if self.config['environment_params'][key] <= 1:
- setting_type = 'number'
+ for key in self.config["environment_params"]:
+ if (
+ type(self.config["environment_params"][key]) == float
+ or type(self.config["environment_params"][key]) == int
+ ):
+ if self.config["environment_params"][key] <= 1:
+ setting_type = "number"
else:
- setting_type = 'great_number'
- elif type(self.config['environment_params'][key]) == bool:
- setting_type = 'boolean'
+ setting_type = "great_number"
+ elif type(self.config["environment_params"][key]) == bool:
+ setting_type = "boolean"
else:
- setting_type = 'undefined'
+ setting_type = "undefined"
- settings.append({
- 'label': key,
- 'type': setting_type,
- 'value': self.config['environment_params'][key]
- })
+ settings.append(
+ {
+ "label": key,
+ "type": setting_type,
+ "value": self.config["environment_params"][key],
+ }
+ )
- self.write_message({'type': 'settings',
- 'data': settings})
+ self.write_message({"type": "settings", "data": settings})
- elif msg['type'] == 'get_trial':
+ elif msg["type"] == "get_trial":
if self.application.verbose:
- logger.info('Trial {} requested!'.format(msg['data']))
- self.send_log('INFO.' + __name__, 'Trial {} requested!'.format(msg['data']))
- self.write_message({'type': 'get_trial',
- 'data': self.get_trial(int(msg['data']))})
+ logger.info("Trial {} requested!".format(msg["data"]))
+ self.send_log("INFO." + __name__, "Trial {} requested!".format(msg["data"]))
+ self.write_message(
+ {"type": "get_trial", "data": self.get_trial(int(msg["data"]))}
+ )
- elif msg['type'] == 'run_simulation':
+ elif msg["type"] == "run_simulation":
if self.application.verbose:
- logger.info('Running new simulation for {name}'.format(name=self.config['name']))
- self.send_log('INFO.' + self.simulation_name, 'Running new simulation for {name}'.format(name=self.config['name']))
- self.config['environment_params'] = msg['data']
+ logger.info(
+ "Running new simulation for {name}".format(name=self.config["name"])
+ )
+ self.send_log(
+ "INFO." + self.simulation_name,
+ "Running new simulation for {name}".format(name=self.config["name"]),
+ )
+ self.config["environment_params"] = msg["data"]
self.run_simulation()
- elif msg['type'] == 'download_gexf':
- G = self.trials[ int(msg['data']) ].history_to_graph()
+ elif msg["type"] == "download_gexf":
+ G = self.trials[int(msg["data"])].history_to_graph()
for node in G.nodes():
- if 'pos' in G.nodes[node]:
- G.nodes[node]['viz'] = {"position": {"x": G.nodes[node]['pos'][0], "y": G.nodes[node]['pos'][1], "z": 0.0}}
- del (G.nodes[node]['pos'])
- writer = nx.readwrite.gexf.GEXFWriter(version='1.2draft')
+ if "pos" in G.nodes[node]:
+ G.nodes[node]["viz"] = {
+ "position": {
+ "x": G.nodes[node]["pos"][0],
+ "y": G.nodes[node]["pos"][1],
+ "z": 0.0,
+ }
+ }
+ del G.nodes[node]["pos"]
+ writer = nx.readwrite.gexf.GEXFWriter(version="1.2draft")
writer.add_graph(G)
- self.write_message({'type': 'download_gexf',
- 'filename': self.config['name'] + '_trial_' + str(msg['data']),
- 'data': tostring(writer.xml).decode(writer.encoding) })
+ self.write_message(
+ {
+ "type": "download_gexf",
+ "filename": self.config["name"] + "_trial_" + str(msg["data"]),
+ "data": tostring(writer.xml).decode(writer.encoding),
+ }
+ )
- elif msg['type'] == 'download_json':
- G = self.trials[ int(msg['data']) ].history_to_graph()
+ elif msg["type"] == "download_json":
+ G = self.trials[int(msg["data"])].history_to_graph()
for node in G.nodes():
- if 'pos' in G.nodes[node]:
- G.nodes[node]['viz'] = {"position": {"x": G.nodes[node]['pos'][0], "y": G.nodes[node]['pos'][1], "z": 0.0}}
- del (G.nodes[node]['pos'])
- self.write_message({'type': 'download_json',
- 'filename': self.config['name'] + '_trial_' + str(msg['data']),
- 'data': nx.node_link_data(G) })
+ if "pos" in G.nodes[node]:
+ G.nodes[node]["viz"] = {
+ "position": {
+ "x": G.nodes[node]["pos"][0],
+ "y": G.nodes[node]["pos"][1],
+ "z": 0.0,
+ }
+ }
+ del G.nodes[node]["pos"]
+ self.write_message(
+ {
+ "type": "download_json",
+ "filename": self.config["name"] + "_trial_" + str(msg["data"]),
+ "data": nx.node_link_data(G),
+ }
+ )
else:
if self.application.verbose:
- logger.info('Unexpected message!')
+ logger.info("Unexpected message!")
def update_logging(self):
try:
- if (not self.log_capture_string.closed and self.log_capture_string.getvalue()):
- for i in range(len(self.log_capture_string.getvalue().split('\n')) - 1):
- self.send_log('INFO.' + self.simulation_name, self.log_capture_string.getvalue().split('\n')[i])
+ if (
+ not self.log_capture_string.closed
+ and self.log_capture_string.getvalue()
+ ):
+ for i in range(len(self.log_capture_string.getvalue().split("\n")) - 1):
+ self.send_log(
+ "INFO." + self.simulation_name,
+ self.log_capture_string.getvalue().split("\n")[i],
+ )
self.log_capture_string.truncate(0)
self.log_capture_string.seek(0)
finally:
if self.capture_logging:
- tornado.ioloop.IOLoop.current().call_later(LOGGING_INTERVAL, self.update_logging)
-
+ tornado.ioloop.IOLoop.current().call_later(
+ LOGGING_INTERVAL, self.update_logging
+ )
def on_close(self):
if self.application.verbose:
- logger.info('Socket closed!')
+ logger.info("Socket closed!")
def send_log(self, logger, logging):
- self.write_message({'type': 'log',
- 'logger': logger,
- 'logging': logging})
+ self.write_message({"type": "log", "logger": logger, "logging": logging})
@property
def simulation_name(self):
- return self.config.get('name', 'NoSimulationRunning')
+ return self.config.get("name", "NoSimulationRunning")
@run_on_executor
def nonblocking(self, config):
@@ -174,28 +218,31 @@ class SocketHandler(tornado.websocket.WebSocketHandler):
@tornado.gen.coroutine
def run_simulation(self):
# Run simulation and capture logs
- logger.info('Running simulation!')
- if 'visualization_params' in self.config:
- del self.config['visualization_params']
+ logger.info("Running simulation!")
+ if "visualization_params" in self.config:
+ del self.config["visualization_params"]
with self.logging(self.simulation_name):
try:
config = dict(**self.config)
- config['outdir'] = os.path.join(self.application.outdir, config['name'])
- config['dump'] = self.application.dump
+ config["outdir"] = os.path.join(self.application.outdir, config["name"])
+ config["dump"] = self.application.dump
self.trials = yield self.nonblocking(config)
- self.write_message({'type': 'trials',
- 'data': list(trial.name for trial in self.trials) })
+ self.write_message(
+ {
+ "type": "trials",
+ "data": list(trial.name for trial in self.trials),
+ }
+ )
except Exception as ex:
- error = 'Something went wrong:\n\t{}'.format(ex)
+ error = "Something went wrong:\n\t{}".format(ex)
logging.info(error)
- self.write_message({'type': 'error',
- 'error': error})
- self.send_log('ERROR.' + self.simulation_name, error)
+ self.write_message({"type": "error", "error": error})
+ self.send_log("ERROR." + self.simulation_name, error)
def get_trial(self, trial):
- logger.info('Available trials: %s ' % len(self.trials))
- logger.info('Ask for : %s' % trial)
+ logger.info("Available trials: %s " % len(self.trials))
+ logger.info("Ask for : %s" % trial)
trial = self.trials[trial]
G = trial.history_to_graph()
return nx.node_link_data(G)
@@ -215,25 +262,28 @@ class SocketHandler(tornado.websocket.WebSocketHandler):
self.logger_application.removeHandler(ch)
self.capture_logging = False
return self.capture_logging
-
+
class ModularServer(tornado.web.Application):
- """ Main visualization application. """
+ """Main visualization application."""
port = 8001
- page_handler = (r'/', PageHandler)
- socket_handler = (r'/ws', SocketHandler)
- static_handler = (r'/(.*)', tornado.web.StaticFileHandler,
- {'path': os.path.join(ROOT, 'static')})
- local_handler = (r'/local/(.*)', tornado.web.StaticFileHandler,
- {'path': ''})
+ page_handler = (r"/", PageHandler)
+ socket_handler = (r"/ws", SocketHandler)
+ static_handler = (
+ r"/(.*)",
+ tornado.web.StaticFileHandler,
+ {"path": os.path.join(ROOT, "static")},
+ )
+ local_handler = (r"/local/(.*)", tornado.web.StaticFileHandler, {"path": ""})
handlers = [page_handler, socket_handler, static_handler, local_handler]
- settings = {'debug': True,
- 'template_path': ROOT + '/templates'}
+ settings = {"debug": True, "template_path": ROOT + "/templates"}
+
+ def __init__(
+ self, dump=False, outdir="output", name="SOIL", verbose=True, *args, **kwargs
+ ):
- def __init__(self, dump=False, outdir='output', name='SOIL', verbose=True, *args, **kwargs):
-
self.verbose = verbose
self.name = name
self.dump = dump
@@ -243,12 +293,12 @@ class ModularServer(tornado.web.Application):
super().__init__(self.handlers, **self.settings)
def launch(self, port=None):
- """ Run the app. """
-
+ """Run the app."""
+
if port is not None:
self.port = port
- url = 'http://127.0.0.1:{PORT}'.format(PORT=self.port)
- print('Interface starting at {url}'.format(url=url))
+ url = "http://127.0.0.1:{PORT}".format(PORT=self.port)
+ print("Interface starting at {url}".format(url=url))
self.listen(self.port)
# webbrowser.open(url)
tornado.ioloop.IOLoop.instance().start()
@@ -263,12 +313,22 @@ def run(*args, **kwargs):
def main():
import argparse
- parser = argparse.ArgumentParser(description='Visualization of a Graph Model')
+ parser = argparse.ArgumentParser(description="Visualization of a Graph Model")
- parser.add_argument('--name', '-n', nargs=1, default='SOIL', help='name of the simulation')
- parser.add_argument('--dump', '-d', help='dumping results in folder output', action='store_true')
- parser.add_argument('--port', '-p', nargs=1, default=8001, help='port for launching the server')
- parser.add_argument('--verbose', '-v', help='verbose mode', action='store_true')
+ parser.add_argument(
+ "--name", "-n", nargs=1, default="SOIL", help="name of the simulation"
+ )
+ parser.add_argument(
+ "--dump", "-d", help="dumping results in folder output", action="store_true"
+ )
+ parser.add_argument(
+ "--port", "-p", nargs=1, default=8001, help="port for launching the server"
+ )
+ parser.add_argument("--verbose", "-v", help="verbose mode", action="store_true")
args = parser.parse_args()
- run(name=args.name, port=(args.port[0] if isinstance(args.port, list) else args.port), verbose=args.verbose)
+ run(
+ name=args.name,
+ port=(args.port[0] if isinstance(args.port, list) else args.port),
+ verbose=args.verbose,
+ )
diff --git a/soil/web/__main__.py b/soil/web/__main__.py
index 5c211a8..29c2e0a 100644
--- a/soil/web/__main__.py
+++ b/soil/web/__main__.py
@@ -2,4 +2,4 @@ from . import main
if __name__ == "__main__":
- main()
\ No newline at end of file
+ main()
diff --git a/soil/web/run.py b/soil/web/run.py
index a0b1416..b13ca56 100644
--- a/soil/web/run.py
+++ b/soil/web/run.py
@@ -4,20 +4,33 @@ from simulator import Simulator
def run(simulator, name="SOIL", port=8001, verbose=False):
- server = ModularServer(simulator, name=(name[0] if isinstance(name, list) else name), verbose=verbose)
+ server = ModularServer(
+ simulator, name=(name[0] if isinstance(name, list) else name), verbose=verbose
+ )
server.port = port
server.launch()
if __name__ == "__main__":
- parser = argparse.ArgumentParser(description='Visualization of a Graph Model')
+ parser = argparse.ArgumentParser(description="Visualization of a Graph Model")
- parser.add_argument('--name', '-n', nargs=1, default='SOIL', help='name of the simulation')
- parser.add_argument('--dump', '-d', help='dumping results in folder output', action='store_true')
- parser.add_argument('--port', '-p', nargs=1, default=8001, help='port for launching the server')
- parser.add_argument('--verbose', '-v', help='verbose mode', action='store_true')
+ parser.add_argument(
+ "--name", "-n", nargs=1, default="SOIL", help="name of the simulation"
+ )
+ parser.add_argument(
+ "--dump", "-d", help="dumping results in folder output", action="store_true"
+ )
+ parser.add_argument(
+ "--port", "-p", nargs=1, default=8001, help="port for launching the server"
+ )
+ parser.add_argument("--verbose", "-v", help="verbose mode", action="store_true")
args = parser.parse_args()
soil = Simulator(dump=args.dump)
- run(soil, name=args.name, port=(args.port[0] if isinstance(args.port, list) else args.port), verbose=args.verbose)
+ run(
+ soil,
+ name=args.name,
+ port=(args.port[0] if isinstance(args.port, list) else args.port),
+ verbose=args.verbose,
+ )
From 0efcd24d904b2bee289e4b63d45478e610984d63 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Sun, 16 Oct 2022 21:57:30 +0200
Subject: [PATCH 11/39] Improve exporters
---
examples/rabbits/basic/rabbit_agents.py | 26 +++++++++++++----
examples/rabbits/basic/rabbits.yml | 8 +++--
soil/exporters.py | 26 ++++++++++-------
soil/serialization.py | 10 +++++--
soil/simulation.py | 2 +-
soil/utils.py | 39 ++++++++++++++++---------
tests/test_exporters.py | 2 +-
7 files changed, 78 insertions(+), 35 deletions(-)
diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py
index fc7b73b..bd05057 100644
--- a/examples/rabbits/basic/rabbit_agents.py
+++ b/examples/rabbits/basic/rabbit_agents.py
@@ -1,4 +1,4 @@
-from soil.agents import FSM, state, default_state, BaseAgent, NetworkAgent
+from soil import FSM, state, default_state, BaseAgent, NetworkAgent, Environment
from soil.time import Delta
from enum import Enum
from collections import Counter
@@ -6,7 +6,23 @@ import logging
import math
-class RabbitModel(FSM, NetworkAgent):
+class RabbitEnv(Environment):
+
+ @property
+ def num_rabbits(self):
+ return self.count_agents(agent_class=Rabbit)
+
+ @property
+ def num_males(self):
+ return self.count_agents(agent_class=Male)
+
+ @property
+ def num_females(self):
+ return self.count_agents(agent_class=Female)
+
+
+
+class Rabbit(FSM, NetworkAgent):
sexual_maturity = 30
life_expectancy = 300
@@ -35,7 +51,7 @@ class RabbitModel(FSM, NetworkAgent):
self.die()
-class Male(RabbitModel):
+class Male(Rabbit):
max_females = 5
mating_prob = 0.001
@@ -56,7 +72,7 @@ class Male(RabbitModel):
break # Take a break
-class Female(RabbitModel):
+class Female(Rabbit):
gestation = 30
@state
@@ -119,7 +135,7 @@ class RandomAccident(BaseAgent):
prob_death = self.model.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive)))
self.debug('Killing some rabbits with prob={}!'.format(prob_death))
- for i in self.iter_agents(agent_class=RabbitModel):
+ for i in self.iter_agents(agent_class=Rabbit):
if i.state_id == i.dead.id:
continue
if self.prob(prob_death):
diff --git a/examples/rabbits/basic/rabbits.yml b/examples/rabbits/basic/rabbits.yml
index 6945f67..a137844 100644
--- a/examples/rabbits/basic/rabbits.yml
+++ b/examples/rabbits/basic/rabbits.yml
@@ -7,11 +7,10 @@ description: null
group: null
interval: 1.0
max_time: 100
-model_class: soil.environment.Environment
+model_class: rabbit_agents.RabbitEnv
model_params:
agents:
topology: true
- agent_class: rabbit_agents.RabbitModel
distribution:
- agent_class: rabbit_agents.Male
weight: 1
@@ -34,5 +33,10 @@ model_params:
nodes:
- id: 1
- id: 0
+ model_reporters:
+ num_males: 'num_males'
+ num_females: 'num_females'
+ num_rabbits: |
+ py:lambda env: env.num_males + env.num_females
extra:
visualization_params: {}
diff --git a/soil/exporters.py b/soil/exporters.py
index a31921d..b1850f4 100644
--- a/soil/exporters.py
+++ b/soil/exporters.py
@@ -10,7 +10,7 @@ import networkx as nx
from .serialization import deserialize
-from .utils import open_or_reuse, logger, timer
+from .utils import try_backup, open_or_reuse, logger, timer
from . import utils, network
@@ -91,12 +91,14 @@ class default(Exporter):
"""Default exporter. Writes sqlite results, as well as the simulation YAML"""
def sim_start(self):
- if not self.dry_run:
- logger.info("Dumping results to %s", self.outdir)
- with self.output(self.simulation.name + ".dumped.yml") as f:
- f.write(self.simulation.to_yaml())
- else:
+ if self.dry_run:
logger.info("NOT dumping results")
+ return
+ logger.info("Dumping results to %s", self.outdir)
+ with self.output(self.simulation.name + ".dumped.yml") as f:
+ f.write(self.simulation.to_yaml())
+ self.dbpath = os.path.join(self.outdir, f"{self.simulation.name}.sqlite")
+ try_backup(self.dbpath, move=True)
def trial_end(self, env):
if self.dry_run:
@@ -107,21 +109,23 @@ class default(Exporter):
"Dumping simulation {} trial {}".format(self.simulation.name, env.id)
):
- fpath = os.path.join(self.outdir, f"{env.id}.sqlite")
- engine = create_engine(f"sqlite:///{fpath}", echo=False)
+ engine = create_engine(f"sqlite:///{self.dbpath}", echo=False)
dc = env.datacollector
- for (t, df) in get_dc_dfs(dc):
+ for (t, df) in get_dc_dfs(dc, trial_id=env.id):
df.to_sql(t, con=engine, if_exists="append")
-def get_dc_dfs(dc):
+def get_dc_dfs(dc, trial_id=None):
dfs = {
"env": dc.get_model_vars_dataframe(),
"agents": dc.get_agent_vars_dataframe(),
}
for table_name in dc.tables:
dfs[table_name] = dc.get_table_dataframe(table_name)
+ if trial_id:
+ for (name, df) in dfs.items():
+ df['trial_id'] = trial_id
yield from dfs.items()
@@ -135,7 +139,7 @@ class csv(Exporter):
self.simulation.name, env.id, self.outdir
)
):
- for (df_name, df) in get_dc_dfs(env.datacollector):
+ for (df_name, df) in get_dc_dfs(env.datacollector, trial_id=env.id):
with self.output("{}.{}.csv".format(env.id, df_name)) as f:
df.to_csv(f)
diff --git a/soil/serialization.py b/soil/serialization.py
index b728983..f0a98df 100644
--- a/soil/serialization.py
+++ b/soil/serialization.py
@@ -197,7 +197,7 @@ def deserializer(type_, known_modules=KNOWN_MODULES):
return getattr(cls, "deserialize", cls)
except (ImportError, AttributeError) as ex:
errors.append((modname, tname, ex))
- raise Exception('Could not find type "{}". Tried: {}'.format(type_, errors))
+ raise ValueError('Could not find type "{}". Tried: {}'.format(type_, errors))
def deserialize(type_, value=None, globs=None, **kwargs):
@@ -207,7 +207,13 @@ def deserialize(type_, value=None, globs=None, **kwargs):
if globs and type_ in globs:
des = globs[type_]
else:
- des = deserializer(type_, **kwargs)
+ try:
+ des = deserializer(type_, **kwargs)
+ except ValueError as ex:
+ try:
+ des = eval(type_)
+ except Exception:
+ raise ex
if value is None:
return des
return des(value)
diff --git a/soil/simulation.py b/soil/simulation.py
index 7c79d92..e5f5526 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -151,7 +151,7 @@ class Simulation:
def deserialize_reporters(reporters):
for (k, v) in reporters.items():
if isinstance(v, str) and v.startswith("py:"):
- reporters[k] = serialization.deserialize(value.lsplit(":", 1)[1])
+ reporters[k] = serialization.deserialize(v.split(":", 1)[1])
return reporters
params = self.model_params.copy()
diff --git a/soil/utils.py b/soil/utils.py
index 9c4bcc7..0422f48 100644
--- a/soil/utils.py
+++ b/soil/utils.py
@@ -4,7 +4,7 @@ import os
import traceback
from functools import partial
-from shutil import copyfile
+from shutil import copyfile, move
from multiprocessing import Pool
from contextlib import contextmanager
@@ -47,21 +47,34 @@ def timer(name="task", pre="", function=logger.info, to_object=None):
to_object.end = end
+def try_backup(path, move=False):
+ if not os.path.exists(path):
+ return None
+ outdir = os.path.dirname(path)
+ if outdir and not os.path.exists(outdir):
+ os.makedirs(outdir)
+ creation = os.path.getctime(path)
+ stamp = strftime("%Y-%m-%d_%H.%M.%S", localtime(creation))
+
+ backup_dir = os.path.join(outdir, "backup")
+ if not os.path.exists(backup_dir):
+ os.makedirs(backup_dir)
+ newpath = os.path.join(
+ backup_dir, "{}@{}".format(os.path.basename(path), stamp)
+ )
+ if move:
+ move(path, newpath)
+ else:
+ copyfile(path, newpath)
+ return newpath
+
+
def safe_open(path, mode="r", backup=True, **kwargs):
outdir = os.path.dirname(path)
if outdir and not os.path.exists(outdir):
os.makedirs(outdir)
- if backup and "w" in mode and os.path.exists(path):
- creation = os.path.getctime(path)
- stamp = strftime("%Y-%m-%d_%H.%M.%S", localtime(creation))
-
- backup_dir = os.path.join(outdir, "backup")
- if not os.path.exists(backup_dir):
- os.makedirs(backup_dir)
- newpath = os.path.join(
- backup_dir, "{}@{}".format(os.path.basename(path), stamp)
- )
- copyfile(path, newpath)
+ if backup and "w" in mode:
+ try_backup(path)
return open(path, mode=mode, **kwargs)
@@ -70,7 +83,7 @@ def open_or_reuse(f, *args, **kwargs):
try:
with safe_open(f, *args, **kwargs) as f:
yield f
- except (AttributeError, TypeError):
+ except (AttributeError, TypeError) as ex:
yield f
diff --git a/tests/test_exporters.py b/tests/test_exporters.py
index 973bd06..baf9d83 100644
--- a/tests/test_exporters.py
+++ b/tests/test_exporters.py
@@ -99,7 +99,7 @@ class Exporters(TestCase):
try:
for e in envs:
- db = sqlite3.connect(os.path.join(simdir, f"{e.id}.sqlite"))
+ db = sqlite3.connect(os.path.join(simdir, f"{s.name}.sqlite"))
cur = db.cursor()
agent_entries = cur.execute("SELECT * from agents").fetchall()
env_entries = cur.execute("SELECT * from env").fetchall()
From 77d08fc59211b74b639a9340bc932e2b33bc125c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Mon, 17 Oct 2022 08:58:51 +0200
Subject: [PATCH 12/39] Agent step can be a generator
---
examples/rabbits/basic/rabbit_agents.py | 4 +---
soil/agents/__init__.py | 28 ++++++++++++++++++----
soil/exporters.py | 2 +-
soil/utils.py | 4 +---
tests/test_agents.py | 31 +++++++++++++++++++++----
5 files changed, 52 insertions(+), 17 deletions(-)
diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py
index bd05057..284c08a 100644
--- a/examples/rabbits/basic/rabbit_agents.py
+++ b/examples/rabbits/basic/rabbit_agents.py
@@ -21,7 +21,6 @@ class RabbitEnv(Environment):
return self.count_agents(agent_class=Female)
-
class Rabbit(FSM, NetworkAgent):
sexual_maturity = 30
@@ -125,8 +124,6 @@ class Female(Rabbit):
class RandomAccident(BaseAgent):
- level = logging.INFO
-
def step(self):
rabbits_alive = self.model.G.number_of_nodes()
@@ -144,6 +141,7 @@ class RandomAccident(BaseAgent):
i.set_state(i.dead)
self.debug('Rabbits alive: {}'.format(rabbits_alive))
+
if __name__ == '__main__':
from soil import easy
sim = easy('rabbits.yml')
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index c284604..0ed5bf3 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -47,11 +47,29 @@ class MetaAgent(ABCMeta):
}
for attr, func in namespace.items():
- if (
- isinstance(func, types.FunctionType)
- or isinstance(func, property)
- or isinstance(func, classmethod)
- or attr[0] == "_"
+ if attr == 'step' and inspect.isgeneratorfunction(func):
+ orig_func = func
+ new_nmspc['_MetaAgent__coroutine'] = None
+
+ @wraps(func)
+ def func(self):
+ while True:
+ if not self.__coroutine:
+ self.__coroutine = orig_func(self)
+ try:
+ return next(self.__coroutine)
+ except StopIteration as ex:
+ self.__coroutine = None
+ return ex.value
+
+ func.id = name or func.__name__
+ func.is_default = False
+ new_nmspc[attr] = func
+ elif (
+ isinstance(func, types.FunctionType)
+ or isinstance(func, property)
+ or isinstance(func, classmethod)
+ or attr[0] == "_"
):
new_nmspc[attr] = func
elif attr == "defaults":
diff --git a/soil/exporters.py b/soil/exporters.py
index b1850f4..55a5597 100644
--- a/soil/exporters.py
+++ b/soil/exporters.py
@@ -125,7 +125,7 @@ def get_dc_dfs(dc, trial_id=None):
dfs[table_name] = dc.get_table_dataframe(table_name)
if trial_id:
for (name, df) in dfs.items():
- df['trial_id'] = trial_id
+ df["trial_id"] = trial_id
yield from dfs.items()
diff --git a/soil/utils.py b/soil/utils.py
index 0422f48..92d9d74 100644
--- a/soil/utils.py
+++ b/soil/utils.py
@@ -59,9 +59,7 @@ def try_backup(path, move=False):
backup_dir = os.path.join(outdir, "backup")
if not os.path.exists(backup_dir):
os.makedirs(backup_dir)
- newpath = os.path.join(
- backup_dir, "{}@{}".format(os.path.basename(path), stamp)
- )
+ newpath = os.path.join(backup_dir, "{}@{}".format(os.path.basename(path), stamp))
if move:
move(path, newpath)
else:
diff --git a/tests/test_agents.py b/tests/test_agents.py
index bee9a9a..8603b1e 100644
--- a/tests/test_agents.py
+++ b/tests/test_agents.py
@@ -13,14 +13,35 @@ class Dead(agents.FSM):
class TestMain(TestCase):
+ def test_die_returns_infinity(self):
+ '''The last step of a dead agent should return time.INFINITY'''
+ d = Dead(unique_id=0, model=environment.Environment())
+ ret = d.step().abs(0)
+ print(ret, "next")
+ assert ret == stime.INFINITY
+
def test_die_raises_exception(self):
+ '''A dead agent should raise an exception if it is stepped after death'''
d = Dead(unique_id=0, model=environment.Environment())
d.step()
with pytest.raises(agents.DeadAgent):
d.step()
- def test_die_returns_infinity(self):
- d = Dead(unique_id=0, model=environment.Environment())
- ret = d.step().abs(0)
- print(ret, "next")
- assert ret == stime.INFINITY
+
+ def test_agent_generator(self):
+ '''
+ The step function of an agent could be a generator. In that case, the state of the
+ agent will be resumed after every call to step.
+ '''
+ class Gen(agents.BaseAgent):
+ def step(self):
+ a = 0
+ for i in range(5):
+ yield a
+ a += 1
+ e = environment.Environment()
+ g = Gen(model=e, unique_id=e.next_id())
+
+ for i in range(5):
+ t = g.step()
+ assert t == i
From 5d759d0072568815fd8a806066961c0fa5024e04 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Mon, 17 Oct 2022 13:58:14 +0200
Subject: [PATCH 13/39] Add conditional time values
---
soil/environment.py | 2 +-
soil/exporters.py | 117 ++++++++++++----------------------
soil/simulation.py | 6 +-
soil/time.py | 136 +++++++++++++++++++++++++++++++---------
soil/utils.py | 2 +-
tests/test_agents.py | 2 +-
tests/test_exporters.py | 1 -
7 files changed, 155 insertions(+), 111 deletions(-)
diff --git a/soil/environment.py b/soil/environment.py
index d89585e..238c494 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -169,7 +169,7 @@ class BaseEnvironment(Model):
Advance one step in the simulation, and update the data collection and scheduler appropriately
"""
super().step()
- self.logger.info(f"--- Step {self.now:^5} ---")
+ self.logger.info(f"--- Step: {self.schedule.steps:^5} - Time: {self.now:^5} ---")
self.schedule.step()
self.datacollector.collect(self)
diff --git a/soil/exporters.py b/soil/exporters.py
index 55a5597..405b2f8 100644
--- a/soil/exporters.py
+++ b/soil/exporters.py
@@ -3,6 +3,7 @@ import sys
from time import time as current_time
from io import BytesIO
from sqlalchemy import create_engine
+from textwrap import dedent, indent
import matplotlib.pyplot as plt
@@ -86,34 +87,8 @@ class Exporter:
pass
return open_or_reuse(f, mode=mode, **kwargs)
-
-class default(Exporter):
- """Default exporter. Writes sqlite results, as well as the simulation YAML"""
-
- def sim_start(self):
- if self.dry_run:
- logger.info("NOT dumping results")
- return
- logger.info("Dumping results to %s", self.outdir)
- with self.output(self.simulation.name + ".dumped.yml") as f:
- f.write(self.simulation.to_yaml())
- self.dbpath = os.path.join(self.outdir, f"{self.simulation.name}.sqlite")
- try_backup(self.dbpath, move=True)
-
- def trial_end(self, env):
- if self.dry_run:
- logger.info("Running in DRY_RUN mode, the database will NOT be created")
- return
-
- with timer(
- "Dumping simulation {} trial {}".format(self.simulation.name, env.id)
- ):
-
- engine = create_engine(f"sqlite:///{self.dbpath}", echo=False)
-
- dc = env.datacollector
- for (t, df) in get_dc_dfs(dc, trial_id=env.id):
- df.to_sql(t, con=engine, if_exists="append")
+ def get_dfs(self, env):
+ yield from get_dc_dfs(env.datacollector, trial_id=env.id)
def get_dc_dfs(dc, trial_id=None):
@@ -129,6 +104,34 @@ def get_dc_dfs(dc, trial_id=None):
yield from dfs.items()
+class default(Exporter):
+ """Default exporter. Writes sqlite results, as well as the simulation YAML"""
+
+ def sim_start(self):
+ if self.dry_run:
+ logger.info("NOT dumping results")
+ return
+ logger.info("Dumping results to %s", self.outdir)
+ with self.output(self.simulation.name + ".dumped.yml") as f:
+ f.write(self.simulation.to_yaml())
+ self.dbpath = os.path.join(self.outdir, f"{self.simulation.name}.sqlite")
+ try_backup(self.dbpath, remove=True)
+
+ def trial_end(self, env):
+ if self.dry_run:
+ logger.info("Running in DRY_RUN mode, the database will NOT be created")
+ return
+
+ with timer(
+ "Dumping simulation {} trial {}".format(self.simulation.name, env.id)
+ ):
+
+ engine = create_engine(f"sqlite:///{self.dbpath}", echo=False)
+
+ for (t, df) in self.get_dfs(env):
+ df.to_sql(t, con=engine, if_exists="append")
+
+
class csv(Exporter):
"""Export the state of each environment (and its agents) in a separate CSV file"""
@@ -139,7 +142,7 @@ class csv(Exporter):
self.simulation.name, env.id, self.outdir
)
):
- for (df_name, df) in get_dc_dfs(env.datacollector, trial_id=env.id):
+ for (df_name, df) in self.get_dfs(env):
with self.output("{}.{}.csv".format(env.id, df_name)) as f:
df.to_csv(f)
@@ -192,52 +195,14 @@ class graphdrawing(Exporter):
f.savefig(f)
-"""
-Convert an environment into a NetworkX graph
-"""
+class summary(Exporter):
+ """Print a summary of each trial to sys.stdout"""
-
-def env_to_graph(env, history=None):
- G = nx.Graph(env.G)
-
- for agent in env.network_agents:
-
- attributes = {"agent": str(agent.__class__)}
- lastattributes = {}
- spells = []
- lastvisible = False
- laststep = None
- if not history:
- history = sorted(list(env.state_to_tuples()))
- for _, t_step, attribute, value in history:
- if attribute == "visible":
- nowvisible = value
- if nowvisible and not lastvisible:
- laststep = t_step
- if not nowvisible and lastvisible:
- spells.append((laststep, t_step))
-
- lastvisible = nowvisible
+ def trial_end(self, env):
+ for (t, df) in self.get_dfs(env):
+ if not len(df):
continue
- key = "attr_" + attribute
- if key not in attributes:
- attributes[key] = list()
- if key not in lastattributes:
- lastattributes[key] = (value, t_step)
- elif lastattributes[key][0] != value:
- last_value, laststep = lastattributes[key]
- commit_value = (last_value, laststep, t_step)
- if key not in attributes:
- attributes[key] = list()
- attributes[key].append(commit_value)
- lastattributes[key] = (value, t_step)
- for k, v in lastattributes.items():
- attributes[k].append((v[0], v[1], None))
- if lastvisible:
- spells.append((laststep, None))
- if spells:
- G.add_node(agent.id, spells=spells, **attributes)
- else:
- G.add_node(agent.id, **attributes)
-
- return G
+ msg = indent(str(df.describe()), ' ')
+ logger.info(dedent(f'''
+ Dataframe {t}:
+ ''') + msg)
diff --git a/soil/simulation.py b/soil/simulation.py
index e5f5526..946023f 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -21,7 +21,6 @@ import pickle
from . import serialization, exporters, utils, basestring, agents
from .environment import Environment
from .utils import logger, run_and_return_exceptions
-from .time import INFINITY
from .config import Config, convert_old
@@ -194,7 +193,7 @@ class Simulation:
# Set up agents on nodes
def is_done():
- return False
+ return not model.running
if until and hasattr(model.schedule, "time"):
prev = is_done
@@ -226,6 +225,9 @@ Model stats:
f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}'
)
model.step()
+
+ if model.schedule.time < until: # Simulation ended (no more steps) before until (i.e., no changes expected)
+ model.schedule.time = until
return model
def to_dict(self):
diff --git a/soil/time.py b/soil/time.py
index 11e3178..661e35e 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -2,6 +2,10 @@ from mesa.time import BaseScheduler
from queue import Empty
from heapq import heappush, heappop, heapify
import math
+
+from inspect import getsource
+from numbers import Number
+
from .utils import logger
from mesa import Agent as MesaAgent
@@ -15,9 +19,55 @@ class When:
return time
self._time = time
- def abs(self, time):
+ def next(self, time):
return self._time
+ def abs(self, time):
+ return self
+
+ def __repr__(self):
+ return str(f"When({self._time})")
+
+ def __lt__(self, other):
+ if isinstance(other, Number):
+ return self._time < other
+ return self._time < other.next(self._time)
+
+ def __gt__(self, other):
+ if isinstance(other, Number):
+ return self._time > other
+ return self._time > other.next(self._time)
+
+ def ready(self, time):
+ return self._time <= time
+
+
+class Cond(When):
+ def __init__(self, func, delta=1):
+ self._func = func
+ self._delta = delta
+
+ def next(self, time):
+ return time + self._delta
+
+ def abs(self, time):
+ return self
+
+ def ready(self, time):
+ return self._func(time)
+
+ def __eq__(self, other):
+ return False
+
+ def __lt__(self, other):
+ return True
+
+ def __gt__(self, other):
+ return False
+
+ def __repr__(self):
+ return str(f'Cond("{getsource(self._func)}")')
+
NEVER = When(INFINITY)
@@ -27,11 +77,19 @@ class Delta(When):
self._delta = delta
def __eq__(self, other):
- return self._delta == other._delta
+ if isinstance(other, Delta):
+ return self._delta == other._delta
+ return False
def abs(self, time):
+ return When(self._delta + time)
+
+ def next(self, time):
return time + self._delta
+ def __repr__(self):
+ return str(f"Delta({self._delta})")
+
class TimedActivation(BaseScheduler):
"""A scheduler which activates each agent when the agent requests.
@@ -47,14 +105,15 @@ class TimedActivation(BaseScheduler):
def add(self, agent: MesaAgent, when=None):
if when is None:
- when = self.time
+ when = When(self.time)
+ elif not isinstance(when, When):
+ when = When(when)
if agent.unique_id in self._agents:
- self._queue.remove((self._next[agent.unique_id], agent.unique_id))
+ self._queue.remove((self._next[agent.unique_id], agent))
del self._agents[agent.unique_id]
heapify(self._queue)
- heappush(self._queue, (when, agent.unique_id))
- self._next[agent.unique_id] = when
+ heappush(self._queue, (when, agent))
super().add(agent)
def step(self) -> None:
@@ -63,42 +122,61 @@ class TimedActivation(BaseScheduler):
an agent will signal when it wants to be scheduled next.
"""
- self.logger.debug(f"Simulation step {self.next_time}")
+ self.logger.debug(f"Simulation step {self.time}")
if not self.model.running:
return
- self.time = self.next_time
- when = self.time
+ when = NEVER
- while self._queue and self._queue[0][0] == self.time:
- (when, agent_id) = heappop(self._queue)
- self.logger.debug(f"Stepping agent {agent_id}")
+ to_process = []
+ skipped = []
+ next_time = INFINITY
- agent = self._agents[agent_id]
- returned = agent.step()
+ ix = 0
+
+ while self._queue:
+ (when, agent) = self._queue[0]
+ if when > self.time:
+ break
+ heappop(self._queue)
+ if when.ready(self.time):
+ to_process.append(agent)
+ continue
+
+ next_time = min(next_time, when.next(self.time))
+ self._next[agent.unique_id] = next_time
+ skipped.append((when, agent))
+
+ if self._queue:
+ next_time = min(next_time, self._queue[0][0].next(self.time))
+
+ self._queue = [*skipped, *self._queue]
+
+ for agent in to_process:
+ self.logger.debug(f"Stepping agent {agent}")
+
+ returned = ((agent.step() or Delta(1))).abs(self.time)
if not getattr(agent, "alive", True):
self.remove(agent)
continue
- when = (returned or Delta(1)).abs(self.time)
- if when < self.time:
- raise Exception(
- "Cannot schedule an agent for a time in the past ({} < {})".format(
- when, self.time
- )
- )
+ value = when.next(self.time)
- self._next[agent_id] = when
- heappush(self._queue, (when, agent_id))
+ if value < self.time:
+ raise Exception(
+ f"Cannot schedule an agent for a time in the past ({when} < {self.time})"
+ )
+ if value < INFINITY:
+ next_time = min(value, next_time)
+
+ self._next[agent.unique_id] = returned
+ heappush(self._queue, (returned, agent))
self.steps += 1
+ self.logger.debug(f"Updating time step: {self.time} -> {next_time}")
+ self.time = next_time
- if not self._queue:
- self.time = INFINITY
- self.next_time = INFINITY
+ if not self._queue or next_time == INFINITY:
self.model.running = False
return self.time
-
- self.next_time = self._queue[0][0]
- self.logger.debug(f"Next step: {self.next_time}")
diff --git a/soil/utils.py b/soil/utils.py
index 92d9d74..e1b3580 100644
--- a/soil/utils.py
+++ b/soil/utils.py
@@ -47,7 +47,7 @@ def timer(name="task", pre="", function=logger.info, to_object=None):
to_object.end = end
-def try_backup(path, move=False):
+def try_backup(path, remove=False):
if not os.path.exists(path):
return None
outdir = os.path.dirname(path)
diff --git a/tests/test_agents.py b/tests/test_agents.py
index 8603b1e..d3db80e 100644
--- a/tests/test_agents.py
+++ b/tests/test_agents.py
@@ -18,7 +18,7 @@ class TestMain(TestCase):
d = Dead(unique_id=0, model=environment.Environment())
ret = d.step().abs(0)
print(ret, "next")
- assert ret == stime.INFINITY
+ assert ret == stime.NEVER
def test_die_raises_exception(self):
'''A dead agent should raise an exception if it is stepped after death'''
diff --git a/tests/test_exporters.py b/tests/test_exporters.py
index baf9d83..1b1b072 100644
--- a/tests/test_exporters.py
+++ b/tests/test_exporters.py
@@ -50,7 +50,6 @@ class Exporters(TestCase):
for env in s.run_simulation(exporters=[Dummy], dry_run=True):
assert len(env.agents) == 1
- assert env.now == max_time
assert Dummy.started
assert Dummy.ended
From 227fdf050e307de3032aa471d79a2459d273d392 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Mon, 17 Oct 2022 19:29:39 +0200
Subject: [PATCH 14/39] Fix conditionals
---
examples/pubcrawl/pubcrawl.py | 7 +-
examples/rabbits/README.md | 10 ++
examples/rabbits/basic/rabbit_agents.py | 66 ++++----
examples/rabbits/improved/rabbit_agents.py | 179 ++++++++++++---------
examples/rabbits/improved/rabbits.yml | 8 +-
soil/__init__.py | 20 ++-
soil/__main__.py | 4 +-
soil/agents/__init__.py | 103 ++----------
soil/debugging.py | 4 +-
soil/environment.py | 26 ++-
soil/network.py | 6 +-
soil/simulation.py | 2 +-
soil/time.py | 40 +++--
tests/test_agents.py | 2 +-
tests/test_time.py | 74 +++++++++
15 files changed, 320 insertions(+), 231 deletions(-)
create mode 100644 tests/test_time.py
diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py
index b220856..9fd1b04 100644
--- a/examples/pubcrawl/pubcrawl.py
+++ b/examples/pubcrawl/pubcrawl.py
@@ -64,6 +64,7 @@ class Patron(FSM, NetworkAgent):
drunk = False
pints = 0
max_pints = 3
+ kicked_out = False
@default_state
@state
@@ -105,7 +106,9 @@ class Patron(FSM, NetworkAgent):
'''I'm out. Take me home!'''
self.info('I\'m so drunk. Take me home!')
self['drunk'] = True
- pass # out drunk
+ if self.kicked_out:
+ return self.at_home
+ pass # out drun
@state
def at_home(self):
@@ -118,7 +121,7 @@ class Patron(FSM, NetworkAgent):
self.debug('Cheers to that')
def kick_out(self):
- self.set_state(self.at_home)
+ self.kicked_out = True
def befriend(self, other_agent, force=False):
'''
diff --git a/examples/rabbits/README.md b/examples/rabbits/README.md
index 42b6011..dfee8ef 100644
--- a/examples/rabbits/README.md
+++ b/examples/rabbits/README.md
@@ -2,3 +2,13 @@ There are two similar implementations of this simulation.
- `basic`. Using simple primites
- `improved`. Using more advanced features such as the `time` module to avoid unnecessary computations (i.e., skip steps), and generator functions.
+
+The examples can be run directly in the terminal, and they accept command like arguments.
+For example, to enable the CSV exporter and the Summary exporter, while setting `max_time` to `100` and `seed` to `CustomSeed`:
+
+```
+python rabbit_agents.py --set max_time=100 --csv -e summary --set 'seed="CustomSeed"'
+```
+
+To learn more about how this functionality works, check out the `soil.easy` function.
+
diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py
index 284c08a..60a0d15 100644
--- a/examples/rabbits/basic/rabbit_agents.py
+++ b/examples/rabbits/basic/rabbit_agents.py
@@ -1,6 +1,4 @@
from soil import FSM, state, default_state, BaseAgent, NetworkAgent, Environment
-from soil.time import Delta
-from enum import Enum
from collections import Counter
import logging
import math
@@ -21,7 +19,7 @@ class RabbitEnv(Environment):
return self.count_agents(agent_class=Female)
-class Rabbit(FSM, NetworkAgent):
+class Rabbit(NetworkAgent, FSM):
sexual_maturity = 30
life_expectancy = 300
@@ -72,7 +70,8 @@ class Male(Rabbit):
class Female(Rabbit):
- gestation = 30
+ gestation = 10
+ pregnancy = -1
@state
def fertile(self):
@@ -80,46 +79,49 @@ class Female(Rabbit):
self.age += 1
if self.age > self.life_expectancy:
return self.dead
+ if self.pregnancy >= 0:
+ return self.pregnant
def impregnate(self, male):
- self.info(f'{repr(male)} impregnating female {repr(self)}')
+ self.info(f'impregnated by {repr(male)}')
self.mate = male
- self.pregnancy = -1
- self.set_state(self.pregnant, when=self.now)
+ self.pregnancy = 0
self.number_of_babies = int(8+4*self.random.random())
@state
def pregnant(self):
- self.debug('I am pregnant')
+ self.info('I am pregnant')
self.age += 1
- self.pregnancy += 1
- if self.prob(self.age / self.life_expectancy):
+ if self.age >= self.life_expectancy:
return self.die()
- if self.pregnancy >= self.gestation:
- self.info('Having {} babies'.format(self.number_of_babies))
- for i in range(self.number_of_babies):
- state = {}
- agent_class = self.random.choice([Male, Female])
- child = self.model.add_node(agent_class=agent_class,
- **state)
- child.add_edge(self)
- try:
- child.add_edge(self.mate)
- self.model.agents[self.mate].offspring += 1
- except ValueError:
- self.debug('The father has passed away')
+ if self.pregnancy < self.gestation:
+ self.pregnancy += 1
+ return
- self.offspring += 1
- self.mate = None
- return self.fertile
+ self.info('Having {} babies'.format(self.number_of_babies))
+ for i in range(self.number_of_babies):
+ state = {}
+ agent_class = self.random.choice([Male, Female])
+ child = self.model.add_node(agent_class=agent_class,
+ **state)
+ child.add_edge(self)
+ try:
+ child.add_edge(self.mate)
+ self.model.agents[self.mate].offspring += 1
+ except ValueError:
+ self.debug('The father has passed away')
- @state
- def dead(self):
- super().dead()
+ self.offspring += 1
+ self.mate = None
+ self.pregnancy = -1
+ return self.fertile
+
+ def die(self):
if 'pregnancy' in self and self['pregnancy'] > -1:
self.info('A mother has died carrying a baby!!')
+ return super().die()
class RandomAccident(BaseAgent):
@@ -138,11 +140,11 @@ class RandomAccident(BaseAgent):
if self.prob(prob_death):
self.info('I killed a rabbit: {}'.format(i.id))
rabbits_alive -= 1
- i.set_state(i.dead)
+ i.die()
self.debug('Rabbits alive: {}'.format(rabbits_alive))
if __name__ == '__main__':
from soil import easy
- sim = easy('rabbits.yml')
- sim.run()
+ with easy('rabbits.yml') as sim:
+ sim.run()
diff --git a/examples/rabbits/improved/rabbit_agents.py b/examples/rabbits/improved/rabbit_agents.py
index d97b7e7..c7d995d 100644
--- a/examples/rabbits/improved/rabbit_agents.py
+++ b/examples/rabbits/improved/rabbit_agents.py
@@ -1,130 +1,157 @@
-from soil.agents import FSM, state, default_state, BaseAgent, NetworkAgent
-from soil.time import Delta, When, NEVER
+from soil import FSM, state, default_state, BaseAgent, NetworkAgent, Environment
+from soil.time import Delta
from enum import Enum
+from collections import Counter
import logging
import math
-class RabbitModel(FSM, NetworkAgent):
+class RabbitEnv(Environment):
- mating_prob = 0.005
- offspring = 0
+ @property
+ def num_rabbits(self):
+ return self.count_agents(agent_class=Rabbit)
+
+ @property
+ def num_males(self):
+ return self.count_agents(agent_class=Male)
+
+ @property
+ def num_females(self):
+ return self.count_agents(agent_class=Female)
+
+
+class Rabbit(FSM, NetworkAgent):
+
+ sexual_maturity = 30
+ life_expectancy = 300
birth = None
- sexual_maturity = 3
- life_expectancy = 30
+ @property
+ def age(self):
+ if self.birth is None:
+ return None
+ return self.now - self.birth
@default_state
@state
def newborn(self):
+ self.info('I am a newborn.')
self.birth = self.now
- self.info(f'I am a newborn.')
- self.model['rabbits_alive'] = self.model.get('rabbits_alive', 0) + 1
+ self.offspring = 0
+ return self.youngling, Delta(self.sexual_maturity - self.age)
- # Here we can skip the `youngling` state by using a coroutine/generator.
- while self.age < self.sexual_maturity:
- interval = self.sexual_maturity - self.age
- yield Delta(interval)
-
- self.info(f'I am fertile! My age is {self.age}')
- return self.fertile
-
- @property
- def age(self):
- return self.now - self.birth
+ @state
+ def youngling(self):
+ if self.age >= self.sexual_maturity:
+ self.info(f'I am fertile! My age is {self.age}')
+ return self.fertile
@state
def fertile(self):
raise Exception("Each subclass should define its fertile state")
- def step(self):
- super().step()
- if self.prob(self.age / self.life_expectancy):
- return self.die()
+ @state
+ def dead(self):
+ self.die()
-class Male(RabbitModel):
-
+class Male(Rabbit):
max_females = 5
+ mating_prob = 0.001
@state
def fertile(self):
+ if self.age > self.life_expectancy:
+ return self.dead
+
# Males try to mate
for f in self.model.agents(agent_class=Female,
state_id=Female.fertile.id,
limit=self.max_females):
- self.debug('Found a female:', repr(f))
+ self.debug('FOUND A FEMALE: ', repr(f), self.mating_prob)
if self.prob(self['mating_prob']):
f.impregnate(self)
- break # Take a break, don't try to impregnate the rest
+ break # Do not try to impregnate other females
-
-class Female(RabbitModel):
- due_date = None
- age_of_pregnancy = None
+
+class Female(Rabbit):
gestation = 10
- mate = None
+ conception = None
@state
def fertile(self):
- return self.fertile, NEVER
+ # Just wait for a Male
+ if self.age > self.life_expectancy:
+ return self.dead
+ if self.conception is not None:
+ return self.pregnant
+
+ @property
+ def pregnancy(self):
+ if self.conception is None:
+ return None
+ return self.now - self.conception
+
+ def impregnate(self, male):
+ self.info(f'impregnated by {repr(male)}')
+ self.mate = male
+ self.conception = self.now
+ self.number_of_babies = int(8+4*self.random.random())
@state
def pregnant(self):
- self.info('I am pregnant')
+ self.debug('I am pregnant')
+
if self.age > self.life_expectancy:
- return self.dead
+ self.info("Dying before giving birth")
+ return self.die()
- self.due_date = self.now + self.gestation
+ if self.pregnancy >= self.gestation:
+ self.info('Having {} babies'.format(self.number_of_babies))
+ for i in range(self.number_of_babies):
+ state = {}
+ agent_class = self.random.choice([Male, Female])
+ child = self.model.add_node(agent_class=agent_class,
+ **state)
+ child.add_edge(self)
+ if self.mate:
+ child.add_edge(self.mate)
+ self.mate.offspring += 1
+ else:
+ self.debug('The father has passed away')
- number_of_babies = int(8+4*self.random.random())
+ self.offspring += 1
+ self.mate = None
+ return self.fertile
- while self.now < self.due_date:
- yield When(self.due_date)
-
- self.info('Having {} babies'.format(number_of_babies))
- for i in range(number_of_babies):
- agent_class = self.random.choice([Male, Female])
- child = self.model.add_node(agent_class=agent_class,
- topology=self.topology)
- self.model.add_edge(self, child)
- self.model.add_edge(self.mate, child)
- self.offspring += 1
- self.model.agents[self.mate].offspring += 1
- self.mate = None
- self.due_date = None
- return self.fertile
-
- @state
- def dead(self):
- super().dead()
- if self.due_date is not None:
+ def die(self):
+ if self.pregnancy is not None:
self.info('A mother has died carrying a baby!!')
-
- def impregnate(self, male):
- self.info(f'{repr(male)} impregnating female {repr(self)}')
- self.mate = male
- self.set_state(self.pregnant, when=self.now)
+ return super().die()
class RandomAccident(BaseAgent):
- level = logging.INFO
-
def step(self):
- rabbits_total = self.model.topology.number_of_nodes()
- if 'rabbits_alive' not in self.model:
- self.model['rabbits_alive'] = 0
- rabbits_alive = self.model.get('rabbits_alive', rabbits_total)
+ rabbits_alive = self.model.G.number_of_nodes()
+
+ if not rabbits_alive:
+ return self.die()
+
prob_death = self.model.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive)))
self.debug('Killing some rabbits with prob={}!'.format(prob_death))
- for i in self.model.network_agents:
- if i.state.id == i.dead.id:
+ for i in self.iter_agents(agent_class=Rabbit):
+ if i.state_id == i.dead.id:
continue
if self.prob(prob_death):
self.info('I killed a rabbit: {}'.format(i.id))
- rabbits_alive = self.model['rabbits_alive'] = rabbits_alive -1
- i.set_state(i.dead)
- self.debug('Rabbits alive: {}/{}'.format(rabbits_alive, rabbits_total))
- if self.model.count_agents(state_id=RabbitModel.dead.id) == self.model.topology.number_of_nodes():
- self.die()
+ rabbits_alive -= 1
+ i.die()
+ self.debug('Rabbits alive: {}'.format(rabbits_alive))
+
+
+if __name__ == '__main__':
+ from soil import easy
+ with easy('rabbits.yml') as sim:
+ sim.run()
diff --git a/examples/rabbits/improved/rabbits.yml b/examples/rabbits/improved/rabbits.yml
index dd13c4e..204270c 100644
--- a/examples/rabbits/improved/rabbits.yml
+++ b/examples/rabbits/improved/rabbits.yml
@@ -7,11 +7,10 @@ description: null
group: null
interval: 1.0
max_time: 100
-model_class: soil.environment.Environment
+model_class: rabbit_agents.RabbitEnv
model_params:
agents:
topology: true
- agent_class: rabbit_agents.RabbitModel
distribution:
- agent_class: rabbit_agents.Male
weight: 1
@@ -34,5 +33,10 @@ model_params:
nodes:
- id: 1
- id: 0
+ model_reporters:
+ num_males: 'num_males'
+ num_females: 'num_females'
+ num_rabbits: |
+ py:lambda env: env.num_males + env.num_females
extra:
visualization_params: {}
diff --git a/soil/__init__.py b/soil/__init__.py
index 46d56bd..a49462b 100644
--- a/soil/__init__.py
+++ b/soil/__init__.py
@@ -5,6 +5,7 @@ import sys
import os
import logging
import traceback
+from contextlib import contextmanager
from .version import __version__
@@ -30,6 +31,7 @@ def main(
*,
do_run=False,
debug=False,
+ pdb=False,
**kwargs,
):
import argparse
@@ -154,6 +156,7 @@ def main(
if args.pdb or debug:
args.synchronous = True
+ os.environ["SOIL_POSTMORTEM"] = "true"
res = []
try:
@@ -214,9 +217,20 @@ def main(
return res
-def easy(cfg, debug=False, **kwargs):
- return main(cfg, **kwargs)[0]
-
+@contextmanager
+def easy(cfg, pdb=False, debug=False, **kwargs):
+ ex = None
+ try:
+ yield main(cfg, **kwargs)[0]
+ except Exception as e:
+ if os.environ.get("SOIL_POSTMORTEM"):
+ from .debugging import post_mortem
+ print(traceback.format_exc())
+ post_mortem()
+ ex = e
+ finally:
+ if ex:
+ raise ex
if __name__ == "__main__":
main(do_run=True)
diff --git a/soil/__main__.py b/soil/__main__.py
index 0c76791..9ad5c4f 100644
--- a/soil/__main__.py
+++ b/soil/__main__.py
@@ -1,9 +1,7 @@
from . import main as init_main
-
def main():
init_main(do_run=True)
-
-if __name__ == "__main__":
+if __name__ == '__main__':
init_main(do_run=True)
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index 0ed5bf3..b316caa 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -29,10 +29,6 @@ def as_node(agent):
IGNORED_FIELDS = ("model", "logger")
-class DeadAgent(Exception):
- pass
-
-
class MetaAgent(ABCMeta):
def __new__(mcls, name, bases, namespace):
defaults = {}
@@ -198,7 +194,7 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
def step(self):
if not self.alive:
- raise DeadAgent(self.unique_id)
+ raise time.DeadAgent(self.unique_id)
return super().step() or time.Delta(self.interval)
def log(self, message, *args, level=logging.INFO, **kwargs):
@@ -264,6 +260,10 @@ class NetworkAgent(BaseAgent):
return list(self.iter_agents(limit_neighbors=True, **kwargs))
def add_edge(self, other):
+ assert self.node_id
+ assert other.node_id
+ assert self.node_id in self.G.nodes
+ assert other.node_id in self.G.nodes
self.topology.add_edge(self.node_id, other.node_id)
@property
@@ -303,7 +303,9 @@ class NetworkAgent(BaseAgent):
return G
def remove_node(self):
+ print(f'Removing node for {self.unique_id}: {self.node_id}')
self.G.remove_node(self.node_id)
+ self.node_id = None
def add_edge(self, other, edge_attr_dict=None, *edge_attrs):
if self.node_id not in self.G.nodes(data=False):
@@ -322,6 +324,8 @@ class NetworkAgent(BaseAgent):
)
def die(self, remove=True):
+ if not self.alive:
+ return
if remove:
self.remove_node()
return super().die()
@@ -351,7 +355,7 @@ def state(name=None):
self._coroutine = None
next_state = ex.value
if next_state is not None:
- self.set_state(next_state)
+ self._set_state(next_state)
return next_state
func.id = name or func.__name__
@@ -401,8 +405,8 @@ class MetaFSM(MetaAgent):
class FSM(BaseAgent, metaclass=MetaFSM):
- def __init__(self, *args, **kwargs):
- super(FSM, self).__init__(*args, **kwargs)
+ def __init__(self, **kwargs):
+ super(FSM, self).__init__(**kwargs)
if not hasattr(self, "state_id"):
if not self._default_state:
raise ValueError(
@@ -411,7 +415,7 @@ class FSM(BaseAgent, metaclass=MetaFSM):
self.state_id = self._default_state.id
self._coroutine = None
- self.set_state(self.state_id)
+ self._set_state(self.state_id)
def step(self):
self.debug(f"Agent {self.unique_id} @ state {self.state_id}")
@@ -434,11 +438,11 @@ class FSM(BaseAgent, metaclass=MetaFSM):
pass
if next_state is not None:
- self.set_state(next_state)
+ self._set_state(next_state)
return when or default_interval
- def set_state(self, state, when=None):
+ def _set_state(self, state, when=None):
if hasattr(state, "id"):
state = state.id
if state not in self._states:
@@ -576,83 +580,6 @@ def _convert_agent_classs(ind, to_string=False, **kwargs):
return deserialize_definition(ind, **kwargs)
-# def _agent_from_definition(definition, random, value=-1, unique_id=None):
-# """Used in the initialization of agents given an agent distribution."""
-# if value < 0:
-# value = random.random()
-# for d in sorted(definition, key=lambda x: x.get('threshold')):
-# threshold = d.get('threshold', (-1, -1))
-# # Check if the definition matches by id (first) or by threshold
-# if (unique_id is not None and unique_id in d.get('ids', [])) or \
-# (value >= threshold[0] and value < threshold[1]):
-# state = {}
-# if 'state' in d:
-# state = deepcopy(d['state'])
-# return d['agent_class'], state
-
-# raise Exception('Definition for value {} not found in: {}'.format(value, definition))
-
-
-# def _definition_to_dict(definition, random, size=None, default_state=None):
-# state = default_state or {}
-# agents = {}
-# remaining = {}
-# if size:
-# for ix in range(size):
-# remaining[ix] = copy(state)
-# else:
-# remaining = defaultdict(lambda x: copy(state))
-
-# distro = sorted([item for item in definition if 'weight' in item])
-
-# id = 0
-
-# def init_agent(item, id=ix):
-# while id in agents:
-# id += 1
-
-# agent = remaining[id]
-# agent['state'].update(copy(item.get('state', {})))
-# agents[agent.unique_id] = agent
-# del remaining[id]
-# return agent
-
-# for item in definition:
-# if 'ids' in item:
-# ids = item['ids']
-# del item['ids']
-# for id in ids:
-# agent = init_agent(item, id)
-
-# for item in definition:
-# if 'number' in item:
-# times = item['number']
-# del item['number']
-# for times in range(times):
-# if size:
-# ix = random.choice(remaining.keys())
-# agent = init_agent(item, id)
-# else:
-# agent = init_agent(item)
-# if not size:
-# return agents
-
-# if len(remaining) < 0:
-# raise Exception('Invalid definition. Too many agents to add')
-
-
-# total_weight = float(sum(s['weight'] for s in distro))
-# unit = size / total_weight
-
-# for item in distro:
-# times = unit * item['weight']
-# del item['weight']
-# for times in range(times):
-# ix = random.choice(remaining.keys())
-# agent = init_agent(item, id)
-# return agents
-
-
class AgentView(Mapping, Set):
"""A lazy-loaded list of agents."""
diff --git a/soil/debugging.py b/soil/debugging.py
index 607996b..f5a43e7 100644
--- a/soil/debugging.py
+++ b/soil/debugging.py
@@ -31,8 +31,8 @@ class Debug(pdb.Pdb):
def __init__(self, *args, skip_soil=False, **kwargs):
skip = kwargs.get("skip", [])
skip.append("soil")
+ skip.append("contextlib")
if skip_soil:
- skip.append("soil")
skip.append("soil.*")
skip.append("mesa.*")
super(Debug, self).__init__(*args, skip=skip, **kwargs)
@@ -181,7 +181,7 @@ def set_trace(frame=None, **kwargs):
debugger.set_trace(frame)
-def post_mortem(traceback=None):
+def post_mortem(traceback=None, **kwargs):
global debugger
if debugger is None:
debugger = Debug(**kwargs)
diff --git a/soil/environment.py b/soil/environment.py
index 238c494..fb4823f 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -142,12 +142,12 @@ class BaseEnvironment(Model):
"The environment has not been scheduled, so it has no sense of time"
)
- def add_agent(self, agent_class, unique_id=None, **kwargs):
- a = None
+ def add_agent(self, unique_id=None, **kwargs):
if unique_id is None:
unique_id = self.next_id()
- a = agent_class(model=self, unique_id=unique_id, **args)
+ kwargs['unique_id'] = unique_id
+ a = self._agent_from_dict(kwargs)
self.schedule.add(a)
return a
@@ -236,6 +236,7 @@ class NetworkEnvironment(BaseEnvironment):
node_id = agent.get("node_id", None)
if node_id is None:
node_id = network.find_unassigned(self.G, random=self.random)
+ self.G.nodes[node_id]['agent'] = None
agent["node_id"] = node_id
agent["unique_id"] = unique_id
agent["topology"] = self.G
@@ -269,18 +270,29 @@ class NetworkEnvironment(BaseEnvironment):
node_id = network.find_unassigned(
G=self.G, shuffle=True, random=self.random
)
+ if node_id is None:
+ node_id = f'node_for_{unique_id}'
- if node_id in G.nodes:
- self.G.nodes[node_id]["agent"] = None # Reserve
- else:
+ if node_id not in self.G.nodes:
self.G.add_node(node_id)
+ assert "agent" not in self.G.nodes[node_id]
+ self.G.nodes[node_id]["agent"] = None # Reserve
+
a = self.add_agent(
- unique_id=unique_id, agent_class=agent_class, node_id=node_id, **kwargs
+ unique_id=unique_id, agent_class=agent_class, topology=self.G, node_id=node_id, **kwargs
)
a["visible"] = True
return a
+ def add_agent(self, *args, **kwargs):
+ a = super().add_agent(*args, **kwargs)
+ if 'node_id' in a:
+ if a.node_id == 24:
+ import pdb;pdb.set_trace()
+ assert self.G.nodes[a.node_id]['agent'] == a
+ return a
+
def agent_for_node_id(self, node_id):
return self.G.nodes[node_id].get("agent")
diff --git a/soil/network.py b/soil/network.py
index 5c0b005..be7d96f 100644
--- a/soil/network.py
+++ b/soil/network.py
@@ -65,10 +65,8 @@ def find_unassigned(G, shuffle=False, random=random):
random.shuffle(candidates)
for next_id, data in candidates:
if "agent" not in data:
- node_id = next_id
- break
-
- return node_id
+ return next_id
+ return None
def dump_gexf(G, f):
diff --git a/soil/simulation.py b/soil/simulation.py
index 946023f..fc50ab8 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -226,7 +226,7 @@ Model stats:
)
model.step()
- if model.schedule.time < until: # Simulation ended (no more steps) before until (i.e., no changes expected)
+ if model.schedule.time < until: # Simulation ended (no more steps) before the expected time
model.schedule.time = until
return model
diff --git a/soil/time.py b/soil/time.py
index 661e35e..26c4259 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -13,6 +13,10 @@ from mesa import Agent as MesaAgent
INFINITY = float("inf")
+class DeadAgent(Exception):
+ pass
+
+
class When:
def __init__(self, time):
if isinstance(time, When):
@@ -38,23 +42,27 @@ class When:
return self._time > other
return self._time > other.next(self._time)
- def ready(self, time):
- return self._time <= time
+ def ready(self, agent):
+ return self._time <= agent.model.schedule.time
class Cond(When):
def __init__(self, func, delta=1):
self._func = func
self._delta = delta
+ self._checked = False
def next(self, time):
- return time + self._delta
+ if self._checked:
+ return time + self._delta
+ return time
def abs(self, time):
return self
- def ready(self, time):
- return self._func(time)
+ def ready(self, agent):
+ self._checked = True
+ return self._func(agent)
def __eq__(self, other):
return False
@@ -109,10 +117,12 @@ class TimedActivation(BaseScheduler):
elif not isinstance(when, When):
when = When(when)
if agent.unique_id in self._agents:
- self._queue.remove((self._next[agent.unique_id], agent))
del self._agents[agent.unique_id]
- heapify(self._queue)
+ if agent.unique_id in self._next:
+ self._queue.remove((self._next[agent.unique_id], agent))
+ heapify(self._queue)
+ self._next[agent.unique_id] = when
heappush(self._queue, (when, agent))
super().add(agent)
@@ -139,8 +149,9 @@ class TimedActivation(BaseScheduler):
if when > self.time:
break
heappop(self._queue)
- if when.ready(self.time):
+ if when.ready(agent):
to_process.append(agent)
+ self._next.pop(agent.unique_id, None)
continue
next_time = min(next_time, when.next(self.time))
@@ -155,13 +166,20 @@ class TimedActivation(BaseScheduler):
for agent in to_process:
self.logger.debug(f"Stepping agent {agent}")
- returned = ((agent.step() or Delta(1))).abs(self.time)
+ try:
+ returned = ((agent.step() or Delta(1))).abs(self.time)
+ except DeadAgent:
+ if agent.unique_id in self._next:
+ del self._next[agent.unique_id]
+ agent.alive = False
+ continue
+
if not getattr(agent, "alive", True):
self.remove(agent)
continue
- value = when.next(self.time)
+ value = returned.next(self.time)
if value < self.time:
raise Exception(
@@ -172,6 +190,8 @@ class TimedActivation(BaseScheduler):
self._next[agent.unique_id] = returned
heappush(self._queue, (returned, agent))
+ else:
+ assert not self._next[agent.unique_id]
self.steps += 1
self.logger.debug(f"Updating time step: {self.time} -> {next_time}")
diff --git a/tests/test_agents.py b/tests/test_agents.py
index d3db80e..4006e9d 100644
--- a/tests/test_agents.py
+++ b/tests/test_agents.py
@@ -24,7 +24,7 @@ class TestMain(TestCase):
'''A dead agent should raise an exception if it is stepped after death'''
d = Dead(unique_id=0, model=environment.Environment())
d.step()
- with pytest.raises(agents.DeadAgent):
+ with pytest.raises(stime.DeadAgent):
d.step()
diff --git a/tests/test_time.py b/tests/test_time.py
new file mode 100644
index 0000000..db16609
--- /dev/null
+++ b/tests/test_time.py
@@ -0,0 +1,74 @@
+from unittest import TestCase
+
+from soil import time, agents, environment
+
+class TestMain(TestCase):
+ def test_cond(self):
+ '''
+ A condition should match a When if the concition is True
+ '''
+
+ t = time.Cond(lambda t: True)
+ f = time.Cond(lambda t: False)
+ for i in range(10):
+ w = time.When(i)
+ assert w == t
+ assert w is not f
+
+ def test_cond(self):
+ '''
+ Comparing a Cond to a Delta should always return False
+ '''
+
+ c = time.Cond(lambda t: False)
+ d = time.Delta(1)
+ assert c is not d
+
+ def test_cond_env(self):
+ '''
+ '''
+
+ times_started = []
+ times_awakened = []
+ times = []
+ done = 0
+
+ class CondAgent(agents.BaseAgent):
+
+ def step(self):
+ nonlocal done
+ times_started.append(self.now)
+ while True:
+ yield time.Cond(lambda agent: agent.model.schedule.time >= 10)
+ times_awakened.append(self.now)
+ if self.now >= 10:
+ break
+ done += 1
+
+ env = environment.Environment(agents=[{'agent_class': CondAgent}])
+
+
+ while env.schedule.time < 11:
+ env.step()
+ times.append(env.now)
+ assert env.schedule.time == 11
+ assert times_started == [0]
+ assert times_awakened == [10]
+ assert done == 1
+ # The first time will produce the Cond.
+ # Since there are no other agents, time will not advance, but the number
+ # of steps will.
+ assert env.schedule.steps == 12
+ assert len(times) == 12
+
+ while env.schedule.time < 12:
+ env.step()
+ times.append(env.now)
+
+ assert env.schedule.time == 12
+ assert times_started == [0, 11]
+ assert times_awakened == [10, 11]
+ assert done == 2
+ # Once more to yield the cond, another one to continue
+ assert env.schedule.steps == 14
+ assert len(times) == 14
From 880a9f2a1cf59b00415d1608a28fd1abdc7366d1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Mon, 17 Oct 2022 20:23:57 +0200
Subject: [PATCH 15/39] black formatting
---
examples/custom_generator/mymodule.py | 13 +-
examples/custom_timeouts/custom_timeouts.py | 33 ++--
examples/mesa/server.py | 32 ++--
examples/mesa/social_wealth.py | 65 ++++---
examples/mesa/wealth.py | 40 +++--
examples/newsspread/newsspread.py | 51 +++---
examples/programmatic/programmatic.py | 23 +--
examples/pubcrawl/pubcrawl.py | 134 +++++++--------
examples/rabbits/basic/rabbit_agents.py | 48 +++---
examples/rabbits/improved/rabbit_agents.py | 46 ++---
examples/random_delays/random_delays.py | 35 ++--
examples/terrorism/TerroristNetworkModel.py | 180 +++++++++++++-------
soil/__init__.py | 2 +
soil/__main__.py | 4 +-
soil/agents/__init__.py | 14 +-
soil/environment.py | 24 ++-
soil/exporters.py | 11 +-
soil/simulation.py | 4 +-
soil/time.py | 1 -
19 files changed, 431 insertions(+), 329 deletions(-)
diff --git a/examples/custom_generator/mymodule.py b/examples/custom_generator/mymodule.py
index 85226e0..241ddcb 100644
--- a/examples/custom_generator/mymodule.py
+++ b/examples/custom_generator/mymodule.py
@@ -2,16 +2,17 @@ from networkx import Graph
import random
import networkx as nx
+
def mygenerator(n=5, n_edges=5):
- '''
+ """
Just a simple generator that creates a network with n nodes and
n_edges edges. Edges are assigned randomly, only avoiding self loops.
- '''
+ """
G = nx.Graph()
for i in range(n):
G.add_node(i)
-
+
for i in range(n_edges):
nodes = list(G.nodes)
n_in = random.choice(nodes)
@@ -19,9 +20,3 @@ def mygenerator(n=5, n_edges=5):
n_out = random.choice(nodes)
G.add_edge(n_in, n_out)
return G
-
-
-
-
-
-
diff --git a/examples/custom_timeouts/custom_timeouts.py b/examples/custom_timeouts/custom_timeouts.py
index b269c0a..838ccfc 100644
--- a/examples/custom_timeouts/custom_timeouts.py
+++ b/examples/custom_timeouts/custom_timeouts.py
@@ -2,34 +2,37 @@ from soil.agents import FSM, state, default_state
class Fibonacci(FSM):
- '''Agent that only executes in t_steps that are Fibonacci numbers'''
+ """Agent that only executes in t_steps that are Fibonacci numbers"""
- defaults = {
- 'prev': 1
- }
+ defaults = {"prev": 1}
@default_state
@state
def counting(self):
- self.log('Stopping at {}'.format(self.now))
- prev, self['prev'] = self['prev'], max([self.now, self['prev']])
+ self.log("Stopping at {}".format(self.now))
+ prev, self["prev"] = self["prev"], max([self.now, self["prev"]])
return None, self.env.timeout(prev)
class Odds(FSM):
- '''Agent that only executes in odd t_steps'''
+ """Agent that only executes in odd t_steps"""
+
@default_state
@state
def odds(self):
- self.log('Stopping at {}'.format(self.now))
- return None, self.env.timeout(1+self.now%2)
+ self.log("Stopping at {}".format(self.now))
+ return None, self.env.timeout(1 + self.now % 2)
-if __name__ == '__main__':
+if __name__ == "__main__":
from soil import Simulation
- s = Simulation(network_agents=[{'ids': [0], 'agent_class': Fibonacci},
- {'ids': [1], 'agent_class': Odds}],
- network_params={"generator": "complete_graph", "n": 2},
- max_time=100,
- )
+
+ s = Simulation(
+ network_agents=[
+ {"ids": [0], "agent_class": Fibonacci},
+ {"ids": [1], "agent_class": Odds},
+ ],
+ network_params={"generator": "complete_graph", "n": 2},
+ max_time=100,
+ )
s.run(dry_run=True)
diff --git a/examples/mesa/server.py b/examples/mesa/server.py
index 7fe820f..ea00658 100644
--- a/examples/mesa/server.py
+++ b/examples/mesa/server.py
@@ -14,16 +14,18 @@ def network_portrayal(env):
# The model ensures there is 0 or 1 agent per node
portrayal = dict()
- wealths = {node_id: data['agent'].wealth for (node_id, data) in env.G.nodes(data=True)}
+ wealths = {
+ node_id: data["agent"].wealth for (node_id, data) in env.G.nodes(data=True)
+ }
portrayal["nodes"] = [
{
"id": node_id,
- "size": 2*(wealth+1),
+ "size": 2 * (wealth + 1),
"color": "#CC0000" if wealth == 0 else "#007959",
# "color": "#CC0000",
"label": f"{node_id}: {wealth}",
- } for (node_id, wealth) in wealths.items()
-
+ }
+ for (node_id, wealth) in wealths.items()
]
portrayal["edges"] = [
@@ -41,7 +43,7 @@ def gridPortrayal(agent):
:param agent: the agent in the simulation
:return: the portrayal dictionary
"""
- color = max(10, min(agent.wealth*10, 100))
+ color = max(10, min(agent.wealth * 10, 100))
return {
"Shape": "rect",
"w": 1,
@@ -52,7 +54,7 @@ def gridPortrayal(agent):
"Text": agent.unique_id,
"x": agent.pos[0],
"y": agent.pos[1],
- "Color": f"rgba(31, 10, 255, 0.{color})"
+ "Color": f"rgba(31, 10, 255, 0.{color})",
}
@@ -79,7 +81,7 @@ model_params = {
10,
1,
description="Grid height",
- ),
+ ),
"width": UserSettableParameter(
"slider",
"width",
@@ -88,16 +90,20 @@ model_params = {
10,
1,
description="Grid width",
- ),
- "agent_class": UserSettableParameter('choice', 'Agent class', value='MoneyAgent',
- choices=['MoneyAgent', 'SocialMoneyAgent']),
+ ),
+ "agent_class": UserSettableParameter(
+ "choice",
+ "Agent class",
+ value="MoneyAgent",
+ choices=["MoneyAgent", "SocialMoneyAgent"],
+ ),
"generator": graph_generator,
}
-canvas_element = CanvasGrid(gridPortrayal,
- model_params["width"].value,
- model_params["height"].value, 500, 500)
+canvas_element = CanvasGrid(
+ gridPortrayal, model_params["width"].value, model_params["height"].value, 500, 500
+)
server = ModularServer(
diff --git a/examples/mesa/social_wealth.py b/examples/mesa/social_wealth.py
index c8b1701..b4ae99f 100644
--- a/examples/mesa/social_wealth.py
+++ b/examples/mesa/social_wealth.py
@@ -1,9 +1,10 @@
-'''
+"""
This is an example that adds soil agents and environment in a normal
mesa workflow.
-'''
+"""
from mesa import Agent as MesaAgent
from mesa.space import MultiGrid
+
# from mesa.time import RandomActivation
from mesa.datacollection import DataCollector
from mesa.batchrunner import BatchRunner
@@ -12,12 +13,13 @@ import networkx as nx
from soil import NetworkAgent, Environment, serialization
+
def compute_gini(model):
agent_wealths = [agent.wealth for agent in model.agents]
x = sorted(agent_wealths)
N = len(list(model.agents))
- B = sum( xi * (N-i) for i,xi in enumerate(x) ) / (N*sum(x))
- return (1 + (1/N) - 2*B)
+ B = sum(xi * (N - i) for i, xi in enumerate(x)) / (N * sum(x))
+ return 1 + (1 / N) - 2 * B
class MoneyAgent(MesaAgent):
@@ -32,9 +34,8 @@ class MoneyAgent(MesaAgent):
def move(self):
possible_steps = self.model.grid.get_neighborhood(
- self.pos,
- moore=True,
- include_center=False)
+ self.pos, moore=True, include_center=False
+ )
new_position = self.random.choice(possible_steps)
self.model.grid.move_agent(self, new_position)
@@ -69,6 +70,7 @@ class SocialMoneyAgent(NetworkAgent, MoneyAgent):
other.wealth += 1
self.wealth -= 1
+
def graph_generator(n=5):
G = nx.Graph()
for ix in range(n):
@@ -78,16 +80,22 @@ def graph_generator(n=5):
class MoneyEnv(Environment):
"""A model with some number of agents."""
- def __init__(self, width, height, N, generator=graph_generator,
- agent_class=SocialMoneyAgent,
- topology=None, **kwargs):
+
+ def __init__(
+ self,
+ width,
+ height,
+ N,
+ generator=graph_generator,
+ agent_class=SocialMoneyAgent,
+ topology=None,
+ **kwargs
+ ):
generator = serialization.deserialize(generator)
agent_class = serialization.deserialize(agent_class, globs=globals())
topology = generator(n=N)
- super().__init__(topology=topology,
- N=N,
- **kwargs)
+ super().__init__(topology=topology, N=N, **kwargs)
self.grid = MultiGrid(width, height, False)
self.populate_network(agent_class=agent_class)
@@ -99,26 +107,29 @@ class MoneyEnv(Environment):
self.grid.place_agent(agent, (x, y))
self.datacollector = DataCollector(
- model_reporters={"Gini": compute_gini},
- agent_reporters={"Wealth": "wealth"})
+ model_reporters={"Gini": compute_gini}, agent_reporters={"Wealth": "wealth"}
+ )
-if __name__ == '__main__':
+if __name__ == "__main__":
- fixed_params = {"generator": nx.complete_graph,
- "width": 10,
- "network_agents": [{"agent_class": SocialMoneyAgent,
- 'weight': 1}],
- "height": 10}
+ fixed_params = {
+ "generator": nx.complete_graph,
+ "width": 10,
+ "network_agents": [{"agent_class": SocialMoneyAgent, "weight": 1}],
+ "height": 10,
+ }
variable_params = {"N": range(10, 100, 10)}
- batch_run = BatchRunner(MoneyEnv,
- variable_parameters=variable_params,
- fixed_parameters=fixed_params,
- iterations=5,
- max_steps=100,
- model_reporters={"Gini": compute_gini})
+ batch_run = BatchRunner(
+ MoneyEnv,
+ variable_parameters=variable_params,
+ fixed_parameters=fixed_params,
+ iterations=5,
+ max_steps=100,
+ model_reporters={"Gini": compute_gini},
+ )
batch_run.run_all()
run_data = batch_run.get_model_vars_dataframe()
diff --git a/examples/mesa/wealth.py b/examples/mesa/wealth.py
index c7934de..ca0d9bf 100644
--- a/examples/mesa/wealth.py
+++ b/examples/mesa/wealth.py
@@ -4,24 +4,26 @@ from mesa.time import RandomActivation
from mesa.datacollection import DataCollector
from mesa.batchrunner import BatchRunner
+
def compute_gini(model):
agent_wealths = [agent.wealth for agent in model.schedule.agents]
x = sorted(agent_wealths)
N = model.num_agents
- B = sum( xi * (N-i) for i,xi in enumerate(x) ) / (N*sum(x))
- return (1 + (1/N) - 2*B)
+ B = sum(xi * (N - i) for i, xi in enumerate(x)) / (N * sum(x))
+ return 1 + (1 / N) - 2 * B
+
class MoneyAgent(Agent):
- """ An agent with fixed initial wealth."""
+ """An agent with fixed initial wealth."""
+
def __init__(self, unique_id, model):
super().__init__(unique_id, model)
self.wealth = 1
def move(self):
possible_steps = self.model.grid.get_neighborhood(
- self.pos,
- moore=True,
- include_center=False)
+ self.pos, moore=True, include_center=False
+ )
new_position = self.random.choice(possible_steps)
self.model.grid.move_agent(self, new_position)
@@ -37,8 +39,10 @@ class MoneyAgent(Agent):
if self.wealth > 0:
self.give_money()
+
class MoneyModel(Model):
"""A model with some number of agents."""
+
def __init__(self, N, width, height):
self.num_agents = N
self.grid = MultiGrid(width, height, True)
@@ -55,29 +59,29 @@ class MoneyModel(Model):
self.grid.place_agent(a, (x, y))
self.datacollector = DataCollector(
- model_reporters={"Gini": compute_gini},
- agent_reporters={"Wealth": "wealth"})
+ model_reporters={"Gini": compute_gini}, agent_reporters={"Wealth": "wealth"}
+ )
def step(self):
self.datacollector.collect(self)
self.schedule.step()
-if __name__ == '__main__':
+if __name__ == "__main__":
- fixed_params = {"width": 10,
- "height": 10}
+ fixed_params = {"width": 10, "height": 10}
variable_params = {"N": range(10, 500, 10)}
- batch_run = BatchRunner(MoneyModel,
- variable_params,
- fixed_params,
- iterations=5,
- max_steps=100,
- model_reporters={"Gini": compute_gini})
+ batch_run = BatchRunner(
+ MoneyModel,
+ variable_params,
+ fixed_params,
+ iterations=5,
+ max_steps=100,
+ model_reporters={"Gini": compute_gini},
+ )
batch_run.run_all()
run_data = batch_run.get_model_vars_dataframe()
run_data.head()
print(run_data.Gini)
-
diff --git a/examples/newsspread/newsspread.py b/examples/newsspread/newsspread.py
index 14d666f..f747f8e 100644
--- a/examples/newsspread/newsspread.py
+++ b/examples/newsspread/newsspread.py
@@ -3,84 +3,83 @@ import logging
class DumbViewer(FSM, NetworkAgent):
- '''
+ """
A viewer that gets infected via TV (if it has one) and tries to infect
its neighbors once it's infected.
- '''
+ """
+
defaults = {
- 'prob_neighbor_spread': 0.5,
- 'prob_tv_spread': 0.1,
+ "prob_neighbor_spread": 0.5,
+ "prob_tv_spread": 0.1,
}
@default_state
@state
def neutral(self):
- if self['has_tv']:
- if self.prob(self.model['prob_tv_spread']):
+ if self["has_tv"]:
+ if self.prob(self.model["prob_tv_spread"]):
return self.infected
@state
def infected(self):
for neighbor in self.get_neighboring_agents(state_id=self.neutral.id):
- if self.prob(self.model['prob_neighbor_spread']):
+ if self.prob(self.model["prob_neighbor_spread"]):
neighbor.infect()
def infect(self):
- '''
+ """
This is not a state. It is a function that other agents can use to try to
infect this agent. DumbViewer always gets infected, but other agents like
HerdViewer might not become infected right away
- '''
+ """
self.set_state(self.infected)
class HerdViewer(DumbViewer):
- '''
+ """
A viewer whose probability of infection depends on the state of its neighbors.
- '''
+ """
def infect(self):
- '''Notice again that this is NOT a state. See DumbViewer.infect for reference'''
+ """Notice again that this is NOT a state. See DumbViewer.infect for reference"""
infected = self.count_neighboring_agents(state_id=self.infected.id)
total = self.count_neighboring_agents()
- prob_infect = self.model['prob_neighbor_spread'] * infected/total
- self.debug('prob_infect', prob_infect)
+ prob_infect = self.model["prob_neighbor_spread"] * infected / total
+ self.debug("prob_infect", prob_infect)
if self.prob(prob_infect):
self.set_state(self.infected)
class WiseViewer(HerdViewer):
- '''
+ """
A viewer that can change its mind.
- '''
+ """
defaults = {
- 'prob_neighbor_spread': 0.5,
- 'prob_neighbor_cure': 0.25,
- 'prob_tv_spread': 0.1,
+ "prob_neighbor_spread": 0.5,
+ "prob_neighbor_cure": 0.25,
+ "prob_tv_spread": 0.1,
}
@state
def cured(self):
- prob_cure = self.model['prob_neighbor_cure']
+ prob_cure = self.model["prob_neighbor_cure"]
for neighbor in self.get_neighboring_agents(state_id=self.infected.id):
if self.prob(prob_cure):
try:
neighbor.cure()
except AttributeError:
- self.debug('Viewer {} cannot be cured'.format(neighbor.id))
+ self.debug("Viewer {} cannot be cured".format(neighbor.id))
def cure(self):
self.set_state(self.cured.id)
@state
def infected(self):
- cured = max(self.count_neighboring_agents(self.cured.id),
- 1.0)
- infected = max(self.count_neighboring_agents(self.infected.id),
- 1.0)
- prob_cure = self.model['prob_neighbor_cure'] * (cured/infected)
+ cured = max(self.count_neighboring_agents(self.cured.id), 1.0)
+ infected = max(self.count_neighboring_agents(self.infected.id), 1.0)
+ prob_cure = self.model["prob_neighbor_cure"] * (cured / infected)
if self.prob(prob_cure):
return self.cured
return self.set_state(super().infected)
diff --git a/examples/programmatic/programmatic.py b/examples/programmatic/programmatic.py
index 3b9f86f..0cb912f 100644
--- a/examples/programmatic/programmatic.py
+++ b/examples/programmatic/programmatic.py
@@ -1,6 +1,6 @@
-'''
+"""
Example of a fully programmatic simulation, without definition files.
-'''
+"""
from soil import Simulation, agents
from networkx import Graph
import logging
@@ -14,21 +14,22 @@ def mygenerator():
class MyAgent(agents.FSM):
-
@agents.default_state
@agents.state
def neutral(self):
- self.debug('I am running')
+ self.debug("I am running")
if agents.prob(0.2):
- self.info('This runs 2/10 times on average')
+ self.info("This runs 2/10 times on average")
-s = Simulation(name='Programmatic',
- network_params={'generator': mygenerator},
- num_trials=1,
- max_time=100,
- agent_class=MyAgent,
- dry_run=True)
+s = Simulation(
+ name="Programmatic",
+ network_params={"generator": mygenerator},
+ num_trials=1,
+ max_time=100,
+ agent_class=MyAgent,
+ dry_run=True,
+)
# By default, logging will only print WARNING logs (and above).
diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py
index 9fd1b04..110a44c 100644
--- a/examples/pubcrawl/pubcrawl.py
+++ b/examples/pubcrawl/pubcrawl.py
@@ -5,7 +5,8 @@ import logging
class CityPubs(Environment):
- '''Environment with Pubs'''
+ """Environment with Pubs"""
+
level = logging.INFO
def __init__(self, *args, number_of_pubs=3, pub_capacity=10, **kwargs):
@@ -13,51 +14,52 @@ class CityPubs(Environment):
pubs = {}
for i in range(number_of_pubs):
newpub = {
- 'name': 'The awesome pub #{}'.format(i),
- 'open': True,
- 'capacity': pub_capacity,
- 'occupancy': 0,
+ "name": "The awesome pub #{}".format(i),
+ "open": True,
+ "capacity": pub_capacity,
+ "occupancy": 0,
}
- pubs[newpub['name']] = newpub
- self['pubs'] = pubs
+ pubs[newpub["name"]] = newpub
+ self["pubs"] = pubs
def enter(self, pub_id, *nodes):
- '''Agents will try to enter. The pub checks if it is possible'''
+ """Agents will try to enter. The pub checks if it is possible"""
try:
- pub = self['pubs'][pub_id]
+ pub = self["pubs"][pub_id]
except KeyError:
- raise ValueError('Pub {} is not available'.format(pub_id))
- if not pub['open'] or (pub['capacity'] < (len(nodes) + pub['occupancy'])):
+ raise ValueError("Pub {} is not available".format(pub_id))
+ if not pub["open"] or (pub["capacity"] < (len(nodes) + pub["occupancy"])):
return False
- pub['occupancy'] += len(nodes)
+ pub["occupancy"] += len(nodes)
for node in nodes:
- node['pub'] = pub_id
+ node["pub"] = pub_id
return True
def available_pubs(self):
- for pub in self['pubs'].values():
- if pub['open'] and (pub['occupancy'] < pub['capacity']):
- yield pub['name']
+ for pub in self["pubs"].values():
+ if pub["open"] and (pub["occupancy"] < pub["capacity"]):
+ yield pub["name"]
def exit(self, pub_id, *node_ids):
- '''Agents will notify the pub they want to leave'''
+ """Agents will notify the pub they want to leave"""
try:
- pub = self['pubs'][pub_id]
+ pub = self["pubs"][pub_id]
except KeyError:
- raise ValueError('Pub {} is not available'.format(pub_id))
+ raise ValueError("Pub {} is not available".format(pub_id))
for node_id in node_ids:
node = self.get_agent(node_id)
- if pub_id == node['pub']:
- del node['pub']
- pub['occupancy'] -= 1
+ if pub_id == node["pub"]:
+ del node["pub"]
+ pub["occupancy"] -= 1
class Patron(FSM, NetworkAgent):
- '''Agent that looks for friends to drink with. It will do three things:
- 1) Look for other patrons to drink with
- 2) Look for a bar where the agent and other agents in the same group can get in.
- 3) While in the bar, patrons only drink, until they get drunk and taken home.
- '''
+ """Agent that looks for friends to drink with. It will do three things:
+ 1) Look for other patrons to drink with
+ 2) Look for a bar where the agent and other agents in the same group can get in.
+ 3) While in the bar, patrons only drink, until they get drunk and taken home.
+ """
+
level = logging.DEBUG
pub = None
@@ -69,13 +71,13 @@ class Patron(FSM, NetworkAgent):
@default_state
@state
def looking_for_friends(self):
- '''Look for friends to drink with'''
- self.info('I am looking for friends')
- available_friends = list(self.get_agents(drunk=False,
- pub=None,
- state_id=self.looking_for_friends.id))
+ """Look for friends to drink with"""
+ self.info("I am looking for friends")
+ available_friends = list(
+ self.get_agents(drunk=False, pub=None, state_id=self.looking_for_friends.id)
+ )
if not available_friends:
- self.info('Life sucks and I\'m alone!')
+ self.info("Life sucks and I'm alone!")
return self.at_home
befriended = self.try_friends(available_friends)
if befriended:
@@ -83,93 +85,91 @@ class Patron(FSM, NetworkAgent):
@state
def looking_for_pub(self):
- '''Look for a pub that accepts me and my friends'''
- if self['pub'] != None:
+ """Look for a pub that accepts me and my friends"""
+ if self["pub"] != None:
return self.sober_in_pub
- self.debug('I am looking for a pub')
+ self.debug("I am looking for a pub")
group = list(self.get_neighboring_agents())
for pub in self.model.available_pubs():
- self.debug('We\'re trying to get into {}: total: {}'.format(pub, len(group)))
+ self.debug("We're trying to get into {}: total: {}".format(pub, len(group)))
if self.model.enter(pub, self, *group):
- self.info('We\'re all {} getting in {}!'.format(len(group), pub))
+ self.info("We're all {} getting in {}!".format(len(group), pub))
return self.sober_in_pub
@state
def sober_in_pub(self):
- '''Drink up.'''
+ """Drink up."""
self.drink()
- if self['pints'] > self['max_pints']:
+ if self["pints"] > self["max_pints"]:
return self.drunk_in_pub
@state
def drunk_in_pub(self):
- '''I'm out. Take me home!'''
- self.info('I\'m so drunk. Take me home!')
- self['drunk'] = True
+ """I'm out. Take me home!"""
+ self.info("I'm so drunk. Take me home!")
+ self["drunk"] = True
if self.kicked_out:
return self.at_home
pass # out drun
@state
def at_home(self):
- '''The end'''
+ """The end"""
others = self.get_agents(state_id=Patron.at_home.id, limit_neighbors=True)
- self.debug('I\'m home. Just like {} of my friends'.format(len(others)))
-
+ self.debug("I'm home. Just like {} of my friends".format(len(others)))
+
def drink(self):
- self['pints'] += 1
- self.debug('Cheers to that')
-
+ self["pints"] += 1
+ self.debug("Cheers to that")
+
def kick_out(self):
self.kicked_out = True
def befriend(self, other_agent, force=False):
- '''
+ """
Try to become friends with another agent. The chances of
success depend on both agents' openness.
- '''
- if force or self['openness'] > self.random.random():
+ """
+ if force or self["openness"] > self.random.random():
self.add_edge(self, other_agent)
- self.info('Made some friend {}'.format(other_agent))
+ self.info("Made some friend {}".format(other_agent))
return True
return False
def try_friends(self, others):
- ''' Look for random agents around me and try to befriend them'''
+ """Look for random agents around me and try to befriend them"""
befriended = False
- k = int(10*self['openness'])
+ k = int(10 * self["openness"])
self.random.shuffle(others)
for friend in islice(others, k): # random.choice >= 3.7
if friend == self:
continue
if friend.befriend(self):
self.befriend(friend, force=True)
- self.debug('Hooray! new friend: {}'.format(friend.id))
+ self.debug("Hooray! new friend: {}".format(friend.id))
befriended = True
else:
- self.debug('{} does not want to be friends'.format(friend.id))
+ self.debug("{} does not want to be friends".format(friend.id))
return befriended
class Police(FSM):
- '''Simple agent to take drunk people out of pubs.'''
+ """Simple agent to take drunk people out of pubs."""
+
level = logging.INFO
@default_state
@state
def patrol(self):
- drunksters = list(self.get_agents(drunk=True,
- state_id=Patron.drunk_in_pub.id))
+ drunksters = list(self.get_agents(drunk=True, state_id=Patron.drunk_in_pub.id))
for drunk in drunksters:
- self.info('Kicking out the trash: {}'.format(drunk.id))
+ self.info("Kicking out the trash: {}".format(drunk.id))
drunk.kick_out()
else:
- self.info('No trash to take out. Too bad.')
+ self.info("No trash to take out. Too bad.")
-if __name__ == '__main__':
+if __name__ == "__main__":
from soil import simulation
- simulation.run_from_config('pubcrawl.yml',
- dry_run=True,
- dump=None,
- parallel=False)
+
+ simulation.run_from_config("pubcrawl.yml", dry_run=True, dump=None, parallel=False)
diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py
index 60a0d15..b28d2e9 100644
--- a/examples/rabbits/basic/rabbit_agents.py
+++ b/examples/rabbits/basic/rabbit_agents.py
@@ -5,7 +5,6 @@ import math
class RabbitEnv(Environment):
-
@property
def num_rabbits(self):
return self.count_agents(agent_class=Rabbit)
@@ -27,7 +26,7 @@ class Rabbit(NetworkAgent, FSM):
@default_state
@state
def newborn(self):
- self.info('I am a newborn.')
+ self.info("I am a newborn.")
self.age = 0
self.offspring = 0
return self.youngling
@@ -36,7 +35,7 @@ class Rabbit(NetworkAgent, FSM):
def youngling(self):
self.age += 1
if self.age >= self.sexual_maturity:
- self.info(f'I am fertile! My age is {self.age}')
+ self.info(f"I am fertile! My age is {self.age}")
return self.fertile
@state
@@ -60,11 +59,11 @@ class Male(Rabbit):
return self.dead
# Males try to mate
- for f in self.model.agents(agent_class=Female,
- state_id=Female.fertile.id,
- limit=self.max_females):
- self.debug('FOUND A FEMALE: ', repr(f), self.mating_prob)
- if self.prob(self['mating_prob']):
+ for f in self.model.agents(
+ agent_class=Female, state_id=Female.fertile.id, limit=self.max_females
+ ):
+ self.debug("FOUND A FEMALE: ", repr(f), self.mating_prob)
+ if self.prob(self["mating_prob"]):
f.impregnate(self)
break # Take a break
@@ -83,14 +82,14 @@ class Female(Rabbit):
return self.pregnant
def impregnate(self, male):
- self.info(f'impregnated by {repr(male)}')
+ self.info(f"impregnated by {repr(male)}")
self.mate = male
self.pregnancy = 0
- self.number_of_babies = int(8+4*self.random.random())
+ self.number_of_babies = int(8 + 4 * self.random.random())
@state
def pregnant(self):
- self.info('I am pregnant')
+ self.info("I am pregnant")
self.age += 1
if self.age >= self.life_expectancy:
@@ -100,18 +99,17 @@ class Female(Rabbit):
self.pregnancy += 1
return
- self.info('Having {} babies'.format(self.number_of_babies))
+ self.info("Having {} babies".format(self.number_of_babies))
for i in range(self.number_of_babies):
state = {}
agent_class = self.random.choice([Male, Female])
- child = self.model.add_node(agent_class=agent_class,
- **state)
+ child = self.model.add_node(agent_class=agent_class, **state)
child.add_edge(self)
try:
child.add_edge(self.mate)
self.model.agents[self.mate].offspring += 1
except ValueError:
- self.debug('The father has passed away')
+ self.debug("The father has passed away")
self.offspring += 1
self.mate = None
@@ -119,32 +117,34 @@ class Female(Rabbit):
return self.fertile
def die(self):
- if 'pregnancy' in self and self['pregnancy'] > -1:
- self.info('A mother has died carrying a baby!!')
+ if "pregnancy" in self and self["pregnancy"] > -1:
+ self.info("A mother has died carrying a baby!!")
return super().die()
class RandomAccident(BaseAgent):
-
def step(self):
rabbits_alive = self.model.G.number_of_nodes()
if not rabbits_alive:
return self.die()
- prob_death = self.model.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive)))
- self.debug('Killing some rabbits with prob={}!'.format(prob_death))
+ prob_death = self.model.get("prob_death", 1e-100) * math.floor(
+ math.log10(max(1, rabbits_alive))
+ )
+ self.debug("Killing some rabbits with prob={}!".format(prob_death))
for i in self.iter_agents(agent_class=Rabbit):
if i.state_id == i.dead.id:
continue
if self.prob(prob_death):
- self.info('I killed a rabbit: {}'.format(i.id))
+ self.info("I killed a rabbit: {}".format(i.id))
rabbits_alive -= 1
i.die()
- self.debug('Rabbits alive: {}'.format(rabbits_alive))
+ self.debug("Rabbits alive: {}".format(rabbits_alive))
-if __name__ == '__main__':
+if __name__ == "__main__":
from soil import easy
- with easy('rabbits.yml') as sim:
+
+ with easy("rabbits.yml") as sim:
sim.run()
diff --git a/examples/rabbits/improved/rabbit_agents.py b/examples/rabbits/improved/rabbit_agents.py
index c7d995d..0f45d9a 100644
--- a/examples/rabbits/improved/rabbit_agents.py
+++ b/examples/rabbits/improved/rabbit_agents.py
@@ -7,7 +7,6 @@ import math
class RabbitEnv(Environment):
-
@property
def num_rabbits(self):
return self.count_agents(agent_class=Rabbit)
@@ -36,7 +35,7 @@ class Rabbit(FSM, NetworkAgent):
@default_state
@state
def newborn(self):
- self.info('I am a newborn.')
+ self.info("I am a newborn.")
self.birth = self.now
self.offspring = 0
return self.youngling, Delta(self.sexual_maturity - self.age)
@@ -44,7 +43,7 @@ class Rabbit(FSM, NetworkAgent):
@state
def youngling(self):
if self.age >= self.sexual_maturity:
- self.info(f'I am fertile! My age is {self.age}')
+ self.info(f"I am fertile! My age is {self.age}")
return self.fertile
@state
@@ -66,11 +65,11 @@ class Male(Rabbit):
return self.dead
# Males try to mate
- for f in self.model.agents(agent_class=Female,
- state_id=Female.fertile.id,
- limit=self.max_females):
- self.debug('FOUND A FEMALE: ', repr(f), self.mating_prob)
- if self.prob(self['mating_prob']):
+ for f in self.model.agents(
+ agent_class=Female, state_id=Female.fertile.id, limit=self.max_females
+ ):
+ self.debug("FOUND A FEMALE: ", repr(f), self.mating_prob)
+ if self.prob(self["mating_prob"]):
f.impregnate(self)
break # Do not try to impregnate other females
@@ -94,32 +93,31 @@ class Female(Rabbit):
return self.now - self.conception
def impregnate(self, male):
- self.info(f'impregnated by {repr(male)}')
+ self.info(f"impregnated by {repr(male)}")
self.mate = male
self.conception = self.now
- self.number_of_babies = int(8+4*self.random.random())
+ self.number_of_babies = int(8 + 4 * self.random.random())
@state
def pregnant(self):
- self.debug('I am pregnant')
+ self.debug("I am pregnant")
if self.age > self.life_expectancy:
self.info("Dying before giving birth")
return self.die()
if self.pregnancy >= self.gestation:
- self.info('Having {} babies'.format(self.number_of_babies))
+ self.info("Having {} babies".format(self.number_of_babies))
for i in range(self.number_of_babies):
state = {}
agent_class = self.random.choice([Male, Female])
- child = self.model.add_node(agent_class=agent_class,
- **state)
+ child = self.model.add_node(agent_class=agent_class, **state)
child.add_edge(self)
if self.mate:
child.add_edge(self.mate)
self.mate.offspring += 1
else:
- self.debug('The father has passed away')
+ self.debug("The father has passed away")
self.offspring += 1
self.mate = None
@@ -127,31 +125,33 @@ class Female(Rabbit):
def die(self):
if self.pregnancy is not None:
- self.info('A mother has died carrying a baby!!')
+ self.info("A mother has died carrying a baby!!")
return super().die()
class RandomAccident(BaseAgent):
-
def step(self):
rabbits_alive = self.model.G.number_of_nodes()
if not rabbits_alive:
return self.die()
- prob_death = self.model.get('prob_death', 1e-100)*math.floor(math.log10(max(1, rabbits_alive)))
- self.debug('Killing some rabbits with prob={}!'.format(prob_death))
+ prob_death = self.model.get("prob_death", 1e-100) * math.floor(
+ math.log10(max(1, rabbits_alive))
+ )
+ self.debug("Killing some rabbits with prob={}!".format(prob_death))
for i in self.iter_agents(agent_class=Rabbit):
if i.state_id == i.dead.id:
continue
if self.prob(prob_death):
- self.info('I killed a rabbit: {}'.format(i.id))
+ self.info("I killed a rabbit: {}".format(i.id))
rabbits_alive -= 1
i.die()
- self.debug('Rabbits alive: {}'.format(rabbits_alive))
+ self.debug("Rabbits alive: {}".format(rabbits_alive))
-if __name__ == '__main__':
+if __name__ == "__main__":
from soil import easy
- with easy('rabbits.yml') as sim:
+
+ with easy("rabbits.yml") as sim:
sim.run()
diff --git a/examples/random_delays/random_delays.py b/examples/random_delays/random_delays.py
index 8455e5e..1bed03e 100644
--- a/examples/random_delays/random_delays.py
+++ b/examples/random_delays/random_delays.py
@@ -1,42 +1,43 @@
-'''
+"""
Example of setting a
Example of a fully programmatic simulation, without definition files.
-'''
+"""
from soil import Simulation, agents
from soil.time import Delta
-
class MyAgent(agents.FSM):
- '''
+ """
An agent that first does a ping
- '''
+ """
- defaults = {'pong_counts': 2}
+ defaults = {"pong_counts": 2}
@agents.default_state
@agents.state
def ping(self):
- self.info('Ping')
- return self.pong, Delta(self.random.expovariate(1/16))
+ self.info("Ping")
+ return self.pong, Delta(self.random.expovariate(1 / 16))
@agents.state
def pong(self):
- self.info('Pong')
+ self.info("Pong")
self.pong_counts -= 1
self.info(str(self.pong_counts))
if self.pong_counts < 1:
return self.die()
- return None, Delta(self.random.expovariate(1/16))
+ return None, Delta(self.random.expovariate(1 / 16))
-s = Simulation(name='Programmatic',
- network_agents=[{'agent_class': MyAgent, 'id': 0}],
- topology={'nodes': [{'id': 0}], 'links': []},
- num_trials=1,
- max_time=100,
- agent_class=MyAgent,
- dry_run=True)
+s = Simulation(
+ name="Programmatic",
+ network_agents=[{"agent_class": MyAgent, "id": 0}],
+ topology={"nodes": [{"id": 0}], "links": []},
+ num_trials=1,
+ max_time=100,
+ agent_class=MyAgent,
+ dry_run=True,
+)
envs = s.run()
diff --git a/examples/terrorism/TerroristNetworkModel.py b/examples/terrorism/TerroristNetworkModel.py
index bf5045f..8fa6563 100644
--- a/examples/terrorism/TerroristNetworkModel.py
+++ b/examples/terrorism/TerroristNetworkModel.py
@@ -20,56 +20,83 @@ class TerroristSpreadModel(FSM, Geo):
def __init__(self, model=None, unique_id=0, state=()):
super().__init__(model=model, unique_id=unique_id, state=state)
- self.information_spread_intensity = model.environment_params['information_spread_intensity']
- self.terrorist_additional_influence = model.environment_params['terrorist_additional_influence']
- self.prob_interaction = model.environment_params['prob_interaction']
+ self.information_spread_intensity = model.environment_params[
+ "information_spread_intensity"
+ ]
+ self.terrorist_additional_influence = model.environment_params[
+ "terrorist_additional_influence"
+ ]
+ self.prob_interaction = model.environment_params["prob_interaction"]
- if self['id'] == self.civilian.id: # Civilian
+ if self["id"] == self.civilian.id: # Civilian
self.mean_belief = self.random.uniform(0.00, 0.5)
- elif self['id'] == self.terrorist.id: # Terrorist
+ elif self["id"] == self.terrorist.id: # Terrorist
self.mean_belief = self.random.uniform(0.8, 1.00)
- elif self['id'] == self.leader.id: # Leader
+ elif self["id"] == self.leader.id: # Leader
self.mean_belief = 1.00
else:
- raise Exception('Invalid state id: {}'.format(self['id']))
-
- if 'min_vulnerability' in model.environment_params:
- self.vulnerability = self.random.uniform( model.environment_params['min_vulnerability'], model.environment_params['max_vulnerability'] )
- else :
- self.vulnerability = self.random.uniform( 0, model.environment_params['max_vulnerability'] )
+ raise Exception("Invalid state id: {}".format(self["id"]))
+ if "min_vulnerability" in model.environment_params:
+ self.vulnerability = self.random.uniform(
+ model.environment_params["min_vulnerability"],
+ model.environment_params["max_vulnerability"],
+ )
+ else:
+ self.vulnerability = self.random.uniform(
+ 0, model.environment_params["max_vulnerability"]
+ )
@state
def civilian(self):
neighbours = list(self.get_neighboring_agents(agent_class=TerroristSpreadModel))
if len(neighbours) > 0:
# Only interact with some of the neighbors
- interactions = list(n for n in neighbours if self.random.random() <= self.prob_interaction)
- influence = sum( self.degree(i) for i in interactions )
- mean_belief = sum( i.mean_belief * self.degree(i) / influence for i in interactions )
- mean_belief = mean_belief * self.information_spread_intensity + self.mean_belief * ( 1 - self.information_spread_intensity )
- self.mean_belief = mean_belief * self.vulnerability + self.mean_belief * ( 1 - self.vulnerability )
-
+ interactions = list(
+ n for n in neighbours if self.random.random() <= self.prob_interaction
+ )
+ influence = sum(self.degree(i) for i in interactions)
+ mean_belief = sum(
+ i.mean_belief * self.degree(i) / influence for i in interactions
+ )
+ mean_belief = (
+ mean_belief * self.information_spread_intensity
+ + self.mean_belief * (1 - self.information_spread_intensity)
+ )
+ self.mean_belief = mean_belief * self.vulnerability + self.mean_belief * (
+ 1 - self.vulnerability
+ )
+
if self.mean_belief >= 0.8:
return self.terrorist
@state
def leader(self):
- self.mean_belief = self.mean_belief ** ( 1 - self.terrorist_additional_influence )
- for neighbour in self.get_neighboring_agents(state_id=[self.terrorist.id, self.leader.id]):
+ self.mean_belief = self.mean_belief ** (1 - self.terrorist_additional_influence)
+ for neighbour in self.get_neighboring_agents(
+ state_id=[self.terrorist.id, self.leader.id]
+ ):
if self.betweenness(neighbour) > self.betweenness(self):
return self.terrorist
@state
def terrorist(self):
- neighbours = self.get_agents(state_id=[self.terrorist.id, self.leader.id],
- agent_class=TerroristSpreadModel,
- limit_neighbors=True)
+ neighbours = self.get_agents(
+ state_id=[self.terrorist.id, self.leader.id],
+ agent_class=TerroristSpreadModel,
+ limit_neighbors=True,
+ )
if len(neighbours) > 0:
- influence = sum( self.degree(n) for n in neighbours )
- mean_belief = sum( n.mean_belief * self.degree(n) / influence for n in neighbours )
- mean_belief = mean_belief * self.vulnerability + self.mean_belief * ( 1 - self.vulnerability )
- self.mean_belief = self.mean_belief ** ( 1 - self.terrorist_additional_influence )
+ influence = sum(self.degree(n) for n in neighbours)
+ mean_belief = sum(
+ n.mean_belief * self.degree(n) / influence for n in neighbours
+ )
+ mean_belief = mean_belief * self.vulnerability + self.mean_belief * (
+ 1 - self.vulnerability
+ )
+ self.mean_belief = self.mean_belief ** (
+ 1 - self.terrorist_additional_influence
+ )
# Check if there are any leaders in the group
leaders = list(filter(lambda x: x.state.id == self.leader.id, neighbours))
@@ -82,21 +109,29 @@ class TerroristSpreadModel(FSM, Geo):
return self.leader
def ego_search(self, steps=1, center=False, node=None, **kwargs):
- '''Get a list of nodes in the ego network of *node* of radius *steps*'''
+ """Get a list of nodes in the ego network of *node* of radius *steps*"""
node = as_node(node if node is not None else self)
G = self.subgraph(**kwargs)
return nx.ego_graph(G, node, center=center, radius=steps).nodes()
def degree(self, node, force=False):
node = as_node(node)
- if force or (not hasattr(self.model, '_degree')) or getattr(self.model, '_last_step', 0) < self.now:
+ if (
+ force
+ or (not hasattr(self.model, "_degree"))
+ or getattr(self.model, "_last_step", 0) < self.now
+ ):
self.model._degree = nx.degree_centrality(self.G)
self.model._last_step = self.now
return self.model._degree[node]
def betweenness(self, node, force=False):
node = as_node(node)
- if force or (not hasattr(self.model, '_betweenness')) or getattr(self.model, '_last_step', 0) < self.now:
+ if (
+ force
+ or (not hasattr(self.model, "_betweenness"))
+ or getattr(self.model, "_last_step", 0) < self.now
+ ):
self.model._betweenness = nx.betweenness_centrality(self.G)
self.model._last_step = self.now
return self.model._betweenness[node]
@@ -114,17 +149,20 @@ class TrainingAreaModel(FSM, Geo):
def __init__(self, model=None, unique_id=0, state=()):
super().__init__(model=model, unique_id=unique_id, state=state)
- self.training_influence = model.environment_params['training_influence']
- if 'min_vulnerability' in model.environment_params:
- self.min_vulnerability = model.environment_params['min_vulnerability']
- else: self.min_vulnerability = 0
+ self.training_influence = model.environment_params["training_influence"]
+ if "min_vulnerability" in model.environment_params:
+ self.min_vulnerability = model.environment_params["min_vulnerability"]
+ else:
+ self.min_vulnerability = 0
@default_state
@state
def terrorist(self):
for neighbour in self.get_neighboring_agents(agent_class=TerroristSpreadModel):
if neighbour.vulnerability > self.min_vulnerability:
- neighbour.vulnerability = neighbour.vulnerability ** ( 1 - self.training_influence )
+ neighbour.vulnerability = neighbour.vulnerability ** (
+ 1 - self.training_influence
+ )
class HavenModel(FSM, Geo):
@@ -141,11 +179,12 @@ class HavenModel(FSM, Geo):
def __init__(self, model=None, unique_id=0, state=()):
super().__init__(model=model, unique_id=unique_id, state=state)
- self.haven_influence = model.environment_params['haven_influence']
- if 'min_vulnerability' in model.environment_params:
- self.min_vulnerability = model.environment_params['min_vulnerability']
- else: self.min_vulnerability = 0
- self.max_vulnerability = model.environment_params['max_vulnerability']
+ self.haven_influence = model.environment_params["haven_influence"]
+ if "min_vulnerability" in model.environment_params:
+ self.min_vulnerability = model.environment_params["min_vulnerability"]
+ else:
+ self.min_vulnerability = 0
+ self.max_vulnerability = model.environment_params["max_vulnerability"]
def get_occupants(self, **kwargs):
return self.get_neighboring_agents(agent_class=TerroristSpreadModel, **kwargs)
@@ -158,14 +197,18 @@ class HavenModel(FSM, Geo):
for neighbour in self.get_occupants():
if neighbour.vulnerability > self.min_vulnerability:
- neighbour.vulnerability = neighbour.vulnerability * ( 1 - self.haven_influence )
+ neighbour.vulnerability = neighbour.vulnerability * (
+ 1 - self.haven_influence
+ )
return self.civilian
@state
def terrorist(self):
for neighbour in self.get_occupants():
if neighbour.vulnerability < self.max_vulnerability:
- neighbour.vulnerability = neighbour.vulnerability ** ( 1 - self.haven_influence )
+ neighbour.vulnerability = neighbour.vulnerability ** (
+ 1 - self.haven_influence
+ )
return self.terrorist
@@ -184,10 +227,10 @@ class TerroristNetworkModel(TerroristSpreadModel):
def __init__(self, model=None, unique_id=0, state=()):
super().__init__(model=model, unique_id=unique_id, state=state)
- self.vision_range = model.environment_params['vision_range']
- self.sphere_influence = model.environment_params['sphere_influence']
- self.weight_social_distance = model.environment_params['weight_social_distance']
- self.weight_link_distance = model.environment_params['weight_link_distance']
+ self.vision_range = model.environment_params["vision_range"]
+ self.sphere_influence = model.environment_params["sphere_influence"]
+ self.weight_social_distance = model.environment_params["weight_social_distance"]
+ self.weight_link_distance = model.environment_params["weight_link_distance"]
@state
def terrorist(self):
@@ -201,27 +244,48 @@ class TerroristNetworkModel(TerroristSpreadModel):
def update_relationships(self):
if self.count_neighboring_agents(state_id=self.civilian.id) == 0:
- close_ups = set(self.geo_search(radius=self.vision_range, agent_class=TerroristNetworkModel))
- step_neighbours = set(self.ego_search(self.sphere_influence, agent_class=TerroristNetworkModel, center=False))
- neighbours = set(agent.id for agent in self.get_neighboring_agents(agent_class=TerroristNetworkModel))
+ close_ups = set(
+ self.geo_search(
+ radius=self.vision_range, agent_class=TerroristNetworkModel
+ )
+ )
+ step_neighbours = set(
+ self.ego_search(
+ self.sphere_influence,
+ agent_class=TerroristNetworkModel,
+ center=False,
+ )
+ )
+ neighbours = set(
+ agent.id
+ for agent in self.get_neighboring_agents(
+ agent_class=TerroristNetworkModel
+ )
+ )
search = (close_ups | step_neighbours) - neighbours
for agent in self.get_agents(search):
social_distance = 1 / self.shortest_path_length(agent.id)
- spatial_proximity = ( 1 - self.get_distance(agent.id) )
- prob_new_interaction = self.weight_social_distance * social_distance + self.weight_link_distance * spatial_proximity
- if agent['id'] == agent.civilian.id and self.random.random() < prob_new_interaction:
+ spatial_proximity = 1 - self.get_distance(agent.id)
+ prob_new_interaction = (
+ self.weight_social_distance * social_distance
+ + self.weight_link_distance * spatial_proximity
+ )
+ if (
+ agent["id"] == agent.civilian.id
+ and self.random.random() < prob_new_interaction
+ ):
self.add_edge(agent)
break
def get_distance(self, target):
- source_x, source_y = nx.get_node_attributes(self.G, 'pos')[self.id]
- target_x, target_y = nx.get_node_attributes(self.G, 'pos')[target]
- dx = abs( source_x - target_x )
- dy = abs( source_y - target_y )
- return ( dx ** 2 + dy ** 2 ) ** ( 1 / 2 )
+ source_x, source_y = nx.get_node_attributes(self.G, "pos")[self.id]
+ target_x, target_y = nx.get_node_attributes(self.G, "pos")[target]
+ dx = abs(source_x - target_x)
+ dy = abs(source_y - target_y)
+ return (dx**2 + dy**2) ** (1 / 2)
def shortest_path_length(self, target):
try:
return nx.shortest_path_length(self.G, self.id, target)
except nx.NetworkXNoPath:
- return float('inf')
+ return float("inf")
diff --git a/soil/__init__.py b/soil/__init__.py
index a49462b..92bc79f 100644
--- a/soil/__init__.py
+++ b/soil/__init__.py
@@ -225,6 +225,7 @@ def easy(cfg, pdb=False, debug=False, **kwargs):
except Exception as e:
if os.environ.get("SOIL_POSTMORTEM"):
from .debugging import post_mortem
+
print(traceback.format_exc())
post_mortem()
ex = e
@@ -232,5 +233,6 @@ def easy(cfg, pdb=False, debug=False, **kwargs):
if ex:
raise ex
+
if __name__ == "__main__":
main(do_run=True)
diff --git a/soil/__main__.py b/soil/__main__.py
index 9ad5c4f..0c76791 100644
--- a/soil/__main__.py
+++ b/soil/__main__.py
@@ -1,7 +1,9 @@
from . import main as init_main
+
def main():
init_main(do_run=True)
-if __name__ == '__main__':
+
+if __name__ == "__main__":
init_main(do_run=True)
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index b316caa..714b15e 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -43,9 +43,9 @@ class MetaAgent(ABCMeta):
}
for attr, func in namespace.items():
- if attr == 'step' and inspect.isgeneratorfunction(func):
+ if attr == "step" and inspect.isgeneratorfunction(func):
orig_func = func
- new_nmspc['_MetaAgent__coroutine'] = None
+ new_nmspc["_MetaAgent__coroutine"] = None
@wraps(func)
def func(self):
@@ -62,10 +62,10 @@ class MetaAgent(ABCMeta):
func.is_default = False
new_nmspc[attr] = func
elif (
- isinstance(func, types.FunctionType)
- or isinstance(func, property)
- or isinstance(func, classmethod)
- or attr[0] == "_"
+ isinstance(func, types.FunctionType)
+ or isinstance(func, property)
+ or isinstance(func, classmethod)
+ or attr[0] == "_"
):
new_nmspc[attr] = func
elif attr == "defaults":
@@ -303,7 +303,7 @@ class NetworkAgent(BaseAgent):
return G
def remove_node(self):
- print(f'Removing node for {self.unique_id}: {self.node_id}')
+ print(f"Removing node for {self.unique_id}: {self.node_id}")
self.G.remove_node(self.node_id)
self.node_id = None
diff --git a/soil/environment.py b/soil/environment.py
index fb4823f..8245ca0 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -146,7 +146,7 @@ class BaseEnvironment(Model):
if unique_id is None:
unique_id = self.next_id()
- kwargs['unique_id'] = unique_id
+ kwargs["unique_id"] = unique_id
a = self._agent_from_dict(kwargs)
self.schedule.add(a)
@@ -169,7 +169,9 @@ class BaseEnvironment(Model):
Advance one step in the simulation, and update the data collection and scheduler appropriately
"""
super().step()
- self.logger.info(f"--- Step: {self.schedule.steps:^5} - Time: {self.now:^5} ---")
+ self.logger.info(
+ f"--- Step: {self.schedule.steps:^5} - Time: {self.now:^5} ---"
+ )
self.schedule.step()
self.datacollector.collect(self)
@@ -236,7 +238,7 @@ class NetworkEnvironment(BaseEnvironment):
node_id = agent.get("node_id", None)
if node_id is None:
node_id = network.find_unassigned(self.G, random=self.random)
- self.G.nodes[node_id]['agent'] = None
+ self.G.nodes[node_id]["agent"] = None
agent["node_id"] = node_id
agent["unique_id"] = unique_id
agent["topology"] = self.G
@@ -271,7 +273,7 @@ class NetworkEnvironment(BaseEnvironment):
G=self.G, shuffle=True, random=self.random
)
if node_id is None:
- node_id = f'node_for_{unique_id}'
+ node_id = f"node_for_{unique_id}"
if node_id not in self.G.nodes:
self.G.add_node(node_id)
@@ -280,17 +282,23 @@ class NetworkEnvironment(BaseEnvironment):
self.G.nodes[node_id]["agent"] = None # Reserve
a = self.add_agent(
- unique_id=unique_id, agent_class=agent_class, topology=self.G, node_id=node_id, **kwargs
+ unique_id=unique_id,
+ agent_class=agent_class,
+ topology=self.G,
+ node_id=node_id,
+ **kwargs,
)
a["visible"] = True
return a
def add_agent(self, *args, **kwargs):
a = super().add_agent(*args, **kwargs)
- if 'node_id' in a:
+ if "node_id" in a:
if a.node_id == 24:
- import pdb;pdb.set_trace()
- assert self.G.nodes[a.node_id]['agent'] == a
+ import pdb
+
+ pdb.set_trace()
+ assert self.G.nodes[a.node_id]["agent"] == a
return a
def agent_for_node_id(self, node_id):
diff --git a/soil/exporters.py b/soil/exporters.py
index 405b2f8..6efe70a 100644
--- a/soil/exporters.py
+++ b/soil/exporters.py
@@ -202,7 +202,12 @@ class summary(Exporter):
for (t, df) in self.get_dfs(env):
if not len(df):
continue
- msg = indent(str(df.describe()), ' ')
- logger.info(dedent(f'''
+ msg = indent(str(df.describe()), " ")
+ logger.info(
+ dedent(
+ f"""
Dataframe {t}:
- ''') + msg)
+ """
+ )
+ + msg
+ )
diff --git a/soil/simulation.py b/soil/simulation.py
index fc50ab8..f5738d4 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -226,7 +226,9 @@ Model stats:
)
model.step()
- if model.schedule.time < until: # Simulation ended (no more steps) before the expected time
+ if (
+ model.schedule.time < until
+ ): # Simulation ended (no more steps) before the expected time
model.schedule.time = until
return model
diff --git a/soil/time.py b/soil/time.py
index 26c4259..e7acbac 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -174,7 +174,6 @@ class TimedActivation(BaseScheduler):
agent.alive = False
continue
-
if not getattr(agent, "alive", True):
self.remove(agent)
continue
From 3776c4e5c5958a7389a3ffe65087c28d0d5d533b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Mon, 17 Oct 2022 21:36:21 +0200
Subject: [PATCH 16/39] Refactor
* Removed references to `set_state`
* Split some functionality from `agents` into separate files (`fsm` and
`network_agents`)
* Rename `neighboring_agents` to `neighbors`
* Delete some spurious functions
---
examples/mesa/social_wealth.py | 2 +-
examples/newsspread/newsspread.py | 30 ++-
examples/pubcrawl/pubcrawl.py | 2 +-
examples/terrorism/TerroristNetworkModel.py | 12 +-
soil/agents/BassModel.py | 2 +-
soil/agents/BigMarketModel.py | 8 +-
soil/agents/CounterModel.py | 4 +-
soil/agents/IndependentCascadeModel.py | 2 +-
soil/agents/ModelM2.py | 38 +--
soil/agents/SISaModel.py | 10 +-
soil/agents/SentimentCorrelationModel.py | 8 +-
soil/agents/__init__.py | 271 +-------------------
soil/agents/fsm.py | 133 ++++++++++
soil/agents/network_agents.py | 82 ++++++
tests/test_agents.py | 14 +
tests/test_main.py | 24 +-
16 files changed, 295 insertions(+), 347 deletions(-)
create mode 100644 soil/agents/fsm.py
create mode 100644 soil/agents/network_agents.py
diff --git a/examples/mesa/social_wealth.py b/examples/mesa/social_wealth.py
index b4ae99f..8085543 100644
--- a/examples/mesa/social_wealth.py
+++ b/examples/mesa/social_wealth.py
@@ -58,7 +58,7 @@ class SocialMoneyAgent(NetworkAgent, MoneyAgent):
def give_money(self):
cellmates = set(self.model.grid.get_cell_list_contents([self.pos]))
- friends = set(self.get_neighboring_agents())
+ friends = set(self.get_neighbors())
self.info("Trying to give money")
self.info("Cellmates: ", cellmates)
self.info("Friends: ", friends)
diff --git a/examples/newsspread/newsspread.py b/examples/newsspread/newsspread.py
index f747f8e..bfcdbc9 100644
--- a/examples/newsspread/newsspread.py
+++ b/examples/newsspread/newsspread.py
@@ -8,10 +8,9 @@ class DumbViewer(FSM, NetworkAgent):
its neighbors once it's infected.
"""
- defaults = {
- "prob_neighbor_spread": 0.5,
- "prob_tv_spread": 0.1,
- }
+ prob_neighbor_spread = 0.5
+ prob_tv_spread = 0.1
+ has_been_infected = False
@default_state
@state
@@ -19,10 +18,12 @@ class DumbViewer(FSM, NetworkAgent):
if self["has_tv"]:
if self.prob(self.model["prob_tv_spread"]):
return self.infected
+ if self.has_been_infected:
+ return self.infected
@state
def infected(self):
- for neighbor in self.get_neighboring_agents(state_id=self.neutral.id):
+ for neighbor in self.get_neighbors(state_id=self.neutral.id):
if self.prob(self.model["prob_neighbor_spread"]):
neighbor.infect()
@@ -33,7 +34,7 @@ class DumbViewer(FSM, NetworkAgent):
HerdViewer might not become infected right away
"""
- self.set_state(self.infected)
+ self.has_been_infected = True
class HerdViewer(DumbViewer):
@@ -43,12 +44,12 @@ class HerdViewer(DumbViewer):
def infect(self):
"""Notice again that this is NOT a state. See DumbViewer.infect for reference"""
- infected = self.count_neighboring_agents(state_id=self.infected.id)
- total = self.count_neighboring_agents()
+ infected = self.count_neighbors(state_id=self.infected.id)
+ total = self.count_neighbors()
prob_infect = self.model["prob_neighbor_spread"] * infected / total
self.debug("prob_infect", prob_infect)
if self.prob(prob_infect):
- self.set_state(self.infected)
+ self.has_been_infected = True
class WiseViewer(HerdViewer):
@@ -65,7 +66,7 @@ class WiseViewer(HerdViewer):
@state
def cured(self):
prob_cure = self.model["prob_neighbor_cure"]
- for neighbor in self.get_neighboring_agents(state_id=self.infected.id):
+ for neighbor in self.get_neighbors(state_id=self.infected.id):
if self.prob(prob_cure):
try:
neighbor.cure()
@@ -73,13 +74,14 @@ class WiseViewer(HerdViewer):
self.debug("Viewer {} cannot be cured".format(neighbor.id))
def cure(self):
- self.set_state(self.cured.id)
+ self.has_been_cured = True
@state
def infected(self):
- cured = max(self.count_neighboring_agents(self.cured.id), 1.0)
- infected = max(self.count_neighboring_agents(self.infected.id), 1.0)
+ if self.has_been_cured:
+ return self.cured
+ cured = max(self.count_neighbors(self.cured.id), 1.0)
+ infected = max(self.count_neighbors(self.infected.id), 1.0)
prob_cure = self.model["prob_neighbor_cure"] * (cured / infected)
if self.prob(prob_cure):
return self.cured
- return self.set_state(super().infected)
diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py
index 110a44c..be8a2b4 100644
--- a/examples/pubcrawl/pubcrawl.py
+++ b/examples/pubcrawl/pubcrawl.py
@@ -89,7 +89,7 @@ class Patron(FSM, NetworkAgent):
if self["pub"] != None:
return self.sober_in_pub
self.debug("I am looking for a pub")
- group = list(self.get_neighboring_agents())
+ group = list(self.get_neighbors())
for pub in self.model.available_pubs():
self.debug("We're trying to get into {}: total: {}".format(pub, len(group)))
if self.model.enter(pub, self, *group):
diff --git a/examples/terrorism/TerroristNetworkModel.py b/examples/terrorism/TerroristNetworkModel.py
index 8fa6563..fe3034f 100644
--- a/examples/terrorism/TerroristNetworkModel.py
+++ b/examples/terrorism/TerroristNetworkModel.py
@@ -49,7 +49,7 @@ class TerroristSpreadModel(FSM, Geo):
@state
def civilian(self):
- neighbours = list(self.get_neighboring_agents(agent_class=TerroristSpreadModel))
+ neighbours = list(self.get_neighbors(agent_class=TerroristSpreadModel))
if len(neighbours) > 0:
# Only interact with some of the neighbors
interactions = list(
@@ -73,7 +73,7 @@ class TerroristSpreadModel(FSM, Geo):
@state
def leader(self):
self.mean_belief = self.mean_belief ** (1 - self.terrorist_additional_influence)
- for neighbour in self.get_neighboring_agents(
+ for neighbour in self.get_neighbors(
state_id=[self.terrorist.id, self.leader.id]
):
if self.betweenness(neighbour) > self.betweenness(self):
@@ -158,7 +158,7 @@ class TrainingAreaModel(FSM, Geo):
@default_state
@state
def terrorist(self):
- for neighbour in self.get_neighboring_agents(agent_class=TerroristSpreadModel):
+ for neighbour in self.get_neighbors(agent_class=TerroristSpreadModel):
if neighbour.vulnerability > self.min_vulnerability:
neighbour.vulnerability = neighbour.vulnerability ** (
1 - self.training_influence
@@ -187,7 +187,7 @@ class HavenModel(FSM, Geo):
self.max_vulnerability = model.environment_params["max_vulnerability"]
def get_occupants(self, **kwargs):
- return self.get_neighboring_agents(agent_class=TerroristSpreadModel, **kwargs)
+ return self.get_neighbors(agent_class=TerroristSpreadModel, **kwargs)
@state
def civilian(self):
@@ -243,7 +243,7 @@ class TerroristNetworkModel(TerroristSpreadModel):
return super().leader()
def update_relationships(self):
- if self.count_neighboring_agents(state_id=self.civilian.id) == 0:
+ if self.count_neighbors(state_id=self.civilian.id) == 0:
close_ups = set(
self.geo_search(
radius=self.vision_range, agent_class=TerroristNetworkModel
@@ -258,7 +258,7 @@ class TerroristNetworkModel(TerroristSpreadModel):
)
neighbours = set(
agent.id
- for agent in self.get_neighboring_agents(
+ for agent in self.get_neighbors(
agent_class=TerroristNetworkModel
)
)
diff --git a/soil/agents/BassModel.py b/soil/agents/BassModel.py
index 416063d..4410d82 100644
--- a/soil/agents/BassModel.py
+++ b/soil/agents/BassModel.py
@@ -20,7 +20,7 @@ class BassModel(FSM):
self.sentimentCorrelation = 1
return self.aware
else:
- aware_neighbors = self.get_neighboring_agents(state_id=self.aware.id)
+ aware_neighbors = self.get_neighbors(state_id=self.aware.id)
num_neighbors_aware = len(aware_neighbors)
if self.prob((self["imitation_prob"] * num_neighbors_aware)):
self.sentimentCorrelation = 1
diff --git a/soil/agents/BigMarketModel.py b/soil/agents/BigMarketModel.py
index 5a93b23..e606e0a 100644
--- a/soil/agents/BigMarketModel.py
+++ b/soil/agents/BigMarketModel.py
@@ -24,14 +24,14 @@ class BigMarketModel(FSM):
self.type = ""
if self.id < len(self.enterprises): # Enterprises
- self.set_state(self.enterprise.id)
+ self._set_state(self.enterprise.id)
self.type = "Enterprise"
self.tweet_probability = environment.environment_params[
"tweet_probability_enterprises"
][self.id]
else: # normal users
self.type = "User"
- self.set_state(self.user.id)
+ self._set_state(self.user.id)
self.tweet_probability = environment.environment_params[
"tweet_probability_users"
]
@@ -49,7 +49,7 @@ class BigMarketModel(FSM):
def enterprise(self):
if self.random.random() < self.tweet_probability: # Tweets
- aware_neighbors = self.get_neighboring_agents(
+ aware_neighbors = self.get_neighbors(
state_id=self.number_of_enterprises
) # Nodes neighbour users
for x in aware_neighbors:
@@ -96,7 +96,7 @@ class BigMarketModel(FSM):
] = self.sentiment_about[i]
def userTweets(self, sentiment, enterprise):
- aware_neighbors = self.get_neighboring_agents(
+ aware_neighbors = self.get_neighbors(
state_id=self.number_of_enterprises
) # Nodes neighbours users
for x in aware_neighbors:
diff --git a/soil/agents/CounterModel.py b/soil/agents/CounterModel.py
index 731c61d..6cd41fb 100644
--- a/soil/agents/CounterModel.py
+++ b/soil/agents/CounterModel.py
@@ -14,7 +14,7 @@ class CounterModel(NetworkAgent):
def step(self):
# Outside effects
total = len(list(self.model.schedule._agents))
- neighbors = len(list(self.get_neighboring_agents()))
+ neighbors = len(list(self.get_neighbors()))
self["times"] = self.get("times", 0) + 1
self["neighbors"] = neighbors
self["total"] = total
@@ -33,7 +33,7 @@ class AggregatedCounter(NetworkAgent):
def step(self):
# Outside effects
self["times"] += 1
- neighbors = len(list(self.get_neighboring_agents()))
+ neighbors = len(list(self.get_neighbors()))
self["neighbors"] += neighbors
total = len(list(self.model.schedule.agents))
self["total"] += total
diff --git a/soil/agents/IndependentCascadeModel.py b/soil/agents/IndependentCascadeModel.py
index d3280e0..e332b07 100644
--- a/soil/agents/IndependentCascadeModel.py
+++ b/soil/agents/IndependentCascadeModel.py
@@ -36,7 +36,7 @@ class IndependentCascadeModel(BaseAgent):
# Imitation effects
if self.state["id"] == 0:
- aware_neighbors = self.get_neighboring_agents(state_id=1)
+ aware_neighbors = self.get_neighbors(state_id=1)
for x in aware_neighbors:
if x.state["time_awareness"] == (self.env.now - 1):
aware_neighbors_1_time_step.append(x)
diff --git a/soil/agents/ModelM2.py b/soil/agents/ModelM2.py
index b22cafa..4fac2b8 100644
--- a/soil/agents/ModelM2.py
+++ b/soil/agents/ModelM2.py
@@ -71,7 +71,7 @@ class SpreadModelM2(BaseAgent):
def neutral_behaviour(self):
# Infected
- infected_neighbors = self.get_neighboring_agents(state_id=1)
+ infected_neighbors = self.get_neighbors(state_id=1)
if len(infected_neighbors) > 0:
if self.prob(self.prob_neutral_making_denier):
self.state["id"] = 3 # Vaccinated making denier
@@ -79,7 +79,7 @@ class SpreadModelM2(BaseAgent):
def infected_behaviour(self):
# Neutral
- neutral_neighbors = self.get_neighboring_agents(state_id=0)
+ neutral_neighbors = self.get_neighbors(state_id=0)
for neighbor in neutral_neighbors:
if self.prob(self.prob_infect):
neighbor.state["id"] = 1 # Infected
@@ -87,13 +87,13 @@ class SpreadModelM2(BaseAgent):
def cured_behaviour(self):
# Vaccinate
- neutral_neighbors = self.get_neighboring_agents(state_id=0)
+ neutral_neighbors = self.get_neighbors(state_id=0)
for neighbor in neutral_neighbors:
if self.prob(self.prob_cured_vaccinate_neutral):
neighbor.state["id"] = 3 # Vaccinated
# Cure
- infected_neighbors = self.get_neighboring_agents(state_id=1)
+ infected_neighbors = self.get_neighbors(state_id=1)
for neighbor in infected_neighbors:
if self.prob(self.prob_cured_healing_infected):
neighbor.state["id"] = 2 # Cured
@@ -101,19 +101,19 @@ class SpreadModelM2(BaseAgent):
def vaccinated_behaviour(self):
# Cure
- infected_neighbors = self.get_neighboring_agents(state_id=1)
+ infected_neighbors = self.get_neighbors(state_id=1)
for neighbor in infected_neighbors:
if self.prob(self.prob_cured_healing_infected):
neighbor.state["id"] = 2 # Cured
# Vaccinate
- neutral_neighbors = self.get_neighboring_agents(state_id=0)
+ neutral_neighbors = self.get_neighbors(state_id=0)
for neighbor in neutral_neighbors:
if self.prob(self.prob_cured_vaccinate_neutral):
neighbor.state["id"] = 3 # Vaccinated
# Generate anti-rumor
- infected_neighbors_2 = self.get_neighboring_agents(state_id=1)
+ infected_neighbors_2 = self.get_neighbors(state_id=1)
for neighbor in infected_neighbors_2:
if self.prob(self.prob_generate_anti_rumor):
neighbor.state["id"] = 2 # Cured
@@ -191,7 +191,7 @@ class ControlModelM2(BaseAgent):
self.state["visible"] = False
# Infected
- infected_neighbors = self.get_neighboring_agents(state_id=1)
+ infected_neighbors = self.get_neighbors(state_id=1)
if len(infected_neighbors) > 0:
if self.random(self.prob_neutral_making_denier):
self.state["id"] = 3 # Vaccinated making denier
@@ -199,7 +199,7 @@ class ControlModelM2(BaseAgent):
def infected_behaviour(self):
# Neutral
- neutral_neighbors = self.get_neighboring_agents(state_id=0)
+ neutral_neighbors = self.get_neighbors(state_id=0)
for neighbor in neutral_neighbors:
if self.prob(self.prob_infect):
neighbor.state["id"] = 1 # Infected
@@ -209,13 +209,13 @@ class ControlModelM2(BaseAgent):
self.state["visible"] = True
# Vaccinate
- neutral_neighbors = self.get_neighboring_agents(state_id=0)
+ neutral_neighbors = self.get_neighbors(state_id=0)
for neighbor in neutral_neighbors:
if self.prob(self.prob_cured_vaccinate_neutral):
neighbor.state["id"] = 3 # Vaccinated
# Cure
- infected_neighbors = self.get_neighboring_agents(state_id=1)
+ infected_neighbors = self.get_neighbors(state_id=1)
for neighbor in infected_neighbors:
if self.prob(self.prob_cured_healing_infected):
neighbor.state["id"] = 2 # Cured
@@ -224,47 +224,47 @@ class ControlModelM2(BaseAgent):
self.state["visible"] = True
# Cure
- infected_neighbors = self.get_neighboring_agents(state_id=1)
+ infected_neighbors = self.get_neighbors(state_id=1)
for neighbor in infected_neighbors:
if self.prob(self.prob_cured_healing_infected):
neighbor.state["id"] = 2 # Cured
# Vaccinate
- neutral_neighbors = self.get_neighboring_agents(state_id=0)
+ neutral_neighbors = self.get_neighbors(state_id=0)
for neighbor in neutral_neighbors:
if self.prob(self.prob_cured_vaccinate_neutral):
neighbor.state["id"] = 3 # Vaccinated
# Generate anti-rumor
- infected_neighbors_2 = self.get_neighboring_agents(state_id=1)
+ infected_neighbors_2 = self.get_neighbors(state_id=1)
for neighbor in infected_neighbors_2:
if self.prob(self.prob_generate_anti_rumor):
neighbor.state["id"] = 2 # Cured
def beacon_off_behaviour(self):
self.state["visible"] = False
- infected_neighbors = self.get_neighboring_agents(state_id=1)
+ infected_neighbors = self.get_neighbors(state_id=1)
if len(infected_neighbors) > 0:
self.state["id"] == 5 # Beacon on
def beacon_on_behaviour(self):
self.state["visible"] = False
# Cure (M2 feature added)
- infected_neighbors = self.get_neighboring_agents(state_id=1)
+ infected_neighbors = self.get_neighbors(state_id=1)
for neighbor in infected_neighbors:
if self.prob(self.prob_generate_anti_rumor):
neighbor.state["id"] = 2 # Cured
- neutral_neighbors_infected = neighbor.get_neighboring_agents(state_id=0)
+ neutral_neighbors_infected = neighbor.get_neighbors(state_id=0)
for neighbor in neutral_neighbors_infected:
if self.prob(self.prob_generate_anti_rumor):
neighbor.state["id"] = 3 # Vaccinated
- infected_neighbors_infected = neighbor.get_neighboring_agents(state_id=1)
+ infected_neighbors_infected = neighbor.get_neighbors(state_id=1)
for neighbor in infected_neighbors_infected:
if self.prob(self.prob_generate_anti_rumor):
neighbor.state["id"] = 2 # Cured
# Vaccinate
- neutral_neighbors = self.get_neighboring_agents(state_id=0)
+ neutral_neighbors = self.get_neighbors(state_id=0)
for neighbor in neutral_neighbors:
if self.prob(self.prob_cured_vaccinate_neutral):
neighbor.state["id"] = 3 # Vaccinated
diff --git a/soil/agents/SISaModel.py b/soil/agents/SISaModel.py
index e298e8a..45d9328 100644
--- a/soil/agents/SISaModel.py
+++ b/soil/agents/SISaModel.py
@@ -69,10 +69,10 @@ class SISaModel(FSM):
return self.content
# Infected
- discontent_neighbors = self.count_neighboring_agents(state_id=self.discontent)
+ discontent_neighbors = self.count_neighbors(state_id=self.discontent)
if self.prob(scontent_neighbors * self.neutral_discontent_infected_prob):
return self.discontent
- content_neighbors = self.count_neighboring_agents(state_id=self.content.id)
+ content_neighbors = self.count_neighbors(state_id=self.content.id)
if self.prob(s * self.neutral_content_infected_prob):
return self.content
return self.neutral
@@ -84,7 +84,7 @@ class SISaModel(FSM):
return self.neutral
# Superinfected
- content_neighbors = self.count_neighboring_agents(state_id=self.content.id)
+ content_neighbors = self.count_neighbors(state_id=self.content.id)
if self.prob(s * self.discontent_content):
return self.content
return self.discontent
@@ -96,9 +96,7 @@ class SISaModel(FSM):
return self.neutral
# Superinfected
- discontent_neighbors = self.count_neighboring_agents(
- state_id=self.discontent.id
- )
+ discontent_neighbors = self.count_neighbors(state_id=self.discontent.id)
if self.prob(scontent_neighbors * self.content_discontent):
self.discontent
return self.content
diff --git a/soil/agents/SentimentCorrelationModel.py b/soil/agents/SentimentCorrelationModel.py
index 721d026..751a59a 100644
--- a/soil/agents/SentimentCorrelationModel.py
+++ b/soil/agents/SentimentCorrelationModel.py
@@ -41,25 +41,25 @@ class SentimentCorrelationModel(BaseAgent):
sad_neighbors_1_time_step = []
disgusted_neighbors_1_time_step = []
- angry_neighbors = self.get_neighboring_agents(state_id=1)
+ angry_neighbors = self.get_neighbors(state_id=1)
for x in angry_neighbors:
if x.state["time_awareness"][0] > (self.env.now - 500):
angry_neighbors_1_time_step.append(x)
num_neighbors_angry = len(angry_neighbors_1_time_step)
- joyful_neighbors = self.get_neighboring_agents(state_id=2)
+ joyful_neighbors = self.get_neighbors(state_id=2)
for x in joyful_neighbors:
if x.state["time_awareness"][1] > (self.env.now - 500):
joyful_neighbors_1_time_step.append(x)
num_neighbors_joyful = len(joyful_neighbors_1_time_step)
- sad_neighbors = self.get_neighboring_agents(state_id=3)
+ sad_neighbors = self.get_neighbors(state_id=3)
for x in sad_neighbors:
if x.state["time_awareness"][2] > (self.env.now - 500):
sad_neighbors_1_time_step.append(x)
num_neighbors_sad = len(sad_neighbors_1_time_step)
- disgusted_neighbors = self.get_neighboring_agents(state_id=4)
+ disgusted_neighbors = self.get_neighbors(state_id=4)
for x in disgusted_neighbors:
if x.state["time_awareness"][3] > (self.env.now - 500):
disgusted_neighbors_1_time_step.append(x)
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index 714b15e..9b5736b 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -243,223 +243,6 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
return f"{self.__class__.__name__}({self.unique_id})"
-class NetworkAgent(BaseAgent):
- def __init__(self, *args, topology, node_id, **kwargs):
- super().__init__(*args, **kwargs)
-
- assert topology is not None
- assert node_id is not None
- self.G = topology
- assert self.G
- self.node_id = node_id
-
- def count_neighboring_agents(self, state_id=None, **kwargs):
- return len(self.get_neighboring_agents(state_id=state_id, **kwargs))
-
- def get_neighboring_agents(self, **kwargs):
- return list(self.iter_agents(limit_neighbors=True, **kwargs))
-
- def add_edge(self, other):
- assert self.node_id
- assert other.node_id
- assert self.node_id in self.G.nodes
- assert other.node_id in self.G.nodes
- self.topology.add_edge(self.node_id, other.node_id)
-
- @property
- def node(self):
- return self.topology.nodes[self.node_id]
-
- def iter_agents(self, unique_id=None, *, limit_neighbors=False, **kwargs):
- unique_ids = None
- if isinstance(unique_id, list):
- unique_ids = set(unique_id)
- elif unique_id is not None:
- unique_ids = set(
- [
- unique_id,
- ]
- )
-
- if limit_neighbors:
- neighbor_ids = set()
- for node_id in self.G.neighbors(self.node_id):
- if self.G.nodes[node_id].get("agent") is not None:
- neighbor_ids.add(node_id)
- if unique_ids:
- unique_ids = unique_ids & neighbor_ids
- else:
- unique_ids = neighbor_ids
- if not unique_ids:
- return
- unique_ids = list(unique_ids)
- yield from super().iter_agents(unique_id=unique_ids, **kwargs)
-
- def subgraph(self, center=True, **kwargs):
- include = [self] if center else []
- G = self.G.subgraph(
- n.node_id for n in list(self.get_agents(**kwargs) + include)
- )
- return G
-
- def remove_node(self):
- print(f"Removing node for {self.unique_id}: {self.node_id}")
- self.G.remove_node(self.node_id)
- self.node_id = None
-
- def add_edge(self, other, edge_attr_dict=None, *edge_attrs):
- if self.node_id not in self.G.nodes(data=False):
- raise ValueError(
- "{} not in list of existing agents in the network".format(
- self.unique_id
- )
- )
- if other.node_id not in self.G.nodes(data=False):
- raise ValueError(
- "{} not in list of existing agents in the network".format(other)
- )
-
- self.G.add_edge(
- self.node_id, other.node_id, edge_attr_dict=edge_attr_dict, *edge_attrs
- )
-
- def die(self, remove=True):
- if not self.alive:
- return
- if remove:
- self.remove_node()
- return super().die()
-
-
-def state(name=None):
- def decorator(func, name=None):
- """
- A state function should return either a state id, or a tuple (state_id, when)
- The default value for state_id is the current state id.
- The default value for when is the interval defined in the environment.
- """
- if inspect.isgeneratorfunction(func):
- orig_func = func
-
- @wraps(func)
- def func(self):
- while True:
- if not self._coroutine:
- self._coroutine = orig_func(self)
- try:
- n = next(self._coroutine)
- if n:
- return None, n
- return
- except StopIteration as ex:
- self._coroutine = None
- next_state = ex.value
- if next_state is not None:
- self._set_state(next_state)
- return next_state
-
- func.id = name or func.__name__
- func.is_default = False
- return func
-
- if callable(name):
- return decorator(name)
- else:
- return partial(decorator, name=name)
-
-
-def default_state(func):
- func.is_default = True
- return func
-
-
-class MetaFSM(MetaAgent):
- def __new__(mcls, name, bases, namespace):
- states = {}
- # Re-use states from inherited classes
- default_state = None
- for i in bases:
- if isinstance(i, MetaFSM):
- for state_id, state in i._states.items():
- if state.is_default:
- default_state = state
- states[state_id] = state
-
- # Add new states
- for attr, func in namespace.items():
- if hasattr(func, "id"):
- if func.is_default:
- default_state = func
- states[func.id] = func
-
- namespace.update(
- {
- "_default_state": default_state,
- "_states": states,
- }
- )
-
- return super(MetaFSM, mcls).__new__(
- mcls=mcls, name=name, bases=bases, namespace=namespace
- )
-
-
-class FSM(BaseAgent, metaclass=MetaFSM):
- def __init__(self, **kwargs):
- super(FSM, self).__init__(**kwargs)
- if not hasattr(self, "state_id"):
- if not self._default_state:
- raise ValueError(
- "No default state specified for {}".format(self.unique_id)
- )
- self.state_id = self._default_state.id
-
- self._coroutine = None
- self._set_state(self.state_id)
-
- def step(self):
- self.debug(f"Agent {self.unique_id} @ state {self.state_id}")
- default_interval = super().step()
-
- next_state = self._states[self.state_id](self)
-
- when = None
- try:
- next_state, *when = next_state
- if not when:
- when = None
- elif len(when) == 1:
- when = when[0]
- else:
- raise ValueError(
- "Too many values returned. Only state (and time) allowed"
- )
- except TypeError:
- pass
-
- if next_state is not None:
- self._set_state(next_state)
-
- return when or default_interval
-
- def _set_state(self, state, when=None):
- if hasattr(state, "id"):
- state = state.id
- if state not in self._states:
- raise ValueError("{} is not a valid state".format(state))
- self.state_id = state
- if when is not None:
- self.model.schedule.add(self, when=when)
- return state
-
- def die(self):
- return self.dead, super().die()
-
- @state
- def dead(self):
- return self.die()
-
-
def prob(prob, random):
"""
A true/False uniform distribution with a given probability.
@@ -525,7 +308,7 @@ def calculate_distribution(network_agents=None, agent_class=None):
return network_agents
-def serialize_type(agent_class, known_modules=[], **kwargs):
+def _serialize_type(agent_class, known_modules=[], **kwargs):
if isinstance(agent_class, str):
return agent_class
known_modules += ["soil.agents"]
@@ -534,20 +317,7 @@ def serialize_type(agent_class, known_modules=[], **kwargs):
] # Get the name of the class
-def serialize_definition(network_agents, known_modules=[]):
- """
- When serializing an agent distribution, remove the thresholds, in order
- to avoid cluttering the YAML definition file.
- """
- d = deepcopy(list(network_agents))
- for v in d:
- if "threshold" in v:
- del v["threshold"]
- v["agent_class"] = serialize_type(v["agent_class"], known_modules=known_modules)
- return d
-
-
-def deserialize_type(agent_class, known_modules=[]):
+def _deserialize_type(agent_class, known_modules=[]):
if not isinstance(agent_class, str):
return agent_class
known = known_modules + ["soil.agents", "soil.agents.custom"]
@@ -555,31 +325,6 @@ def deserialize_type(agent_class, known_modules=[]):
return agent_class
-def deserialize_definition(ind, **kwargs):
- d = deepcopy(ind)
- for v in d:
- v["agent_class"] = deserialize_type(v["agent_class"], **kwargs)
- return d
-
-
-def _validate_states(states, topology):
- """Validate states to avoid ignoring states during initialization"""
- states = states or []
- if isinstance(states, dict):
- for x in states:
- assert x in topology.nodes
- else:
- assert len(states) <= len(topology)
- return states
-
-
-def _convert_agent_classs(ind, to_string=False, **kwargs):
- """Convenience method to allow specifying agents by class or class name."""
- if to_string:
- return serialize_definition(ind, **kwargs)
- return deserialize_definition(ind, **kwargs)
-
-
class AgentView(Mapping, Set):
"""A lazy-loaded list of agents."""
@@ -663,7 +408,7 @@ def filter_agents(
state_id = tuple([state_id])
if agent_class is not None:
- agent_class = deserialize_type(agent_class)
+ agent_class = _deserialize_type(agent_class)
try:
agent_class = tuple(agent_class)
except TypeError:
@@ -703,14 +448,6 @@ def from_config(
default = cfg or config.AgentConfig()
if not isinstance(cfg, config.AgentConfig):
cfg = config.AgentConfig(**cfg)
- return _agents_from_config(cfg, topology=topology, random=random)
-
-
-def _agents_from_config(
- cfg: config.AgentConfig, topology: nx.Graph, random
-) -> List[Dict[str, Any]]:
- if cfg and not isinstance(cfg, config.AgentConfig):
- cfg = config.AgentConfig(**cfg)
agents = []
@@ -878,6 +615,8 @@ def _from_distro(
return agents
+from .network_agents import *
+from .fsm import *
from .BassModel import *
from .BigMarketModel import *
from .IndependentCascadeModel import *
diff --git a/soil/agents/fsm.py b/soil/agents/fsm.py
new file mode 100644
index 0000000..729313d
--- /dev/null
+++ b/soil/agents/fsm.py
@@ -0,0 +1,133 @@
+from . import MetaAgent, BaseAgent
+
+from functools import partial
+import inspect
+
+
+def state(name=None):
+ def decorator(func, name=None):
+ """
+ A state function should return either a state id, or a tuple (state_id, when)
+ The default value for state_id is the current state id.
+ The default value for when is the interval defined in the environment.
+ """
+ if inspect.isgeneratorfunction(func):
+ orig_func = func
+
+ @wraps(func)
+ def func(self):
+ while True:
+ if not self._coroutine:
+ self._coroutine = orig_func(self)
+ try:
+ n = next(self._coroutine)
+ if n:
+ return None, n
+ return
+ except StopIteration as ex:
+ self._coroutine = None
+ next_state = ex.value
+ if next_state is not None:
+ self._set_state(next_state)
+ return next_state
+
+ func.id = name or func.__name__
+ func.is_default = False
+ return func
+
+ if callable(name):
+ return decorator(name)
+ else:
+ return partial(decorator, name=name)
+
+
+def default_state(func):
+ func.is_default = True
+ return func
+
+
+class MetaFSM(MetaAgent):
+ def __new__(mcls, name, bases, namespace):
+ states = {}
+ # Re-use states from inherited classes
+ default_state = None
+ for i in bases:
+ if isinstance(i, MetaFSM):
+ for state_id, state in i._states.items():
+ if state.is_default:
+ default_state = state
+ states[state_id] = state
+
+ # Add new states
+ for attr, func in namespace.items():
+ if hasattr(func, "id"):
+ if func.is_default:
+ default_state = func
+ states[func.id] = func
+
+ namespace.update(
+ {
+ "_default_state": default_state,
+ "_states": states,
+ }
+ )
+
+ return super(MetaFSM, mcls).__new__(
+ mcls=mcls, name=name, bases=bases, namespace=namespace
+ )
+
+
+class FSM(BaseAgent, metaclass=MetaFSM):
+ def __init__(self, **kwargs):
+ super(FSM, self).__init__(**kwargs)
+ if not hasattr(self, "state_id"):
+ if not self._default_state:
+ raise ValueError(
+ "No default state specified for {}".format(self.unique_id)
+ )
+ self.state_id = self._default_state.id
+
+ self._coroutine = None
+ self._set_state(self.state_id)
+
+ def step(self):
+ self.debug(f"Agent {self.unique_id} @ state {self.state_id}")
+ default_interval = super().step()
+
+ next_state = self._states[self.state_id](self)
+
+ when = None
+ try:
+ next_state, *when = next_state
+ if not when:
+ when = None
+ elif len(when) == 1:
+ when = when[0]
+ else:
+ raise ValueError(
+ "Too many values returned. Only state (and time) allowed"
+ )
+ except TypeError:
+ pass
+
+ if next_state is not None:
+ self._set_state(next_state)
+
+ return when or default_interval
+
+ def _set_state(self, state, when=None):
+ if hasattr(state, "id"):
+ state = state.id
+ if state not in self._states:
+ raise ValueError("{} is not a valid state".format(state))
+ self.state_id = state
+ if when is not None:
+ self.model.schedule.add(self, when=when)
+ return state
+
+ def die(self):
+ return self.dead, super().die()
+
+ @state
+ def dead(self):
+ return self.die()
diff --git a/soil/agents/network_agents.py b/soil/agents/network_agents.py
new file mode 100644
index 0000000..d9950cf
--- /dev/null
+++ b/soil/agents/network_agents.py
@@ -0,0 +1,82 @@
+from . import BaseAgent
+
+
+class NetworkAgent(BaseAgent):
+ def __init__(self, *args, topology, node_id, **kwargs):
+ super().__init__(*args, **kwargs)
+
+ assert topology is not None
+ assert node_id is not None
+ self.G = topology
+ assert self.G
+ self.node_id = node_id
+
+ def count_neighbors(self, state_id=None, **kwargs):
+ return len(self.get_neighbors(state_id=state_id, **kwargs))
+
+ def get_neighbors(self, **kwargs):
+ return list(self.iter_agents(limit_neighbors=True, **kwargs))
+
+ @property
+ def node(self):
+ return self.G.nodes[self.node_id]
+
+ def iter_agents(self, unique_id=None, *, limit_neighbors=False, **kwargs):
+ unique_ids = None
+ if isinstance(unique_id, list):
+ unique_ids = set(unique_id)
+ elif unique_id is not None:
+ unique_ids = set(
+ [
+ unique_id,
+ ]
+ )
+
+ if limit_neighbors:
+ neighbor_ids = set()
+ for node_id in self.G.neighbors(self.node_id):
+ if self.G.nodes[node_id].get("agent") is not None:
+ neighbor_ids.add(node_id)
+ if unique_ids:
+ unique_ids = unique_ids & neighbor_ids
+ else:
+ unique_ids = neighbor_ids
+ if not unique_ids:
+ return
+ unique_ids = list(unique_ids)
+ yield from super().iter_agents(unique_id=unique_ids, **kwargs)
+
+ def subgraph(self, center=True, **kwargs):
+ include = [self] if center else []
+ G = self.G.subgraph(
+ n.node_id for n in list(self.get_agents(**kwargs) + include)
+ )
+ return G
+
+ def remove_node(self):
+ print(f"Removing node for {self.unique_id}: {self.node_id}")
+ self.G.remove_node(self.node_id)
+ self.node_id = None
+
+ def add_edge(self, other, edge_attr_dict=None, *edge_attrs):
+ if self.node_id not in self.G.nodes(data=False):
+ raise ValueError(
+ "{} not in list of existing agents in the network".format(
+ self.unique_id
+ )
+ )
+ if other.node_id not in self.G.nodes(data=False):
+ raise ValueError(
+ "{} not in list of existing agents in the network".format(other)
+ )
+
+ self.G.add_edge(
+ self.node_id, other.node_id, edge_attr_dict=edge_attr_dict, *edge_attrs
+ )
+
+ def die(self, remove=True):
+ if not self.alive:
+ return None
+ if remove:
+ self.remove_node()
+ return super().die()
diff --git a/tests/test_agents.py b/tests/test_agents.py
index 4006e9d..35526e3 100644
--- a/tests/test_agents.py
+++ b/tests/test_agents.py
@@ -45,3 +45,17 @@ class TestMain(TestCase):
for i in range(5):
t = g.step()
assert t == i
+
+ def test_state_decorator(self):
+ class MyAgent(agents.FSM):
+ run = 0
+ @agents.default_state
+ @agents.state('original')
+ def root(self):
+ self.run += 1
+ e = environment.Environment()
+ a = MyAgent(model=e, unique_id=e.next_id())
+ a.step()
+ assert a.run == 1
+ a.step()
+ assert a.run == 2
diff --git a/tests/test_main.py b/tests/test_main.py
index f2004ad..8f4f97c 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -160,32 +160,12 @@ class TestMain(TestCase):
def test_serialize_agent_class(self):
"""A class from soil.agents should be serialized without the module part"""
- ser = agents.serialize_type(CustomAgent)
+ ser = agents._serialize_type(CustomAgent)
assert ser == "test_main.CustomAgent"
- ser = agents.serialize_type(agents.BaseAgent)
+ ser = agents._serialize_type(agents.BaseAgent)
assert ser == "BaseAgent"
pickle.dumps(ser)
- def test_deserialize_agent_distribution(self):
- agent_distro = [
- {"agent_class": "CounterModel", "weight": 1},
- {"agent_class": "test_main.CustomAgent", "weight": 2},
- ]
- converted = agents.deserialize_definition(agent_distro)
- assert converted[0]["agent_class"] == agents.CounterModel
- assert converted[1]["agent_class"] == CustomAgent
- pickle.dumps(converted)
-
- def test_serialize_agent_distribution(self):
- agent_distro = [
- {"agent_class": agents.CounterModel, "weight": 1},
- {"agent_class": CustomAgent, "weight": 2},
- ]
- converted = agents.serialize_definition(agent_distro)
- assert converted[0]["agent_class"] == "CounterModel"
- assert converted[1]["agent_class"] == "test_main.CustomAgent"
- pickle.dumps(converted)
-
def test_templates(self):
"""Loading a template should result in several configs"""
configs = serialization.load_file(join(EXAMPLES, "template.yml"))
From 159c9a90779ae915400b1940d4eefd1fdcb6b5d3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Tue, 18 Oct 2022 13:11:01 +0200
Subject: [PATCH 17/39] Add events
---
examples/events_and_messages/cars.py | 141 +++++++++++++++++++++++++++
soil/__init__.py | 47 +++++----
soil/agents/__init__.py | 23 ++++-
soil/agents/evented.py | 57 +++++++++++
soil/agents/fsm.py | 15 ++-
soil/debugging.py | 4 +-
soil/environment.py | 18 ++--
soil/events.py | 43 ++++++++
soil/simulation.py | 2 +-
soil/time.py | 20 +++-
tests/test_agents.py | 16 ++-
11 files changed, 342 insertions(+), 44 deletions(-)
create mode 100644 examples/events_and_messages/cars.py
create mode 100644 soil/agents/evented.py
create mode 100644 soil/events.py
diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars.py
new file mode 100644
index 0000000..ecb5b17
--- /dev/null
+++ b/examples/events_and_messages/cars.py
@@ -0,0 +1,141 @@
+from __future__ import annotations
+from soil import *
+from soil import events
+from mesa.space import MultiGrid
+from enum import Enum
+
+
+@dataclass
+class Journey:
+ origin: (int, int)
+ destination: (int, int)
+ tip: float
+
+ passenger: Passenger = None
+ driver: Driver = None
+
+
+class City(EventedEnvironment):
+ def __init__(self, *args, n_cars=1, height=100, width=100, n_passengers=10, agents=None, **kwargs):
+ self.grid = MultiGrid(width=width, height=height, torus=False)
+ if agents is None:
+ agents = []
+ for i in range(n_cars):
+ agents.append({'agent_class': Driver})
+ for i in range(n_passengers):
+ agents.append({'agent_class': Passenger})
+ super().__init__(*args, agents=agents, **kwargs)
+ for agent in self.agents:
+ self.grid.place_agent(agent, (0, 0))
+ self.grid.move_to_empty(agent)
+
+class Driver(Evented, FSM):
+ pos = None
+ journey = None
+ earnings = 0
+
+ def on_receive(self, msg, sender):
+ if self.journey is None and isinstance(msg, Journey) and msg.driver is None:
+ msg.driver = self
+ self.journey = msg
+
+ @default_state
+ @state
+ def wandering(self):
+ target = None
+ self.check_passengers()
+ self.journey = None
+ while self.journey is None:
+ if target is None or not self.move_towards(target):
+ target = self.random.choice(self.model.grid.get_neighborhood(self.pos, moore=False))
+ self.check_passengers()
+ self.check_messages() # This will call on_receive behind the scenes
+ yield Delta(30)
+ try:
+ self.journey = yield self.journey.passenger.ask(self.journey, timeout=60)
+ except events.TimedOut:
+ self.journey = None
+ return
+ return self.driving
+
+ def check_passengers(self):
+ c = self.count_agents(agent_class=Passenger)
+ self.info(f"Passengers left {c}")
+ if not c:
+ self.die()
+
+ @state
+ def driving(self):
+ #Approaching
+ while self.move_towards(self.journey.origin):
+ yield
+ while self.move_towards(self.journey.destination, with_passenger=True):
+ yield
+ self.check_passengers()
+ return self.wandering
+
+ def move_towards(self, target, with_passenger=False):
+ '''Move one cell at a time towards a target'''
+ self.info(f"Moving { self.pos } -> { target }")
+ if target[0] == self.pos[0] and target[1] == self.pos[1]:
+ return False
+
+ next_pos = [self.pos[0], self.pos[1]]
+ for idx in [0, 1]:
+ if self.pos[idx] < target[idx]:
+ next_pos[idx] += 1
+ break
+ if self.pos[idx] > target[idx]:
+ next_pos[idx] -= 1
+ break
+ self.model.grid.move_agent(self, tuple(next_pos))
+ if with_passenger:
+ self.journey.passenger.pos = self.pos # This could be communicated through messages
+ return True
+
+
+class Passenger(Evented, FSM):
+ pos = None
+
+ @default_state
+ @state
+ def asking(self):
+ destination = (self.random.randint(0, self.model.grid.height), self.random.randint(0, self.model.grid.width))
+ self.journey = None
+ journey = Journey(origin=self.pos,
+ destination=destination,
+ tip=self.random.randint(10, 100),
+ passenger=self)
+
+ timeout = 60
+ expiration = self.now + timeout
+ self.model.broadcast(journey, ttl=timeout, sender=self, agent_class=Driver)
+ while not self.journey:
+ self.info(f"Passenger at: { self.pos }. Checking for responses.")
+ try:
+ yield self.received(expiration=expiration)
+ except events.TimedOut:
+ self.info(f"Passenger at: { self.pos }. Asking for journey.")
+ self.model.broadcast(journey, ttl=timeout, sender=self, agent_class=Driver)
+ expiration = self.now + timeout
+ self.check_messages()
+ return self.driving_home
+
+ def on_receive(self, msg, sender):
+ if isinstance(msg, Journey):
+ self.journey = msg
+ return msg
+
+ @state
+ def driving_home(self):
+ while self.pos[0] != self.journey.destination[0] or self.pos[1] != self.journey.destination[1]:
+ yield self.received(timeout=60)
+ self.info("Got home safe!")
+ self.die()
+
+
+simulation = Simulation(model_class=City, model_params={'n_passengers': 2})
+
+if __name__ == "__main__":
+ with easy(simulation) as s:
+ s.run()
diff --git a/soil/__init__.py b/soil/__init__.py
index 92bc79f..b6b62ee 100644
--- a/soil/__init__.py
+++ b/soil/__init__.py
@@ -17,7 +17,7 @@ except NameError:
from .agents import *
from . import agents
from .simulation import *
-from .environment import Environment
+from .environment import Environment, EventedEnvironment
from . import serialization
from .utils import logger
from .time import *
@@ -34,6 +34,9 @@ def main(
pdb=False,
**kwargs,
):
+
+ if isinstance(cfg, Simulation):
+ sim = cfg
import argparse
from . import simulation
@@ -44,7 +47,7 @@ def main(
"file",
type=str,
nargs="?",
- default=cfg,
+ default=cfg if sim is None else '',
help="Configuration file for the simulation (e.g., YAML or JSON)",
)
parser.add_argument(
@@ -150,7 +153,7 @@ def main(
if output is None:
output = args.output
- logger.info("Loading config file: {}".format(args.file))
+
debug = debug or args.debug
@@ -162,19 +165,27 @@ def main(
try:
exp_params = {}
- if not os.path.exists(args.file):
- logger.error("Please, input a valid file")
- return
+ if sim:
+ logger.info("Loading simulation instance")
+ sims = [sim, ]
+ else:
+ logger.info("Loading config file: {}".format(args.file))
+ if not os.path.exists(args.file):
+ logger.error("Please, input a valid file")
+ return
+
+ sims = list(simulation.iter_from_config(
+ args.file,
+ dry_run=args.dry_run,
+ exporters=exporters,
+ parallel=parallel,
+ outdir=output,
+ exporter_params=exp_params,
+ **kwargs,
+ ))
+
+ for sim in sims:
- for sim in simulation.iter_from_config(
- args.file,
- dry_run=args.dry_run,
- exporters=exporters,
- parallel=parallel,
- outdir=output,
- exporter_params=exp_params,
- **kwargs,
- ):
if args.set:
for s in args.set:
k, v = s.split("=", 1)[:2]
@@ -219,7 +230,6 @@ def main(
@contextmanager
def easy(cfg, pdb=False, debug=False, **kwargs):
- ex = None
try:
yield main(cfg, **kwargs)[0]
except Exception as e:
@@ -228,10 +238,7 @@ def easy(cfg, pdb=False, debug=False, **kwargs):
print(traceback.format_exc())
post_mortem()
- ex = e
- finally:
- if ex:
- raise ex
+ raise
if __name__ == "__main__":
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index 9b5736b..c13999f 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -40,23 +40,31 @@ class MetaAgent(ABCMeta):
new_nmspc = {
"_defaults": defaults,
+ "_last_return": None,
+ "_last_except": None,
}
for attr, func in namespace.items():
if attr == "step" and inspect.isgeneratorfunction(func):
orig_func = func
- new_nmspc["_MetaAgent__coroutine"] = None
+ new_nmspc["_coroutine"] = None
@wraps(func)
def func(self):
while True:
- if not self.__coroutine:
- self.__coroutine = orig_func(self)
+ if not self._coroutine:
+ self._coroutine = orig_func(self)
try:
- return next(self.__coroutine)
+ if self._last_except:
+ return self._coroutine.throw(self._last_except)
+ else:
+ return self._coroutine.send(self._last_return)
except StopIteration as ex:
- self.__coroutine = None
+ self._coroutine = None
return ex.value
+ finally:
+ self._last_return = None
+ self._last_except = None
func.id = name or func.__name__
func.is_default = False
@@ -190,6 +198,10 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
def die(self):
self.info(f"agent dying")
self.alive = False
+ try:
+ self.model.schedule.remove(self)
+ except KeyError:
+ pass
return time.NEVER
def step(self):
@@ -617,6 +629,7 @@ def _from_distro(
from .network_agents import *
from .fsm import *
+from .evented import *
from .BassModel import *
from .BigMarketModel import *
from .IndependentCascadeModel import *
diff --git a/soil/agents/evented.py b/soil/agents/evented.py
new file mode 100644
index 0000000..451b570
--- /dev/null
+++ b/soil/agents/evented.py
@@ -0,0 +1,57 @@
+from . import BaseAgent
+from ..events import Message, Tell, Ask, Reply, TimedOut
+from ..time import Cond
+from functools import partial
+from collections import deque
+
+
+class Evented(BaseAgent):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
+ self._inbox = deque()
+ self._received = 0
+ self._processed = 0
+
+
+ def on_receive(self, *args, **kwargs):
+ pass
+
+ def received(self, expiration=None, timeout=None):
+ current = self._received
+ if expiration is None:
+ expiration = float('inf') if timeout is None else self.now + timeout
+
+ if expiration < self.now:
+ raise ValueError("Invalid expiration time")
+
+ def ready(agent):
+ return agent._received > current or agent.now >= expiration
+
+ def value(agent):
+ if agent.now > expiration:
+ raise TimedOut("No message received")
+
+ c = Cond(func=ready, return_func=value)
+ c._checked = True
+ return c
+
+ def tell(self, msg, sender):
+ self._received += 1
+ self._inbox.append(Tell(payload=msg, sender=sender))
+
+ def ask(self, msg, timeout=None):
+ self._received += 1
+ ask = Ask(payload=msg)
+ self._inbox.append(ask)
+ expiration = float('inf') if timeout is None else self.now + timeout
+ return ask.replied(expiration=expiration)
+
+ def check_messages(self):
+ while self._inbox:
+ msg = self._inbox.popleft()
+ self._processed += 1
+ if msg.expired(self.now):
+ continue
+ reply = self.on_receive(msg.payload, sender=msg.sender)
+ if isinstance(msg, Ask):
+ msg.reply = reply
diff --git a/soil/agents/fsm.py b/soil/agents/fsm.py
index 729313d..4b64364 100644
--- a/soil/agents/fsm.py
+++ b/soil/agents/fsm.py
@@ -1,6 +1,6 @@
from . import MetaAgent, BaseAgent
-from functools import partial
+from functools import partial, wraps
import inspect
@@ -19,17 +19,26 @@ def state(name=None):
while True:
if not self._coroutine:
self._coroutine = orig_func(self)
+
try:
- n = next(self._coroutine)
+ if self._last_except:
+ n = self._coroutine.throw(self._last_except)
+ else:
+ n = self._coroutine.send(self._last_return)
if n:
return None, n
- return
+ return n
except StopIteration as ex:
self._coroutine = None
next_state = ex.value
if next_state is not None:
self._set_state(next_state)
return next_state
+ finally:
+ self._last_return = None
+ self._last_except = None
+
+
func.id = name or func.__name__
func.is_default = False
diff --git a/soil/debugging.py b/soil/debugging.py
index f5a43e7..4344df0 100644
--- a/soil/debugging.py
+++ b/soil/debugging.py
@@ -30,9 +30,9 @@ def wrapcmd(func):
class Debug(pdb.Pdb):
def __init__(self, *args, skip_soil=False, **kwargs):
skip = kwargs.get("skip", [])
- skip.append("soil")
- skip.append("contextlib")
if skip_soil:
+ skip.append("soil")
+ skip.append("contextlib")
skip.append("soil.*")
skip.append("mesa.*")
super(Debug, self).__init__(*args, skip=skip, **kwargs)
diff --git a/soil/environment.py b/soil/environment.py
index 8245ca0..926f26f 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -3,7 +3,6 @@ from __future__ import annotations
import os
import sqlite3
import math
-import random
import logging
import inspect
@@ -19,7 +18,7 @@ import networkx as nx
from mesa import Model
from mesa.datacollection import DataCollector
-from . import agents as agentmod, config, serialization, utils, time, network
+from . import agents as agentmod, config, serialization, utils, time, network, events
class BaseEnvironment(Model):
@@ -294,10 +293,6 @@ class NetworkEnvironment(BaseEnvironment):
def add_agent(self, *args, **kwargs):
a = super().add_agent(*args, **kwargs)
if "node_id" in a:
- if a.node_id == 24:
- import pdb
-
- pdb.set_trace()
assert self.G.nodes[a.node_id]["agent"] == a
return a
@@ -316,3 +311,14 @@ class NetworkEnvironment(BaseEnvironment):
Environment = NetworkEnvironment
+
+
+class EventedEnvironment(Environment):
+ def broadcast(self, msg, sender, expiration=None, ttl=None, **kwargs):
+ for agent in self.agents(**kwargs):
+ self.logger.info(f'Telling {repr(agent)}: {msg} ttl={ttl}')
+ try:
+ agent._inbox.append(events.Tell(payload=msg, sender=sender, expiration=expiration if ttl is None else self.now+ttl))
+ except AttributeError:
+ self.info(f'Agent {agent.unique_id} cannot receive events')
+
diff --git a/soil/events.py b/soil/events.py
new file mode 100644
index 0000000..3bc50eb
--- /dev/null
+++ b/soil/events.py
@@ -0,0 +1,43 @@
+from .time import Cond
+from dataclasses import dataclass, field
+from typing import Any
+from uuid import uuid4
+
+class Event:
+ pass
+
+@dataclass
+class Message:
+ payload: Any
+ sender: Any = None
+ expiration: float = None
+ id: int = field(default_factory=uuid4)
+
+ def expired(self, when):
+ return self.expiration is not None and self.expiration < when
+
+class Reply(Message):
+ source: Message
+
+
+class Ask(Message):
+ reply: Message = None
+
+ def replied(self, expiration=None):
+ def ready(agent):
+ return self.reply is not None or agent.now > expiration
+
+ def value(agent):
+ if agent.now > expiration:
+ raise TimedOut(f'No answer received for {self}')
+ return self.reply
+
+ return Cond(func=ready, return_func=value)
+
+
+class Tell(Message):
+ pass
+
+
+class TimedOut(Exception):
+ pass
diff --git a/soil/simulation.py b/soil/simulation.py
index f5738d4..5746e67 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -47,7 +47,7 @@ class Simulation:
max_time: float = float("inf")
max_steps: int = -1
interval: int = 1
- num_trials: int = 3
+ num_trials: int = 1
parallel: Optional[bool] = None
exporters: Optional[List[str]] = field(default_factory=list)
outdir: Optional[str] = None
diff --git a/soil/time.py b/soil/time.py
index e7acbac..ec1dc02 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -45,12 +45,16 @@ class When:
def ready(self, agent):
return self._time <= agent.model.schedule.time
+ def return_value(self, agent):
+ return None
+
class Cond(When):
- def __init__(self, func, delta=1):
+ def __init__(self, func, delta=1, return_func=lambda agent: None):
self._func = func
self._delta = delta
self._checked = False
+ self._return_func = return_func
def next(self, time):
if self._checked:
@@ -64,6 +68,9 @@ class Cond(When):
self._checked = True
return self._func(agent)
+ def return_value(self, agent):
+ return self._return_func(agent)
+
def __eq__(self, other):
return False
@@ -144,14 +151,21 @@ class TimedActivation(BaseScheduler):
ix = 0
+ self.logger.debug(f"Queue length: {len(self._queue)}")
+
while self._queue:
(when, agent) = self._queue[0]
if when > self.time:
break
heappop(self._queue)
if when.ready(agent):
- to_process.append(agent)
+ try:
+ agent._last_return = when.return_value(agent)
+ except Exception as ex:
+ agent._last_except = ex
+
self._next.pop(agent.unique_id, None)
+ to_process.append(agent)
continue
next_time = min(next_time, when.next(self.time))
@@ -175,10 +189,10 @@ class TimedActivation(BaseScheduler):
continue
if not getattr(agent, "alive", True):
- self.remove(agent)
continue
value = returned.next(self.time)
+ agent._last_return = value
if value < self.time:
raise Exception(
diff --git a/tests/test_agents.py b/tests/test_agents.py
index 35526e3..c6a603e 100644
--- a/tests/test_agents.py
+++ b/tests/test_agents.py
@@ -33,18 +33,20 @@ class TestMain(TestCase):
The step function of an agent could be a generator. In that case, the state of the
agent will be resumed after every call to step.
'''
+ a = 0
class Gen(agents.BaseAgent):
def step(self):
- a = 0
+ nonlocal a
for i in range(5):
- yield a
+ yield
a += 1
e = environment.Environment()
g = Gen(model=e, unique_id=e.next_id())
+ e.schedule.add(g)
for i in range(5):
- t = g.step()
- assert t == i
+ e.step()
+ assert a == i
def test_state_decorator(self):
class MyAgent(agents.FSM):
@@ -53,6 +55,12 @@ class TestMain(TestCase):
@agents.state('original')
def root(self):
self.run += 1
+ return self.other
+
+ @agents.state
+ def other(self):
+ self.run += 1
+
e = environment.Environment()
a = MyAgent(model=e, unique_id=e.next_id())
a.step()
From 5fcf610108b36283e38712156d9b05e04c9cc0d8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Tue, 18 Oct 2022 15:02:05 +0200
Subject: [PATCH 18/39] Version 0.30.0rc1
---
soil/VERSION | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/soil/VERSION b/soil/VERSION
index f8d54d4..a87e255 100644
--- a/soil/VERSION
+++ b/soil/VERSION
@@ -1 +1 @@
-0.20.7
\ No newline at end of file
+0.30.0rc1
\ No newline at end of file
From a2fb25c160cb2a0b252ad44d4b07bd970b58dfcc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Tue, 18 Oct 2022 17:00:34 +0200
Subject: [PATCH 19/39] Version 0.30.0rc2
* Fix CLI arguments not being used when easy is passed a simulation instance
* Docs for `examples/events_and_messages/cars.py`
---
CHANGELOG.md | 2 +-
examples/events_and_messages/README.md | 7 ++
examples/events_and_messages/cars.py | 124 +++++++++++++++++++------
soil/VERSION | 2 +-
soil/__init__.py | 8 +-
5 files changed, 108 insertions(+), 35 deletions(-)
create mode 100644 examples/events_and_messages/README.md
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 0ca9fc3..1d17271 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,7 +3,7 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-## [0.3 UNRELEASED]
+## [0.30 UNRELEASED]
### Added
* Simple debugging capabilities in `soil.debugging`, with a custom `pdb.Debugger` subclass that exposes commands to list agents and their status and set breakpoints on states (for FSM agents). Try it with `soil --debug `
* Ability to run
diff --git a/examples/events_and_messages/README.md b/examples/events_and_messages/README.md
new file mode 100644
index 0000000..c5b77df
--- /dev/null
+++ b/examples/events_and_messages/README.md
@@ -0,0 +1,7 @@
+This example can be run like with command-line options, like this:
+
+```bash
+python cars.py --level DEBUG -e summary --csv
+```
+
+This will set the `CSV` (save the agent and model data to a CSV) and `summary` (print the a summary of the data to stdout) exporters, and set the log level to DEBUG.
diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars.py
index ecb5b17..e4fed18 100644
--- a/examples/events_and_messages/cars.py
+++ b/examples/events_and_messages/cars.py
@@ -1,22 +1,63 @@
+"""
+This is an example of a simplified city, where there are Passengers and Drivers that can take those passengers
+from their location to their desired location.
+
+An example scenario could play like the following:
+
+- Drivers start in the `wandering` state, where they wander around the city until they have been assigned a journey
+- Passenger(1) tells every driver that it wants to request a Journey.
+- Each driver receives the request.
+ If Driver(2) is interested in providing the Journey, it asks Passenger(1) to confirm that it accepts Driver(2)'s request
+- When Passenger(1) accepts the request, two things happen:
+ - Passenger(1) changes its state to `driving_home`
+ - Driver(2) starts moving towards the origin of the Journey
+- Once Driver(2) reaches the origin, it starts moving itself and Passenger(1) to the destination of the Journey
+- When Driver(2) reaches the destination (carrying Passenger(1) along):
+ - Driver(2) starts wondering again
+ - Passenger(1) dies, and is removed from the simulation
+- If there are no more passengers available in the simulation, Drivers die
+"""
from __future__ import annotations
from soil import *
from soil import events
from mesa.space import MultiGrid
-from enum import Enum
+# More complex scenarios may use more than one type of message between objects.
+# A common pattern is to use `enum.Enum` to represent state changes in a request.
@dataclass
class Journey:
+ """
+ This represents a request for a journey. Passengers and drivers exchange this object.
+
+ A journey may have a driver assigned or not. If the driver has not been assigned, this
+ object is considered a "request for a journey".
+ """
origin: (int, int)
destination: (int, int)
tip: float
- passenger: Passenger = None
+ passenger: Passenger
driver: Driver = None
class City(EventedEnvironment):
- def __init__(self, *args, n_cars=1, height=100, width=100, n_passengers=10, agents=None, **kwargs):
+ """
+ An environment with a grid where drivers and passengers will be placed.
+
+ The number of drivers and riders is configurable through its parameters:
+
+ :param str n_cars: The total number of drivers to add
+ :param str n_passengers: The number of passengers in the simulation
+ :param list agents: Specific agents to use in the simulation. It overrides the `n_passengers`
+ and `n_cars` params.
+ :param int height: Height of the internal grid
+ :param int width: Width of the internal grid
+ """
+ def __init__(self, *args, n_cars=1, n_passengers=10,
+ height=100, width=100, agents=None,
+ model_reporters=None,
+ **kwargs):
self.grid = MultiGrid(width=width, height=height, torus=False)
if agents is None:
agents = []
@@ -24,53 +65,73 @@ class City(EventedEnvironment):
agents.append({'agent_class': Driver})
for i in range(n_passengers):
agents.append({'agent_class': Passenger})
- super().__init__(*args, agents=agents, **kwargs)
+ model_reporters = model_reporters or {'earnings': 'total_earnings', 'n_passengers': 'number_passengers'}
+ print('REPORTERS', model_reporters)
+ super().__init__(*args, agents=agents, model_reporters=model_reporters, **kwargs)
for agent in self.agents:
self.grid.place_agent(agent, (0, 0))
self.grid.move_to_empty(agent)
+ @property
+ def total_earnings(self):
+ return sum(d.earnings for d in self.agents(agent_class=Driver))
+
+ @property
+ def number_passengers(self):
+ return self.count_agents(agent_class=Passenger)
+
+
class Driver(Evented, FSM):
pos = None
journey = None
earnings = 0
def on_receive(self, msg, sender):
+ '''This is not a state. It will run (and block) every time check_messages is invoked'''
if self.journey is None and isinstance(msg, Journey) and msg.driver is None:
msg.driver = self
self.journey = msg
- @default_state
- @state
- def wandering(self):
- target = None
- self.check_passengers()
- self.journey = None
- while self.journey is None:
- if target is None or not self.move_towards(target):
- target = self.random.choice(self.model.grid.get_neighborhood(self.pos, moore=False))
- self.check_passengers()
- self.check_messages() # This will call on_receive behind the scenes
- yield Delta(30)
- try:
- self.journey = yield self.journey.passenger.ask(self.journey, timeout=60)
- except events.TimedOut:
- self.journey = None
- return
- return self.driving
-
def check_passengers(self):
+ '''If there are no more passengers, stop forever'''
c = self.count_agents(agent_class=Passenger)
self.info(f"Passengers left {c}")
if not c:
self.die()
+ @default_state
+ @state
+ def wandering(self):
+ '''Move around the city until a journey is accepted'''
+ target = None
+ self.check_passengers()
+ self.journey = None
+ while self.journey is None: # No potential journeys detected (see on_receive)
+ if target is None or not self.move_towards(target):
+ target = self.random.choice(self.model.grid.get_neighborhood(self.pos, moore=False))
+
+ self.check_passengers()
+ self.check_messages() # This will call on_receive behind the scenes, and the agent's status will be updated
+ yield Delta(30) # Wait at least 30 seconds before checking again
+
+ try:
+ # Re-send the journey to the passenger, to confirm that we have been selected
+ self.journey = yield self.journey.passenger.ask(self.journey, timeout=60)
+ except events.TimedOut:
+ # No journey has been accepted. Try again
+ self.journey = None
+ return
+
+ return self.driving
+
@state
def driving(self):
- #Approaching
+ '''The journey has been accepted. Pick them up and take them to their destination'''
while self.move_towards(self.journey.origin):
yield
while self.move_towards(self.journey.destination, with_passenger=True):
yield
+ self.earnings += self.journey.tip
self.check_passengers()
return self.wandering
@@ -97,6 +158,14 @@ class Driver(Evented, FSM):
class Passenger(Evented, FSM):
pos = None
+ def on_receive(self, msg, sender):
+ '''This is not a state. It will be run synchronously every time `check_messages` is run'''
+
+ if isinstance(msg, Journey):
+ self.journey = msg
+ return msg
+
+
@default_state
@state
def asking(self):
@@ -121,11 +190,6 @@ class Passenger(Evented, FSM):
self.check_messages()
return self.driving_home
- def on_receive(self, msg, sender):
- if isinstance(msg, Journey):
- self.journey = msg
- return msg
-
@state
def driving_home(self):
while self.pos[0] != self.journey.destination[0] or self.pos[1] != self.journey.destination[1]:
@@ -134,7 +198,7 @@ class Passenger(Evented, FSM):
self.die()
-simulation = Simulation(model_class=City, model_params={'n_passengers': 2})
+simulation = Simulation(name='RideHailing', model_class=City, model_params={'n_passengers': 2})
if __name__ == "__main__":
with easy(simulation) as s:
diff --git a/soil/VERSION b/soil/VERSION
index a87e255..129bfad 100644
--- a/soil/VERSION
+++ b/soil/VERSION
@@ -1 +1 @@
-0.30.0rc1
\ No newline at end of file
+0.30.0rc2
\ No newline at end of file
diff --git a/soil/__init__.py b/soil/__init__.py
index b6b62ee..6382d29 100644
--- a/soil/__init__.py
+++ b/soil/__init__.py
@@ -153,8 +153,6 @@ def main(
if output is None:
output = args.output
-
-
debug = debug or args.debug
if args.pdb or debug:
@@ -167,6 +165,10 @@ def main(
if sim:
logger.info("Loading simulation instance")
+ sim.dry_run = args.dry_run
+ sim.exporters = exporters
+ sim.parallel = parallel
+ sim.outdir = output
sims = [sim, ]
else:
logger.info("Loading config file: {}".format(args.file))
@@ -231,7 +233,7 @@ def main(
@contextmanager
def easy(cfg, pdb=False, debug=False, **kwargs):
try:
- yield main(cfg, **kwargs)[0]
+ yield main(cfg, debug=debug, pdb=pdb, **kwargs)[0]
except Exception as e:
if os.environ.get("SOIL_POSTMORTEM"):
from .debugging import post_mortem
From 2f5e5d0a74177d11f2a99add458ce191220fadae Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Tue, 18 Oct 2022 17:03:40 +0200
Subject: [PATCH 20/39] Black formatting
---
examples/events_and_messages/cars.py | 89 ++++++++++++++++++----------
1 file changed, 59 insertions(+), 30 deletions(-)
diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars.py
index e4fed18..04d7894 100644
--- a/examples/events_and_messages/cars.py
+++ b/examples/events_and_messages/cars.py
@@ -28,11 +28,12 @@ from mesa.space import MultiGrid
@dataclass
class Journey:
"""
- This represents a request for a journey. Passengers and drivers exchange this object.
+ This represents a request for a journey. Passengers and drivers exchange this object.
A journey may have a driver assigned or not. If the driver has not been assigned, this
object is considered a "request for a journey".
"""
+
origin: (int, int)
destination: (int, int)
tip: float
@@ -54,20 +55,33 @@ class City(EventedEnvironment):
:param int height: Height of the internal grid
:param int width: Width of the internal grid
"""
- def __init__(self, *args, n_cars=1, n_passengers=10,
- height=100, width=100, agents=None,
- model_reporters=None,
- **kwargs):
+
+ def __init__(
+ self,
+ *args,
+ n_cars=1,
+ n_passengers=10,
+ height=100,
+ width=100,
+ agents=None,
+ model_reporters=None,
+ **kwargs,
+ ):
self.grid = MultiGrid(width=width, height=height, torus=False)
if agents is None:
agents = []
for i in range(n_cars):
- agents.append({'agent_class': Driver})
+ agents.append({"agent_class": Driver})
for i in range(n_passengers):
- agents.append({'agent_class': Passenger})
- model_reporters = model_reporters or {'earnings': 'total_earnings', 'n_passengers': 'number_passengers'}
- print('REPORTERS', model_reporters)
- super().__init__(*args, agents=agents, model_reporters=model_reporters, **kwargs)
+ agents.append({"agent_class": Passenger})
+ model_reporters = model_reporters or {
+ "earnings": "total_earnings",
+ "n_passengers": "number_passengers",
+ }
+ print("REPORTERS", model_reporters)
+ super().__init__(
+ *args, agents=agents, model_reporters=model_reporters, **kwargs
+ )
for agent in self.agents:
self.grid.place_agent(agent, (0, 0))
self.grid.move_to_empty(agent)
@@ -87,13 +101,13 @@ class Driver(Evented, FSM):
earnings = 0
def on_receive(self, msg, sender):
- '''This is not a state. It will run (and block) every time check_messages is invoked'''
+ """This is not a state. It will run (and block) every time check_messages is invoked"""
if self.journey is None and isinstance(msg, Journey) and msg.driver is None:
msg.driver = self
self.journey = msg
def check_passengers(self):
- '''If there are no more passengers, stop forever'''
+ """If there are no more passengers, stop forever"""
c = self.count_agents(agent_class=Passenger)
self.info(f"Passengers left {c}")
if not c:
@@ -102,17 +116,19 @@ class Driver(Evented, FSM):
@default_state
@state
def wandering(self):
- '''Move around the city until a journey is accepted'''
+ """Move around the city until a journey is accepted"""
target = None
self.check_passengers()
self.journey = None
while self.journey is None: # No potential journeys detected (see on_receive)
if target is None or not self.move_towards(target):
- target = self.random.choice(self.model.grid.get_neighborhood(self.pos, moore=False))
+ target = self.random.choice(
+ self.model.grid.get_neighborhood(self.pos, moore=False)
+ )
self.check_passengers()
- self.check_messages() # This will call on_receive behind the scenes, and the agent's status will be updated
- yield Delta(30) # Wait at least 30 seconds before checking again
+ self.check_messages() # This will call on_receive behind the scenes, and the agent's status will be updated
+ yield Delta(30) # Wait at least 30 seconds before checking again
try:
# Re-send the journey to the passenger, to confirm that we have been selected
@@ -126,7 +142,7 @@ class Driver(Evented, FSM):
@state
def driving(self):
- '''The journey has been accepted. Pick them up and take them to their destination'''
+ """The journey has been accepted. Pick them up and take them to their destination"""
while self.move_towards(self.journey.origin):
yield
while self.move_towards(self.journey.destination, with_passenger=True):
@@ -136,7 +152,7 @@ class Driver(Evented, FSM):
return self.wandering
def move_towards(self, target, with_passenger=False):
- '''Move one cell at a time towards a target'''
+ """Move one cell at a time towards a target"""
self.info(f"Moving { self.pos } -> { target }")
if target[0] == self.pos[0] and target[1] == self.pos[1]:
return False
@@ -151,30 +167,36 @@ class Driver(Evented, FSM):
break
self.model.grid.move_agent(self, tuple(next_pos))
if with_passenger:
- self.journey.passenger.pos = self.pos # This could be communicated through messages
+ self.journey.passenger.pos = (
+ self.pos
+ ) # This could be communicated through messages
return True
-
+
class Passenger(Evented, FSM):
pos = None
def on_receive(self, msg, sender):
- '''This is not a state. It will be run synchronously every time `check_messages` is run'''
+ """This is not a state. It will be run synchronously every time `check_messages` is run"""
if isinstance(msg, Journey):
self.journey = msg
return msg
-
@default_state
@state
def asking(self):
- destination = (self.random.randint(0, self.model.grid.height), self.random.randint(0, self.model.grid.width))
+ destination = (
+ self.random.randint(0, self.model.grid.height),
+ self.random.randint(0, self.model.grid.width),
+ )
self.journey = None
- journey = Journey(origin=self.pos,
- destination=destination,
- tip=self.random.randint(10, 100),
- passenger=self)
+ journey = Journey(
+ origin=self.pos,
+ destination=destination,
+ tip=self.random.randint(10, 100),
+ passenger=self,
+ )
timeout = 60
expiration = self.now + timeout
@@ -185,20 +207,27 @@ class Passenger(Evented, FSM):
yield self.received(expiration=expiration)
except events.TimedOut:
self.info(f"Passenger at: { self.pos }. Asking for journey.")
- self.model.broadcast(journey, ttl=timeout, sender=self, agent_class=Driver)
+ self.model.broadcast(
+ journey, ttl=timeout, sender=self, agent_class=Driver
+ )
expiration = self.now + timeout
self.check_messages()
return self.driving_home
@state
def driving_home(self):
- while self.pos[0] != self.journey.destination[0] or self.pos[1] != self.journey.destination[1]:
+ while (
+ self.pos[0] != self.journey.destination[0]
+ or self.pos[1] != self.journey.destination[1]
+ ):
yield self.received(timeout=60)
self.info("Got home safe!")
self.die()
-simulation = Simulation(name='RideHailing', model_class=City, model_params={'n_passengers': 2})
+simulation = Simulation(
+ name="RideHailing", model_class=City, model_params={"n_passengers": 2}
+)
if __name__ == "__main__":
with easy(simulation) as s:
From cbbaf735381cb0cebfafdd81ef779096938e4921 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Thu, 20 Oct 2022 12:07:56 +0200
Subject: [PATCH 21/39] Fix bug EventedEnvironment
---
soil/environment.py | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/soil/environment.py b/soil/environment.py
index 926f26f..3a48d30 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -318,7 +318,9 @@ class EventedEnvironment(Environment):
for agent in self.agents(**kwargs):
self.logger.info(f'Telling {repr(agent)}: {msg} ttl={ttl}')
try:
- agent._inbox.append(events.Tell(payload=msg, sender=sender, expiration=expiration if ttl is None else self.now+ttl))
+ inbox = agent._inbox
except AttributeError:
- self.info(f'Agent {agent.unique_id} cannot receive events')
+ self.logger.info(f'Agent {agent.unique_id} cannot receive events because it does not have an inbox')
+ continue
+ inbox.append(events.Tell(payload=msg, sender=sender, expiration=expiration if ttl is None else self.now+ttl))
From a1262edd2a54431e6e8a09711e8b274c42c7b05c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Thu, 20 Oct 2022 09:14:50 +0200
Subject: [PATCH 22/39] Refactored time
Treating time and conditions as the same entity was getting confusing, and it
added a lot of unnecessary abstraction in a critical part (the scheduler).
The scheduling queue now has the time as a floating number (faster), the agent
id (for ties) and the condition, as well as the agent. The first three
elements (time, id, condition) can be considered as the "key" for the event.
To allow for agent execution to be "randomized" within every step, a new
parameter has been added to the scheduler, which makes it add a random number to
the key in order to change the ordering.
`EventedAgent.received` now checks the messages before returning control to the
user by default.
---
examples/events_and_messages/cars.py | 12 +-
examples/rabbits/basic/rabbit_agents.py | 2 +-
soil/agents/__init__.py | 20 +--
soil/agents/evented.py | 73 +++++---
soil/agents/network_agents.py | 4 +-
soil/environment.py | 13 +-
soil/events.py | 30 ++--
soil/network.py | 1 -
soil/serialization.py | 2 -
soil/simulation.py | 2 +-
soil/time.py | 219 +++++++++++-------------
tests/test_agents.py | 98 ++++++++++-
tests/test_examples.py | 2 +
tests/test_main.py | 30 ++--
tests/test_network.py | 4 +-
tests/test_time.py | 35 ++--
16 files changed, 324 insertions(+), 223 deletions(-)
diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars.py
index 04d7894..c612f70 100644
--- a/examples/events_and_messages/cars.py
+++ b/examples/events_and_messages/cars.py
@@ -127,7 +127,8 @@ class Driver(Evented, FSM):
)
self.check_passengers()
- self.check_messages() # This will call on_receive behind the scenes, and the agent's status will be updated
+ # This will call on_receive behind the scenes, and the agent's status will be updated
+ self.check_messages()
yield Delta(30) # Wait at least 30 seconds before checking again
try:
@@ -204,6 +205,8 @@ class Passenger(Evented, FSM):
while not self.journey:
self.info(f"Passenger at: { self.pos }. Checking for responses.")
try:
+ # This will call check_messages behind the scenes, and the agent's status will be updated
+ # If you want to avoid that, you can call it with: check=False
yield self.received(expiration=expiration)
except events.TimedOut:
self.info(f"Passenger at: { self.pos }. Asking for journey.")
@@ -211,7 +214,6 @@ class Passenger(Evented, FSM):
journey, ttl=timeout, sender=self, agent_class=Driver
)
expiration = self.now + timeout
- self.check_messages()
return self.driving_home
@state
@@ -220,7 +222,11 @@ class Passenger(Evented, FSM):
self.pos[0] != self.journey.destination[0]
or self.pos[1] != self.journey.destination[1]
):
- yield self.received(timeout=60)
+ try:
+ yield self.received(timeout=60)
+ except events.TimedOut:
+ pass
+
self.info("Got home safe!")
self.die()
diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py
index b28d2e9..4c0981b 100644
--- a/examples/rabbits/basic/rabbit_agents.py
+++ b/examples/rabbits/basic/rabbit_agents.py
@@ -133,7 +133,7 @@ class RandomAccident(BaseAgent):
math.log10(max(1, rabbits_alive))
)
self.debug("Killing some rabbits with prob={}!".format(prob_death))
- for i in self.iter_agents(agent_class=Rabbit):
+ for i in self.get_agents(agent_class=Rabbit):
if i.state_id == i.dead.id:
continue
if self.prob(prob_death):
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index c13999f..a9c1fc3 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -20,12 +20,6 @@ from typing import Dict, List
from .. import serialization, utils, time, config
-def as_node(agent):
- if isinstance(agent, BaseAgent):
- return agent.id
- return agent
-
-
IGNORED_FIELDS = ("model", "logger")
@@ -97,10 +91,6 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
"""
def __init__(self, unique_id, model, name=None, interval=None, **kwargs):
- # Check for REQUIRED arguments
- # Initialize agent parameters
- if isinstance(unique_id, MesaAgent):
- raise Exception()
assert isinstance(unique_id, int)
super().__init__(unique_id=unique_id, model=model)
@@ -207,7 +197,8 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
def step(self):
if not self.alive:
raise time.DeadAgent(self.unique_id)
- return super().step() or time.Delta(self.interval)
+ super().step()
+ return time.Delta(self.interval)
def log(self, message, *args, level=logging.INFO, **kwargs):
if not self.logger.isEnabledFor(level):
@@ -270,6 +261,7 @@ def prob(prob, random):
return r < prob
+
def calculate_distribution(network_agents=None, agent_class=None):
"""
Calculate the threshold values (thresholds for a uniform distribution)
@@ -414,7 +406,7 @@ def filter_agents(
if ids:
f = (agents[aid] for aid in ids if aid in agents)
else:
- f = (a for a in agents.values())
+ f = agents.values()
if state_id is not None and not isinstance(state_id, (tuple, list)):
state_id = tuple([state_id])
@@ -638,6 +630,10 @@ from .SentimentCorrelationModel import *
from .SISaModel import *
from .CounterModel import *
+
+class Agent(NetworkAgent, EventedAgent):
+ '''Default agent class, has both network and event capabilities'''
+
try:
import scipy
from .Geo import Geo
diff --git a/soil/agents/evented.py b/soil/agents/evented.py
index 451b570..340c29a 100644
--- a/soil/agents/evented.py
+++ b/soil/agents/evented.py
@@ -1,57 +1,74 @@
from . import BaseAgent
-from ..events import Message, Tell, Ask, Reply, TimedOut
-from ..time import Cond
+from ..events import Message, Tell, Ask, TimedOut
+from ..time import BaseCond
from functools import partial
from collections import deque
-class Evented(BaseAgent):
+class ReceivedOrTimeout(BaseCond):
+ def __init__(self, agent, expiration=None, timeout=None, check=True, ignore=False, **kwargs):
+ if expiration is None:
+ if timeout is not None:
+ expiration = agent.now + timeout
+ self.expiration = expiration
+ self.ignore = ignore
+ self.check = check
+ super().__init__(**kwargs)
+
+ def expired(self, time):
+ return self.expiration and self.expiration < time
+
+ def ready(self, agent, time):
+ return len(agent._inbox) or self.expired(time)
+
+ def return_value(self, agent):
+ if not self.ignore and self.expired(agent.now):
+ raise TimedOut('No messages received')
+ if self.check:
+ agent.check_messages()
+ return None
+
+ def schedule_next(self, time, delta, first=False):
+ if self._delta is not None:
+ delta = self._delta
+ return (time + delta, self)
+
+ def __repr__(self):
+ return f'ReceivedOrTimeout(expires={self.expiration})'
+
+
+class EventedAgent(BaseAgent):
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._inbox = deque()
- self._received = 0
self._processed = 0
-
def on_receive(self, *args, **kwargs):
pass
- def received(self, expiration=None, timeout=None):
- current = self._received
- if expiration is None:
- expiration = float('inf') if timeout is None else self.now + timeout
+ def received(self, *args, **kwargs):
+ return ReceivedOrTimeout(self, *args, **kwargs)
- if expiration < self.now:
- raise ValueError("Invalid expiration time")
-
- def ready(agent):
- return agent._received > current or agent.now >= expiration
-
- def value(agent):
- if agent.now > expiration:
- raise TimedOut("No message received")
-
- c = Cond(func=ready, return_func=value)
- c._checked = True
- return c
-
- def tell(self, msg, sender):
- self._received += 1
- self._inbox.append(Tell(payload=msg, sender=sender))
+ def tell(self, msg, sender=None):
+ self._inbox.append(Tell(timestamp=self.now, payload=msg, sender=sender))
def ask(self, msg, timeout=None):
- self._received += 1
- ask = Ask(payload=msg)
+ ask = Ask(timestamp=self.now, payload=msg)
self._inbox.append(ask)
expiration = float('inf') if timeout is None else self.now + timeout
return ask.replied(expiration=expiration)
def check_messages(self):
+ changed = False
while self._inbox:
msg = self._inbox.popleft()
self._processed += 1
if msg.expired(self.now):
continue
+ changed = True
reply = self.on_receive(msg.payload, sender=msg.sender)
if isinstance(msg, Ask):
msg.reply = reply
+ return changed
+
+Evented = EventedAgent
diff --git a/soil/agents/network_agents.py b/soil/agents/network_agents.py
index d9950cf..cd57943 100644
--- a/soil/agents/network_agents.py
+++ b/soil/agents/network_agents.py
@@ -54,7 +54,7 @@ class NetworkAgent(BaseAgent):
return G
def remove_node(self):
- print(f"Removing node for {self.unique_id}: {self.node_id}")
+ self.debug(f"Removing node for {self.unique_id}: {self.node_id}")
self.G.remove_node(self.node_id)
self.node_id = None
@@ -80,3 +80,5 @@ class NetworkAgent(BaseAgent):
if remove:
self.remove_node()
return super().die()
+
+NetAgent = NetworkAgent
diff --git a/soil/environment.py b/soil/environment.py
index 3a48d30..4be1625 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -310,17 +310,20 @@ class NetworkEnvironment(BaseEnvironment):
self.add_agent(node_id=node_id, agent_class=a_class, **agent_params)
-Environment = NetworkEnvironment
-
-
-class EventedEnvironment(Environment):
- def broadcast(self, msg, sender, expiration=None, ttl=None, **kwargs):
+class EventedEnvironment(BaseEnvironment):
+ def broadcast(self, msg, sender=None, expiration=None, ttl=None, **kwargs):
for agent in self.agents(**kwargs):
+ if agent == sender:
+ continue
self.logger.info(f'Telling {repr(agent)}: {msg} ttl={ttl}')
try:
inbox = agent._inbox
except AttributeError:
self.logger.info(f'Agent {agent.unique_id} cannot receive events because it does not have an inbox')
continue
+ # Allow for AttributeError exceptions in this part of the code
inbox.append(events.Tell(payload=msg, sender=sender, expiration=expiration if ttl is None else self.now+ttl))
+
+class Environment(NetworkEnvironment, EventedEnvironment):
+ '''Default environment class, has both network and event capabilities'''
diff --git a/soil/events.py b/soil/events.py
index 3bc50eb..25f471a 100644
--- a/soil/events.py
+++ b/soil/events.py
@@ -1,4 +1,4 @@
-from .time import Cond
+from .time import BaseCond
from dataclasses import dataclass, field
from typing import Any
from uuid import uuid4
@@ -11,6 +11,7 @@ class Message:
payload: Any
sender: Any = None
expiration: float = None
+ timestamp: float = None
id: int = field(default_factory=uuid4)
def expired(self, when):
@@ -20,19 +21,28 @@ class Reply(Message):
source: Message
+class ReplyCond(BaseCond):
+ def __init__(self, ask, *args, **kwargs):
+ self._ask = ask
+ super().__init__(*args, **kwargs)
+
+ def ready(self, agent, time):
+ return self._ask.reply is not None or self._ask.expired(time)
+
+ def return_value(self, agent):
+ if self._ask.expired(agent.now):
+ raise TimedOut()
+ return self._ask.reply
+
+ def __repr__(self):
+ return f"ReplyCond({self._ask.id})"
+
+
class Ask(Message):
reply: Message = None
def replied(self, expiration=None):
- def ready(agent):
- return self.reply is not None or agent.now > expiration
-
- def value(agent):
- if agent.now > expiration:
- raise TimedOut(f'No answer received for {self}')
- return self.reply
-
- return Cond(func=ready, return_func=value)
+ return ReplyCond(self)
class Tell(Message):
diff --git a/soil/network.py b/soil/network.py
index be7d96f..a717021 100644
--- a/soil/network.py
+++ b/soil/network.py
@@ -59,7 +59,6 @@ def find_unassigned(G, shuffle=False, random=random):
If node_id is None, a node without an agent_id will be found.
"""
- # TODO: test
candidates = list(G.nodes(data=True))
if shuffle:
random.shuffle(candidates)
diff --git a/soil/serialization.py b/soil/serialization.py
index f0a98df..cd34a02 100644
--- a/soil/serialization.py
+++ b/soil/serialization.py
@@ -221,8 +221,6 @@ def deserialize(type_, value=None, globs=None, **kwargs):
def deserialize_all(names, *args, known_modules=KNOWN_MODULES, **kwargs):
"""Return the list of deserialized objects"""
- # TODO: remove
- print("SERIALIZATION", kwargs)
objects = []
for name in names:
mod = deserialize(name, known_modules=known_modules)
diff --git a/soil/simulation.py b/soil/simulation.py
index 5746e67..75947de 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -66,7 +66,7 @@ class Simulation:
if ignored:
d.setdefault("extra", {}).update(ignored)
if ignored:
- print(f'Warning: Ignoring these parameters (added to "extra"): { ignored }')
+ logger.warning(f'Ignoring these parameters (added to "extra"): { ignored }')
d.update(kwargs)
return cls(**d)
diff --git a/soil/time.py b/soil/time.py
index ec1dc02..7e11201 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -1,10 +1,11 @@
from mesa.time import BaseScheduler
from queue import Empty
-from heapq import heappush, heappop, heapify
+from heapq import heappush, heappop
import math
from inspect import getsource
from numbers import Number
+from textwrap import dedent
from .utils import logger
from mesa import Agent as MesaAgent
@@ -23,65 +24,11 @@ class When:
return time
self._time = time
- def next(self, time):
+ def abs(self, time):
return self._time
- def abs(self, time):
- return self
-
- def __repr__(self):
- return str(f"When({self._time})")
-
- def __lt__(self, other):
- if isinstance(other, Number):
- return self._time < other
- return self._time < other.next(self._time)
-
- def __gt__(self, other):
- if isinstance(other, Number):
- return self._time > other
- return self._time > other.next(self._time)
-
- def ready(self, agent):
- return self._time <= agent.model.schedule.time
-
- def return_value(self, agent):
- return None
-
-
-class Cond(When):
- def __init__(self, func, delta=1, return_func=lambda agent: None):
- self._func = func
- self._delta = delta
- self._checked = False
- self._return_func = return_func
-
- def next(self, time):
- if self._checked:
- return time + self._delta
- return time
-
- def abs(self, time):
- return self
-
- def ready(self, agent):
- self._checked = True
- return self._func(agent)
-
- def return_value(self, agent):
- return self._return_func(agent)
-
- def __eq__(self, other):
- return False
-
- def __lt__(self, other):
- return True
-
- def __gt__(self, other):
- return False
-
- def __repr__(self):
- return str(f'Cond("{getsource(self._func)}")')
+ def schedule_next(self, time, delta, first=False):
+ return (self._time, None)
NEVER = When(INFINITY)
@@ -91,48 +38,94 @@ class Delta(When):
def __init__(self, delta):
self._delta = delta
+ def abs(self, time):
+ return self._time + self._delta
+
def __eq__(self, other):
if isinstance(other, Delta):
return self._delta == other._delta
return False
- def abs(self, time):
- return When(self._delta + time)
-
- def next(self, time):
- return time + self._delta
+ def schedule_next(self, time, delta, first=False):
+ return (time + self._delta, None)
def __repr__(self):
return str(f"Delta({self._delta})")
+class BaseCond:
+ def __init__(self, msg=None, delta=None, eager=False):
+ self._msg = msg
+ self._delta = delta
+ self.eager = eager
+
+ def schedule_next(self, time, delta, first=False):
+ if first and self.eager:
+ return (time, self)
+ if self._delta:
+ delta = self._delta
+ return (time + delta, self)
+
+ def return_value(self, agent):
+ return None
+
+ def __repr__(self):
+ return self._msg or self.__class__.__name__
+
+
+class Cond(BaseCond):
+ def __init__(self, func, *args, **kwargs):
+ self._func = func
+ super().__init__(*args, **kwargs)
+
+ def ready(self, agent, time):
+ return self._func(agent)
+
+ def __repr__(self):
+ if self._msg:
+ return self._msg
+ return str(f'Cond("{dedent(getsource(self._func)).strip()}")')
+
+
class TimedActivation(BaseScheduler):
"""A scheduler which activates each agent when the agent requests.
In each activation, each agent will update its 'next_time'.
"""
- def __init__(self, *args, **kwargs):
+ def __init__(self, *args, shuffle=True, **kwargs):
super().__init__(*args, **kwargs)
self._next = {}
self._queue = []
- self.next_time = 0
+ self._shuffle = shuffle
+ self.step_interval = 1
self.logger = logger.getChild(f"time_{ self.model }")
def add(self, agent: MesaAgent, when=None):
if when is None:
- when = When(self.time)
- elif not isinstance(when, When):
- when = When(when)
- if agent.unique_id in self._agents:
- del self._agents[agent.unique_id]
- if agent.unique_id in self._next:
- self._queue.remove((self._next[agent.unique_id], agent))
- heapify(self._queue)
-
- self._next[agent.unique_id] = when
- heappush(self._queue, (when, agent))
+ when = self.time
+ elif isinstance(when, When):
+ when = when.abs()
+
+ self._schedule(agent, None, when)
super().add(agent)
+ def _schedule(self, agent, condition=None, when=None):
+ if condition:
+ if not when:
+ when, condition = condition.schedule_next(when or self.time,
+ self.step_interval)
+ else:
+ if when is None:
+ when = self.time + self.step_interval
+ condition = None
+ if self._shuffle:
+ key = (when, self.model.random.random(), condition)
+ else:
+ key = (when, agent.unique_id, condition)
+ self._next[agent.unique_id] = key
+ heappush(self._queue, (key, agent))
+
+
def step(self) -> None:
"""
Executes agents in order, one at a time. After each step,
@@ -143,73 +136,59 @@ class TimedActivation(BaseScheduler):
if not self.model.running:
return
- when = NEVER
-
- to_process = []
- skipped = []
- next_time = INFINITY
-
- ix = 0
-
self.logger.debug(f"Queue length: {len(self._queue)}")
while self._queue:
- (when, agent) = self._queue[0]
+ ((when, _id, cond), agent) = self._queue[0]
if when > self.time:
break
+
heappop(self._queue)
- if when.ready(agent):
+ if cond:
+ if not cond.ready(agent, self.time):
+ self._schedule(agent, cond)
+ continue
try:
- agent._last_return = when.return_value(agent)
+ agent._last_return = cond.return_value(agent)
except Exception as ex:
agent._last_except = ex
+ else:
+ agent._last_return = None
+ agent._last_except = None
- self._next.pop(agent.unique_id, None)
- to_process.append(agent)
- continue
-
- next_time = min(next_time, when.next(self.time))
- self._next[agent.unique_id] = next_time
- skipped.append((when, agent))
-
- if self._queue:
- next_time = min(next_time, self._queue[0][0].next(self.time))
-
- self._queue = [*skipped, *self._queue]
-
- for agent in to_process:
self.logger.debug(f"Stepping agent {agent}")
+ self._next.pop(agent.unique_id, None)
try:
- returned = ((agent.step() or Delta(1))).abs(self.time)
+ returned = agent.step()
except DeadAgent:
- if agent.unique_id in self._next:
- del self._next[agent.unique_id]
agent.alive = False
continue
+ # Check status for MESA agents
if not getattr(agent, "alive", True):
continue
- value = returned.next(self.time)
- agent._last_return = value
-
- if value < self.time:
- raise Exception(
- f"Cannot schedule an agent for a time in the past ({when} < {self.time})"
- )
- if value < INFINITY:
- next_time = min(value, next_time)
-
- self._next[agent.unique_id] = returned
- heappush(self._queue, (returned, agent))
+ if returned:
+ next_check = returned.schedule_next(self.time, self.step_interval, first=True)
+ self._schedule(agent, when=next_check[0], condition=next_check[1])
else:
- assert not self._next[agent.unique_id]
+ next_check = (self.time + self.step_interval, None)
+
+ self._schedule(agent)
self.steps += 1
- self.logger.debug(f"Updating time step: {self.time} -> {next_time}")
- self.time = next_time
- if not self._queue or next_time == INFINITY:
+ if not self._queue:
+ self.time = INFINITY
self.model.running = False
return self.time
+
+ next_time = self._queue[0][0][0]
+ if next_time < self.time:
+ raise Exception(
+ f"An agent has been scheduled for a time in the past, there is probably an error ({when} < {self.time})"
+ )
+ self.logger.debug(f"Updating time step: {self.time} -> {next_time}")
+
+ self.time = next_time
diff --git a/tests/test_agents.py b/tests/test_agents.py
index c6a603e..a32d91a 100644
--- a/tests/test_agents.py
+++ b/tests/test_agents.py
@@ -12,12 +12,11 @@ class Dead(agents.FSM):
return self.die()
-class TestMain(TestCase):
+class TestAgents(TestCase):
def test_die_returns_infinity(self):
'''The last step of a dead agent should return time.INFINITY'''
d = Dead(unique_id=0, model=environment.Environment())
- ret = d.step().abs(0)
- print(ret, "next")
+ ret = d.step()
assert ret == stime.NEVER
def test_die_raises_exception(self):
@@ -66,4 +65,95 @@ class TestMain(TestCase):
a.step()
assert a.run == 1
a.step()
- assert a.run == 2
+
+
+ def test_broadcast(self):
+ '''
+ An agent should be able to broadcast messages to every other agent, AND each receiver should be able
+ to process it
+ '''
+ class BCast(agents.Evented):
+ pings_received = 0
+
+ def step(self):
+ print(self.model.broadcast)
+ try:
+ self.model.broadcast('PING')
+ except Exception as ex:
+ print(ex)
+ while True:
+ self.check_messages()
+ yield
+
+ def on_receive(self, msg, sender=None):
+ self.pings_received += 1
+
+ e = environment.EventedEnvironment()
+
+ for i in range(10):
+ e.add_agent(agent_class=BCast)
+ e.step()
+ pings_received = lambda: [a.pings_received for a in e.agents]
+ assert sorted(pings_received()) == list(range(1, 11))
+ e.step()
+ assert all(x==10 for x in pings_received())
+
+ def test_ask_messages(self):
+ '''
+ An agent should be able to ask another agent, and wait for a response.
+ '''
+
+ # #Results depend on ordering (agents are shuffled), so force the first agent
+ pings = []
+ pongs = []
+ responses = []
+
+ class Ping(agents.EventedAgent):
+ def step(self):
+ target_id = (self.unique_id + 1) % self.count_agents()
+ target = self.model.agents[target_id]
+ print('starting')
+ while True:
+ print('Pings: ', pings, responses or not pings, self.model.schedule._queue)
+ if pongs or not pings:
+ pings.append(self.now)
+ response = yield target.ask('PING')
+ responses.append(response)
+ else:
+ print('NOT sending ping')
+ print('Checking msgs')
+ # Do not advance until we have received a message.
+ # warning: it will wait at least until the next time in the simulation
+ yield self.received(check=True)
+ print('done')
+
+ def on_receive(self, msg, sender=None):
+ if msg == 'PING':
+ pongs.append(self.now)
+ return 'PONG'
+
+ e = environment.EventedEnvironment()
+ for i in range(2):
+ e.add_agent(agent_class=Ping)
+ assert e.now == 0
+
+ # There should be a delay of one step between agent 0 and 1
+ # On the first step:
+ # Agent 0 sends a PING, but blocks before a PONG
+ # Agent 1 sends a PONG, and blocks after its PING
+ # After that step, every agent can both receive (there are pending messages) and then send.
+
+ e.step()
+ assert e.now == 1
+ assert pings == [0]
+ assert pongs == []
+
+ e.step()
+ assert e.now == 2
+ assert pings == [0, 1]
+ assert pongs == [1]
+
+ e.step()
+ assert e.now == 3
+ assert pings == [0, 1, 2]
+ assert pongs == [1, 2]
diff --git a/tests/test_examples.py b/tests/test_examples.py
index a0a2bd5..b2d2750 100644
--- a/tests/test_examples.py
+++ b/tests/test_examples.py
@@ -44,6 +44,8 @@ def add_example_tests():
for cfg, path in serialization.load_files(
join(EXAMPLES, "**", "*.yml"),
):
+ if 'soil_output' in path:
+ continue
p = make_example_test(path=path, cfg=config.Config.from_raw(cfg))
fname = os.path.basename(path)
p.__name__ = "test_example_file_%s" % fname
diff --git a/tests/test_main.py b/tests/test_main.py
index 8f4f97c..d100b97 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -172,25 +172,21 @@ class TestMain(TestCase):
assert len(configs) > 0
def test_until(self):
- config = {
- "name": "until_sim",
- "model_params": {
- "network_params": {},
- "agents": {
- "fixed": [
- {
- "agent_class": agents.BaseAgent,
- }
- ]
- },
- },
- "max_time": 2,
- "num_trials": 50,
- }
- s = simulation.from_config(config)
+ n_runs = 0
+
+ class CheckRun(agents.BaseAgent):
+ def step(self):
+ nonlocal n_runs
+ n_runs += 1
+ return super().step()
+
+ n_trials = 50
+ max_time = 2
+ s = simulation.Simulation(model_params={'agents': [{'agent_class': CheckRun}]},
+ num_trials=n_trials, max_time=max_time)
runs = list(s.run_simulation(dry_run=True))
over = list(x.now for x in runs if x.now > 2)
- assert len(runs) == config["num_trials"]
+ assert len(runs) == n_trials
assert len(over) == 0
def test_fsm(self):
diff --git a/tests/test_network.py b/tests/test_network.py
index a860b14..89ff4a0 100644
--- a/tests/test_network.py
+++ b/tests/test_network.py
@@ -72,7 +72,7 @@ class TestNetwork(TestCase):
assert len(env.agents) == 2
assert env.agents[1].count_agents(state_id="normal") == 2
assert env.agents[1].count_agents(state_id="normal", limit_neighbors=True) == 1
- assert env.agents[0].neighbors == 1
+ assert env.agents[0].count_neighbors() == 1
def test_custom_agent_neighbors(self):
"""Allow for search of neighbors with a certain state_id"""
@@ -90,7 +90,7 @@ class TestNetwork(TestCase):
env = s.run_simulation(dry_run=True)[0]
assert env.agents[1].count_agents(state_id="normal") == 2
assert env.agents[1].count_agents(state_id="normal", limit_neighbors=True) == 1
- assert env.agents[0].neighbors == 1
+ assert env.agents[0].count_neighbors() == 1
def test_subgraph(self):
"""An agent should be able to subgraph the global topology"""
diff --git a/tests/test_time.py b/tests/test_time.py
index db16609..458b734 100644
--- a/tests/test_time.py
+++ b/tests/test_time.py
@@ -30,8 +30,9 @@ class TestMain(TestCase):
times_started = []
times_awakened = []
+ times_asleep = []
times = []
- done = 0
+ done = []
class CondAgent(agents.BaseAgent):
@@ -39,36 +40,38 @@ class TestMain(TestCase):
nonlocal done
times_started.append(self.now)
while True:
- yield time.Cond(lambda agent: agent.model.schedule.time >= 10)
+ times_asleep.append(self.now)
+ yield time.Cond(lambda agent: agent.now >= 10,
+ delta=2)
times_awakened.append(self.now)
if self.now >= 10:
break
- done += 1
+ done.append(self.now)
env = environment.Environment(agents=[{'agent_class': CondAgent}])
while env.schedule.time < 11:
- env.step()
times.append(env.now)
+ env.step()
+
assert env.schedule.time == 11
assert times_started == [0]
assert times_awakened == [10]
- assert done == 1
+ assert done == [10]
# The first time will produce the Cond.
- # Since there are no other agents, time will not advance, but the number
- # of steps will.
- assert env.schedule.steps == 12
- assert len(times) == 12
+ assert env.schedule.steps == 6
+ assert len(times) == 6
- while env.schedule.time < 12:
- env.step()
+ while env.schedule.time < 13:
times.append(env.now)
+ env.step()
- assert env.schedule.time == 12
+ assert times == [0, 2, 4, 6, 8, 10, 11]
+ assert env.schedule.time == 13
assert times_started == [0, 11]
- assert times_awakened == [10, 11]
- assert done == 2
+ assert times_awakened == [10]
+ assert done == [10]
# Once more to yield the cond, another one to continue
- assert env.schedule.steps == 14
- assert len(times) == 14
+ assert env.schedule.steps == 7
+ assert len(times) == 7
From b2d48cb4df38d1447f92da7785acc5a2d89a9f89 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Thu, 20 Oct 2022 14:10:34 +0200
Subject: [PATCH 23/39] Add test cases for 'ASK'
---
soil/agents/evented.py | 6 ++---
soil/environment.py | 10 +++++---
soil/time.py | 10 ++++++++
tests/test_agents.py | 55 ++++++++++++++++++++++--------------------
4 files changed, 48 insertions(+), 33 deletions(-)
diff --git a/soil/agents/evented.py b/soil/agents/evented.py
index 340c29a..9b8e144 100644
--- a/soil/agents/evented.py
+++ b/soil/agents/evented.py
@@ -52,11 +52,11 @@ class EventedAgent(BaseAgent):
def tell(self, msg, sender=None):
self._inbox.append(Tell(timestamp=self.now, payload=msg, sender=sender))
- def ask(self, msg, timeout=None):
- ask = Ask(timestamp=self.now, payload=msg)
+ def ask(self, msg, timeout=None, **kwargs):
+ ask = Ask(timestamp=self.now, payload=msg, sender=self)
self._inbox.append(ask)
expiration = float('inf') if timeout is None else self.now + timeout
- return ask.replied(expiration=expiration)
+ return ask.replied(expiration=expiration, **kwargs)
def check_messages(self):
changed = False
diff --git a/soil/environment.py b/soil/environment.py
index 4be1625..ee114e0 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -38,7 +38,7 @@ class BaseEnvironment(Model):
self,
id="unnamed_env",
seed="default",
- schedule=None,
+ schedule_class=time.TimedActivation,
dir_path=None,
interval=1,
agent_class=None,
@@ -58,9 +58,11 @@ class BaseEnvironment(Model):
self.dir_path = dir_path or os.getcwd()
- if schedule is None:
- schedule = time.TimedActivation(self)
- self.schedule = schedule
+ if schedule_class is None:
+ schedule_class = time.TimedActivation
+ else:
+ schedule_class = serialization.deserialize(schedule_class)
+ self.schedule = schedule_class(self)
self.agent_class = agent_class or agentmod.BaseAgent
diff --git a/soil/time.py b/soil/time.py
index 7e11201..6c65cc4 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -192,3 +192,13 @@ class TimedActivation(BaseScheduler):
self.logger.debug(f"Updating time step: {self.time} -> {next_time}")
self.time = next_time
+
+
+class ShuffledTimedActivation(TimedActivation):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, shuffle=True, **kwargs)
+
+
+class OrderedTimedActivation(TimedActivation):
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, shuffle=False, **kwargs)
diff --git a/tests/test_agents.py b/tests/test_agents.py
index a32d91a..0cb7f37 100644
--- a/tests/test_agents.py
+++ b/tests/test_agents.py
@@ -103,7 +103,19 @@ class TestAgents(TestCase):
An agent should be able to ask another agent, and wait for a response.
'''
- # #Results depend on ordering (agents are shuffled), so force the first agent
+ # There are two agents, they try to send pings
+ # This is arguably a very contrived example. In practice, the or
+ # There should be a delay of one step between agent 0 and 1
+ # On the first step:
+ # Agent 0 sends a PING, but blocks before a PONG
+ # Agent 1 detects the PING, responds with a PONG, and blocks after its own PING
+ # After that step, every agent can both receive (there are pending messages) and send.
+ # In each step, for each agent, one message is sent, and another one is received
+ # (although not necessarily in that order).
+
+ # Results depend on ordering (agents are normally shuffled)
+ # so we force the timedactivation not to be shuffled
+
pings = []
pongs = []
responses = []
@@ -114,46 +126,37 @@ class TestAgents(TestCase):
target = self.model.agents[target_id]
print('starting')
while True:
- print('Pings: ', pings, responses or not pings, self.model.schedule._queue)
- if pongs or not pings:
+ if pongs or not pings: #First agent, or anyone after that
pings.append(self.now)
response = yield target.ask('PING')
responses.append(response)
else:
print('NOT sending ping')
print('Checking msgs')
- # Do not advance until we have received a message.
- # warning: it will wait at least until the next time in the simulation
- yield self.received(check=True)
+ # Do not block if we have already received a PING
+ if not self.check_messages():
+ yield self.received()
print('done')
def on_receive(self, msg, sender=None):
if msg == 'PING':
pongs.append(self.now)
return 'PONG'
+ raise Exception("This should never happen")
- e = environment.EventedEnvironment()
+ e = environment.EventedEnvironment(schedule_class=stime.OrderedTimedActivation)
for i in range(2):
e.add_agent(agent_class=Ping)
assert e.now == 0
- # There should be a delay of one step between agent 0 and 1
- # On the first step:
- # Agent 0 sends a PING, but blocks before a PONG
- # Agent 1 sends a PONG, and blocks after its PING
- # After that step, every agent can both receive (there are pending messages) and then send.
- e.step()
- assert e.now == 1
- assert pings == [0]
- assert pongs == []
-
- e.step()
- assert e.now == 2
- assert pings == [0, 1]
- assert pongs == [1]
-
- e.step()
- assert e.now == 3
- assert pings == [0, 1, 2]
- assert pongs == [1, 2]
+ for i in range(5):
+ e.step()
+ time = i + 1
+ assert e.now == time
+ assert len(pings) == 2 * time
+ assert len(pongs) == (2 * time) - 1
+ # Every step between 0 and t appears twice
+ assert sum(pings) == sum(range(time)) * 2
+ # It is the same as pings, without the leading 0
+ assert sum(pongs) == sum(range(time)) * 2
From c09e480d3742d850ed7487eee8cf3c321a2ab381 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Thu, 20 Oct 2022 14:12:10 +0200
Subject: [PATCH 24/39] black formatting
---
examples/events_and_messages/cars.py | 2 +-
examples/terrorism/TerroristNetworkModel.py | 4 +-
soil/__init__.py | 26 ++++++-----
soil/agents/__init__.py | 6 +--
soil/agents/evented.py | 11 +++--
soil/agents/fsm.py | 2 -
soil/agents/network_agents.py | 1 +
soil/environment.py | 18 +++++---
soil/events.py | 3 ++
soil/time.py | 12 ++---
tests/test_agents.py | 49 +++++++++++----------
tests/test_examples.py | 2 +-
tests/test_main.py | 7 ++-
tests/test_time.py | 19 ++++----
14 files changed, 90 insertions(+), 72 deletions(-)
diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars.py
index c612f70..00e2632 100644
--- a/examples/events_and_messages/cars.py
+++ b/examples/events_and_messages/cars.py
@@ -128,7 +128,7 @@ class Driver(Evented, FSM):
self.check_passengers()
# This will call on_receive behind the scenes, and the agent's status will be updated
- self.check_messages()
+ self.check_messages()
yield Delta(30) # Wait at least 30 seconds before checking again
try:
diff --git a/examples/terrorism/TerroristNetworkModel.py b/examples/terrorism/TerroristNetworkModel.py
index fe3034f..2da9d8f 100644
--- a/examples/terrorism/TerroristNetworkModel.py
+++ b/examples/terrorism/TerroristNetworkModel.py
@@ -258,9 +258,7 @@ class TerroristNetworkModel(TerroristSpreadModel):
)
neighbours = set(
agent.id
- for agent in self.get_neighbors(
- agent_class=TerroristNetworkModel
- )
+ for agent in self.get_neighbors(agent_class=TerroristNetworkModel)
)
search = (close_ups | step_neighbours) - neighbours
for agent in self.get_agents(search):
diff --git a/soil/__init__.py b/soil/__init__.py
index 6382d29..3894897 100644
--- a/soil/__init__.py
+++ b/soil/__init__.py
@@ -47,7 +47,7 @@ def main(
"file",
type=str,
nargs="?",
- default=cfg if sim is None else '',
+ default=cfg if sim is None else "",
help="Configuration file for the simulation (e.g., YAML or JSON)",
)
parser.add_argument(
@@ -169,22 +169,26 @@ def main(
sim.exporters = exporters
sim.parallel = parallel
sim.outdir = output
- sims = [sim, ]
+ sims = [
+ sim,
+ ]
else:
logger.info("Loading config file: {}".format(args.file))
if not os.path.exists(args.file):
logger.error("Please, input a valid file")
return
- sims = list(simulation.iter_from_config(
- args.file,
- dry_run=args.dry_run,
- exporters=exporters,
- parallel=parallel,
- outdir=output,
- exporter_params=exp_params,
- **kwargs,
- ))
+ sims = list(
+ simulation.iter_from_config(
+ args.file,
+ dry_run=args.dry_run,
+ exporters=exporters,
+ parallel=parallel,
+ outdir=output,
+ exporter_params=exp_params,
+ **kwargs,
+ )
+ )
for sim in sims:
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index a9c1fc3..9cf168a 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -197,7 +197,7 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
def step(self):
if not self.alive:
raise time.DeadAgent(self.unique_id)
- super().step()
+ super().step()
return time.Delta(self.interval)
def log(self, message, *args, level=logging.INFO, **kwargs):
@@ -261,7 +261,6 @@ def prob(prob, random):
return r < prob
-
def calculate_distribution(network_agents=None, agent_class=None):
"""
Calculate the threshold values (thresholds for a uniform distribution)
@@ -632,7 +631,8 @@ from .CounterModel import *
class Agent(NetworkAgent, EventedAgent):
- '''Default agent class, has both network and event capabilities'''
+ """Default agent class, has both network and event capabilities"""
+
try:
import scipy
diff --git a/soil/agents/evented.py b/soil/agents/evented.py
index 9b8e144..22e1191 100644
--- a/soil/agents/evented.py
+++ b/soil/agents/evented.py
@@ -6,7 +6,9 @@ from collections import deque
class ReceivedOrTimeout(BaseCond):
- def __init__(self, agent, expiration=None, timeout=None, check=True, ignore=False, **kwargs):
+ def __init__(
+ self, agent, expiration=None, timeout=None, check=True, ignore=False, **kwargs
+ ):
if expiration is None:
if timeout is not None:
expiration = agent.now + timeout
@@ -23,7 +25,7 @@ class ReceivedOrTimeout(BaseCond):
def return_value(self, agent):
if not self.ignore and self.expired(agent.now):
- raise TimedOut('No messages received')
+ raise TimedOut("No messages received")
if self.check:
agent.check_messages()
return None
@@ -34,7 +36,7 @@ class ReceivedOrTimeout(BaseCond):
return (time + delta, self)
def __repr__(self):
- return f'ReceivedOrTimeout(expires={self.expiration})'
+ return f"ReceivedOrTimeout(expires={self.expiration})"
class EventedAgent(BaseAgent):
@@ -55,7 +57,7 @@ class EventedAgent(BaseAgent):
def ask(self, msg, timeout=None, **kwargs):
ask = Ask(timestamp=self.now, payload=msg, sender=self)
self._inbox.append(ask)
- expiration = float('inf') if timeout is None else self.now + timeout
+ expiration = float("inf") if timeout is None else self.now + timeout
return ask.replied(expiration=expiration, **kwargs)
def check_messages(self):
@@ -71,4 +73,5 @@ class EventedAgent(BaseAgent):
msg.reply = reply
return changed
+
Evented = EventedAgent
diff --git a/soil/agents/fsm.py b/soil/agents/fsm.py
index 4b64364..8e3f8d8 100644
--- a/soil/agents/fsm.py
+++ b/soil/agents/fsm.py
@@ -38,8 +38,6 @@ def state(name=None):
self._last_return = None
self._last_except = None
-
-
func.id = name or func.__name__
func.is_default = False
return func
diff --git a/soil/agents/network_agents.py b/soil/agents/network_agents.py
index cd57943..090a3a4 100644
--- a/soil/agents/network_agents.py
+++ b/soil/agents/network_agents.py
@@ -81,4 +81,5 @@ class NetworkAgent(BaseAgent):
self.remove_node()
return super().die()
+
NetAgent = NetworkAgent
diff --git a/soil/environment.py b/soil/environment.py
index ee114e0..aa61d43 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -313,19 +313,27 @@ class NetworkEnvironment(BaseEnvironment):
class EventedEnvironment(BaseEnvironment):
- def broadcast(self, msg, sender=None, expiration=None, ttl=None, **kwargs):
+ def broadcast(self, msg, sender=None, expiration=None, ttl=None, **kwargs):
for agent in self.agents(**kwargs):
if agent == sender:
continue
- self.logger.info(f'Telling {repr(agent)}: {msg} ttl={ttl}')
+ self.logger.info(f"Telling {repr(agent)}: {msg} ttl={ttl}")
try:
inbox = agent._inbox
except AttributeError:
- self.logger.info(f'Agent {agent.unique_id} cannot receive events because it does not have an inbox')
+ self.logger.info(
+ f"Agent {agent.unique_id} cannot receive events because it does not have an inbox"
+ )
continue
# Allow for AttributeError exceptions in this part of the code
- inbox.append(events.Tell(payload=msg, sender=sender, expiration=expiration if ttl is None else self.now+ttl))
+ inbox.append(
+ events.Tell(
+ payload=msg,
+ sender=sender,
+ expiration=expiration if ttl is None else self.now + ttl,
+ )
+ )
class Environment(NetworkEnvironment, EventedEnvironment):
- '''Default environment class, has both network and event capabilities'''
+ """Default environment class, has both network and event capabilities"""
diff --git a/soil/events.py b/soil/events.py
index 25f471a..82beaff 100644
--- a/soil/events.py
+++ b/soil/events.py
@@ -3,9 +3,11 @@ from dataclasses import dataclass, field
from typing import Any
from uuid import uuid4
+
class Event:
pass
+
@dataclass
class Message:
payload: Any
@@ -17,6 +19,7 @@ class Message:
def expired(self, when):
return self.expiration is not None and self.expiration < when
+
class Reply(Message):
source: Message
diff --git a/soil/time.py b/soil/time.py
index 6c65cc4..6dc39af 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -105,15 +105,16 @@ class TimedActivation(BaseScheduler):
when = self.time
elif isinstance(when, When):
when = when.abs()
-
+
self._schedule(agent, None, when)
super().add(agent)
def _schedule(self, agent, condition=None, when=None):
if condition:
if not when:
- when, condition = condition.schedule_next(when or self.time,
- self.step_interval)
+ when, condition = condition.schedule_next(
+ when or self.time, self.step_interval
+ )
else:
if when is None:
when = self.time + self.step_interval
@@ -125,7 +126,6 @@ class TimedActivation(BaseScheduler):
self._next[agent.unique_id] = key
heappush(self._queue, (key, agent))
-
def step(self) -> None:
"""
Executes agents in order, one at a time. After each step,
@@ -170,7 +170,9 @@ class TimedActivation(BaseScheduler):
continue
if returned:
- next_check = returned.schedule_next(self.time, self.step_interval, first=True)
+ next_check = returned.schedule_next(
+ self.time, self.step_interval, first=True
+ )
self._schedule(agent, when=next_check[0], condition=next_check[1])
else:
next_check = (self.time + self.step_interval, None)
diff --git a/tests/test_agents.py b/tests/test_agents.py
index 0cb7f37..76606cf 100644
--- a/tests/test_agents.py
+++ b/tests/test_agents.py
@@ -14,31 +14,32 @@ class Dead(agents.FSM):
class TestAgents(TestCase):
def test_die_returns_infinity(self):
- '''The last step of a dead agent should return time.INFINITY'''
+ """The last step of a dead agent should return time.INFINITY"""
d = Dead(unique_id=0, model=environment.Environment())
ret = d.step()
assert ret == stime.NEVER
def test_die_raises_exception(self):
- '''A dead agent should raise an exception if it is stepped after death'''
+ """A dead agent should raise an exception if it is stepped after death"""
d = Dead(unique_id=0, model=environment.Environment())
d.step()
with pytest.raises(stime.DeadAgent):
d.step()
-
def test_agent_generator(self):
- '''
+ """
The step function of an agent could be a generator. In that case, the state of the
agent will be resumed after every call to step.
- '''
+ """
a = 0
+
class Gen(agents.BaseAgent):
def step(self):
nonlocal a
for i in range(5):
yield
a += 1
+
e = environment.Environment()
g = Gen(model=e, unique_id=e.next_id())
e.schedule.add(g)
@@ -50,8 +51,9 @@ class TestAgents(TestCase):
def test_state_decorator(self):
class MyAgent(agents.FSM):
run = 0
+
@agents.default_state
- @agents.state('original')
+ @agents.state("original")
def root(self):
self.run += 1
return self.other
@@ -66,19 +68,19 @@ class TestAgents(TestCase):
assert a.run == 1
a.step()
-
def test_broadcast(self):
- '''
+ """
An agent should be able to broadcast messages to every other agent, AND each receiver should be able
to process it
- '''
+ """
+
class BCast(agents.Evented):
pings_received = 0
def step(self):
print(self.model.broadcast)
try:
- self.model.broadcast('PING')
+ self.model.broadcast("PING")
except Exception as ex:
print(ex)
while True:
@@ -87,7 +89,7 @@ class TestAgents(TestCase):
def on_receive(self, msg, sender=None):
self.pings_received += 1
-
+
e = environment.EventedEnvironment()
for i in range(10):
@@ -96,12 +98,12 @@ class TestAgents(TestCase):
pings_received = lambda: [a.pings_received for a in e.agents]
assert sorted(pings_received()) == list(range(1, 11))
e.step()
- assert all(x==10 for x in pings_received())
+ assert all(x == 10 for x in pings_received())
def test_ask_messages(self):
- '''
+ """
An agent should be able to ask another agent, and wait for a response.
- '''
+ """
# There are two agents, they try to send pings
# This is arguably a very contrived example. In practice, the or
@@ -124,24 +126,24 @@ class TestAgents(TestCase):
def step(self):
target_id = (self.unique_id + 1) % self.count_agents()
target = self.model.agents[target_id]
- print('starting')
+ print("starting")
while True:
- if pongs or not pings: #First agent, or anyone after that
+ if pongs or not pings: # First agent, or anyone after that
pings.append(self.now)
- response = yield target.ask('PING')
+ response = yield target.ask("PING")
responses.append(response)
else:
- print('NOT sending ping')
- print('Checking msgs')
+ print("NOT sending ping")
+ print("Checking msgs")
# Do not block if we have already received a PING
if not self.check_messages():
- yield self.received()
- print('done')
+ yield self.received()
+ print("done")
def on_receive(self, msg, sender=None):
- if msg == 'PING':
+ if msg == "PING":
pongs.append(self.now)
- return 'PONG'
+ return "PONG"
raise Exception("This should never happen")
e = environment.EventedEnvironment(schedule_class=stime.OrderedTimedActivation)
@@ -149,7 +151,6 @@ class TestAgents(TestCase):
e.add_agent(agent_class=Ping)
assert e.now == 0
-
for i in range(5):
e.step()
time = i + 1
diff --git a/tests/test_examples.py b/tests/test_examples.py
index b2d2750..f589ecb 100644
--- a/tests/test_examples.py
+++ b/tests/test_examples.py
@@ -44,7 +44,7 @@ def add_example_tests():
for cfg, path in serialization.load_files(
join(EXAMPLES, "**", "*.yml"),
):
- if 'soil_output' in path:
+ if "soil_output" in path:
continue
p = make_example_test(path=path, cfg=config.Config.from_raw(cfg))
fname = os.path.basename(path)
diff --git a/tests/test_main.py b/tests/test_main.py
index d100b97..677421a 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -182,8 +182,11 @@ class TestMain(TestCase):
n_trials = 50
max_time = 2
- s = simulation.Simulation(model_params={'agents': [{'agent_class': CheckRun}]},
- num_trials=n_trials, max_time=max_time)
+ s = simulation.Simulation(
+ model_params={"agents": [{"agent_class": CheckRun}]},
+ num_trials=n_trials,
+ max_time=max_time,
+ )
runs = list(s.run_simulation(dry_run=True))
over = list(x.now for x in runs if x.now > 2)
assert len(runs) == n_trials
diff --git a/tests/test_time.py b/tests/test_time.py
index 458b734..7fdab0b 100644
--- a/tests/test_time.py
+++ b/tests/test_time.py
@@ -2,11 +2,12 @@ from unittest import TestCase
from soil import time, agents, environment
+
class TestMain(TestCase):
def test_cond(self):
- '''
+ """
A condition should match a When if the concition is True
- '''
+ """
t = time.Cond(lambda t: True)
f = time.Cond(lambda t: False)
@@ -16,17 +17,16 @@ class TestMain(TestCase):
assert w is not f
def test_cond(self):
- '''
+ """
Comparing a Cond to a Delta should always return False
- '''
+ """
c = time.Cond(lambda t: False)
d = time.Delta(1)
assert c is not d
def test_cond_env(self):
- '''
- '''
+ """ """
times_started = []
times_awakened = []
@@ -35,21 +35,18 @@ class TestMain(TestCase):
done = []
class CondAgent(agents.BaseAgent):
-
def step(self):
nonlocal done
times_started.append(self.now)
while True:
times_asleep.append(self.now)
- yield time.Cond(lambda agent: agent.now >= 10,
- delta=2)
+ yield time.Cond(lambda agent: agent.now >= 10, delta=2)
times_awakened.append(self.now)
if self.now >= 10:
break
done.append(self.now)
- env = environment.Environment(agents=[{'agent_class': CondAgent}])
-
+ env = environment.Environment(agents=[{"agent_class": CondAgent}])
while env.schedule.time < 11:
times.append(env.now)
From 9a7b62e88ec6f0f0ec331965522555e0661ac590 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Thu, 20 Oct 2022 14:12:34 +0200
Subject: [PATCH 25/39] Release 0.30.0rc3
---
soil/VERSION | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/soil/VERSION b/soil/VERSION
index 129bfad..2a41704 100644
--- a/soil/VERSION
+++ b/soil/VERSION
@@ -1 +1 @@
-0.30.0rc2
\ No newline at end of file
+0.30.0rc3
\ No newline at end of file
From d3cee18635f682b08821b98e0304ea51f506e1f3 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Thu, 20 Oct 2022 14:47:28 +0200
Subject: [PATCH 26/39] Add seed to cars example
---
examples/events_and_messages/cars.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars.py
index 00e2632..0f819c4 100644
--- a/examples/events_and_messages/cars.py
+++ b/examples/events_and_messages/cars.py
@@ -232,7 +232,10 @@ class Passenger(Evented, FSM):
simulation = Simulation(
- name="RideHailing", model_class=City, model_params={"n_passengers": 2}
+ name="RideHailing",
+ model_class=City,
+ model_params={"n_passengers": 2},
+ seed="carsSeed",
)
if __name__ == "__main__":
From 2869b1e1e61e3fe682f390d199ed254b4ab58771 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Sun, 13 Nov 2022 20:31:05 +0100
Subject: [PATCH 27/39] Clean-up
* Removed old/unnecessary models
* Added a `simulation.{iter_}from_py` method to load simulations from python
files
* Changed tests of examples to run programmatic simulations
* Fixed programmatic examples
---
README.md | 61 +++--
docs/configuration.rst | 262 -------------------
docs/example.yml | 53 ++--
docs/index.rst | 5 -
docs/installation.rst | 6 +-
docs/make.bat | 2 +-
docs/mesa.rst | 22 ++
docs/quickstart.yml | 55 ++--
docs/soil_tutorial.rst | 12 +-
examples/custom_timeouts/custom_timeouts.py | 35 ++-
examples/events_and_messages/cars.py | 6 +-
examples/mesa/server.py | 3 +-
examples/mesa/social_wealth.py | 2 +-
examples/programmatic/programmatic.py | 38 ++-
examples/pubcrawl/pubcrawl.py | 4 +-
examples/rabbits/basic/rabbit_agents.py | 4 +-
examples/random_delays/random_delays.py | 6 +-
examples/terrorism/TerroristNetworkModel.py | 12 +-
examples/tutorial/soil_tutorial.ipynb | 12 +-
soil/VERSION | 2 +-
soil/__init__.py | 5 +
soil/agents/BassModel.py | 4 +-
soil/agents/BigMarketModel.py | 118 ---------
soil/agents/Geo.py | 8 +-
soil/agents/IndependentCascadeModel.py | 56 ++--
soil/agents/ModelM2.py | 270 --------------------
soil/agents/SISaModel.py | 42 +--
soil/agents/SentimentCorrelationModel.py | 115 ---------
soil/agents/__init__.py | 15 +-
soil/agents/network_agents.py | 5 +-
soil/config.py | 9 +-
soil/datacollection.py | 17 +-
soil/environment.py | 86 ++++---
soil/exporters.py | 71 ++++-
soil/network.py | 2 +-
soil/serialization.py | 5 +-
soil/simulation.py | 47 +++-
soil/time.py | 7 +-
soil/utils.py | 12 +-
tests/test_config.py | 37 ++-
tests/test_examples.py | 66 ++---
41 files changed, 499 insertions(+), 1100 deletions(-)
delete mode 100644 docs/configuration.rst
create mode 100644 docs/mesa.rst
delete mode 100644 soil/agents/BigMarketModel.py
delete mode 100644 soil/agents/ModelM2.py
delete mode 100644 soil/agents/SentimentCorrelationModel.py
diff --git a/README.md b/README.md
index 8bcca61..2ad76be 100644
--- a/README.md
+++ b/README.md
@@ -5,8 +5,46 @@ Learn how to run your own simulations with our [documentation](http://soilsim.re
Follow our [tutorial](examples/tutorial/soil_tutorial.ipynb) to develop your own agent models.
+**Note**: Mesa 0.30 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/migration_0.30.rst)
-# Changes in version 0.3
+## SOIL vs MESA
+
+SOIL is a batteries-included platform that builds on top of MESA and provides the following out of the box:
+
+* Integration with (social) networks
+* The ability to more easily assign agents to your model (and optionally to its network):
+ * Assigning agents to nodes, and vice versa
+ * Using a description (e.g., 2 agents of type `Foo`, 10% of the network should be agents of type `Bar`)
+* **Several types of abstractions for agents**:
+ * Finite state machine, where methods can be turned into a state
+ * Network agents, which have convenience methods to access the model's topology
+ * Generator-based agents, whose state is paused though a `yield` and resumed on the next step
+* **Reporting and data collection**:
+ * Soil models include data collection and record some data by default (# of agents, state of each agent, etc.)
+ * All data collected are exported by default to a SQLite database and a description file
+ * Options to export to other formats, such as CSV, or defining your own exporters
+ * A summary of the data collected is shown in the command line, for easy inspection
+* **An event-based scheduler**
+ * Agents can be explicit about when their next time/step should be, and not all agents run in every step. This avoids unnecessary computation.
+ * Time intervals between each step are flexible.
+ * There are primitives to specify when the next execution of an agent should be (or conditions)
+* **Actor-inspired** message-passing
+* A simulation runner (`soil.Simulation`) that can:
+ * Run models in parallel
+ * Save results to different formats
+* Simulation configuration files
+* A command line interface (`soil`), to run multiple
+* An integrated debugger (`soil --debug`) with custom functions to print agent states and break at specific states
+
+Nevertheless, most features in SOIL have been designed to integrate with plain Mesa.
+For instance, it should be possible to run a `mesa.Model` models using a `soil.Simulation` and the `soil` CLI, or to integrate the `soil.TimedActivation` scheduler on a `mesa.Model`.
+
+Note that some combinations of `mesa` and `soil` components, while technically possible, are much less useful or even wrong.
+For instance, you may add any `soil.agent` agent (except for the `soil.NetworkAgent`, as it needs a topology) on a regular `mesa.Model` with a vanilla scheduler from `mesa.time`.
+But in that case the agents will not get any of the advanced event-based scheduling, and most agent behaviors that depend on that will greatly vary.
+
+
+## Changes in version 0.3
Version 0.3 came packed with many changes to provide much better integration with MESA.
For a long time, we tried to keep soil backwards-compatible, but it turned out to be a big endeavour and the resulting code was less readable.
@@ -18,27 +56,6 @@ If you have an older Soil simulation, you have two options:
* Update the necessary configuration files and code. You may use the examples in the `examples` folder for reference, as well as the documentation.
* Keep using a previous `soil` version.
-## Mesa compatibility
-
-Soil is in the process of becoming fully compatible with MESA.
-The idea is to provide a set of modular classes and functions that extend the functionality of mesa, whilst staying compatible.
-In the end, it should be possible to add regular mesa agents to a soil simulation, or use a soil agent within a mesa simulation/model.
-
-This is a non-exhaustive list of tasks to achieve compatibility:
-
-- [ ] Integrate `soil.Simulation` with mesa's runners:
- - [ ] `soil.Simulation` could mimic/become a `mesa.batchrunner`
-- [ ] Integrate `soil.Environment` with `mesa.Model`:
- - [x] `Soil.Environment` inherits from `mesa.Model`
- - [x] `Soil.Environment` includes a Mesa-like Scheduler (see the `soil.time` module.
- - [ ] Allow for `mesa.Model` to be used in a simulation.
-- [ ] Integrate `soil.Agent` with `mesa.Agent`:
- - [x] Rename agent.id to unique_id?
- - [x] mesa agents can be used in soil simulations (see `examples/mesa`)
-- [ ] Provide examples
- - [ ] Using mesa modules in a soil simulation
- - [ ] Using soil modules in a mesa simulation
-- [ ] Document the new APIs and usage
## Citation
diff --git a/docs/configuration.rst b/docs/configuration.rst
deleted file mode 100644
index 223fbbc..0000000
--- a/docs/configuration.rst
+++ /dev/null
@@ -1,262 +0,0 @@
-Configuring a simulation
-------------------------
-
-There are two ways to configure a simulation: programmatically and with a configuration file.
-In both cases, the parameters used are the same.
-The advantage of a configuration file is that it is a clean declarative description, and it makes it easier to reproduce.
-
-Simulation configuration files can be formatted in ``json`` or ``yaml`` and they define all the parameters of a simulation.
-Here's an example (``example.yml``).
-
-.. literalinclude:: example.yml
- :language: yaml
-
-
-This example configuration will run three trials (``num_trials``) of a simulation containing a randomly generated network (``network_params``).
-The 100 nodes in the network will be SISaModel agents (``network_agents.agent_class``), which is an agent behavior that is included in Soil.
-10% of the agents (``weight=1``) will start in the content state, 10% in the discontent state, and the remaining 80% (``weight=8``) in the neutral state.
-All agents will have access to the environment (``environment_params``), which only contains one variable, ``prob_infected``.
-The state of the agents will be updated every 2 seconds (``interval``).
-
-Now run the simulation with the command line tool:
-
-.. code:: bash
-
- soil example.yml
-
-Once the simulation finishes, its results will be stored in a folder named ``MyExampleSimulation``.
-Three types of objects are saved by default: a pickle of the simulation; a ``YAML`` representation of the simulation (which can be used to re-launch it); and for every trial, a ``sqlite`` file with the content of the state of every network node and the environment parameters at every step of the simulation.
-
-
-.. code::
-
- soil_output
- └── MyExampleSimulation
- ├── MyExampleSimulation.dumped.yml
- ├── MyExampleSimulation.simulation.pickle
- ├── MyExampleSimulation_trial_0.db.sqlite
- ├── MyExampleSimulation_trial_1.db.sqlite
- └── MyExampleSimulation_trial_2.db.sqlite
-
-
-You may also ask soil to export the states in a ``csv`` file, and the network in gephi format (``gexf``).
-
-Network
-=======
-
-The network topology for the simulation can be loaded from an existing network file or generated with one of the random network generation methods from networkx.
-
-Loading a network
-#################
-
-To load an existing network, specify its path in the configuration:
-
-.. code:: yaml
-
- ---
- network_params:
- path: /tmp/mynetwork.gexf
-
-Soil will try to guess what networkx method to use to read the file based on its extension.
-However, we only test using ``gexf`` files.
-
-For simple networks, you may also include them in the configuration itself using , using the ``topology`` parameter like so:
-
-.. code:: yaml
-
- ---
- topology:
- nodes:
- - id: First
- - id: Second
- links:
- - source: First
- target: Second
-
-
-Generating a random network
-###########################
-
-To generate a random network using one of networkx's built-in methods, specify the `graph generation algorithm `_ and other parameters.
-For example, the following configuration is equivalent to :code:`nx.complete_graph(n=100)`:
-
-.. code:: yaml
-
- network_params:
- generator: complete_graph
- n: 100
-
-Environment
-============
-
-The environment is the place where the shared state of the simulation is stored.
-That means both global parameters, such as the probability of disease outbreak.
-But it also means other data, such as a map, or a network topology that connects multiple agents.
-As a result, it is also typical to add custom functions in an environment that help agents interact with each other and with the state of the simulation.
-
-Last but not least, an environment controls when and how its agents will be executed.
-By default, soil environments incorporate a ``soil.time.TimedActivation`` model for agent execution (more on this on the following section).
-
-Soil environments are very similar, and often interchangeable with, mesa models (``mesa.Model``).
-
-A configuration may specify the initial value of the environment parameters:
-
-.. code:: yaml
-
- environment_params:
- daily_probability_of_earthquake: 0.001
- number_of_earthquakes: 0
-
-All agents have access to the environment (and its parameters).
-
-In some scenarios, it is useful to have a custom environment, to provide additional methods or to control the way agents update environment state.
-For example, if our agents play the lottery, the environment could provide a method to decide whether the agent wins, instead of leaving it to the agent.
-
-Agents
-======
-
-Agents are a way of modelling behavior.
-Agents can be characterized with two variables: agent type (``agent_class``) and state.
-The agent type is a ``soil.Agent`` class, which contains the code that encapsulates the behavior of the agent.
-The state is a set of variables, which may change during the simulation, and that the code may use to control the behavior.
-All agents provide a ``step`` method either explicitly or implicitly (by inheriting it from a superclass), which controls how the agent will behave in each step of the simulation.
-
-When and how agent steps are executed in a simulation depends entirely on the ``environment``.
-Most environments will internally use a scheduler (``mesa.time.BaseScheduler``), which controls the activation of agents.
-
-In soil, we generally used the ``soil.time.TimedActivation`` scheduler, which allows agents to specify when their next activation will happen, defaulting to a
-
-When an agent's step is executed (generally, every ``interval`` seconds), the agent has access to its state and the environment.
-Through the environment, it can access the network topology and the state of other agents.
-
-There are two types of agents according to how they are added to the simulation: network agents and environment agent.
-
-Network Agents
-##############
-
-Network agents are attached to a node in the topology.
-The configuration file allows you to specify how agents will be mapped to topology nodes.
-
-The simplest way is to specify a single type of agent.
-Hence, every node in the network will be associated to an agent of that type.
-
-.. code:: yaml
-
- agent_class: SISaModel
-
-It is also possible to add more than one type of agent to the simulation.
-
-To control the ratio of each type (using the ``weight`` property).
-For instance, with following configuration, it is five times more likely for a node to be assigned a CounterModel type than a SISaModel type.
-
-.. code:: yaml
-
- network_agents:
- - agent_class: SISaModel
- weight: 1
- - agent_class: CounterModel
- weight: 5
-
-The third option is to specify the type of agent on the node itself, e.g.:
-
-
-.. code:: yaml
-
- topology:
- nodes:
- - id: first
- agent_class: BaseAgent
- states:
- first:
- agent_class: SISaModel
-
-
-This would also work with a randomly generated network:
-
-
-.. code:: yaml
-
- network:
- generator: complete
- n: 5
- agent_class: BaseAgent
- states:
- - agent_class: SISaModel
-
-
-
-In addition to agent type, you may add a custom initial state to the distribution.
-This is very useful to add the same agent type with different states.
-e.g., to populate the network with SISaModel, roughly 10% of them with a discontent state:
-
-.. code:: yaml
-
- network_agents:
- - agent_class: SISaModel
- weight: 9
- state:
- id: neutral
- - agent_class: SISaModel
- weight: 1
- state:
- id: discontent
-
-Lastly, the configuration may include initial state for one or more nodes.
-For instance, to add a state for the two nodes in this configuration:
-
-.. code:: yaml
-
- agent_class: SISaModel
- network:
- generator: complete_graph
- n: 2
- states:
- - id: content
- - id: discontent
-
-
-Or to add state only to specific nodes (by ``id``).
-For example, to apply special skills to Linux Torvalds in a simulation:
-
-.. literalinclude:: ../examples/torvalds.yml
- :language: yaml
-
-
-Environment Agents
-##################
-In addition to network agents, more agents can be added to the simulation.
-These agents are programmed in much the same way as network agents, the only difference is that they will not be assigned to network nodes.
-
-
-.. code::
-
- environment_agents:
- - agent_class: MyAgent
- state:
- mood: happy
- - agent_class: DummyAgent
-
-
-You may use environment agents to model events that a normal agent cannot control, such as natural disasters or chance.
-They are also useful to add behavior that has little to do with the network and the interactions within that network.
-
-Templating
-==========
-
-Sometimes, it is useful to parameterize a simulation and run it over a range of values in order to compare each run and measure the effect of those parameters in the simulation.
-For instance, you may want to run a simulation with different agent distributions.
-
-This can be done in Soil using **templates**.
-A template is a configuration where some of the values are specified with a variable.
-e.g., ``weight: "{{ var1 }}"`` instead of ``weight: 1``.
-There are two types of variables, depending on how their values are decided:
-
-* Fixed. A list of values is provided, and a new simulation is run for each possible value. If more than a variable is given, a new simulation will be run per combination of values.
-* Bounded/Sampled. The bounds of the variable are provided, along with a sampler method, which will be used to compute all the configuration combinations.
-
-When fixed and bounded variables are mixed, Soil generates a new configuration per combination of fixed values and bounded values.
-
-Here is an example with a single fixed variable and two bounded variable:
-
-.. literalinclude:: ../examples/template.yml
- :language: yaml
diff --git a/docs/example.yml b/docs/example.yml
index 1554512..45661b3 100644
--- a/docs/example.yml
+++ b/docs/example.yml
@@ -3,33 +3,38 @@ name: MyExampleSimulation
max_time: 50
num_trials: 3
interval: 2
-network_params:
- generator: barabasi_albert_graph
- n: 100
- m: 2
-network_agents:
+model_params:
+ topology:
+ params:
+ generator: barabasi_albert_graph
+ n: 100
+ m: 2
+ agents:
+ distribution:
- agent_class: SISaModel
- weight: 1
+ topology: True
+ ratio: 0.1
state:
- id: content
+ state_id: content
- agent_class: SISaModel
- weight: 1
+ topology: True
+ ratio: .1
state:
- id: discontent
+ state_id: discontent
- agent_class: SISaModel
- weight: 8
+ topology: True
+ ratio: 0.8
state:
- id: neutral
-environment_params:
- prob_infect: 0.075
- neutral_discontent_spon_prob: 0.1
- neutral_discontent_infected_prob: 0.3
- neutral_content_spon_prob: 0.3
- neutral_content_infected_prob: 0.4
- discontent_neutral: 0.5
- discontent_content: 0.5
- variance_d_c: 0.2
- content_discontent: 0.2
- variance_c_d: 0.2
- content_neutral: 0.2
- standard_variance: 1
+ state_id: neutral
+ prob_infect: 0.075
+ neutral_discontent_spon_prob: 0.1
+ neutral_discontent_infected_prob: 0.3
+ neutral_content_spon_prob: 0.3
+ neutral_content_infected_prob: 0.4
+ discontent_neutral: 0.5
+ discontent_content: 0.5
+ variance_d_c: 0.2
+ content_discontent: 0.2
+ variance_c_d: 0.2
+ content_neutral: 0.2
+ standard_variance: 1
\ No newline at end of file
diff --git a/docs/index.rst b/docs/index.rst
index 92896ce..cd10280 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,8 +1,3 @@
-.. Soil documentation master file, created by
- sphinx-quickstart on Tue Apr 25 12:48:56 2017.
- You can adapt this file completely to your liking, but it should at least
- contain the root `toctree` directive.
-
Welcome to Soil's documentation!
================================
diff --git a/docs/installation.rst b/docs/installation.rst
index 9d63bca..5da4297 100644
--- a/docs/installation.rst
+++ b/docs/installation.rst
@@ -14,6 +14,10 @@ Now test that it worked by running the command line tool
soil --help
+ #or
+
+ python -m soil --help
+
Or, if you're using using soil programmatically:
.. code:: python
@@ -21,4 +25,4 @@ Or, if you're using using soil programmatically:
import soil
print(soil.__version__)
-The latest version can be installed through `GitLab `_ or `GitHub `_.
+The latest version can be installed through `GitHub `_ or `GitLab `_.
diff --git a/docs/make.bat b/docs/make.bat
index 3a6121c..8c57d1f 100644
--- a/docs/make.bat
+++ b/docs/make.bat
@@ -12,7 +12,7 @@ set BUILDDIR=_build
set SPHINXPROJ=Soil
if "%1" == "" goto help
-
+eE
%SPHINXBUILD% >NUL 2>NUL
if errorlevel 9009 (
echo.
diff --git a/docs/mesa.rst b/docs/mesa.rst
new file mode 100644
index 0000000..51ae1c1
--- /dev/null
+++ b/docs/mesa.rst
@@ -0,0 +1,22 @@
+Mesa compatibility
+------------------
+
+Soil is in the process of becoming fully compatible with MESA.
+The idea is to provide a set of modular classes and functions that extend the functionality of mesa, whilst staying compatible.
+In the end, it should be possible to add regular mesa agents to a soil simulation, or use a soil agent within a mesa simulation/model.
+
+This is a non-exhaustive list of tasks to achieve compatibility:
+
+- [ ] Integrate `soil.Simulation` with mesa's runners:
+ - [ ] `soil.Simulation` could mimic/become a `mesa.batchrunner`
+- [ ] Integrate `soil.Environment` with `mesa.Model`:
+ - [x] `Soil.Environment` inherits from `mesa.Model`
+ - [x] `Soil.Environment` includes a Mesa-like Scheduler (see the `soil.time` module.
+ - [ ] Allow for `mesa.Model` to be used in a simulation.
+- [ ] Integrate `soil.Agent` with `mesa.Agent`:
+ - [x] Rename agent.id to unique_id?
+ - [x] mesa agents can be used in soil simulations (see `examples/mesa`)
+- [ ] Provide examples
+ - [ ] Using mesa modules in a soil simulation
+ - [ ] Using soil modules in a mesa simulation
+- [ ] Document the new APIs and usage
\ No newline at end of file
diff --git a/docs/quickstart.yml b/docs/quickstart.yml
index 3b1f36d..7b21fab 100644
--- a/docs/quickstart.yml
+++ b/docs/quickstart.yml
@@ -2,29 +2,32 @@
name: quickstart
num_trials: 1
max_time: 1000
-network_agents:
- - agent_class: SISaModel
- state:
- id: neutral
- weight: 1
- - agent_class: SISaModel
- state:
- id: content
- weight: 2
-network_params:
- n: 100
- k: 5
- p: 0.2
- generator: newman_watts_strogatz_graph
-environment_params:
- neutral_discontent_spon_prob: 0.05
- neutral_discontent_infected_prob: 0.1
- neutral_content_spon_prob: 0.2
- neutral_content_infected_prob: 0.4
- discontent_neutral: 0.2
- discontent_content: 0.05
- content_discontent: 0.05
- variance_d_c: 0.05
- variance_c_d: 0.1
- content_neutral: 0.1
- standard_variance: 0.1
+model_params:
+ agents:
+ - agent_class: SISaModel
+ topology: true
+ state:
+ id: neutral
+ weight: 1
+ - agent_class: SISaModel
+ topology: true
+ state:
+ id: content
+ weight: 2
+ topology:
+ params:
+ n: 100
+ k: 5
+ p: 0.2
+ generator: newman_watts_strogatz_graph
+ neutral_discontent_spon_prob: 0.05
+ neutral_discontent_infected_prob: 0.1
+ neutral_content_spon_prob: 0.2
+ neutral_content_infected_prob: 0.4
+ discontent_neutral: 0.2
+ discontent_content: 0.05
+ content_discontent: 0.05
+ variance_d_c: 0.05
+ variance_c_d: 0.1
+ content_neutral: 0.1
+ standard_variance: 0.1
diff --git a/docs/soil_tutorial.rst b/docs/soil_tutorial.rst
index f7eefe9..1e11077 100644
--- a/docs/soil_tutorial.rst
+++ b/docs/soil_tutorial.rst
@@ -115,13 +115,13 @@ Here's the code:
@soil.agents.state
def neutral(self):
r = random.random()
- if self['has_tv'] and r < self.env['prob_tv_spread']:
+ if self['has_tv'] and r < self.model['prob_tv_spread']:
return self.infected
return
@soil.agents.state
def infected(self):
- prob_infect = self.env['prob_neighbor_spread']
+ prob_infect = self.model['prob_neighbor_spread']
for neighbor in self.get_neighboring_agents(state_id=self.neutral.id):
r = random.random()
if r < prob_infect:
@@ -146,11 +146,11 @@ spreading the rumor.
class NewsEnvironmentAgent(soil.agents.BaseAgent):
def step(self):
if self.now == self['event_time']:
- self.env['prob_tv_spread'] = 1
- self.env['prob_neighbor_spread'] = 1
+ self.model['prob_tv_spread'] = 1
+ self.model['prob_neighbor_spread'] = 1
elif self.now > self['event_time']:
- self.env['prob_tv_spread'] = self.env['prob_tv_spread'] * TV_FACTOR
- self.env['prob_neighbor_spread'] = self.env['prob_neighbor_spread'] * NEIGHBOR_FACTOR
+ self.model['prob_tv_spread'] = self.model['prob_tv_spread'] * TV_FACTOR
+ self.model['prob_neighbor_spread'] = self.model['prob_neighbor_spread'] * NEIGHBOR_FACTOR
Testing the agents
~~~~~~~~~~~~~~~~~~
diff --git a/examples/custom_timeouts/custom_timeouts.py b/examples/custom_timeouts/custom_timeouts.py
index 838ccfc..4124fa6 100644
--- a/examples/custom_timeouts/custom_timeouts.py
+++ b/examples/custom_timeouts/custom_timeouts.py
@@ -1,4 +1,5 @@
from soil.agents import FSM, state, default_state
+from soil.time import Delta
class Fibonacci(FSM):
@@ -11,7 +12,7 @@ class Fibonacci(FSM):
def counting(self):
self.log("Stopping at {}".format(self.now))
prev, self["prev"] = self["prev"], max([self.now, self["prev"]])
- return None, self.env.timeout(prev)
+ return None, Delta(prev)
class Odds(FSM):
@@ -21,18 +22,26 @@ class Odds(FSM):
@state
def odds(self):
self.log("Stopping at {}".format(self.now))
- return None, self.env.timeout(1 + self.now % 2)
+ return None, Delta(1 + self.now % 2)
+from soil import Simulation
+
+simulation = Simulation(
+ model_params={
+ 'agents':[
+ {'agent_class': Fibonacci, 'node_id': 0},
+ {'agent_class': Odds, 'node_id': 1}
+ ],
+ 'topology': {
+ 'params': {
+ 'generator': 'complete_graph',
+ 'n': 2
+ }
+ },
+ },
+ max_time=100,
+)
+
if __name__ == "__main__":
- from soil import Simulation
-
- s = Simulation(
- network_agents=[
- {"ids": [0], "agent_class": Fibonacci},
- {"ids": [1], "agent_class": Odds},
- ],
- network_params={"generator": "complete_graph", "n": 2},
- max_time=100,
- )
- s.run(dry_run=True)
+ simulation.run(dry_run=True)
diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars.py
index 0f819c4..f37b88f 100644
--- a/examples/events_and_messages/cars.py
+++ b/examples/events_and_messages/cars.py
@@ -18,6 +18,7 @@ An example scenario could play like the following:
- If there are no more passengers available in the simulation, Drivers die
"""
from __future__ import annotations
+from typing import Optional
from soil import *
from soil import events
from mesa.space import MultiGrid
@@ -39,7 +40,7 @@ class Journey:
tip: float
passenger: Passenger
- driver: Driver = None
+ driver: Optional[Driver] = None
class City(EventedEnvironment):
@@ -239,5 +240,4 @@ simulation = Simulation(
)
if __name__ == "__main__":
- with easy(simulation) as s:
- s.run()
+ simulation.run()
\ No newline at end of file
diff --git a/examples/mesa/server.py b/examples/mesa/server.py
index ea00658..851f06d 100644
--- a/examples/mesa/server.py
+++ b/examples/mesa/server.py
@@ -111,4 +111,5 @@ server = ModularServer(
)
server.port = 8521
-server.launch(open_browser=False)
+if __name__ == '__main__':
+ server.launch(open_browser=False)
diff --git a/examples/mesa/social_wealth.py b/examples/mesa/social_wealth.py
index 8085543..de8a198 100644
--- a/examples/mesa/social_wealth.py
+++ b/examples/mesa/social_wealth.py
@@ -28,7 +28,7 @@ class MoneyAgent(MesaAgent):
It will only share wealth with neighbors based on grid proximity
"""
- def __init__(self, unique_id, model, wealth=1):
+ def __init__(self, unique_id, model, wealth=1, **kwargs):
super().__init__(unique_id=unique_id, model=model)
self.wealth = wealth
diff --git a/examples/programmatic/programmatic.py b/examples/programmatic/programmatic.py
index 0cb912f..9949117 100644
--- a/examples/programmatic/programmatic.py
+++ b/examples/programmatic/programmatic.py
@@ -10,32 +10,48 @@ def mygenerator():
# Add only a node
G = Graph()
G.add_node(1)
+ G.add_node(2)
return G
class MyAgent(agents.FSM):
+ times_run = 0
@agents.default_state
@agents.state
def neutral(self):
self.debug("I am running")
- if agents.prob(0.2):
+ if self.prob(0.2):
+ self.times_run += 1
self.info("This runs 2/10 times on average")
-s = Simulation(
+simulation = Simulation(
name="Programmatic",
- network_params={"generator": mygenerator},
+ model_params={
+ 'topology': {
+ 'params': {
+ 'generator': mygenerator
+ },
+ },
+ 'agents': {
+ 'distribution': [{
+ 'agent_class': MyAgent,
+ 'topology': True,
+ }]
+ }
+ },
+ seed='Program',
+ agent_reporters={'times_run': 'times_run'},
num_trials=1,
max_time=100,
- agent_class=MyAgent,
dry_run=True,
)
+if __name__ == "__main__":
+ # By default, logging will only print WARNING logs (and above).
+ # You need to choose a lower logging level to get INFO/DEBUG traces
+ logging.basicConfig(level=logging.INFO)
+ envs = simulation.run()
-# By default, logging will only print WARNING logs (and above).
-# You need to choose a lower logging level to get INFO/DEBUG traces
-logging.basicConfig(level=logging.INFO)
-envs = s.run()
-
-# Uncomment this to output the simulation to a YAML file
-# s.dump_yaml('simulation.yaml')
+ for agent in envs[0].agents:
+ print(agent.times_run)
diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl.py
index be8a2b4..c7921de 100644
--- a/examples/pubcrawl/pubcrawl.py
+++ b/examples/pubcrawl/pubcrawl.py
@@ -170,6 +170,6 @@ class Police(FSM):
if __name__ == "__main__":
- from soil import simulation
+ from soil import run_from_config
- simulation.run_from_config("pubcrawl.yml", dry_run=True, dump=None, parallel=False)
+ run_from_config("pubcrawl.yml", dry_run=True, dump=None, parallel=False)
diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/basic/rabbit_agents.py
index 4c0981b..709508f 100644
--- a/examples/rabbits/basic/rabbit_agents.py
+++ b/examples/rabbits/basic/rabbit_agents.py
@@ -5,6 +5,8 @@ import math
class RabbitEnv(Environment):
+ prob_death = 1e-100
+
@property
def num_rabbits(self):
return self.count_agents(agent_class=Rabbit)
@@ -129,7 +131,7 @@ class RandomAccident(BaseAgent):
if not rabbits_alive:
return self.die()
- prob_death = self.model.get("prob_death", 1e-100) * math.floor(
+ prob_death = self.model.prob_death * math.floor(
math.log10(max(1, rabbits_alive))
)
self.debug("Killing some rabbits with prob={}!".format(prob_death))
diff --git a/examples/random_delays/random_delays.py b/examples/random_delays/random_delays.py
index 1bed03e..e155b4e 100644
--- a/examples/random_delays/random_delays.py
+++ b/examples/random_delays/random_delays.py
@@ -31,11 +31,11 @@ class MyAgent(agents.FSM):
s = Simulation(
name="Programmatic",
- network_agents=[{"agent_class": MyAgent, "id": 0}],
- topology={"nodes": [{"id": 0}], "links": []},
+ model_params={
+ 'agents': [{'agent_class': MyAgent}],
+ },
num_trials=1,
max_time=100,
- agent_class=MyAgent,
dry_run=True,
)
diff --git a/examples/terrorism/TerroristNetworkModel.py b/examples/terrorism/TerroristNetworkModel.py
index 2da9d8f..9b7106e 100644
--- a/examples/terrorism/TerroristNetworkModel.py
+++ b/examples/terrorism/TerroristNetworkModel.py
@@ -108,14 +108,14 @@ class TerroristSpreadModel(FSM, Geo):
return
return self.leader
- def ego_search(self, steps=1, center=False, node=None, **kwargs):
+ def ego_search(self, steps=1, center=False, agent=None, **kwargs):
"""Get a list of nodes in the ego network of *node* of radius *steps*"""
- node = as_node(node if node is not None else self)
+ node = agent.node
G = self.subgraph(**kwargs)
return nx.ego_graph(G, node, center=center, radius=steps).nodes()
- def degree(self, node, force=False):
- node = as_node(node)
+ def degree(self, agent, force=False):
+ node = agent.node
if (
force
or (not hasattr(self.model, "_degree"))
@@ -125,8 +125,8 @@ class TerroristSpreadModel(FSM, Geo):
self.model._last_step = self.now
return self.model._degree[node]
- def betweenness(self, node, force=False):
- node = as_node(node)
+ def betweenness(self, agent, force=False):
+ node = agent.node
if (
force
or (not hasattr(self.model, "_betweenness"))
diff --git a/examples/tutorial/soil_tutorial.ipynb b/examples/tutorial/soil_tutorial.ipynb
index 7599ab2..76f8d49 100644
--- a/examples/tutorial/soil_tutorial.ipynb
+++ b/examples/tutorial/soil_tutorial.ipynb
@@ -216,13 +216,13 @@
" @soil.agents.state\n",
" def neutral(self):\n",
" r = random.random()\n",
- " if self['has_tv'] and r < self.env['prob_tv_spread']:\n",
+ " if self['has_tv'] and r < self.model['prob_tv_spread']:\n",
" return self.infected\n",
" return\n",
" \n",
" @soil.agents.state\n",
" def infected(self):\n",
- " prob_infect = self.env['prob_neighbor_spread']\n",
+ " prob_infect = self.model['prob_neighbor_spread']\n",
" for neighbor in self.get_neighboring_agents(state_id=self.neutral.id):\n",
" r = random.random()\n",
" if r < prob_infect:\n",
@@ -271,11 +271,11 @@
"class NewsEnvironmentAgent(soil.agents.NetworkAgent):\n",
" def step(self):\n",
" if self.now == self['event_time']:\n",
- " self.env['prob_tv_spread'] = 1\n",
- " self.env['prob_neighbor_spread'] = 1\n",
+ " self.model['prob_tv_spread'] = 1\n",
+ " self.model['prob_neighbor_spread'] = 1\n",
" elif self.now > self['event_time']:\n",
- " self.env['prob_tv_spread'] = self.env['prob_tv_spread'] * TV_FACTOR\n",
- " self.env['prob_neighbor_spread'] = self.env['prob_neighbor_spread'] * NEIGHBOR_FACTOR"
+ " self.model['prob_tv_spread'] = self.model['prob_tv_spread'] * TV_FACTOR\n",
+ " self.model['prob_neighbor_spread'] = self.model['prob_neighbor_spread'] * NEIGHBOR_FACTOR"
]
},
{
diff --git a/soil/VERSION b/soil/VERSION
index 2a41704..9866e9c 100644
--- a/soil/VERSION
+++ b/soil/VERSION
@@ -1 +1 @@
-0.30.0rc3
\ No newline at end of file
+0.30.0rc4
\ No newline at end of file
diff --git a/soil/__init__.py b/soil/__init__.py
index 3894897..eb9c232 100644
--- a/soil/__init__.py
+++ b/soil/__init__.py
@@ -1,6 +1,7 @@
from __future__ import annotations
import importlib
+from importlib.resources import path
import sys
import os
import logging
@@ -14,10 +15,12 @@ try:
except NameError:
basestring = str
+from pathlib import Path
from .agents import *
from . import agents
from .simulation import *
from .environment import Environment, EventedEnvironment
+from .datacollection import SoilCollector
from . import serialization
from .utils import logger
from .time import *
@@ -35,8 +38,10 @@ def main(
**kwargs,
):
+ sim = None
if isinstance(cfg, Simulation):
sim = cfg
+
import argparse
from . import simulation
diff --git a/soil/agents/BassModel.py b/soil/agents/BassModel.py
index 4410d82..6049bd5 100644
--- a/soil/agents/BassModel.py
+++ b/soil/agents/BassModel.py
@@ -22,10 +22,10 @@ class BassModel(FSM):
else:
aware_neighbors = self.get_neighbors(state_id=self.aware.id)
num_neighbors_aware = len(aware_neighbors)
- if self.prob((self["imitation_prob"] * num_neighbors_aware)):
+ if self.prob((self.imitation_prob * num_neighbors_aware)):
self.sentimentCorrelation = 1
return self.aware
@state
def aware(self):
- self.die()
+ self.die()
\ No newline at end of file
diff --git a/soil/agents/BigMarketModel.py b/soil/agents/BigMarketModel.py
deleted file mode 100644
index e606e0a..0000000
--- a/soil/agents/BigMarketModel.py
+++ /dev/null
@@ -1,118 +0,0 @@
-from . import FSM, state, default_state
-
-
-class BigMarketModel(FSM):
- """
- Settings:
- Names:
- enterprises [Array]
-
- tweet_probability_enterprises [Array]
- Users:
- tweet_probability_users
-
- tweet_relevant_probability
-
- tweet_probability_about [Array]
-
- sentiment_about [Array]
- """
-
- def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
- self.enterprises = self.env.environment_params["enterprises"]
- self.type = ""
-
- if self.id < len(self.enterprises): # Enterprises
- self._set_state(self.enterprise.id)
- self.type = "Enterprise"
- self.tweet_probability = environment.environment_params[
- "tweet_probability_enterprises"
- ][self.id]
- else: # normal users
- self.type = "User"
- self._set_state(self.user.id)
- self.tweet_probability = environment.environment_params[
- "tweet_probability_users"
- ]
- self.tweet_relevant_probability = environment.environment_params[
- "tweet_relevant_probability"
- ]
- self.tweet_probability_about = environment.environment_params[
- "tweet_probability_about"
- ] # List
- self.sentiment_about = environment.environment_params[
- "sentiment_about"
- ] # List
-
- @state
- def enterprise(self):
-
- if self.random.random() < self.tweet_probability: # Tweets
- aware_neighbors = self.get_neighbors(
- state_id=self.number_of_enterprises
- ) # Nodes neighbour users
- for x in aware_neighbors:
- if self.random.uniform(0, 10) < 5:
- x.sentiment_about[self.id] += 0.1 # Increments for enterprise
- else:
- x.sentiment_about[self.id] -= 0.1 # Decrements for enterprise
-
- # Establecemos limites
- if x.sentiment_about[self.id] > 1:
- x.sentiment_about[self.id] = 1
- if x.sentiment_about[self.id] < -1:
- x.sentiment_about[self.id] = -1
-
- x.attrs[
- "sentiment_enterprise_%s" % self.enterprises[self.id]
- ] = x.sentiment_about[self.id]
-
- @state
- def user(self):
- if self.random.random() < self.tweet_probability: # Tweets
- if (
- self.random.random() < self.tweet_relevant_probability
- ): # Tweets something relevant
- # Tweet probability per enterprise
- for i in range(len(self.enterprises)):
- random_num = self.random.random()
- if random_num < self.tweet_probability_about[i]:
- # The condition is fulfilled, sentiments are evaluated towards that enterprise
- if self.sentiment_about[i] < 0:
- # NEGATIVO
- self.userTweets("negative", i)
- elif self.sentiment_about[i] == 0:
- # NEUTRO
- pass
- else:
- # POSITIVO
- self.userTweets("positive", i)
- for i in range(
- len(self.enterprises)
- ): # So that it never is set to 0 if there are not changes (logs)
- self.attrs[
- "sentiment_enterprise_%s" % self.enterprises[i]
- ] = self.sentiment_about[i]
-
- def userTweets(self, sentiment, enterprise):
- aware_neighbors = self.get_neighbors(
- state_id=self.number_of_enterprises
- ) # Nodes neighbours users
- for x in aware_neighbors:
- if sentiment == "positive":
- x.sentiment_about[enterprise] += 0.003
- elif sentiment == "negative":
- x.sentiment_about[enterprise] -= 0.003
- else:
- pass
-
- # Establecemos limites
- if x.sentiment_about[enterprise] > 1:
- x.sentiment_about[enterprise] = 1
- if x.sentiment_about[enterprise] < -1:
- x.sentiment_about[enterprise] = -1
-
- x.attrs[
- "sentiment_enterprise_%s" % self.enterprises[enterprise]
- ] = x.sentiment_about[enterprise]
diff --git a/soil/agents/Geo.py b/soil/agents/Geo.py
index d61d1ce..bede157 100644
--- a/soil/agents/Geo.py
+++ b/soil/agents/Geo.py
@@ -1,14 +1,14 @@
from scipy.spatial import cKDTree as KDTree
import networkx as nx
-from . import NetworkAgent, as_node
+from . import NetworkAgent
class Geo(NetworkAgent):
"""In this type of network, nodes have a "pos" attribute."""
- def geo_search(self, radius, node=None, center=False, **kwargs):
+ def geo_search(self, radius, agent=None, center=False, **kwargs):
"""Get a list of nodes whose coordinates are closer than *radius* to *node*."""
- node = as_node(node if node is not None else self)
+ node = agent.node
G = self.subgraph(**kwargs)
@@ -18,4 +18,4 @@ class Geo(NetworkAgent):
nodes, coords = list(zip(*pos.items()))
kdtree = KDTree(coords) # Cannot provide generator.
indices = kdtree.query_ball_point(pos[node], radius)
- return [nodes[i] for i in indices if center or (nodes[i] != node)]
+ return [nodes[i] for i in indices if center or (nodes[i] != node)]
\ No newline at end of file
diff --git a/soil/agents/IndependentCascadeModel.py b/soil/agents/IndependentCascadeModel.py
index e332b07..890a54e 100644
--- a/soil/agents/IndependentCascadeModel.py
+++ b/soil/agents/IndependentCascadeModel.py
@@ -1,7 +1,7 @@
-from . import BaseAgent
+from . import Agent, state, default_state
-class IndependentCascadeModel(BaseAgent):
+class IndependentCascadeModel(Agent):
"""
Settings:
innovation_prob
@@ -9,42 +9,22 @@ class IndependentCascadeModel(BaseAgent):
imitation_prob
"""
- def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
- self.innovation_prob = self.env.environment_params["innovation_prob"]
- self.imitation_prob = self.env.environment_params["imitation_prob"]
- self.state["time_awareness"] = 0
- self.state["sentimentCorrelation"] = 0
+ time_awareness = 0
+ sentimentCorrelation = 0
- def step(self):
- self.behaviour()
+ # Outside effects
+ @default_state
+ @state
+ def outside(self):
+ if self.prob(self.model.innovation_prob):
+ self.sentimentCorrelation = 1
+ self.time_awareness = self.model.now # To know when they have been infected
+ return self.imitate
- def behaviour(self):
- aware_neighbors_1_time_step = []
- # Outside effects
- if self.prob(self.innovation_prob):
- if self.state["id"] == 0:
- self.state["id"] = 1
- self.state["sentimentCorrelation"] = 1
- self.state[
- "time_awareness"
- ] = self.env.now # To know when they have been infected
- else:
- pass
+ @state
+ def imitate(self):
+ aware_neighbors = self.get_neighbors(state_id=1, time_awareness=self.now-1)
- return
-
- # Imitation effects
- if self.state["id"] == 0:
- aware_neighbors = self.get_neighbors(state_id=1)
- for x in aware_neighbors:
- if x.state["time_awareness"] == (self.env.now - 1):
- aware_neighbors_1_time_step.append(x)
- num_neighbors_aware = len(aware_neighbors_1_time_step)
- if self.prob(self.imitation_prob * num_neighbors_aware):
- self.state["id"] = 1
- self.state["sentimentCorrelation"] = 1
- else:
- pass
-
- return
+ if self.prob(self.model.imitation_prob * len(aware_neighbors)):
+ self.sentimentCorrelation = 1
+ return self.outside
\ No newline at end of file
diff --git a/soil/agents/ModelM2.py b/soil/agents/ModelM2.py
deleted file mode 100644
index 4fac2b8..0000000
--- a/soil/agents/ModelM2.py
+++ /dev/null
@@ -1,270 +0,0 @@
-import numpy as np
-from . import BaseAgent
-
-
-class SpreadModelM2(BaseAgent):
- """
- Settings:
- prob_neutral_making_denier
-
- prob_infect
-
- prob_cured_healing_infected
-
- prob_cured_vaccinate_neutral
-
- prob_vaccinated_healing_infected
-
- prob_vaccinated_vaccinate_neutral
-
- prob_generate_anti_rumor
- """
-
- def __init__(self, model=None, unique_id=0, state=()):
- super().__init__(model=environment, unique_id=unique_id, state=state)
-
- # Use a single generator with the same seed as `self.random`
- random = np.random.default_rng(seed=self._seed)
- self.prob_neutral_making_denier = random.normal(
- environment.environment_params["prob_neutral_making_denier"],
- environment.environment_params["standard_variance"],
- )
-
- self.prob_infect = random.normal(
- environment.environment_params["prob_infect"],
- environment.environment_params["standard_variance"],
- )
-
- self.prob_cured_healing_infected = random.normal(
- environment.environment_params["prob_cured_healing_infected"],
- environment.environment_params["standard_variance"],
- )
- self.prob_cured_vaccinate_neutral = random.normal(
- environment.environment_params["prob_cured_vaccinate_neutral"],
- environment.environment_params["standard_variance"],
- )
-
- self.prob_vaccinated_healing_infected = random.normal(
- environment.environment_params["prob_vaccinated_healing_infected"],
- environment.environment_params["standard_variance"],
- )
- self.prob_vaccinated_vaccinate_neutral = random.normal(
- environment.environment_params["prob_vaccinated_vaccinate_neutral"],
- environment.environment_params["standard_variance"],
- )
- self.prob_generate_anti_rumor = random.normal(
- environment.environment_params["prob_generate_anti_rumor"],
- environment.environment_params["standard_variance"],
- )
-
- def step(self):
-
- if self.state["id"] == 0: # Neutral
- self.neutral_behaviour()
- elif self.state["id"] == 1: # Infected
- self.infected_behaviour()
- elif self.state["id"] == 2: # Cured
- self.cured_behaviour()
- elif self.state["id"] == 3: # Vaccinated
- self.vaccinated_behaviour()
-
- def neutral_behaviour(self):
-
- # Infected
- infected_neighbors = self.get_neighbors(state_id=1)
- if len(infected_neighbors) > 0:
- if self.prob(self.prob_neutral_making_denier):
- self.state["id"] = 3 # Vaccinated making denier
-
- def infected_behaviour(self):
-
- # Neutral
- neutral_neighbors = self.get_neighbors(state_id=0)
- for neighbor in neutral_neighbors:
- if self.prob(self.prob_infect):
- neighbor.state["id"] = 1 # Infected
-
- def cured_behaviour(self):
-
- # Vaccinate
- neutral_neighbors = self.get_neighbors(state_id=0)
- for neighbor in neutral_neighbors:
- if self.prob(self.prob_cured_vaccinate_neutral):
- neighbor.state["id"] = 3 # Vaccinated
-
- # Cure
- infected_neighbors = self.get_neighbors(state_id=1)
- for neighbor in infected_neighbors:
- if self.prob(self.prob_cured_healing_infected):
- neighbor.state["id"] = 2 # Cured
-
- def vaccinated_behaviour(self):
-
- # Cure
- infected_neighbors = self.get_neighbors(state_id=1)
- for neighbor in infected_neighbors:
- if self.prob(self.prob_cured_healing_infected):
- neighbor.state["id"] = 2 # Cured
-
- # Vaccinate
- neutral_neighbors = self.get_neighbors(state_id=0)
- for neighbor in neutral_neighbors:
- if self.prob(self.prob_cured_vaccinate_neutral):
- neighbor.state["id"] = 3 # Vaccinated
-
- # Generate anti-rumor
- infected_neighbors_2 = self.get_neighbors(state_id=1)
- for neighbor in infected_neighbors_2:
- if self.prob(self.prob_generate_anti_rumor):
- neighbor.state["id"] = 2 # Cured
-
-
-class ControlModelM2(BaseAgent):
- """
- Settings:
- prob_neutral_making_denier
-
- prob_infect
-
- prob_cured_healing_infected
-
- prob_cured_vaccinate_neutral
-
- prob_vaccinated_healing_infected
-
- prob_vaccinated_vaccinate_neutral
-
- prob_generate_anti_rumor
- """
-
- def __init__(self, model=None, unique_id=0, state=()):
- super().__init__(model=environment, unique_id=unique_id, state=state)
-
- self.prob_neutral_making_denier = np.random.normal(
- environment.environment_params["prob_neutral_making_denier"],
- environment.environment_params["standard_variance"],
- )
-
- self.prob_infect = np.random.normal(
- environment.environment_params["prob_infect"],
- environment.environment_params["standard_variance"],
- )
-
- self.prob_cured_healing_infected = np.random.normal(
- environment.environment_params["prob_cured_healing_infected"],
- environment.environment_params["standard_variance"],
- )
- self.prob_cured_vaccinate_neutral = np.random.normal(
- environment.environment_params["prob_cured_vaccinate_neutral"],
- environment.environment_params["standard_variance"],
- )
-
- self.prob_vaccinated_healing_infected = np.random.normal(
- environment.environment_params["prob_vaccinated_healing_infected"],
- environment.environment_params["standard_variance"],
- )
- self.prob_vaccinated_vaccinate_neutral = np.random.normal(
- environment.environment_params["prob_vaccinated_vaccinate_neutral"],
- environment.environment_params["standard_variance"],
- )
- self.prob_generate_anti_rumor = np.random.normal(
- environment.environment_params["prob_generate_anti_rumor"],
- environment.environment_params["standard_variance"],
- )
-
- def step(self):
-
- if self.state["id"] == 0: # Neutral
- self.neutral_behaviour()
- elif self.state["id"] == 1: # Infected
- self.infected_behaviour()
- elif self.state["id"] == 2: # Cured
- self.cured_behaviour()
- elif self.state["id"] == 3: # Vaccinated
- self.vaccinated_behaviour()
- elif self.state["id"] == 4: # Beacon-off
- self.beacon_off_behaviour()
- elif self.state["id"] == 5: # Beacon-on
- self.beacon_on_behaviour()
-
- def neutral_behaviour(self):
- self.state["visible"] = False
-
- # Infected
- infected_neighbors = self.get_neighbors(state_id=1)
- if len(infected_neighbors) > 0:
- if self.random(self.prob_neutral_making_denier):
- self.state["id"] = 3 # Vaccinated making denier
-
- def infected_behaviour(self):
-
- # Neutral
- neutral_neighbors = self.get_neighbors(state_id=0)
- for neighbor in neutral_neighbors:
- if self.prob(self.prob_infect):
- neighbor.state["id"] = 1 # Infected
- self.state["visible"] = False
-
- def cured_behaviour(self):
-
- self.state["visible"] = True
- # Vaccinate
- neutral_neighbors = self.get_neighbors(state_id=0)
- for neighbor in neutral_neighbors:
- if self.prob(self.prob_cured_vaccinate_neutral):
- neighbor.state["id"] = 3 # Vaccinated
-
- # Cure
- infected_neighbors = self.get_neighbors(state_id=1)
- for neighbor in infected_neighbors:
- if self.prob(self.prob_cured_healing_infected):
- neighbor.state["id"] = 2 # Cured
-
- def vaccinated_behaviour(self):
- self.state["visible"] = True
-
- # Cure
- infected_neighbors = self.get_neighbors(state_id=1)
- for neighbor in infected_neighbors:
- if self.prob(self.prob_cured_healing_infected):
- neighbor.state["id"] = 2 # Cured
-
- # Vaccinate
- neutral_neighbors = self.get_neighbors(state_id=0)
- for neighbor in neutral_neighbors:
- if self.prob(self.prob_cured_vaccinate_neutral):
- neighbor.state["id"] = 3 # Vaccinated
-
- # Generate anti-rumor
- infected_neighbors_2 = self.get_neighbors(state_id=1)
- for neighbor in infected_neighbors_2:
- if self.prob(self.prob_generate_anti_rumor):
- neighbor.state["id"] = 2 # Cured
-
- def beacon_off_behaviour(self):
- self.state["visible"] = False
- infected_neighbors = self.get_neighbors(state_id=1)
- if len(infected_neighbors) > 0:
- self.state["id"] == 5 # Beacon on
-
- def beacon_on_behaviour(self):
- self.state["visible"] = False
- # Cure (M2 feature added)
- infected_neighbors = self.get_neighbors(state_id=1)
- for neighbor in infected_neighbors:
- if self.prob(self.prob_generate_anti_rumor):
- neighbor.state["id"] = 2 # Cured
- neutral_neighbors_infected = neighbor.get_neighbors(state_id=0)
- for neighbor in neutral_neighbors_infected:
- if self.prob(self.prob_generate_anti_rumor):
- neighbor.state["id"] = 3 # Vaccinated
- infected_neighbors_infected = neighbor.get_neighbors(state_id=1)
- for neighbor in infected_neighbors_infected:
- if self.prob(self.prob_generate_anti_rumor):
- neighbor.state["id"] = 2 # Cured
-
- # Vaccinate
- neutral_neighbors = self.get_neighbors(state_id=0)
- for neighbor in neutral_neighbors:
- if self.prob(self.prob_cured_vaccinate_neutral):
- neighbor.state["id"] = 3 # Vaccinated
diff --git a/soil/agents/SISaModel.py b/soil/agents/SISaModel.py
index 45d9328..b5dbbe3 100644
--- a/soil/agents/SISaModel.py
+++ b/soil/agents/SISaModel.py
@@ -1,8 +1,9 @@
import numpy as np
-from . import FSM, state
+from hashlib import sha512
+from . import Agent, state, default_state
-class SISaModel(FSM):
+class SISaModel(Agent):
"""
Settings:
neutral_discontent_spon_prob
@@ -28,38 +29,45 @@ class SISaModel(FSM):
standard_variance
"""
- def __init__(self, environment, unique_id=0, state=()):
- super().__init__(model=environment, unique_id=unique_id, state=state)
+ def __init__(self, *args, **kwargs):
+ super().__init__(*args, **kwargs)
- random = np.random.default_rng(seed=self._seed)
+ seed = self.model._seed
+ if isinstance(seed, (str, bytes, bytearray)):
+ if isinstance(seed, str):
+ seed = seed.encode()
+ seed = int.from_bytes(seed + sha512(seed).digest(), 'big')
+
+ random = np.random.default_rng(seed=seed)
self.neutral_discontent_spon_prob = random.normal(
- self.env["neutral_discontent_spon_prob"], self.env["standard_variance"]
+ self.model.neutral_discontent_spon_prob, self.model.standard_variance
)
self.neutral_discontent_infected_prob = random.normal(
- self.env["neutral_discontent_infected_prob"], self.env["standard_variance"]
+ self.model.neutral_discontent_infected_prob, self.model.standard_variance
)
self.neutral_content_spon_prob = random.normal(
- self.env["neutral_content_spon_prob"], self.env["standard_variance"]
+ self.model.neutral_content_spon_prob, self.model.standard_variance
)
self.neutral_content_infected_prob = random.normal(
- self.env["neutral_content_infected_prob"], self.env["standard_variance"]
+ self.model.neutral_content_infected_prob, self.model.standard_variance
)
self.discontent_neutral = random.normal(
- self.env["discontent_neutral"], self.env["standard_variance"]
+ self.model.discontent_neutral, self.model.standard_variance
)
self.discontent_content = random.normal(
- self.env["discontent_content"], self.env["variance_d_c"]
+ self.model.discontent_content, self.model.variance_d_c
)
self.content_discontent = random.normal(
- self.env["content_discontent"], self.env["variance_c_d"]
+ self.model.content_discontent, self.model.variance_c_d
)
self.content_neutral = random.normal(
- self.env["content_neutral"], self.env["standard_variance"]
+ self.model.discontent_neutral, self.model.standard_variance
)
+ @default_state
@state
def neutral(self):
# Spontaneous effects
@@ -70,10 +78,10 @@ class SISaModel(FSM):
# Infected
discontent_neighbors = self.count_neighbors(state_id=self.discontent)
- if self.prob(scontent_neighbors * self.neutral_discontent_infected_prob):
+ if self.prob(discontent_neighbors * self.neutral_discontent_infected_prob):
return self.discontent
content_neighbors = self.count_neighbors(state_id=self.content.id)
- if self.prob(s * self.neutral_content_infected_prob):
+ if self.prob(content_neighbors * self.neutral_content_infected_prob):
return self.content
return self.neutral
@@ -85,7 +93,7 @@ class SISaModel(FSM):
# Superinfected
content_neighbors = self.count_neighbors(state_id=self.content.id)
- if self.prob(s * self.discontent_content):
+ if self.prob(content_neighbors * self.discontent_content):
return self.content
return self.discontent
@@ -97,6 +105,6 @@ class SISaModel(FSM):
# Superinfected
discontent_neighbors = self.count_neighbors(state_id=self.discontent.id)
- if self.prob(scontent_neighbors * self.content_discontent):
+ if self.prob(discontent_neighbors * self.content_discontent):
self.discontent
return self.content
diff --git a/soil/agents/SentimentCorrelationModel.py b/soil/agents/SentimentCorrelationModel.py
deleted file mode 100644
index 751a59a..0000000
--- a/soil/agents/SentimentCorrelationModel.py
+++ /dev/null
@@ -1,115 +0,0 @@
-from . import BaseAgent
-
-
-class SentimentCorrelationModel(BaseAgent):
- """
- Settings:
- outside_effects_prob
-
- anger_prob
-
- joy_prob
-
- sadness_prob
-
- disgust_prob
- """
-
- def __init__(self, environment, unique_id=0, state=()):
- super().__init__(model=environment, unique_id=unique_id, state=state)
- self.outside_effects_prob = environment.environment_params[
- "outside_effects_prob"
- ]
- self.anger_prob = environment.environment_params["anger_prob"]
- self.joy_prob = environment.environment_params["joy_prob"]
- self.sadness_prob = environment.environment_params["sadness_prob"]
- self.disgust_prob = environment.environment_params["disgust_prob"]
- self.state["time_awareness"] = []
- for i in range(4): # In this model we have 4 sentiments
- self.state["time_awareness"].append(
- 0
- ) # 0-> Anger, 1-> joy, 2->sadness, 3 -> disgust
- self.state["sentimentCorrelation"] = 0
-
- def step(self):
- self.behaviour()
-
- def behaviour(self):
-
- angry_neighbors_1_time_step = []
- joyful_neighbors_1_time_step = []
- sad_neighbors_1_time_step = []
- disgusted_neighbors_1_time_step = []
-
- angry_neighbors = self.get_neighbors(state_id=1)
- for x in angry_neighbors:
- if x.state["time_awareness"][0] > (self.env.now - 500):
- angry_neighbors_1_time_step.append(x)
- num_neighbors_angry = len(angry_neighbors_1_time_step)
-
- joyful_neighbors = self.get_neighbors(state_id=2)
- for x in joyful_neighbors:
- if x.state["time_awareness"][1] > (self.env.now - 500):
- joyful_neighbors_1_time_step.append(x)
- num_neighbors_joyful = len(joyful_neighbors_1_time_step)
-
- sad_neighbors = self.get_neighbors(state_id=3)
- for x in sad_neighbors:
- if x.state["time_awareness"][2] > (self.env.now - 500):
- sad_neighbors_1_time_step.append(x)
- num_neighbors_sad = len(sad_neighbors_1_time_step)
-
- disgusted_neighbors = self.get_neighbors(state_id=4)
- for x in disgusted_neighbors:
- if x.state["time_awareness"][3] > (self.env.now - 500):
- disgusted_neighbors_1_time_step.append(x)
- num_neighbors_disgusted = len(disgusted_neighbors_1_time_step)
-
- anger_prob = self.anger_prob + (
- len(angry_neighbors_1_time_step) * self.anger_prob
- )
- joy_prob = self.joy_prob + (len(joyful_neighbors_1_time_step) * self.joy_prob)
- sadness_prob = self.sadness_prob + (
- len(sad_neighbors_1_time_step) * self.sadness_prob
- )
- disgust_prob = self.disgust_prob + (
- len(disgusted_neighbors_1_time_step) * self.disgust_prob
- )
- outside_effects_prob = self.outside_effects_prob
-
- num = self.random.random()
-
- if num < outside_effects_prob:
- self.state["id"] = self.random.randint(1, 4)
-
- self.state["sentimentCorrelation"] = self.state[
- "id"
- ] # It is stored when it has been infected for the dynamic network
- self.state["time_awareness"][self.state["id"] - 1] = self.env.now
- self.state["sentiment"] = self.state["id"]
-
- if num < anger_prob:
-
- self.state["id"] = 1
- self.state["sentimentCorrelation"] = 1
- self.state["time_awareness"][self.state["id"] - 1] = self.env.now
- elif num < joy_prob + anger_prob and num > anger_prob:
-
- self.state["id"] = 2
- self.state["sentimentCorrelation"] = 2
- self.state["time_awareness"][self.state["id"] - 1] = self.env.now
- elif num < sadness_prob + anger_prob + joy_prob and num > joy_prob + anger_prob:
-
- self.state["id"] = 3
- self.state["sentimentCorrelation"] = 3
- self.state["time_awareness"][self.state["id"] - 1] = self.env.now
- elif (
- num < disgust_prob + sadness_prob + anger_prob + joy_prob
- and num > sadness_prob + anger_prob + joy_prob
- ):
-
- self.state["id"] = 4
- self.state["sentimentCorrelation"] = 4
- self.state["time_awareness"][self.state["id"] - 1] = self.env.now
-
- self.state["sentiment"] = self.state["id"]
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index 9cf168a..f21ce98 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -555,9 +555,9 @@ def _from_fixed(
def _from_distro(
distro: List[config.AgentDistro],
n: int,
- topology: str,
default: config.SingleAgentConfig,
random,
+ topology: str = None
) -> List[Dict[str, Any]]:
agents = []
@@ -621,19 +621,18 @@ def _from_distro(
from .network_agents import *
from .fsm import *
from .evented import *
+
+
+class Agent(NetworkAgent, FSM, EventedAgent):
+ """Default agent class, has both network and event capabilities"""
+
+
from .BassModel import *
-from .BigMarketModel import *
from .IndependentCascadeModel import *
-from .ModelM2 import *
-from .SentimentCorrelationModel import *
from .SISaModel import *
from .CounterModel import *
-class Agent(NetworkAgent, EventedAgent):
- """Default agent class, has both network and event capabilities"""
-
-
try:
import scipy
from .Geo import Geo
diff --git a/soil/agents/network_agents.py b/soil/agents/network_agents.py
index 090a3a4..507be40 100644
--- a/soil/agents/network_agents.py
+++ b/soil/agents/network_agents.py
@@ -14,8 +14,11 @@ class NetworkAgent(BaseAgent):
def count_neighbors(self, state_id=None, **kwargs):
return len(self.get_neighbors(state_id=state_id, **kwargs))
+ def iter_neighbors(self, **kwargs):
+ return self.iter_agents(limit_neighbors=True, **kwargs)
+
def get_neighbors(self, **kwargs):
- return list(self.iter_agents(limit_neighbors=True, **kwargs))
+ return list(self.iter_neighbors())
@property
def node(self):
diff --git a/soil/config.py b/soil/config.py
index 8dbbffa..a143f6f 100644
--- a/soil/config.py
+++ b/soil/config.py
@@ -37,13 +37,8 @@ class Topology(BaseModel):
links: List[Edge]
-class NetParams(BaseModel, extra=Extra.allow):
- generator: Union[Callable, str]
- n: int
-
-
class NetConfig(BaseModel):
- params: Optional[NetParams]
+ params: Optional[Dict[str, Any]]
fixed: Optional[Union[Topology, nx.Graph]]
path: Optional[str]
@@ -135,9 +130,11 @@ class Config(BaseModel, extra=Extra.allow):
num_trials: int = 1
max_time: float = 100
max_steps: int = -1
+ num_processes: int = 1
interval: float = 1
seed: str = ""
dry_run: bool = False
+ skip_test: bool = False
model_class: Union[Type, str] = environment.Environment
model_params: Optional[Dict[str, Any]] = {}
diff --git a/soil/datacollection.py b/soil/datacollection.py
index dea9f1d..e054640 100644
--- a/soil/datacollection.py
+++ b/soil/datacollection.py
@@ -1,6 +1,17 @@
from mesa import DataCollector as MDC
-class SoilDataCollector(MDC):
- def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
+class SoilCollector(MDC):
+ def __init__(self, model_reporters=None, agent_reporters=None, tables=None, **kwargs):
+ model_reporters = model_reporters or {}
+ agent_reporters = agent_reporters or {}
+ tables = tables or {}
+ if 'agent_count' not in model_reporters:
+ model_reporters['agent_count'] = lambda m: m.schedule.get_agent_count()
+ if 'state_id' not in agent_reporters:
+ agent_reporters['agent_id'] = lambda agent: agent.get('state_id', None)
+
+ super().__init__(model_reporters=model_reporters,
+ agent_reporters=agent_reporters,
+ tables=tables,
+ **kwargs)
diff --git a/soil/environment.py b/soil/environment.py
index aa61d43..6e622bf 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -6,7 +6,7 @@ import math
import logging
import inspect
-from typing import Any, Dict, Optional, Union
+from typing import Any, Dict, Optional, Union, List
from collections import namedtuple
from time import time as current_time
from copy import deepcopy
@@ -16,9 +16,8 @@ from networkx.readwrite import json_graph
import networkx as nx
from mesa import Model
-from mesa.datacollection import DataCollector
-from . import agents as agentmod, config, serialization, utils, time, network, events
+from . import agents as agentmod, config, datacollection, serialization, utils, time, network, events
class BaseEnvironment(Model):
@@ -42,7 +41,8 @@ class BaseEnvironment(Model):
dir_path=None,
interval=1,
agent_class=None,
- agents: [tuple[type, Dict[str, Any]]] = {},
+ agents: List[tuple[type, Dict[str, Any]]] = {},
+ collector_class: type = datacollection.SoilCollector,
agent_reporters: Optional[Any] = None,
model_reporters: Optional[Any] = None,
tables: Optional[Any] = None,
@@ -50,7 +50,6 @@ class BaseEnvironment(Model):
):
super().__init__(seed=seed)
- self.env_params = env_params or {}
self.current_id = -1
@@ -71,11 +70,14 @@ class BaseEnvironment(Model):
self.logger = utils.logger.getChild(self.id)
- self.datacollector = DataCollector(
+ collector_class = serialization.deserialize(collector_class)
+ self.datacollector = collector_class(
model_reporters=model_reporters,
agent_reporters=agent_reporters,
tables=tables,
)
+ for (k, v) in env_params.items():
+ self[k] = v
def _agent_from_dict(self, agent):
"""
@@ -89,7 +91,7 @@ class BaseEnvironment(Model):
return serialization.deserialize(cls)(unique_id=unique_id, model=self, **agent)
- def init_agents(self, agents: Union[config.AgentConfig, [Dict[str, Any]]] = {}):
+ def init_agents(self, agents: Union[config.AgentConfig, List[Dict[str, Any]]] = {}):
"""
Initialize the agents in the model from either a `soil.config.AgentConfig` or a list of
dictionaries that each describes an agent.
@@ -170,31 +172,41 @@ class BaseEnvironment(Model):
Advance one step in the simulation, and update the data collection and scheduler appropriately
"""
super().step()
- self.logger.info(
- f"--- Step: {self.schedule.steps:^5} - Time: {self.now:^5} ---"
- )
+ # self.logger.info(
+ # "--- Step: {:^5} - Time: {now:^5} ---", steps=self.schedule.steps, now=self.now
+ # )
self.schedule.step()
self.datacollector.collect(self)
- def __contains__(self, key):
- return key in self.env_params
-
- def get(self, key, default=None):
- """
- Get the value of an environment attribute.
- Return `default` if the value is not set.
- """
- return self.env_params.get(key, default)
-
def __getitem__(self, key):
- return self.env_params.get(key)
+ try:
+ return getattr(self, key)
+ except AttributeError:
+ raise KeyError(f"key {key} not found in environment")
+
+ def __delitem__(self, key):
+ return delattr(self, key)
+
+ def __contains__(self, key):
+ return hasattr(self, key)
def __setitem__(self, key, value):
- return self.env_params.__setitem__(key, value)
+ setattr(self, key, value)
def __str__(self):
- return str(self.env_params)
+ return str(dict(self))
+ def __len__(self):
+ return sum(1 for n in self.keys())
+
+ def __iter__(self):
+ return iter(self.agents())
+
+ def get(self, key, default=None):
+ return self[key] if key in self else default
+
+ def keys(self):
+ return (k for k in self.__dict__ if k[0] != "_")
class NetworkEnvironment(BaseEnvironment):
"""
@@ -208,7 +220,12 @@ class NetworkEnvironment(BaseEnvironment):
agents = kwargs.pop("agents", None)
super().__init__(*args, agents=None, **kwargs)
- self._set_topology(topology)
+ if topology is None:
+ topology = nx.Graph()
+ elif not isinstance(topology, nx.Graph):
+ topology = network.from_config(topology, dir_path=self.dir_path)
+
+ self.G = topology
self.init_agents(agents)
@@ -216,14 +233,14 @@ class NetworkEnvironment(BaseEnvironment):
"""Initialize the agents from a"""
super().init_agents(*args, **kwargs)
for agent in self.schedule._agents.values():
- if hasattr(agent, "node_id"):
- self._init_node(agent)
+ self._init_node(agent)
def _init_node(self, agent):
"""
Make sure the node for a given agent has the proper attributes.
"""
- self.G.nodes[agent.node_id]["agent"] = agent
+ if hasattr(agent, "node_id"):
+ self.G.nodes[agent.node_id]["agent"] = agent
def _agent_dict_from_config(self, cfg):
return agentmod.from_config(cfg, topology=self.G, random=self.random)
@@ -244,6 +261,7 @@ class NetworkEnvironment(BaseEnvironment):
agent["unique_id"] = unique_id
agent["topology"] = self.G
node_attrs = self.G.nodes[node_id]
+ node_attrs.pop('agent', None)
node_attrs.update(agent)
agent = node_attrs
@@ -252,17 +270,9 @@ class NetworkEnvironment(BaseEnvironment):
return a
- def _set_topology(self, cfg=None, dir_path=None):
- if cfg is None:
- cfg = nx.Graph()
- elif not isinstance(cfg, nx.Graph):
- cfg = network.from_config(cfg, dir_path=dir_path or self.dir_path)
-
- self.G = cfg
-
@property
def network_agents(self):
- for a in self.schedule._agents:
+ for a in self.schedule._agents.values():
if isinstance(a, agentmod.NetworkAgent):
yield a
@@ -294,7 +304,7 @@ class NetworkEnvironment(BaseEnvironment):
def add_agent(self, *args, **kwargs):
a = super().add_agent(*args, **kwargs)
- if "node_id" in a:
+ if hasattr(a, "node_id"):
assert self.G.nodes[a.node_id]["agent"] == a
return a
@@ -309,7 +319,7 @@ class NetworkEnvironment(BaseEnvironment):
if "agent" in node:
continue
a_class = self.random.choices(agent_class, weights)[0]
- self.add_agent(node_id=node_id, agent_class=a_class, **agent_params)
+ self.add_agent(node_id=node_id, topology=self.G, agent_class=a_class, **agent_params)
class EventedEnvironment(BaseEnvironment):
diff --git a/soil/exporters.py b/soil/exporters.py
index 6efe70a..783d663 100644
--- a/soil/exporters.py
+++ b/soil/exporters.py
@@ -104,17 +104,15 @@ def get_dc_dfs(dc, trial_id=None):
yield from dfs.items()
-class default(Exporter):
- """Default exporter. Writes sqlite results, as well as the simulation YAML"""
+class SQLite(Exporter):
+ """Writes sqlite results"""
def sim_start(self):
if self.dry_run:
logger.info("NOT dumping results")
return
- logger.info("Dumping results to %s", self.outdir)
- with self.output(self.simulation.name + ".dumped.yml") as f:
- f.write(self.simulation.to_yaml())
self.dbpath = os.path.join(self.outdir, f"{self.simulation.name}.sqlite")
+ logger.info("Dumping results to %s", self.dbpath)
try_backup(self.dbpath, remove=True)
def trial_end(self, env):
@@ -131,7 +129,6 @@ class default(Exporter):
for (t, df) in self.get_dfs(env):
df.to_sql(t, con=engine, if_exists="append")
-
class csv(Exporter):
"""Export the state of each environment (and its agents) in a separate CSV file"""
@@ -199,15 +196,61 @@ class summary(Exporter):
"""Print a summary of each trial to sys.stdout"""
def trial_end(self, env):
+ msg = ""
for (t, df) in self.get_dfs(env):
if not len(df):
continue
- msg = indent(str(df.describe()), " ")
- logger.info(
- dedent(
- f"""
+ tabs = "\t" * 2
+ description = indent(str(df.describe()), tabs)
+ last_line = indent(str(df.iloc[-1:]), tabs)
+ # value_counts = indent(str(df.value_counts()), tabs)
+ value_counts = indent(str(df.apply(lambda x: x.value_counts()).T.stack()), tabs)
+
+ msg += dedent("""
Dataframe {t}:
- """
- )
- + msg
- )
+ Last line: :
+ {last_line}
+
+ Description:
+ {description}
+
+ Value counts:
+ {value_counts}
+
+ """).format(**locals())
+ logger.info(msg)
+
+class YAML(Exporter):
+ """Writes the configuration of the simulation to a YAML file"""
+
+ def sim_start(self):
+ if self.dry_run:
+ logger.info("NOT dumping results")
+ return
+ with self.output(self.simulation.name + ".dumped.yml") as f:
+ logger.info(f"Dumping simulation configuration to {self.outdir}")
+ f.write(self.simulation.to_yaml())
+
+class default(Exporter):
+ """Default exporter. Writes sqlite results, as well as the simulation YAML"""
+
+ def __init__(self, *args, exporter_cls=[], **kwargs):
+ exporter_cls = exporter_cls or [YAML, SQLite, summary]
+ self.inner = [cls(*args, **kwargs) for cls in exporter_cls]
+
+ def sim_start(self):
+ for exporter in self.inner:
+ exporter.sim_start()
+
+ def sim_end(self):
+ for exporter in self.inner:
+ exporter.sim_end()
+
+ def trial_start(self, env):
+ for exporter in self.inner:
+ exporter.trial_start(env)
+
+
+ def trial_end(self, env):
+ for exporter in self.inner:
+ exporter.trial_end(env)
\ No newline at end of file
diff --git a/soil/network.py b/soil/network.py
index a717021..c792755 100644
--- a/soil/network.py
+++ b/soil/network.py
@@ -30,7 +30,7 @@ def from_config(cfg: config.NetConfig, dir_path: str = None):
return method(path, **kwargs)
if cfg.params:
- net_args = cfg.params.dict()
+ net_args = dict(cfg.params)
net_gen = net_args.pop("generator")
if dir_path not in sys.path:
diff --git a/soil/serialization.py b/soil/serialization.py
index cd34a02..8010f8b 100644
--- a/soil/serialization.py
+++ b/soil/serialization.py
@@ -146,7 +146,10 @@ def serialize(v, known_modules=KNOWN_MODULES):
def serialize_dict(d, known_modules=KNOWN_MODULES):
- d = dict(d)
+ try:
+ d = dict(d)
+ except (ValueError, TypeError) as ex:
+ return serialize(d)[0]
for (k, v) in d.items():
if isinstance(v, dict):
d[k] = serialize_dict(v, known_modules=known_modules)
diff --git a/soil/simulation.py b/soil/simulation.py
index 75947de..451ec88 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -48,12 +48,17 @@ class Simulation:
max_steps: int = -1
interval: int = 1
num_trials: int = 1
- parallel: Optional[bool] = None
- exporters: Optional[List[str]] = field(default_factory=list)
+ num_processes: Optional[int] = 1
+ parallel: Optional[bool] = False
+ exporters: Optional[List[str]] = field(default_factory=lambda: [exporters.default])
+ model_reporters: Optional[Dict[str, Any]] = field(default_factory=dict)
+ agent_reporters: Optional[Dict[str, Any]] = field(default_factory=dict)
+ tables: Optional[Dict[str, Any]] = field(default_factory=dict)
outdir: Optional[str] = None
exporter_params: Optional[Dict[str, Any]] = field(default_factory=dict)
dry_run: bool = False
extra: Dict[str, Any] = field(default_factory=dict)
+ skip_test: Optional[bool] = False
@classmethod
def from_dict(cls, env, **kwargs):
@@ -89,7 +94,7 @@ class Simulation:
def run_gen(
self,
- parallel=False,
+ num_processes=1,
dry_run=None,
exporters=None,
outdir=None,
@@ -128,7 +133,7 @@ class Simulation:
for env in utils.run_parallel(
func=self.run_trial,
iterable=range(int(self.num_trials)),
- parallel=parallel,
+ num_processes=num_processes,
log_level=log_level,
**kwargs,
):
@@ -158,8 +163,12 @@ class Simulation:
params.update(model_params)
params.update(kwargs)
- agent_reporters = deserialize_reporters(params.pop("agent_reporters", {}))
- model_reporters = deserialize_reporters(params.pop("model_reporters", {}))
+ agent_reporters = self.agent_reporters.copy()
+ agent_reporters.update(deserialize_reporters(params.pop("agent_reporters", {})))
+ model_reporters = self.model_reporters.copy()
+ model_reporters.update(deserialize_reporters(params.pop("model_reporters", {})))
+ tables = self.tables.copy()
+ tables.update(deserialize_reporters(params.pop("tables", {})))
env = serialization.deserialize(self.model_class)
return env(
@@ -168,6 +177,7 @@ class Simulation:
dir_path=self.dir_path,
agent_reporters=agent_reporters,
model_reporters=model_reporters,
+ tables=tables,
**params,
)
@@ -234,12 +244,7 @@ Model stats:
def to_dict(self):
d = asdict(self)
- if not isinstance(d["model_class"], str):
- d["model_class"] = serialization.name(d["model_class"])
- d["model_params"] = serialization.serialize_dict(d["model_params"])
- d["dir_path"] = str(d["dir_path"])
- d["version"] = "2"
- return d
+ return serialization.serialize_dict(d)
def to_yaml(self):
return yaml.dump(self.to_dict())
@@ -261,6 +266,24 @@ def from_config(conf_or_path):
raise AttributeError("Provide only one configuration")
return lst[0]
+def iter_from_py(pyfile, module_name='custom_simulation'):
+ """Try to load every Simulation instance in a given Python file"""
+ import importlib
+ import inspect
+ spec = importlib.util.spec_from_file_location(module_name, pyfile)
+ module = importlib.util.module_from_spec(spec)
+ sys.modules[module_name] = module
+ spec.loader.exec_module(module)
+ # import pdb;pdb.set_trace()
+ for (_name, sim) in inspect.getmembers(module, lambda x: isinstance(x, Simulation)):
+ yield sim
+ del sys.modules[module_name]
+
+
+def from_py(pyfile):
+ return next(iter_from_py(pyfile))
+
+
def run_from_config(*configs, **kwargs):
for sim in iter_from_config(*configs):
diff --git a/soil/time.py b/soil/time.py
index 6dc39af..b3a87f8 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -133,10 +133,10 @@ class TimedActivation(BaseScheduler):
"""
self.logger.debug(f"Simulation step {self.time}")
- if not self.model.running:
+ if not self.model.running or self.time == INFINITY:
return
- self.logger.debug(f"Queue length: {len(self._queue)}")
+ self.logger.debug("Queue length: {ql}", ql=len(self._queue))
while self._queue:
((when, _id, cond), agent) = self._queue[0]
@@ -156,7 +156,7 @@ class TimedActivation(BaseScheduler):
agent._last_return = None
agent._last_except = None
- self.logger.debug(f"Stepping agent {agent}")
+ self.logger.debug("Stepping agent {agent}", agent=agent)
self._next.pop(agent.unique_id, None)
try:
@@ -187,6 +187,7 @@ class TimedActivation(BaseScheduler):
return self.time
next_time = self._queue[0][0][0]
+
if next_time < self.time:
raise Exception(
f"An agent has been scheduled for a time in the past, there is probably an error ({when} < {self.time})"
diff --git a/soil/utils.py b/soil/utils.py
index e1b3580..e573301 100644
--- a/soil/utils.py
+++ b/soil/utils.py
@@ -5,7 +5,7 @@ import traceback
from functools import partial
from shutil import copyfile, move
-from multiprocessing import Pool
+from multiprocessing import Pool, cpu_count
from contextlib import contextmanager
@@ -24,7 +24,7 @@ consoleHandler = logging.StreamHandler()
consoleHandler.setFormatter(logFormatter)
logging.basicConfig(
- level=logging.INFO,
+ level=logging.DEBUG,
handlers=[
consoleHandler,
],
@@ -140,9 +140,11 @@ def run_and_return_exceptions(func, *args, **kwargs):
return ex
-def run_parallel(func, iterable, parallel=False, **kwargs):
- if parallel and not os.environ.get("SOIL_DEBUG", None):
- p = Pool()
+def run_parallel(func, iterable, num_processes=1, **kwargs):
+ if num_processes > 1 and not os.environ.get("SOIL_DEBUG", None):
+ if num_processes < 1:
+ num_processes = cpu_count() - num_processes
+ p = Pool(processes=num_processes)
wrapped_func = partial(run_and_return_exceptions, func, **kwargs)
for i in p.imap_unordered(wrapped_func, iterable):
if isinstance(i, Exception):
diff --git a/tests/test_config.py b/tests/test_config.py
index 8d1d471..8fb0a83 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -99,7 +99,7 @@ class TestConfig(TestCase):
with utils.timer("serializing"):
serial = s.to_yaml()
with utils.timer("recovering"):
- recovered = yaml.load(serial, Loader=yaml.SafeLoader)
+ recovered = yaml.load(serial, Loader=yaml.FullLoader)
for (k, v) in config.items():
assert recovered[k] == v
@@ -109,24 +109,23 @@ def make_example_test(path, cfg):
root = os.getcwd()
print(path)
s = simulation.from_config(cfg)
- # for s in simulation.all_from_config(path):
- # iterations = s.config.max_time * s.config.num_trials
- # if iterations > 1000:
- # s.config.max_time = 100
- # s.config.num_trials = 1
- # if config.get('skip_test', False) and not FORCE_TESTS:
- # self.skipTest('Example ignored.')
- # envs = s.run_simulation(dry_run=True)
- # assert envs
- # for env in envs:
- # assert env
- # try:
- # n = config['network_params']['n']
- # assert len(list(env.network_agents)) == n
- # assert env.now > 0 # It has run
- # assert env.now <= config['max_time'] # But not further than allowed
- # except KeyError:
- # pass
+ iterations = s.max_time * s.num_trials
+ if iterations > 1000:
+ s.max_time = 100
+ s.num_trials = 1
+ if cfg.skip_test and not FORCE_TESTS:
+ self.skipTest('Example ignored.')
+ envs = s.run_simulation(dry_run=True)
+ assert envs
+ for env in envs:
+ assert env
+ try:
+ n = cfg.model_params['topology']['params']['n']
+ assert len(list(env.network_agents)) == n
+ assert env.now > 0 # It has run
+ assert env.now <= cfg.max_time # But not further than allowed
+ except KeyError:
+ pass
return wrapped
diff --git a/tests/test_examples.py b/tests/test_examples.py
index f589ecb..2479531 100644
--- a/tests/test_examples.py
+++ b/tests/test_examples.py
@@ -1,8 +1,9 @@
from unittest import TestCase
import os
from os.path import join
+from glob import glob
-from soil import serialization, simulation, config
+from soil import simulation, config
ROOT = os.path.abspath(os.path.dirname(__file__))
EXAMPLES = join(ROOT, "..", "examples")
@@ -14,44 +15,49 @@ class TestExamples(TestCase):
pass
-def make_example_test(path, cfg):
+def get_test_for_sim(sim, path):
+ root = os.getcwd()
+ iterations = sim.max_steps * sim.num_trials
+ if iterations < 0 or iterations > 1000:
+ sim.max_steps = 100
+ sim.num_trials = 1
+
def wrapped(self):
- root = os.getcwd()
- for s in simulation.iter_from_config(cfg):
- iterations = s.max_steps * s.num_trials
- if iterations < 0 or iterations > 1000:
- s.max_steps = 100
- s.num_trials = 1
- assert isinstance(cfg, config.Config)
- if getattr(cfg, "skip_test", False) and not FORCE_TESTS:
- self.skipTest("Example ignored.")
- envs = s.run_simulation(dry_run=True)
- assert envs
- for env in envs:
- assert env
- try:
- n = cfg.model_params["network_params"]["n"]
- assert len(list(env.network_agents)) == n
- except KeyError:
- pass
- assert env.schedule.steps > 0 # It has run
- assert env.schedule.steps <= s.max_steps # But not further than allowed
+ envs = sim.run_simulation(dry_run=True)
+ assert envs
+ for env in envs:
+ assert env
+ try:
+ n = sim.model_params["network_params"]["n"]
+ assert len(list(env.network_agents)) == n
+ except KeyError:
+ pass
+ assert env.schedule.steps > 0 # It has run
+ assert env.schedule.steps <= sim.max_steps # But not further than allowed
return wrapped
def add_example_tests():
- for cfg, path in serialization.load_files(
- join(EXAMPLES, "**", "*.yml"),
- ):
+ sim_paths = []
+ for path in glob(join(EXAMPLES, '**', '*.yml')):
if "soil_output" in path:
continue
- p = make_example_test(path=path, cfg=config.Config.from_raw(cfg))
+ for sim in simulation.iter_from_config(path):
+ sim_paths.append((sim, path))
+ for path in glob(join(EXAMPLES, '**', '*.py')):
+ for sim in simulation.iter_from_py(path):
+ sim_paths.append((sim, path))
+
+ for (sim, path) in sim_paths:
+ if sim.skip_test and not FORCE_TESTS:
+ continue
+ test_case = get_test_for_sim(sim, path)
fname = os.path.basename(path)
- p.__name__ = "test_example_file_%s" % fname
- p.__doc__ = "%s should be a valid configuration" % fname
- setattr(TestExamples, p.__name__, p)
- del p
+ test_case.__name__ = "test_example_file_%s" % fname
+ test_case.__doc__ = "%s should be a valid configuration" % fname
+ setattr(TestExamples, test_case.__name__, test_case)
+ del test_case
add_example_tests()
From 73282530fdf50dd94dd4f0d69f8a2e35a47439b5 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Sun, 9 Apr 2023 04:19:24 +0200
Subject: [PATCH 28/39] Big refactor v0.30
All test pass, except for the TestConfig suite, which is not too critical as the
plan for this version onwards is to avoid configuration as much as possible.
---
docs/notes_v0.30.rst | 47 +
examples/NewsSpread.ipynb | 532 -
examples/Untitled.ipynb | 80808 ----------------
examples/complete.yml | 54 -
.../custom_generator/custom_generator.yml | 16 -
.../{mymodule.py => generator_sim.py} | 17 +
...tom_timeouts.py => custom_timeouts_sim.py} | 32 +-
.../{cars.py => cars_sim.py} | 10 +-
examples/mesa/mesa.yml | 19 -
examples/mesa/mesa_sim.py | 7 +
examples/mesa/server.py | 14 +-
examples/newsspread/NewsSpread.yml | 133 -
examples/newsspread/newsspread.py | 87 -
examples/newsspread/newsspread_sim.py | 129 +
.../{programmatic.py => programmatic_sim.py} | 25 +-
examples/pubcrawl/pubcrawl.yml | 26 -
.../pubcrawl/{pubcrawl.py => pubcrawl_sim.py} | 36 +-
examples/rabbits/basic/rabbits.yml | 42 -
examples/rabbits/improved/rabbits.yml | 42 -
...abbit_agents.py => rabbit_improved_sim.py} | 28 +-
.../rabbit_agents.py => rabbits_basic_sim.py} | 21 +-
...{random_delays.py => random_delays_sim.py} | 12 +-
examples/template.yml | 30 -
examples/terrorism/TerroristNetworkModel.yml | 62 -
...kModel.py => TerroristNetworkModel_sim.py} | 103 +-
examples/torvalds.yml | 15 -
examples/torvalds_sim.py | 16 +
requirements.txt | 4 +-
soil/__init__.py | 3 +-
soil/agents/CounterModel.py | 8 +-
soil/agents/__init__.py | 27 +-
soil/agents/network_agents.py | 5 +-
soil/decorators.py | 4 +
soil/environment.py | 206 +-
soil/network.py | 70 +-
soil/parameters.py | 32 +
soil/simulation.py | 69 +-
soil/visualization.py | 6 -
tests/test_agents.py | 2 +-
tests/test_config.py | 13 +-
tests/test_examples.py | 5 +-
tests/test_exporters.py | 22 +-
tests/test_main.py | 93 +-
tests/test_network.py | 51 +-
tests/test_time.py | 3 +-
45 files changed, 721 insertions(+), 82265 deletions(-)
create mode 100644 docs/notes_v0.30.rst
delete mode 100644 examples/NewsSpread.ipynb
delete mode 100644 examples/Untitled.ipynb
delete mode 100644 examples/complete.yml
delete mode 100644 examples/custom_generator/custom_generator.yml
rename examples/custom_generator/{mymodule.py => generator_sim.py} (54%)
rename examples/custom_timeouts/{custom_timeouts.py => custom_timeouts_sim.py} (59%)
rename examples/events_and_messages/{cars.py => cars_sim.py} (97%)
delete mode 100644 examples/mesa/mesa.yml
create mode 100644 examples/mesa/mesa_sim.py
delete mode 100644 examples/newsspread/NewsSpread.yml
delete mode 100644 examples/newsspread/newsspread.py
create mode 100644 examples/newsspread/newsspread_sim.py
rename examples/programmatic/{programmatic.py => programmatic_sim.py} (71%)
delete mode 100644 examples/pubcrawl/pubcrawl.yml
rename examples/pubcrawl/{pubcrawl.py => pubcrawl_sim.py} (86%)
delete mode 100644 examples/rabbits/basic/rabbits.yml
delete mode 100644 examples/rabbits/improved/rabbits.yml
rename examples/rabbits/{improved/rabbit_agents.py => rabbit_improved_sim.py} (90%)
rename examples/rabbits/{basic/rabbit_agents.py => rabbits_basic_sim.py} (91%)
rename examples/random_delays/{random_delays.py => random_delays_sim.py} (82%)
delete mode 100644 examples/template.yml
delete mode 100644 examples/terrorism/TerroristNetworkModel.yml
rename examples/terrorism/{TerroristNetworkModel.py => TerroristNetworkModel_sim.py} (78%)
delete mode 100644 examples/torvalds.yml
create mode 100644 examples/torvalds_sim.py
create mode 100644 soil/decorators.py
create mode 100644 soil/parameters.py
delete mode 100644 soil/visualization.py
diff --git a/docs/notes_v0.30.rst b/docs/notes_v0.30.rst
new file mode 100644
index 0000000..13a2698
--- /dev/null
+++ b/docs/notes_v0.30.rst
@@ -0,0 +1,47 @@
+
+
+What are the main changes between version 0.3 and 0.2?
+######################################################
+
+Version 0.3 is a major rewrite of the Soil system, focused on simplifying the API, aligning it with Mesa, and making it easier to use.
+Unfortunately, this comes at the cost of backwards compatibility.
+
+We drew several lessons from the previous version of Soil, and tried to address them in this version.
+Mainly:
+
+- The split between simulation configuration and simulation code was overly complicated for most use cases. As a result, most users ended up reusing configuration.
+- Storing **all** the simulation data in a database is costly and unnecessary for most use cases. For most use cases, only a handful of variables need to be stored. This fits nicely with Mesa's data collection system.
+- The API was too complex, and it was difficult to understand how to use it.
+- Most parts of the API were not aligned with Mesa, which made it difficult to use Mesa's features or to integrate Soil modules with Mesa code, especially for newcomers.
+- Many parts of the API were tightly coupled, which made it difficult to find bugs, test the system and add new features.
+
+The 0.30 rewrite should provide a middle ground between Soil's opinionated approach and Mesa's flexibility.
+The new Soil is less configuration-centric.
+It aims to provide more modular and convenient functions, most of which can be used in vanilla Mesa.
+
+How are agents assigned to nodes in the network
+###############################################
+
+In principle, the generation of the network topology and the assignment of agents to nodes are two separate processes.
+There is a mechanism to initialize the agents, a mechanism to initialize the topology, and a mechanism to assign agents to nodes.
+
+However, there are a myriad of ways to do this, and it is not clear which is the best way to do it.
+Earlier versions of Soil approached it by providing a fairly complex method of agent and node generation.
+The result was a very complex and difficult to understand system, which is was also prone to bugs and changes between versions.
+
+Starting with version 0.3, the approach is to provide a simplified yet flexible system for generating the network topology and assigning agents to nodes.
+This is based on these methods:
+
+- `create_network`
+- `add_agents` (and `add_agent`)
+- `populate_network`
+
+The default implementation of `soil.Environment` accepts some parameters that will automatically do these steps for the most common case.
+All other cases can be handled by overriding the `init(self)` method and explicitly using these methods.
+
+
+Can Soil environments include more than one network / topology?
+###############################################################
+
+Yes, but each network has to be included manually.
+Somewhere between 0.20 and 0.30 we included the ability to include multiple networks, but it was deemed too complex and was removed.
diff --git a/examples/NewsSpread.ipynb b/examples/NewsSpread.ipynb
deleted file mode 100644
index 87b53f2..0000000
--- a/examples/NewsSpread.ipynb
+++ /dev/null
@@ -1,532 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 1,
- "metadata": {
- "ExecuteTime": {
- "start_time": "2017-11-02T09:48:41.843Z"
- },
- "scrolled": false
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "Populating the interactive namespace from numpy and matplotlib\n"
- ]
- }
- ],
- "source": [
- "import soil\n",
- "import networkx as nx\n",
- " \n",
- "%load_ext autoreload\n",
- "%autoreload 2\n",
- "\n",
- "# To display plots in the notebook\n",
- "%pylab inline\n",
- "\n",
- "from soil import *"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "# News Spreading example with SOIL"
- ]
- },
- {
- "cell_type": "markdown",
- "metadata": {},
- "source": [
- "In this example we three different kinds of models, which we combine in five types of simulation"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "total 288K\r\n",
- "drwxr-xr-x 7 j users 4.0K May 23 12:48 .\r\n",
- "drwxr-xr-x 15 j users 20K May 7 18:59 ..\r\n",
- "-rw-r--r-- 1 j users 451 Oct 17 2017 complete.yml\r\n",
- "drwxr-xr-x 2 j users 4.0K Feb 18 11:22 .ipynb_checkpoints\r\n",
- "drwxr-xr-x 2 j users 4.0K Oct 17 2017 long_running\r\n",
- "-rw-r--r-- 1 j users 1.2K May 23 12:49 .nbgrader.log\r\n",
- "drwxr-xr-x 4 j users 4.0K May 4 11:23 newsspread\r\n",
- "-rw-r--r-- 1 j users 225K May 4 11:23 NewsSpread.ipynb\r\n",
- "drwxr-xr-x 4 j users 4.0K May 4 11:21 rabbits\r\n",
- "-rw-r--r-- 1 j users 42 Jul 3 2017 torvalds.edgelist\r\n",
- "-rw-r--r-- 1 j users 245 Oct 13 2017 torvalds.yml\r\n",
- "drwxr-xr-x 4 j users 4.0K May 4 11:23 tutorial\r\n"
- ]
- }
- ],
- "source": [
- "!ls "
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 9,
- "metadata": {
- "ExecuteTime": {
- "start_time": "2017-11-02T09:48:43.440Z"
- }
- },
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "---\r\n",
- "default_state: {}\r\n",
- "load_module: newsspread\r\n",
- "environment_agents: []\r\n",
- "environment_params:\r\n",
- " prob_neighbor_spread: 0.0\r\n",
- " prob_tv_spread: 0.01\r\n",
- "interval: 1\r\n",
- "max_time: 30\r\n",
- "name: Sim_all_dumb\r\n",
- "network_agents:\r\n",
- "- agent_class: DumbViewer\r\n",
- " state:\r\n",
- " has_tv: false\r\n",
- " weight: 1\r\n",
- "- agent_class: DumbViewer\r\n",
- " state:\r\n",
- " has_tv: true\r\n",
- " weight: 1\r\n",
- "network_params:\r\n",
- " generator: barabasi_albert_graph\r\n",
- " n: 500\r\n",
- " m: 5\r\n",
- "num_trials: 50\r\n",
- "---\r\n",
- "default_state: {}\r\n",
- "load_module: newsspread\r\n",
- "environment_agents: []\r\n",
- "environment_params:\r\n",
- " prob_neighbor_spread: 0.0\r\n",
- " prob_tv_spread: 0.01\r\n",
- "interval: 1\r\n",
- "max_time: 30\r\n",
- "name: Sim_half_herd\r\n",
- "network_agents:\r\n",
- "- agent_class: DumbViewer\r\n",
- " state:\r\n",
- " has_tv: false\r\n",
- " weight: 1\r\n",
- "- agent_class: DumbViewer\r\n",
- " state:\r\n",
- " has_tv: true\r\n",
- " weight: 1\r\n",
- "- agent_class: HerdViewer\r\n",
- " state:\r\n",
- " has_tv: false\r\n",
- " weight: 1\r\n",
- "- agent_class: HerdViewer\r\n",
- " state:\r\n",
- " has_tv: true\r\n",
- " weight: 1\r\n",
- "network_params:\r\n",
- " generator: barabasi_albert_graph\r\n",
- " n: 500\r\n",
- " m: 5\r\n",
- "num_trials: 50\r\n",
- "---\r\n",
- "default_state: {}\r\n",
- "load_module: newsspread\r\n",
- "environment_agents: []\r\n",
- "environment_params:\r\n",
- " prob_neighbor_spread: 0.0\r\n",
- " prob_tv_spread: 0.01\r\n",
- "interval: 1\r\n",
- "max_time: 30\r\n",
- "name: Sim_all_herd\r\n",
- "network_agents:\r\n",
- "- agent_class: HerdViewer\r\n",
- " state:\r\n",
- " has_tv: true\r\n",
- " id: neutral\r\n",
- " weight: 1\r\n",
- "- agent_class: HerdViewer\r\n",
- " state:\r\n",
- " has_tv: true\r\n",
- " id: neutral\r\n",
- " weight: 1\r\n",
- "network_params:\r\n",
- " generator: barabasi_albert_graph\r\n",
- " n: 500\r\n",
- " m: 5\r\n",
- "num_trials: 50\r\n",
- "---\r\n",
- "default_state: {}\r\n",
- "load_module: newsspread\r\n",
- "environment_agents: []\r\n",
- "environment_params:\r\n",
- " prob_neighbor_spread: 0.0\r\n",
- " prob_tv_spread: 0.01\r\n",
- " prob_neighbor_cure: 0.1\r\n",
- "interval: 1\r\n",
- "max_time: 30\r\n",
- "name: Sim_wise_herd\r\n",
- "network_agents:\r\n",
- "- agent_class: HerdViewer\r\n",
- " state:\r\n",
- " has_tv: true\r\n",
- " id: neutral\r\n",
- " weight: 1\r\n",
- "- agent_class: WiseViewer\r\n",
- " state:\r\n",
- " has_tv: true\r\n",
- " weight: 1\r\n",
- "network_params:\r\n",
- " generator: barabasi_albert_graph\r\n",
- " n: 500\r\n",
- " m: 5\r\n",
- "num_trials: 50\r\n",
- "---\r\n",
- "default_state: {}\r\n",
- "load_module: newsspread\r\n",
- "environment_agents: []\r\n",
- "environment_params:\r\n",
- " prob_neighbor_spread: 0.0\r\n",
- " prob_tv_spread: 0.01\r\n",
- " prob_neighbor_cure: 0.1\r\n",
- "interval: 1\r\n",
- "max_time: 30\r\n",
- "name: Sim_all_wise\r\n",
- "network_agents:\r\n",
- "- agent_class: WiseViewer\r\n",
- " state:\r\n",
- " has_tv: true\r\n",
- " id: neutral\r\n",
- " weight: 1\r\n",
- "- agent_class: WiseViewer\r\n",
- " state:\r\n",
- " has_tv: true\r\n",
- " weight: 1\r\n",
- "network_params:\r\n",
- " generator: barabasi_albert_graph\r\n",
- " n: 500\r\n",
- " m: 5\r\n",
- "network_params:\r\n",
- " generator: barabasi_albert_graph\r\n",
- " n: 500\r\n",
- " m: 5\r\n",
- "num_trials: 50\r\n"
- ]
- }
- ],
- "source": [
- "!cat newsspread/NewsSpread.yml"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {
- "ExecuteTime": {
- "start_time": "2017-11-02T09:48:43.879Z"
- }
- },
- "outputs": [
- {
- "ename": "ValueError",
- "evalue": "No objects to concatenate",
- "output_type": "error",
- "traceback": [
- "\u001b[0;31m----------------------------------------------------------------------\u001b[0m",
- "\u001b[0;31mValueError\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[0mevodumb\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0manalysis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mread_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'soil_output/Sim_all_dumb/'\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mgroup\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mprocess\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0manalysis\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_count\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mkeys\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'id'\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;32m~/git/lab.gsi/soil/soil/soil/analysis.py\u001b[0m in \u001b[0;36mread_data\u001b[0;34m(group, *args, **kwargs)\u001b[0m\n\u001b[1;32m 11\u001b[0m \u001b[0miterable\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0m_read_data\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m*\u001b[0m\u001b[0margs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 12\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mgroup\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 13\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mgroup_trials\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0miterable\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 14\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 15\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0miterable\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
- "\u001b[0;32m~/git/lab.gsi/soil/soil/soil/analysis.py\u001b[0m in \u001b[0;36mgroup_trials\u001b[0;34m(trials, aggfunc)\u001b[0m\n\u001b[1;32m 159\u001b[0m \u001b[0mtrials\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrials\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 160\u001b[0m \u001b[0mtrials\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mlist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mmap\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;32mlambda\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m:\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0misinstance\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtuple\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;32melse\u001b[0m \u001b[0mx\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mtrials\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 161\u001b[0;31m \u001b[0;32mreturn\u001b[0m \u001b[0mpd\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mconcat\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mtrials\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mgroupby\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mlevel\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0magg\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0maggfunc\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mreorder_levels\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m,\u001b[0m\u001b[0maxis\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m1\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 162\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 163\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
- "\u001b[0;32m~/.local/lib/python3.6/site-packages/pandas/core/reshape/concat.py\u001b[0m in \u001b[0;36mconcat\u001b[0;34m(objs, axis, join, join_axes, ignore_index, keys, levels, names, verify_integrity, copy)\u001b[0m\n\u001b[1;32m 210\u001b[0m \u001b[0mkeys\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mkeys\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mlevels\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mlevels\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mnames\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mnames\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 211\u001b[0m \u001b[0mverify_integrity\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mverify_integrity\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 212\u001b[0;31m copy=copy)\n\u001b[0m\u001b[1;32m 213\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mop\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mget_result\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 214\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n",
- "\u001b[0;32m~/.local/lib/python3.6/site-packages/pandas/core/reshape/concat.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, objs, axis, join, join_axes, keys, levels, names, ignore_index, verify_integrity, copy)\u001b[0m\n\u001b[1;32m 243\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 244\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mlen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mobjs\u001b[0m\u001b[0;34m)\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0;36m0\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 245\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mValueError\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m'No objects to concatenate'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 246\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 247\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0mkeys\u001b[0m \u001b[0;32mis\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
- "\u001b[0;31mValueError\u001b[0m: No objects to concatenate"
- ]
- }
- ],
- "source": [
- "evodumb = analysis.read_data('soil_output/Sim_all_dumb/', group=True, process=analysis.get_count, keys=['id']);"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "ExecuteTime": {
- "start_time": "2017-11-02T09:48:45.458Z"
- }
- },
- "outputs": [],
- "source": [
- "evodumb['mean'].plot(yerr=evodumb['std'])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 5,
- "metadata": {
- "ExecuteTime": {
- "end_time": "2017-11-01T13:26:19.361423Z",
- "start_time": "2017-11-01T14:25:57.017418+01:00"
- }
- },
- "outputs": [],
- "source": [
- "evodumb = analysis.read_data('soil_output/Sim_all_dumb/', group=True, process=analysis.get_count, keys=['id']);\n",
- "evohalfherd = analysis.read_data('soil_output/Sim_half_herd/', group=True, process=analysis.get_count, keys=['id'])\n",
- "evoherd = analysis.read_data('soil_output/Sim_all_herd/', group=True, process=analysis.get_count, keys=['id'])\n",
- "evoherdwise = analysis.read_data('soil_output/Sim_wise_herd/', group=True, process=analysis.get_count, keys=['id'])\n",
- "evowise = analysis.read_data('soil_output/Sim_all_wise/', group=True, process=analysis.get_count, keys=['id'])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {
- "ExecuteTime": {
- "end_time": "2017-11-01T13:26:20.461665Z",
- "start_time": "2017-11-01T14:26:19.363815+01:00"
- }
- },
- "outputs": [
- {
- "data": {
- "image/png": "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\nXr2ao48+GoC6ujrGjh3bk/88vabL0HfOrQOOTLD8n3jt+22X1wMX9kjpRGRI+/73v8+UKVOYPXt2\nh+vE91zJyMiIzUcbEJxz/PSnP+Xqq69O6juvuOIKbr31Vg499NB2+0r0vfHfmZKSQlNTE845Zs6c\nya233prUdw4kGoZBRPpNfn4+F110EQsXLowtmzp1Kk8++SQAixcv5sQTT+x0H2eddRaLFi2iutrr\nWf75559TUlICwLRp0/j8889brZ+WlsYPfvAD7r777tiyk08+OdY8s3z5ckaPHk1ubm6H3zlt2jSW\nLFkS+57y8nI++eSTZA+7Xyn0RaRf3Xjjja168dx77738/ve/p6CggMcee4x77rmn0+3PPPNMvvWt\nb3H88cdz+OGHM336dKqqqohEImzatIn8/Px228yZM4empqbY+wULFlBUVERBQQHz58/nkUceabdN\nvEMOOYRf/OIXnHnmmRQUFHDGGWewdevWbh55/7CBcI21sLDQFRUV9XcxRCTOhg0bOPjgRL2zB4f1\n69ezaNEi7rzzzv4uSo9I9HuY2WrnXGF39qOavogMSYcddtiQCfyepNAXEQkQhb6ISIAo9EVEAkSh\nLyISIAp9EZEAUeiLiASIQl9EBqy6ujq+/OUv09zczJYtW5g+fXrC9U455RT68l6fu+++m9ra2m5v\nN2vWrNjooJdccgkbN27s6aJ1SaEvIgPWokWLuOCCC0hJSWGvvfZqNZxyf+os9JMdYnnevHncfvvt\nPVmspCQzyqaIBNwtL77H+1t29ug+D9krl5u/fmin6yxevJjHH38cgM2bN3POOeewfv166urqmD17\nNu+//z4HH3wwdXV1XX7fKaecwrHHHsuyZcuoqKhg4cKFnHTSSTQ3NzN//nyWL19OQ0MD11xzDVdf\nfTXLly/njjvu4KWXXgK8IZ8LCwvZuXMnW7Zs4dRTT2X06NEsW7aM7OxsbrjhBl555RV++9vf8tpr\nr/Hiiy9SV1fH1KlTeeCBB9o98vCkk05i1qxZNDU1kZrad1Gsmr6IDEiNjY3885//ZOLEie0+u//+\n+8nKymLdunXcdNNNrF69Oql9NjU1sXLlSu6++25uueUWABYuXMiIESNYtWoVq1at4qGHHuJf//pX\nh/u4/vrr2WuvvVi2bBnLli0DoKamhsMOO4y33nqLE088kWuvvZZVq1bFTlDRE0e8UCjEgQceyDvv\n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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "image/png": "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\n02a2CXjYzH4KvAos9JdfCCwxs614Z/iX9UG5RWSIy8vLY/r06dx9991kZWXF57/44os8/vjjAFx5\n5ZV873vfi793wQUXkJaWxqRJk9i1axfghf5zzz3HMcccA0BlZSVbtmzh1FNPbfOZoVCI7373u9xy\nyy2ce+658fmrVq3iscceA+CMM86gtLQ0fjD67Gc/S0ZGBhkZGYwZM4Zdu3bx/PPPs3btWo4//ngA\nampqGDNmTG/+efpMp6HvnNsAHJNk/jt49fut59cCX+yV0onIsPatb32LY489llmzZrW7TGLLlYyM\njPh4rALBOccPfvAD5s6dm9JnXnnlldxyyy0ceeSRbbaV7HMTPzMUCtHQ0IBzjhkzZnDLLbek9JmD\nibphEJEBU1BQwCWXXMLChQvj80466SQefvhhAJYuXcrJJ5/c4TbOOeccFi1aRGWl17L8gw8+YPfu\n3QBMmzaNDz74oMXykUiEb3/729x1113xeaeeemq8embFihUUFhaSl5fX7mdOmzaNZcuWxT+nrKyM\nd999N9XdHlAKfREZUNdff32LVjx33303v/vd7yguLmbJkiX88pe/7HD9s88+my9/+ct88pOf5Oij\nj+biiy+moqKCpqYmtm7dSkFBQZt1rrrqKhoaGuLTCxYsYM2aNRQXFzN//nwWL17cZp1EkyZN4qc/\n/Slnn302xcXFnHXWWezcubOLez4wbDBcY50yZYpbs2bNQBdDRBJs3ryZI45I1jp7aNi4cSOLFi3i\njjvuGOii9Ipk34eZrXXOTenKdnSmLyLD0lFHHTVsAr83KfRFRAJEoS8iEiAKfRGRAFHoi4gEiEJf\nRCRAFPoiIgGi0BeRQaumpobTTjuNxsZGduzYwcUXX5x0ualTp9Kf9/rcddddVFdXd3m9mTNnxnsH\nveyyy9iyZUtvF61TCn0RGbQWLVrERRddRCgU4sADD2zRnfJA6ij0U+1ied68edx22229WayUpNLL\npogE3I1PvcGmHft7dZuTDszjhs8d2eEyS5cu5aGHHgJg27ZtnHfeeWzcuJGamhpmzZrFpk2bOOKI\nI6ipqen086ZOnconPvEJli9fTnl5OQsXLuSUU06hsbGR+fPns2LFCurq6rj66quZO3cuK1as4Pbb\nb+fpp58GvC6fp0yZwv79+9mxYwenn346hYWFLF++nNzcXK677jqeffZZfvGLX/DCCy/w1FNPUVNT\n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\nAElFTkSuQmCC\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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\n+7d/45FHHonMO/HEEyPNM++99x75+flkZma2+53z58/n5ZdfjnxPZWUlO3fu7OphD6gutemLiFNE\nVgEHgL8BW4FqY0zAXqUEGG2PjwZ2A9jLa4C8OPtcKCIrRGRFWVlZ745CKTVk3XbbbTG9eBYtWsTT\nTz9NcXExzz//PL/+9a873P6MM87g8ssv52tf+xrTp0/nwgsvpK6ujlAoxJYtW8jNzT1km+uvv55A\nIBCZvvvuu1mxYgXFxcXccccdPPvss4dsE23q1Kn87Gc/44wzzqC4uJjTTz+dffv2dfPIB4bEu6xp\nd2WRbODPwJ3A08aYw+35Y4E3jTHTRWQtcKYxpsRethWYZ4ypaG+/c+bMMStWrOjFYSilEm39+vUc\nddRRA12MHluzZg1PPfUUDz300EAXJSHi/R4istIYM6c7++lW7x1jTDXwHnAckC0i4XsCY4C99ngJ\nMNYukAvIAiq78z1KKdVb06ZNGzYBP5G60nunwK7hIyJe4DRgPbAMuNBe7WrgNXv8dXsae/m7pjuX\nE0oppfpMV3rvjAKeFREn1kniRWPMGyKyDlgiIj8DvgDCd2KeBJ4XkS1YNfxL+6DcSimleqDToG+M\nWQ3MjDN/GzAvzvxm4KKElE4ppVRC6RO5SimVRDToK6VUEtGgr5QatJqamjjppJMIBoPs3buXCy+8\nMO56J598Mv3Z7fuRRx6hsbGx29tdc801kURxl156abvpIvqSBn2l1KD11FNPccEFF+B0OjnssMNi\nMmsOpI6Cflezbd5444088MADiSxWl2jQV0oNWosXL+bcc88FYMeOHUybNg2wrgAuvfRSiouLueSS\nS2hqaup0XyeffDK333478+bN44gjjuCDDz4ArCD9wx/+MJKa+fHHHwesdAzf+ta3ItvfcsstPPPM\nMyxatIi9e/dyyimncMoppwCQnp7OnXfeybHHHssnn3zCvffey9y5c5k2bRoLFy6Mm9vnhBNO4O9/\n/3vMk8H9oStdNpVSSe6ev6xl3d7ahO5z6mGZ3PUvR7e7vLW1lW3btlFUVHTIskcffZS0tDRWr17N\n6tWrmTVrVpe+MxAIsHz5ct58803uuece/v73v/Pkk0+SlZXFZ599RktLC8cffzxnnHFGu/u49dZb\neeihh1i2bBn5+fkANDQ0MG3aNO69917r2KZO5c477wSsBG9vvPEG//Iv/xKzH4fDweGHH86XX37J\n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\nAAAAAElFTkSuQmCC\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "image/png": "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\n9beB0KCvlFJRRIO+UkpFEQ36SikVRTToK6VUFNGgr5RSUUSDvlJKRREN+kopFUU06CulVBTRoK+U\nUlFEg75SSkURDfpKKRVFNOGaUqpHfr+f8vJyvF7vcFcl6nk8HnJycnC7D/5JWhr0lVI9Ki8vJykp\niby8PET6+cQOddCMMdTW1lJeXs7kyZMPens6vKOU6pHX6yUjI0MD/jATETIyMgbsiEuDvlKqVxrw\nR4aB/B006CulVBTRoK+UGnIiwo9//OPw+/vvv58777xzUL8zLy+P73znO+H3L774Itdcc82gfudI\npEFfKTXkYmNjeemll6ipqRnS712xYgXr1q0b0u8caTToK6WGnMvlYuHChTz44IP7fLZt2zYWLFhA\ncXExCxYsYPv27QBcc8013HzzzRx77LHk5+fz4osvhtf53e9+x5FHHklxcTF33HFHr9/7k5/8hN/8\n5jf7LK+rq+O8886juLiYo48+mjVr1gBw55138t3vfpeTTjqJ/Px8Hn744fA6f/nLX5g/fz6zZs3i\n+uuvJxgM9vvfYyhp0FdKDYsbb7yRZ599loaGhm7Lb7rpJq666irWrFnD5Zdfzs033xz+rKKiguXL\nl/Paa69x2223AfDmm2+yefNmPvvsM1avXs3KlSt5//33e/zOiy66iFWrVlFSUtJt+R133MHs2bNZ\ns2YNv/nNb7jqqqvCn23YsIF//etffPbZZ9x11134/X7Wr1/Pc889x4cffsjq1atxOp08++yzA/VP\nM6gOGPRFxCMin4nIlyKyTkTuspdPFpFPRWSziDwnIjH28lj7fYn9ed7g7oJSajRKTk7mqquu6tZ7\nBvj444+57LLLALjyyitZvnx5+LPzzjsPh8PB9OnTqaysBKyg/+abbzJ79mzmzJnDhg0b2Lx5c4/f\n6XQ6+elPf8o999zTbfny5cu58sorATjllFOora0NN0Znn302sbGxZGZmMmbMGCorK1m2bBkrV67k\nyCOPZNasWSxbtozS0tKB+YcZZJHcnNUOnGKMaRYRN7BcRN4AbgEeNMYsFZHHgOuAR+3pHmNMoYhc\nAvwWuHiQ6q+UGsV+9KMfMWfOHK699tpey3S9XDE2NjY8b4wJT3/+859z/fXXR/SdV155Jffccw+H\nH374Ptvq6Xu7fqfT6SQQCGCM4eqrr96n8RgNDtjTN5Zm+63bfhngFKBjUG0xcJ49f679HvvzBaIX\n+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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "for i in [evodumb, evohalfherd, evoherd, evoherdwise, evowise]:\n",
- " i['mean'].plot(yerr=i['std'])"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 10,
- "metadata": {
- "ExecuteTime": {
- "end_time": "2017-11-01T13:27:56.226662Z",
- "start_time": "2017-11-01T14:27:55.987887+01:00"
- },
- "scrolled": true
- },
- "outputs": [
- {
- "data": {
- "image/png": "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\nLKG8i4hsD13mERERacN++71c2JDifyTwx8slaxYCkN5z/+2e54YNG+jUqVPMYdM/nMUNv7wFgLy8\nPPLy8hJ8DLCIAAAgAElEQVSa5rnnngvA4YcfzvLlywF46623mDt3Li8+Px6AwuJSFi1aREpKSsJ5\nDYfDnHfeebW/p0yZwn333UdxcTEbN6zngH1jr7Nu3bqxevVqDj/88ITnJSLSHArERETk26+mdeuy\n/+z0Sc9fUwBA0zfy7drptvR/cqWnp1NaGvs5LAAza/Y0U1NTAR84VVZWAuCc489//jPH5fX38w2C\nx+nTp1NdXV07blN5SUtLIxwO16b78Y9/zKxZs+jbty+33jSa0rKymOOVlpaSnq5/ORORXUe3JoqI\niLSQ+WsKagOstqxz585UVVXFDICOOWow48f7Fqx58+Yxd+7c2mEjRoxg5syZCc/ntNNO469//SsV\nFRUAfPXVV2zbto3+/fuzYMECysrKKCgo4N13360dJ6NDe4q2bYs5vZr8ZmdnU1RUxL/+82aj8/7q\nq6/Izd3Z4bWISB21iImIiEiznXrqqUyfPp2TTz65Xv+rRgznx7fcQ15eHoMGDWLIkCG1w+bOnUvP\nnj0TnseVV17J8uXLGXraeTjn6NazD//617/o27cvF154IXl5eQwcOJBDDz20dpzLf3Ah5/zganr1\n7V/7nFiNTp06cdVVV3HwwQeTk5PDYYccHHO+69atIz09vVl5FRFpLgViIiLyrdfc2wd31e2G3yaj\nR4/mgQce4OSTTyYnJ4d58+ZRsmYh6elpTJgwoUH6rVu3MnDgQPr27dtg2NSpU2u7s7Oza58RC4VC\njB07lt9cNwKo/1zbfffdF/MV89de8UOuveKHtWmLiorqDb/rrru46667gLrn5QCeeuqp2u7nnnuO\na665Js4aEBHZMbo1UURE2ia92bBVHXrooZxwwgkJ/zdXZmYmEydO3MW52jk6derEyJEjWzsbIvIt\npxYxERFpk9Rq1fouv/zy1s7CLnHZZZe1dhZEZA+gFjEREREREZEWpkBMRER2H7rdUERE9hAKxERE\nZJe66LEZXPTYjNbOhoiIyG5Fz4iJiMguddvGXwRd0+Om1XNfIiKyp1CLmIiIiDRbSUkJxx9/PFVV\nVaxevZrzzz8/Zrphw4Yxa9asJqd122238c477zSZpqysnJNPPplBgwbxwgsvNCuvy5cv57nnnmvW\n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\nIiLSwhSIiYiIiIiItDA9IyYie7T5Y48BIHcnP4Cv57NERESkKWoRE5Fvlfljj6kNrkRERER2VwrE\nREREREREWpgCMRERERERkRamZ8RERBKk575ERERkZ1GLmIjs/v5+Zt2fKYuIiIh8CygQExERERER\naWEKxERERERERFqYnhETkd2ens0SERGRbxu1iImIiIiIiLQwBWIiIiIiIiItTIGYiIiIiIhIC1Mg\nJiIiIiIi0sIUiIlI69B/g4mIiMgeTG9NFJFWoTchioiIyJ5MLWIibZCZnW5mX5rZYjMbE2N4qpm9\nEAz/yMxygv5dzGyKmRWZ2SMtnW8RERER8RSIibQxZhYG/gKcARwIXGxmB0YluwLY7JzbB3gQuDfo\nXwr8Bvh5C2VXRERERGJQICbS9gwBFjvnljrnyoEJwNlRac4Gng66JwEnmZk557Y556bjAzIRERER\naSUKxETant7AiojfK4N+MdM45yqBAqBLi+ROREREROJSICbS9liMfm470jQ9E7OrzWyWmc3Kz89v\nzqgiIiIiEocCMZG2ZyXQN+J3H2B1Y2nMLAnoCGxqzkycc4875wY75wZ37dp1B7IrIiIiItEUiIm0\nPR8DA81sLzNLAYYDr0SleQUYGXSfD0x2zjWrRUxEREREdh39j5hIG+OcqzSz0cCbQBh40jk338zu\nBGY5514BxgHPmNlifEvY8JrxzWw5kAmkmNk5wKnOuQUtvRwiIiIiezIFYiJtkHPudeD1qH63RXSX\nAhc0Mm7OLs2ciIiIiMSlWxNFRERERERamAIxERERERGRFqZATER2mosem8FFj81o7WyIiIiI7PYU\niImIiIiIiLQwBWIiIiIiIiItTG9NFJGd5raNvwi6prdqPkRERER2d2oRExERERERaWEKxERERERE\nRFqYAjEREREREZEWpkBMRERERESkhSkQExERERERaWEKxERERERERFqYAjEREREREZEWpkBMRERE\nRESkhSkQExERERERaWEKxERERERERFqYAjEREREREZEWpkBMRERERESkhSkQExERERERaWEKxERE\nRERERFpYUmtnQESkrQi7CsJUw6alYGGwEITCvjsU/A76mavGcFC8Caoroao8+ER0B/3bVxdRRdgP\nC6talj2Yc1BRAhXFUF4E5cVQUUz76iLAwdKpwX4Wjtj3QvX2wVRXSqVOb0SkDVBNJSLSlMJ1sODf\n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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "diff = evodumb['mean']-evohalfherd['mean']\n",
- "m = evodumb['max'].loc[0].sum()\n",
- "diff = diff / m\n",
- "diff.plot(yerr=(evodumb['std']+evoherd['std'])/m,\n",
- " title='Comparing the Herd and Dumb behaviours: normalized difference and error in number of agents in each state when using 50% herd agents.');"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 11,
- "metadata": {
- "ExecuteTime": {
- "end_time": "2017-11-01T13:28:05.554284Z",
- "start_time": "2017-11-01T14:28:05.324360+01:00"
- }
- },
- "outputs": [
- {
- "data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAA2oAAAEXCAYAAADcCLc9AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAIABJREFUeJzs3Xl8FdX9//HXyR4gISQB2QmrlWhkRxERN9AWv1WkSrUo\n2Fa0It+2tt/Sn62itWittdraWjdKa6FY0Vr1a79SBUQUZTcCKiCELazZA0nIcn5/nEm4ublJbkjC\nTcL7+XjcRzL7mZkzZ+Yzc+aMsdYiIiIiIiIiLUdYqBMgIiIiIiIi1SlQExERERERaWEUqImIiIiI\niLQwCtRERERERERaGAVqIiIiIiIiLYwCNRERERERkRamTQdqxpibjTFLT9OyUowx1hgTcTqW1xSM\nMQuMMQ+dpmVZY8yA07Gs+jR0XzVmOzXXNj6debutMMasMMZ8x/u/ybdfY/KVMeZiY8wXPsPONsZs\nNMYUGGNmG2NijTFvGGPyjDEvN2W6WytjTIYx5opQp6M2xpjexphCY0x4qNNSF2PMeGPMvhAu/zpj\nzF5vWw0NVTqakjFmizFmfKjTUel0nutDoaWvX2spC5qS7/m2meY/1xjzt+aaf0sSVKBmjLnJGLPO\ny2gHjDH/NsaMbe7ENZa1dqG1dkJzzLs5LxJqO3E2d8YPFW+9ir2L0nxjzHpjzBxjTHSo09ZSNWfe\nPhO0tO1nrX3fWnu2T6//AVZYa+Ostb8DpgBnAUnW2m+EJJHSINbaPdbaDtba8lCnpYV7DJjlbauN\noU5Mpcac4621qdbaFU2cpJBr6DXImXQxXZfmLAuMMZcaY5Z7N/EyAgxP8YYfN8Z87p+njTE/MMYc\n9KafX3ndZYyJMMYsNsbketf8cT7T3GuM+UFTr0tr11wPbOoN1IwxPwSeAObhLhR6A38Evt6UCWlq\nrenJVnNrJdtilrU2DugG3ANMBd4yxpjQJuvM0lLySktJRwj1Abb4dW+z1pY1dEbalnULtH0aus20\njZ1T3A7+eV1EgncMmA/8uJbhfwc2AknAvcASY0xnAGPMRGAOcDmQAvQDHvCmmwxYIBnIB2Z60/QF\nrgF+3/SrUpNx2nTtv3pZa2v9AR2BQuAbdYwTjQvkMr3fE0C0N2w8sA93d/gwcAC4FvgqsA3IBv6f\nz7zmAkuAl4ACYANwvs/wOcCX3rCtwHU+w6YDHwC/9eb7kNdvlc84FrgD2A7kAH8AjDcsHPgNcBTY\nBczyxo8IsM4vAhVAkbd9/geXyS1wK7DHm8+9PtOE+aQ/C/gHkFjLNh0P7AvQfwXwHZ/uScAmIBf4\nEEjzGZYB/ARIB0qACGCot00LvG28GHioljT0B5Z5aT0KLAQS/Ob/I2/+ed78YnyG/9jb35nAbd62\nGVDLsqqtl9evN3AcmOR1L/BNq/828tLzYy89x4AXcDcW/u2t7ztAJ2/cyn11u5e+A8A9deTxBcCf\ngP9483oP6OMz/CvesGzgC+AGv2n/APyvN+3HQH+f4U8Ce3EF4XrgYq9/d1z+SvQZd6i3LyKpmbfH\nAGu9fbEWGOO3ba7wO87+5rctvo3LtyuBGOBv3r7P9eZ3Vl1lRQPyxXeBHd62eh3o7nd83oU7Pnf5\n9Pue168A+AUub672ttk/gChv3E7Am8AR3PH9JtAzUD7z3X6447fQ51cKLPApA1/w8sh+XLkS7lNm\nPObtk51e2gOWGT77L+Dxh09+xh135UCxl56/Aye8dBUC3/bGuw34zFvXt6meJwNty8bk01SfaQ/h\nlds0rFwLZv/8AleOFwBLgWSf4dOA3d5y7sUvX/stK9rbN3u89P4JiPXd1rjy8SCuPK/R71Tyq18a\nUnzzQ33rF+gcgLtpVXnunFHHuWA6Nc91wR43lcv6f7i8nAHcfKrbMsC6hAE/8/bdYeCvuOMqGpef\nLa7M/rKWbRGwjPSGxQJ/weWnz3DHsu95oTvwCi7P7QJm+5WD//DSU4ALFkd4wwKd44MuF/HJm3Ut\np5Zp6zpOv4a76M73tslcv2nH4q4Fcr3h04M5vv3mEXA9gV9SvVx6qq79A1xF9XLrk/rK1ADpKMI7\nRrw8VAbEe90PAU8EWX6dctkX6LisY1+PAtZ52+IQ8PiplAXALZws635OHWWdzzRXABl+/Qbhrv/i\nfPq9D9zh/b8ImOcz7HLgoPf/T4CZ3v93AH/0/n8DGFtXWoJcxws4mVc/Acb7TftLb9oiYADQF3ft\nVeDty6fwrmMCLLu+c01f3LVO5bXhH3znFUTaAq4Xroy0nLyWuNBL+3u466GjwEv1bbsa61PPhr4K\nd2AEvPDwxnkQ+AjoAnT2Vu4XPpm6DLgPd3H5XW/DLQLicCf/YqCfT4FWiqvmE4m74NsFRHrDv4Er\neMOAG3GFezdv2HRvWXfjgpJYAp+83gQScIHAEeAqn4y4Fejp7eR3qPuiK4PqF78p3vjPecs+H3eA\nnOMN/763nXriTlDPAH8PtjDwySCVF5rDcCe90bgLxlu9NEX7pG8T0MtLTxTuwP+Bt22neNu6tkBt\nAHCll9bOuEz9hN/6r/H2RyLuJFl58F+FK6TOBdp7+9vSgEDN678S+JVPYVpfoPYR7oTSw9s2G3AX\nx9G4i9/7/fbV3730neflhdou+hbgDshx3rye5ORFfnvcSWoGLt8Nwx2MqT7TZuMK8AhcwLvYZ97f\nwt3pisBdlB3EC2y8NH/XZ9xfA3/yye+VaUjEFUbTvPl80+tOqiWvzqVmoPZXb11icXfO3gDa4fLW\ncE6eHOcAb9ZRHtSVLy7zts0wbzv+Hljpd3z+x5su1qff60A8rrwoAd7F3fnriDtmb/XGTQKu99Id\nB7wMvFbL8VO1/fzS3wsXvH/V634Nd6y2x5Vxa6h+8vrcmyYRWE7tN3fqPP6omZ+r0uq/z7zua3EB\nxDnePv8Z8GFt25JG5FNvWx7A5c8Yr3v0KZRrweyfL3EXF7Fe9yPesMG4E1/lMfg4rryv7Zh9Apdv\nEr1lvQE87Hde+pU3r9ha+jU4v/qlIYWaF2cB16+Wc0AZ7vwaibu5eZyTN5v888d0ap7rgj1uKpf1\nuLeel+DOrWefyrYMsC634fJqP6AD8Co+AR11nBuCKCMfwV0EdcLlwXRO3vAIwwUO9+GOv364GyoT\nfY6pYm/bhgMPAx/5lWW+5Wat5WIt5eAVwSzHb7r6jtPxuPNVGJCGO89e6w3rjTtPfROXZ5KAIcGc\nh/zSUFf5v4KaN1Xr2j9z8buYpo4yNUBaVgLXe/8vxR0/V/sMuy6I8qtR5+gAx2VdgdpqYJr3fwfg\ngoaWBZws68bi8u1juHPFqQRq1wGf+fV7Cvi99/8nwI0+w5K9dCbhbgq85KXhJdxNqeuAP9eVjiDL\n8x64IPSruLx8pdfd2WfaPbiyKwKXn1dzsowah8vrtQVq9Z1rVnvbNcrbzvmcvCYKJm21rVe1/ez1\n+zvuxmIY7vxZb5BbY33q2dA340XXdYzzJd5Fjdc9sTKz4DJ1ESfvQMd5KzHaZ/z1nCxo5lK9oAzD\nXSBcXMuyNwFf9/6fDuzxGz6dmievsT7d/wDmeP8vw6ewwGX6gBdd/gen3w7yjdrXAFO9/z8DLvcZ\n1g138AW6qBuPu5uX6/cr4+SF5tN4AbHPdF8Al/ik7zafYeNwF6DGp9+H1BKoBUjTtcBGv/X/lk/3\no5wMIubjcwGCy9C1noypPVBbDDzn/b+A+gM137vArwBP+3TfjXeg+uyrr/il/4Va0reA6sFVB9yd\nxV64Gwbv+43/DCeDwgXA8z7Dvgp8Xsd2zsF7igx8B1jm/W9wJ5tx/nkbF6Ct8ZvPak7eTc2g/kCt\nn8/w2/B7Qhvsr5588QLwqN92LAVSfI7Py/zmZ4GLfLrXAz/x6f4NPjcQ/KYdAuQEymcECNRwhW7V\n/HFBfwk+F5+4i6Dl3v/L8IJQr3sCtQdqdR5/NDxQ+zfekzWvOwx3Id8n0LakEfnUW+eN/uvkDQu6\nXAty//zMp/t7wP95/99H9WOwPe5ufY2LF9yxcozqd9Qv5OSTxfHetL5PegP1a3B+9UtHCjUvzgKu\nX4Bpx+POnb4n/MOcvPDzzx/TqXmuC+q44WSw1d5n+D9wd/IbvC0DrMu7wPd8us/2zSPUE6gFmJ9v\nGVkVeHnd3+FkoDaamtcEP8W70MQdU+/4DBsMFPl0Z1C93Ay6XKRmoFbrcvymq/M4DTD+E8Bvfdbt\nn7WMt4Agz0N1rad/vgti/8ylerlVZ5kaYF6/AH6Hu1g/CPw3Ljj3f9pW6/rVt00buG3GU3egthJX\ndTDZb5wUgiwLcGXd332GtaOWss5vGYECtWn43RTAPala4P3/Jd7DCq870ktnCu7YfwR38+NZXPCz\nCRdc/9Jb1z/iPZmvJa/Uto4/we/pO65WyK0+0z7oM6w3NcuoRdQSqAVIS9W5xmde7XyG/42T10TB\npK229aq2n71+f/W2X89g0hroV1+9zywguZ56591xd4or7fb6Vc3DnnyBssj7e8hneBHuBFhpb+U/\n1toKXLWK7gDGmFuMMZu8lxtzcU9skgNNW4eDPv8f91l2d7/pg5lXQ+bfB/inT9o/w13sn1XLfDKt\ntQm+P2CVz/A+wD2V8/Pm2Yvq2953HboD+62Xczy++60aY0wX70XS/caYfFxGTvYbLdhtWety6tED\nd6crWP75qq58BjXT2J3a+ebLQi9d3XH7YbTffrgZ6OozbW3bCWPMPcaYz7wXeXNxd7srt/MS4EJj\nTHfchb7FVVvw538MVq5PjzrWp9b1w1X7eRtYbIzJNMY8aoyJbMC86soXVen0tmOWXzoDHXdB7Vdj\nTDtjzDPGmN1enl0JJDSgpa0XgC+stb/yuvvgTlwHfPbtM7gTVeX6BJvPG3T8BaEP8KRPurJxJ9ba\ntmVj8mkv3Am9tnQEVa4FuX+CKlOstcdweSeQzriLm/U+6fo/r3+lI9baYr/p/Pudan6tS61lQQBZ\ntvo7ifWN768h5WGOt00rVZaHp7otfQW6Roig9nNfNfWUkXWdt/sA3f3y/P/zW67//oip43qnMeVi\nsMup8zg1xoz2GoY4YozJwz3Vr9wWdR2ngdJQW15q0HrWs38CrV9dZaq/93DB0TDgU9wT7EtwVdN2\nWGuPBrF+jTpHN9C3cTemPzfGrDXGTKpj3GDLuuPUXtbVpxD3VN1XPO5pVKDhlf8XWGeOtTbNWns7\nrjbNn4AR3u8S3BOp2+pYfl375Bt++2Qs7kZfJf/r10BlVED1nGu6A9nedg20rGDS1pD88j+4c/Ma\n41qDrWt7BVRfoLYa98j+2jrGycStWKXeXr9T1avyH+8Fwp5ApjGmD65a4Sxcla4EYDNuA1TyvQhq\nqAPesmqkoxYNXdZe3CN73+Arxlq7v4Hz8Z3fL/3m185a+/da0ngA6OHXOEfvOub/sDd9mrU2Hle9\nIdiGPQ5QffvVtZyAjDG9cFUuKgOTY7gLhkpda0zUcP5prCvf+ubLDrhqQJm4/fCe337oYK29s76F\nG2Muxt29uQFXpSkBV4/ZAFhrc3HVPW4AbsLdZQuU7/yPwcr1qcxbwWy7qvlaa0uttQ9Yawfj3n2b\nhKsz31jV0mmMaY+7S+d7DDTmGL4Hd7d+tJdnx1Uuqr4JjTFzvGm/7dN7L+7ub7LPvo231qZ6wxuS\nzxt6/NVnL64GgG++i7XWfugzjvUb/5TyqTdt/zqGBVuunfL+wW9bG2Pa4fJOIEdxgUiqT5o6Wmt9\nT6aB8pl/v+bOr43R1OVhJ2/9KlWWh6e6LX0FukYoo3rgGFB9ZSR1n7f34p78+ebNOGvtV+tbrqfa\nejVjueirvuN0Ea4aai9rbUfchbPxmba24zRo9axntW0SxP7xzxv1lan+PsSVGdfhtstWXP75Gi6I\nC0Zjyj5/1Y4778K/6qaFtXa7tfabuMDzV7iGO9rXmEvdquVpY0wstZd19dkC9DM+LTbiXsvZ4jP8\nfL9hh6y11QJDY8y5uLzwLK7q7XrvWmQtrgpuQ+3FPbXy3SftrbWP+Izjf/0aqIyqTV3nmgNAoncO\nqeRfbtSXttrUKAuttQettd+11nbHVSv+o2ngp6rqDNSstXm4x7B/MMZc60WpkcaYq40xj3qj/R34\nmTGmszEm2Ru/Mc2xDjfGTPbuNn0fd1B/hKvqYnHvEmGMmYF7otZU/gH8tzGmhzEmAVf41OUQrs57\nsP4E/NILOPG2V2NaznwOuMO7w2aMMe2NMV/zOyB9rcadHGcb1+zqZFyd7NrE4e625BpjelB7i0KB\n/AOYbowZ7B0M9wc7oZfHLgH+has6+pY3aBPwVWNMojGmKy5vNNbPveWl4uqvv1THuF81xow1xkTh\nqmN8bK3di3vncZAxZpp3bEQaY0YaY84JYvlxuH1yBIgwxtxHzbtfi3Anyeu9/wN5y0vDTd6+vRFX\nveZNb/gmYKqXthG496NqZVxzv+d5J6F8XDWlpmhWeBEwwxgzxLgmgOfhtmNGE8wb3PYswuXZRILM\nd8aYq4HZuCrYlU/9sdYewAXKvzHGxBtjwowx/b38CS6fzzbG9DTGdMLdcaxNQ4+/+vwJ+KmXdzHG\ndDTG1NVsf2Py6ZtAV2PM940x0caYOGPMaJ90BFuundL+8SwBJvkcgw9Sy/nLupoYzwG/NcZ08dLV\nw7gWzhqiufNrY2wCJnvl1wCq32A4VQ8YY6K8i+9JwMtNtC3/DvzAGNPXu8k1D/dCfTAtmNZXRv4D\ndxx08s5Ts3yGrQHyjTE/Me47hOHGmHONMSODTHe1c3wzlou+6jtO43BPA4qNMaNwN/AqLQSuMMbc\n4JUxScaYIQ1NQD3r6X/dU9/+OQSkGK/VviDK1Gq8px7rce9HVQZmH+IueIMN1BpT9vnbhnsa+jXj\nnjL+DPfOFADGmG8ZYzp7x02u17uheWQJcI0xZoxX1j1AHTezvG0Yg3tSaYwxMd50WGu34cqK+73+\n1+ECq1e8yf8KfNu7Vuvkrc8Cv/kbXGMb/+2t1y6gshy+BFf9uKH+5q3jRO+4jDHus1Q9A41srd2N\na6Slsowai2t5sja1nmt85jXXm9eFfvNqUNr8HMG9tuRbbnzDZ9ocXBzToDxRb5OX1trHgR/iduAR\nXLQ5C/dCKLiWd9bh6rF+imvAoTEfHvwXrk5xZeMIk707PFtx9epX4w7+83CtrjSV53AFSDquVaW3\ncAVQbRv0YVyAmmuM+VEQ838SdydsqTGmABd8jq57ktpZa9fhGmd5CretduDeU6ht/BO45lane+Pf\niHupuzYP4Kob5OFaQ6prXP9l/RtXd36Zl65lQUz2lLddDnnTvoKrO13hDX8R9+JrBm4/1RVUBes9\nL33vAo9Za+v6APIi3MGejXvSdzOAtbYA927SVNyd44OcfLG+Pm/j3jXahnuMX0zNqlSvAwNxd7k+\nCTQT7+7XJNxdpCzco/ZJ9mS1kJ/j7rTm4PZrbQFfpa64k0U+rirbe3g3X4wx/88Y8+8g1i1QOt/1\n0vIK7q5Wf9x2aypP4N4zO4o7vv4vyOluxN0V/cy4b0UWGmP+5A27BVe9Yytu+y3hZBWI53D78BNc\nuVfrMXIKx1+drLX/xOWzxcZV7dgMXF3H+KecT71pr8SdzA7iWhK81BvckHLtVPcP1totuIu1Rbi8\nk4OrFl+bn+CO7Y+87fMO7g5r0E5Dfm2M3+LeWzmEa/VwYSPndxC3TTO9ed1hrf3cG9bYbTkfV36v\nxF3kFePeGQ5GfWXkg7h8sMtL1xLczV2se+XiGtz7Kbtw+e55XNW8YPif42stF5tKEMfp94AHvWPt\nPlygWjntHtz7VffgzlObqP60JFh1reeTwBRjTI4x5nfUv39e9v5mGWM2eP/XVaYG8h4uCFnj0x2H\ny0/1auQ52n9eebh98DzuyfoxqpdDVwFbjDGFuG011dZdLTjQMrbgjo/FuHKnAPd+akktk4zDBSVv\n4Z4yFeGukSpNxVVVzMG9czbFWnvEW9b/4d4jX47bf7upeQNtBrDZu+YEd97KxMUDSbiqqw3i3eT+\nOq4qcmVc8WPqjkluwp1bsr00/rWOces719yMe9c2CxevvMTJcuNU0la5XsfxWqv0yo0LgJHAx16e\neB0X8O4CMK4q5M31zbeyafoWwRgzF/dS8bdaQFquxjWC4F+lTERERFoYY8yduIvjgE9oRFob7yl0\nLjCw8gJfmpYx5iVcAzINqeVx2pzZH5Hz4VWN+KpXZaAHLmL/Z6jTJSIiIjUZY7oZYy7yqn+djXua\npPO2tGrGmGu8as3tcc3If4qrTSRNwKv62t8rN67CPUF7rb7pQkWB2kkGVy0sB1f18TNc1QIRERFp\neaJwVa8KcFXs/4VrMlykNfs6rnphJu7Vh6m2JVV/a/264prZL8R9/uFOa+3GkKaoDi2q6qOIiIiI\niIjoiZqIiIiIiEiLo0BNRERERESkhYkIdQJEpPVJTk62KSkpoU6GiEirsX79+qPW2s71jyki4ihQ\nE5EGS0lJYd26dfWPKCIiABhjdoc6DSLSuqjqo4iIiIiISAujQE1ERERERKSFUaAmIiIiIiLSwugd\nNRFpEqWlpezbt4/i4uJQJ+WMFxMTQ8+ePYmMjAx1UkREROQUKVATkSaxb98+4uLiSElJwRgT6uSc\nsay1ZGVlsW/fPvr27Rvq5IiIiMgpUtVHEWkSxcXFJCUlKUgLMWMMSUlJerIpIiLSyilQE5EmoyCt\nZdB+EBERaf0UqIlIi2eM4Z577qnqfuyxx5g7d26zLjMlJYXrr7++qnvJkiVMnz69WZcpIiIiUkmB\nmkgbYIy5yhjzhTFmhzFmToDh44wxG4wxZcaYKX7Dyo0xm7zf66cv1cGLjo7m1Vdf5ejRo6d1uevW\nrWPLli2ndZki0vbc+MzqUCdBRFohBWoirZwxJhz4A3A1MBj4pjFmsN9oe4DpwKIAsyiy1g7xfv/V\nrIk9RREREdx+++389re/rTFs9+7dXH755aSlpXH55ZezZ88eAKZPn87s2bMZM2YM/fr1Y8mSJVXT\n/PrXv2bkyJGkpaVx//3317rcH/3oR8ybN69G/+zsbK699lrS0tK44IILSE9PB2Du3LncdtttjB8/\nnn79+vG73/2uapq//e1vjBo1iiFDhjBz5kzKy8tPeXuIiIhI26dATaT1GwXssNbutNaeABYDX/cd\nwVqbYa1NBypCkcCmcNddd7Fw4ULy8vKq9Z81axa33HIL6enp3HzzzcyePbtq2IEDB1i1ahVvvvkm\nc+a4B41Lly5l+/btrFmzhk2bNrF+/XpWrlwZcJk33HADGzZsYMeOHdX633///QwdOpT09HTmzZvH\nLbfcUjXs888/5+2332bNmjU88MADlJaW8tlnn/HSSy/xwQcfsGnTJsLDw1m4cGFTbRoRERFpgxSo\nibR+PYC9Pt37vH7BijHGrDPGfGSMuba2kYwxt3vjrTty5MippvWUxcfHc8stt1R7SgWwevVqbrrp\nJgCmTZvGqlWrqoZde+21hIWFMXjwYA4dOgS4QG3p0qUMHTqUYcOG8fnnn7N9+/aAywwPD+fHP/4x\nDz/8cLX+q1atYtq0aQBcdtllZGVlVQWQX/va14iOjiY5OZkuXbpw6NAh3n33XdavX8/IkSMZMmQI\n7777Ljt37myaDSMiIXHjM6tVpVFEmpW+oybS+gVq4s82YPre1tpMY0w/YJkx5lNr7Zc1Zmjts8Cz\nACNGjGjI/JvM97//fYYNG8aMGTNqHce3xcPo6Oiq/621VX9/+tOfMnPmzKCWOW3aNB5++GFSU1Nr\nzCvQcn2XGR4eTllZGdZabr311hoBn4iIiEht9ERNpPXbB/Ty6e4JZAY7sbU20/u7E1gBDG3KxDWl\nxMREbrjhBl544YWqfmPGjGHx4sUALFy4kLFjx9Y5j4kTJzJ//nwKCwsB2L9/P4cPHwbg8ssvZ//+\n/dXGj4yM5Ac/+AFPPPFEVb9x48ZVVV1csWIFycnJxMfH17rMyy+/nCVLllQtJzs7m927dwe72iIi\nInIGUqAm0vqtBQYaY/oaY6KAqUBQrTcaYzoZY6K9/5OBi4CtzZbSJnDPPfdUa/3xd7/7HX/+859J\nS0vjxRdf5Mknn6xz+gkTJnDTTTdx4YUXct555zFlyhQKCgqoqKhgx44dJCYm1pjm29/+NmVlZVXd\nc+fOZd26daSlpTFnzhz+8pe/1LnMwYMH89BDDzFhwgTS0tK48sorOXDgQAPXXESam6ozikhLYgJV\n4RGR1sUY81XgCSAcmG+t/aUx5kFgnbX2dWPMSOCfQCegGDhorU01xowBnsE1MhIGPGGtfSHwUk4a\nMWKEXbduXbV+n332Geecc06TrtfptHnzZubPn8/jjz8e6qQ0ida+P0SaSmXg9dLMC0M67j/uGLPe\nWjui3pFFRDx6R02kDbDWvgW85dfvPp//1+KqRPpP9yFwXrMnsBU499xz20yQJiIiIq2fqj6KiIhI\nq6IqiiJyJlCgJiIiIiIi0sIoUBMREREREWlhFKiJiIiIiIi0MArUREREJOT03pmISHUK1ERERERE\nRFoYBWoi0mYUFRVxySWXUF5eTmZmJlOmTAk43vjx4/H/DlxzeuKJJzh+/HiDp5s+fTpLliwBYOrU\nqWzfvr2pkyYiIiItlAI1EWkz5s+fz+TJkwkPD6d79+5VQU6o1RWolZeXBzWPO++8k0cffbQpkyXS\nrFSVUUSkcfTBaxFpcg+8sYWtmflNOs/B3eO5/5rUOsdZuHAhixYtAiAjI4NJkyaxefNmioqKmDFj\nBlu3buWcc86hqKio3uWNHz+e0aNHs3z5cnJzc3nhhRe4+OKLKS8vZ86cOaxYsYKSkhLuuusuZs6c\nyYoVK3jsscd48803AZg1axYjRowgPz+fzMxMLr30UpKTk1m+fDkdOnTghz/8IW+//Ta/+c1vWLZs\nGW+88QZFRUWMGTOGZ555BmNMtfRcfPHFTJ8+nbKyMiIiVHSLiIi0dXqiJiJtwokTJ9i5cycpKSk1\nhj399NO0a9eO9PR07r33XtavXx/UPMvKylizZg1PPPEEDzzwAAAvvPACHTt2ZO3ataxdu5bnnnuO\nXbt21TqAtr0eAAAgAElEQVSP2bNn0717d5YvX87y5csBOHbsGOeeey4ff/wxY8eOZdasWaxdu7Yq\nqKwM9nyFhYUxYMAAPvnkk6DSLtIc9JTs1JSUBffkXETEl27LikiTq+/JV3M4evQoCQkJAYetXLmS\n2bNnA5CWlkZaWlpQ85w8eTIAw4cPJyMjA4ClS5eSnp5eVa0yLy+P7du3ExUVFXRaw8PDuf7666u6\nly9fzqOPPsrx48fJzs4mNTWVa665psZ0Xbp0ITMzk+HDhwe9LBE5/fKKSvloZxarth9l1Y6j7Dp6\nLNRJEpFWSIGaiLQJsbGxFBcX1zrcvyphMKKjowEXWJWVlQFgreX3v/89EydOrDbuqlWrqKioqOqu\nKy0xMTGEh4dXjfe9732PdevW0atXL+bOnVvrtMXFxcTGxjZ4PUSkeZ0oq2DT3lxWbT/C+zuO8sne\nXCostIsKZ3TfRMorLLtDnUgRaXVU9VFE2oROnTpRXl4eMMgZN24cCxcuBGDz5s2kp6dXDbvllltY\ns2ZN0MuZOHEiTz/9NKWlpQBs27aNY8eO0adPH7Zu3UpJSQl5eXm8++67VdPExcVRUFAQcH6V6U1O\nTqawsLDOBlC2bdtGaurpf1opItWVlVdwrKSMg3nF3LZgLUMeXMoNz6zmqeU7ALjr0gG8dPsFbLpv\nAn+eMYpuHWNCnGIRaY30RE1E2owJEyawatUqrrjiimr977zzTmbMmEFaWhpDhgxh1KhRVcPS09Pp\n1q1b0Mv4zne+Q0ZGBsOGDcNaS+fOnXnttdfo1asXN9xwA2lpaQwcOJChQ4dWTXP77bdz9dVX061b\nt6r31ColJCTw3e9+l/POO4+UlBRGjhwZcLmHDh0iNja2QWkVCUblO2cvzbwwxClpuY4UlLBxTw4b\n9uSycU8O6fvyKCp1752FhRkmD+vB2AGdubB/Eh1jI0OcWhFpKxSoiUibMWvWLB5//HGuuOIKUlJS\n2Lx5M+CqRS5evLjG+Pn5+QwcOJBevXrVGLZixYqq/5OTk6veUQsLC2PevHnMmzevxjSPPvpowCb0\n7777bu6+++6q7sLCwmrDH3roIR566KEa0y1YsKDq/0WLFjFz5swa44hI06qwlvR9uWzY7QVme3PY\nm+1aio0MNwzu3pEbR/Zi1fYjdIiO4LVZY0OcYhFpqxSoiUibMXToUC699FLKy8ur3gGrS3x8PC+/\n/PJpSFnjJSQkMG3atFAnQ6TNsNZypLCEbQcL+eJQAV8czGdzZh7HT5TzX099AMBZ8dEM692JWy5I\nYWjvBM7t0ZGYSFe2qPVLEWluCtREpE257bbbQp2EZjFjxoxQJ0FaEVVnrK6sooJ1Gdl8caiAbQcL\nvMCsgJzjpVXjJLWPItwYzoqL5ueTUhnaO4HuCWq8R0RCR4GaiIiItAl5x0vZfriA7YcL2X6okO2H\nC9i4J5cT5RVM+ZMLXttHhTOoaxwTU7tydtc4zj4rjkFd40juEF0V4H4tTe+CikjoKVATERGRVqWs\nvILjJ8p58aPd7DjkBWaHCzlSUFI1TkxkGAO6dCAuJoLYqHAe+K9Uzu4aR4+E2FP6XIeIyOmmQE1E\nRKQVOJOrM5aVu++UvbftCCu3HeGTfXkA/Py1zXSIjmBAlw6MH9SZgWd1YGCXOAZ06UCPhFjCwkzV\ndrv8nLNCuQoiIg2mQE1ERCREzuTgqz6ZuUWs3HaE97YdYdWOoxQUlxFmYFjvTvRMiKV9dAQLbhtJ\n1/gYPSETkTZJH7wWkTajqKiISy65hPLycjIzM5kyZUrA8caPH8+6devqnNd9993HO++8U+c4JSUl\nXHHFFQwZMoSXXnqpQWnNyMhg0aJFDZoGYPr06VUfxZ46dSrbt29v8DxEWqKKCkvu8VIeenMrVz7+\nHmMeWcacVz9l095cvnZeN/548zA2/nwCS+4cQ49OsSS0i6RbR1VjFJG2S0/URNoAY8xVwJNAOPC8\ntfYRv+HjgCeANGCqtXaJz7BbgZ95nQ9Za/9yelLd9ObPn8/kyZMJDw+ne/fuVQHNqXjwwQfrHWfj\nxo2UlpayadOmBs+/MlC76aabTiV5gPuQ96OPPspzzz13yvMQCYXCkjI+P5DP1gP5bNnv/m7OzMNa\n2JV1jNF9E7lxZC/GDerMwC4dFIyJyBlJgZpIK2eMCQf+AFwJ7APWGmNet9Zu9RltDzAd+JHftInA\n/cAIwALrvWlzGpWof8+Bg582ahY1dD0Prn6kzlEWLlxY9ZQqIyODSZMmsXnzZoqKipgxYwZbt27l\nnHPOoaioqN7FTZ8+nUmTJjFlyhRSUlK49dZbeeONNygtLeXll18mMTGRb33rWxw5coQhQ4bwyiuv\nkJubyw9/+EMKCwtJTk5mwYIFdOvWjR07dnDHHXdw5MgRwsPDefnll5kzZw6fffYZQ4YM4dZbb2X2\n7NnMmTOHFStWUFJSwl133cXMmTOx1nL33XezbNky+vbti7W2Ko0XX3wx06dPp6ysjIgIFectgaoy\n1nQ4v5gtB/LZmun9DuSTkXWMyqzcqV0kqd070jU+hviYCF67ayyxUfV/B1FEpK3TmV2k9RsF7LDW\n7gQwxiwGvg5UBWrW2gxvWIXftBOB/1hrs73h/wGuAv7e/MluWidOnGDnzp2kpKTUGPb000/Trl07\n0tPTSU9PZ9iwYQ2ef3JyMhs2bOCPf/wjjz32GM8//zzPP/88jz32GG+++SalpaVMmzaNf/3rX3Tu\n3JmXXnqJe++9l/nz53PzzTczZ84crrvuOoqLi6moqOCRRx6pmhbg2WefpWPHjqxdu5aSkhIuuugi\nJkyYwMaNG/niiy/49NNPOXToEIMHD676VlxYWBgDBgzgk08+Yfjw4Y3afiJNIb+4lPS9eWzam8MX\nhwo4VlLGqHnvVg3vndiOwd3imTy0B4O7x5PavSNnxUdjzMlGPxSkiYg4CtREWr8ewF6f7n3A6EZM\n26PRKarnyVdzOHr0KAkJCQGHrVy5ktmzZwOQlpZGWlpag+c/efJkAIYPH86rr75aY/gXX3zB5s2b\nufLKKwEoLy+nW7duFBQUsH//fq677joAYmJiAs5/6dKlpKenV1XXzMvLY/v27axcuZJvfvObVdU5\nL7vssmrTdenShczMTAVqctqVlVew7VAhG/fmsGlPLpv25rLjSGHVk7KYyDA6xkZy16UDGNwtnnO6\nxxMfExnaRIuItCIK1ERav0Avb9gA/Ro1rTHmduB2gN69ewc5+9MnNjaW4uLiWoc39h2X6OhoAMLD\nwykrK6sx3FpLamoqq1evrtY/Pz8/qPlba/n973/PxIkTq/V/66236kx7cXExsbGxQS1DTo2qMzpH\nCkrIPnaCwpIybnhmNZ/uy6OotBxw1ReH9u7ENed3Z2jvBNJ6JnD7X12DPTMu6hvKZIuItFpq9VGk\n9dsH9PLp7glkNvW01tpnrbUjrLUjOnfufEoJbU6dOnWivLw8YLA2btw4Fi5cCMDmzZtJT0+vGnbL\nLbewZs2aRi//7LPP5siRI1WBWmlpKVu2bCE+Pp6ePXvy2muvAa6lyOPHjxMXF0dBQUHV9BMnTuTp\np5+mtLQUgG3btnHs2DHGjRvH4sWLKS8v58CBAyxfvrzacrdt20Zqamqj0y/iq6y8gi2Zeby4OoMf\nvLSJcY8uZ+Qv32H74UIO5hVTUlbBjSN78eTUIbz34/Fs+PmVzJ8+ktmXD+TigZ3pGKsnZyIijaUn\naiKt31pgoDGmL7AfmAoE25Tg28A8Y0wnr3sC8NOmT+LpMWHCBFatWsUVV1xRrf+dd97JjBkzSEtL\nY8iQIYwaNapqWHp6Ot26dWv0sqOioliyZAmzZ88mLy+PsrIyvv/975OamsqLL77IzJkzue+++4iM\njOTll18mLS2NiIgIzj//fKZPn85///d/k5GRwbBhw7DW0rlzZ1577TWuu+46li1bxnnnncegQYO4\n5JJLqpZ56NAhYmNjmyT9cmYrK69g+ReH2bA7h/W7c/hkby7HTrinZZ3johneuxPTLujDPzfuo31U\nBC/fOSbEKRYRafsUqIm0ctbaMmPMLFzQFQ7Mt9ZuMcY8CKyz1r5ujBkJ/BPoBFxjjHnAWptqrc02\nxvwCF+wBPFjZsEhrNGvWLB5//HGuuOIKUlJS2Lx5M+CqRS5evLjG+Pn5+QwcOJBevXrVGLZgwYKq\n/zMyMqr+HzFiBCtWrADc99jGjx9fNWzIkCGsXLmyxrwGDhzIsmXLavR/9913q3XPmzePefPm1Rjv\nqaeeqtEPYNGiRcycOTPgMKnbmVyd0VrLnuzjrMvIYd3ubNK9Kowz/ryW8DDDOd3imDK8J8P6dHIf\nl+508ltl73x2KMSpFxE5cyhQE2kDrLVvAW/59bvP5/+1uGqNgaadD8xv1gSeJkOHDuXSSy+lvLyc\n8PD6W46Lj4/n5ZdfPg0pax4JCQlMmzYt1MmQFq60vIItmfmsy8hm/e4c1mbkcLSwBIC4mAiiI8JI\n6hDFr6ecz/m9OtIuSpcGTe2lmRfyjztCnQoRaW1UGotIm1LZdP2ZYMaMGaFOgrRAx0rKyD1eSkFx\nKVOfXc2mvbkUl7ovc/TsFMvFA5MZ3qcTI1MSGdilA9987iMALuyfFMpki4iIHwVqItJkrLWNbl1R\nGs/3o9jS9hWdKGf97hxW7zzKRzuz+WRvLmUVLg8kdYhm6sjejExJZERKJ86KD/x5CBERaXkUqIlI\nk4iJiSErK4ukpCQFayFkrSUrK6vW77W1ZWfKe2fFpeVs2JPDR19msXpnFpv25lJabgkPM5zXoyPf\nHdePZZ8dIi4mkiVq9KPZtPV8JiKhp0BNRJpEz5492bdvH0eOHAl1Us54MTEx9OwZ8JVEaWXyi0vZ\neeQYO48Usjf7OAUlZaQ9sJQTZRWEGTi3R0duu6gvF/RPYkSfTsR5H5TesDsnxCkXEZHGUqAmIk0i\nMjKSvn31YVuRhrLWsuuoC8Z2HjnGzqOFfHnkGDuPHKtq9KNSu6hwbrmgDxf2T2Jk30TiY/S9sqak\np2Qi0pIoUBMRkRarLVZnzD52go93ZvHhl1mk78ujuLScSx9bUTW8U7tI+nXuwKVnd6Zf5w7069ye\n/p3b89NXPyXMGH42aXDoEi8iIqeNAjUREZFmlFdUyppd2Xz45VFWf5nF5wcLAPd0LCrCkNAuhh9c\nOYj+ndvTL7kDndpHBZxPmN79PCVtKcgXkTOLAjUREZEmVF5hWf7FYVZ/mcXqL7PYkplHhYXoiDBG\npHTiRxMGcWH/JNJ6JvCt5z8G4IYRNT+6LiIiZzYFaiIiclq1teqMh/KLWZeRw7rd2Wzen8exE+XM\n+PNaosLDGNI7gbsvG8iF/ZMY2juB6Ij6P8Qu9WsreUdEpC4K1ERERIJUUWHZcaSQtRnZrM/IYe3u\nbPZmFwEQExlGZHgY3TvG8OtvnM+w3p2IjVJgJiIip0aBmoiISC2KS8vJLy6loLiM2xasZf3uHPKK\nSgFI7hDNiD6duPXCFEakJJLaPb6qKuNFA5JDmexWSU/JRESqU6AmIiKN1laqMxYUl7J+dw5rM7JZ\nuyuHTftyOVFWAUBMZDhfPa8rw/skMjKlE70T2+nj7iIi0mwUqImIyBnrSEEJ6zKy+XhXNmszsvns\nQD4VFiLCDKk9OnLrhX1474sjdIiJ4NXvXRTq5LYqrT1oFxEJNQVqIiJyxjhcUMzqL7PYefQYBcWl\njPzlO4B7v2xor07cfdlARvVNZGjvBNpFuVNk+r7VoUyyiIicoRSoiYhIm5V97AQf7XTN5K/emcWO\nw4UAhBtDXEwEP7hiECP7JnJu945ERYSFOLUtn56SiYicPgrURESkhtb6zllZeQVLtxxktRec+X5c\nemRKIlOG92RM/yQeenMrxhhmXtI/xCkWEREJTIGaiIi0WsWl5azNyOaDHVlV3zC7/cX1VR+X/vHE\ns7mgXxJpPTsSGX7yiZkaATmptQXjIiJnCgVqIiLSapRXWD7dn8cHO47ywY6jrNudw4myCiLCDLGR\n4fRIiOHxG4YwRB+XFhGRVk6BmojIGaI1Vme01lJcWsFfV2ewavtRPtqZRX5xGQDndIvnlgv6cNHA\nZEalJHLbgrUAjO6XFMIUtwytaR+LiEhgCtRERKTFOFZSRvq+PDbuzWHTnlw27s2ltNySvj+Pnp1i\n+ep53bhoQDIX9k8iuUN0qJMrIiLSbBSoiYi0Yq3xKVml8grLjsOFbNqbw6a9uWzck8u2QwVUWDe8\nb3J74mMiiY+J4C+3jaZ3UrvQJlhEROQ0UqAmIiKnxdHCEjbuyWVv9nEKS8o4/4GlFJa4aowdYyM5\nv1cCE1O7MqR3AkN6JtCpfVRVIKogrXUG4yIicuoUqImISJM7UVbB1gP5bNyTw8Y9uWzcm8Pe7KKq\n4e2iwrl+WE+G9EpgSO8E+ia1JyxMLTGKiIhUUqAm0gYYY64CngTCgeettY/4DY8G/goMB7KAG621\nGcaYFOAz4Atv1I+stXecrnRL21FSVk5hcRm/eHMrG/fksDkznxNlFQB0jY9haO8Epl3Qh6G9O/Gr\nf39OeJjhF9eeG+JUh56ekomISG0UqIm0csaYcOAPwJXAPmCtMeZ1a+1Wn9G+DeRYawcYY6YCvwJu\n9IZ9aa0dcloTLXVq6e+dWeveLft4VzZrM7JZuyubzLxiAPbm7CatZ0emj0lhqPe0rFvH2GrTh+vJ\nmYiISL0UqIm0fqOAHdbanQDGmMXA1wHfQO3rwFzv/yXAU0Zf/JUglZZXsCUzn7W7slmTkc26jGxy\njpcC0CUumpF9E4ncl0dcTAT/vOuiah+WPtO01OBaRERaHwVqIq1fD2CvT/c+YHRt41hry4wxeUDl\nx6b6GmM2AvnAz6y17zdzeqUFs9ZyuKCE3OMnKCwp5+bnP2LjnlyOnygHICWpHVeccxYj+yYyKiWR\nPkntMMZUPQU8k4M0ERGRpqRATaT1C/RkzAY5zgGgt7U2yxgzHHjNGJNqrc2vsRBjbgduB+jdu3cj\nkywtQXmFZdfRY2w9kM+WzDy2Zubz2YF8jhaeqBonPjaSG0b0YmRKIiNTOtElPiaEKQ4NPSUTEZFQ\nUKAm0vrtA3r5dPcEMmsZZ58xJgLoCGRbay1QAmCtXW+M+RIYBKzzX4i19lngWYARI0b4B4JSj1C/\nd1ZRYTl+oozC4jLu/eenbD2Qz+cHCigqdU/KIsMNg86K47KvdGFwt3heWreXdlERvHLnmJCkV0RE\n5EynQE2k9VsLDDTG9AX2A1OBm/zGeR24FVgNTAGWWWutMaYzLmArN8b0AwYCO09f0qW5lHnvla3Z\nlc3Hu7JYm5FDXpF7r+zosUwGd4vnm6N6M7h7PKnd4+nfuQNRESerLf5788FQJV1ERERQoCbS6nnv\nnM0C3sY1zz/fWrvFGPMgsM5a+zrwAvCiMWYHkI0L5gDGAQ8aY8qAcuAOa2326V8LaaySsnLS9+Wx\nZlc2H+3MYsPuHI5575X1S27P1ed2Zc2ubOJiInjtros409uSUXVGERFp6RSoibQB1tq3gLf8+t3n\n838x8I0A070CvNLsCWyjQl2dcU/WcTJzi8gtKuW8uUurvlt29llxXD+8J6O8Bj8q3yurTO+ZHqSJ\niIi0BgrURERakczcIv43/QBvpmfyyb48ANpFhTPtgj6M7pvIyJREOrWPCnEqQ0NPyUREpC1RoCYi\n0sIdLijm358e5I1PMlm3OweA83p05KdXf4V/f3qA6Mhwfj5pcIhTKSIiIk1JgZqIiCfUVRl9lZZX\nsOjjPbzxSSYf78qiwsJXusbxowmDmJTWnZTk9gAs+/xwiFPavFrCvhAREQkFBWoiIi1ASVk5n+zN\n4+OdWXx2IJ/84jI27MmlX+f2zLpsINekdWPgWXGhTqaIiIicJgrURERCoLi0nE17c/l4p9dK454c\nSsoqMAZiI8Pp1jGG528dweBu8Wr8Q0RE5AykQE1E2rSWUp2xosJSUFLGb/+zjY92ZrFxby4nvMBs\ncLd4bh7dhwv6JTKqbyIzX1wPQGr3jiFNc3MJ9b4QERFpDRSoiYg0g8KSMjbszuHjXVms2ZXNut05\nWGDboQJSu3fklgv6cEG/JEamJNKxXWSok9toCr5ERESalgI1EZEmkHe8lLUZ2azJyObjnVlszsyn\nvMISHmY4r0dHunaMIS4mgiV3jiE+pvUHZiIiItK8FKiJiJyC7GMnyD52gvziUq5+8n0+P5iPtRAV\nHsaQXgl8b3x/RvVNZFjvTrSPjqiqgtlagjQ9IRMREQktBWoiIkEoLCljza4sPtyRxYdfZrH1QD4A\nYQYGdonjh1cMYlTfRM7vlUBMZHiIUxuYgi8REZHWQ4GaiLQ6p6OBkOLScjbsyWH1l1l8sOMon+zL\no7zCEhURxog+nfjRhEG89ekB2kdH8LfvjG62dIiIiMiZSYGaiAjuA9MFxaXkF5dx8/MfsS7DNZcf\nHmZI69mROy/pz5j+SQzr06nqidn724+GONUiIiLSVilQE5EzUll5BZsz81n9ZRard2axLiOb4yfK\nAegQHcG3LujDmP5JjOqbSFwLfq9M1RlFRETaJgVqInJGKK+wbM3MZ/XOo6z+Mou1GTkUlpQBMLBL\nB6YM78mHX2YRHxPBq9+7KMSpFRERkTOdAjURaRGa472zvdnHOZhfTF5RKUMeXEpBsQvM+nVuz9eH\ndOfC/kmM7ptE57joamkQERERCTUFaiLSZpSWV7B+dw7LPz/Mss8Ps/1wIQDREWFMHtaDC/olcWG/\nJLrEx4Q4pSIiIiJ1U6AmIq1aVmEJK744wrIvDrNy2xEKisuIDDeM6pvI1FG9eX3TfmIiw3l4clqo\nkxo0vXcmIiIiCtREpFUpK6+gsKSMvOOlXPuHD/hkXy7WQue4aK4+tyuXfaULYwd2pkO0K96WbjkY\n4hSLiIiINJwCNRFp0crKK9iSmc9HO7P4aGf1RkCSOkTx/csHcdlXupDaPZ6wMBPi1NZOT8lERESk\nIRSoiUizOZUGQsrKK9h6wDWb7x+Y9fcaAfl4ZxbxsZFqnVFERETaLAVqIhJSxaXlpO/LIzO3iILi\nMoY++B8KSk62zvhfQ7pzYb8kRvdLpEucawSkpbTOqKdkIiIi0lwUqInIaWOtZV9OERv25LBxTy4b\n9uSwNTOfsgoLQExkGJOH9eSCfklc0DdRrTOKiIjIGUuBmog0m4oKy7ETZTzz3pds2JPDhj25HCko\nASA2Mpzze3Xk9nH9GNa7E39csYPI8DDmXXdeiFMtIiIiEnoK1ETaAGPMVcCTQDjwvLX2Eb/h0cBf\ngeFAFnCjtTbDG/ZT4NtAOTDbWvv2qaajvMKyeX8eq3Yc5YMdR1m3JwdrYeuBz+mT1I6xA5IZ1juB\nob078ZWucUSEh1VN+9z7O091sU1GVRlFRESkpVCgJtLKGWPCgT8AVwL7gLXGmNettVt9Rvs2kGOt\nHWCMmQr8CrjRGDMYmAqkAt2Bd4wxg6y15cEs21rL7qzjVYHZh19mkVdUCsA53eI5Ky6G+JgIFt1+\nAckdoptsnUVERETaOgVqIq3fKGCHtXYngDFmMfB1wDdQ+zow1/t/CfCUMcZ4/Rdba0uAXcaYHd78\n6mytI7eolJ8sSWfVjqPszy0CoHvHGCamnsVFA5IZ0z+ZznHRbJk3FoohucOqelfivqwfe//VP25D\n6CmZiIiItEYK1ERavx7AXp/ufcDo2sax1pYZY/KAJK//R37T9qhvge1yvmDk5rn0P2sMCRdezsjU\nQaQktcPFfs2vuYI6ERERkZZCgZpI6xcoOrJBjhPMtG4GxtwO3A6Q2r0910evwRx6Fw49BJ+nQb/x\n7tf7QoiMDTbtpyS1W8dmnb+IiIhIqClQE2n99gG9fLp7Apm1jLPPGBMBdASyg5wWAGvts8CzACNG\njLDmfz6CzI2wc4X7rf4jfPAkhEdD79HQ71JSE8MgqkMTrGIj/Plr7u+M/w1tOkREREQaQIGaSOu3\nFhhojOkL7Mc1DnKT3zivA7fi3j2bAiyz1lpjzOvAImPM47jGRAYCa4JaangE9Brpfpf8GEoKYc/q\nk4Hbuw+48UwY/OUa6DkKeo2CniOhXWKN2ekpmYiIiMhJCtREWjnvnbNZwNu45vnnW2u3GGMeBNZZ\na18HXgBe9BoLycYFc3jj/QPX8EgZcFewLT7WEN0BBl7pfgCFh2HBJCjJh+I8WPVbqJx10gAvcBvp\n/nY559Q3gIiIiEgbpEBNpA2w1r4FvOXX7z6f/4uBb9Qy7S+BXzZ5ojp0gfad3W/G/8KJY66q5N41\nsG8tbF8Knyxy40bFQVgYRMfDrvfdU7fImCZPUr1UTVJERERaCAVqInJ6RLWHlLHuB2At5OyCvWth\n3xrY9HfI2wt/meTec+s58uT4oQrcREREREJEgZqIhIYxkNjP/c6/EQ5/DhVlMPYHkPE+ZKyC934F\n7z3iArdeo04GbrbCvfsmIiIi0kYpUBOR5tPQKoRhEXD2Ve4HUJTrGijJWOWCtxWPUPVVgZh4+PAp\nGHQVJA9o6pQHR1UlRUREpJkoUBORlis2Ac6+2v3gZOD25g+hOBeW3ut+if1g4EQYNAH6XAQR0aFN\nt4iIiEgjKVATkdajMnD78CnXfe0fXaMk296G9X+Gj592323rNx4GTnC/lkJP30RERKQBFKiJSOvV\nqQ+M+q77nTgOu1bC9rdh21L4/E03TlR7iE2Ene+599wiY0Ob5mAoqBMRETnjKVATkbYhqt3J99us\nhcNb3ZO2Vb91rUn+9b8gPMp9ty1lLPS92LUmqWqSIiIi0gIpUBORtscYOCvV/Xa861qTvPiHrkGS\nXe/Dykdda5IRMS5Y6zsOUi5Wa5IiIiLSYihQE5GWoTmr+YVFwKCJ7gcnGyXZ9T5krITl8wDrgrTo\neHj/N9B3PHQ7H8JVTIqIiMjppysQETnz+LcmeTwbdn8Ib/0IivPg3QeBB13Q1uci6HeJe+rW+RwI\n09nlfUsAABgQSURBVBM3ERERaX4K1ERE2iXCOZPgo6dd9zcWuCdtu7zftn974yW7gK3yZ62rZhlK\nanhERESkTVKgJiLir0NnOPd69wPI3eOqSe56zwVuW151/cOj3Ye31//FNVCS2C/0gZuIiIi0CQrU\nRKT1Od1PjxJ6w9Cb3c9ayNoBO1fAiofd+25vzHbjdTgL+oxx1SX7XASdv9Kyqkrq6ZuIiEiroUBN\nRKQhjIHkge635TUXuF3zBOxe5d5zy/gAtvzTjRub6AVuY6Ck0H3TrbVQUCciIhJSCtRERBrDGOg8\nyP1G3OYCt5wMF7Tt/tAFcJUf3zbhsPAGV00y5SLoqlYlRUREJDBdIYiINCVjILGv+w292fXL2w8v\nXgvF+ZC9E7a/7fpHxUHvC7zAbSx0G9J6Azc9gRMREWlSrfSKQEQkSC0hcOjYA9p3cb8Z/wsFB2H3\nB5CxylWVfOd+N15UB+g1GvL2QmynltGqpIiIiISEAjURkdMtrmv1ViULD1cP3HJ3u99TI73xJkPn\ns0Ob5qakp28iIiL1UqAmIhJqHbpA6nXuB/D8lXA8ywV07/0K3nsEuqS6gO3cye4zACIiItKmKVAT\nEanUUp7whEdBXDeY/qarJrn1X7D5VVj2C/frPhRSJ58M7NoyPX0TEZEzlAI1EZGWLK4rjJ7pfrl7\nYetrsPkV+M/P3S86DmKTYP96tSIpIiLShuiMLiLSWiT0gjF3u1/2TveU7f3fQG4GPHeZ1xjJKO/b\nbWOhxzCIiA51qk8fPX0TEZE2RIGaiMipCmVAkNgPxv0IvlwOZSfgwjtPfrtt2UNunPBo6DnSfbOt\nzxioKIew8NClWURERIKmQE2kFTPGJAIvASlABnCDtTYnwHi3Aj/zOh+y1v7F678C6AYUecMmWGsP\nN2+qpclFRJ1saATgeDbsWe0Fbh/Ayl+DrQAMRLWHN74PXc+DbudDl8EQ1S6kyQ8JPX0TEZEWToGa\nSOs2B3jXWvuIMWaO1/0T3xG8YO5+YARggfXGmNd9ArqbrbXrTmei/3979x/lVV3ncfz5nhlg5DcI\nyMgwokJq+YNi8kdqkVL229qltt/YqbW2Oqc97bb93m3bLCpbO1tbholRWWplZbZlSrJi/gIJgfwt\nEYwiiCQCGqB89o/PnZ2RZpCBmfl+73eej3M+537v59775XO958D35edzPx/1saFj4ehX5wJ5oe11\nt8EvPgQ7tsIfroTbL8nHog4OngoTj8/hbeJx+bMkSaoog5pUbmcDM4vPC4BF7BHUgLOAa1NKmwEi\n4lrgFcAP+6eJqrjGkTBtFoyZkvfPuTovqv3wSli/Im/X3QqrftxxTf3g3Pu2+Ctw2Kl5psmB9L6b\nJEkVZlCTyu2QlNJ6gJTS+oiY0MU5k4B1nfbbirp2l0TE08BPyMMiU1d/UEScC5wL0NLS0httH1iq\naYhdBIxuyaW91w3ykMkNq3J4+91XYcc2WPjZfKyhESbNgJZT8vtuk0/MM04OBA6TlCRVgEFNqnIR\ncR0wsYtDn9zXr+iirj2MvS2l9GBEjCAHtXcA3+3qS1JK84B5AK2trV2GOZXc0LFw+ItzuedXue5N\nC4r33W6GtTfBjRfA4vMh6vMwycNelMvTu6B+UGXbL0lSDTGoSVUupTSru2MRsSEimoretCagq4lA\n2ugYHgnQTB4iSUrpwWK7NSJ+AJxIN0FNA9SwcXDMa3OB/I5b25JiopKbYel8uOUb+VhDI1x5bp5p\nsrkVDjl24IU3e98kSb3EoCaV21XAHGBusf15F+dcA3w+IsYU+y8HPh4RDcDolNKmiBgEvAa4rh/a\nrGdTzT/yh4yAI8/IBeCpHfDQ8hzQdmyF1YtgxeX5WENjfrdt0owivL0QRk3q9qslSVIHg5pUbnOB\nKyLi3cBa4I0AEdEKvC+l9J6U0uaI+A9gSXHNZ4u6YcA1RUirJ4e0i/r/FlRqDUOg5SQY1Zz3z7ka\ntrTlXre2pXl72zy4+ev5+IhD4ekdMHhE7pVrmj4wlweQJOlZGNSkEkspPQqc2UX9UuA9nfbnA/P3\nOGc7MKOv26gBJgJGT86lfV23p3bAw6uK8LYE7v4FPPEoXPLK/K7bIc/NvW2TWvP24KlQV1fZ++gv\nDpWUJHXDoCZJ6lsNQ6B5Ri68L4eTp3fC6R/OvW4PLoWVP87vuwEMGQWTXpBD2xObYcjIijZfkqRK\nMKhJUpmVtSemfjAc9cpcAHbvhk335tDWVpTF50PanY/Peykc8RI4YiZMPhkGNVaq5ZVj75skDSgG\nNUlS5dXVwYSjc3n+23Pdzu1w8Vnwly25V+6mr+XlARoaYfJJObQdMROaToC6+sq1XZKkPmBQkyRV\np8HDoHFULu/6ZZ5V8k8355klVy+Chf+eS+OovPbb1vX5c0r5XbmBzN43SSo9g5okDRRl/9E+ZAQ8\n5+W5AGzbCH+8AVZfD6v/F7asy/VfORoOPx2mnJ63Yw43uEmSSsegJkkqp+ET4LjZuaQEF52Zh0ke\nekIObit/lM8bNbkjtE05Pc9IKUlSlTOoSZLKLwIGHZTL7Pk5uD1yD6xZnHvd7v013PGDfO6YKbDr\nyTy75Ja2jjXgBiqHSUpSVTKoSZL+Wtl/tEd0TE5y4t/nWSU33plD25rFcO81sG0DXPA8GNUCh50C\nLafAYafCuGkOleyOoU6S+o1BTZJU++rqYOKxuZzyfpj/Kti1HU54C6y9CR64HlZcns8dOg5aTobD\nXpTDm5OTSJIqwKAmSRp4ImDwcDj5fbmkBI8+kEPbn27O27uvLs6tzxOZLPpiDnDNrXlGSu2dvW+S\ndEAMapKkA1f2H+MRMG5qLi94Z657/CH4001wzadgxxZY9AUg5eDWdHxeeLvlpLwd2VTR5kuSao9B\nTZKkrow8NM8oufSSvP/mS6FtKay7BdbeArd/B279Zj42+rA8THLrehgyMr8TV1dXsaaXkj1wkvQM\nBjVJkvbFQaNh2qxcAJ7eBetXdAS3B34L2zfmY+dPgymnFUsCvNgJSiRJPWZQkyRpf9QPguYZuZzy\ngY613HY8nt9j++MNcOfP8rnDJ7oId2+y903SAGBQkyT1r1r9cd15Lbc3XJiD2+bVxVpui5+5CPfI\n5hzYtm3IE5Ps3O4EJZKkZzCoSZLUFyLg4CNzmXFODm6b7n3mWm5Pbs7nfv5QGDkJDp6ah0kePC1P\nbHLwNBg12ffdDoS9b5JKyqAmSapetfTjOgLGH5VL+yLcF50Bu56E4/4WNt0Hj94Hd1wOO7d2XNfQ\nCGOPLHrfhsODt8PEE6Def8IlqZb5t7wkSZVQV5eHOw4eBi/5l476lHIoaw9um+7P280PwBObcrgb\nMjIvyD3ltPze28TjoK6+cvdSK+x9k1RFDGqSJFWTCBgxMZfDT++ov+TV8NROOPm9He+93fvrfKxx\nFBx2asdkJSk5WYkklZxBTZKksmgYnNd2O2523n/8IVhzY0dwu+d/cn1dQ+51+91/QcvJ0HQCNAyp\nXLslST1mUJMk1YaBOFxt5KFw/JtyAdjSloPbbz6dlwm49tO5vn4ITJoBLSflhbknnwgHjalcu2uB\nwyQl9TGDmiRJtWJUM5zwZlj2vbz/xkvyYtzrbs3bm74GN16Qj40/Jge3bRtz75vDJSWpqhjUpBKL\niLHA5cAUYA3wppTSn7s479fAycCNKaXXdKo/HLgMGAssA96RUtrZ9y2X1C+GT4Dnvi4XgJ1PwEPL\nYO3NsPZWWPVT2LElHzv/ObmnbfKJMPkkaJoOgxor1/Za0t77Jkk9YFCTyu1jwMKU0tyI+Fix/9Eu\nzvsyMBR47x71XwQuSCldFhEXAu8GvtmXDZaqwkAdrjZ4aDFT5Gl5v32JgB2P54C27la4++p8rG5Q\nfretc3iTJPUbg5pUbmcDM4vPC4BFdBHUUkoLI2Jm57qICOAM4K2drv8MBjVp4Oi8RMAbLsx12x6B\ntiU5tK27DZbOh1u+kY/VD4EhI+Dm/4bmF8LE4+11k6Q+YlCTyu2QlNJ6gJTS+oiY0INrDwYeSyk9\nVey3AZN6u4GSSmb4eDj6VblAXhJgw8oc2m44H3ZshWs+kY/VDYKJx+bQNqkVmlth7BG+6yZJvcCg\nJlW5iLgOmNjFoU8e6Fd3UZf20o5zgXMBWlpaDvCPlkpkoA6TbNcwOM8YOWkG3FUMi5x9MbQthQeX\n5u3vL4Xb5uVjB43N5z62Nve+bXskhz9JUo8Y1KQql1Ka1d2xiNgQEU1Fb1oTsLEHX70JGB0RDUWv\nWjPw0F7aMQ+YB9Da2tptoJM0AIyYCMe8JheA3U/DI3fnIZNtS+HB22HL2nzs/KkwfCI0HQ8TjyvK\n8TDm8Dz0UpLUJYOaVG5XAXOAucX25/t6YUopRcT1wGzyzI89ul6S/l9dPRzyvFxmnJPrLj4Ldm6D\n6W+Fh1fm8sBvYXcx2nrwiDxssj287diW35WTJAEGNans5gJXRMS7gbXAGwEiohV4X0rpPcX+YuBo\nYHhEtAHvTildQ5545LKI+Bzwe+DiCtyDVDsG+jDJzuoaoHE0nPKBjrpdf8k9bw+v6Ahvy3+QA137\nNVfMgamzYOqZeUFvSRqgDGpSiaWUHgXO7KJ+KfCeTvund3P9auDEPmugJHU2qBEOnZ5Lu9274c9/\nhB++BZ78c55t8s6f5WMTnpsD29RZ0HIKNAypTLslqQIMapIkqXLq6uDgI2HY+FzOuRo23gn3Xwf3\nL4RbvwU3fQ0GDYUpp+fQtutJaHBZAEm1zaAmSVKlOFTyr0V0vO926odg53ZYc2NHcLvvmnxeXUN+\nD278UTD+6I7tyENdHkBSTTCoSZKk6jV4GDznrFwANq+G78/OAa6uHu76BSxb0On8ETD+OR3h7YnN\nMHhoHmLpLJOSSsSgJklSGdj7lo09AkY05c/t/022b8qTlDxyNzxyT97efx0sv7TjurmTYcIxRXlu\nsX2ea7xJqloGNUmSVG7DxsGw02DKac+sf2IzLHhdfqdt6hmw8a68aPey73acM3RcR3jb+nDuwXtq\nZ17oW5IqyKAmSZJq09Cx0Dgql1d9OdelBNsfgQ1/yMFt4515+/vvw67t+ZwvNOeZKZtfmMvkE10q\nQFK/M6hJklRrHCbZvQgYPiGXI1/aUb97N3z7ZXlNt2mzoG0J3HYR3Pz1fHzkpI7Q1vxCSLshfOdN\nUt8xqEmSJNXV5XXeBjXCWefluqd25kW5227LwW3dko413ggYMhx+ex4cMTOHN4dLSupFBjVJkgYy\ne9+61zAYmmfkwj/kuq0P59D2q4/CXx6HxefDDV+CQcPyO3JHvjQHt/FHu0yApANiUJMkSdpXIybC\nMa+FWy7M+2++FNYshgeuh9WLOtZ5G9GUA9sRM3PPnCT1kEFNkiRpfx00Oge3Y16b9x9b2xHa7r0G\n7vhhRZsnqbwMapIkSb1ldAvMmJPL7t3w8Aq4Yg6wotItk1QyBjVJkrRvfJ+tZ+rq8jT/o5oxqEnq\nKeeVlSRJkqQqY1CTJEmSpCrj0EdJktT7HCYpSQfEHjVJkiRJqjL2qEmSpMqzB06SnsEeNUmSJEmq\nMgY1SZIkSaoyBjVJkiRJqjK+oyZJksrF99kkDQD2qEmSJElSlTGoSSUWEWMj4tqIuK/YjunmvF9H\nxGMRcfUe9d+JiD9GxPKiTO+flktSP3nXL+2Bk1RKBjWp3D4GLEwpTQMWFvtd+TLwjm6OfSSlNL0o\ny/uikZIkSeoZ31GTyu1sYGbxeQGwCPjoniellBZGxMw96yVJndjzJqmK2KMmldshKaX1AMV2wn58\nx3kRsSIiLoiIIb3bPEmSJO0Pe9SkKhcR1wETuzj0yV74+o8DDwODgXnk3rjPdtOOc4FzAVpaWnrh\nj5akErP3TVIfM6hJVS6lNKu7YxGxISKaUkrrI6IJ2NjD715ffNwREZcA/7yXc+eRwxytra2pJ3+O\nJEmSesahj1K5XQXMKT7PAX7ek4uLcEdEBPB6YFWvtk6SJEn7xaAmldtc4GURcR/wsmKfiGiNiG+3\nnxQRi4EfAWdGRFtEnFUcujQiVgIrgXHA5/q19ZIkSepSpOQIJkk909rampYuXVrpZkhSaUTE7Sml\n1kq3Q1J52KMmSZIkSVXGoCZJkiRJVcagJkmSJElVxqAmSZIkSVXGoCZJkiRJVcagJkmSJElVxqAm\nSZIkSVXGoCZJkiRJVcYFryX1WERsBe6pdDv6yDhgU6Ub0Ye8v3Lz/srrqJTSiEo3QlJ5NFS6AZJK\n6Z6UUmulG9EXImJprd4beH9l5/2VV0QsrXQbJJWLQx8lSZIkqcoY1CRJkiSpyhjUJO2PeZVuQB+q\n5XsD76/svL/yquV7k9QHnExEkiRJkqqMPWqSJEmSVGUMapIkSZJUZQxqkvZZRLwiIu6JiPsj4mOV\nbk9vi4g1EbEyIpbXwlTaETE/IjZGxKpOdWMj4tqIuK/YjqlkGw9EN/f3mYh4sHiGyyPiVZVs4/6K\niMkRcX1E3BURf4iIDxX1NfH89nJ/tfL8GiPitoi4o7i/fy/qD4+IW4vnd3lEDK50WyVVL99Rk7RP\nIqIeuBd4GdAGLAHeklK6s6IN60URsQZoTSnVxIK7EfFiYBvw3ZTSsUXdl4DNKaW5Rdgek1L6aCXb\nub+6ub/PANtSSudXsm0HKiKagKaU0rKIGAHcDrweOIcaeH57ub83URvPL4BhKaVtETEIuBH4EPBh\n4MqU0mURcSFwR0rpm5Vsq6TqZY+apH11InB/Sml1SmkncBlwdoXbpL1IKd0AbN6j+mxgQfF5AfnH\ncSl1c381IaW0PqW0rPi8FbgLmESNPL+93F9NSNm2YndQURJwBvDjor60z09S/zCoSdpXk4B1nfbb\nqKEfVoUE/CYibo+IcyvdmD5ySEppPeQfy8CECrenL3wwIlYUQyNLOTSws4iYAjwfuJUafH573B/U\nyPOLiPqIWA5sBK4FHgAeSyk9VZxSi3+HSupFBjVJ+yq6qKu1sdOnppReALwS+EAxtE7l8k3gSGA6\nsB74SmWbc2AiYjjwE+AfU0qPV7o9va2L+6uZ55dSejqlNB1oJo9IOKar0/q3VZLKxKAmaV+1AZM7\n7TcDD1WoLX0ipfRQsd0I/JT846rWbCjeD2p/T2hjhdvTq1JKG4ofyLuBiyjxMyzebfoJcGlK6cqi\numaeX1f3V0vPr11K6TFgEXAyMDoiGopDNfd3qKTeZVCTtK+WANOKWcsGA28Grqpwm3pNRAwrJjUg\nIoYBLwdW7f2qUroKmFN8ngP8vIJt6XXtIabwBkr6DIvJKC4G7kop/WenQzXx/Lq7vxp6fuMjYnTx\n+SBgFvk9vOuB2cVppX1+kvqHsz5K2mfFVNlfBeqB+Sml8yrcpF4TEUeQe9EAGoAflP3+IuKHwExg\nHLAB+DfgZ8AVQAuwFnhjSqmUE3J0c38zycPmErAGeG/7O11lEhGnAYuBlcDuovoT5Pe4Sv/89nJ/\nb6E2nt/x5MlC6sn/U/yKlNJni79nLgPGAr8H3p5S2lG5lkqqZgY1SZIkSaoyDn2UJEmSpCpjUJMk\nSZKkKmNQkyRJkqQqY1CTJEmSpCpjUJMkVZWIGB0R79+P6z7RF+2RJKkSnPVRklRVImIKcHVK6dge\nXrctpTS8TxolSVI/s0dNklRt5gJHRsTyiPjyngcjoikibiiOr4qI0yNiLnBQUXdpcd7bI+K2ou5b\nEVFf1G+LiK9ExLKIWBgR4/v39iRJenb2qEmSqsqz9ahFxD8BjSml84rwNTSltLVzj1pEHAN8Cfib\nlNKuiPgGcEtK6bsRkcgLDV8aEf8KTEgpfbA/7k2SpH3VUOkGSJLUQ0uA+RExCPhZSml5F+ecCcwA\nlkQEwEHAxuLYbuDy4vP3gSv7trmSJPWcQx8lSaWSUroBeDHwIPC9iHhnF6cFsCClNL0oR6WUPtPd\nV/ZRUyVJ2m8GNUlStdkKjOjuYEQcBmxMKV0EXAy8oDi0q+hlA1gIzI6ICcU1Y4vrIP/bN7v4/Fbg\nxl5uvyRJB8yhj5KkqpJSejQifhcRq4BfpZQ+sscpM4GPRMQuYBvQ3qM2D1gREctSSm+LiE8Bv4mI\nOmAX8AHgT8B24HkRcTuwBfi7vr8rSZJ6xslEJEkDitP4S5LKwKGPkiRJklRl7FGTJFWliDgO+N4e\n1TtSSidVoj2SJPUng5okSZIkVRmHPkqSJElSlTGoSZIkSVKVMahJkiRJUpUxqEmSJElSlTGoSZIk\nSVKVMahJkiRJUpX5PyHeewauSb+8AAAAAElFTkSuQmCC\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "diff = evodumb['mean']-evoherd['mean']\n",
- "m = evodumb['max'].loc[0].sum()\n",
- "diff = diff / m\n",
- "diff.plot(yerr=(evodumb['std']+evoherd['std'])/m,\n",
- " title='Comparing the Herd and Dumb behaviours: normalized difference and error in number of agents in each state when using 100% herd agents.');"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 13,
- "metadata": {
- "ExecuteTime": {
- "end_time": "2017-11-01T13:32:12.118102Z",
- "start_time": "2017-11-01T14:32:11.479970+01:00"
- }
- },
- "outputs": [
- {
- "data": {
- "text/plain": [
- ""
- ]
- },
- "execution_count": 13,
- "metadata": {},
- "output_type": "execute_result"
- },
- {
- "data": {
- "image/png": "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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "image/png": "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\n3FfboBuaOXPm8NOf/hRvb2/atWtXaVJwhRdeeIG777670sRQXFzs1CqrkydPZubMmbzxxhv1EaJp\nJEqKi0lc8ndiNv2V/prD2ta30+OupxnS/PwvdlZUWJBP9slj5JzMIPfUcfKzMynMPk7R6Uz0zAnk\nzAl88k/iW5hFQOEpQnIO46f5bAz7Ma2ufYDuPeyCcm3VmBgc1wymAssAb2COqiaJyJNAoqouAWYD\n80QkhdIzhTFn24vIXiAY8BORW4ARwCngcWAHsN6x3s/LqvrmxQzmj58msS391MV0cZ7YdsH84SfV\nPxdh/vz5vPfeewDs3buXm266ia1bt3LmzBnGjx/Ptm3b6N69O2fOVP+XD5SeVQwaNIgVK1Zw8uRJ\nZs+ezZVXXklxcTHTp0/n22+/JT8/nylTpnD//ffz7bffMmvWLD777DOgdNXX+Ph4Tp06RXp6Otdc\ncw1hYWGsWLGCZs2a8cgjj7Bs2TKeffZZli9fzqeffsqZM2cYOnQor7322nmP57zyyiu59957KSoq\nwsfmYs0F2L1lNYVLfsnAwm3s8I0l8+bnGdxrsNPtff38admqPS1bta/VfhvPAhZ1z6nfdFVdCiyt\nUPZEmdd5wP9U0Taqim494gHBBQUF7Nmzh6ioqPO2vfrqqzRp0oTNmzezefNm+vVzbqGtoqIi1q5d\ny9KlS/njH//I119/zezZs2nevDkJCQnk5+dz+eWXM2LEiCr7mDZtGs899xwrVqw495Ch06dP07Nn\nT5588kmgdMmMJ54oPYz33HMPn332GT/5yU/K9ePl5UXnzp3ZtGkT/fv3dyp+YwCyszJJmv8oA458\nyCkJYm3vPxF/85RGt7yEO/KoPwFr+su+Phw7doyQkJBKt3333XfnHpgTFxdHXFycU33+9Kc/BaB/\n//7s3bsXKF22e/PmzeemqbKysti1axd+fpVfeKuMt7c3t91227n3K1asYObMmeTm5pKZmUmPHj3O\nSwwArVq1Ij093RKDcYqWlLBu6ZtEJf6FgZpFQtjNdLvzrwxsRIvQuTuPSgyuEBgYSF5eXpXbK07N\nOOPsEtpnl8+G0iW3X3rpJW644YZydVeuXElJScm599XFEhAQcO66Ql5eHg888ACJiYlERkYyY8aM\nKtvm5eWVexaFuXBHD6aStnUlfa670yP/ct6/cyPZC6cRX7CJXd6dyfzxOwzqd5WrwzK1ZKurXqQW\n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\n8/8U7UznepyQDQAAAABJRU5ErkJggg==\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- },
- {
- "data": {
- "image/png": "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\nADIyMnB1LbBTp1LOiUyJZP7J+eyM2Ekly0o8V+M5JJIsbRZZ2iyytdm5n1M1qWRnZuemW5tZ87rv\n6/St2ZfKtpUfu20hBAFVAwioGkBUShRrL67l98u/syNiBx52HnTx7EIXry40cWmCiTBssefhmMN8\nfPhjEjISGOczjld9Xi3wpt3SrSW/9f2Nb4O/ZcW5FeyP3s//tfk/mro2LbTuHF0OOyN2svjMYsJv\nh+Nh58GMgBn0qdkHC1MLNDoNx64fY2fETvZc28PWf7dSwbxCrgNp5dbKKA4kR5fDpVuXOBN/hhyZ\ng42ZDTbmNoW+W5tZG/x95scQpxEE1BZCVAdigEHAkHx5tqJMdB8BBgB7pZRSCFER2A68L6U8dDez\n3iHcEUK0Ao4BI4D5+eqapX/fUqQre0JMmTKFZs2aMXr06ELz5H1asrS0zP18dxJQSsn777/P+PHj\nDWpz+PDhfPnllzRs2PCBugpqN2+bpqam5OTkIKVk5MiRfPnllwa1qVL+SMhI4MfTP7Lp0ibMTc0Z\n7zOeUQ1HYWdhVyL2VLOvxrvN32VS00nsuLqDv6/9zeoLq1lxbgVOVk508uxEF88utKzSssAbb5om\njTnBc9hwaQM1HGowt9NcGjk3emibtua2TA+YzjNezzDj8AxG/jWSkQ1GMtF3Ipam9343Gq2Grf9u\nZcnZJUTdiaKmQ02+bPclPbx7YGZy7zZqbmJOW/e2tHVvy8etPubI9SPsjNjJ3mt72fLvFipYVFAc\noWcXajjUwM3WrUhOJF2TTmhCKCdvnOTEzROExoeSnpP+WHVYm1k/OlMBPNJpSClzhBCTgJ2AKbBU\nShkmhPgUCJZSbgWWACuFEOEoPYxB+uKTgFrAdCHEdH1aNynlTWACsBywBnboX6A4i1+FEGOBa8CL\nRbqyJ4SjoyMDBw5kyZIljBkzBoDWrVuzbt06hg8fzurVq2nbtu1D6+jevTvTp09n6NCh2NnZERMT\ng7m5Oa6urnTp0oVffvkFd/d700jm5ua8+eabzJo1i86dlVXM7du3Z/Xq1UyfPp19+/bh7OyMvb19\noW126dKFvn378uabb+Lq6kpSUhJ37tzBy8urGL4VldLMnew7LDu7jFXnV6HRahhQZwDjm4zH2dq5\npE0DlKGrF+q8wAt1XiA1O5V/Yv7h78i/2X5lOxsvbaSCeQXaebSji2cX2rq3xcbchqC4IKYfmk5s\n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\n",
- "text/plain": [
- ""
- ]
- },
- "metadata": {},
- "output_type": "display_data"
- }
- ],
- "source": [
- "(evohalfherd['std']/m).plot()\n",
- "(evodumb['std']/m).plot()\n",
- "(evowise['std']/m).plot()"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": null,
- "metadata": {
- "collapsed": true
- },
- "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.8.5"
- },
- "toc": {
- "colors": {
- "hover_highlight": "#DAA520",
- "navigate_num": "#000000",
- "navigate_text": "#333333",
- "running_highlight": "#FF0000",
- "selected_highlight": "#FFD700",
- "sidebar_border": "#EEEEEE",
- "wrapper_background": "#FFFFFF"
- },
- "moveMenuLeft": true,
- "nav_menu": {
- "height": "30px",
- "width": "252px"
- },
- "navigate_menu": true,
- "number_sections": true,
- "sideBar": true,
- "threshold": 4,
- "toc_cell": false,
- "toc_section_display": "block",
- "toc_window_display": false,
- "widenNotebook": false
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/examples/Untitled.ipynb b/examples/Untitled.ipynb
deleted file mode 100644
index 29e00b1..0000000
--- a/examples/Untitled.ipynb
+++ /dev/null
@@ -1,80808 +0,0 @@
-{
- "cells": [
- {
- "cell_type": "code",
- "execution_count": 2,
- "metadata": {},
- "outputs": [
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "The autoreload extension is already loaded. To reload it, use:\n",
- " %reload_ext autoreload\n",
- "Populating the interactive namespace from numpy and matplotlib\n"
- ]
- }
- ],
- "source": [
- "import soil\n",
- "import networkx as nx\n",
- " \n",
- "%load_ext autoreload\n",
- "%autoreload 2\n",
- "\n",
- "# To display plots in the notebook\n",
- "%pylab inline\n",
- "\n",
- "from soil import *"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 6,
- "metadata": {},
- "outputs": [],
- "source": [
- "evodumb = analysis.read_data('newsspread/soil_output/Sim_all_dumb/')"
- ]
- },
- {
- "cell_type": "code",
- "execution_count": 7,
- "metadata": {},
- "outputs": [
- {
- "data": {
- "text/plain": [
- "[('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 103 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_0 True True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n",
- " t_step ... \n",
- " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 99 env \n",
- " t_step \n",
- " 0 0.1 0.01 \n",
- " 1 0.1 0.01 \n",
- " 2 0.1 0.01 \n",
- " 3 0.1 0.01 \n",
- " 4 0.1 0.01 \n",
- " 6 0.1 0.01 \n",
- " 7 0.1 0.01 \n",
- " 8 0.1 0.01 \n",
- " 10 0.1 0.01 \n",
- " 11 0.1 0.01 \n",
- " 12 0.1 0.01 \n",
- " 14 0.1 0.01 \n",
- " 15 0.1 0.01 \n",
- " 16 0.1 0.01 \n",
- " 18 0.1 0.01 \n",
- " 19 0.1 0.01 \n",
- " 20 0.1 0.01 \n",
- " 22 0.1 0.01 \n",
- " 23 0.1 0.01 \n",
- " 24 0.1 0.01 \n",
- " 25 0.1 0.01 \n",
- " 26 0.1 0.01 \n",
- " 27 0.1 0.01 \n",
- " 29 0.1 0.01 \n",
- " \n",
- " [24 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 103 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_1 True True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n",
- " t_step ... \n",
- " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 99 env \n",
- " t_step \n",
- " 0 0.1 0.01 \n",
- " 1 0.1 0.01 \n",
- " 2 0.1 0.01 \n",
- " 3 0.1 0.01 \n",
- " 4 0.1 0.01 \n",
- " 5 0.1 0.01 \n",
- " 7 0.1 0.01 \n",
- " 8 0.1 0.01 \n",
- " 9 0.1 0.01 \n",
- " 10 0.1 0.01 \n",
- " 11 0.1 0.01 \n",
- " 12 0.1 0.01 \n",
- " 13 0.1 0.01 \n",
- " 14 0.1 0.01 \n",
- " 15 0.1 0.01 \n",
- " 16 0.1 0.01 \n",
- " 17 0.1 0.01 \n",
- " 18 0.1 0.01 \n",
- " 19 0.1 0.01 \n",
- " 20 0.1 0.01 \n",
- " 21 0.1 0.01 \n",
- " 22 0.1 0.01 \n",
- " 23 0.1 0.01 \n",
- " 24 0.1 0.01 \n",
- " 26 0.1 0.01 \n",
- " 27 0.1 0.01 \n",
- " 29 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_10 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " \n",
- " [23 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_11 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [26 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_12 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [26 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_13 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [28 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_14 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_15 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [28 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_16 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [26 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_17 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_18 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_19 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [28 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 103 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_2 True True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n",
- " t_step ... \n",
- " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 99 env \n",
- " t_step \n",
- " 0 0.1 0.01 \n",
- " 1 0.1 0.01 \n",
- " 2 0.1 0.01 \n",
- " 4 0.1 0.01 \n",
- " 5 0.1 0.01 \n",
- " 6 0.1 0.01 \n",
- " 7 0.1 0.01 \n",
- " 8 0.1 0.01 \n",
- " 9 0.1 0.01 \n",
- " 10 0.1 0.01 \n",
- " 12 0.1 0.01 \n",
- " 14 0.1 0.01 \n",
- " 16 0.1 0.01 \n",
- " 17 0.1 0.01 \n",
- " 18 0.1 0.01 \n",
- " 19 0.1 0.01 \n",
- " 21 0.1 0.01 \n",
- " 22 0.1 0.01 \n",
- " 23 0.1 0.01 \n",
- " 25 0.1 0.01 \n",
- " 26 0.1 0.01 \n",
- " 27 0.1 0.01 \n",
- " 28 0.1 0.01 \n",
- " \n",
- " [23 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_20 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " \n",
- " [29 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_21 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [29 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_22 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [24 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_23 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_24 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [25 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_25 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_26 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [21 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_27 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [28 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_28 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_29 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [28 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 103 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_3 True True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n",
- " t_step ... \n",
- " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 99 env \n",
- " t_step \n",
- " 0 0.1 0.01 \n",
- " 1 0.1 0.01 \n",
- " 2 0.1 0.01 \n",
- " 3 0.1 0.01 \n",
- " 4 0.1 0.01 \n",
- " 5 0.1 0.01 \n",
- " 6 0.1 0.01 \n",
- " 7 0.1 0.01 \n",
- " 8 0.1 0.01 \n",
- " 9 0.1 0.01 \n",
- " 10 0.1 0.01 \n",
- " 11 0.1 0.01 \n",
- " 12 0.1 0.01 \n",
- " 13 0.1 0.01 \n",
- " 14 0.1 0.01 \n",
- " 15 0.1 0.01 \n",
- " 16 0.1 0.01 \n",
- " 17 0.1 0.01 \n",
- " 18 0.1 0.01 \n",
- " 19 0.1 0.01 \n",
- " 20 0.1 0.01 \n",
- " 21 0.1 0.01 \n",
- " 22 0.1 0.01 \n",
- " 23 0.1 0.01 \n",
- " 25 0.1 0.01 \n",
- " 27 0.1 0.01 \n",
- " 28 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_30 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " \n",
- " [28 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_31 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [23 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_32 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " \n",
- " [25 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_33 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_34 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [25 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_35 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_36 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [26 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_37 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [26 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_38 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_39 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 103 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_4 True True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n",
- " t_step ... \n",
- " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 99 env \n",
- " t_step \n",
- " 0 0.1 0.01 \n",
- " 1 0.1 0.01 \n",
- " 3 0.1 0.01 \n",
- " 4 0.1 0.01 \n",
- " 5 0.1 0.01 \n",
- " 7 0.1 0.01 \n",
- " 8 0.1 0.01 \n",
- " 9 0.1 0.01 \n",
- " 12 0.1 0.01 \n",
- " 13 0.1 0.01 \n",
- " 14 0.1 0.01 \n",
- " 15 0.1 0.01 \n",
- " 16 0.1 0.01 \n",
- " 17 0.1 0.01 \n",
- " 18 0.1 0.01 \n",
- " 19 0.1 0.01 \n",
- " 21 0.1 0.01 \n",
- " 22 0.1 0.01 \n",
- " 23 0.1 0.01 \n",
- " 25 0.1 0.01 \n",
- " 27 0.1 0.01 \n",
- " 28 0.1 0.01 \n",
- " 29 0.1 0.01 \n",
- " \n",
- " [23 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_40 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " \n",
- " [26 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_41 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " \n",
- " [22 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_42 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [28 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_43 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_44 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [26 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_45 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [23 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_46 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_47 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_48 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 10 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 18 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 24 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [26 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_49 True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 103 104 105 ... 91 92 93 94 95 96 97 \n",
- " t_step ... \n",
- " 0 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 98 99 env \n",
- " t_step \n",
- " 0 0.1 0.1 0.01 \n",
- " 1 0.1 0.1 0.01 \n",
- " 2 0.1 0.1 0.01 \n",
- " 3 0.1 0.1 0.01 \n",
- " 4 0.1 0.1 0.01 \n",
- " 5 0.1 0.1 0.01 \n",
- " 6 0.1 0.1 0.01 \n",
- " 7 0.1 0.1 0.01 \n",
- " 8 0.1 0.1 0.01 \n",
- " 9 0.1 0.1 0.01 \n",
- " 11 0.1 0.1 0.01 \n",
- " 12 0.1 0.1 0.01 \n",
- " 13 0.1 0.1 0.01 \n",
- " 14 0.1 0.1 0.01 \n",
- " 15 0.1 0.1 0.01 \n",
- " 16 0.1 0.1 0.01 \n",
- " 17 0.1 0.1 0.01 \n",
- " 19 0.1 0.1 0.01 \n",
- " 20 0.1 0.1 0.01 \n",
- " 21 0.1 0.1 0.01 \n",
- " 22 0.1 0.1 0.01 \n",
- " 23 0.1 0.1 0.01 \n",
- " 25 0.1 0.1 0.01 \n",
- " 26 0.1 0.1 0.01 \n",
- " 27 0.1 0.1 0.01 \n",
- " 28 0.1 0.1 0.01 \n",
- " 29 0.1 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 103 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_5 True True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n",
- " t_step ... \n",
- " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 99 env \n",
- " t_step \n",
- " 0 0.1 0.01 \n",
- " 1 0.1 0.01 \n",
- " 2 0.1 0.01 \n",
- " 3 0.1 0.01 \n",
- " 4 0.1 0.01 \n",
- " 5 0.1 0.01 \n",
- " 6 0.1 0.01 \n",
- " 7 0.1 0.01 \n",
- " 8 0.1 0.01 \n",
- " 9 0.1 0.01 \n",
- " 10 0.1 0.01 \n",
- " 11 0.1 0.01 \n",
- " 12 0.1 0.01 \n",
- " 13 0.1 0.01 \n",
- " 14 0.1 0.01 \n",
- " 15 0.1 0.01 \n",
- " 16 0.1 0.01 \n",
- " 17 0.1 0.01 \n",
- " 19 0.1 0.01 \n",
- " 20 0.1 0.01 \n",
- " 21 0.1 0.01 \n",
- " 22 0.1 0.01 \n",
- " 23 0.1 0.01 \n",
- " 24 0.1 0.01 \n",
- " 25 0.1 0.01 \n",
- " 26 0.1 0.01 \n",
- " 27 0.1 0.01 \n",
- " 28 0.1 0.01 \n",
- " 29 0.1 0.01 \n",
- " \n",
- " [29 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 103 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_6 True True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n",
- " t_step ... \n",
- " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 99 env \n",
- " t_step \n",
- " 0 0.1 0.01 \n",
- " 1 0.1 0.01 \n",
- " 2 0.1 0.01 \n",
- " 3 0.1 0.01 \n",
- " 4 0.1 0.01 \n",
- " 5 0.1 0.01 \n",
- " 6 0.1 0.01 \n",
- " 7 0.1 0.01 \n",
- " 8 0.1 0.01 \n",
- " 9 0.1 0.01 \n",
- " 10 0.1 0.01 \n",
- " 11 0.1 0.01 \n",
- " 12 0.1 0.01 \n",
- " 13 0.1 0.01 \n",
- " 14 0.1 0.01 \n",
- " 15 0.1 0.01 \n",
- " 16 0.1 0.01 \n",
- " 18 0.1 0.01 \n",
- " 19 0.1 0.01 \n",
- " 20 0.1 0.01 \n",
- " 22 0.1 0.01 \n",
- " 23 0.1 0.01 \n",
- " 24 0.1 0.01 \n",
- " 25 0.1 0.01 \n",
- " 26 0.1 0.01 \n",
- " 28 0.1 0.01 \n",
- " 29 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 103 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_7 True True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n",
- " t_step ... \n",
- " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 99 env \n",
- " t_step \n",
- " 0 0.1 0.01 \n",
- " 1 0.1 0.01 \n",
- " 2 0.1 0.01 \n",
- " 3 0.1 0.01 \n",
- " 4 0.1 0.01 \n",
- " 5 0.1 0.01 \n",
- " 6 0.1 0.01 \n",
- " 7 0.1 0.01 \n",
- " 8 0.1 0.01 \n",
- " 9 0.1 0.01 \n",
- " 11 0.1 0.01 \n",
- " 12 0.1 0.01 \n",
- " 13 0.1 0.01 \n",
- " 15 0.1 0.01 \n",
- " 16 0.1 0.01 \n",
- " 17 0.1 0.01 \n",
- " 18 0.1 0.01 \n",
- " 19 0.1 0.01 \n",
- " 20 0.1 0.01 \n",
- " 21 0.1 0.01 \n",
- " 22 0.1 0.01 \n",
- " 23 0.1 0.01 \n",
- " 25 0.1 0.01 \n",
- " 26 0.1 0.01 \n",
- " 27 0.1 0.01 \n",
- " 28 0.1 0.01 \n",
- " 29 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 103 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 16 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 23 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 27 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_8 True True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n",
- " t_step ... \n",
- " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 16 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 23 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 27 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 99 env \n",
- " t_step \n",
- " 0 0.1 0.01 \n",
- " 1 0.1 0.01 \n",
- " 2 0.1 0.01 \n",
- " 3 0.1 0.01 \n",
- " 4 0.1 0.01 \n",
- " 5 0.1 0.01 \n",
- " 7 0.1 0.01 \n",
- " 9 0.1 0.01 \n",
- " 11 0.1 0.01 \n",
- " 12 0.1 0.01 \n",
- " 14 0.1 0.01 \n",
- " 15 0.1 0.01 \n",
- " 16 0.1 0.01 \n",
- " 17 0.1 0.01 \n",
- " 18 0.1 0.01 \n",
- " 19 0.1 0.01 \n",
- " 20 0.1 0.01 \n",
- " 21 0.1 0.01 \n",
- " 22 0.1 0.01 \n",
- " 23 0.1 0.01 \n",
- " 24 0.1 0.01 \n",
- " 26 0.1 0.01 \n",
- " 27 0.1 0.01 \n",
- " 28 0.1 0.01 \n",
- " \n",
- " [24 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}}),\n",
- " ('newsspread/soil_output/Sim_all_dumb/Sim_all_dumb.dumped.yml',\n",
- " key SEED has_tv \\\n",
- " agent_id env 0 1 10 100 101 102 103 \n",
- " t_step \n",
- " 0 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 1 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 2 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 3 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 4 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 5 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 6 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 7 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 8 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 9 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 10 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 11 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 12 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 13 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 14 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 15 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 17 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 18 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 19 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 20 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 21 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 22 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 24 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 25 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 26 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 28 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " 29 NoneSim_all_dumb_trial_9 True True True True True True True \n",
- " \n",
- " key ... prob_tv_spread \\\n",
- " agent_id 104 105 ... 91 92 93 94 95 96 97 98 \n",
- " t_step ... \n",
- " 0 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 1 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 2 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 3 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 4 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 5 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 6 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 7 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 8 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 9 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 10 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 11 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 12 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 13 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 14 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 15 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 17 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 18 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 19 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 20 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 21 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 22 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 24 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 25 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 26 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 28 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " 29 True True ... 0.1 0.1 0.1 0.1 0.1 0.1 0.1 0.1 \n",
- " \n",
- " key \n",
- " agent_id 99 env \n",
- " t_step \n",
- " 0 0.1 0.01 \n",
- " 1 0.1 0.01 \n",
- " 2 0.1 0.01 \n",
- " 3 0.1 0.01 \n",
- " 4 0.1 0.01 \n",
- " 5 0.1 0.01 \n",
- " 6 0.1 0.01 \n",
- " 7 0.1 0.01 \n",
- " 8 0.1 0.01 \n",
- " 9 0.1 0.01 \n",
- " 10 0.1 0.01 \n",
- " 11 0.1 0.01 \n",
- " 12 0.1 0.01 \n",
- " 13 0.1 0.01 \n",
- " 14 0.1 0.01 \n",
- " 15 0.1 0.01 \n",
- " 17 0.1 0.01 \n",
- " 18 0.1 0.01 \n",
- " 19 0.1 0.01 \n",
- " 20 0.1 0.01 \n",
- " 21 0.1 0.01 \n",
- " 22 0.1 0.01 \n",
- " 24 0.1 0.01 \n",
- " 25 0.1 0.01 \n",
- " 26 0.1 0.01 \n",
- " 28 0.1 0.01 \n",
- " 29 0.1 0.01 \n",
- " \n",
- " [27 rows x 2003 columns],\n",
- " {'default_state': {},\n",
- " 'dir_path': 'soil_output/Sim_all_dumb',\n",
- " 'dry_run': False,\n",
- " 'dump': [],\n",
- " 'environment_agents': [],\n",
- " 'environment_params': {'prob_neighbor_spread': 0.0, 'prob_tv_spread': 0.01},\n",
- " 'interval': 1,\n",
- " 'load_module': 'newsspread',\n",
- " 'max_time': 30,\n",
- " 'name': 'Sim_all_dumb',\n",
- " 'network_agents': [{'agent_class': 'DumbViewer',\n",
- " 'state': {'has_tv': False},\n",
- " 'weight': 1},\n",
- " {'agent_class': 'DumbViewer', 'state': {'has_tv': True}, 'weight': 1}],\n",
- " 'network_params': {'generator': 'barabasi_albert_graph', 'm': 5, 'n': 500},\n",
- " 'num_trials': 50,\n",
- " 'seed': 'None',\n",
- " 'states': [],\n",
- " 'topology': {'directed': False,\n",
- " 'graph': {},\n",
- " 'links': [{'source': 0, 'target': 5},\n",
- " {'source': 0, 'target': 22},\n",
- " {'source': 0, 'target': 39},\n",
- " {'source': 0, 'target': 64},\n",
- " {'source': 0, 'target': 103},\n",
- " {'source': 1, 'target': 5},\n",
- " {'source': 1, 'target': 6},\n",
- " {'source': 1, 'target': 7},\n",
- " {'source': 1, 'target': 10},\n",
- " {'source': 1, 'target': 11},\n",
- " {'source': 1, 'target': 12},\n",
- " {'source': 1, 'target': 13},\n",
- " {'source': 1, 'target': 14},\n",
- " {'source': 1, 'target': 17},\n",
- " {'source': 1, 'target': 21},\n",
- " {'source': 1, 'target': 22},\n",
- " {'source': 1, 'target': 29},\n",
- " {'source': 1, 'target': 37},\n",
- " {'source': 1, 'target': 44},\n",
- " {'source': 1, 'target': 49},\n",
- " {'source': 1, 'target': 68},\n",
- " {'source': 1, 'target': 71},\n",
- " {'source': 1, 'target': 72},\n",
- " {'source': 1, 'target': 82},\n",
- " {'source': 1, 'target': 86},\n",
- " {'source': 1, 'target': 93},\n",
- " {'source': 1, 'target': 104},\n",
- " {'source': 1, 'target': 105},\n",
- " {'source': 1, 'target': 116},\n",
- " {'source': 1, 'target': 131},\n",
- " {'source': 1, 'target': 164},\n",
- " {'source': 1, 'target': 177},\n",
- " {'source': 1, 'target': 181},\n",
- " {'source': 1, 'target': 182},\n",
- " {'source': 1, 'target': 219},\n",
- " {'source': 1, 'target': 239},\n",
- " {'source': 1, 'target': 258},\n",
- " {'source': 1, 'target': 299},\n",
- " {'source': 1, 'target': 309},\n",
- " {'source': 1, 'target': 394},\n",
- " {'source': 1, 'target': 395},\n",
- " {'source': 1, 'target': 402},\n",
- " {'source': 1, 'target': 419},\n",
- " {'source': 1, 'target': 486},\n",
- " {'source': 1, 'target': 487},\n",
- " {'source': 2, 'target': 5},\n",
- " {'source': 2, 'target': 6},\n",
- " {'source': 2, 'target': 7},\n",
- " {'source': 2, 'target': 18},\n",
- " {'source': 2, 'target': 27},\n",
- " {'source': 2, 'target': 28},\n",
- " {'source': 2, 'target': 31},\n",
- " {'source': 2, 'target': 33},\n",
- " {'source': 2, 'target': 34},\n",
- " {'source': 2, 'target': 35},\n",
- " {'source': 2, 'target': 41},\n",
- " {'source': 2, 'target': 48},\n",
- " {'source': 2, 'target': 53},\n",
- " {'source': 2, 'target': 55},\n",
- " {'source': 2, 'target': 63},\n",
- " {'source': 2, 'target': 67},\n",
- " {'source': 2, 'target': 95},\n",
- " {'source': 2, 'target': 113},\n",
- " {'source': 2, 'target': 114},\n",
- " {'source': 2, 'target': 144},\n",
- " {'source': 2, 'target': 151},\n",
- " {'source': 2, 'target': 167},\n",
- " {'source': 2, 'target': 177},\n",
- " {'source': 2, 'target': 184},\n",
- " {'source': 2, 'target': 193},\n",
- " {'source': 2, 'target': 216},\n",
- " {'source': 2, 'target': 258},\n",
- " {'source': 2, 'target': 259},\n",
- " {'source': 2, 'target': 321},\n",
- " {'source': 2, 'target': 344},\n",
- " {'source': 2, 'target': 352},\n",
- " {'source': 2, 'target': 354},\n",
- " {'source': 2, 'target': 389},\n",
- " {'source': 2, 'target': 391},\n",
- " {'source': 2, 'target': 396},\n",
- " {'source': 2, 'target': 403},\n",
- " {'source': 2, 'target': 408},\n",
- " {'source': 2, 'target': 424},\n",
- " {'source': 3, 'target': 5},\n",
- " {'source': 3, 'target': 6},\n",
- " {'source': 3, 'target': 8},\n",
- " {'source': 3, 'target': 18},\n",
- " {'source': 3, 'target': 22},\n",
- " {'source': 3, 'target': 28},\n",
- " {'source': 3, 'target': 29},\n",
- " {'source': 3, 'target': 30},\n",
- " {'source': 3, 'target': 44},\n",
- " {'source': 3, 'target': 52},\n",
- " {'source': 3, 'target': 54},\n",
- " {'source': 3, 'target': 57},\n",
- " {'source': 3, 'target': 63},\n",
- " {'source': 3, 'target': 103},\n",
- " {'source': 3, 'target': 109},\n",
- " {'source': 3, 'target': 111},\n",
- " {'source': 3, 'target': 135},\n",
- " {'source': 3, 'target': 139},\n",
- " {'source': 3, 'target': 143},\n",
- " {'source': 3, 'target': 148},\n",
- " {'source': 3, 'target': 150},\n",
- " {'source': 3, 'target': 189},\n",
- " {'source': 3, 'target': 193},\n",
- " {'source': 3, 'target': 204},\n",
- " {'source': 3, 'target': 373},\n",
- " {'source': 3, 'target': 456},\n",
- " {'source': 3, 'target': 481},\n",
- " {'source': 3, 'target': 499},\n",
- " {'source': 4, 'target': 5},\n",
- " {'source': 4, 'target': 6},\n",
- " {'source': 4, 'target': 7},\n",
- " {'source': 4, 'target': 8},\n",
- " {'source': 4, 'target': 9},\n",
- " {'source': 4, 'target': 11},\n",
- " {'source': 4, 'target': 15},\n",
- " {'source': 4, 'target': 17},\n",
- " {'source': 4, 'target': 19},\n",
- " {'source': 4, 'target': 28},\n",
- " {'source': 4, 'target': 29},\n",
- " {'source': 4, 'target': 30},\n",
- " {'source': 4, 'target': 35},\n",
- " {'source': 4, 'target': 36},\n",
- " {'source': 4, 'target': 38},\n",
- " {'source': 4, 'target': 49},\n",
- " {'source': 4, 'target': 57},\n",
- " {'source': 4, 'target': 60},\n",
- " {'source': 4, 'target': 62},\n",
- " {'source': 4, 'target': 67},\n",
- " {'source': 4, 'target': 68},\n",
- " {'source': 4, 'target': 79},\n",
- " {'source': 4, 'target': 83},\n",
- " {'source': 4, 'target': 90},\n",
- " {'source': 4, 'target': 91},\n",
- " {'source': 4, 'target': 92},\n",
- " {'source': 4, 'target': 94},\n",
- " {'source': 4, 'target': 107},\n",
- " {'source': 4, 'target': 114},\n",
- " {'source': 4, 'target': 118},\n",
- " {'source': 4, 'target': 128},\n",
- " {'source': 4, 'target': 141},\n",
- " {'source': 4, 'target': 150},\n",
- " {'source': 4, 'target': 151},\n",
- " {'source': 4, 'target': 165},\n",
- " {'source': 4, 'target': 204},\n",
- " {'source': 4, 'target': 223},\n",
- " {'source': 4, 'target': 232},\n",
- " {'source': 4, 'target': 235},\n",
- " {'source': 4, 'target': 243},\n",
- " {'source': 4, 'target': 244},\n",
- " {'source': 4, 'target': 245},\n",
- " {'source': 4, 'target': 253},\n",
- " {'source': 4, 'target': 258},\n",
- " {'source': 4, 'target': 259},\n",
- " {'source': 4, 'target': 279},\n",
- " {'source': 4, 'target': 310},\n",
- " {'source': 4, 'target': 313},\n",
- " {'source': 4, 'target': 334},\n",
- " {'source': 4, 'target': 351},\n",
- " {'source': 4, 'target': 362},\n",
- " {'source': 4, 'target': 376},\n",
- " {'source': 4, 'target': 385},\n",
- " {'source': 4, 'target': 397},\n",
- " {'source': 4, 'target': 413},\n",
- " {'source': 4, 'target': 417},\n",
- " {'source': 4, 'target': 442},\n",
- " {'source': 4, 'target': 477},\n",
- " {'source': 4, 'target': 498},\n",
- " {'source': 5, 'target': 6},\n",
- " {'source': 5, 'target': 7},\n",
- " {'source': 5, 'target': 8},\n",
- " {'source': 5, 'target': 9},\n",
- " {'source': 5, 'target': 10},\n",
- " {'source': 5, 'target': 13},\n",
- " {'source': 5, 'target': 15},\n",
- " {'source': 5, 'target': 20},\n",
- " {'source': 5, 'target': 24},\n",
- " {'source': 5, 'target': 25},\n",
- " {'source': 5, 'target': 29},\n",
- " {'source': 5, 'target': 32},\n",
- " {'source': 5, 'target': 34},\n",
- " {'source': 5, 'target': 36},\n",
- " {'source': 5, 'target': 48},\n",
- " {'source': 5, 'target': 51},\n",
- " {'source': 5, 'target': 52},\n",
- " {'source': 5, 'target': 59},\n",
- " {'source': 5, 'target': 68},\n",
- " {'source': 5, 'target': 70},\n",
- " {'source': 5, 'target': 72},\n",
- " {'source': 5, 'target': 81},\n",
- " {'source': 5, 'target': 85},\n",
- " {'source': 5, 'target': 95},\n",
- " {'source': 5, 'target': 102},\n",
- " {'source': 5, 'target': 117},\n",
- " {'source': 5, 'target': 121},\n",
- " {'source': 5, 'target': 123},\n",
- " {'source': 5, 'target': 129},\n",
- " {'source': 5, 'target': 133},\n",
- " {'source': 5, 'target': 138},\n",
- " {'source': 5, 'target': 143},\n",
- " {'source': 5, 'target': 147},\n",
- " {'source': 5, 'target': 150},\n",
- " {'source': 5, 'target': 152},\n",
- " {'source': 5, 'target': 153},\n",
- " {'source': 5, 'target': 159},\n",
- " {'source': 5, 'target': 161},\n",
- " {'source': 5, 'target': 171},\n",
- " {'source': 5, 'target': 199},\n",
- " {'source': 5, 'target': 203},\n",
- " {'source': 5, 'target': 215},\n",
- " {'source': 5, 'target': 226},\n",
- " {'source': 5, 'target': 233},\n",
- " {'source': 5, 'target': 239},\n",
- " {'source': 5, 'target': 246},\n",
- " {'source': 5, 'target': 268},\n",
- " {'source': 5, 'target': 269},\n",
- " {'source': 5, 'target': 280},\n",
- " {'source': 5, 'target': 286},\n",
- " {'source': 5, 'target': 288},\n",
- " {'source': 5, 'target': 300},\n",
- " {'source': 5, 'target': 311},\n",
- " {'source': 5, 'target': 312},\n",
- " {'source': 5, 'target': 315},\n",
- " {'source': 5, 'target': 322},\n",
- " {'source': 5, 'target': 326},\n",
- " {'source': 5, 'target': 328},\n",
- " {'source': 5, 'target': 335},\n",
- " {'source': 5, 'target': 343},\n",
- " {'source': 5, 'target': 365},\n",
- " {'source': 5, 'target': 385},\n",
- " {'source': 5, 'target': 389},\n",
- " {'source': 5, 'target': 394},\n",
- " {'source': 5, 'target': 400},\n",
- " {'source': 5, 'target': 402},\n",
- " {'source': 5, 'target': 404},\n",
- " {'source': 5, 'target': 407},\n",
- " {'source': 5, 'target': 408},\n",
- " {'source': 5, 'target': 415},\n",
- " {'source': 5, 'target': 416},\n",
- " {'source': 5, 'target': 424},\n",
- " {'source': 5, 'target': 429},\n",
- " {'source': 5, 'target': 440},\n",
- " {'source': 5, 'target': 454},\n",
- " {'source': 6, 'target': 7},\n",
- " {'source': 6, 'target': 8},\n",
- " {'source': 6, 'target': 9},\n",
- " {'source': 6, 'target': 11},\n",
- " {'source': 6, 'target': 12},\n",
- " {'source': 6, 'target': 13},\n",
- " {'source': 6, 'target': 14},\n",
- " {'source': 6, 'target': 16},\n",
- " {'source': 6, 'target': 17},\n",
- " {'source': 6, 'target': 18},\n",
- " {'source': 6, 'target': 19},\n",
- " {'source': 6, 'target': 21},\n",
- " {'source': 6, 'target': 31},\n",
- " {'source': 6, 'target': 36},\n",
- " {'source': 6, 'target': 38},\n",
- " {'source': 6, 'target': 39},\n",
- " {'source': 6, 'target': 40},\n",
- " {'source': 6, 'target': 51},\n",
- " {'source': 6, 'target': 62},\n",
- " {'source': 6, 'target': 67},\n",
- " {'source': 6, 'target': 71},\n",
- " {'source': 6, 'target': 76},\n",
- " {'source': 6, 'target': 83},\n",
- " {'source': 6, 'target': 92},\n",
- " {'source': 6, 'target': 127},\n",
- " {'source': 6, 'target': 129},\n",
- " {'source': 6, 'target': 131},\n",
- " {'source': 6, 'target': 133},\n",
- " {'source': 6, 'target': 137},\n",
- " {'source': 6, 'target': 139},\n",
- " {'source': 6, 'target': 147},\n",
- " {'source': 6, 'target': 168},\n",
- " {'source': 6, 'target': 173},\n",
- " {'source': 6, 'target': 187},\n",
- " {'source': 6, 'target': 210},\n",
- " {'source': 6, 'target': 212},\n",
- " {'source': 6, 'target': 236},\n",
- " {'source': 6, 'target': 260},\n",
- " {'source': 6, 'target': 276},\n",
- " {'source': 6, 'target': 309},\n",
- " {'source': 6, 'target': 315},\n",
- " {'source': 6, 'target': 325},\n",
- " {'source': 6, 'target': 330},\n",
- " {'source': 6, 'target': 333},\n",
- " {'source': 6, 'target': 345},\n",
- " {'source': 6, 'target': 349},\n",
- " {'source': 6, 'target': 373},\n",
- " {'source': 6, 'target': 377},\n",
- " {'source': 6, 'target': 379},\n",
- " {'source': 6, 'target': 383},\n",
- " {'source': 6, 'target': 392},\n",
- " {'source': 6, 'target': 443},\n",
- " {'source': 6, 'target': 444},\n",
- " {'source': 6, 'target': 458},\n",
- " {'source': 6, 'target': 466},\n",
- " {'source': 7, 'target': 8},\n",
- " {'source': 7, 'target': 9},\n",
- " {'source': 7, 'target': 10},\n",
- " {'source': 7, 'target': 11},\n",
- " {'source': 7, 'target': 12},\n",
- " {'source': 7, 'target': 16},\n",
- " {'source': 7, 'target': 17},\n",
- " {'source': 7, 'target': 19},\n",
- " {'source': 7, 'target': 22},\n",
- " {'source': 7, 'target': 23},\n",
- " {'source': 7, 'target': 33},\n",
- " {'source': 7, 'target': 34},\n",
- " {'source': 7, 'target': 35},\n",
- " {'source': 7, 'target': 36},\n",
- " {'source': 7, 'target': 38},\n",
- " {'source': 7, 'target': 43},\n",
- " {'source': 7, 'target': 46},\n",
- " {'source': 7, 'target': 47},\n",
- " {'source': 7, 'target': 50},\n",
- " {'source': 7, 'target': 58},\n",
- " {'source': 7, 'target': 61},\n",
- " {'source': 7, 'target': 65},\n",
- " {'source': 7, 'target': 76},\n",
- " {'source': 7, 'target': 84},\n",
- " {'source': 7, 'target': 88},\n",
- " {'source': 7, 'target': 99},\n",
- " {'source': 7, 'target': 100},\n",
- " {'source': 7, 'target': 104},\n",
- " {'source': 7, 'target': 105},\n",
- " {'source': 7, 'target': 108},\n",
- " {'source': 7, 'target': 111},\n",
- " {'source': 7, 'target': 118},\n",
- " {'source': 7, 'target': 122},\n",
- " {'source': 7, 'target': 130},\n",
- " {'source': 7, 'target': 142},\n",
- " {'source': 7, 'target': 154},\n",
- " {'source': 7, 'target': 168},\n",
- " {'source': 7, 'target': 173},\n",
- " {'source': 7, 'target': 179},\n",
- " {'source': 7, 'target': 186},\n",
- " {'source': 7, 'target': 187},\n",
- " {'source': 7, 'target': 199},\n",
- " {'source': 7, 'target': 201},\n",
- " {'source': 7, 'target': 215},\n",
- " {'source': 7, 'target': 226},\n",
- " {'source': 7, 'target': 244},\n",
- " {'source': 7, 'target': 246},\n",
- " {'source': 7, 'target': 274},\n",
- " {'source': 7, 'target': 275},\n",
- " {'source': 7, 'target': 299},\n",
- " {'source': 7, 'target': 312},\n",
- " {'source': 7, 'target': 329},\n",
- " {'source': 7, 'target': 334},\n",
- " {'source': 7, 'target': 338},\n",
- " {'source': 7, 'target': 343},\n",
- " {'source': 7, 'target': 347},\n",
- " {'source': 7, 'target': 355},\n",
- " {'source': 7, 'target': 361},\n",
- " {'source': 7, 'target': 362},\n",
- " {'source': 7, 'target': 375},\n",
- " {'source': 7, 'target': 401},\n",
- " {'source': 7, 'target': 406},\n",
- " {'source': 7, 'target': 416},\n",
- " {'source': 7, 'target': 424},\n",
- " {'source': 7, 'target': 426},\n",
- " {'source': 7, 'target': 435},\n",
- " {'source': 7, 'target': 436},\n",
- " {'source': 7, 'target': 446},\n",
- " {'source': 7, 'target': 447},\n",
- " {'source': 7, 'target': 453},\n",
- " {'source': 7, 'target': 456},\n",
- " {'source': 7, 'target': 469},\n",
- " {'source': 7, 'target': 478},\n",
- " {'source': 7, 'target': 496},\n",
- " {'source': 8, 'target': 9},\n",
- " {'source': 8, 'target': 10},\n",
- " {'source': 8, 'target': 11},\n",
- " {'source': 8, 'target': 12},\n",
- " {'source': 8, 'target': 13},\n",
- " {'source': 8, 'target': 15},\n",
- " {'source': 8, 'target': 16},\n",
- " {'source': 8, 'target': 27},\n",
- " {'source': 8, 'target': 29},\n",
- " {'source': 8, 'target': 35},\n",
- " {'source': 8, 'target': 45},\n",
- " {'source': 8, 'target': 48},\n",
- " {'source': 8, 'target': 49},\n",
- " {'source': 8, 'target': 50},\n",
- " {'source': 8, 'target': 52},\n",
- " {'source': 8, 'target': 54},\n",
- " {'source': 8, 'target': 56},\n",
- " {'source': 8, 'target': 57},\n",
- " {'source': 8, 'target': 65},\n",
- " {'source': 8, 'target': 70},\n",
- " {'source': 8, 'target': 74},\n",
- " {'source': 8, 'target': 79},\n",
- " {'source': 8, 'target': 84},\n",
- " {'source': 8, 'target': 87},\n",
- " {'source': 8, 'target': 93},\n",
- " {'source': 8, 'target': 97},\n",
- " {'source': 8, 'target': 109},\n",
- " {'source': 8, 'target': 111},\n",
- " {'source': 8, 'target': 119},\n",
- " {'source': 8, 'target': 122},\n",
- " {'source': 8, 'target': 127},\n",
- " {'source': 8, 'target': 130},\n",
- " {'source': 8, 'target': 134},\n",
- " {'source': 8, 'target': 138},\n",
- " {'source': 8, 'target': 188},\n",
- " {'source': 8, 'target': 199},\n",
- " {'source': 8, 'target': 205},\n",
- " {'source': 8, 'target': 234},\n",
- " {'source': 8, 'target': 258},\n",
- " {'source': 8, 'target': 261},\n",
- " {'source': 8, 'target': 263},\n",
- " {'source': 8, 'target': 266},\n",
- " {'source': 8, 'target': 270},\n",
- " {'source': 8, 'target': 273},\n",
- " {'source': 8, 'target': 282},\n",
- " {'source': 8, 'target': 289},\n",
- " {'source': 8, 'target': 300},\n",
- " {'source': 8, 'target': 301},\n",
- " {'source': 8, 'target': 304},\n",
- " {'source': 8, 'target': 321},\n",
- " {'source': 8, 'target': 338},\n",
- " {'source': 8, 'target': 362},\n",
- " {'source': 8, 'target': 366},\n",
- " {'source': 8, 'target': 403},\n",
- " {'source': 8, 'target': 407},\n",
- " {'source': 8, 'target': 417},\n",
- " {'source': 8, 'target': 438},\n",
- " {'source': 8, 'target': 464},\n",
- " {'source': 8, 'target': 465},\n",
- " {'source': 8, 'target': 468},\n",
- " {'source': 9, 'target': 10},\n",
- " {'source': 9, 'target': 14},\n",
- " {'source': 9, 'target': 15},\n",
- " {'source': 9, 'target': 17},\n",
- " {'source': 9, 'target': 18},\n",
- " {'source': 9, 'target': 27},\n",
- " {'source': 9, 'target': 32},\n",
- " {'source': 9, 'target': 44},\n",
- " {'source': 9, 'target': 50},\n",
- " {'source': 9, 'target': 66},\n",
- " {'source': 9, 'target': 73},\n",
- " {'source': 9, 'target': 81},\n",
- " {'source': 9, 'target': 82},\n",
- " {'source': 9, 'target': 94},\n",
- " {'source': 9, 'target': 104},\n",
- " {'source': 9, 'target': 109},\n",
- " {'source': 9, 'target': 118},\n",
- " {'source': 9, 'target': 122},\n",
- " {'source': 9, 'target': 132},\n",
- " {'source': 9, 'target': 137},\n",
- " {'source': 9, 'target': 154},\n",
- " {'source': 9, 'target': 155},\n",
- " {'source': 9, 'target': 160},\n",
- " {'source': 9, 'target': 167},\n",
- " {'source': 9, 'target': 175},\n",
- " {'source': 9, 'target': 176},\n",
- " {'source': 9, 'target': 185},\n",
- " {'source': 9, 'target': 192},\n",
- " {'source': 9, 'target': 215},\n",
- " {'source': 9, 'target': 217},\n",
- " {'source': 9, 'target': 231},\n",
- " {'source': 9, 'target': 241},\n",
- " {'source': 9, 'target': 251},\n",
- " {'source': 9, 'target': 285},\n",
- " {'source': 9, 'target': 288},\n",
- " {'source': 9, 'target': 293},\n",
- " {'source': 9, 'target': 308},\n",
- " {'source': 9, 'target': 331},\n",
- " {'source': 9, 'target': 332},\n",
- " {'source': 9, 'target': 354},\n",
- " {'source': 9, 'target': 359},\n",
- " {'source': 9, 'target': 381},\n",
- " {'source': 9, 'target': 384},\n",
- " {'source': 9, 'target': 402},\n",
- " {'source': 9, 'target': 427},\n",
- " {'source': 9, 'target': 470},\n",
- " {'source': 10, 'target': 14},\n",
- " {'source': 10, 'target': 18},\n",
- " {'source': 10, 'target': 20},\n",
- " {'source': 10, 'target': 23},\n",
- " {'source': 10, 'target': 30},\n",
- " {'source': 10, 'target': 40},\n",
- " {'source': 10, 'target': 46},\n",
- " {'source': 10, 'target': 55},\n",
- " {'source': 10, 'target': 64},\n",
- " {'source': 10, 'target': 75},\n",
- " {'source': 10, 'target': 86},\n",
- " {'source': 10, 'target': 93},\n",
- " {'source': 10, 'target': 119},\n",
- " {'source': 10, 'target': 123},\n",
- " {'source': 10, 'target': 127},\n",
- " {'source': 10, 'target': 144},\n",
- " {'source': 10, 'target': 145},\n",
- " {'source': 10, 'target': 156},\n",
- " {'source': 10, 'target': 192},\n",
- " {'source': 10, 'target': 198},\n",
- " {'source': 10, 'target': 221},\n",
- " {'source': 10, 'target': 222},\n",
- " {'source': 10, 'target': 223},\n",
- " {'source': 10, 'target': 229},\n",
- " {'source': 10, 'target': 240},\n",
- " {'source': 10, 'target': 277},\n",
- " {'source': 10, 'target': 278},\n",
- " {'source': 10, 'target': 300},\n",
- " {'source': 10, 'target': 374},\n",
- " {'source': 10, 'target': 383},\n",
- " {'source': 10, 'target': 384},\n",
- " {'source': 10, 'target': 441},\n",
- " {'source': 10, 'target': 491},\n",
- " {'source': 11, 'target': 12},\n",
- " {'source': 11, 'target': 13},\n",
- " {'source': 11, 'target': 15},\n",
- " {'source': 11, 'target': 16},\n",
- " {'source': 11, 'target': 21},\n",
- " {'source': 11, 'target': 23},\n",
- " {'source': 11, 'target': 27},\n",
- " {'source': 11, 'target': 32},\n",
- " {'source': 11, 'target': 39},\n",
- " {'source': 11, 'target': 56},\n",
- " {'source': 11, 'target': 69},\n",
- " {'source': 11, 'target': 72},\n",
- " {'source': 11, 'target': 75},\n",
- " {'source': 11, 'target': 77},\n",
- " {'source': 11, 'target': 83},\n",
- " {'source': 11, 'target': 86},\n",
- " {'source': 11, 'target': 88},\n",
- " {'source': 11, 'target': 94},\n",
- " {'source': 11, 'target': 112},\n",
- " {'source': 11, 'target': 129},\n",
- " {'source': 11, 'target': 132},\n",
- " {'source': 11, 'target': 156},\n",
- " {'source': 11, 'target': 162},\n",
- " {'source': 11, 'target': 173},\n",
- " {'source': 11, 'target': 174},\n",
- " {'source': 11, 'target': 201},\n",
- " {'source': 11, 'target': 264},\n",
- " {'source': 11, 'target': 274},\n",
- " {'source': 11, 'target': 279},\n",
- " {'source': 11, 'target': 292},\n",
- " {'source': 11, 'target': 295},\n",
- " {'source': 11, 'target': 307},\n",
- " {'source': 11, 'target': 315},\n",
- " {'source': 11, 'target': 355},\n",
- " {'source': 11, 'target': 357},\n",
- " {'source': 11, 'target': 392},\n",
- " {'source': 11, 'target': 442},\n",
- " {'source': 11, 'target': 473},\n",
- " {'source': 11, 'target': 498},\n",
- " {'source': 12, 'target': 14},\n",
- " {'source': 12, 'target': 19},\n",
- " {'source': 12, 'target': 20},\n",
- " {'source': 12, 'target': 22},\n",
- " {'source': 12, 'target': 24},\n",
- " {'source': 12, 'target': 25},\n",
- " {'source': 12, 'target': 31},\n",
- " {'source': 12, 'target': 33},\n",
- " {'source': 12, 'target': 37},\n",
- " {'source': 12, 'target': 46},\n",
- " {'source': 12, 'target': 52},\n",
- " {'source': 12, 'target': 53},\n",
- " {'source': 12, 'target': 67},\n",
- " {'source': 12, 'target': 70},\n",
- " {'source': 12, 'target': 74},\n",
- " {'source': 12, 'target': 76},\n",
- " {'source': 12, 'target': 85},\n",
- " {'source': 12, 'target': 93},\n",
- " {'source': 12, 'target': 96},\n",
- " {'source': 12, 'target': 108},\n",
- " {'source': 12, 'target': 114},\n",
- " {'source': 12, 'target': 126},\n",
- " {'source': 12, 'target': 134},\n",
- " {'source': 12, 'target': 149},\n",
- " {'source': 12, 'target': 152},\n",
- " {'source': 12, 'target': 169},\n",
- " {'source': 12, 'target': 171},\n",
- " {'source': 12, 'target': 172},\n",
- " {'source': 12, 'target': 178},\n",
- " {'source': 12, 'target': 185},\n",
- " {'source': 12, 'target': 186},\n",
- " {'source': 12, 'target': 197},\n",
- " {'source': 12, 'target': 199},\n",
- " {'source': 12, 'target': 211},\n",
- " {'source': 12, 'target': 234},\n",
- " {'source': 12, 'target': 241},\n",
- " {'source': 12, 'target': 248},\n",
- " {'source': 12, 'target': 249},\n",
- " {'source': 12, 'target': 253},\n",
- " {'source': 12, 'target': 260},\n",
- " {'source': 12, 'target': 283},\n",
- " {'source': 12, 'target': 284},\n",
- " {'source': 12, 'target': 303},\n",
- " {'source': 12, 'target': 307},\n",
- " {'source': 12, 'target': 324},\n",
- " {'source': 12, 'target': 335},\n",
- " {'source': 12, 'target': 343},\n",
- " {'source': 12, 'target': 349},\n",
- " {'source': 12, 'target': 396},\n",
- " {'source': 12, 'target': 398},\n",
- " {'source': 12, 'target': 438},\n",
- " {'source': 12, 'target': 488},\n",
- " {'source': 12, 'target': 495},\n",
- " {'source': 13, 'target': 23},\n",
- " {'source': 13, 'target': 35},\n",
- " {'source': 13, 'target': 43},\n",
- " {'source': 13, 'target': 56},\n",
- " {'source': 13, 'target': 63},\n",
- " {'source': 13, 'target': 79},\n",
- " {'source': 13, 'target': 81},\n",
- " {'source': 13, 'target': 87},\n",
- " {'source': 13, 'target': 161},\n",
- " {'source': 13, 'target': 198},\n",
- " {'source': 13, 'target': 200},\n",
- " {'source': 13, 'target': 232},\n",
- " {'source': 13, 'target': 250},\n",
- " {'source': 13, 'target': 294},\n",
- " {'source': 13, 'target': 373},\n",
- " {'source': 13, 'target': 389},\n",
- " {'source': 13, 'target': 427},\n",
- " {'source': 13, 'target': 431},\n",
- " {'source': 13, 'target': 452},\n",
- " {'source': 13, 'target': 491},\n",
- " {'source': 14, 'target': 21},\n",
- " {'source': 14, 'target': 24},\n",
- " {'source': 14, 'target': 34},\n",
- " {'source': 14, 'target': 36},\n",
- " {'source': 14, 'target': 37},\n",
- " {'source': 14, 'target': 40},\n",
- " {'source': 14, 'target': 55},\n",
- " {'source': 14, 'target': 58},\n",
- " {'source': 14, 'target': 61},\n",
- " {'source': 14, 'target': 68},\n",
- " {'source': 14, 'target': 82},\n",
- " {'source': 14, 'target': 83},\n",
- " {'source': 14, 'target': 91},\n",
- " {'source': 14, 'target': 101},\n",
- " {'source': 14, 'target': 102},\n",
- " {'source': 14, 'target': 113},\n",
- " {'source': 14, 'target': 118},\n",
- " {'source': 14, 'target': 125},\n",
- " {'source': 14, 'target': 142},\n",
- " {'source': 14, 'target': 185},\n",
- " {'source': 14, 'target': 200},\n",
- " {'source': 14, 'target': 221},\n",
- " {'source': 14, 'target': 229},\n",
- " {'source': 14, 'target': 234},\n",
- " {'source': 14, 'target': 238},\n",
- " {'source': 14, 'target': 266},\n",
- " {'source': 14, 'target': 276},\n",
- " {'source': 14, 'target': 313},\n",
- " {'source': 14, 'target': 336},\n",
- " {'source': 14, 'target': 339},\n",
- " {'source': 14, 'target': 358},\n",
- " {'source': 14, 'target': 366},\n",
- " {'source': 14, 'target': 375},\n",
- " {'source': 14, 'target': 382},\n",
- " {'source': 14, 'target': 456},\n",
- " {'source': 14, 'target': 483},\n",
- " {'source': 14, 'target': 490},\n",
- " {'source': 15, 'target': 16},\n",
- " {'source': 15, 'target': 24},\n",
- " {'source': 15, 'target': 28},\n",
- " {'source': 15, 'target': 39},\n",
- " {'source': 15, 'target': 58},\n",
- " {'source': 15, 'target': 60},\n",
- " {'source': 15, 'target': 72},\n",
- " {'source': 15, 'target': 99},\n",
- " {'source': 15, 'target': 103},\n",
- " {'source': 15, 'target': 107},\n",
- " {'source': 15, 'target': 110},\n",
- " {'source': 15, 'target': 125},\n",
- " {'source': 15, 'target': 153},\n",
- " {'source': 15, 'target': 165},\n",
- " {'source': 15, 'target': 177},\n",
- " {'source': 15, 'target': 180},\n",
- " {'source': 15, 'target': 182},\n",
- " {'source': 15, 'target': 219},\n",
- " {'source': 15, 'target': 235},\n",
- " {'source': 15, 'target': 238},\n",
- " {'source': 15, 'target': 252},\n",
- " {'source': 15, 'target': 341},\n",
- " {'source': 15, 'target': 370},\n",
- " {'source': 15, 'target': 428},\n",
- " {'source': 15, 'target': 433},\n",
- " {'source': 15, 'target': 475},\n",
- " {'source': 15, 'target': 481},\n",
- " {'source': 15, 'target': 489},\n",
- " {'source': 16, 'target': 21},\n",
- " {'source': 16, 'target': 42},\n",
- " {'source': 16, 'target': 45},\n",
- " {'source': 16, 'target': 46},\n",
- " {'source': 16, 'target': 50},\n",
- " {'source': 16, 'target': 56},\n",
- " {'source': 16, 'target': 78},\n",
- " {'source': 16, 'target': 88},\n",
- " {'source': 16, 'target': 90},\n",
- " {'source': 16, 'target': 143},\n",
- " {'source': 16, 'target': 145},\n",
- " {'source': 16, 'target': 207},\n",
- " {'source': 16, 'target': 243},\n",
- " {'source': 16, 'target': 253},\n",
- " {'source': 16, 'target': 256},\n",
- " {'source': 16, 'target': 295},\n",
- " {'source': 16, 'target': 357},\n",
- " {'source': 16, 'target': 393},\n",
- " {'source': 16, 'target': 439},\n",
- " {'source': 16, 'target': 462},\n",
- " {'source': 17, 'target': 20},\n",
- " {'source': 17, 'target': 26},\n",
- " {'source': 17, 'target': 37},\n",
- " {'source': 17, 'target': 45},\n",
- " {'source': 17, 'target': 53},\n",
- " {'source': 17, 'target': 54},\n",
- " {'source': 17, 'target': 65},\n",
- " {'source': 17, 'target': 71},\n",
- " {'source': 17, 'target': 92},\n",
- " {'source': 17, 'target': 119},\n",
- " {'source': 17, 'target': 141},\n",
- " {'source': 17, 'target': 143},\n",
- " {'source': 17, 'target': 180},\n",
- " {'source': 17, 'target': 190},\n",
- " {'source': 17, 'target': 195},\n",
- " {'source': 17, 'target': 213},\n",
- " {'source': 17, 'target': 227},\n",
- " {'source': 17, 'target': 228},\n",
- " {'source': 17, 'target': 233},\n",
- " {'source': 17, 'target': 261},\n",
- " {'source': 17, 'target': 273},\n",
- " {'source': 17, 'target': 278},\n",
- " {'source': 17, 'target': 297},\n",
- " {'source': 17, 'target': 299},\n",
- " {'source': 17, 'target': 336},\n",
- " {'source': 17, 'target': 356},\n",
- " {'source': 17, 'target': 368},\n",
- " {'source': 17, 'target': 390},\n",
- " {'source': 17, 'target': 499},\n",
- " {'source': 18, 'target': 19},\n",
- " {'source': 18, 'target': 20},\n",
- " {'source': 18, 'target': 23},\n",
- " {'source': 18, 'target': 69},\n",
- " {'source': 18, 'target': 74},\n",
- " {'source': 18, 'target': 88},\n",
- " {'source': 18, 'target': 118},\n",
- " {'source': 18, 'target': 153},\n",
- " {'source': 18, 'target': 154},\n",
- " {'source': 18, 'target': 163},\n",
- " {'source': 18, 'target': 207},\n",
- " {'source': 18, 'target': 210},\n",
- " {'source': 18, 'target': 225},\n",
- " {'source': 18, 'target': 255},\n",
- " {'source': 18, 'target': 287},\n",
- " {'source': 18, 'target': 371},\n",
- " {'source': 18, 'target': 379},\n",
- " {'source': 18, 'target': 408},\n",
- " {'source': 18, 'target': 417},\n",
- " {'source': 18, 'target': 488},\n",
- " {'source': 18, 'target': 495},\n",
- " {'source': 19, 'target': 26},\n",
- " {'source': 19, 'target': 42},\n",
- " {'source': 19, 'target': 43},\n",
- " {'source': 19, 'target': 45},\n",
- " {'source': 19, 'target': 60},\n",
- " {'source': 19, 'target': 70},\n",
- " {'source': 19, 'target': 73},\n",
- " {'source': 19, 'target': 77},\n",
- " {'source': 19, 'target': 90},\n",
- " {'source': 19, 'target': 116},\n",
- " {'source': 19, 'target': 131},\n",
- " {'source': 19, 'target': 148},\n",
- " {'source': 19, 'target': 184},\n",
- " {'source': 19, 'target': 186},\n",
- " {'source': 19, 'target': 204},\n",
- " {'source': 19, 'target': 249},\n",
- " {'source': 19, 'target': 253},\n",
- " {'source': 19, 'target': 352},\n",
- " {'source': 19, 'target': 355},\n",
- " {'source': 19, 'target': 372},\n",
- " {'source': 19, 'target': 374},\n",
- " {'source': 19, 'target': 388},\n",
- " {'source': 19, 'target': 437},\n",
- " {'source': 19, 'target': 445},\n",
- " {'source': 20, 'target': 38},\n",
- " {'source': 20, 'target': 71},\n",
- " {'source': 20, 'target': 101},\n",
- " {'source': 20, 'target': 108},\n",
- " {'source': 20, 'target': 109},\n",
- " {'source': 20, 'target': 122},\n",
- " {'source': 20, 'target': 124},\n",
- " {'source': 20, 'target': 139},\n",
- " {'source': 20, 'target': 140},\n",
- " {'source': 20, 'target': 146},\n",
- " {'source': 20, 'target': 164},\n",
- " {'source': 20, 'target': 173},\n",
- " {'source': 20, 'target': 187},\n",
- " {'source': 20, 'target': 202},\n",
- " {'source': 20, 'target': 203},\n",
- " {'source': 20, 'target': 219},\n",
- " {'source': 20, 'target': 224},\n",
- " {'source': 20, 'target': 278},\n",
- " {'source': 20, 'target': 295},\n",
- " {'source': 20, 'target': 337},\n",
- " {'source': 20, 'target': 352},\n",
- " {'source': 20, 'target': 380},\n",
- " {'source': 20, 'target': 398},\n",
- " {'source': 20, 'target': 444},\n",
- " {'source': 20, 'target': 471},\n",
- " {'source': 20, 'target': 481},\n",
- " {'source': 21, 'target': 45},\n",
- " {'source': 21, 'target': 47},\n",
- " {'source': 21, 'target': 51},\n",
- " {'source': 21, 'target': 54},\n",
- " {'source': 21, 'target': 59},\n",
- " {'source': 21, 'target': 76},\n",
- " {'source': 21, 'target': 85},\n",
- " {'source': 21, 'target': 98},\n",
- " {'source': 21, 'target': 131},\n",
- " {'source': 21, 'target': 167},\n",
- " {'source': 21, 'target': 174},\n",
- " {'source': 21, 'target': 236},\n",
- " {'source': 21, 'target': 252},\n",
- " {'source': 21, 'target': 292},\n",
- " {'source': 21, 'target': 314},\n",
- " {'source': 21, 'target': 365},\n",
- " {'source': 21, 'target': 403},\n",
- " {'source': 21, 'target': 435},\n",
- " {'source': 21, 'target': 459},\n",
- " {'source': 21, 'target': 474},\n",
- " {'source': 22, 'target': 25},\n",
- " {'source': 22, 'target': 26},\n",
- " {'source': 22, 'target': 31},\n",
- " {'source': 22, 'target': 77},\n",
- " {'source': 22, 'target': 100},\n",
- " {'source': 22, 'target': 133},\n",
- " {'source': 22, 'target': 191},\n",
- " {'source': 22, 'target': 196},\n",
- " {'source': 22, 'target': 202},\n",
- " {'source': 22, 'target': 220},\n",
- " {'source': 22, 'target': 222},\n",
- " {'source': 22, 'target': 266},\n",
- " {'source': 22, 'target': 296},\n",
- " {'source': 22, 'target': 309},\n",
- " {'source': 22, 'target': 316},\n",
- " {'source': 22, 'target': 325},\n",
- " {'source': 22, 'target': 358},\n",
- " {'source': 22, 'target': 475},\n",
- " {'source': 23, 'target': 24},\n",
- " {'source': 23, 'target': 25},\n",
- " {'source': 23, 'target': 31},\n",
- " {'source': 23, 'target': 53},\n",
- " {'source': 23, 'target': 73},\n",
- " {'source': 23, 'target': 110},\n",
- " {'source': 23, 'target': 169},\n",
- " {'source': 23, 'target': 202},\n",
- " {'source': 23, 'target': 222},\n",
- " {'source': 23, 'target': 224},\n",
- " {'source': 23, 'target': 291},\n",
- " {'source': 23, 'target': 296},\n",
- " {'source': 23, 'target': 298},\n",
- " {'source': 23, 'target': 409},\n",
- " {'source': 24, 'target': 25},\n",
- " {'source': 24, 'target': 26},\n",
- " {'source': 24, 'target': 28},\n",
- " {'source': 24, 'target': 30},\n",
- " {'source': 24, 'target': 34},\n",
- " {'source': 24, 'target': 41},\n",
- " {'source': 24, 'target': 42},\n",
- " {'source': 24, 'target': 43},\n",
- " {'source': 24, 'target': 48},\n",
- " {'source': 24, 'target': 73},\n",
- " {'source': 24, 'target': 92},\n",
- " {'source': 24, 'target': 140},\n",
- " {'source': 24, 'target': 144},\n",
- " {'source': 24, 'target': 146},\n",
- " {'source': 24, 'target': 149},\n",
- " {'source': 24, 'target': 186},\n",
- " {'source': 24, 'target': 201},\n",
- " {'source': 24, 'target': 206},\n",
- " {'source': 24, 'target': 302},\n",
- " {'source': 24, 'target': 378},\n",
- " {'source': 24, 'target': 405},\n",
- " {'source': 24, 'target': 425},\n",
- " {'source': 25, 'target': 26},\n",
- " {'source': 25, 'target': 32},\n",
- " {'source': 25, 'target': 33},\n",
- " {'source': 25, 'target': 49},\n",
- " {'source': 25, 'target': 58},\n",
- " {'source': 25, 'target': 60},\n",
- " {'source': 25, 'target': 83},\n",
- " {'source': 25, 'target': 99},\n",
- " {'source': 25, 'target': 100},\n",
- " {'source': 25, 'target': 102},\n",
- " {'source': 25, 'target': 106},\n",
- " {'source': 25, 'target': 112},\n",
- " {'source': 25, 'target': 113},\n",
- " {'source': 25, 'target': 136},\n",
- " {'source': 25, 'target': 147},\n",
- " {'source': 25, 'target': 162},\n",
- " {'source': 25, 'target': 197},\n",
- " {'source': 25, 'target': 221},\n",
- " {'source': 25, 'target': 242},\n",
- " {'source': 25, 'target': 257},\n",
- " {'source': 25, 'target': 275},\n",
- " {'source': 25, 'target': 285},\n",
- " {'source': 25, 'target': 302},\n",
- " {'source': 25, 'target': 305},\n",
- " {'source': 25, 'target': 354},\n",
- " {'source': 25, 'target': 366},\n",
- " {'source': 25, 'target': 368},\n",
- " {'source': 25, 'target': 381},\n",
- " {'source': 25, 'target': 400},\n",
- " {'source': 25, 'target': 429},\n",
- " {'source': 25, 'target': 435},\n",
- " {'source': 25, 'target': 442},\n",
- " {'source': 25, 'target': 490},\n",
- " {'source': 26, 'target': 27},\n",
- " {'source': 26, 'target': 30},\n",
- " {'source': 26, 'target': 38},\n",
- " {'source': 26, 'target': 102},\n",
- " {'source': 26, 'target': 105},\n",
- " {'source': 26, 'target': 109},\n",
- " {'source': 26, 'target': 122},\n",
- " {'source': 26, 'target': 127},\n",
- " {'source': 26, 'target': 150},\n",
- " {'source': 26, 'target': 159},\n",
- " {'source': 26, 'target': 172},\n",
- " {'source': 26, 'target': 184},\n",
- " {'source': 26, 'target': 214},\n",
- " {'source': 26, 'target': 220},\n",
- " {'source': 26, 'target': 284},\n",
- " {'source': 26, 'target': 288},\n",
- " {'source': 26, 'target': 301},\n",
- " {'source': 26, 'target': 316},\n",
- " {'source': 26, 'target': 348},\n",
- " {'source': 26, 'target': 375},\n",
- " {'source': 26, 'target': 387},\n",
- " {'source': 26, 'target': 390},\n",
- " {'source': 26, 'target': 410},\n",
- " {'source': 26, 'target': 425},\n",
- " {'source': 26, 'target': 433},\n",
- " {'source': 26, 'target': 461},\n",
- " {'source': 26, 'target': 463},\n",
- " {'source': 26, 'target': 469},\n",
- " {'source': 26, 'target': 484},\n",
- " {'source': 27, 'target': 65},\n",
- " {'source': 27, 'target': 117},\n",
- " {'source': 27, 'target': 157},\n",
- " {'source': 27, 'target': 181},\n",
- " {'source': 27, 'target': 184},\n",
- " {'source': 27, 'target': 197},\n",
- " {'source': 27, 'target': 438},\n",
- " {'source': 27, 'target': 448},\n",
- " {'source': 28, 'target': 87},\n",
- " {'source': 28, 'target': 93},\n",
- " {'source': 28, 'target': 112},\n",
- " {'source': 28, 'target': 154},\n",
- " {'source': 29, 'target': 39},\n",
- " {'source': 29, 'target': 55},\n",
- " {'source': 29, 'target': 80},\n",
- " {'source': 29, 'target': 82},\n",
- " {'source': 29, 'target': 87},\n",
- " {'source': 29, 'target': 165},\n",
- " {'source': 29, 'target': 328},\n",
- " {'source': 29, 'target': 356},\n",
- " {'source': 29, 'target': 370},\n",
- " {'source': 29, 'target': 463},\n",
- " {'source': 30, 'target': 32},\n",
- " {'source': 30, 'target': 62},\n",
- " {'source': 30, 'target': 77},\n",
- " {'source': 30, 'target': 245},\n",
- " {'source': 30, 'target': 344},\n",
- " {'source': 30, 'target': 371},\n",
- " {'source': 30, 'target': 452},\n",
- " {'source': 31, 'target': 33},\n",
- " {'source': 31, 'target': 40},\n",
- " {'source': 31, 'target': 47},\n",
- " {'source': 31, 'target': 48},\n",
- " {'source': 31, 'target': 51},\n",
- " {'source': 31, 'target': 55},\n",
- " {'source': 31, 'target': 57},\n",
- " {'source': 31, 'target': 61},\n",
- " {'source': 31, 'target': 66},\n",
- " {'source': 31, 'target': 71},\n",
- " {'source': 31, 'target': 74},\n",
- " {'source': 31, 'target': 80},\n",
- " {'source': 31, 'target': 81},\n",
- " {'source': 31, 'target': 89},\n",
- " {'source': 31, 'target': 95},\n",
- " {'source': 31, 'target': 96},\n",
- " {'source': 31, 'target': 112},\n",
- " {'source': 31, 'target': 130},\n",
- " {'source': 31, 'target': 141},\n",
- " {'source': 31, 'target': 163},\n",
- " {'source': 31, 'target': 165},\n",
- " {'source': 31, 'target': 166},\n",
- " {'source': 31, 'target': 168},\n",
- " {'source': 31, 'target': 175},\n",
- " {'source': 31, 'target': 228},\n",
- " ...],\n",
- " 'multigraph': False,\n",
- " 'nodes': [{'id': 0},\n",
- " {'id': 1},\n",
- " {'id': 2},\n",
- " {'id': 3},\n",
- " {'id': 4},\n",
- " {'id': 5},\n",
- " {'id': 6},\n",
- " {'id': 7},\n",
- " {'id': 8},\n",
- " {'id': 9},\n",
- " {'id': 10},\n",
- " {'id': 11},\n",
- " {'id': 12},\n",
- " {'id': 13},\n",
- " {'id': 14},\n",
- " {'id': 15},\n",
- " {'id': 16},\n",
- " {'id': 17},\n",
- " {'id': 18},\n",
- " {'id': 19},\n",
- " {'id': 20},\n",
- " {'id': 21},\n",
- " {'id': 22},\n",
- " {'id': 23},\n",
- " {'id': 24},\n",
- " {'id': 25},\n",
- " {'id': 26},\n",
- " {'id': 27},\n",
- " {'id': 28},\n",
- " {'id': 29},\n",
- " {'id': 30},\n",
- " {'id': 31},\n",
- " {'id': 32},\n",
- " {'id': 33},\n",
- " {'id': 34},\n",
- " {'id': 35},\n",
- " {'id': 36},\n",
- " {'id': 37},\n",
- " {'id': 38},\n",
- " {'id': 39},\n",
- " {'id': 40},\n",
- " {'id': 41},\n",
- " {'id': 42},\n",
- " {'id': 43},\n",
- " {'id': 44},\n",
- " {'id': 45},\n",
- " {'id': 46},\n",
- " {'id': 47},\n",
- " {'id': 48},\n",
- " {'id': 49},\n",
- " {'id': 50},\n",
- " {'id': 51},\n",
- " {'id': 52},\n",
- " {'id': 53},\n",
- " {'id': 54},\n",
- " {'id': 55},\n",
- " {'id': 56},\n",
- " {'id': 57},\n",
- " {'id': 58},\n",
- " {'id': 59},\n",
- " {'id': 60},\n",
- " {'id': 61},\n",
- " {'id': 62},\n",
- " {'id': 63},\n",
- " {'id': 64},\n",
- " {'id': 65},\n",
- " {'id': 66},\n",
- " {'id': 67},\n",
- " {'id': 68},\n",
- " {'id': 69},\n",
- " {'id': 70},\n",
- " {'id': 71},\n",
- " {'id': 72},\n",
- " {'id': 73},\n",
- " {'id': 74},\n",
- " {'id': 75},\n",
- " {'id': 76},\n",
- " {'id': 77},\n",
- " {'id': 78},\n",
- " {'id': 79},\n",
- " {'id': 80},\n",
- " {'id': 81},\n",
- " {'id': 82},\n",
- " {'id': 83},\n",
- " {'id': 84},\n",
- " {'id': 85},\n",
- " {'id': 86},\n",
- " {'id': 87},\n",
- " {'id': 88},\n",
- " {'id': 89},\n",
- " {'id': 90},\n",
- " {'id': 91},\n",
- " {'id': 92},\n",
- " {'id': 93},\n",
- " {'id': 94},\n",
- " {'id': 95},\n",
- " {'id': 96},\n",
- " {'id': 97},\n",
- " {'id': 98},\n",
- " {'id': 99},\n",
- " {'id': 100},\n",
- " {'id': 101},\n",
- " {'id': 102},\n",
- " {'id': 103},\n",
- " {'id': 104},\n",
- " {'id': 105},\n",
- " {'id': 106},\n",
- " {'id': 107},\n",
- " {'id': 108},\n",
- " {'id': 109},\n",
- " {'id': 110},\n",
- " {'id': 111},\n",
- " {'id': 112},\n",
- " {'id': 113},\n",
- " {'id': 114},\n",
- " {'id': 115},\n",
- " {'id': 116},\n",
- " {'id': 117},\n",
- " {'id': 118},\n",
- " {'id': 119},\n",
- " {'id': 120},\n",
- " {'id': 121},\n",
- " {'id': 122},\n",
- " {'id': 123},\n",
- " {'id': 124},\n",
- " {'id': 125},\n",
- " {'id': 126},\n",
- " {'id': 127},\n",
- " {'id': 128},\n",
- " {'id': 129},\n",
- " {'id': 130},\n",
- " {'id': 131},\n",
- " {'id': 132},\n",
- " {'id': 133},\n",
- " {'id': 134},\n",
- " {'id': 135},\n",
- " {'id': 136},\n",
- " {'id': 137},\n",
- " {'id': 138},\n",
- " {'id': 139},\n",
- " {'id': 140},\n",
- " {'id': 141},\n",
- " {'id': 142},\n",
- " {'id': 143},\n",
- " {'id': 144},\n",
- " {'id': 145},\n",
- " {'id': 146},\n",
- " {'id': 147},\n",
- " {'id': 148},\n",
- " {'id': 149},\n",
- " {'id': 150},\n",
- " {'id': 151},\n",
- " {'id': 152},\n",
- " {'id': 153},\n",
- " {'id': 154},\n",
- " {'id': 155},\n",
- " {'id': 156},\n",
- " {'id': 157},\n",
- " {'id': 158},\n",
- " {'id': 159},\n",
- " {'id': 160},\n",
- " {'id': 161},\n",
- " {'id': 162},\n",
- " {'id': 163},\n",
- " {'id': 164},\n",
- " {'id': 165},\n",
- " {'id': 166},\n",
- " {'id': 167},\n",
- " {'id': 168},\n",
- " {'id': 169},\n",
- " {'id': 170},\n",
- " {'id': 171},\n",
- " {'id': 172},\n",
- " {'id': 173},\n",
- " {'id': 174},\n",
- " {'id': 175},\n",
- " {'id': 176},\n",
- " {'id': 177},\n",
- " {'id': 178},\n",
- " {'id': 179},\n",
- " {'id': 180},\n",
- " {'id': 181},\n",
- " {'id': 182},\n",
- " {'id': 183},\n",
- " {'id': 184},\n",
- " {'id': 185},\n",
- " {'id': 186},\n",
- " {'id': 187},\n",
- " {'id': 188},\n",
- " {'id': 189},\n",
- " {'id': 190},\n",
- " {'id': 191},\n",
- " {'id': 192},\n",
- " {'id': 193},\n",
- " {'id': 194},\n",
- " {'id': 195},\n",
- " {'id': 196},\n",
- " {'id': 197},\n",
- " {'id': 198},\n",
- " {'id': 199},\n",
- " {'id': 200},\n",
- " {'id': 201},\n",
- " {'id': 202},\n",
- " {'id': 203},\n",
- " {'id': 204},\n",
- " {'id': 205},\n",
- " {'id': 206},\n",
- " {'id': 207},\n",
- " {'id': 208},\n",
- " {'id': 209},\n",
- " {'id': 210},\n",
- " {'id': 211},\n",
- " {'id': 212},\n",
- " {'id': 213},\n",
- " {'id': 214},\n",
- " {'id': 215},\n",
- " {'id': 216},\n",
- " {'id': 217},\n",
- " {'id': 218},\n",
- " {'id': 219},\n",
- " {'id': 220},\n",
- " {'id': 221},\n",
- " {'id': 222},\n",
- " {'id': 223},\n",
- " {'id': 224},\n",
- " {'id': 225},\n",
- " {'id': 226},\n",
- " {'id': 227},\n",
- " {'id': 228},\n",
- " {'id': 229},\n",
- " {'id': 230},\n",
- " {'id': 231},\n",
- " {'id': 232},\n",
- " {'id': 233},\n",
- " {'id': 234},\n",
- " {'id': 235},\n",
- " {'id': 236},\n",
- " {'id': 237},\n",
- " {'id': 238},\n",
- " {'id': 239},\n",
- " {'id': 240},\n",
- " {'id': 241},\n",
- " {'id': 242},\n",
- " {'id': 243},\n",
- " {'id': 244},\n",
- " {'id': 245},\n",
- " {'id': 246},\n",
- " {'id': 247},\n",
- " {'id': 248},\n",
- " {'id': 249},\n",
- " {'id': 250},\n",
- " {'id': 251},\n",
- " {'id': 252},\n",
- " {'id': 253},\n",
- " {'id': 254},\n",
- " {'id': 255},\n",
- " {'id': 256},\n",
- " {'id': 257},\n",
- " {'id': 258},\n",
- " {'id': 259},\n",
- " {'id': 260},\n",
- " {'id': 261},\n",
- " {'id': 262},\n",
- " {'id': 263},\n",
- " {'id': 264},\n",
- " {'id': 265},\n",
- " {'id': 266},\n",
- " {'id': 267},\n",
- " {'id': 268},\n",
- " {'id': 269},\n",
- " {'id': 270},\n",
- " {'id': 271},\n",
- " {'id': 272},\n",
- " {'id': 273},\n",
- " {'id': 274},\n",
- " {'id': 275},\n",
- " {'id': 276},\n",
- " {'id': 277},\n",
- " {'id': 278},\n",
- " {'id': 279},\n",
- " {'id': 280},\n",
- " {'id': 281},\n",
- " {'id': 282},\n",
- " {'id': 283},\n",
- " {'id': 284},\n",
- " {'id': 285},\n",
- " {'id': 286},\n",
- " {'id': 287},\n",
- " {'id': 288},\n",
- " {'id': 289},\n",
- " {'id': 290},\n",
- " {'id': 291},\n",
- " {'id': 292},\n",
- " {'id': 293},\n",
- " {'id': 294},\n",
- " {'id': 295},\n",
- " {'id': 296},\n",
- " {'id': 297},\n",
- " {'id': 298},\n",
- " {'id': 299},\n",
- " {'id': 300},\n",
- " {'id': 301},\n",
- " {'id': 302},\n",
- " {'id': 303},\n",
- " {'id': 304},\n",
- " {'id': 305},\n",
- " {'id': 306},\n",
- " {'id': 307},\n",
- " {'id': 308},\n",
- " {'id': 309},\n",
- " {'id': 310},\n",
- " {'id': 311},\n",
- " {'id': 312},\n",
- " {'id': 313},\n",
- " {'id': 314},\n",
- " {'id': 315},\n",
- " {'id': 316},\n",
- " {'id': 317},\n",
- " {'id': 318},\n",
- " {'id': 319},\n",
- " {'id': 320},\n",
- " {'id': 321},\n",
- " {'id': 322},\n",
- " {'id': 323},\n",
- " {'id': 324},\n",
- " {'id': 325},\n",
- " {'id': 326},\n",
- " {'id': 327},\n",
- " {'id': 328},\n",
- " {'id': 329},\n",
- " {'id': 330},\n",
- " {'id': 331},\n",
- " {'id': 332},\n",
- " {'id': 333},\n",
- " {'id': 334},\n",
- " {'id': 335},\n",
- " {'id': 336},\n",
- " {'id': 337},\n",
- " {'id': 338},\n",
- " {'id': 339},\n",
- " {'id': 340},\n",
- " {'id': 341},\n",
- " {'id': 342},\n",
- " {'id': 343},\n",
- " {'id': 344},\n",
- " {'id': 345},\n",
- " {'id': 346},\n",
- " {'id': 347},\n",
- " {'id': 348},\n",
- " {'id': 349},\n",
- " {'id': 350},\n",
- " {'id': 351},\n",
- " {'id': 352},\n",
- " {'id': 353},\n",
- " {'id': 354},\n",
- " {'id': 355},\n",
- " {'id': 356},\n",
- " {'id': 357},\n",
- " {'id': 358},\n",
- " {'id': 359},\n",
- " {'id': 360},\n",
- " {'id': 361},\n",
- " {'id': 362},\n",
- " {'id': 363},\n",
- " {'id': 364},\n",
- " {'id': 365},\n",
- " {'id': 366},\n",
- " {'id': 367},\n",
- " {'id': 368},\n",
- " {'id': 369},\n",
- " {'id': 370},\n",
- " {'id': 371},\n",
- " {'id': 372},\n",
- " {'id': 373},\n",
- " {'id': 374},\n",
- " {'id': 375},\n",
- " {'id': 376},\n",
- " {'id': 377},\n",
- " {'id': 378},\n",
- " {'id': 379},\n",
- " {'id': 380},\n",
- " {'id': 381},\n",
- " {'id': 382},\n",
- " {'id': 383},\n",
- " {'id': 384},\n",
- " {'id': 385},\n",
- " {'id': 386},\n",
- " {'id': 387},\n",
- " {'id': 388},\n",
- " {'id': 389},\n",
- " {'id': 390},\n",
- " {'id': 391},\n",
- " {'id': 392},\n",
- " {'id': 393},\n",
- " {'id': 394},\n",
- " {'id': 395},\n",
- " {'id': 396},\n",
- " {'id': 397},\n",
- " {'id': 398},\n",
- " {'id': 399},\n",
- " {'id': 400},\n",
- " {'id': 401},\n",
- " {'id': 402},\n",
- " {'id': 403},\n",
- " {'id': 404},\n",
- " {'id': 405},\n",
- " {'id': 406},\n",
- " {'id': 407},\n",
- " {'id': 408},\n",
- " {'id': 409},\n",
- " {'id': 410},\n",
- " {'id': 411},\n",
- " {'id': 412},\n",
- " {'id': 413},\n",
- " {'id': 414},\n",
- " {'id': 415},\n",
- " {'id': 416},\n",
- " {'id': 417},\n",
- " {'id': 418},\n",
- " {'id': 419},\n",
- " {'id': 420},\n",
- " {'id': 421},\n",
- " {'id': 422},\n",
- " {'id': 423},\n",
- " {'id': 424},\n",
- " {'id': 425},\n",
- " {'id': 426},\n",
- " {'id': 427},\n",
- " {'id': 428},\n",
- " {'id': 429},\n",
- " {'id': 430},\n",
- " {'id': 431},\n",
- " {'id': 432},\n",
- " {'id': 433},\n",
- " {'id': 434},\n",
- " {'id': 435},\n",
- " {'id': 436},\n",
- " {'id': 437},\n",
- " {'id': 438},\n",
- " {'id': 439},\n",
- " {'id': 440},\n",
- " {'id': 441},\n",
- " {'id': 442},\n",
- " {'id': 443},\n",
- " {'id': 444},\n",
- " {'id': 445},\n",
- " {'id': 446},\n",
- " {'id': 447},\n",
- " {'id': 448},\n",
- " {'id': 449},\n",
- " {'id': 450},\n",
- " {'id': 451},\n",
- " {'id': 452},\n",
- " {'id': 453},\n",
- " {'id': 454},\n",
- " {'id': 455},\n",
- " {'id': 456},\n",
- " {'id': 457},\n",
- " {'id': 458},\n",
- " {'id': 459},\n",
- " {'id': 460},\n",
- " {'id': 461},\n",
- " {'id': 462},\n",
- " {'id': 463},\n",
- " {'id': 464},\n",
- " {'id': 465},\n",
- " {'id': 466},\n",
- " {'id': 467},\n",
- " {'id': 468},\n",
- " {'id': 469},\n",
- " {'id': 470},\n",
- " {'id': 471},\n",
- " {'id': 472},\n",
- " {'id': 473},\n",
- " {'id': 474},\n",
- " {'id': 475},\n",
- " {'id': 476},\n",
- " {'id': 477},\n",
- " {'id': 478},\n",
- " {'id': 479},\n",
- " {'id': 480},\n",
- " {'id': 481},\n",
- " {'id': 482},\n",
- " {'id': 483},\n",
- " {'id': 484},\n",
- " {'id': 485},\n",
- " {'id': 486},\n",
- " {'id': 487},\n",
- " {'id': 488},\n",
- " {'id': 489},\n",
- " {'id': 490},\n",
- " {'id': 491},\n",
- " {'id': 492},\n",
- " {'id': 493},\n",
- " {'id': 494},\n",
- " {'id': 495},\n",
- " {'id': 496},\n",
- " {'id': 497},\n",
- " {'id': 498},\n",
- " {'id': 499}]}})]"
- ]
- },
- "execution_count": 7,
- "metadata": {},
- "output_type": "execute_result"
- }
- ],
- "source": [
- "evodumb"
- ]
- }
- ],
- "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.8.6"
- }
- },
- "nbformat": 4,
- "nbformat_minor": 2
-}
diff --git a/examples/complete.yml b/examples/complete.yml
deleted file mode 100644
index 130b1e7..0000000
--- a/examples/complete.yml
+++ /dev/null
@@ -1,54 +0,0 @@
----
-version: '2'
-name: simple
-group: tests
-dir_path: "/tmp/"
-num_trials: 3
-max_steps: 100
-interval: 1
-seed: "CompleteSeed!"
-model_class: Environment
-model_params:
- am_i_complete: true
- topology:
- params:
- generator: complete_graph
- n: 12
- environment:
- agents:
- agent_class: CounterModel
- topology: true
- state:
- times: 1
- # In this group we are not specifying any topology
- fixed:
- - name: 'Environment Agent 1'
- agent_class: BaseAgent
- group: environment
- topology: false
- hidden: true
- state:
- times: 10
- - agent_class: CounterModel
- id: 0
- group: fixed_counters
- state:
- times: 1
- total: 0
- - agent_class: CounterModel
- group: fixed_counters
- id: 1
- distribution:
- - agent_class: CounterModel
- weight: 1
- group: distro_counters
- state:
- times: 3
- - agent_class: AggregatedCounter
- weight: 0.2
- override:
- - filter:
- agent_class: AggregatedCounter
- n: 2
- state:
- times: 5
diff --git a/examples/custom_generator/custom_generator.yml b/examples/custom_generator/custom_generator.yml
deleted file mode 100644
index 81f0314..0000000
--- a/examples/custom_generator/custom_generator.yml
+++ /dev/null
@@ -1,16 +0,0 @@
----
-name: custom-generator
-description: Using a custom generator for the network
-num_trials: 3
-max_steps: 100
-interval: 1
-network_params:
- generator: mymodule.mygenerator
-# These are custom parameters
- n: 10
- n_edges: 5
-network_agents:
- - agent_class: CounterModel
- weight: 1
- state:
- state_id: 0
diff --git a/examples/custom_generator/mymodule.py b/examples/custom_generator/generator_sim.py
similarity index 54%
rename from examples/custom_generator/mymodule.py
rename to examples/custom_generator/generator_sim.py
index 241ddcb..0950457 100644
--- a/examples/custom_generator/mymodule.py
+++ b/examples/custom_generator/generator_sim.py
@@ -1,6 +1,7 @@
from networkx import Graph
import random
import networkx as nx
+from soil import Simulation, Environment, CounterModel, parameters
def mygenerator(n=5, n_edges=5):
@@ -20,3 +21,19 @@ def mygenerator(n=5, n_edges=5):
n_out = random.choice(nodes)
G.add_edge(n_in, n_out)
return G
+
+
+class GeneratorEnv(Environment):
+ """Using a custom generator for the network"""
+
+ generator: parameters.function = mygenerator
+
+ def init(self):
+ self.create_network(network_generator=self.generator, n=10, n_edges=5)
+ self.init_agents(CounterModel)
+
+
+sim = Simulation(model=GeneratorEnv, max_steps=10, interval=1)
+
+if __name__ == '__main__':
+ sim.run(dry_run=True)
\ No newline at end of file
diff --git a/examples/custom_timeouts/custom_timeouts.py b/examples/custom_timeouts/custom_timeouts_sim.py
similarity index 59%
rename from examples/custom_timeouts/custom_timeouts.py
rename to examples/custom_timeouts/custom_timeouts_sim.py
index 4124fa6..e5ff26d 100644
--- a/examples/custom_timeouts/custom_timeouts.py
+++ b/examples/custom_timeouts/custom_timeouts_sim.py
@@ -4,8 +4,7 @@ from soil.time import Delta
class Fibonacci(FSM):
"""Agent that only executes in t_steps that are Fibonacci numbers"""
-
- defaults = {"prev": 1}
+ prev = 1
@default_state
@state
@@ -25,23 +24,18 @@ class Odds(FSM):
return None, Delta(1 + self.now % 2)
-from soil import Simulation
+from soil import Environment, Simulation
+from networkx import complete_graph
-simulation = Simulation(
- model_params={
- 'agents':[
- {'agent_class': Fibonacci, 'node_id': 0},
- {'agent_class': Odds, 'node_id': 1}
- ],
- 'topology': {
- 'params': {
- 'generator': 'complete_graph',
- 'n': 2
- }
- },
- },
- max_time=100,
-)
+
+class TimeoutsEnv(Environment):
+ def init(self):
+ self.init_network(generator=complete_graph, n=2)
+ self.add_agent(agent_class=Fibonacci, node_id=0)
+ self.add_agent(agent_class=Odds, node_id=1)
+
+
+sim = Simulation(model=TimeoutsEnv, max_steps=10, interval=1)
if __name__ == "__main__":
- simulation.run(dry_run=True)
+ sim.run(dry_run=True)
\ No newline at end of file
diff --git a/examples/events_and_messages/cars.py b/examples/events_and_messages/cars_sim.py
similarity index 97%
rename from examples/events_and_messages/cars.py
rename to examples/events_and_messages/cars_sim.py
index f37b88f..c785650 100644
--- a/examples/events_and_messages/cars.py
+++ b/examples/events_and_messages/cars_sim.py
@@ -232,12 +232,10 @@ class Passenger(Evented, FSM):
self.die()
-simulation = Simulation(
- name="RideHailing",
- model_class=City,
- model_params={"n_passengers": 2},
- seed="carsSeed",
-)
+simulation = Simulation(name="RideHailing",
+ model=City,
+ seed="carsSeed",
+ model_params=dict(n_passengers=2))
if __name__ == "__main__":
simulation.run()
\ No newline at end of file
diff --git a/examples/mesa/mesa.yml b/examples/mesa/mesa.yml
deleted file mode 100644
index eb10b8d..0000000
--- a/examples/mesa/mesa.yml
+++ /dev/null
@@ -1,19 +0,0 @@
----
-name: mesa_sim
-group: tests
-dir_path: "/tmp"
-num_trials: 3
-max_steps: 100
-interval: 1
-seed: '1'
-model_class: social_wealth.MoneyEnv
-model_params:
- generator: social_wealth.graph_generator
- agents:
- topology: true
- distribution:
- - agent_class: social_wealth.SocialMoneyAgent
- weight: 1
- N: 10
- width: 50
- height: 50
diff --git a/examples/mesa/mesa_sim.py b/examples/mesa/mesa_sim.py
new file mode 100644
index 0000000..1f2da70
--- /dev/null
+++ b/examples/mesa/mesa_sim.py
@@ -0,0 +1,7 @@
+from soil import Simulation
+from social_wealth import MoneyEnv, graph_generator
+
+sim = Simulation(name="mesa_sim", dry_run=True, max_steps=10, interval=2, model=MoneyEnv, model_params=dict(generator=graph_generator, N=10, width=50, height=50))
+
+if __name__ == "__main__":
+ sim.run()
diff --git a/examples/mesa/server.py b/examples/mesa/server.py
index 851f06d..64873ce 100644
--- a/examples/mesa/server.py
+++ b/examples/mesa/server.py
@@ -1,5 +1,5 @@
from mesa.visualization.ModularVisualization import ModularServer
-from soil.visualization import UserSettableParameter
+from mesa.visualization.UserParam import Slider, Choice
from mesa.visualization.modules import ChartModule, NetworkModule, CanvasGrid
from social_wealth import MoneyEnv, graph_generator, SocialMoneyAgent
import networkx as nx
@@ -64,8 +64,7 @@ chart = ChartModule(
)
model_params = {
- "N": UserSettableParameter(
- "slider",
+ "N": Slider(
"N",
5,
1,
@@ -73,8 +72,7 @@ model_params = {
1,
description="Choose how many agents to include in the model",
),
- "height": UserSettableParameter(
- "slider",
+ "height": Slider(
"height",
5,
5,
@@ -82,8 +80,7 @@ model_params = {
1,
description="Grid height",
),
- "width": UserSettableParameter(
- "slider",
+ "width": Slider(
"width",
5,
5,
@@ -91,8 +88,7 @@ model_params = {
1,
description="Grid width",
),
- "agent_class": UserSettableParameter(
- "choice",
+ "agent_class": Choice(
"Agent class",
value="MoneyAgent",
choices=["MoneyAgent", "SocialMoneyAgent"],
diff --git a/examples/newsspread/NewsSpread.yml b/examples/newsspread/NewsSpread.yml
deleted file mode 100644
index d80a5d5..0000000
--- a/examples/newsspread/NewsSpread.yml
+++ /dev/null
@@ -1,133 +0,0 @@
----
-default_state: {}
-environment_agents: []
-environment_params:
- prob_neighbor_spread: 0.0
- prob_tv_spread: 0.01
-interval: 1
-max_steps: 300
-name: Sim_all_dumb
-network_agents:
-- agent_class: newsspread.DumbViewer
- state:
- has_tv: false
- weight: 1
-- agent_class: newsspread.DumbViewer
- state:
- has_tv: true
- weight: 1
-network_params:
- generator: barabasi_albert_graph
- n: 500
- m: 5
-num_trials: 50
----
-default_state: {}
-environment_agents: []
-environment_params:
- prob_neighbor_spread: 0.0
- prob_tv_spread: 0.01
-interval: 1
-max_steps: 300
-name: Sim_half_herd
-network_agents:
-- agent_class: newsspread.DumbViewer
- state:
- has_tv: false
- weight: 1
-- agent_class: newsspread.DumbViewer
- state:
- has_tv: true
- weight: 1
-- agent_class: newsspread.HerdViewer
- state:
- has_tv: false
- weight: 1
-- agent_class: newsspread.HerdViewer
- state:
- has_tv: true
- weight: 1
-network_params:
- generator: barabasi_albert_graph
- n: 500
- m: 5
-num_trials: 50
----
-default_state: {}
-environment_agents: []
-environment_params:
- prob_neighbor_spread: 0.0
- prob_tv_spread: 0.01
-interval: 1
-max_steps: 300
-name: Sim_all_herd
-network_agents:
-- agent_class: newsspread.HerdViewer
- state:
- has_tv: true
- state_id: neutral
- weight: 1
-- agent_class: newsspread.HerdViewer
- state:
- has_tv: true
- state_id: neutral
- weight: 1
-network_params:
- generator: barabasi_albert_graph
- n: 500
- m: 5
-num_trials: 50
----
-default_state: {}
-environment_agents: []
-environment_params:
- prob_neighbor_spread: 0.0
- prob_tv_spread: 0.01
- prob_neighbor_cure: 0.1
-interval: 1
-max_steps: 300
-name: Sim_wise_herd
-network_agents:
-- agent_class: newsspread.HerdViewer
- state:
- has_tv: true
- state_id: neutral
- weight: 1
-- agent_class: newsspread.WiseViewer
- state:
- has_tv: true
- weight: 1
-network_params:
- generator: barabasi_albert_graph
- n: 500
- m: 5
-num_trials: 50
----
-default_state: {}
-environment_agents: []
-environment_params:
- prob_neighbor_spread: 0.0
- prob_tv_spread: 0.01
- prob_neighbor_cure: 0.1
-interval: 1
-max_steps: 300
-name: Sim_all_wise
-network_agents:
-- agent_class: newsspread.WiseViewer
- state:
- has_tv: true
- state_id: neutral
- weight: 1
-- agent_class: newsspread.WiseViewer
- state:
- has_tv: true
- weight: 1
-network_params:
- generator: barabasi_albert_graph
- n: 500
- m: 5
-network_params:
- generator: barabasi_albert_graph
- n: 500
- m: 5
-num_trials: 50
diff --git a/examples/newsspread/newsspread.py b/examples/newsspread/newsspread.py
deleted file mode 100644
index bfcdbc9..0000000
--- a/examples/newsspread/newsspread.py
+++ /dev/null
@@ -1,87 +0,0 @@
-from soil.agents import FSM, NetworkAgent, state, default_state, prob
-import logging
-
-
-class DumbViewer(FSM, NetworkAgent):
- """
- A viewer that gets infected via TV (if it has one) and tries to infect
- its neighbors once it's infected.
- """
-
- prob_neighbor_spread = 0.5
- prob_tv_spread = 0.1
- has_been_infected = False
-
- @default_state
- @state
- def neutral(self):
- if self["has_tv"]:
- if self.prob(self.model["prob_tv_spread"]):
- return self.infected
- if self.has_been_infected:
- return self.infected
-
- @state
- def infected(self):
- for neighbor in self.get_neighbors(state_id=self.neutral.id):
- if self.prob(self.model["prob_neighbor_spread"]):
- neighbor.infect()
-
- def infect(self):
- """
- This is not a state. It is a function that other agents can use to try to
- infect this agent. DumbViewer always gets infected, but other agents like
- HerdViewer might not become infected right away
- """
-
- self.has_been_infected = True
-
-
-class HerdViewer(DumbViewer):
- """
- A viewer whose probability of infection depends on the state of its neighbors.
- """
-
- def infect(self):
- """Notice again that this is NOT a state. See DumbViewer.infect for reference"""
- infected = self.count_neighbors(state_id=self.infected.id)
- total = self.count_neighbors()
- prob_infect = self.model["prob_neighbor_spread"] * infected / total
- self.debug("prob_infect", prob_infect)
- if self.prob(prob_infect):
- self.has_been_infected = True
-
-
-class WiseViewer(HerdViewer):
- """
- A viewer that can change its mind.
- """
-
- defaults = {
- "prob_neighbor_spread": 0.5,
- "prob_neighbor_cure": 0.25,
- "prob_tv_spread": 0.1,
- }
-
- @state
- def cured(self):
- prob_cure = self.model["prob_neighbor_cure"]
- for neighbor in self.get_neighbors(state_id=self.infected.id):
- if self.prob(prob_cure):
- try:
- neighbor.cure()
- except AttributeError:
- self.debug("Viewer {} cannot be cured".format(neighbor.id))
-
- def cure(self):
- self.has_been_cured = True
-
- @state
- def infected(self):
- if self.has_been_cured:
- return self.cured
- cured = max(self.count_neighbors(self.cured.id), 1.0)
- infected = max(self.count_neighbors(self.infected.id), 1.0)
- prob_cure = self.model["prob_neighbor_cure"] * (cured / infected)
- if self.prob(prob_cure):
- return self.cured
diff --git a/examples/newsspread/newsspread_sim.py b/examples/newsspread/newsspread_sim.py
new file mode 100644
index 0000000..c85d5fc
--- /dev/null
+++ b/examples/newsspread/newsspread_sim.py
@@ -0,0 +1,129 @@
+from soil.agents import FSM, NetworkAgent, state, default_state, prob
+from soil.parameters import *
+import logging
+
+from soil.environment import Environment
+
+
+class DumbViewer(FSM, NetworkAgent):
+ """
+ A viewer that gets infected via TV (if it has one) and tries to infect
+ its neighbors once it's infected.
+ """
+
+ has_been_infected: bool = False
+ has_tv: bool = False
+
+ @default_state
+ @state
+ def neutral(self):
+ if self.has_tv:
+ if self.prob(self.get("prob_tv_spread")):
+ return self.infected
+ if self.has_been_infected:
+ return self.infected
+
+ @state
+ def infected(self):
+ for neighbor in self.get_neighbors(state_id=self.neutral.id):
+ if self.prob(self.get("prob_neighbor_spread")):
+ neighbor.infect()
+
+ def infect(self):
+ """
+ This is not a state. It is a function that other agents can use to try to
+ infect this agent. DumbViewer always gets infected, but other agents like
+ HerdViewer might not become infected right away
+ """
+ self.has_been_infected = True
+
+
+class HerdViewer(DumbViewer):
+ """
+ A viewer whose probability of infection depends on the state of its neighbors.
+ """
+
+ def infect(self):
+ """Notice again that this is NOT a state. See DumbViewer.infect for reference"""
+ infected = self.count_neighbors(state_id=self.infected.id)
+ total = self.count_neighbors()
+ prob_infect = self.get("prob_neighbor_spread") * infected / total
+ self.debug("prob_infect", prob_infect)
+ if self.prob(prob_infect):
+ self.has_been_infected = True
+
+
+class WiseViewer(HerdViewer):
+ """
+ A viewer that can change its mind.
+ """
+
+ @state
+ def cured(self):
+ prob_cure = self.get("prob_neighbor_cure")
+ for neighbor in self.get_neighbors(state_id=self.infected.id):
+ if self.prob(prob_cure):
+ try:
+ neighbor.cure()
+ except AttributeError:
+ self.debug("Viewer {} cannot be cured".format(neighbor.id))
+
+ def cure(self):
+ self.has_been_cured = True
+
+ @state
+ def infected(self):
+ if self.has_been_cured:
+ return self.cured
+ cured = max(self.count_neighbors(self.cured.id), 1.0)
+ infected = max(self.count_neighbors(self.infected.id), 1.0)
+ prob_cure = self.get("prob_neighbor_cure") * (cured / infected)
+ if self.prob(prob_cure):
+ return self.cured
+
+
+class NewsSpread(Environment):
+ ratio_dumb: probability = 1,
+ ratio_herd: probability = 0,
+ ratio_wise: probability = 0,
+ prob_tv_spread: probability = 0.1,
+ prob_neighbor_spread: probability = 0.1,
+ prob_neighbor_cure: probability = 0.05,
+
+ def init(self):
+ self.populate_network([DumbViewer, HerdViewer, WiseViewer], [self.ratio_dumb, self.ratio_herd, self.ratio_wise])
+
+
+from itertools import permutations
+from soil import Simulation
+
+
+# We want to investigate the effect of different agent distributions on the spread of news.
+# To do that, we will run different simulations, with a varying ratio of DumbViewers, HerdViewers, and WiseViewers
+# Because the effect of these agents might also depend on the network structure, we will run our simulations on two different networks:
+# one with a small-world structure and one with a connected structure.
+
+for [r1, r2, r3] in permutations([0, 0.5, 1.0], 3):
+ for (generator, netparams) in {
+ "barabasi_albert_graph": {"m": 5},
+ "erdos_renyi_graph": {"p": 0.1},
+ }.items():
+ print(r1, r2, r3, generator)
+ # Create new simulation
+ netparams["n"] = 500
+ sim = Simulation(
+ model=NewsSpread,
+ model_params={
+ "ratio_dumb": r1,
+ "ratio_herd": r2,
+ "ratio_wise": r3,
+ "network_generator": generator,
+ "network_params": netparams,
+ "prob_neighbor_spread": 0,
+ },
+ num_trials=50,
+ max_steps=300,
+ dry_run=True,
+ )
+ # Run all the necessary instances
+ sim.run()
diff --git a/examples/programmatic/programmatic.py b/examples/programmatic/programmatic_sim.py
similarity index 71%
rename from examples/programmatic/programmatic.py
rename to examples/programmatic/programmatic_sim.py
index 9949117..d708e9b 100644
--- a/examples/programmatic/programmatic.py
+++ b/examples/programmatic/programmatic_sim.py
@@ -1,7 +1,7 @@
"""
Example of a fully programmatic simulation, without definition files.
"""
-from soil import Simulation, agents
+from soil import Simulation, Environment, agents
from networkx import Graph
import logging
@@ -25,23 +25,18 @@ class MyAgent(agents.FSM):
self.info("This runs 2/10 times on average")
+class ProgrammaticEnv(Environment):
+
+ def init(self):
+ self.create_network(generator=mygenerator)
+ self.populate_network(agent_class=MyAgent)
+ self.add_agent_reporter('times_run')
+
+
simulation = Simulation(
name="Programmatic",
- model_params={
- 'topology': {
- 'params': {
- 'generator': mygenerator
- },
- },
- 'agents': {
- 'distribution': [{
- 'agent_class': MyAgent,
- 'topology': True,
- }]
- }
- },
+ model=ProgrammaticEnv,
seed='Program',
- agent_reporters={'times_run': 'times_run'},
num_trials=1,
max_time=100,
dry_run=True,
diff --git a/examples/pubcrawl/pubcrawl.yml b/examples/pubcrawl/pubcrawl.yml
deleted file mode 100644
index 220b705..0000000
--- a/examples/pubcrawl/pubcrawl.yml
+++ /dev/null
@@ -1,26 +0,0 @@
----
-name: pubcrawl
-num_trials: 3
-max_steps: 10
-dump: false
-network_params:
- # Generate 100 empty nodes. They will be assigned a network agent
- generator: empty_graph
- n: 30
-network_agents:
- - agent_class: pubcrawl.Patron
- description: Extroverted patron
- state:
- openness: 1.0
- weight: 9
- - agent_class: pubcrawl.Patron
- description: Introverted patron
- state:
- openness: 0.1
- weight: 1
-environment_agents:
- - agent_class: pubcrawl.Police
-environment_class: pubcrawl.CityPubs
-environment_params:
- altercations: 0
- number_of_pubs: 3
diff --git a/examples/pubcrawl/pubcrawl.py b/examples/pubcrawl/pubcrawl_sim.py
similarity index 86%
rename from examples/pubcrawl/pubcrawl.py
rename to examples/pubcrawl/pubcrawl_sim.py
index c7921de..9e600e7 100644
--- a/examples/pubcrawl/pubcrawl.py
+++ b/examples/pubcrawl/pubcrawl_sim.py
@@ -1,6 +1,7 @@
from soil.agents import FSM, NetworkAgent, state, default_state
-from soil import Environment
+from soil import Environment, Simulation, parameters
from itertools import islice
+import networkx as nx
import logging
@@ -8,19 +9,23 @@ class CityPubs(Environment):
"""Environment with Pubs"""
level = logging.INFO
-
- def __init__(self, *args, number_of_pubs=3, pub_capacity=10, **kwargs):
- super(CityPubs, self).__init__(*args, **kwargs)
+ number_of_pubs: parameters.Integer = 3
+ ratio_extroverted: parameters.probability = 0.1
+ pub_capacity: parameters.Integer = 10
+
+ def init(self):
pubs = {}
- for i in range(number_of_pubs):
+ for i in range(self.number_of_pubs):
newpub = {
"name": "The awesome pub #{}".format(i),
"open": True,
- "capacity": pub_capacity,
+ "capacity": self.pub_capacity,
"occupancy": 0,
}
pubs[newpub["name"]] = newpub
+ self.add_agent(agent_class=Police, node_id=0)
self["pubs"] = pubs
+ self.populate_network([{"openness": 0.1}, {"openness": 1}], [self.ratio_extroverted, 1-self.ratio_extroverted], agent_class=Patron)
def enter(self, pub_id, *nodes):
"""Agents will try to enter. The pub checks if it is possible"""
@@ -169,7 +174,20 @@ class Police(FSM):
self.info("No trash to take out. Too bad.")
-if __name__ == "__main__":
- from soil import run_from_config
+sim = Simulation(
+ name="pubcrawl",
+ num_trials=3,
+ max_steps=10,
+ dry_run=True,
+ model_params=dict(
+ generator=nx.empty_graph,
+ network_params={"n": 30},
+ model=CityPubs,
+ altercations=0,
+ number_of_pubs=3,
+ )
+)
- run_from_config("pubcrawl.yml", dry_run=True, dump=None, parallel=False)
+
+if __name__ == "__main__":
+ sim.run(parallel=False)
\ No newline at end of file
diff --git a/examples/rabbits/basic/rabbits.yml b/examples/rabbits/basic/rabbits.yml
deleted file mode 100644
index a137844..0000000
--- a/examples/rabbits/basic/rabbits.yml
+++ /dev/null
@@ -1,42 +0,0 @@
----
-version: '2'
-name: rabbits_basic
-num_trials: 1
-seed: MySeed
-description: null
-group: null
-interval: 1.0
-max_time: 100
-model_class: rabbit_agents.RabbitEnv
-model_params:
- agents:
- topology: true
- distribution:
- - agent_class: rabbit_agents.Male
- weight: 1
- - agent_class: rabbit_agents.Female
- weight: 1
- fixed:
- - agent_class: rabbit_agents.RandomAccident
- topology: false
- hidden: true
- state:
- group: environment
- state:
- group: network
- mating_prob: 0.1
- prob_death: 0.001
- topology:
- fixed:
- directed: true
- links: []
- nodes:
- - id: 1
- - id: 0
- model_reporters:
- num_males: 'num_males'
- num_females: 'num_females'
- num_rabbits: |
- py:lambda env: env.num_males + env.num_females
-extra:
- visualization_params: {}
diff --git a/examples/rabbits/improved/rabbits.yml b/examples/rabbits/improved/rabbits.yml
deleted file mode 100644
index 204270c..0000000
--- a/examples/rabbits/improved/rabbits.yml
+++ /dev/null
@@ -1,42 +0,0 @@
----
-version: '2'
-name: rabbits_improved
-num_trials: 1
-seed: MySeed
-description: null
-group: null
-interval: 1.0
-max_time: 100
-model_class: rabbit_agents.RabbitEnv
-model_params:
- agents:
- topology: true
- distribution:
- - agent_class: rabbit_agents.Male
- weight: 1
- - agent_class: rabbit_agents.Female
- weight: 1
- fixed:
- - agent_class: rabbit_agents.RandomAccident
- topology: false
- hidden: true
- state:
- group: environment
- state:
- group: network
- mating_prob: 0.1
- prob_death: 0.001
- topology:
- fixed:
- directed: true
- links: []
- nodes:
- - id: 1
- - id: 0
- model_reporters:
- num_males: 'num_males'
- num_females: 'num_females'
- num_rabbits: |
- py:lambda env: env.num_males + env.num_females
-extra:
- visualization_params: {}
diff --git a/examples/rabbits/improved/rabbit_agents.py b/examples/rabbits/rabbit_improved_sim.py
similarity index 90%
rename from examples/rabbits/improved/rabbit_agents.py
rename to examples/rabbits/rabbit_improved_sim.py
index 0f45d9a..e47f616 100644
--- a/examples/rabbits/improved/rabbit_agents.py
+++ b/examples/rabbits/rabbit_improved_sim.py
@@ -1,23 +1,20 @@
-from soil import FSM, state, default_state, BaseAgent, NetworkAgent, Environment
+from soil import FSM, state, default_state, BaseAgent, NetworkAgent, Environment, Simulation
from soil.time import Delta
from enum import Enum
from collections import Counter
import logging
import math
+from rabbits_basic_sim import RabbitEnv
-class RabbitEnv(Environment):
- @property
- def num_rabbits(self):
- return self.count_agents(agent_class=Rabbit)
- @property
- def num_males(self):
- return self.count_agents(agent_class=Male)
-
- @property
- def num_females(self):
- return self.count_agents(agent_class=Female)
+class RabbitsImprovedEnv(RabbitEnv):
+ def init(self):
+ """Initialize the environment with the new versions of the agents"""
+ a1 = self.add_node(Male)
+ a2 = self.add_node(Female)
+ a1.add_edge(a2)
+ self.add_agent(RandomAccident)
class Rabbit(FSM, NetworkAgent):
@@ -150,8 +147,7 @@ class RandomAccident(BaseAgent):
self.debug("Rabbits alive: {}".format(rabbits_alive))
-if __name__ == "__main__":
- from soil import easy
+sim = Simulation(model=RabbitsImprovedEnv, max_time=100, seed="MySeed", num_trials=1)
- with easy("rabbits.yml") as sim:
- sim.run()
+if __name__ == "__main__":
+ sim.run()
diff --git a/examples/rabbits/basic/rabbit_agents.py b/examples/rabbits/rabbits_basic_sim.py
similarity index 91%
rename from examples/rabbits/basic/rabbit_agents.py
rename to examples/rabbits/rabbits_basic_sim.py
index 709508f..695a9ef 100644
--- a/examples/rabbits/basic/rabbit_agents.py
+++ b/examples/rabbits/rabbits_basic_sim.py
@@ -1,20 +1,29 @@
-from soil import FSM, state, default_state, BaseAgent, NetworkAgent, Environment
+from soil import FSM, state, default_state, BaseAgent, NetworkAgent, Environment, Simulation, report, parameters as params
from collections import Counter
import logging
import math
class RabbitEnv(Environment):
- prob_death = 1e-100
+ prob_death: params.probability = 1e-100
+ def init(self):
+ a1 = self.add_node(Male)
+ a2 = self.add_node(Female)
+ a1.add_edge(a2)
+ self.add_agent(RandomAccident)
+
+ @report
@property
def num_rabbits(self):
return self.count_agents(agent_class=Rabbit)
+ @report
@property
def num_males(self):
return self.count_agents(agent_class=Male)
+ @report
@property
def num_females(self):
return self.count_agents(agent_class=Female)
@@ -145,8 +154,8 @@ class RandomAccident(BaseAgent):
self.debug("Rabbits alive: {}".format(rabbits_alive))
-if __name__ == "__main__":
- from soil import easy
- with easy("rabbits.yml") as sim:
- sim.run()
+sim = Simulation(model=RabbitEnv, max_time=100, seed="MySeed", num_trials=1)
+
+if __name__ == "__main__":
+ sim.run()
\ No newline at end of file
diff --git a/examples/random_delays/random_delays.py b/examples/random_delays/random_delays_sim.py
similarity index 82%
rename from examples/random_delays/random_delays.py
rename to examples/random_delays/random_delays_sim.py
index e155b4e..d7b0382 100644
--- a/examples/random_delays/random_delays.py
+++ b/examples/random_delays/random_delays_sim.py
@@ -2,7 +2,7 @@
Example of setting a
Example of a fully programmatic simulation, without definition files.
"""
-from soil import Simulation, agents
+from soil import Simulation, agents, Environment
from soil.time import Delta
@@ -29,11 +29,15 @@ class MyAgent(agents.FSM):
return None, Delta(self.random.expovariate(1 / 16))
+class RandomEnv(Environment):
+
+ def init(self):
+ self.add_agent(agent_class=MyAgent)
+
+
s = Simulation(
name="Programmatic",
- model_params={
- 'agents': [{'agent_class': MyAgent}],
- },
+ model=RandomEnv,
num_trials=1,
max_time=100,
dry_run=True,
diff --git a/examples/template.yml b/examples/template.yml
deleted file mode 100644
index 2b1f2b7..0000000
--- a/examples/template.yml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-sampler:
- method: "SALib.sample.morris.sample"
- N: 10
-template:
- group: simple
- num_trials: 1
- interval: 1
- max_steps: 2
- seed: "CompleteSeed!"
- dump: false
- model_params:
- network_params:
- generator: complete_graph
- n: 10
- network_agents:
- - agent_class: CounterModel
- weight: "{{ x1 }}"
- state:
- state_id: 0
- - agent_class: AggregatedCounter
- weight: "{{ 1 - x1 }}"
- name: "{{ x3 }}"
- skip_test: true
-vars:
- bounds:
- x1: [0, 1]
- x2: [1, 2]
- fixed:
- x3: ["a", "b", "c"]
diff --git a/examples/terrorism/TerroristNetworkModel.yml b/examples/terrorism/TerroristNetworkModel.yml
deleted file mode 100644
index f709766..0000000
--- a/examples/terrorism/TerroristNetworkModel.yml
+++ /dev/null
@@ -1,62 +0,0 @@
-name: TerroristNetworkModel_sim
-max_steps: 150
-num_trials: 1
-model_params:
- network_params:
- generator: random_geometric_graph
- radius: 0.2
- # generator: geographical_threshold_graph
- # theta: 20
- n: 100
- network_agents:
- - agent_class: TerroristNetworkModel.TerroristNetworkModel
- weight: 0.8
- state:
- id: civilian # Civilians
- - agent_class: TerroristNetworkModel.TerroristNetworkModel
- weight: 0.1
- state:
- id: leader # Leaders
- - agent_class: TerroristNetworkModel.TrainingAreaModel
- weight: 0.05
- state:
- id: terrorist # Terrorism
- - agent_class: TerroristNetworkModel.HavenModel
- weight: 0.05
- state:
- id: civilian # Civilian
-
- # TerroristSpreadModel
- information_spread_intensity: 0.7
- terrorist_additional_influence: 0.035
- max_vulnerability: 0.7
- prob_interaction: 0.5
-
- # TrainingAreaModel and HavenModel
- training_influence: 0.20
- haven_influence: 0.20
-
- # TerroristNetworkModel
- vision_range: 0.30
- sphere_influence: 2
- weight_social_distance: 0.035
- weight_link_distance: 0.035
-
-visualization_params:
- # Icons downloaded from https://www.iconfinder.com/
- shape_property: agent
- shapes:
- TrainingAreaModel: target
- HavenModel: home
- TerroristNetworkModel: person
- colors:
- - attr_id: civilian
- color: '#40de40'
- - attr_id: terrorist
- color: red
- - attr_id: leader
- color: '#c16a6a'
- background_image: 'map_4800x2860.jpg'
- background_opacity: '0.9'
- background_filter_color: 'blue'
-skip_test: true # This simulation takes too long for automated tests.
diff --git a/examples/terrorism/TerroristNetworkModel.py b/examples/terrorism/TerroristNetworkModel_sim.py
similarity index 78%
rename from examples/terrorism/TerroristNetworkModel.py
rename to examples/terrorism/TerroristNetworkModel_sim.py
index 9b7106e..149128a 100644
--- a/examples/terrorism/TerroristNetworkModel.py
+++ b/examples/terrorism/TerroristNetworkModel_sim.py
@@ -1,6 +1,43 @@
import networkx as nx
-from soil.agents import Geo, NetworkAgent, FSM, state, default_state
-from soil import Environment
+from soil.agents import Geo, NetworkAgent, FSM, custom, state, default_state
+from soil import Environment, Simulation
+from soil.parameters import *
+
+
+class TerroristEnvironment(Environment):
+ generator: function = nx.random_geometric_graph
+ n: Integer = 100
+ radius: Float = 0.2
+
+ information_spread_intensity: probability = 0.7
+ terrorist_additional_influence: probability = 0.03
+ terrorist_additional_influence: probability = 0.035
+ max_vulnerability: probability = 0.7
+ prob_interaction: probability = 0.5
+
+ # TrainingAreaModel and HavenModel
+ training_influence: probability = 0.20
+ haven_influence: probability = 0.20
+
+ # TerroristNetworkModel
+ vision_range: Float = 0.30
+ sphere_influence: Integer = 2
+ weight_social_distance: Float = 0.035
+ weight_link_distance: Float = 0.035
+
+ ratio_civil: probability = 0.8
+ ratio_leader: probability = 0.1
+ ratio_training: probability = 0.05
+ ratio_haven: probability = 0.05
+
+ def init(self):
+ self.create_network(generator=self.generator, n=self.n, radius=self.radius)
+ self.populate_network([
+ TerroristNetworkModel.w(state_id='civilian'),
+ TerroristNetworkModel.w(state_id='leader'),
+ TrainingAreaModel,
+ HavenModel
+ ], [self.ratio_civil, self.ratio_leader, self.ratio_trainig, self.ratio_heaven])
class TerroristSpreadModel(FSM, Geo):
@@ -17,36 +54,21 @@ class TerroristSpreadModel(FSM, Geo):
prob_interaction
"""
- def __init__(self, model=None, unique_id=0, state=()):
- super().__init__(model=model, unique_id=unique_id, state=state)
-
- self.information_spread_intensity = model.environment_params[
- "information_spread_intensity"
- ]
- self.terrorist_additional_influence = model.environment_params[
- "terrorist_additional_influence"
- ]
- self.prob_interaction = model.environment_params["prob_interaction"]
-
- if self["id"] == self.civilian.id: # Civilian
- self.mean_belief = self.random.uniform(0.00, 0.5)
- elif self["id"] == self.terrorist.id: # Terrorist
+ def init(self):
+ if self.state_id == self.civilian.id: # Civilian
+ self.mean_belief = self.model.random.uniform(0.00, 0.5)
+ elif self.state_id == self.terrorist.id: # Terrorist
self.mean_belief = self.random.uniform(0.8, 1.00)
- elif self["id"] == self.leader.id: # Leader
+ elif self.state_id == self.leader.id: # Leader
self.mean_belief = 1.00
else:
raise Exception("Invalid state id: {}".format(self["id"]))
- if "min_vulnerability" in model.environment_params:
- self.vulnerability = self.random.uniform(
- model.environment_params["min_vulnerability"],
- model.environment_params["max_vulnerability"],
- )
- else:
- self.vulnerability = self.random.uniform(
- 0, model.environment_params["max_vulnerability"]
- )
+ self.vulnerability = self.random.uniform(
+ self.get("min_vulnerability", 0), self.get("max_vulnerability", 1)
+ )
+ @default_state
@state
def civilian(self):
neighbours = list(self.get_neighbors(agent_class=TerroristSpreadModel))
@@ -287,3 +309,32 @@ class TerroristNetworkModel(TerroristSpreadModel):
return nx.shortest_path_length(self.G, self.id, target)
except nx.NetworkXNoPath:
return float("inf")
+
+
+sim = Simulation(
+ model=TerroristEnvironment,
+ num_trials=1,
+ name="TerroristNetworkModel_sim",
+ max_steps=150,
+ skip_test=True,
+ dry_run=True,
+)
+
+# TODO: integrate visualization
+# visualization_params:
+# # Icons downloaded from https://www.iconfinder.com/
+# shape_property: agent
+# shapes:
+# TrainingAreaModel: target
+# HavenModel: home
+# TerroristNetworkModel: person
+# colors:
+# - attr_id: civilian
+# color: '#40de40'
+# - attr_id: terrorist
+# color: red
+# - attr_id: leader
+# color: '#c16a6a'
+# background_image: 'map_4800x2860.jpg'
+# background_opacity: '0.9'
+# background_filter_color: 'blue'
\ No newline at end of file
diff --git a/examples/torvalds.yml b/examples/torvalds.yml
deleted file mode 100644
index 3073d8c..0000000
--- a/examples/torvalds.yml
+++ /dev/null
@@ -1,15 +0,0 @@
----
-name: torvalds_example
-max_steps: 10
-interval: 2
-model_params:
- agent_class: CounterModel
- default_state:
- skill_level: 'beginner'
- network_params:
- path: 'torvalds.edgelist'
- states:
- Torvalds:
- skill_level: 'God'
- balkian:
- skill_level: 'developer'
diff --git a/examples/torvalds_sim.py b/examples/torvalds_sim.py
new file mode 100644
index 0000000..90e001c
--- /dev/null
+++ b/examples/torvalds_sim.py
@@ -0,0 +1,16 @@
+from soil import Environment, Simulation, CounterModel
+
+class TorvaldsEnv(Environment):
+
+ def init(self):
+ self.create_network(path='torvalds.edgelist')
+ self.populate_network(CounterModel, skill_level='beginner')
+ print("Agentes: ", list(self.network_agents))
+ self.find_one(node_id="Torvalds").skill_level = 'God'
+ self.find_one(node_id="balkian").skill_level = 'developer'
+
+
+sim = Simulation(name='torvalds_example',
+ max_steps=10,
+ interval=2,
+ model=TorvaldsEnv)
\ No newline at end of file
diff --git a/requirements.txt b/requirements.txt
index 834b156..1791f18 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -5,6 +5,8 @@ pyyaml>=5.1
pandas>=1
SALib>=1.3
Jinja2
-Mesa>=1.1
+Mesa>=1.2
pydantic>=1.9
sqlalchemy>=1.4
+typing-extensions>=4.4
+annotated-types>=0.4
\ No newline at end of file
diff --git a/soil/__init__.py b/soil/__init__.py
index eb9c232..a04582a 100644
--- a/soil/__init__.py
+++ b/soil/__init__.py
@@ -24,6 +24,7 @@ from .datacollection import SoilCollector
from . import serialization
from .utils import logger
from .time import *
+from .decorators import *
def main(
@@ -184,7 +185,7 @@ def main(
return
sims = list(
- simulation.iter_from_config(
+ simulation.iter_from_file(
args.file,
dry_run=args.dry_run,
exporters=exporters,
diff --git a/soil/agents/CounterModel.py b/soil/agents/CounterModel.py
index 6cd41fb..96bbfd3 100644
--- a/soil/agents/CounterModel.py
+++ b/soil/agents/CounterModel.py
@@ -1,6 +1,12 @@
-from . import NetworkAgent
+from . import BaseAgent, NetworkAgent
+class Ticker(BaseAgent):
+ times = 0
+
+ def step(self):
+ self.times += 1
+
class CounterModel(NetworkAgent):
"""
Dummy behaviour. It counts the number of nodes in the network and neighbors
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index f21ce98..1904f3c 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -14,10 +14,10 @@ import networkx as nx
from typing import Any
-from mesa import Agent as MesaAgent
+from mesa import Agent as MesaAgent, Model
from typing import Dict, List
-from .. import serialization, utils, time, config
+from .. import serialization, network, utils, time, config
IGNORED_FIELDS = ("model", "logger")
@@ -123,10 +123,18 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
def prob(self, probability):
return prob(probability, self.model.random)
+ @classmethod
+ def w(cls, **kwargs):
+ return custom(cls, **kwargs)
+
# TODO: refactor to clean up mesa compatibility
@property
def id(self):
return self.unique_id
+
+ @id.setter
+ def id(self, value):
+ self.unique_id = value
@classmethod
def from_dict(cls, model, attrs, warn_extra=True):
@@ -175,7 +183,11 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
return it
def get(self, key, default=None):
- return self[key] if key in self else default
+ if key in self:
+ return self[key]
+ elif key in self.model:
+ return self.model[key]
+ return default
@property
def now(self):
@@ -621,12 +633,16 @@ def _from_distro(
from .network_agents import *
from .fsm import *
from .evented import *
+from typing import Optional
class Agent(NetworkAgent, FSM, EventedAgent):
"""Default agent class, has both network and event capabilities"""
+from ..environment import NetworkEnvironment
+
+
from .BassModel import *
from .IndependentCascadeModel import *
from .SISaModel import *
@@ -640,3 +656,8 @@ except ImportError:
import sys
print("Could not load the Geo Agent, scipy is not installed", file=sys.stderr)
+
+
+def custom(cls, **kwargs):
+ """Create a new class from a template class and keyword arguments"""
+ return type(cls.__name__, (cls,), kwargs)
\ No newline at end of file
diff --git a/soil/agents/network_agents.py b/soil/agents/network_agents.py
index 507be40..fb0e58c 100644
--- a/soil/agents/network_agents.py
+++ b/soil/agents/network_agents.py
@@ -38,8 +38,9 @@ class NetworkAgent(BaseAgent):
if limit_neighbors:
neighbor_ids = set()
for node_id in self.G.neighbors(self.node_id):
- if self.G.nodes[node_id].get("agent") is not None:
- neighbor_ids.add(node_id)
+ agent = self.G.nodes[node_id].get("agent")
+ if agent is not None:
+ neighbor_ids.add(agent.id)
if unique_ids:
unique_ids = unique_ids & neighbor_ids
else:
diff --git a/soil/decorators.py b/soil/decorators.py
new file mode 100644
index 0000000..28811c4
--- /dev/null
+++ b/soil/decorators.py
@@ -0,0 +1,4 @@
+def report(f: property):
+ print(f.fget)
+ setattr(f.fget, "add_to_report", True)
+ return f
\ No newline at end of file
diff --git a/soil/environment.py b/soil/environment.py
index 6e622bf..0dd9f2a 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -6,20 +6,22 @@ import math
import logging
import inspect
-from typing import Any, Dict, Optional, Union, List
+from typing import Any, Callable, Dict, Optional, Union, List, Type
from collections import namedtuple
from time import time as current_time
from copy import deepcopy
-from networkx.readwrite import json_graph
import networkx as nx
-from mesa import Model
+from mesa import Model, Agent
-from . import agents as agentmod, config, datacollection, serialization, utils, time, network, events
+from . import agents as agentmod, datacollection, serialization, utils, time, network, events
+# TODO: add metaclass to read attributes of a model
+# TODO: read "report" attributes from the model
+
class BaseEnvironment(Model):
"""
The environment is key in a simulation. It controls how agents interact,
@@ -33,29 +35,35 @@ class BaseEnvironment(Model):
:meth:`soil.environment.Environment.get` method.
"""
+ def __new__(cls, *args: Any, seed="default", dir_path=None, **kwargs: Any) -> Any:
+ """Create a new model with a default seed value"""
+ self = super().__new__(cls, *args, seed=seed, **kwargs)
+ self.dir_path = dir_path or os.getcwd()
+ return self
+
def __init__(
self,
+ *,
id="unnamed_env",
seed="default",
- schedule_class=time.TimedActivation,
dir_path=None,
+ schedule_class=time.TimedActivation,
interval=1,
- agent_class=None,
- agents: List[tuple[type, Dict[str, Any]]] = {},
+ agents: Optional[Dict] = None,
collector_class: type = datacollection.SoilCollector,
agent_reporters: Optional[Any] = None,
model_reporters: Optional[Any] = None,
tables: Optional[Any] = None,
+ init: bool = True,
**env_params,
):
- super().__init__(seed=seed)
+ super().__init__()
self.current_id = -1
self.id = id
- self.dir_path = dir_path or os.getcwd()
if schedule_class is None:
schedule_class = time.TimedActivation
@@ -63,10 +71,7 @@ class BaseEnvironment(Model):
schedule_class = serialization.deserialize(schedule_class)
self.schedule = schedule_class(self)
- self.agent_class = agent_class or agentmod.BaseAgent
-
self.interval = interval
- self.init_agents(agents)
self.logger = utils.logger.getChild(self.id)
@@ -79,53 +84,13 @@ class BaseEnvironment(Model):
for (k, v) in env_params.items():
self[k] = v
- def _agent_from_dict(self, agent):
- """
- Translate an agent dictionary into an agent
- """
- agent = dict(**agent)
- cls = agent.pop("agent_class", None) or self.agent_class
- unique_id = agent.pop("unique_id", None)
- if unique_id is None:
- unique_id = self.next_id()
+ if agents:
+ self.add_agents(**agents)
+ if init:
+ self.init()
- return serialization.deserialize(cls)(unique_id=unique_id, model=self, **agent)
-
- def init_agents(self, agents: Union[config.AgentConfig, List[Dict[str, Any]]] = {}):
- """
- Initialize the agents in the model from either a `soil.config.AgentConfig` or a list of
- dictionaries that each describes an agent.
-
- If given a list of dictionaries, an agent will be created for each dictionary. The agent
- class can be specified through the `agent_class` key. The rest of the items will be used
- as parameters to the agent.
- """
- if not agents:
- return
-
- lst = agents
- override = []
- if not isinstance(lst, list):
- if not isinstance(agents, config.AgentConfig):
- lst = config.AgentConfig(**agents)
- if lst.override:
- override = lst.override
- lst = self._agent_dict_from_config(lst)
-
- # TODO: check override is working again. It cannot (easily) be part of agents.from_config anymore,
- # because it needs attribute such as unique_id, which are only present after init
- new_agents = [self._agent_from_dict(agent) for agent in lst]
-
- for a in new_agents:
- self.schedule.add(a)
-
- for rule in override:
- for agent in agentmod.filter_agents(self.schedule._agents, **rule.filter):
- for attr, value in rule.state.items():
- setattr(agent, attr, value)
-
- def _agent_dict_from_config(self, cfg):
- return agentmod.from_config(cfg, random=self.random)
+ def init(self):
+ pass
@property
def agents(self):
@@ -145,16 +110,29 @@ class BaseEnvironment(Model):
"The environment has not been scheduled, so it has no sense of time"
)
- def add_agent(self, unique_id=None, **kwargs):
+ def add_agent(self, agent_class, unique_id=None, **agent):
if unique_id is None:
unique_id = self.next_id()
- kwargs["unique_id"] = unique_id
- a = self._agent_from_dict(kwargs)
+ agent["unique_id"] = unique_id
+
+ agent = dict(**agent)
+ unique_id = agent.pop("unique_id", None)
+ if unique_id is None:
+ unique_id = self.next_id()
+
+ a = serialization.deserialize(agent_class)(unique_id=unique_id, model=self, **agent)
self.schedule.add(a)
return a
+ def add_agents(self, agent_classes: List[type], k, weights: Optional[List[float]] = None, **kwargs):
+ if weights is None:
+ weights = [1] * len(agent_classes)
+
+ for cls in self.random.choices(agent_classes, weights=weights, k=k):
+ self.add_agent(agent_class=cls, **kwargs)
+
def log(self, message, *args, level=logging.INFO, **kwargs):
if not self.logger.isEnabledFor(level):
return
@@ -215,61 +193,58 @@ class NetworkEnvironment(BaseEnvironment):
"""
def __init__(
- self, *args, topology: Union[config.NetConfig, nx.Graph] = None, **kwargs
+ self, *args,
+ topology: Optional[Union[nx.Graph, str]] = None,
+ agent_class: Optional[Type[agentmod.Agent]] = None,
+ network_generator: Optional[Callable] = None,
+ network_params: Optional[Dict] = None, **kwargs
):
- agents = kwargs.pop("agents", None)
- super().__init__(*args, agents=None, **kwargs)
+ self.topology = topology
+ self.network_generator = network_generator
+ self.network_params = network_params
+ if topology or network_params or network_generator:
+ self.create_network(topology, network_params=network_params, network_generator=network_generator)
+ else:
+ self.G = nx.Graph()
+ super().__init__(*args, **kwargs, init=False)
- if topology is None:
- topology = nx.Graph()
- elif not isinstance(topology, nx.Graph):
- topology = network.from_config(topology, dir_path=self.dir_path)
+ self.agent_class = agent_class
+ if agent_class:
+ self.agent_class = serialization.deserialize(agent_class)
+ self.init()
+ if self.agent_class:
+ self.populate_network(self.agent_class)
+
+ def add_agents(self, *args, k=None, **kwargs):
+ if not k and not self.G:
+ raise ValueError("Cannot add agents to an empty network")
+ super().add_agents(*args, k=k or len(self.G), **kwargs)
+
+ def create_network(self, topology=None, network_generator=None, path=None, network_params=None):
+ if topology is not None:
+ topology = network.from_topology(topology, dir_path=self.dir_path)
+ elif path is not None:
+ topology = network.from_topology(path, dir_path=self.dir_path)
+ elif network_generator is not None:
+ topology = network.from_params(network_generator, dir_path=self.dir_path, **network_params)
+ else:
+ raise ValueError("topology must be a networkx.Graph or a string, or network_generator must be provided")
self.G = topology
- self.init_agents(agents)
-
def init_agents(self, *args, **kwargs):
"""Initialize the agents from a"""
super().init_agents(*args, **kwargs)
for agent in self.schedule._agents.values():
- self._init_node(agent)
+ self._assign_node(agent)
- def _init_node(self, agent):
+ def _assign_node(self, agent):
"""
Make sure the node for a given agent has the proper attributes.
"""
if hasattr(agent, "node_id"):
self.G.nodes[agent.node_id]["agent"] = agent
- def _agent_dict_from_config(self, cfg):
- return agentmod.from_config(cfg, topology=self.G, random=self.random)
-
- def _agent_from_dict(self, agent, unique_id=None):
- agent = dict(agent)
-
- if not agent.get("topology", False):
- return super()._agent_from_dict(agent)
-
- if unique_id is None:
- unique_id = self.next_id()
- node_id = agent.get("node_id", None)
- if node_id is None:
- node_id = network.find_unassigned(self.G, random=self.random)
- self.G.nodes[node_id]["agent"] = None
- agent["node_id"] = node_id
- agent["unique_id"] = unique_id
- agent["topology"] = self.G
- node_attrs = self.G.nodes[node_id]
- node_attrs.pop('agent', None)
- node_attrs.update(agent)
- agent = node_attrs
-
- a = super()._agent_from_dict(agent)
- self._init_node(a)
-
- return a
-
@property
def network_agents(self):
for a in self.schedule._agents.values():
@@ -302,24 +277,37 @@ class NetworkEnvironment(BaseEnvironment):
a["visible"] = True
return a
- def add_agent(self, *args, **kwargs):
- a = super().add_agent(*args, **kwargs)
+ def add_agent(self, agent_class, *args, **kwargs):
+ if issubclass(agent_class, agentmod.NetworkAgent) and "node_id" not in kwargs:
+ return self.add_node(agent_class, *args, **kwargs)
+ a = super().add_agent(agent_class, *args, **kwargs)
if hasattr(a, "node_id"):
- assert self.G.nodes[a.node_id]["agent"] == a
+ assigned = self.G.nodes[a.node_id].get("agent")
+ if not assigned:
+ self.G.nodes[a.node_id]["agent"] = a
+ elif assigned != a:
+ raise ValueError(f"Node {a.node_id} already has an agent assigned: {assigned}")
return a
def agent_for_node_id(self, node_id):
return self.G.nodes[node_id].get("agent")
- def populate_network(self, agent_class, weights=None, **agent_params):
- if not hasattr(agent_class, "len"):
+ def populate_network(self, agent_class: List[Model], weights: List[float] = None, **agent_params):
+ if isinstance(agent_class, type):
agent_class = [agent_class]
- weights = None
- for (node_id, node) in self.G.nodes(data=True):
+ else:
+ agent_class = list(agent_class)
+ if not weights:
+ weights = [1] * len(agent_class)
+ assert len(self.G)
+ classes = self.random.choices(agent_class, weights, k=len(self.G))
+ for (cls, (node_id, node)) in zip(classes, self.G.nodes(data=True)):
if "agent" in node:
continue
- a_class = self.random.choices(agent_class, weights)[0]
- self.add_agent(node_id=node_id, topology=self.G, agent_class=a_class, **agent_params)
+ a = self.add_agent(node_id=node_id, topology=self.G, agent_class=cls, **agent_params)
+ node["agent"] = a
+ assert all("agent" in node for (_, node) in self.G.nodes(data=True))
+ assert len(list(self.network_agents))
class EventedEnvironment(BaseEnvironment):
diff --git a/soil/network.py b/soil/network.py
index c792755..6fac221 100644
--- a/soil/network.py
+++ b/soil/network.py
@@ -10,47 +10,47 @@ import networkx as nx
from . import config, serialization, basestring
-def from_config(cfg: config.NetConfig, dir_path: str = None):
- if not isinstance(cfg, config.NetConfig):
- cfg = config.NetConfig(**cfg)
+def from_topology(topology, dir_path: str = None):
+ if topology is None:
+ return nx.Graph()
+ if isinstance(topology, nx.Graph):
+ return topology
- if cfg.path:
- path = cfg.path
- if dir_path and not os.path.isabs(path):
- path = os.path.join(dir_path, path)
- extension = os.path.splitext(path)[1][1:]
- kwargs = {}
- if extension == "gexf":
- kwargs["version"] = "1.2draft"
- kwargs["node_type"] = int
+ # If it's a dict, assume it's a node-link graph
+ if isinstance(topology, dict):
try:
- method = getattr(nx.readwrite, "read_" + extension)
- except AttributeError:
- raise AttributeError("Unknown format")
- return method(path, **kwargs)
+ return nx.json_graph.node_link_graph(topology)
+ except Exception as ex:
+ raise ValueError("Unknown topology format")
+
+ # Otherwise, treat like a path
+ path = topology
+ if dir_path and not os.path.isabs(path):
+ path = os.path.join(dir_path, path)
+ extension = os.path.splitext(path)[1][1:]
+ kwargs = {}
+ if extension == "gexf":
+ kwargs["version"] = "1.2draft"
+ kwargs["node_type"] = int
+ try:
+ method = getattr(nx.readwrite, "read_" + extension)
+ except AttributeError:
+ raise AttributeError("Unknown format")
+ return method(path, **kwargs)
- if cfg.params:
- net_args = dict(cfg.params)
- net_gen = net_args.pop("generator")
- if dir_path not in sys.path:
- sys.path.append(dir_path)
+def from_params(generator, dir_path: str = None, **params):
- method = serialization.deserializer(
- net_gen,
- known_modules=[
- "networkx.generators",
- ],
- )
- return method(**net_args)
+ if dir_path not in sys.path:
+ sys.path.append(dir_path)
- if isinstance(cfg.fixed, config.Topology):
- cfg = cfg.fixed.dict()
-
- if isinstance(cfg, str) or isinstance(cfg, dict):
- return nx.json_graph.node_link_graph(cfg)
-
- return nx.Graph()
+ method = serialization.deserializer(
+ generator,
+ known_modules=[
+ "networkx.generators",
+ ],
+ )
+ return method(**params)
def find_unassigned(G, shuffle=False, random=random):
diff --git a/soil/parameters.py b/soil/parameters.py
new file mode 100644
index 0000000..fddbb17
--- /dev/null
+++ b/soil/parameters.py
@@ -0,0 +1,32 @@
+from __future__ import annotations
+
+from typing_extensions import Annotated
+import annotated_types
+from typing import *
+
+from dataclasses import dataclass
+
+class Parameter:
+ pass
+
+
+def floatrange(
+ *,
+ gt: Optional[float] = None,
+ ge: Optional[float] = None,
+ lt: Optional[float] = None,
+ le: Optional[float] = None,
+ multiple_of: Optional[float] = None,
+) -> type[float]:
+ return Annotated[
+ float,
+ annotated_types.Interval(gt=gt, ge=ge, lt=lt, le=le),
+ annotated_types.MultipleOf(multiple_of) if multiple_of is not None else None,
+ ]
+
+function = Annotated[Callable, Parameter]
+Integer = Annotated[int, Parameter]
+Float = Annotated[float, Parameter]
+
+
+probability = floatrange(ge=0, le=1)
\ No newline at end of file
diff --git a/soil/simulation.py b/soil/simulation.py
index 451ec88..06fc92c 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -16,6 +16,7 @@ from typing import Any, Dict, Union, Optional, List
from networkx.readwrite import json_graph
from functools import partial
+from contextlib import contextmanager
import pickle
from . import serialization, exporters, utils, basestring, agents
@@ -23,6 +24,16 @@ from .environment import Environment
from .utils import logger, run_and_return_exceptions
from .config import Config, convert_old
+_AVOID_RUNNING = False
+_QUEUED = []
+
+@contextmanager
+def do_not_run():
+ global _AVOID_RUNNING
+ _AVOID_RUNNING = True
+ yield
+ _AVOID_RUNNING = False
+
# TODO: change documentation for simulation
@dataclass
@@ -40,7 +51,7 @@ class Simulation:
name: str = "Unnamed simulation"
description: Optional[str] = ""
group: str = None
- model_class: Union[str, type] = "soil.Environment"
+ model: Union[str, type] = "soil.Environment"
model_params: dict = field(default_factory=dict)
seed: str = field(default_factory=lambda: current_time())
dir_path: str = field(default_factory=lambda: os.getcwd())
@@ -49,7 +60,6 @@ class Simulation:
interval: int = 1
num_trials: int = 1
num_processes: Optional[int] = 1
- parallel: Optional[bool] = False
exporters: Optional[List[str]] = field(default_factory=lambda: [exporters.default])
model_reporters: Optional[Dict[str, Any]] = field(default_factory=dict)
agent_reporters: Optional[Dict[str, Any]] = field(default_factory=dict)
@@ -90,6 +100,9 @@ class Simulation:
)
+ self.to_yaml()
)
+ if _AVOID_RUNNING:
+ _QUEUED.append((self, args, kwargs))
+ return list()
return list(self.run_gen(*args, **kwargs))
def run_gen(
@@ -170,7 +183,7 @@ class Simulation:
tables = self.tables.copy()
tables.update(deserialize_reporters(params.pop("tables", {})))
- env = serialization.deserialize(self.model_class)
+ env = serialization.deserialize(self.model)
return env(
id=f"{self.name}_trial_{trial_id}",
seed=f"{self.seed}_trial_{trial_id}",
@@ -250,6 +263,14 @@ Model stats:
return yaml.dump(self.to_dict())
+def iter_from_file(*files, **kwargs):
+ for f in files:
+ try:
+ yield from iter_from_py(f, **kwargs)
+ except ValueError as ex:
+ yield from iter_from_config(f, **kwargs)
+
+
def iter_from_config(*cfgs, **kwargs):
for config in cfgs:
configs = list(serialization.load_config(config))
@@ -266,18 +287,38 @@ def from_config(conf_or_path):
raise AttributeError("Provide only one configuration")
return lst[0]
-def iter_from_py(pyfile, module_name='custom_simulation'):
+
+def iter_from_py(pyfile, module_name='custom_simulation', **kwargs):
"""Try to load every Simulation instance in a given Python file"""
import importlib
import inspect
- spec = importlib.util.spec_from_file_location(module_name, pyfile)
- module = importlib.util.module_from_spec(spec)
- sys.modules[module_name] = module
- spec.loader.exec_module(module)
- # import pdb;pdb.set_trace()
- for (_name, sim) in inspect.getmembers(module, lambda x: isinstance(x, Simulation)):
- yield sim
- del sys.modules[module_name]
+ added = False
+ with do_not_run():
+ spec = importlib.util.spec_from_file_location(module_name, pyfile)
+ folder = os.path.dirname(pyfile)
+ if folder not in sys.path:
+ added = True
+ sys.path.append(folder)
+ if not spec:
+ raise ValueError(f"{pyfile} does not seem to be a Python module")
+ module = importlib.util.module_from_spec(spec)
+ sys.modules[module_name] = module
+ spec.loader.exec_module(module)
+ # import pdb;pdb.set_trace()
+ loaded = False
+ sims = []
+ for (_name, sim) in inspect.getmembers(module, lambda x: isinstance(x, Simulation)):
+ loaded = True
+ sims.append(sim)
+ for (_name, sim) in inspect.getmembers(module, lambda x: inspect.isclass(x) and issubclass(x, Simulation)):
+ loaded = True
+ sims.append(sim(**kwargs))
+ if not loaded:
+ raise AttributeError(f"No valid configurations found in {pyfile}")
+ del sys.modules[module_name]
+ if added:
+ sys.path.remove(folder)
+ yield from sims
def from_py(pyfile):
@@ -285,7 +326,7 @@ def from_py(pyfile):
-def run_from_config(*configs, **kwargs):
- for sim in iter_from_config(*configs):
+def run_from_file(*files, **kwargs):
+ for sim in iter_from_file(*files):
logger.info(f"Using config(s): {sim.name}")
sim.run_simulation(**kwargs)
diff --git a/soil/visualization.py b/soil/visualization.py
deleted file mode 100644
index a1cb7b8..0000000
--- a/soil/visualization.py
+++ /dev/null
@@ -1,6 +0,0 @@
-from mesa.visualization.UserParam import UserSettableParameter
-
-
-class UserSettableParameter(UserSettableParameter):
- def __str__(self):
- return self.value
diff --git a/tests/test_agents.py b/tests/test_agents.py
index 76606cf..36b01ed 100644
--- a/tests/test_agents.py
+++ b/tests/test_agents.py
@@ -106,7 +106,7 @@ class TestAgents(TestCase):
"""
# There are two agents, they try to send pings
- # This is arguably a very contrived example. In practice, the or
+ # This is arguably a very contrived example.
# There should be a delay of one step between agent 0 and 1
# On the first step:
# Agent 0 sends a PING, but blocks before a PONG
diff --git a/tests/test_config.py b/tests/test_config.py
index 8fb0a83..413b737 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -1,4 +1,4 @@
-from unittest import TestCase
+from unittest import TestCase, skip
import os
import yaml
import copy
@@ -23,6 +23,7 @@ def isequal(a, b):
assert a == b
+@skip("new versions of soil do not rely on configuration files")
class TestConfig(TestCase):
def test_conversion(self):
expected = serialization.load_file(join(ROOT, "complete_converted.yml"))[0]
@@ -59,16 +60,16 @@ class TestConfig(TestCase):
"""
cfg = {
"name": "CounterAgent",
- "network_params": {"path": join(ROOT, "test.gexf")},
- "agent_class": "CounterModel",
+ "model_params": {
+ "topology": join(ROOT, "test.gexf"),
+ "agent_class": "CounterModel",
+ },
# 'states': [{'times': 10}, {'times': 20}],
"max_time": 2,
"dry_run": True,
"num_trials": 1,
- "environment_params": {},
}
- conf = config.convert_old(cfg)
- s = simulation.from_config(conf)
+ s = simulation.from_config(cfg)
env = s.get_env()
assert len(env.G.nodes) == 2
diff --git a/tests/test_examples.py b/tests/test_examples.py
index 2479531..8998b95 100644
--- a/tests/test_examples.py
+++ b/tests/test_examples.py
@@ -3,7 +3,7 @@ import os
from os.path import join
from glob import glob
-from soil import simulation, config
+from soil import simulation, config, do_not_run
ROOT = os.path.abspath(os.path.dirname(__file__))
EXAMPLES = join(ROOT, "..", "examples")
@@ -12,6 +12,7 @@ FORCE_TESTS = os.environ.get("FORCE_TESTS", "")
class TestExamples(TestCase):
+ """Empty class that will be populated with auto-discovery tests for every example"""
pass
@@ -45,7 +46,7 @@ def add_example_tests():
continue
for sim in simulation.iter_from_config(path):
sim_paths.append((sim, path))
- for path in glob(join(EXAMPLES, '**', '*.py')):
+ for path in glob(join(EXAMPLES, '**', '*_sim.py')):
for sim in simulation.iter_from_py(path):
sim_paths.append((sim, path))
diff --git a/tests/test_exporters.py b/tests/test_exporters.py
index 1b1b072..3e7975b 100644
--- a/tests/test_exporters.py
+++ b/tests/test_exporters.py
@@ -6,6 +6,7 @@ import sqlite3
from unittest import TestCase
from soil import exporters
+from soil import environment
from soil import simulation
from soil import agents
@@ -38,15 +39,14 @@ class Exporters(TestCase):
def test_basic(self):
# We need to add at least one agent to make sure the scheduler
# ticks every step
+ class SimpleEnv(environment.Environment):
+ def init(self):
+ self.add_agent(agent_class=agents.BaseAgent)
+
+
num_trials = 5
max_time = 2
- config = {
- "name": "exporter_sim",
- "model_params": {"agents": [{"agent_class": agents.BaseAgent}]},
- "max_time": max_time,
- "num_trials": num_trials,
- }
- s = simulation.from_config(config)
+ s = simulation.Simulation(num_trials=num_trials, max_time=max_time, name="exporter_sim", dry_run=True, model=SimpleEnv)
for env in s.run_simulation(exporters=[Dummy], dry_run=True):
assert len(env.agents) == 1
@@ -64,12 +64,14 @@ class Exporters(TestCase):
n_trials = 5
config = {
"name": "exporter_sim",
- "network_params": {"generator": "complete_graph", "n": 4},
- "agent_class": "CounterModel",
+ "model_params": {
+ "network_generator": "complete_graph",
+ "network_params": {"n": 4},
+ "agent_class": "CounterModel",
+ },
"max_time": 2,
"num_trials": n_trials,
"dry_run": False,
- "environment_params": {},
}
output = io.StringIO()
s = simulation.from_config(config)
diff --git a/tests/test_main.py b/tests/test_main.py
index 677421a..5174dbd 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -29,8 +29,8 @@ class TestMain(TestCase):
"""A simulation with a base behaviour should do nothing"""
config = {
"model_params": {
- "network_params": {"path": join(ROOT, "test.gexf")},
- "agent_class": "BaseAgent",
+ "topology": join(ROOT, "test.gexf"),
+ "agent_class": "NetworkAgent",
}
}
s = simulation.from_config(config)
@@ -62,27 +62,13 @@ class TestMain(TestCase):
"""
The initial states should be applied to the agent and the
agent should be able to update its state."""
- config = {
- "version": "2",
- "name": "CounterAgent",
- "dry_run": True,
- "num_trials": 1,
- "max_time": 2,
- "model_params": {
- "topology": {"path": join(ROOT, "test.gexf")},
- "agents": {
- "agent_class": "CounterModel",
- "topology": True,
- "fixed": [{"state": {"times": 10}}, {"state": {"times": 20}}],
- },
- },
- }
- s = simulation.from_config(config)
- env = s.get_env()
- assert isinstance(env.agents[0], agents.CounterModel)
- assert env.agents[0].G == env.G
- assert env.agents[0]["times"] == 10
+ env = Environment()
+ env.add_agent(agents.Ticker, times=10)
+ env.add_agent(agents.Ticker, times=20)
+
+ assert isinstance(env.agents[0], agents.Ticker)
assert env.agents[0]["times"] == 10
+ assert env.agents[1]["times"] == 20
env.step()
assert env.agents[0]["times"] == 11
assert env.agents[1]["times"] == 21
@@ -90,18 +76,8 @@ class TestMain(TestCase):
def test_init_and_count_agents(self):
"""Agents should be properly initialized and counting should filter them properly"""
# TODO: separate this test into two or more test cases
- config = {
- "max_time": 10,
- "model_params": {
- "agents": [
- {"agent_class": CustomAgent, "weight": 1, "topology": True},
- {"agent_class": CustomAgent, "weight": 3, "topology": True},
- ],
- "topology": {"path": join(ROOT, "test.gexf")},
- },
- }
- s = simulation.from_config(config)
- env = s.run_simulation(dry_run=True)[0]
+ env = Environment(topology=join(ROOT, "test.gexf"))
+ env.populate_network([CustomAgent.w(weight=1), CustomAgent.w(weight=3)])
assert env.agents[0].weight == 1
assert env.count_agents() == 2
assert env.count_agents(weight=1) == 1
@@ -110,26 +86,28 @@ class TestMain(TestCase):
def test_torvalds_example(self):
"""A complete example from a documentation should work."""
- config = serialization.load_file(join(EXAMPLES, "torvalds.yml"))[0]
- config["model_params"]["network_params"]["path"] = join(
- EXAMPLES, config["model_params"]["network_params"]["path"]
- )
- s = simulation.from_config(config)
- env = s.run_simulation(dry_run=True)[0]
- for a in env.network_agents:
- skill_level = a.state["skill_level"]
- if a.id == "Torvalds":
- assert skill_level == "God"
- assert a.state["total"] == 3
- assert a.state["neighbors"] == 2
- elif a.id == "balkian":
- assert skill_level == "developer"
- assert a.state["total"] == 3
- assert a.state["neighbors"] == 1
- else:
- assert skill_level == "beginner"
- assert a.state["total"] == 3
- assert a.state["neighbors"] == 1
+ owd = os.getcwd()
+ pyfile = join(EXAMPLES, "torvalds_sim.py")
+ try:
+ os.chdir(os.path.dirname(pyfile))
+ s = simulation.from_py(pyfile)
+ env = s.run_simulation(dry_run=True)[0]
+ for a in env.network_agents:
+ skill_level = a["skill_level"]
+ if a.node_id == "Torvalds":
+ assert skill_level == "God"
+ assert a["total"] == 3
+ assert a["neighbors"] == 2
+ elif a.node_id == "balkian":
+ assert skill_level == "developer"
+ assert a["total"] == 3
+ assert a["neighbors"] == 1
+ else:
+ assert skill_level == "beginner"
+ assert a["total"] == 3
+ assert a["neighbors"] == 1
+ finally:
+ os.chdir(owd)
def test_serialize_class(self):
ser, name = serialization.serialize(agents.BaseAgent, known_modules=[])
@@ -166,11 +144,6 @@ class TestMain(TestCase):
assert ser == "BaseAgent"
pickle.dumps(ser)
- def test_templates(self):
- """Loading a template should result in several configs"""
- configs = serialization.load_file(join(EXAMPLES, "template.yml"))
- assert len(configs) > 0
-
def test_until(self):
n_runs = 0
@@ -183,7 +156,7 @@ class TestMain(TestCase):
n_trials = 50
max_time = 2
s = simulation.Simulation(
- model_params={"agents": [{"agent_class": CheckRun}]},
+ model_params=dict(agents=dict(agent_classes=[CheckRun], k=1)),
num_trials=n_trials,
max_time=max_time,
)
diff --git a/tests/test_network.py b/tests/test_network.py
index 89ff4a0..8fc6644 100644
--- a/tests/test_network.py
+++ b/tests/test_network.py
@@ -19,13 +19,11 @@ class TestNetwork(TestCase):
Load a graph from file if the extension is known.
Raise an exception otherwise.
"""
- config = {"network_params": {"path": join(ROOT, "test.gexf")}}
- G = network.from_config(config["network_params"])
+ G = network.from_topology(join(ROOT, "test.gexf"))
assert G
assert len(G) == 2
with self.assertRaises(AttributeError):
- config = {"network_params": {"path": join(ROOT, "unknown.extension")}}
- G = network.from_config(config["network_params"])
+ G = network.from_topology(join(ROOT, "unknown.extension"))
print(G)
def test_generate_barabasi(self):
@@ -33,12 +31,12 @@ class TestNetwork(TestCase):
If no path is given, a generator and network parameters
should be used to generate a network
"""
- cfg = {"params": {"generator": "barabasi_albert_graph"}}
+ cfg = {"generator": "barabasi_albert_graph"}
with self.assertRaises(Exception):
- G = network.from_config(cfg)
- cfg["params"]["n"] = 100
- cfg["params"]["m"] = 10
- G = network.from_config(cfg)
+ G = network.from_params(**cfg)
+ cfg["n"] = 100
+ cfg["m"] = 10
+ G = network.from_params(**cfg)
assert len(G) == 100
def test_save_geometric(self):
@@ -54,18 +52,8 @@ class TestNetwork(TestCase):
def test_networkenvironment_creation(self):
"""Networkenvironment should accept netconfig as parameters"""
- model_params = {
- "topology": {"path": join(ROOT, "test.gexf")},
- "agents": {
- "topology": True,
- "distribution": [
- {
- "agent_class": CustomAgent,
- }
- ],
- },
- }
- env = environment.Environment(**model_params)
+ env = environment.Environment(topology=join(ROOT, "test.gexf"))
+ env.populate_network(CustomAgent)
assert env.G
env.step()
assert len(env.G) == 2
@@ -76,18 +64,9 @@ class TestNetwork(TestCase):
def test_custom_agent_neighbors(self):
"""Allow for search of neighbors with a certain state_id"""
- config = {
- "model_params": {
- "topology": {"path": join(ROOT, "test.gexf")},
- "agents": {
- "topology": True,
- "distribution": [{"weight": 1, "agent_class": CustomAgent}],
- },
- },
- "max_time": 10,
- }
- s = simulation.from_config(config)
- env = s.run_simulation(dry_run=True)[0]
+ env = environment.Environment()
+ env.create_network(join(ROOT, "test.gexf"))
+ env.populate_network(CustomAgent)
assert env.agents[1].count_agents(state_id="normal") == 2
assert env.agents[1].count_agents(state_id="normal", limit_neighbors=True) == 1
assert env.agents[0].count_neighbors() == 1
@@ -97,10 +76,8 @@ class TestNetwork(TestCase):
G = nx.Graph()
G.add_node(3)
G.add_edge(1, 2)
- distro = agents.calculate_distribution(agent_class=agents.NetworkAgent)
- aconfig = config.AgentConfig(distribution=distro, topology=True)
- env = environment.Environment(name="Test", topology=G, agents=aconfig)
- lst = list(env.network_agents)
+ env = environment.Environment(name="Test", topology=G)
+ env.populate_network(agents.NetworkAgent)
a2 = env.find_one(node_id=2)
a3 = env.find_one(node_id=3)
diff --git a/tests/test_time.py b/tests/test_time.py
index 7fdab0b..27d1765 100644
--- a/tests/test_time.py
+++ b/tests/test_time.py
@@ -46,7 +46,8 @@ class TestMain(TestCase):
break
done.append(self.now)
- env = environment.Environment(agents=[{"agent_class": CondAgent}])
+ env = environment.Environment()
+ env.add_agent(CondAgent)
while env.schedule.time < 11:
times.append(env.now)
From feab0ba79e5f1b0424052bff6f412b30f6393856 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Fri, 14 Apr 2023 19:41:24 +0200
Subject: [PATCH 29/39] Large set of changes for v0.30
The examples weren't being properly tested in the last commit. When we fixed
that a lot of bugs in the new implementation of environment and agent were
found, which accounts for most of these changes.
The main difference is the mechanism to load simulations from a configuration
file. For that to work, we had to rework our module loading code in
`serialization` and add a `source_file` attribute to configurations (and
simulations, for that matter).
---
CHANGELOG.md | 7 +-
docs/notes_v0.30.rst | 24 +-
examples/custom_generator/generator_sim.py | 8 +-
.../custom_timeouts/custom_timeouts_sim.py | 4 +-
examples/events_and_messages/cars_sim.py | 49 ++--
examples/mesa/mesa_sim.py | 2 +-
examples/mesa/social_wealth.py | 2 +-
examples/newsspread/newsspread_sim.py | 39 +--
examples/programmatic/programmatic_sim.py | 5 +-
examples/pubcrawl/pubcrawl_sim.py | 22 +-
examples/random_delays/random_delays_sim.py | 2 +-
.../terrorism/TerroristNetworkModel_sim.py | 72 ++---
examples/torvalds_sim.py | 19 +-
examples/tutorial/soil_tutorial.ipynb | 113 ++++----
soil/__init__.py | 67 +++--
soil/agents/__init__.py | 35 ++-
soil/agents/fsm.py | 16 +-
soil/agents/network_agents.py | 28 +-
soil/config.py | 269 +-----------------
soil/datacollection.py | 2 +-
soil/debugging.py | 59 +++-
soil/decorators.py | 6 +-
soil/environment.py | 162 +++++++----
soil/exporters.py | 28 +-
soil/serialization.py | 61 +++-
soil/simulation.py | 183 +++++++-----
soil/time.py | 3 +-
tests/complete_converted.yml | 49 ----
tests/old_complete.yml | 37 ---
tests/test_agents.py | 14 +
tests/test_config.py | 90 +-----
tests/test_config.yml | 5 +
tests/test_examples.py | 61 ++--
tests/test_exporters.py | 32 ++-
tests/test_main.py | 35 ++-
tests/test_network.py | 4 +-
36 files changed, 739 insertions(+), 875 deletions(-)
delete mode 100644 tests/complete_converted.yml
delete mode 100644 tests/old_complete.yml
create mode 100644 tests/test_config.yml
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1d17271..2bff290 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -6,15 +6,12 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [0.30 UNRELEASED]
### Added
* Simple debugging capabilities in `soil.debugging`, with a custom `pdb.Debugger` subclass that exposes commands to list agents and their status and set breakpoints on states (for FSM agents). Try it with `soil --debug `
-* Ability to run
-* Ability to
+* Ability to run mesa simulations
* The `soil.exporters` module to export the results of datacollectors (model.datacollector) into files at the end of trials/simulations
* A modular set of classes for environments/models. Now the ability to configure the agents through an agent definition and a topology through a network configuration is split into two classes (`soil.agents.BaseEnvironment` for agents, `soil.agents.NetworkEnvironment` to add topology).
* FSM agents can now have generators as states. They work similar to normal states, with one caveat. Only `time` values can be yielded, not a state. This is because the state will not change, it will be resumed after the yield, at the appropriate time. The return value *can* be a state, or a `(state, time)` tuple, just like in normal states.
### Changed
-* Configuration schema is very different now. Check `soil.config` for more information. We are also using Pydantic for (de)serialization.
-* There may be more than one topology/network in the simulation
-* Ability
+* Configuration schema is very simplified
### Removed
* Any `tsih` and `History` integration in the main classes. To record the state of environments/agents, just use a datacollector. In some cases this may be slower or consume more memory than the previous system. However, few cases actually used the full potential of the history, and it came at the cost of unnecessary complexity and worse performance for the majority of cases.
diff --git a/docs/notes_v0.30.rst b/docs/notes_v0.30.rst
index 13a2698..7367f66 100644
--- a/docs/notes_v0.30.rst
+++ b/docs/notes_v0.30.rst
@@ -1,5 +1,3 @@
-
-
What are the main changes between version 0.3 and 0.2?
######################################################
@@ -22,22 +20,12 @@ It aims to provide more modular and convenient functions, most of which can be u
How are agents assigned to nodes in the network
###############################################
-In principle, the generation of the network topology and the assignment of agents to nodes are two separate processes.
-There is a mechanism to initialize the agents, a mechanism to initialize the topology, and a mechanism to assign agents to nodes.
-
-However, there are a myriad of ways to do this, and it is not clear which is the best way to do it.
-Earlier versions of Soil approached it by providing a fairly complex method of agent and node generation.
-The result was a very complex and difficult to understand system, which is was also prone to bugs and changes between versions.
-
-Starting with version 0.3, the approach is to provide a simplified yet flexible system for generating the network topology and assigning agents to nodes.
-This is based on these methods:
-
-- `create_network`
-- `add_agents` (and `add_agent`)
-- `populate_network`
-
-The default implementation of `soil.Environment` accepts some parameters that will automatically do these steps for the most common case.
-All other cases can be handled by overriding the `init(self)` method and explicitly using these methods.
+The constructor of the `NetworkAgent` class has two arguments: `node_id` and `topology`.
+If `topology` is not provided, it will default to `self.model.topology`.
+This assignment might err if the model does not have a `topology` attribute, but most Soil environments derive from `NetworkEnvironment`, so they include a topology by default.
+If `node_id` is not provided, a random node will be selected from the topology, until a node with no agent is found.
+Then, the `node_id` of that node is assigned to the agent.
+If no node with no agent is found, a new node is automatically added to the topology.
Can Soil environments include more than one network / topology?
diff --git a/examples/custom_generator/generator_sim.py b/examples/custom_generator/generator_sim.py
index 0950457..c3701e7 100644
--- a/examples/custom_generator/generator_sim.py
+++ b/examples/custom_generator/generator_sim.py
@@ -26,14 +26,14 @@ def mygenerator(n=5, n_edges=5):
class GeneratorEnv(Environment):
"""Using a custom generator for the network"""
- generator: parameters.function = mygenerator
+ generator: parameters.function = staticmethod(mygenerator)
def init(self):
- self.create_network(network_generator=self.generator, n=10, n_edges=5)
- self.init_agents(CounterModel)
+ self.create_network(generator=self.generator, n=10, n_edges=5)
+ self.add_agents(CounterModel)
sim = Simulation(model=GeneratorEnv, max_steps=10, interval=1)
if __name__ == '__main__':
- sim.run(dry_run=True)
\ No newline at end of file
+ sim.run(dump=False)
\ No newline at end of file
diff --git a/examples/custom_timeouts/custom_timeouts_sim.py b/examples/custom_timeouts/custom_timeouts_sim.py
index e5ff26d..7a80242 100644
--- a/examples/custom_timeouts/custom_timeouts_sim.py
+++ b/examples/custom_timeouts/custom_timeouts_sim.py
@@ -30,7 +30,7 @@ from networkx import complete_graph
class TimeoutsEnv(Environment):
def init(self):
- self.init_network(generator=complete_graph, n=2)
+ self.create_network(generator=complete_graph, n=2)
self.add_agent(agent_class=Fibonacci, node_id=0)
self.add_agent(agent_class=Odds, node_id=1)
@@ -38,4 +38,4 @@ class TimeoutsEnv(Environment):
sim = Simulation(model=TimeoutsEnv, max_steps=10, interval=1)
if __name__ == "__main__":
- sim.run(dry_run=True)
\ No newline at end of file
+ sim.run(dump=False)
\ No newline at end of file
diff --git a/examples/events_and_messages/cars_sim.py b/examples/events_and_messages/cars_sim.py
index c785650..5e93138 100644
--- a/examples/events_and_messages/cars_sim.py
+++ b/examples/events_and_messages/cars_sim.py
@@ -56,41 +56,25 @@ class City(EventedEnvironment):
:param int height: Height of the internal grid
:param int width: Width of the internal grid
"""
+ n_cars = 1
+ n_passengers = 10
+ height = 100
+ width = 100
+
+ def init(self):
+ self.grid = MultiGrid(width=self.width, height=self.height, torus=False)
+ if not self.agents:
+ self.add_agents(Driver, k=self.n_cars)
+ self.add_agents(Passenger, k=self.n_passengers)
- def __init__(
- self,
- *args,
- n_cars=1,
- n_passengers=10,
- height=100,
- width=100,
- agents=None,
- model_reporters=None,
- **kwargs,
- ):
- self.grid = MultiGrid(width=width, height=height, torus=False)
- if agents is None:
- agents = []
- for i in range(n_cars):
- agents.append({"agent_class": Driver})
- for i in range(n_passengers):
- agents.append({"agent_class": Passenger})
- model_reporters = model_reporters or {
- "earnings": "total_earnings",
- "n_passengers": "number_passengers",
- }
- print("REPORTERS", model_reporters)
- super().__init__(
- *args, agents=agents, model_reporters=model_reporters, **kwargs
- )
for agent in self.agents:
self.grid.place_agent(agent, (0, 0))
self.grid.move_to_empty(agent)
+
+ self.total_earnings = 0
+ self.add_model_reporter("total_earnings")
- @property
- def total_earnings(self):
- return sum(d.earnings for d in self.agents(agent_class=Driver))
-
+ @report
@property
def number_passengers(self):
return self.count_agents(agent_class=Passenger)
@@ -150,6 +134,7 @@ class Driver(Evented, FSM):
while self.move_towards(self.journey.destination, with_passenger=True):
yield
self.earnings += self.journey.tip
+ self.model.total_earnings += self.journey.tip
self.check_passengers()
return self.wandering
@@ -228,13 +213,13 @@ class Passenger(Evented, FSM):
except events.TimedOut:
pass
- self.info("Got home safe!")
- self.die()
+ self.die("Got home safe!")
simulation = Simulation(name="RideHailing",
model=City,
seed="carsSeed",
+ max_time=1000,
model_params=dict(n_passengers=2))
if __name__ == "__main__":
diff --git a/examples/mesa/mesa_sim.py b/examples/mesa/mesa_sim.py
index 1f2da70..6ece2d6 100644
--- a/examples/mesa/mesa_sim.py
+++ b/examples/mesa/mesa_sim.py
@@ -1,7 +1,7 @@
from soil import Simulation
from social_wealth import MoneyEnv, graph_generator
-sim = Simulation(name="mesa_sim", dry_run=True, max_steps=10, interval=2, model=MoneyEnv, model_params=dict(generator=graph_generator, N=10, width=50, height=50))
+sim = Simulation(name="mesa_sim", dump=False, max_steps=10, interval=2, model=MoneyEnv, model_params=dict(generator=graph_generator, N=10, width=50, height=50))
if __name__ == "__main__":
sim.run()
diff --git a/examples/mesa/social_wealth.py b/examples/mesa/social_wealth.py
index de8a198..d5b8dbb 100644
--- a/examples/mesa/social_wealth.py
+++ b/examples/mesa/social_wealth.py
@@ -53,7 +53,7 @@ class MoneyAgent(MesaAgent):
self.give_money()
-class SocialMoneyAgent(NetworkAgent, MoneyAgent):
+class SocialMoneyAgent(MoneyAgent, NetworkAgent):
wealth = 1
def give_money(self):
diff --git a/examples/newsspread/newsspread_sim.py b/examples/newsspread/newsspread_sim.py
index c85d5fc..2197e15 100644
--- a/examples/newsspread/newsspread_sim.py
+++ b/examples/newsspread/newsspread_sim.py
@@ -91,10 +91,11 @@ class NewsSpread(Environment):
prob_neighbor_cure: probability = 0.05,
def init(self):
- self.populate_network([DumbViewer, HerdViewer, WiseViewer], [self.ratio_dumb, self.ratio_herd, self.ratio_wise])
+ self.populate_network([DumbViewer, HerdViewer, WiseViewer],
+ [self.ratio_dumb, self.ratio_herd, self.ratio_wise])
-from itertools import permutations
+from itertools import product
from soil import Simulation
@@ -103,27 +104,31 @@ from soil import Simulation
# Because the effect of these agents might also depend on the network structure, we will run our simulations on two different networks:
# one with a small-world structure and one with a connected structure.
-for [r1, r2, r3] in permutations([0, 0.5, 1.0], 3):
+counter = 0
+for [r1, r2] in product([0, 0.5, 1.0], repeat=2):
for (generator, netparams) in {
"barabasi_albert_graph": {"m": 5},
"erdos_renyi_graph": {"p": 0.1},
}.items():
- print(r1, r2, r3, generator)
+ print(r1, r2, 1-r1-r2, generator)
# Create new simulation
netparams["n"] = 500
- sim = Simulation(
+ Simulation(
+ name='newspread_sim',
model=NewsSpread,
- model_params={
- "ratio_dumb": r1,
- "ratio_herd": r2,
- "ratio_wise": r3,
- "network_generator": generator,
- "network_params": netparams,
- "prob_neighbor_spread": 0,
- },
- num_trials=50,
+ model_params=dict(
+ ratio_dumb=r1,
+ ratio_herd=r2,
+ ratio_wise=1-r1-r2,
+ network_generator=generator,
+ network_params=netparams,
+ prob_neighbor_spread=0,
+ ),
+ num_trials=5,
max_steps=300,
- dry_run=True,
- )
+ dump=False,
+ ).run()
+ counter += 1
# Run all the necessary instances
- sim.run()
+
+print(f"A total of {counter} simulations were run.")
\ No newline at end of file
diff --git a/examples/programmatic/programmatic_sim.py b/examples/programmatic/programmatic_sim.py
index d708e9b..86ae9ab 100644
--- a/examples/programmatic/programmatic_sim.py
+++ b/examples/programmatic/programmatic_sim.py
@@ -14,7 +14,7 @@ def mygenerator():
return G
-class MyAgent(agents.FSM):
+class MyAgent(agents.NetworkAgent, agents.FSM):
times_run = 0
@agents.default_state
@agents.state
@@ -29,6 +29,7 @@ class ProgrammaticEnv(Environment):
def init(self):
self.create_network(generator=mygenerator)
+ assert len(self.G)
self.populate_network(agent_class=MyAgent)
self.add_agent_reporter('times_run')
@@ -39,7 +40,7 @@ simulation = Simulation(
seed='Program',
num_trials=1,
max_time=100,
- dry_run=True,
+ dump=False,
)
if __name__ == "__main__":
diff --git a/examples/pubcrawl/pubcrawl_sim.py b/examples/pubcrawl/pubcrawl_sim.py
index 9e600e7..47dbb1f 100644
--- a/examples/pubcrawl/pubcrawl_sim.py
+++ b/examples/pubcrawl/pubcrawl_sim.py
@@ -14,7 +14,7 @@ class CityPubs(Environment):
pub_capacity: parameters.Integer = 10
def init(self):
- pubs = {}
+ self.pubs = {}
for i in range(self.number_of_pubs):
newpub = {
"name": "The awesome pub #{}".format(i),
@@ -22,10 +22,11 @@ class CityPubs(Environment):
"capacity": self.pub_capacity,
"occupancy": 0,
}
- pubs[newpub["name"]] = newpub
- self.add_agent(agent_class=Police, node_id=0)
- self["pubs"] = pubs
- self.populate_network([{"openness": 0.1}, {"openness": 1}], [self.ratio_extroverted, 1-self.ratio_extroverted], agent_class=Patron)
+ self.pubs[newpub["name"]] = newpub
+ self.add_agent(agent_class=Police)
+ self.populate_network([Patron.w(openness=0.1), Patron.w(openness=1)],
+ [self.ratio_extroverted, 1-self.ratio_extroverted])
+ assert all(["agent" in node and isinstance(node["agent"], Patron) for (_, node) in self.G.nodes(data=True)])
def enter(self, pub_id, *nodes):
"""Agents will try to enter. The pub checks if it is possible"""
@@ -151,10 +152,10 @@ class Patron(FSM, NetworkAgent):
continue
if friend.befriend(self):
self.befriend(friend, force=True)
- self.debug("Hooray! new friend: {}".format(friend.id))
+ self.debug("Hooray! new friend: {}".format(friend.unique_id))
befriended = True
else:
- self.debug("{} does not want to be friends".format(friend.id))
+ self.debug("{} does not want to be friends".format(friend.unique_id))
return befriended
@@ -168,19 +169,20 @@ class Police(FSM):
def patrol(self):
drunksters = list(self.get_agents(drunk=True, state_id=Patron.drunk_in_pub.id))
for drunk in drunksters:
- self.info("Kicking out the trash: {}".format(drunk.id))
+ self.info("Kicking out the trash: {}".format(drunk.unique_id))
drunk.kick_out()
else:
self.info("No trash to take out. Too bad.")
sim = Simulation(
+ model=CityPubs,
name="pubcrawl",
num_trials=3,
max_steps=10,
- dry_run=True,
+ dump=False,
model_params=dict(
- generator=nx.empty_graph,
+ network_generator=nx.empty_graph,
network_params={"n": 30},
model=CityPubs,
altercations=0,
diff --git a/examples/random_delays/random_delays_sim.py b/examples/random_delays/random_delays_sim.py
index d7b0382..b60bc5d 100644
--- a/examples/random_delays/random_delays_sim.py
+++ b/examples/random_delays/random_delays_sim.py
@@ -40,7 +40,7 @@ s = Simulation(
model=RandomEnv,
num_trials=1,
max_time=100,
- dry_run=True,
+ dump=False,
)
diff --git a/examples/terrorism/TerroristNetworkModel_sim.py b/examples/terrorism/TerroristNetworkModel_sim.py
index 149128a..835412c 100644
--- a/examples/terrorism/TerroristNetworkModel_sim.py
+++ b/examples/terrorism/TerroristNetworkModel_sim.py
@@ -5,7 +5,6 @@ from soil.parameters import *
class TerroristEnvironment(Environment):
- generator: function = nx.random_geometric_graph
n: Integer = 100
radius: Float = 0.2
@@ -37,8 +36,11 @@ class TerroristEnvironment(Environment):
TerroristNetworkModel.w(state_id='leader'),
TrainingAreaModel,
HavenModel
- ], [self.ratio_civil, self.ratio_leader, self.ratio_trainig, self.ratio_heaven])
+ ], [self.ratio_civil, self.ratio_leader, self.ratio_training, self.ratio_haven])
+ @staticmethod
+ def generator(*args, **kwargs):
+ return nx.random_geometric_graph(*args, **kwargs)
class TerroristSpreadModel(FSM, Geo):
"""
@@ -50,10 +52,13 @@ class TerroristSpreadModel(FSM, Geo):
min_vulnerability (optional else zero)
max_vulnerability
-
- prob_interaction
"""
+ information_spread_intensity = 0.1
+ terrorist_additional_influence = 0.1
+ min_vulnerability = 0
+ max_vulnerability = 1
+
def init(self):
if self.state_id == self.civilian.id: # Civilian
self.mean_belief = self.model.random.uniform(0.00, 0.5)
@@ -75,7 +80,7 @@ class TerroristSpreadModel(FSM, Geo):
if len(neighbours) > 0:
# Only interact with some of the neighbors
interactions = list(
- n for n in neighbours if self.random.random() <= self.prob_interaction
+ n for n in neighbours if self.random.random() <= self.model.prob_interaction
)
influence = sum(self.degree(i) for i in interactions)
mean_belief = sum(
@@ -121,7 +126,7 @@ class TerroristSpreadModel(FSM, Geo):
)
# Check if there are any leaders in the group
- leaders = list(filter(lambda x: x.state.id == self.leader.id, neighbours))
+ leaders = list(filter(lambda x: x.state_id == self.leader.id, neighbours))
if not leaders:
# Check if this is the potential leader
# Stop once it's found. Otherwise, set self as leader
@@ -132,12 +137,11 @@ class TerroristSpreadModel(FSM, Geo):
def ego_search(self, steps=1, center=False, agent=None, **kwargs):
"""Get a list of nodes in the ego network of *node* of radius *steps*"""
- node = agent.node
+ node = agent.node_id
G = self.subgraph(**kwargs)
return nx.ego_graph(G, node, center=center, radius=steps).nodes()
def degree(self, agent, force=False):
- node = agent.node
if (
force
or (not hasattr(self.model, "_degree"))
@@ -145,10 +149,9 @@ class TerroristSpreadModel(FSM, Geo):
):
self.model._degree = nx.degree_centrality(self.G)
self.model._last_step = self.now
- return self.model._degree[node]
+ return self.model._degree[agent.node_id]
def betweenness(self, agent, force=False):
- node = agent.node
if (
force
or (not hasattr(self.model, "_betweenness"))
@@ -156,7 +159,7 @@ class TerroristSpreadModel(FSM, Geo):
):
self.model._betweenness = nx.betweenness_centrality(self.G)
self.model._last_step = self.now
- return self.model._betweenness[node]
+ return self.model._betweenness[agent.node_id]
class TrainingAreaModel(FSM, Geo):
@@ -169,13 +172,12 @@ class TrainingAreaModel(FSM, Geo):
Requires TerroristSpreadModel.
"""
- def __init__(self, model=None, unique_id=0, state=()):
- super().__init__(model=model, unique_id=unique_id, state=state)
- self.training_influence = model.environment_params["training_influence"]
- if "min_vulnerability" in model.environment_params:
- self.min_vulnerability = model.environment_params["min_vulnerability"]
- else:
- self.min_vulnerability = 0
+ training_influence = 0.1
+ min_vulnerability = 0
+
+ def init(self):
+ self.mean_believe = 1
+ self.vulnerability = 0
@default_state
@state
@@ -199,18 +201,19 @@ class HavenModel(FSM, Geo):
Requires TerroristSpreadModel.
"""
- def __init__(self, model=None, unique_id=0, state=()):
- super().__init__(model=model, unique_id=unique_id, state=state)
- self.haven_influence = model.environment_params["haven_influence"]
- if "min_vulnerability" in model.environment_params:
- self.min_vulnerability = model.environment_params["min_vulnerability"]
- else:
- self.min_vulnerability = 0
- self.max_vulnerability = model.environment_params["max_vulnerability"]
+ min_vulnerability = 0
+ haven_influence = 0.1
+ max_vulnerability = 0.5
+
+ def init(self):
+ self.mean_believe = 0
+ self.vulnerability = 0
def get_occupants(self, **kwargs):
- return self.get_neighbors(agent_class=TerroristSpreadModel, **kwargs)
+ return self.get_neighbors(agent_class=TerroristSpreadModel,
+ **kwargs)
+ @default_state
@state
def civilian(self):
civilians = self.get_occupants(state_id=self.civilian.id)
@@ -246,13 +249,10 @@ class TerroristNetworkModel(TerroristSpreadModel):
weight_link_distance
"""
- def __init__(self, model=None, unique_id=0, state=()):
- super().__init__(model=model, unique_id=unique_id, state=state)
-
- self.vision_range = model.environment_params["vision_range"]
- self.sphere_influence = model.environment_params["sphere_influence"]
- self.weight_social_distance = model.environment_params["weight_social_distance"]
- self.weight_link_distance = model.environment_params["weight_link_distance"]
+ sphere_influence: float
+ vision_range: float
+ weight_social_distance: float
+ weight_link_distance: float
@state
def terrorist(self):
@@ -316,8 +316,8 @@ sim = Simulation(
num_trials=1,
name="TerroristNetworkModel_sim",
max_steps=150,
- skip_test=True,
- dry_run=True,
+ skip_test=False,
+ dump=False,
)
# TODO: integrate visualization
diff --git a/examples/torvalds_sim.py b/examples/torvalds_sim.py
index 90e001c..2ee4f22 100644
--- a/examples/torvalds_sim.py
+++ b/examples/torvalds_sim.py
@@ -1,14 +1,23 @@
-from soil import Environment, Simulation, CounterModel
+from soil import Environment, Simulation, CounterModel, report
+
+
+# Get directory path for current file
+import os, sys, inspect
+currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
class TorvaldsEnv(Environment):
def init(self):
- self.create_network(path='torvalds.edgelist')
+ self.create_network(path=os.path.join(currentdir, 'torvalds.edgelist'))
self.populate_network(CounterModel, skill_level='beginner')
- print("Agentes: ", list(self.network_agents))
- self.find_one(node_id="Torvalds").skill_level = 'God'
- self.find_one(node_id="balkian").skill_level = 'developer'
+ self.agent(node_id="Torvalds").skill_level = 'God'
+ self.agent(node_id="balkian").skill_level = 'developer'
+ self.add_agent_reporter("times")
+ @report
+ def god_developers(self):
+ return self.count_agents(skill_level='God')
+
sim = Simulation(name='torvalds_example',
max_steps=10,
diff --git a/examples/tutorial/soil_tutorial.ipynb b/examples/tutorial/soil_tutorial.ipynb
index 76f8d49..2807ac6 100644
--- a/examples/tutorial/soil_tutorial.ipynb
+++ b/examples/tutorial/soil_tutorial.ipynb
@@ -369,7 +369,7 @@
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -468,7 +468,7 @@
" states={0: {'has_tv': True}},\n",
" default_state={'has_tv': False},\n",
" environment_params=env_params)\n",
- "env = sim.run_simulation(dry_run=True)[0]"
+ "env = sim.run_simulation(dump=False)[0]"
]
},
{
@@ -657,7 +657,7 @@
}
],
"source": [
- "soil.simulation.run_from_config(config, dry_run=True)"
+ "soil.simulation.run_from_config(config, dump=False)"
]
},
{
@@ -3572,7 +3572,7 @@
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -3584,7 +3584,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEXCAYAAABWNASkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA9w0lEQVR4nO3deXxU1dnA8d+TfSEhCQlrAgEFBSGsgntREFwrKuKKqLTYqrW21EprX0HfWm1rxaUtrlSxVFFcX4oVN6q4sSgiq+whIWxJyL7nvH/cO+EmmUkmZDIzSZ7v5zOfuXPvufeeuTPzzJlzzzxXjDEopZTqWEICXQGllFK+p8FdKaU6IA3uSinVAWlwV0qpDkiDu1JKdUAa3JVSqgPS4N6BicgeEZnYTJl5IvLPYKrTcWzzehFZ0cpt1B0HEUkXESMiYb6pYfASkRdE5PcBrsNNIrIqkHXoiDS4+4CInCUin4tIgYjkichnInJqoOvVWRhjFhtjJgW6Hp50pi8LfxKRSBFZKCKFInJARH7ZTPlf2OUK7fUi/VXXQNDg3koiEg8sA54EkoA+wP1ARQu3IyLSrl8PDV6NteUxaS/vmTY8BvOAgUA/4Fzg1yJygYc6TAbmABPs8gOwPqcdVtC/MdqBQQDGmJeNMTXGmDJjzApjzAb75+ZnIvJXu1W/VUQmuFYUkZUi8qCIfAaUAgNE5GQRed/+BbBNRKY5yl8sIt/YLY99IjLPWRERmS4ie0UkV0TubcFziBKRJSJSJCJfi8hwxzbniMhOe9lmEbncscz1/OaLSC4wT0ROEJGP7DocEZHFIpLQYH+n2tvKF5F/iEiUvb1EEVkmIoftZctEJLXB/nbZddktItc75jf7s15EHrePW6GIrBORs5tZ5RYR2S8iOSLyK8d2QhzHJVdEXhWRJHuZq5U+U0QygY+AT+xVj4pIsYic3kQdQ0XkL/ax2y0idzhb/R7eMzeLyBb7uOwSkVsd2xsvIlki8lt7m3tcx80hUUT+ba//lYic4MWxNCJyp72/IyLyZ9cXjYf3RVcRWWS/tntF5HdS/4tJPH1OmjAD+F9jTL4xZgvwLHBTE2WfN8ZsMsbkA//bRNmOwRijt1bcgHggF3gRuBBIdCy7CagGfgGEA1cDBUCSvXwlkAmcAoQBXYF9wM3245HAEWCIXX48MAzrSzkDOAhMsZcNAYqBc4BI4FF73xObqf88oAqYatfxV8BuINxefhXQ297n1UAJ0KvB8/uZXd9o4ETgfLsOKViB7THH/vYAG4E0rF86nwG/t5d1A64EYoA44DXgLXtZLFAInGQ/7gWc4qjHKi9eqxvsfYQBs4EDQJTjOPzTnk4HDPCyvd9hwGHXsQR+DnwJpNrP82ng5QbrLrLXjXbMC/Oijj8BNtvbTgQ+cK5L4/dMOHAxcAIgwA+wgv4ox3um2n4/RNrLSxzH8QWs9+9Ye3uLgVe8qKcBPrZfw77A98CPmnhfLALetl/XdLv8TG8+Jx72n2jXoYdj3lTgOw/lvwWudjxOttfvFugY0maxKdAV6Ag3YLD9Icmy36TvAD3sN+1+QBxlVwPT7emVwAOOZVcDnzbY9tPAXA/7fQyYb0/f5/xQ2oGlEu+C+5eOxyFADnC2h/Lrgcvs6ZuAzGa2PwX4xvF4D/ATx+OLgJ0e1h0B5Duez1Gs4B/doNxNeBHc3Ww/HxjuOA4Ng/vJjrJ/wmr5AWwBJjiW9cL6ggxzrDvAsdw1z5vg/hFwq+PxRBoH9wea2cZbwM/t6fH2ezLWsfxV4H/s6ReA5xq8Hlu9qKcBLnA8vg340N37Agi134tDHPNuBVY6ynv8nHjYf5pdhyjHvPOBPR7K72xQ33B7/fSWvm/ay027ZXzAGLPFGHOTMSYVGIrV0n3MXpxt7HeTba+93GWfY7ofME5EjrpuwPVATwARGSciH9s/bQuwWnnJ9rq9ndsyxpRgtci84VyvFutLqre9zxtFZL2jPkMd+2xYf0Skh4i8IiLZIlII/LNB+Ybr1B0PEYkRkaftn+2FWK3+BBEJtZ/P1fZzzrG7EU728vm56vYru/uiwH4uXd3Urdl6Yr1ObzqOyRagBusL3d26LVHvdfSwnYbH/EIR+VKsrryjWAHa+bzy7ePn0vA9eMAxXQp08bKuno5Pw2XJWMF0b4PyfRyPm/ucNFRs38c75sUDRU2Ub1iWJsq3exrcfcwYsxWrNTTUntVHRMRRpC9WK6VuFcf0PuC/xpgEx62LMean9vJ/Yf0qSDPGdAWewvopDlZrO821IRGJweqC8IZzvRCsLoH9ItIPqx/zDqyfrwlYXSrO59Mwregf7HnDjDHxWF0h0qBMmmPaeTxmAycB4+x1z3FVC8AY854x5nyslvJWu25esfvXfw1Mw+o6S8D66d+wbt7Ucx9wYYPXKcoYk+0obzxMNycH6/i7q0Oj7Yk14uN14BGsLooEYDn1n1eiiMR6eC6t4en41KsjVtdiFdaXorO883g19zmpx1j95jnAcMfs4cAmD6tsclP2oDHG2wZQu6PBvZXEOgE623XiT0TSgGux+mQBugN3iki4iFyF1YWz3MPmlgGDxDoxGm7fThWRwfbyOCDPGFMuImOB6xzrLgUuEWtYZgTwAN6/vqNF5Ar7pN1dWCN9vsTqCjFY/c2IyM0c+9LyJA6rlVQgIn2Au92UuV1EUu2TkPcCSxzrlmGdeEwC5rpWsH8RXGYHqQp7H7VePj/Xtqvt5xImIvdRvyXnzv/YvyZOwToP4qrnU8CD9pcfIpIiIpc1sZ3Ddl0HeFHPV4Gfi0gfsU5E39NM+QisvvTDQLWIXAi4GxZ6v4hE2F9yl2Cdz2itu8U6CZ6GdR5iibtCxpgarOf1oIjE2cftl1i/6lxa8jlxWQT8zq7DycCPsRpWnsrOFJEh9nH9XRNlOwQN7q1XBIwDvhKREqyguBGrFQrwFdZwrSPAg8BUT60FY0wR1gfzGqxWywHgj1gfXrD6NR8QkSKsPvZXHetuAm7Hat3nYPUnZ3n5HN7G6vLIB6YDVxhjqowxm4G/AF9gnbwdhnUCtCn3A6OwWsX/Bt5wU+ZfwApgF1ZfqOtPNI9hnXw7gnUc/+NYJwQrIOwH8rBODP4U771nb+97rJ/85TTfdfJfYAfwIfCIMcb1R6nHsX5BrbBfiy+x3gNuGWNKsV77z+yunNOa2OezWMdmA/ANVoCrxur2cbftIuBOrPdCPtYX/jsNih2wl+3HOmH6E/sXZmu9DazDOg/zb+D5Jsr+DOtE7i5gFdZ7YKFjudefE4e5WO+fvViv1Z+NMf8BEJG+Yo1M6gtgz/8T1kngTHuduW632kFI/W4u5UsichPWCIKzAl0X1T7ZLfGnjDH9mi3sfv3xWCeKU5sp2tLtGmCgMWaHL7erfEdb7koFERGJFpGLRCTM7taaC7wZ6Hqp9keDeycgIu/aP1Eb3n4b6Lr5koic7eF5Fje/tv+IyFMe6uk6QX4/VjfKN1gjce4LQB2D4lh6qoM0/we0Tk+7ZZRSqgPSlrtSSnVAGtyVUqoDCoosfsnJySY9PT3Q1VBKqXZl3bp1R4wxKe6WBUVwT09PZ+3atYGuhlJKtSsistfTMu2WUUqpDkiDu1JKdUAa3JVSqgPyKriLdfWW78RK/brWnpck1hWDttv3ifZ8EZEnRGSHiGwQkVFt+QSUUko11pKW+7nGmBHGmDH24zlYyfkHYiVWmmPPvxArAdBAYBawwFeVVUop5Z3WdMtchnVpOez7KY75i4zlS6yLLfRqxX6UUkq1kLfB3WClN10nIrPseT2MMTn29AGOXYWmD/VTqWZR/4orSiml2pi349zPMsZki0h34H0RqZcL2hhj7BSgXrO/JGYB9O3btyWrHrP6WfjvnyCyC0TEQkScPd3l2L1zOjLOLueaFwdRXSE2BUL03LJSquPwKri7Lh9mjDkkIm9iXSn9oIj0Msbk2N0uh+zi2dS//FYq9S+n5drmM8AzAGPGjDm+7GVJA+CkC6GyBCqLoaIYig9Cxc5j8yq9SGIXGgkJaZDQ13Hrd2w6trsGf6VUu9JscLcvaxZijCmypydhXcLtHWAG8LB9/7a9yjvAHSLyCtbVaQoc3Te+deIE69aU2lqoKrGCfUUxVBbZ98XWvNI8KMiEo5lwdB/kbIDSI/W34S74d7XvE9OhS3eQpi7FqZRS/uVNy70H1pXeXeX/ZYz5j4isAV4VkZlYl6yaZpdfjnX19R1YV1K/2ee1bomQEKs7JjLOuoqmNypLrEB/NBOO7rXv7Zu74B+dBN2HQI8h9v0p0H2wtU+llAqAoMjnPmbMGNOucss4g3/eLji02b5tqd8N1LVv44DfbSCERQSu7kqpDkNE1jmGp9cTFInD2p2IWOh+snVzqq21ungObj4W8A9uhh0fQG21VSYkHJIHWgG/+2DrFtfLusWmQKi+JEqp1tNI4kshIVYffGI6nHzRsfnVlZC73Q76m6z7fV/BxqX115cQK8DH9YQuPa37ulsv6NJDvwSUUl7RCOEPYRFWt0yPU4Crjs0vL4DcHVB04Nit2DW9H/Z/AyWHsf5m4OD8Eojtbp9TcDP0s94wUDfzQkL9eRSUUkBNrWHz/kK+3JXLl7tyuenMdM4e6DYle6tocA+kqK7QZ3TTZWqqrABflOP+S6D4EOTvdowAasH1i8OirS+GmCTrpHBMEkQnWvcx3Rzz7McxSRCVoL8alGqBhsF89Z48isqtbtr+ybEUllW3yX71UxrsQsMhvrd180ZtLVSVHhv3X1nkGAZaDBVFx4aBVhRBRSGU5UNpvnVyuDTXGh5aW+V5H1Fd6wf8el8CSW7mdYPwKN8cD6WCXKNgvjuPogorgA9IjuWSjN6cNiCJ0wZ0o0d8230uNLh3NCEhVrdLZBfvh342ZIz1BVCaB2V5dsDPt6fzjt2X5lp/Gju01ZrX1K+G8Bg70CfW/2KISYauqY7/D6RaX2hKtRPNBvPh/gnmDWlwV42JHPtvQGI/79errqgf/Bt9GTimD2ywvhzKjlLvnIKEQFzvBv8W7qvBXwWV4opq3t98gH9vOMBXu3KDIpg3pMFd+U5YJMT3sm7eqqmCwuz6fxRz3fZ+Bt+9Cqb2WPlGwT/NMZrIHlnUpbt+ASifq6iu4b/bDvP2t/v5cMtByqtq6d01KmiCeUMa3FVghYYfGz7qTrPBP7t+8AdAIDa5wZDSXhDXQ78EVIvU1Bq+3JXLO+v38+7GHArLq0mKjeCq0Wn8cERvRvdNJCQkOFOPaHBXwa3Z4F9tjSaqG0KaA0UHrfti+/7ABquMuy+BhDS4ZUXLfm2oDs0Yw7dZBby9PptlG3I4XFRBbEQok0/pyQ9H9ObME5MJDw3+RIIa3FX7FhrmXVdQoy+BA3BwE6x51vo/gQb3Tm/HoSLeXr+fd77dz97cUiJCQzj35BR+OLwPEwZ3Jyq8ff0vRIO76hzcfQmU5lnBPX934OqlAir7aBn/9+1+3l6/ny05hYQInHFCMrefeyKTT+lJ1+j2222nwV11XtGJENkV8vcEuibKj2prDat2HOHFz/fw0bZDGAMj+yYw99IhXJzRi+5xwXNStDU0uKvOS8Qa6qnBvVMoKq/i9XVZLPpiL7uOlJDcJYI7zj2Rq0an0bdbTKCr53Ma3FXnlpgOh7c2W0y1XzsOFbPoiz28vi6LksoaRqQlMP/q4Vw0rBeRYe2rH70lNLirzi0xHb5/z0rboJdS7DBqag0fbT3Eoi/28On2I0SEhnBJRi9mnJHO8LSEQFfPLzS4q84tMR1qKqxRNN7m71FB62hpJa+u3cdLX+5lX14ZPeOj+NWkQVwzti/JXSIDXT2/0uCuOjfX+Pm83Rrc27HN+wtZ9MUe3lqfTXlVLWP7J/GbCwdz/pAe7WJMelvQ4K46t6T+1n3+Hkg/M6BVUS1TVVPLik0HefHzPazek0dUeAiXj+zD9NPSGdI7PtDVCzgN7qpz65pm5avRETPtxpHiCl7+KpPFX2VyoLCc1MRofnvRyUwbk0ZCjF6f2EWDu+rcQsOtTJMa3IPe+n1HefHzPfx7Qw6VNbWcPTCZ/50ylPNO7k5okOZ3CSQN7kolpmtwD1IV1TUs/y6HFz7fy7f7jhIbEcq1Y9OYfno6J3bvEujqBTUN7kolpsO2/wS6FsrhQEE5i7/ay8urMzlSXMmA5FjmXTqEK0enEhfVflMC+JMGd6US06HkkHUpwkhtDQaKMYY1e/J58Ys9vLfxADXGcN5J3ZlxRjpnnZgctKl1g5UGd6US7REzR/dCj1MCW5dOqLyqhrfXZ/PC53vZklNIfFQYN5+Zzg2n9aNft9hAV6/d0uCulGuse/4eDe5+dLCwnIWf7WbJmn0cLa3ipB5x/OHyYUwZ2ZuYCA1NraVHUClncFdtbs+REp7+ZCevr8umuraWyaf0ZMYZ6Yzrn4SIdr34igZ3pTT1r19sySlkwcqdLNuwn7DQEK4ak8qt55zQITMyBgMN7kpp6t82tW5vHn/7eCcfbT1EbEQoPz57ADPP6k/3ILqYdEekwV0psLpmDm0JdC06DGMMn2w/wt8+3sHq3XkkxoTzy/MHMeP0dLrG6FBGf9DgrhRYOWa+/4+m/m2lmlrDe5sO8PeVO9iYXUjP+Cj+55IhXDs2TU+S+pnXR1tEQoG1QLYx5hIR6Q+8AnQD1gHTjTGVIhIJLAJGA7nA1caYPT6vuVK+lJgONZVQlANd+wS6Nu1OZXUtb63P5qmVO9l1pIT0bjH88cphTBnZp0NfECOYteSr9OfAFsCVbu2PwHxjzCsi8hQwE1hg3+cbY04UkWvsclf7sM5K+Z5zxIwGd6+VVdbwyppMnv1kF/sLyhncK56/XjeSC4f20nwvAebV708RSQUuBp6zHwtwHrDULvIiMMWevsx+jL18guj4JhXsdDhkixhjWLoui7P++BH3/99m+iRG84+bT2X5nWdxSUZvDexBwNuW+2PAr4E4+3E34Kgxptp+nAW4mjt9gH0AxphqESmwyx/xRYWVahOa+tdrOw8Xc++b3/HlrjxG90tkwQ2jGds/KdDVUg00G9xF5BLgkDFmnYiM99WORWQWMAugb9++vtqsUsenLvXv7kDXJGiVV9WwYOVOFqzcSVR4CA9dMYyrx6Rpzpcg5U3L/UzghyJyERCF1ef+OJAgImF26z0VyLbLZwNpQJaIhAFdsU6s1mOMeQZ4BmDMmDGmtU9EqVZL7K8tdw8+33mE3725kV1HSrhsRG9+d/EQUuI61zVJ25tm+9yNMb8xxqQaY9KBa4CPjDHXAx8DU+1iM4C37el37MfYyz8yxmjwVsFP87o3kldSyexXv+W6Z7+iutaw6JaxPH7NSA3s7UBrBp7eA7wiIr8HvgGet+c/D7wkIjuAPKwvBKWCX2I6lBzW1L9YJ0xfW5fFH5Zvobi8mtvPPYGfnTeQqHAd1thetCi4G2NWAivt6V3AWDdlyoGrfFA3pfzLNWKmk6f+3XHIOmH61e48xvRL5A9XDGNQj7jmV1RBRf8yppRLJ0/9W15Vw99X7mTByh1Eh4fy8BXDmKYnTNstDe5KubiCe17nGzHz+Y4j3PvWRnYfKWHKiN7cqydM2z0N7kq5xCRBVOdK/ZtbXMGDy7fwxtfZ9OsWw0szx3L2wJRAV0v5gAZ3pZw6yYiZ3UdKeGV1Jq+s2UdpZTU/O+9Ebj/3RD1h2oFocFfKKTEdDm4OdC3aREV1DSs2HeTl1Zl8vjOX0BDh/ME9mD1pEAP1hGmHo8FdKafEdNj2bodK/etqpb+2Lou8kkpSE6O5e/JJXDU6VS+Y0YFpcFfKqS71734rHUE75Wql/+urTL7YdayVfu24vpx9YrKOgOkENLgr5VQv9W/7C+67j5Tw8upMltqt9LQkbaV3VhrclXJK7G/d5++B9LMCWhVvVVTX8N6mg7xst9LDQoSJg3tw3bi+nKWt9E5Lg7tSTl1TQULbxYiZAwXl/OOz3XV96dpKV04a3JVyqkv9uyfQNfHoQEE5T/13J/9anUlNrWHSkB5cO1Zb6ao+De5KNRSkY90PFJSzYOUOXl6zj9paw9TRqdx+7omkJcUEumoqCGlwV6qhxHTY+u9A16JOXVBfvY9aY7hqTCq3jdegrpqmwV2phhLTofQIVBRBZOD+3KNBXbWGBnelGkpyjZjZCz2H+n33GtSVL2hwV6oh51h3Pwb3nIIyFqzcySsa1JUPaHBXqiFncPeDxkE9jdvGn6BBXbWKBnelGopO9GnqX2MMZVU15JVUcrS0ivzSSvJLq8gvqWTrgSJeX5elQV35nAZ3pdxJTIf8pi/aUVtr+GJXLgcKyu2AbQXto6WVjQJ5ZXWt222EhwpTR2tQV76nwV0pdxLT4eCmJot8uTuX65/7qu5xaIiQGBNOQkwEiTHhpCXFkJHalcTYCBLtedayCJJiremE6HDCQjtG9kkVXDS4K+VOYn879W8NhLi/gMXOwyUAvHnbGQxI6UJ8VBgi+g9RFRy0yaCUO3Wpf3M8FsnMLSEyLIThqQl0jQ7XwK6CigZ3pdzxYsRMZl4paUkxms9FBSUN7kq541VwL6OvngRVQUqDu1LuuFL/5rkfMWOMYV9eqQZ3FbQ0uCvlTjOpf/NLqyiuqNbgroKWBnelPEnq7zG4Z+aVAmhwV0FLg7tSnjSR131vrjUMsm83De4qOGlwV8oTZ+rfBvbZLfe0RA3uKjhpcFfKk7oRM3sbLcrMKyUlLpLoCPd/cFIq0DS4K+VJXXBvPGImM6+UftrfroJYs+kHRCQK+ASItMsvNcbMFZH+wCtAN2AdMN0YUykikcAiYDSQC1xtjNnTRvVXqu00MdZ9X14Z4/on+bU6/lZVVUVWVhbl5eWBrkqnFxUVRWpqKuHh4V6v401umQrgPGNMsYiEA6tE5F3gl8B8Y8wrIvIUMBNYYN/nG2NOFJFrgD8CV7f0ySgVcNGJEJXQKLhXVteyv6Csw2dxzMrKIi4ujvT0dE2tEEDGGHJzc8nKyqJ///5er9dst4yxFNsPw+2bAc4DltrzXwSm2NOX2Y+xl08QfWeo9srNiJms/FKM6fjDIMvLy+nWrZsG9gATEbp169biX1Be9bmLSKiIrAcOAe8DO4Gjxphqu0gW0Mee7gPsA7CXF2B13SjV/rgJ7nVj3DvBMEgN7MHheF4Hr4K7MabGGDMCSAXGAie3eE8NiMgsEVkrImsPHz7c2s0p1TYS0+FoppX617ZP/8DUaiLC7Nmz6x4/8sgjzJs3r033mZ6ezpVXXln3eOnSpdx0001tus9AatFoGWPMUeBj4HQgQURcffapQLY9nQ2kAdjLu2KdWG24rWeMMWOMMWNSUlKOr/ZKtTVX6t/C/XWzMvNKiQwLoXtcZODq1c5FRkbyxhtvcOTIEb/ud926dWzevNmv+wyUZoO7iKSISII9HQ2cD2zBCvJT7WIzgLft6Xfsx9jLPzLGGB/WWSn/cTNiJtNOGKZdFscvLCyMWbNmMX/+/EbL9uzZw3nnnUdGRgYTJkwgMzMTgJtuuok777yTM844gwEDBrB06dK6df785z9z6qmnkpGRwdy5cz3ud/bs2Tz44ION5ufl5TFlyhQyMjI47bTT2LBhAwDz5s3jlltuYfz48QwYMIAnnniibp1//vOfjB07lhEjRnDrrbdSU1PTaLuB5E3LvRfwsYhsANYA7xtjlgH3AL8UkR1YferP2+WfB7rZ838JzPF9tZXykyR7dEK94K6pfn3h9ttvZ/HixRQUFNSb/7Of/YwZM2awYcMGrr/+eu688866ZTk5OaxatYply5YxZ44VWlasWMH27dtZvXo169evZ926dXzyySdu9zlt2jS+/vprduzYUW/+3LlzGTlyJBs2bOAPf/gDN954Y92yrVu38t5777F69Wruv/9+qqqq2LJlC0uWLOGzzz5j/fr1hIaGsnjxYl8dGp9odiikMWYDMNLN/F1Y/e8N55cDV/mkdkoFWryd+tcO7sYYMnNLOvwYd3+Ij4/nxhtv5IknniA6Orpu/hdffMEbb7wBwPTp0/n1r39dt2zKlCmEhIQwZMgQDh48CFjBfcWKFYwcaYWp4uJitm/fzjnnnNNon6Ghodx999089NBDXHjhhXXzV61axeuvvw7AeeedR25uLoWFhQBcfPHFREZGEhkZSffu3Tl48CAffvgh69at49RTTwWgrKyM7t27+/LwtJpeQ1WppoSGQUJaXXDPK6mkpLJGW+4+ctdddzFq1Chuvvlmr8pHRh47z+Hq7TXG8Jvf/IZbb73Vq21Mnz6dhx56iKFDh7Z4n6GhoVRXV2OMYcaMGTz00ENebSMQNP2AUs1xDIfUVL++lZSUxLRp03j++efr5p1xxhm88sorACxevJizzz67yW1MnjyZhQsXUlxs/R0nOzubQ4cOATBhwgSys7PrlQ8PD+cXv/hFvf7+s88+u65bZeXKlSQnJxMfH+9xnxMmTGDp0qV1+8nLy2Pv3sY5iAJJg7tSzUlMr8sv4wru/TrBGHd/mT17dr1RM08++ST/+Mc/yMjI4KWXXuLxxx9vcv1JkyZx3XXXcfrppzNs2DCmTp1KUVERtbW17Nixg6Skxl1oM2fOpLq6uu7xvHnzWLduHRkZGcyZM4cXX3yx0TpOQ4YM4fe//z2TJk0iIyOD888/n5wczxdTDwQJhoEsY8aMMWvXrg10NZRyb9V8+GAezNnHXz8/yCMrvmfLAxd0+IyQW7ZsYfDgwYGuxnHbuHEjCxcu5NFHHw10VXzC3eshIuuMMWPcldc+d6Wa4xoOeXQvmXm1dNdUv+3C0KFDO0xgPx7aLaNUcxKPDYfcm6sXxVbtgwZ3pZrj+CPTvjwN7qp90OCuVHOiEyAqgZrc3eQUlnf4VL+qY9DgrpQ3EtOpOLwTY3SkjGofNLgr5Q3HWHftllHtgQZ3pbyRmE5kcRYh1Gpw96OysjJ+8IMfUFNTw/79+5k6darbcuPHj6e54dT33XcfH3zwQZNlKioqmDhxIiNGjGDJkiUtquuePXv417/+1aJ1wEqI5kqCds0117B9+/YWb8MdDe5KeSOpP6Gmmr5hR0nRVL9+s3DhQq644gpCQ0Pp3bt3vUyQLfXAAw8wceLEJst88803AKxfv56rr27Z1UGPN7g7/fSnP+VPf/pTq7bhosFdKW/YI2ZGxxdoql8/Wrx4MZdddhlgBU9XPpiysjKuueYaBg8ezOWXX05ZWVmz23K2kNPT05k7dy6jRo1i2LBhbN26lUOHDnHDDTewZs0aRowYwc6dO1m3bh0/+MEPGD16NJMnT677F+qOHTuYOHEiw4cPZ9SoUezcuZM5c+bw6aefMmLECObPn09NTQ133313XSrip59+GrBy4dxxxx2cdNJJTJw4sS6FAVhpED744IN6/549XvonJqW8YQf3odF5ga1HgNz/f5vYvL/Qp9sc0jueuZee4nF5ZWUlu3btIj09vdGyBQsWEBMTw5YtW9iwYQOjRo1q8f6Tk5P5+uuv+fvf/84jjzzCc889x3PPPccjjzzCsmXLqKqqYvr06bz99tukpKSwZMkS7r33XhYuXMj111/PnDlzuPzyyykvL6e2tpaHH364bl2AZ555hq5du7JmzRoqKio488wzmTRpEt988w3btm1j8+bNHDx4kCFDhnDLLbcAEBISwoknnsi3337L6NGjW/ycnDS4K+UFE9+HGhPCieF6SUh/OXLkCAkJCW6XffLJJ3V53jMyMsjIyGjx9q+44goARo8eXZdi2Gnbtm1s3LiR888/H4Camhp69epFUVER2dnZXH755QBERUW53f6KFSvYsGFD3a+FgoICtm/fzieffMK1115b19V03nnn1Vuve/fu7N+/X4O7Uv6QV1ZLsUmmjznUfOEOqKkWdluJjo6mvLy8zbbvSuXrSuPbkDGGU045hS+++KLe/KKiIq+2b4zhySefZPLkyfXmL1++vMn1ysvL6+W3P17a566UFzLzSsk03elWtb/5wsonEhMTqampcRvgzznnnLqTlxs3bqy7LB7AjTfeyOrVq1u9/5NOOonDhw/XBfeqqio2bdpEXFwcqampvPXWW4A1wqa0tJS4uLh6gX/y5MksWLCAqqoqAL7//ntKSko455xzWLJkCTU1NeTk5PDxxx/X2+/333/vda75pmhwV8oLVnDvQWxpVqCr0qlMmjSJVatWNZr/05/+lOLiYgYPHsx9991Xrwtjw4YN9O7du9X7joiIYOnSpdxzzz0MHz6cESNG8PnnnwPw0ksv8cQTT5CRkcEZZ5zBgQMHyMjIIDQ0lOHDhzN//nx+9KMfMWTIEEaNGsXQoUO59dZbqa6u5vLLL2fgwIEMGTKEG2+8kdNPP71unwcPHiQ6OpqePXu2uv6a8lcpLzz54XaKP/oLvwl/GebsgyjPF3LoKIIh5e/XX3/N/Pnzeemll7wqX1hYyMyZM3nttdfauGZtY/78+cTHxzNz5sxGy1qa8ldb7kp5ITOvlIKoPtaDo8F1xZ2ObNSoUZx77rnU1NR4VT4+Pr7dBnaAhIQEZsyY4ZNtaXBXyguZeaXUJvSzHuTtDmxlOplbbrmF0NDOkT//5ptvJizMN+NcNLgr5YV9eaWEJR/L665UsNPgrlQzKqpryCksp3tKD4hK0OCu2gUN7ko1Izu/DGPsbJBJ/TW4q3ZBg7tSzdibVwrYwd2R+lepYKbBXalm7GsY3I9mQq13ozdU6/gy5a8vPfbYY5SWlrZ4vbZK7+uOBnelmpGZW0pUeIiV6jcxHWqroDA70NXqFHyZ8teXmgru3g7b9GV6X3c0uCvVjEz7otgiUu9i2art+TLl7/jx47nnnnsYO3YsgwYN4tNPPwXwmJp35cqVXHLJJXXr33HHHbzwwgs88cQT7N+/n3PPPZdzzz0XgC5dujB79myGDx/OF198wQMPPMCpp57K0KFDmTVrFu7+LOrL9L7uaOIwpZrhCu5A/eDe/5xAVcn/3p0DB77z7TZ7DoMLH/a4uC1S/lZXV7N69WqWL1/O/fffzwcffMDzzz/vNjWvJ3feeSePPvooH3/8McnJyQCUlJQwbtw4/vKXvwAwZMgQ7rvvPgCmT5/OsmXLuPTSS+ttx5fpfd3RlrtSTTDGsC+vlDRXcI9PhZAwbbn7QXMpf2+44QagZSl/nWl+9+zZA1ipeRctWsSIESMYN24cubm5Le4LDw0N5corr6x7/PHHHzNu3DiGDRvGRx99xKZNm9yu50rv2xa05a5UE3JLKimprDnWcg8Ng65pnS+4N9HCbittkfLXXZpfT6l5V61aRW1tbd3jpuoSFRVV9y/a8vJybrvtNtauXUtaWhrz5s3zuK6v0vu602zLXUTSRORjEdksIptE5Of2/CQReV9Ettv3ifZ8EZEnRGSHiGwQkZZfIkWpIJHpHCnjosMh/cJfKX89pebt168fmzdvpqKigqNHj/Lhhx/WrdMwva+Tq77JyckUFxc3eRLYV+l93fGmW6YamG2MGQKcBtwuIkOAOcCHxpiBwIf2Y4ALgYH2bRawwOe1VspPXMMg+3VrENw1v4xf+CPlr6fUvGlpaUybNo2hQ4cybdo0Ro4cWbfOrFmzuOCCC+pOqDolJCTw4x//mKFDhzJ58mROPfVUt/v1ZXpft4wxLboBbwPnA9uAXva8XsA2e/pp4FpH+bpynm6jR482SgWjJz743vS7Z5kpq6w+NvPT+cbMjTem7GjA6uUPmzdvDnQVzLp168wNN9zgdfmCggIzderUNqyR7zz66KPmueee87q8u9cDWGs8xNUWnVAVkXRgJPAV0MMYk2MvOgD0sKf7APscq2XZ85RqdzLzSukRH0lUuCMrYd2IGU3929Y6cspfX6b3dcfr4C4iXYDXgbuMMfUug25/g7Toqh8iMktE1orI2sOH9aLDKjjVGwbpkqTZIf2po6b89WV6X3e8Cu4iEo4V2BcbY1yXCT8oIr3s5b0A15WDs4E0x+qp9rx6jDHPGGPGGGPGpKSkHG/9lWpTmc5hkC76RybVDngzWkaA54EtxphHHYveAVy/KWZg9cW75t9oj5o5DShwdN8o1W6UV9VwoLC8ccs9qitEJ3aK4G6C4DKc6vheB29+E5wJTAe+E5H19rzfAg8Dr4rITGAvMM1ethy4CNgBlAI3t7hWSgWB7KNWqt96I2VcEtMhv2OPmImKiiI3N5du3bpZqRdUQBhjyM3NJSoqqkXrNRvcjTGrAE+v7AQ35Q1we4tqoVQQcjvG3SUxHXK+9W+F/Cw1NZWsrCz0nFjgRUVFkZqa2qJ19B+qSnngGuPeqM8drOC+5f+s1L8hHe9kH0B4eDj9+/cPdDXUcdLcMkp5UJfqt0tk44WJ/aG2WlP/qqClwV0pD/Y6U/02pCNmVJDT4K6UB/vcjXF30eCugpwGd6XcMMbYf2CKdV8gvo+V+ldzzKggpcFdKTdySyoprayhb5KHdKydNfWvajc0uCvlRt0wSHdj3F009a8KYhrclXJjX1Nj3F2S+mtwV0FLg7tSbuzNtYJ7amIzLfeyPCgv8E+llGoB/ROTUm64TfXbkGvEzD8ugi49ICYJopMgpps9nWjdx3Sz5ydBeAzoX/mVH2hwV8qNzLxS+nkaKePS/wcw6kYozIHSXMjbCaX5UNFESz400hHwEyGup7WN9LM16Cuf0uCulBv78ko544TkpgtFJ8APn2w8v6YKyvKhNM/qtqm7z3VM51uPd34M370G/c6E8XM0yCuf0eCuVAMeU/16KzQcunS3bs2pKoevF8GqR+HFSzXIK5/RE6pKNeBK9du3m4cx7r4UHgXjZsGd6+HCP0PeLivIv3Ax7P4ENJ+6Ok4a3JVqIDPXi2GQvuYpyP/jItj1Xw3yqsU0uCvVQGZTqX7bmjPIX/SINY5+0Q81yKsW0+CuVAOZeaVEh4e6T/XrL+FRMPbHcOc3GuTVcdHgrlQDmU2l+vU3DfLqOGlwV6qBfXmlgemSaYrHIH8hbHoLqisDXUMVZDS4K+VwLNVvkAV3l4ZBviALXpsB84fAB/OsE7FKocFdqXqOFDeT6jdYuIL8z7+F65dC6lj47Al4YiQsukxb80r/xKSUk1epfoNJSCgMPN+6Fe6HbxbD1y9arfnYFBhxPYyeAUkDAl1T5WfaclfK4Viq32byygSj+N7wg7uPtebTxsHnTzpa829qa74T0Za7Ug6ulntqYpB3yzTFY2v+pmOt+VE3QrcTAl1T1Ya05a6UQ2ZeKT3jo5pO9dueeGrNPzkKXvyh1ZqvrQl0LVUb0Ja7Ug5BPVKmNeq15nPgm38ea833HgWXPg69MgJdS+VD2nJXyiEzNwjHuPtafK9jrfkrnoWCffDMeHjvXqgoDnTtlI9ocFfK1upUv+1NSChkTIM71sCo6fDFX+Hvp8G2/wS6ZsoHNLgrZcvKLwOgX3sZBukr0YlWt8wt70FEF3j5algy3ToZq9otDe5K2fYFMhtkMOh7Gtz6CUy4D7avgL+Oha+e1hOu7ZQGd6VsdX9g6qzBHSAsAs6eDbd9AWmnwru/hucmQM63ga6ZaqFmg7uILBSRQyKy0TEvSUTeF5Ht9n2iPV9E5AkR2SEiG0RkVFtWXilfcqX6Te4SEeiqBF7SALjhDbjyeSjI1hOu7ZA3LfcXgAsazJsDfGiMGQh8aD8GuBAYaN9mAQt8U02l2t7e3CBK9RsMRGDYVLhjNYyaYZ1w/ds42PZuoGumvNBscDfGfALkNZh9GfCiPf0iMMUxf5GxfAkkiEgvH9VVqTYVlKl+g0F0Ilz6mHXCNTIOXr4GXrneatGroHW8fe49jDE59vQBoIc93QfY5yiXZc9TKqi5Uv12upEyLVF3wnUu7PgA/jYWvnwKaqoCXTPlRqtPqBpjDNDiy8GIyCwRWSsiaw8fPtzaaijVKkeKKymrquncJ1O9ERYBZ/8SbvvSSmXwn3vgiVGw+lmoKgt07ZTD8Qb3g67uFvv+kD0/G0hzlEu15zVijHnGGDPGGDMmJSXlOKuhlG/oSJkWSuoPN7wO170KcT1h+a/gsWHw6aNQXhDo2imOP7i/A8ywp2cAbzvm32iPmjkNKHB03ygVtDr9GPfjIQKDJsPMFXDTv6FnBnx4P8wfBh8+AMX6izyQmk0cJiIvA+OBZBHJAuYCDwOvishMYC8wzS6+HLgI2AGUAje3QZ2V8rkOkeo3UEQg/Szrtv8bWDXfasF/8XcrtfAZP4OEtOa3o3yq2eBujLnWw6IJbsoa4PbWVkopf9ub28FS/QZK75EwbREc/h4+exzWPm/dMq6GM++ClEGBrmGnof9QVQqrW6bdXFqvPUgZBFP+Bneuh1N/BBvfsEbXLJlute5Vm9PgrhQdOI97oCWkwYV/hF9stNIa7Pqv9W/Xly6HPavAtHignfKSBnfV6XW6VL+BEJsME/7HCvIT58GB7+CFi2HhZNj0FtRUB7qGHY4Gd9XpuVL9anD3g6h4OOsXcNd3cNEjUHQAXpsBj2fAJ3+GkiOBrmGHocFddXo6DDIAwqNh7I/hzm/gmpcheRB89Ht4dDC8+RPI/jrQNWz39BqqqtPbm1sCaMs9IEJC4eSLrNvh72H1M/Dty9atzxgYdysMmWL9M1a1iLbcVaeXmVdGTISm+g24lEFw8SPwyy1w4Z+g/Ci88WOYfwp8/Afrwt7KaxrcVafnGimjqX6DRFS81WK/fY2V4qDPKPjvn+CxofDazZD5pY6y8YJ2y6hOT8e4B6mQEDhxonXL2wVrnodvXoJNb0DPYTD2VivffLj+q9gdbbmrTs2V6lf724Nc0gCY/KDVZXPJY9Z1Xd+5Ax4dAu/fB0czA13DoKPBXXVqmuq3nYmIhTE3w08/t5KVpZ8Fn/8VHh9uXUBk13+1y8am3TKqU8vM05Ey7ZIzWVlBltVl8/WLsHUZpJxsDbPMuAYiuwS6pgGjLXfVqdXlcdc+9/araypMnAu/2AxTFkBYFPx7ttVl85/fQO7OQNcwIDS4q04tM7cMEeiToCfl2r3wKBhxHcxaCTPfh0GTrCtEPTkK/jkVtr8PtbWBrqXfaHBXnVpmnqb67XBEIG0sXPmclctm/G/gwAZYPBX+OtrKM98JrhalwV11avvySjXtQEcW1xPGz4G7NsKVz0NsCrz3G/jLYFj2Czi0JdA1bDN6QlV1apl5pZw1MDnQ1VBtLSzCGhM/bCrsX29113yzGNYuhD6jYehUGHqF9WXQQWjLXXVamuq3k+o9wrqQyC+3wPn/CzVVVmv+0cHw4qXw9SIoyw90LVtNg7vqdIwxFJVXsXp3HgD9dKRM5xTbDc68E37yqZXq4Jy7rWGV7/wMHhkEL19nXUGqsjTQNT0u2i2jOgxjDEUV1RwqrOBQYTmHiio4WFjOwcIKDhWVW/OLrMdlVTV1652Q0nnHQitbyiA497fWydf9X8N3r8PG12HbvyGiC5x8sdV1c8K5EBoe6Np6RUwQ/JtrzJgxZu3atYGuhgpyZZU1ZB8tZV9+GVn5ZWTll5KdX+YxaLvERITSIz6KlLhIesRH0T0ukh7x1nTfpBhGpCVo0jDVWG0N7P0MvnsNNr9tjbCJToJTpsCwqyDtNCv/TQCJyDpjzBi3yzS4q2DhLnhn2dPZ+aUcKa6sVz4iNIReCVH0iI9qFLSdgbxLZJgGb9U61RWw40PYuBS2LofqMohPhaGXw8BJkHpqQBKYaXBXAWGMobiimvySKvJLK8kvreRoqWu6ivySSvJKKsk66jl490mMJrXuFlNvOqVLJCEhGrSVn1UUw7bl8N1S2Pkh1FZDaIQV4F0pEfwU7DW4q1arqTUctYPyUUdwzq83r9IRyKsoKKukqsb9+0sEukaHkxQT4QjgGrxVO1NeYOWX3/Mp7FkFOd+CqfVbsNfgrgCorTWUVFZTUlFj31dTXF5tBerSSo6WVpJX4gjUdtDOK6mksNzz1enDQ4WEmAgSY8JJjImwbrHhHuclxUQQHx1OqAZu1dH4OdhrcO8gjDEUllfXGwmSW1xJUYUVqEsqqimprLGCtpt5pZWNTzY2FBsRagXlWEdQjnEE6tiI+kE7NoLYiFDt01bKnaaCfZ8xVqA/5XLoMeS4Nt9UcNehkEHAXdB2N3zvYGE5FdXuEx/FRoQSExlGl8gwYiNDiY0Io2d8lD3PehxrL4+JDLXKRYTRJSqMhBire6RrTDiRYZpjRSmfieoKgyZbN2gc7D99BBL7HXdwb4oGdz+qqK5h56ESth0sZOuBIr4/UMTOwyUeg3aXyDC6x0XSPT6SkX0T7NEgx0aC9IiPIrlLBLERYdo3rVR74C7YS9s0qDS4t4HaWkNWfhlbDxSy7UARWw8Wse1AEbuPlFBTa3WDhYcKJ6R0ISO1K7269mgUtLvHRRIbqS+PUh1aVNc227RGj1YwxpBbUsn3B4rYeqCoLpBvP1hUr387LSmak3rEc8EpPRnUM46Te8bRPzmW8FDN/qCUahsa3JtgjKGgrKrRH2qc08UVx0aRdIuN4KSecUwbk8bJPeM4qWccg3rEaQtcKeV3bRJ1ROQC4HEgFHjOGPNwW+yntWprDUfLqsh2/ZX9aNPBG6x+cNc47NMGdCMtKYaTeliBPCUuMkDPRCml6vN5cBeRUOBvwPlAFrBGRN4xxmz29b5yCsrYfbikyeF/xQ0eW/OsaXd5SBoGb+efa9ISY4iP1r+yK6WCX1u03McCO4wxuwBE5BXgMsDnwf3t9ft5+N2tbpd5OzQwPjqcPgnRGryVUh1KWwT3PsA+x+MsYFwb7IeLh/VieGpC/bHbkWHEhIfq0EClVKcWsDN9IjILmAXQt2/f49pGWlKMXv9SKaXcaIuxeNlAmuNxqj2vHmPMM8aYMcaYMSkpKW1QDaWU6rzaIrivAQaKSH8RiQCuAd5pg/0opZTywOfdMsaYahG5A3gPayjkQmPMJl/vRymllGdt0udujFkOLG+LbSullGqe/v9dKaU6IA3uSinVAWlwV0qpDigorsQkIoeBvce5ejJwxIfV8TWtX+to/Vov2Ouo9Tt+/YwxbseSB0Vwbw0RWevpMlPBQOvXOlq/1gv2Omr92oZ2yyilVAekwV0ppTqgjhDcnwl0BZqh9WsdrV/rBXsdtX5toN33uSullGqsI7TclVJKNaDBXSmlOqB2E9xF5AIR2SYiO0RkjpvlkSKyxF7+lYik+7FuaSLysYhsFpFNIvJzN2XGi0iBiKy3b/f5q372/veIyHf2vte6WS4i8oR9/DaIyCg/1u0kx3FZLyKFInJXgzJ+P34islBEDonIRse8JBF5X0S22/eJHtadYZfZLiIz/FS3P4vIVvv1e1NEEjys2+R7oY3rOE9Esh2v40Ue1m3y896G9VviqNseEVnvYV2/HMNWMcYE/Q0ru+ROYAAQAXwLDGlQ5jbgKXv6GmCJH+vXCxhlT8cB37up33hgWQCP4R4guYnlFwHvAgKcBnwVwNf6ANafMwJ6/IBzgFHARse8PwFz7Ok5wB/drJcE7LLvE+3pRD/UbRIQZk//0V3dvHkvtHEd5wG/8uI90OTnva3q12D5X4D7AnkMW3NrLy33uuuyGmMqAdd1WZ0uA160p5cCE8RPF0M1xuQYY762p4uALViXG2xPLgMWGcuXQIKI9ApAPSYAO40xx/uPZZ8xxnwC5DWY7XyfvQhMcbPqZOB9Y0yeMSYfeB+4oK3rZoxZYYypth9+iXWhnIDxcPy84c3nvdWaqp8dO6YBL/t6v/7SXoK7u+uyNgyedWXsN3gB0M0vtXOwu4NGAl+5WXy6iHwrIu+KyCn+rRkGWCEi6+xLHDbkzTH2h2vw/IEK5PFz6WGMybGnDwA93JQJhmN5C9YvMXeaey+0tTvsrqOFHrq1guH4nQ0cNMZs97A80MewWe0luLcLItIFeB24yxhT2GDx11hdDcOBJ4G3/Fy9s4wxo4ALgdtF5Bw/779Z9pW7fgi85mZxoI9fI8b6fR50Y4lF5F6gGljsoUgg3wsLgBOAEUAOVtdHMLqWplvtQf95ai/B3ZvrstaVEZEwoCuQ65faWfsMxwrsi40xbzRcbowpNMYU29PLgXARSfZX/Ywx2fb9IeBNrJ++Tl5d+7aNXQh8bYw52HBBoI+fw0FXd5V9f8hNmYAdSxG5CbgEuN7+8mnEi/dCmzHGHDTG1BhjaoFnPew7oO9FO35cASzxVCaQx9Bb7SW4e3Nd1ncA16iEqcBHnt7cvmb3zz0PbDHGPOqhTE/XOQARGYt17P3y5SMisSIS55rGOvG2sUGxd4Ab7VEzpwEFju4Hf/HYWgrk8WvA+T6bAbztpsx7wCQRSbS7HSbZ89qUiFwA/Br4oTGm1EMZb94LbVlH53mcyz3sO9DXYZ4IbDXGZLlbGOhj6LVAn9H19oY1muN7rLPo99rzHsB6IwNEYf2c3wGsBgb4sW5nYf083wCst28XAT8BfmKXuQPYhHXm/0vgDD/Wb4C932/tOriOn7N+AvzNPr7fAWP8/PrGYgXrro55AT1+WF80OUAVVr/vTKzzOB8C24EPgCS77BjgOce6t9jvxR3AzX6q2w6svmrXe9A1eqw3sLyp94Ifj99L9vtrA1bA7tWwjvbjRp93f9TPnv+C633nKBuQY9iam6YfUEqpDqi9dMsopZRqAQ3uSinVAWlwV0qpDkiDu1JKdUAa3FWnICIJInLbcaz327aoj1JtTUfLqE7BTguxzBgztIXrFRtjurRNrZRqO9pyV53Fw8AJdorWPzdcKCK9ROQTe/lGETlbRB4Gou15i+1yN4jIanve0yISas8vFpH5YqV8/lBEUvz79JSqT1vuqlNoruUuIrOBKGPMg3bAjjHGFDlb7iIyGCvl7xXGmCoR+TvwpTFmkYgY4AZjzGKxcs13N8bc4Zcnp5QbYYGugFJBYg2w0M4R9JYxZr2bMhOA0cAaOxNCNMdyy9RyLBfJP4FG+YWU8iftllGKutze52AlqHpBRG50U0yAF40xI+zbScaYeZ422UZVVcorGtxVZ1GEdZUst0SkH1b+7meB57Cu0ANQZbfmwcopM1VEutvrJNnrgfVZmmpPXwes8nH9lWoRDe6qUzDG5AKf2SdLG51QxbqM37ci8g1wNfC4Pf8ZYIOILDbGbAZ+h3WRhg1YV1hyZTksAcaKdT3O87CS2ikVMHpCVSkf0CGTKthoy10ppTogbbmrTkVEhmHlFHeqMMaMC0R9lGorGtyVUqoD0m4ZpZTqgDS4K6VUB6TBXSmlOiAN7kop1QFpcFdKqQ5Ig7tSSnVA/w9idS40eyFOiQAAAABJRU5ErkJggg==",
"text/plain": [
""
]
@@ -3596,7 +3596,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -3608,7 +3608,7 @@
},
{
"data": {
- "image/png": "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qdrH/UhFR0fz2muvsX//fr/ud/Xq1axfv96v+wyUFpO7iPQQkSRnPBY4E9iATfKXOIvNAN50xhc5z3Hmf2iMcbtFgVKdiIfSvznaDbLNIiIimDVrFnPnzj1s3vbt2znjjDPIyspi0qRJ5OTkAHD11Vdzyy23cPLJJzNw4EAWLlxYv85f/vIXxo0bR1ZWFnfddZfX/d52223cd999h00vLCzkggsuICsrixNPPJG1a9cCMGfOHK699lomTpzIwIEDefTRR+vXefHFFxk/fjyjRo3i+uuvp7a29oiPR0fw5cy9N7BURNYCK4H3jDGLgTuAX4jIZmyb+jPO8s8Aqc70XwCz2z9spfyoSV93Vx/3rtDm3pFuuukm5s+fT3FxcaPpP/3pT5kxYwZr167liiuu4JZbbqmfl5+fz6effsrixYuZPdumlnfffZdNmzaxYsUK1qxZw+rVq/n444897nPatGl8+eWXbN68udH0u+66i+OPP561a9fyxz/+kenTp9fP27hxI++88w4rVqzg7rvvprq6mg0bNrBgwQI+++wz1qxZQ3h4OPPnz2+vQ9MuWuwKaYxZCxzvYfpWbPt70+kVwA/bJTqlgkFyJux6o/5pTkEZMZFh9OimpX7bIjExkenTp/Poo48SG9vQxLVs2TJee+01AK666ip+9atf1c+74IILCAsLY9iwYezZswewyf3dd9/l+ONtmiopKWHTpk1MmDDhsH2Gh4dz++23c//993P22WfXT//000959dVXATjjjDMoKCjg4MGDAJx77rlER0cTHR1Nz5492bNnDx988AGrV69m3LhxAJSXl9OzZ8/2PDxtpjfrUKolyZlQXggVxRDTXUv9tqNbb72V0aNHc8011/i0fHR0wweqq7XXGMOvf/1rrr/+ep+2cdVVV3H//fczfPjwVu8zPDycmpoajDHMmDGD+++/36dtBIKWH1CqJfU9ZmzpX60G2X5SUlKYNm0azzzzTP20k08+mZdffhmA+fPnc+qppza7jalTp/Lss89SUmJ/jpOXl8fevXsBmDRpEnl5eY2Wj4yM5Oc//3mj9v5TTz21vlnlo48+Ii0tjcTERK/7nDRpEgsXLqzfT2FhITt2eC4NHSia3JVqiVt3SGNMl+nj7i+33XZbo14zjz32GP/617/IysrihRde4JFHHml2/SlTpvCjH/2Ik046iREj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\n",
+ "image/png": "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qdrH/UhFR0fz2muvsX//fr/ud/Xq1axfv96v+wyUFpO7iPQQkSRnPBY4E9iATfKXOIvNAN50xhc5z3Hmf2iMcbtFgVKdiIfSvznaDbLNIiIimDVrFnPnzj1s3vbt2znjjDPIyspi0qRJ5OTkAHD11Vdzyy23cPLJJzNw4EAWLlxYv85f/vIXxo0bR1ZWFnfddZfX/d52223cd999h00vLCzkggsuICsrixNPPJG1a9cCMGfOHK699lomTpzIwIEDefTRR+vXefHFFxk/fjyjRo3i+uuvp7a29oiPR0fw5cy9N7BURNYCK4H3jDGLgTuAX4jIZmyb+jPO8s8Aqc70XwCz2z9spfyoSV93Vx/3rtDm3pFuuukm5s+fT3FxcaPpP/3pT5kxYwZr167liiuu4JZbbqmfl5+fz6effsrixYuZPdumlnfffZdNmzaxYsUK1qxZw+rVq/n444897nPatGl8+eWXbN68udH0u+66i+OPP561a9fyxz/+kenTp9fP27hxI++88w4rVqzg7rvvprq6mg0bNrBgwQI+++wz1qxZQ3h4OPPnz2+vQ9MuWuwKaYxZCxzvYfpWbPt70+kVwA/bJTqlgkFyJux6o/5pTkEZMZFh9OimpX7bIjExkenTp/Poo48SG9vQxLVs2TJee+01AK666ip+9atf1c+74IILCAsLY9iwYezZswewyf3dd9/l+ONtmiopKWHTpk1MmDDhsH2Gh4dz++23c//993P22WfXT//000959dVXATjjjDMoKCjg4MGDAJx77rlER0cTHR1Nz5492bNnDx988AGrV69m3LhxAJSXl9OzZ8/2PDxtpjfrUKolyZlQXggVxRDTXUv9tqNbb72V0aNHc8011/i0fHR0wweqq7XXGMOvf/1rrr/+ep+2cdVVV3H//fczfPjwVu8zPDycmpoajDHMmDGD+++/36dtBIKWH1CqJfU9ZmzpX60G2X5SUlKYNm0azzzzTP20k08+mZdffhmA+fPnc+qppza7jalTp/Lss89SUmJ/jpOXl8fevXsBmDRpEnl5eY2Wj4yM5Oc//3mj9v5TTz21vlnlo48+Ii0tjcTERK/7nDRpEgsXLqzfT2FhITt2eC4NHSia3JVqiVt3SGNMl+nj7i+33XZbo14zjz32GP/617/IysrihRde4JFHHml2/SlTpvCjH/2Ik046iREj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",
"text/plain": [
""
]
@@ -3620,7 +3620,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -3632,7 +3632,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -3660,7 +3660,7 @@
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -3672,7 +3672,7 @@
},
{
"data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEXCAYAAABWNASkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABFBklEQVR4nO3dd3hUVfrA8e+bnkAqhJpAAOkQICBgQzq2VVDEil1cuysWdP0pumsvWNZ1rWtZVFZ0LYiKIIqoCIQSkRqQEggkhJBCEkg5vz/uTZiEhLSZ3Enyfp5nnrlz6zt37rxz59xzzxFjDEoppZoWH6cDUEop5X6a3JVSqgnS5K6UUk2QJnellGqCNLkrpVQTpMldKaWaIE3uTZiIbBeRsdXMM1NE/uNNMdVhnZeJyIJ6rqNsP4hInIgYEfFzT4TeS0TeFpG/OxzDVSKy1MkYmiJN7m4gIqeKyM8ikiUiB0TkJxE50em4mgtjzGxjzHin46hKc/qxaEgiEigib4lItojsFZE7jzPvxSKyyf6OponIOyIS1pDxNjRN7vVkHyDzgJeAKKAj8DBwuJbrERFp1J+HJq9jeXKfNJZjxoP7YCbQHegMjALuEZEzqpj3J+AUY0w40BXwAxz9x+JpXn9gNAI9AIwxHxhjio0x+caYBcaYJPvv5k8i8g/7jGGjiIwpXVBEvheRR0XkJyAP6CoivUTkW/sfwCYRmeIy/9kisto+U9klIjNdAxGRqSKyQ0QyROSvtXgPQSIyR0RyRGSViAxwWecMEdlqT1svIpNcppW+v1kikgHMFJFuIvKdHcN+EZktIhEVtneiva5MEfm3iATZ64sUkXkikm5PmyciMRW2t82O5Q8RucxlfLV/60XkBXu/ZYtIooicVs0i14jIHhFJFZG7XNbj47JfMkTkvyISZU8rPUu/VkR2At8BS+xFD4pIroicdJwYfUXkWXvf/SEit7ie9VdxzFwtIhvs/bJNRG5wWd9IEUkRkfvtdW4v3W8uIkXkS3v5X0WkWw32pRGR2+zt7ReRp0t/aKo4LsJF5F37s90hIg9I+R8mqep7chxXAn8zxmQaYzYArwNXVTajMWaXMWa/y6hi4IQabKPxMsboox4PIAzIAN4BzgQiXaZdBRQBfwH8gYuALCDKnv49sBPoi3UmEQ7sAq62Xw8C9gN97PlHAv2xfpTjgX3ARHtaHyAXGAEEAs/Z2x5bTfwzgUJgsh3jXcAfgL89/UKgg73Ni4BDQPsK7+9WO95grC/MODuGaKzE9rzL9rYD64BYrH86PwF/t6e1Ai4AQoBQ4CPgU3taCyAb6Gm/bg/0dYljaQ0+q8vtbfgB04G9QJDLfviPPRwHGOADe7v9gfTSfQncDiwDYuz3+SrwQYVl37WXDXYZ51eDGP8MrLfXHQksdF2WY48Zf+BsoBsgwOlYST/B5Zgpso+HQHv6IZf9+DbW8TvUXt9s4MMaxGmAxfZn2AnYDFx3nOPiXeAz+3ONs+e/tibfkyq2H2nH0NZl3GTgt+Msc6q9XmPvg/FO5w+P5ianA2gKD6C3/SVJsQ/Sz4G29kG7BxCXeZcDU+3h74FHXKZdBPxYYd2vAg9Vsd3ngVn28IOuX0o7sRyhZsl9mctrHyAVOK2K+dcA59nDVwE7q1n/RGC1y+vtwJ9dXp8FbK1i2YFApsv7OYiV/IMrzHcVNUjulaw/Exjgsh8qJvdeLvM+BbxpD28AxrhMa4/1A+nnsmxXl+ml42qS3L8DbnB5PZZjk/sj1azjU+B2e3ikfUy2cJn+X+D/7OG3gTcqfB4baxCnAc5weX0TsKiy4wLwtY/FPi7jbgC+d5m/yu9JFduPtWMIchk3Dtheg9g72p93j9oeM43pocUybmCM2WCMucoYEwP0wzrTfd6evNvYR5Rthz291C6X4c7AMBE5WPoALgPaAYjIMBFZbP+1zcI6y2ttL9vBdV3GmENYZ2Q14bpcCdaPVAd7m1eIyBqXePq5bLNi/IhIWxH5UER2i0g28J8K81dcpmx/iEiIiLxq/23PxjrrjxARX/v9XGS/51S7GKFXDd9faWx32cUXWfZ7Ca8ktmrjxPqc/ueyTzZg/c1vW8WytVHuc6xiPRX3+ZkiskysoryDWAna9X1l2vuvVMVjcK/LcB7QsoaxVrV/Kk5rjXVGvqPC/B1dXlf3Pako1352vSgaBuRUEzPGmN3A18CH1c3bmGlydzNjzEass6F+9qiOIiIus3TCOkspW8RleBfwgzEmwuXR0hhzoz39fax/BbHGujD0L6y/4mCdbceWrkhEQrCKIGrCdTkfrCKBPSLSGasc8xaglTEmAqtIxfX9VGxW9DF7XH9jTBhWUYhUmCfWZdh1f0wHegLD7GVHlIYFYIz5xhgzDutMeaMdW43Y5ev3AFOwis4isP6iV4ytJnHuAs6s8DkF2UmjlKliuDqpWPu/shiOWZ+IBAIfA89gFVFEAPMp/74iRaRFFe+lPqraP+VixCpaLMT6UXSd33V/Vfc9KccYk4m1rwa4jB4A/F6jyK1/WdVeW2jMNLnXk1gXQKeXXvgTkVjgEqwyWYA2wG0i4i8iF2IV4cyvYnXzgB5iXRj1tx8nikhve3oocMAYUyAiQ4FLXZadC5wjVrXMAOARav75DhaR8+2Ldndg1fRZhlUUYrDKmxGRqzn6o1WVUKyzqiwR6QjcXck8N4tIjH0R8q/AHJdl87EuPEYBD5UuYP8jOM9OUoftbZTU8P2VrrvIfi9+IvIg5c/6KvN/9r+JvljXQUrj/BfwqP3jh4hEi8h5x1lPuh1r1xrE+V/gdhHpKNaF6HurmT8Aqyw9HSgSkTOByqqFPiwiAfaP3DlY1zPq626xLoLHYl2HmFPZTMaYYqz39aiIhNr77U6sf3WlavM9KfUu8IAdQy/geqwTq2OIdS9EJ3u4M/AosKiG77NR0uRefznAMOBXETmElRTXYZ2FAvyKVV1rP9YBNdkYU2lxiTEmB+uLeTHWWcte4EmsLy9Y5ZqPiEgOVhn7f12W/R24GevsPhWrPDmlhu/hM6wij0xgKnC+MabQGLMeeBb4BevibX+sC6DH8zCQgHVW/CXwSSXzvA8sALYBWzlaJe15rItv+7H249cuy/hgJYQ9wAGsC4M3UnPf2OvbjPWXv4Dqi05+AJKxksAzxpjSG6VewPoHtcD+LJZhHQOVMsbkYX32P9lFOcOPs83XsfZNErAaK8EVYRX7VLbuHOA2rGMhE+sH//MKs+21p+3BumD6Z/sfZn19BiRiXYf5EnjzOPPeinURcxuwFOsYeMtleo2/Jy4ewjp+dmB9Vk8bY74GEJFOYtVM6mTP2wf42f6O/gRswvoxaLKkfDGXcicRuQqrBsGpTseiGif7TPxfxpjO1c5c+fIjsS4Ux1Qza23Xa4Duxphkd65XuY+euSvlRUQkWETOEhE/u1jrIeB/TselGh9N7s2AiHxl/0Wt+Ljf6djcSUROq+J95la/dMMRkX9VEWfpBfKHsYpRVmPVxHnQgRi9Yl9WFYNUfwNas6fFMkop1QTpmbtSSjVBmtyVUqoJ8opW/Fq3bm3i4uKcDkMppRqVxMTE/caY6MqmeUVyj4uLY+XKlU6HoZRSjYqI7KhqmhbLKKVUE6TJXSmlmqAaJXexGvj/TazWAVfa46LE6lRii/0caY8XEXlRRJJFJElEEjz5BpRSSh2rNmfuo4wxA40xQ+zXM7Dab+6O1fbGDHv8mVhtRHQHpgGvuCtYpZRSNVOfYpnzsHofwn6e6DL+XWNZhtUed/t6bEcppVQt1TS5G6wW8BJFZJo9rq0xJtUe3svRjgo6Ur61vRTKN8oPgIhME5GVIrIyPT29DqErpZSqSk2rQp5qjNktIm2Ab0WkXHOhxhhjtxJXY8aY14DXAIYMGVK3NhCMATleXwtKKdU81Si5l/YwY4xJE5H/YXWmu09E2htjUu1ilzR79t2U76ElhvI9rrjPijfgx+egbV9o2wfa2M+te4BfYPXLK6WUQ4wxpOceJsjfl7Agf7evv9rkbvd842OMybGHx2P18vM5cCXwhP38mb3I58AtIvIhVgcGWS7FN+7Vqht0OQ32rYc/foDiI9Z4Hz9o1d1K9G37Hk364bF6pq+UahDGGDLzCtl1II+UzHx2ZeaRkmkP2+MOF5Xw+Pn9uWRop+pXWEs1OXNvi9UZcOn87xtjvhaRFcB/ReRarJ5Qptjzz8fqoDcZq7Pdq90edaluo60HQHEhZGyFfesgbb2V8HetgHUfH50/MAza9LHP8vtA237WcFC4x0JUSjVd2QWF7Mw4Nmnvsl/nHSnfgVZEiD8xkcF0bxPK6F5tiIkM4cS4SI/E5hVN/g4ZMsR4rPmBgmxI2wBpv8O+362kn/Y7FGQdnSe6N8QOhdhh0Gk4RHXVM3yl1DGy8gpZ9kcGy7Zl8MvWDDbuzSk3PTTQj5ioEGIjg4mJDCEmMpjYKOs5JjKYUDcXv4hIokv19PLTmnxyr4wxkL3bSvSpa2HXr5Cy/GjCD2llJfrYoRA7HDoMBP/ghotPKeUVsgsKWb7tgJXMt2WwPjUbYyDQz4chcZEM79KK7m1DrSQeGUJ4iPvLzo/neMndKxoOa3AiEB5jPXrYHcWXlMD+zbBrGexabiX8TXbn6z7+0H6AdVZfeoYf2s65+JVSHpF7uIgV2w+wbKuVzNftzqLEQICfD4M7RXLHmB6c1K0VA2LDCfTzdTrc42qeZ+41dWj/0US/aznsWQVFBda0iE5Wku98CvQ5D0KinI1VKVVreUeKWLk9k1/sYpbfdmdRXGII8PVhYKcIhndtxUldWzGoUwRB/t6XzLVYxl2KjsDeJCvZ71xmPefuA98A6HkWDLrcusDr430HgVIKUrPySdyRycrtmazamcn6PdkUlRj8fISBsXYy79aKhE6RBAd4//dYk7unGAN7f4M1syHpv5B/AELbw4CLYeDl0PoEpyNUqtkqLC5hY2oOiTsOsHJHJqt2ZLIny/rnHezvy4DYcAZ3jmRYl1YMiYskJKDxlVJrcm8IRYdh89ewejYkfwumxCq2GXgZ9J0EQWFOR6hUk3Yw7wirdx60zsx3HGDtrizyC62qiB3Cg0joHMngzpEM6RxFr/ah+Ps2/hbPNbk3tJy9sPZD64x+/2bwD4He58Kgy6DzqeDT+A8qpRpacYkhO7+QA3lHOJh3hAOHCknPOczaXQdJ3JlJclouAL4+Qt8OYSR0spL54M6RdIhomrXdNLk7xRhIWQlr/gPrPoHD2RDR2TqbH3iJdVFWqWYq/0gxuw/mc+DQEQ4cshN23hEO5hWSeegImXlHyHQZPphfSGXpKjzYvyyJJ3SKZEBseKMsYqkLTe7e4EgebJwHq/9jNZWAQJcRMPgqq9hGb5pSTUxBoZW8UzLzScnMY9cB+zkzn92ZeezPPVLpcoF+PkS1CCAiJICoFv7Wc0gAkSH2cIsAIkL8iWoRQGRIAB0jgvHxaZ7fH03u3iZzB6z9wCq2ObjTOpM/Z5Y2dqYalSNFJexxTd4VbsFPyzlcbn5/X6FjhHXnZmyU9dwxIpjWLQPLJevGUEvFW2hy91YlJbDkafj+Meh0Elz0H2jR2umolAKs2iZ7swqspG2fdbu2m7I3u6BcMYmvj9AhIoiYiKPJ2/X2+zahQfg20zNsT9E7VL2Vjw+MvBeie8D/boTXR8Elc6zGzJTysCNFJaTlFLA7M59dmfnHNH61N7uA4pKj2dtHoH14MB0jgzm5W+uy9lJKk3e7sCD8mkANlKZCk7s36DvJutD64aXw5ji44E3oeYbTUalGqqi4hP25R9iXXWA9cg6Tnl3AvuzD7MuxntOyC8g4VL7MWwTahQURExnM0C5RxzR+1S48qElUH2wuNLl7i44JcP138MEl8MHFMO4ROPlWvdCqMMaQX1hs1ygpJDPvSNlwxqEjpOcUkOaSuPfnHj6mVomPQHRoIG1Cg+gYEcSgThG0DQ2ibVhgWQJvHxHk9e2lqJrT5O5NwjrA1V/BpzfCt/8H6ZvsC60BTkemqrBm10EO5lVe66MmSoyxE3ahXXfbStoHSqv/5Vn1uo8UlVS5jtYtA2hjJ+p+HcJpE2YNW8nbGm7VMlDLu5sZTe7eJiAEJv8bfugFPzwBB7bBRe/phVYv9NHKXdw9N8lt6/MRiAixq/mFBBATGUJ8jD+RIeWrBUa6DEcE+2s5t6qUJndv5OMDo+6zLrR+epNeaPVCBYXFPPftZgbERvDQn+r+ufiIEB7sT2SIP2FB/s22vrZyP03u3qzfBRAZBx9cCm+Oh8lvQo8JTkelgHd/2U5qVgHPTRlIQifPdJOmVH3o/zlv13GwdaG1VVd4/yL4+R9Ueg+2ajBZ+YW8vHgrp/eI5qRurZwOR6lKaXJvDMI7Whda+5wLC/4Kn99qtS2vHPHakq1k5Rdyzxk9nQ5FqSppcm8sAlrA5LdhxD2w+j14byIcynA6qmYnLbuAN5f+wXkDO9C3Q7jT4ShVJU3ujYmPD4z+q3WTU8pKeGM0pG10Oqpm5YVFWygqNkwfp2ftyrtpcm+M+k+Gq+dDYb51R2v6Zqcjahb+2H+ID1fs4tJhnejUKsTpcJQ6Lk3ujVXMELhuIfj6w9xroLDA6YiavGcWbCLQz4dbR3d3OhSlqqXJvTGL6AQTX4F9v8G3DzodTZP2W0oWXyalct2pXYgO1aaZlffT5N7Y9ZgAw2+G5a/Cxi+djqbJeuqbjUS1COD6EV2dDkWpGtHk3hSMfQjaD4DPboasFKejaXJ+St7Pj1v2c/OoEwgN8nc6HKVqRJN7U+AXaLVHU1wIH18PxUVOR9RkGGN48uuNdIwI5rJh2uetajw0uTcVrbrB2c/Bzp+t3p2UW8z/bS9JKVn8ZVwPgvy1OVzVeGhyb0oGXAQDLoElT8H2pU5H0+gVFpfwzIJN9GwbyqRBHZ0OR6la0eTe1Jz1DER2sYpn9A7WevloZQp/7D/E3RN6alvoqtGpcXIXEV8RWS0i8+zXXUTkVxFJFpE5IhJgjw+0Xyfb0+M8FLuqTGBLuPDfkLffusCqjYzVSf6RYp5fuJkhnSMZ07uN0+EoVWu1OXO/Hdjg8vpJYJYx5gQgE7jWHn8tkGmPn2XPpxpS+wEw7m+w+Sv49VWno2mU/v3zH6TlHObeM3sh2tWhaoRqlNxFJAY4G3jDfi3AaGCuPcs7wER7+Dz7Nfb0MaLfjoY37AbocabVXV/qWqejaVQO5h3hle+3MqZXG06Mi3I6HKXqpKZn7s8D9wClHTm2Ag4aY0rr3KUApVecOgK7AOzpWfb8qiGJwHkvQ0hr+OhqOJzjdESNxivfbyX3cBF3a5O+qhGrNrmLyDlAmjEm0Z0bFpFpIrJSRFamp6e7c9WqVItWcMHrkPkHzL/b6WgahdSsfN7+eTuTBnWkV7swp8NRqs5qcuZ+CnCuiGwHPsQqjnkBiBCR0m76YoDd9vBuIBbAnh4OHFNtwxjzmjFmiDFmSHR0dL3ehDqOuFNhxN2w9gNY+6HT0Xi9FxZuwRi4c1wPp0NRql6qTe7GmPuMMTHGmDjgYuA7Y8xlwGJgsj3blcBn9vDn9mvs6d8Zo1U2HDXiHuh0Msy7EzK2Oh2N10pOy+W/K3dx+fDOxERqk76qcatPPfd7gTtFJBmrTP1Ne/ybQCt7/J3AjPqFqOrN188qnvH1h7lXQ9FhpyPySs98s4mQAD9uHtXN6VCUqrdaJXdjzPfGmHPs4W3GmKHGmBOMMRcaYw7b4wvs1yfY07d5InBVS+ExMPGfVs2ZhTOdjsbrrN6Zyde/7+X607rSqqU26asaP71DtTnpdTYMnQbL/gmbvnY6Gq9R2jhY65YBXHdaF6fDUcotNLk3N+P+Bm37w6c3QvYep6PxCku27GfZtgPcOro7LQL9ql9AqUZAk3tz4x9kNU9QVACfTIOSYqcjclRJieHJrzYSGxXMJUO1SV/VdGhyb45ad4eznobtP8KPzzkdjaO+SNrD+tRspo/rSYCffh1U06FHc3M18DLofyF8/xjsduv9aY3GkaISnl2wmd7twzh3QAenw1HKrTS5N1cicPaz0LItfHYrFB1xOqIG99J3W9h5II97zuiJjzbpq5oYTe7NWVA4nDML0n6Hn553OpoGtXTLfv6xOJkpQ2IY1VOb9FVNjyb35q7nmdDvAvjhKUjb6HQ0DSItu4A75qyme5uWPHxuP6fDUcojNLkrOONJCAyFz29p8rVniksMt3+4hkOHi3n50gSCA7RfVNU0aXJX0DIaznwSUlbA8tecjsajXvpuC79sy+CR8/rSvW2o0+Eo5TGa3JWl/4XQfTwsegQytzsdjUf8vHU/LyzawvkJHblwSKzT4SjlUZrclUXEurgqPvDF7U2u79X0nMPc/uEaurZuwd/O03J21fRpcldHhcfAuIdh2/ewZrbT0bhNcYnhL3PWkJ1fyMuXJWgTA6pZ0OSuyht8jdX2+zf3Q85ep6Nxi38uTmZp8n4ePrev9q6kmg1N7qo8Hx849yUoLID5dzkdTb0t25bBrIWbOW9gBy46UcvZVfOhyV0dq/UJMOo+2PAFrP+s+vm9VEbuYW7/cDVxrVrw6KT+iOhdqKr50OSuKnfSrdB+AHx5F+QdcDqaWispMfzlv2vJzCvkH5cm0FLL2VUzo8ldVc7XD879B+RlwIIHnI6m1v61ZCtLNqfz4Dl96NNBy9lV86PJXVWtfTyceodVcyZ5kdPR1NiK7Qd4dsFmzo5vz2XDtI121TxpclfHN+IeaNUdvrgDDuc6HU21Mg8d4bYPVhMTGcwT52s5u2q+NLmr4/MPgvP+AVm74Lu/OR3NcZWUGKZ/tJaM3CO8fGkCoUH+ToeklGM0uavqdRoOQ6+HX1+Fnb86HU2V3li6je82pvHAOb3p1zHc6XCUcpQmd1UzYx607mD9/BarDryXWbUzk6e+3sRZ/dsxdXhnp8NRynGa3FXNBIbCOc/D/s3w4zNOR1POwbwj3Pr+atpHBPHEBfFazq4UmtxVbXQfCwMugaWzYO9vTkcDgDGGuz5KIi2ngJcvTSBMy9mVAjS5q9qa8BgER8Jnt0BxkdPR8NZP21m4YR/3ndmb+JgIp8NRymtocle1ExIFZz0NqWtg2cuOhrJudxZPfLWB8X3acvUpcY7GopS30eSuaq/PROh1Dix+DDK2OhLCkaIS7vpoLVEtAnh68gAtZ1eqAk3uqvZE4KxnwDcQPr8VSkoaPISXFyezcW8Oj03qT3iIlrMrVZEmd1U3Ye1h/COw4ydY/2mDbnr9nmxeXpzMpEEdGdO7bYNuW6nGQpO7qrtBUyG6l1U800AXVwuLS7h77loiQgJ46E99GmSbSjVGmtxV3fn4wqi/QsYWSJrTIJt8bck2ft+Tzd8n9iUiJKBBtqlUY1RtI9ciEgQsAQLt+ecaYx4SkS7Ah0ArIBGYaow5IiKBwLvAYCADuMgYs91D8Sun9f4TtB8IPzwB/S8EP88l3M37cnhh4RbOjm/PGf3ae2w7ylJYWEhKSgoFBd53R3JzExQURExMDP7+Nb++VJMeDA4Do40xuSLiDywVka+AO4FZxpgPReRfwLXAK/ZzpjHmBBG5GHgSuKi2b0Y1EiIw+v9g9gWw6h2rDRoPKCou4e65SbQM8uORc/t6ZBuqvJSUFEJDQ4mLi9PaSA4yxpCRkUFKSgpdunSp8XLVFssYS2lbr/72wwCjgbn2+HeAifbwefZr7OljRI+Mpu2EMVan2kuehiN5HtnEWz/9wdpdB3n43L60ahnokW2o8goKCmjVqpUmdoeJCK1atar1P6galbmLiK+IrAHSgG+BrcBBY0zpVbQUoKM93BHYBWBPz8Iquqm4zmkislJEVqanp9cqaOVlRGDM/0HuPljxuttXvy09l2cXbGZ8n7acE6/FMQ1JE7t3qMvnUKPkbowpNsYMBGKAoUCvWm/p2HW+ZowZYowZEh0dXd/VKad1Phm6jbHanSnIdttqi0sM98xNIsjfl79P6qfJpokQEaZPn172+plnnmHmzJke3WZcXBwXXHBB2eu5c+dy1VVXeXSbTqpVbRljzEFgMXASECEipWX2McBue3g3EAtgTw/HurCqmrrRD0B+Jiz7p9tW+c7P21m5I5OH/tSHNqFBbluvclZgYCCffPIJ+/fvb9DtJiYmsn79+gbdplOqTe4iEi0iEfZwMDAO2ICV5Cfbs10JfGYPf26/xp7+nTHGuDFm5a06JljNEvz8D8g7UO/V7cg4xFPfbGRUz2gmDepY/QKq0fDz82PatGnMmjXrmGnbt29n9OjRxMfHM2bMGHbu3AnAVVddxW233cbJJ59M165dmTt3btkyTz/9NCeeeCLx8fE89NBDVW53+vTpPProo8eMP3DgABMnTiQ+Pp7hw4eTlJQEwMyZM7nmmmsYOXIkXbt25cUXXyxb5j//+Q9Dhw5l4MCB3HDDDRQXF9d5f3hCTc7c2wOLRSQJWAF8a4yZB9wL3CkiyVhl6m/a878JtLLH3wnMcH/YymuNfgCO5FrFM/VQUmK49+Mk/H18eEz7Qm2Sbr75ZmbPnk1WVla58bfeeitXXnklSUlJXHbZZdx2221l01JTU1m6dCnz5s1jxgwrtSxYsIAtW7awfPly1qxZQ2JiIkuWLKl0m1OmTGHVqlUkJyeXG//QQw8xaNAgkpKSeOyxx7jiiivKpm3cuJFvvvmG5cuX8/DDD1NYWMiGDRuYM2cOP/30E2vWrMHX15fZs2e7a9e4RbVVIY0xScCgSsZvwyp/rzi+ALjQLdGpxqdNb4ifAstfh5NuhtB2dVrN7OU7WbbtAE9e0J/24cFuDlJ5g7CwMK644gpefPFFgoOPfsa//PILn3zyCQBTp07lnnvuKZs2ceJEfHx86NOnD/v27QOs5L5gwQIGDbLSVG5uLlu2bGHEiBHHbNPX15e7776bxx9/nDPPPLNs/NKlS/n4448BGD16NBkZGWRnW9eOzj77bAIDAwkMDKRNmzbs27ePRYsWkZiYyIknnghAfn4+bdq0cefuqbea1HNXqnZGzoB1H8OSZ+Ds2vfalJKZxxPzN3Ba99ZMGRLrgQCVt7jjjjtISEjg6quvrtH8gYFHq8GWlvYaY7jvvvu44YYbarSOqVOn8vjjj9OvX79ab9PX15eioiKMMVx55ZU8/vjjNVqHE7T5AeV+UV1h0OWQ+DZk7qjVosYY7vvE6uXpcS2OafKioqKYMmUKb775Ztm4k08+mQ8//BCA2bNnc9pppx13HRMmTOCtt94iN9e6HWf37t2kpaUBMGbMGHbv3l1ufn9/f/7yl7+UK+8/7bTTyopVvv/+e1q3bk1YWFiV2xwzZgxz584t286BAwfYsaN2x7qnaXJXnjHiHhAf+OGpWi3235W7+HHLfmac1ZuYyBAPBae8yfTp08vVmnnppZf497//TXx8PO+99x4vvPDCcZcfP348l156KSeddBL9+/dn8uTJ5OTkUFJSQnJyMlFRUccsc+2111JUdLSxu5kzZ5KYmEh8fDwzZszgnXfeOWYZV3369OHvf/8748ePJz4+nnHjxpGamlrLd+5Z4g0VWYYMGWJWrlzpdBjK3b6+H359BW76FaJ7VDt7alY+459bQt+OYbx/3XB8fPSs3UkbNmygd+/eTodRZ+vWreOtt97iueeeczoUt6js8xCRRGPMkMrm1zN35Tmn/gX8guH7x6qd1RjD/Z/8RlGJ4ckL4jWxq3rr169fk0nsdaHJXXlOy2gYfiP8/j9ITTrurP9bvZvFm9K5e0JPOrdq0UABKtV0aXJXnnXyrRAUDouPvXGkVFp2AQ9/sZ4hnSO56uS4hotNqSZMk7vyrOAIOOV22Pw17Fp+zGRjDA98uo6CwmKemqzFMUq5iyZ35XnD/gwtomHRI8dM+iIplQXr93HnuB50jW7pQHBKNU2a3JXnBbSA06bD9h9h2/dlozNyDzPz898ZEBvBdad1dS4+pZogTe6qYQy+GsI6wqK/gV399qXvksnKL+TpyfH4anGMqkR+fj6nn346xcXF7Nmzh8mTJ1c638iRI6muOvWDDz7IwoULjzvP4cOHGTt2LAMHDmTOnNr1C7x9+3bef//9Wi0DVoNopY2gXXzxxWzZsqXW66iMJnfVMPyD4PR7YPdK2Pw1uw/m8/6vO7lwcAw92oY6HZ3yUm+99Rbnn38+vr6+dOjQoVxLkLX1yCOPMHbs2OPOs3r1agDWrFnDRRfVrnfQuiZ3VzfeeCNPPVW7G/+qosldNZyBl1lNE3z3d176dhMAt47p7nBQypvNnj2b8847D7CSZ2l7MPn5+Vx88cX07t2bSZMmkZ+fX+26XM+Q4+LieOihh0hISKB///5s3LiRtLQ0Lr/8clasWMHAgQPZunUriYmJnH766QwePJgJEyaU3YWanJzM2LFjGTBgAAkJCWzdupUZM2bw448/MnDgQGbNmkVxcTF33313WVPEr776KmBVIrjlllvo2bMnY8eOLWvCAKxmEBYuXFju7tm60obDVMPx9YeR98Mn15G/ey6XDb+EjhHa4mNj8PAXv7N+j/t62ALo0yGMh/5UdWfnR44cYdu2bcTFxR0z7ZVXXiEkJIQNGzaQlJREQkJCrbffunVrVq1axT//+U+eeeYZ3njjDd544w2eeeYZ5s2bR2FhIVOnTuWzzz4jOjqaOXPm8Ne//pW33nqLyy67jBkzZjBp0iQKCgooKSnhiSeeKFsW4LXXXiM8PJwVK1Zw+PBhTjnlFMaPH8/q1avZtGkT69evZ9++ffTp04drrrkGAB8fH0444QTWrl3L4MGDa/2eXGlyVw2r3wXsmfcod5i5tBxxn9PRKC+2f/9+IiIiKp22ZMmSsnbe4+PjiY+Pr/X6zz//fAAGDx5c1sSwq02bNrFu3TrGjRsHQHFxMe3btycnJ4fdu3czadIkAIKCKu8hbMGCBSQlJZX9W8jKymLLli0sWbKESy65pKyoafTo0eWWa9OmDXv27NHkrhqXDftymZU7kdcCZsHWTyBhqtMhqRo43hm2pwQHB1NQUOCx9Zc25VvajG9Fxhj69u3LL7/8Um58Tk5OjdZvjOGll15iwoQJ5cbPnz//uMsVFBSUa9++rrTMXTWoZxds5peA4RS1GwQ/PAlFh50OSXmpyMhIiouLK03wI0aMKLt4uW7durJu8QCuuOIKli8/9oa52urZsyfp6ellyb2wsJDff/+d0NBQYmJi+PTTTwGrhk1eXh6hoaHlEv+ECRN45ZVXKCwsBGDz5s0cOnSIESNGMGfOHIqLi0lNTWXx4sXltrt58+YatzV/PJrcVYNZvTOThRv2ccOIbviNexCydkHi8ZtWVc3b+PHjWbp06THjb7zxRnJzc+nduzcPPvhguSKMpKQkOnToUO9tBwQEMHfuXO69914GDBjAwIED+fnnnwF47733ePHFF4mPj+fkk09m7969xMfH4+vry4ABA5g1axbXXXcdffr0ISEhgX79+nHDDTdQVFTEpEmT6N69O3369OGKK67gpJNOKtvmvn37CA4Opl27uvVg5kqb/FUN5vI3fmVDajZL7hlFiwBfePsc2L8ZblsNgXp3qrfxhiZ/V61axaxZs3jvvfdqNH92djbXXnstH330kYcj84xZs2YRFhbGtddee8w0bfJXeaWft+5nafJ+bhzZjRaBfiACY2fCoXT47m9Oh6e8VEJCAqNGjaK4uLhG84eFhTXaxA4QERHBlVde6ZZ1aXJXHmeM4ZlvNtEuLIjLh3c+OiH2RBg6DX59FXb8UvUKVLN2zTXX4Ovr63QYDeLqq6/Gz8899Vw0uSuPW7wpjVU7D3LrmBMI8q/wJR3zIER0gs9uhiN5zgSoVBOkyV15VEmJ4ZlvNtMpKoQpQ2KPnSGwJZz7EhzYetw235VStaPJXXnU/HWprE/N5i/juuPvW8Xh1vV0q2GxZf+EXSsaNkClmihN7spjiopLeO7bzXRv05JzB3Q8/szjHoHQDlbxTKHnblxRqrnQ5K485n+rd7Mt/RDTx/eovknfoDA49wXYv8m6uUkp3Nvkrzs9//zz5OXV/hqRp5r3rYwmd+URR4pKeGHRFvp3DGdC3xrekHHCWBh4Ofz0AuxZ7dkAVaPgziZ/3el4yb2m1Tbd2bxvZTS5K4+Ys2InKZn53DWhJyK16IhjwqPQsg18ejMUHfFcgKpRcGeTvyNHjuTee+9l6NCh9OjRgx9//BGgyqZ5v//+e84555yy5W+55RbefvttXnzxRfbs2cOoUaMYNWoUAC1btmT69OkMGDCAX375hUceeYQTTzyRfv36MW3aNCq7WdSdzftWRhsOU26Xf6SYF79LZmhcFCO6t67dwsERcM7z8MFF8OOzMEpbjvQKX82Avb+5d53t+sOZT1Q52RNN/hYVFbF8+XLmz5/Pww8/zMKFC3nzzTcrbZq3KrfddhvPPfccixcvpnVr6/g+dOgQw4YN49lnnwWgT58+PPjggwBMnTqVefPm8ac//ancetzZvG9l9Mxdud27v2wnPedw7c/aS/U8A/pPgR+fcX9CUY1GdU3+Xn755UDtmvx1beZ3+/btgNU077vvvsvAgQMZNmwYGRkZtS4L9/X15YILLih7vXjxYoYNG0b//v357rvv+P333ytdrrR5X0/QM3flVjkFhbzyw1ZG9IhmaJeouq/ozCetzrQ/vQmu/87q6EM55zhn2J7iiSZ/K2vmt6qmeZcuXUpJSUnZ6+PFEhQUVHYXbUFBATfddBMrV64kNjaWmTNnVrmsu5r3rUy1Z+4iEisii0VkvYj8LiK32+OjRORbEdliP0fa40VEXhSRZBFJEpHad5GiGq03l/7BwbxC7hrfo34rComCs5+FvUnWBVbV7DRUk79VNc3buXNn1q9fz+HDhzl48CCLFi0qW6Zi876uSuNt3bo1ubm5x70I7K7mfStTk2KZImC6MaYPMBy4WUT6ADOARcaY7sAi+zXAmUB3+zENeMXtUSuvlHnoCG/8+Adn9G1HfExE/VfY51zoO8mqGpm2of7rU41OQzT5W1XTvLGxsUyZMoV+/foxZcoUBg0aVLbMtGnTOOOMM8ouqLqKiIjg+uuvp1+/fkyYMIETTzyx0u26s3nfShljavUAPgPGAZuA9va49sAme/hV4BKX+cvmq+oxePBgoxq/x75cb+JmzDOb9ma7b6U5acY82cWY10YZU1zkvvWqaq1fv97pEExiYqK5/PLLazx/VlaWmTx5sgcjcp/nnnvOvPHGGzWev7LPA1hpqsirtbqgKiJxwCDgV6CtMSbVnrQXaGsPdwR2uSyWYo9TTVhadgHv/LKdiQM70qNtqPtW3DIaznwKdifCLy+7b72qUWjKTf66s3nfytQ4uYtIS+Bj4A5jTLlu0O1fkFr1+iEi00RkpYisTE9Pr82iygv9Y3EyRcWGO8Z2d//K+10Avc6xGhbbn+z+9Suv1lSb/HVn876VqVFyFxF/rMQ+2xhT2k34PhFpb09vD6TZ43cDrs3/xdjjyjHGvGaMGWKMGRIdHV3X+JUX2HUgjw+W7+TCIbF0btXC/RsQsS6u+gVZbc+U1OwsTqnmrCa1ZQR4E9hgjHnOZdLnQOl/iiuxyuJLx19h15oZDmS5FN+oJuiFRVsQEW4bc4LnNhLaDs54AnYtg+Wve247qhzjBd1wqrp9DjU5cz8FmAqMFpE19uMs4AlgnIhsAcbarwHmA9uAZOB14KZaR6UajeS0XD5ZlcLU4Z1pH+6Z+rplBlwM3cfDoofhwDbPbksRFBRERkaGJniHGWPIyMggKCioVstVW+BjjFkKVHWb4ZhK5jfAzbWKQjVasxZuJsjflxtHdvP8xkSspgn+ORw+vw2u+Bx89CZrT4mJiSElJQW9Jua8oKAgYmJiarWM3qGq6mzd7iy+TErlllEn0LplYMNsNLyj1bjY57dC4r/hxGN7iVfu4e/vT5cuXZwOQ9WRnvaoOikqLmHGJ0m0bhnA9SO6NuzGB02FrqPg2wfh4M6G3bZSjYQmd1Unbyz9g3W7s3n43H6EBzdwuy8icO6L1vDnt4GWCSt1DE3uqta2pecy69vNjO/TlrP6e+jW6epEdIJxD8O2xfDrq87EoJQX0+SuaqWkxDDjk98I8PPhbxP71a1JX3cZci30PAsWPAC7VzkXh1JeSJO7qpX3l+9k+R8HeODs3rQNq13VLLcTgfNeturAz70aCrKcjUcpL6LJXdXYnoP5PPHVRk7u1oopQ2KrX6AhhETB5LcgK8WqQaPl70oBmtxVDRljeODTdRSVlPDE+fHOFsdUFDsUxjwI6z+DFW84HY1SXkGTu6qRz9fu4buNadw1viedWoU4Hc6xTrrVunv1m/shda3T0SjlOE3uqloZuYeZ+fnvDIiN4OpTvPSmFh8fmPgvCGkNH10FBdnVLqJUU6bJXVXr4S/Wk3u4iKcuiMfXx4uKYypq0coqf8/cAfPu0PJ31axpclfHtWjDPj5fu4ebR51Az3Zu7ITDUzqfBKP/Cus+hsS3nY5GKcdocldVyiko5K//W0fPtqHcNNKDzfm62yl/gW5j4OsZsHed09Eo5QhN7qpKT3y1kbScAp6cHE+AXyM6VHx8YNKrEBRhlb8fznU6IqUaXCP6xqqGtGxbBrN/3ck1p3RhYGyE0+HUXstomPwmHNgKX96p5e+q2dHkro5RUFjMjI+T6BQVwp3jezgdTt3FnQoj74OkObD6P05Ho1SD0uSujjFr4Wa2Z+TxxPn9CQlo5E3+nzYdupwO8++GfeudjkapBqPJXZWTlHKQ15ds4+ITYzn5hNZOh1N/Pr5wwRsQGGqVvx855HRESjUITe6qTGFxCffMTaJ1y0DuO6u30+G4T8s2cMHrsH8zfHmX09Eo1SA0uasyr/6wlY17c/j7RAc64PC0riPh9Htg7fuw5n2no1HK4zS5KwCS03J4cVEyZ8e3Z3xfhzrg8LTT74W40+DL6ZC20elolPIoTe6K4hLDPXOTCAn0Zeaf+jodjuf4+ML5r4N/iF3+nud0REp5jCZ3xXu/bGfVzoM8eE4fokMDnQ7Hs8Law/mvQfpG+Ooep6NRymM0uTdzuw7k8dQ3mzi9RzSTBnV0OpyGccIYOO1OWP0eJP3X6WiU8ghN7s2YMYb7//cbAjw6yeH+UBvayPuh08nwxR1WK5JKNTGa3JuxD1fs4sct+7n3zF7ERHphBxye5OtnVY80xbD4MaejUcrtNLk3U1v25fDwF79zygmtuHxYZ6fDcUZ4DAz7s9U8gbYeqZoYTe7NUEFhMbe8v5oWAX7MmjIQH2/ugMPTTr0DgsJg0SNOR6KUW2lyb4b+/uV6Nu3L4dkpA2gTFuR0OM4KjoRT/wJbvoEdPzsdjVJuo8m9mfnqt1T+s2wn00Z0ZWTPNk6H4x2G3gCh7eHbh7RpYNVkaHJvRlIy87j34yQGxIRz1/ieTofjPQJCYOQMSFkOm75yOhql3EKTezNRVFzC7R+uocTAi5cMalw9KzWEgZdDqxOssveSYqejUareqv2Gi8hbIpImIutcxkWJyLcissV+jrTHi4i8KCLJIpIkIgmeDF7V3PMLt5C4I5NHJ/Wjc6sWTofjfXz9YPT/QfoGWPuh09EoVW81OX17GzijwrgZwCJjTHdgkf0a4Eygu/2YBrzinjBVffycvJ+Xv09mypAYzhvYTO5CrYs+50GHBKvee2GB09EoVS/VJndjzBLgQIXR5wHv2MPvABNdxr9rLMuACBFp76ZYVR1k5B7mjjlr6Nq6BTPPbcKNgrmDCIydCdkpsOINp6NRql7qWvDa1hiTag/vBdrawx2BXS7zpdjjjiEi00RkpYisTE9Pr2MY6nhKSgzTP1rLwfxCXrokofF3mdcQup4O3UbDj89CQZbT0ShVZ/W+qmaMMUCt648ZY14zxgwxxgyJjo6ubxiqEm/99Affb0rngbN706dDmNPhNB5jHoL8A/DzS05HolSd1TW57ystbrGf0+zxu4FYl/li7HGqgSWlHOTJrzcyvk9bpg5vps0L1FWHgdD3fPjlZcjZ53Q0StVJXZP758CV9vCVwGcu46+wa80MB7Jcim9UA8kpKOTWD1YT3TKQpybHN6/WHt1l9ANQfASWPOV0JErVSU2qQn4A/AL0FJEUEbkWeAIYJyJbgLH2a4D5wDYgGXgduMkjUasqGWP4v0/XsetAHi9cMoiIkACnQ2qcWnWDhCsh8W3I2Op0NErVWrVX2Iwxl1QxaUwl8xrg5voGperu41W7+XTNHu4c14MT46KcDqdxO/1eWPuBVTVy8ptOR6NUrehtik3I1vRc/u/TdQzvGsXNo05wOpzGL7QtDL8J1s2F1LVOR6NUrWhybyIKCou59f3VBPn78PxFg/Btzs34utMpt1ktRy582OlIlKoVTe5NxBNfbWR9ajbPXDiAduHNvBlfdwoKh9Omw9ZF8McSp6NRqsY0uTcB367fx9s/b+eaU7owpnfb6hdQtXPi9RAWAwtnapPAqtHQ5N7IpWblc/fctfTtEMa9Z2ozvh7hHwSj7oPdibDhC6ejUapGNLk3YsUlhts/XENhUQn/uDSBQD9fp0NqugZcAtG9rCaBi4ucjkapamlyb6TyjxRz2werWf7HAf42sR9dWmszvh7l4wtjHoSMLbBmttPRKFUtTe6N0N6sAqa8+gvz16Vy/1m9OD8hxumQmoeeZ0HMUPj+CSjMdzoapY5Lk3sjk5RykHP/sZRt6bm8ccUQpo3o5nRIzUdpk8A5e+DXV52ORqnj0uTeiMxL2sOUV38hwM+Hj286WWvGOCHuFOg+HpY+B/mZTkejVJU0uTcCxhieX7iZW95fTb8O4Xx68yn0aqdN+DpmzENQkA0/veB0JEpVSZO7lysoLObWD1bz/MItXJAQw+zrh9G6ZaDTYTVv7fpB/BRY9i/I1kZPlXfS5O7F9mVbF06//C2V+87sxTMXxmt1R28x6n4oKYIfnqh+XqUcoP2ueanfUrK47t0V5BYU8drUIYzro+XrXiUyDoZcAyteh63f1X094mM1cRAcBSGtICSq/HDZa3ucf4h1YVepamhy90Lzf0vlzv+uoVWLQObeeDK922v5ulcadZ9V/70+F1ZLiqHgIOQdgIM7IC/j+H23+gYeTfTBkdZzaDv70b78c2CY/hA0Y5rcvYgxhpe+S+a5bzczuHMkr04drOXr3iw4Es543P3rLS6yfjDyD1hJPy/DHs6wXpeNPwD71kHyIjiSc+x6/EOOTfot21byI9DS/e9BOU6Tu5coKCzm7rlJfLF2D+cndOTx8/tr+Xpz5esHLaOtR00dzoXcfZCTCjl7j33eswZyvoLCvGOXDY6CiE7WI7IzRHS2X3eGiFgI0LufGyNN7l4gLbuA699dSdLuLO49oxd/Pr2r9nuqaiewpfVodZyb2oyBwzkVkv8eOLjLKhJK3whbFkBRQfnlQlq7JH77RyAizn6OBf9gj741VTea3B22bncW172zkuyCQl69fDDj+7ZzOiTVVIlAUJj1iO5R+TzGQG4aHNxpJfyDO6zhzB2QmgQbv7Q6DnfVsq1L0u9c/h9AeAz4adGiEzS5O2Rrei4frUzhnZ+3E9UigLl/Ppk+HfTCqXKYiNW9YGhbiD3x2OklJZC7107+dtIv/RHYnQjrP7OqiB5doVW2X67Yx+VHIDwGfP0b7O01J5rcG1BOQSFfJqXyUWIKiTsy8fURxvZuw98n9ic6VM9uVCPg4wNhHaxHp+HHTi8phuw9R5N/6Zn/wZ2wc5nVH60pcVlA7Fo/pTWAoipUAW1VYZpdS8hXU1d1dA95WEmJYdkfGcxdmcL8dakUFJbQvU1L7j+rFxMHdaRNqHaJp5oQH1+rHD4iFjjl2OnFhZC92yX574K8/UdrAmWlwN4k63XFsn9XgeFW0m/RGtr1h9jhEDvUuv9Ar1cBmtw9ZteBPD5elcLcxBRSMvMJDfTj/IQYLhwcw8DYCL1gqponX38rAUfGVT/vkbzyVUDzMqwqoq6vc/dB0kew8i1rmRZtrCTfaTjEDoP2A5ptmb8mdzfKP1LM17+n8tHKFH7emoEInNKtNXdP6MmEvu0I8teqjUrVWECI9Qivpr+CkmJI2wC7foVdy2HXMtg4z5rmGwAdBlmJPnaYlfhbtvF87F5AjBd0+DtkyBCzcuVKp8OoE2MMq3YeZG7iLuatTSXncBGxUcFcODiW8xM6EhMZ4nSISjU/OfsgZfnRhL9n9dFaPpFd7DP7oVbCj+5tXUtohEQk0RgzpLJpeuZeB2nZBazckUnijky+35TG1vRDBPv7cmb/dlw4OJZhXaLw8dFiF6UcE9oWev/JegAUFkDqWjvZ/wrJC2HtB9a04Cirnf64ERB3KrTp3STK7TW5V6OouISNe3NYtdNK5ok7MknJtLpYC/TzYVCnCKaN6MrZ8R1oGai7Uymv5B8EnYZZD7Dq82f+ATt/he1LYfsS2PCFNS2ktZXku5wGcadB6x6NMtlrNqogK7+Q1TszWbUjk8SdmazZeZBDR4oBaBMayJC4SK46OY7BnSPp2yGcAL/G+XdOqWZNBKK6Wo+Bl1jjMnfA9h/hjx+t5/WfWuNbtrWSfdyp1tl9q26NItk36+RujGFHRl5ZEcuqHZlsTsvBGPAR6N0+jAsGxzC4cyQJnSKJiQzWWi5KNVWRna3HoMuPntmXJvo/foR1H1vzhba3zuhLE35kF68ss282yT0rv5BNe3PYuDebjXtz2GQ/cg9bd9OFBvmR0CmSs+PbM7hzJANiI7SYRanmyvXMfvCVVrLP2GoV3/zxI2z7Hn77rzWvb6Bdt79z5Q2wtYh25Ey/yWWvI0UlbNufy8bUHDuJW8k8NevoDRFhQX70ahfG+Qkd6d0+jIROkXRv01IvgiqlKicCrU+wHkOusZL9/s2w42c4sO3o3bipa6z69678gitpfqG0CYbO1s1YHkj+HknuInIG8ALgC7xhjPFIX2T7cw+TlHKw7Ex8Y2oOW9NzKSqxqnf6+wrdolsyrEsUPduF0at9KL3ahdIuLEiLV5RSdScC0T2tR0WHc13uwHVpgC1zB6SssDpncXXGkzD8z24P0e3JXUR8gZeBcUAKsEJEPjfGrHf3tuas2MXT32wCoGNEMD3bhTK6dxt6tQulV7swuka3wN/X+8rClFJNWGBLaNvHelSmIKt8w2txp3okDE+cuQ8Fko0x2wBE5EPgPMDtyf3cAR0Y2iWKHm1DCQ/WluWUUo1AULjVHk67/h7djCeSe0dgl8vrFGCYB7ZDbFQIsVF6B6hSSlXkWJmFiEwTkZUisjI9Pd2pMJRSqknyRHLfDcS6vI6xx5VjjHnNGDPEGDMkOroWfUUqpZSqlieS+wqgu4h0EZEA4GLgcw9sRymlVBXcXuZujCkSkVuAb7CqQr5ljPnd3dtRSilVNY/UczfGzAfme2LdSimlqqeVwJVSqgnS5K6UUk2QV/TEJCLpwI46Lt4a2O/GcNxN46sfja/+vD1Gja/uOhtjKq1u6BXJvT5EZGVV3Ux5A42vfjS++vP2GDU+z9BiGaWUaoI0uSulVBPUFJL7a04HUA2Nr340vvrz9hg1Pg9o9GXuSimljtUUztyVUkpVoMldKaWaoEaT3EXkDBHZJCLJIjKjkumBIjLHnv6riMQ1YGyxIrJYRNaLyO8icnsl84wUkSwRWWM/Hmyo+OztbxeR3+xtr6xkuojIi/b+SxKRhAaMrafLflkjItkickeFeRp8/4nIWyKSJiLrXMZFici3IrLFfo6sYtkr7Xm2iMiVDRTb0yKy0f78/iciEVUse9xjwcMxzhSR3S6f41lVLHvc77sH45vjEtt2EVlTxbINsg/rxRjj9Q+sBsi2Al2BAGAt0KfCPDcB/7KHLwbmNGB87YEEezgU2FxJfCOBeQ7uw+1A6+NMPwv4ChBgOPCrg5/1XqybMxzdf8AIIAFY5zLuKWCGPTwDeLKS5aKAbfZzpD0c2QCxjQf87OEnK4utJseCh2OcCdxVg2PguN93T8VXYfqzwINO7sP6PBrLmXtZ133GmCNAadd9rs4D3rGH5wJjpIF6wTbGpBpjVtnDOcAGrB6pGpPzgHeNZRkQISLtHYhjDLDVGFPXO5bdxhizBDhQYbTrcfYOMLGSRScA3xpjDhhjMoFvgTM8HZsxZoExpsh+uQyrLwXHVLH/aqIm3/d6O158du6YAnzg7u02lMaS3Cvruq9i8iybxz7As4BWDRKdC7s4aBDwayWTTxKRtSLylYj0bdjIMMACEUkUkWmVTK/JPm4IF1P1F8rJ/VeqrTEm1R7eC7StZB5v2JfXYP0Tq0x1x4Kn3WIXHb1VRbGWN+y/04B9xpgtVUx3eh9Wq7Ek90ZBRFoCHwN3GGOyK0xehVXUMAB4Cfi0gcM71RiTAJwJ3CwiIxp4+9WyO3c5F/iokslO779jGOv/udfVJRaRvwJFwOwqZnHyWHgF6AYMBFKxij680SUc/6zd679PjSW516TrvrJ5RMQPCAcyGiQ6a5v+WIl9tjHmk4rTjTHZxphce3g+4C8irRsqPmPMbvs5Dfgf1l9fVzXqHtHDzgRWGWP2VZzg9P5zsa+0uMp+TqtkHsf2pYhcBZwDXGb/+ByjBseCxxhj9hljio0xJcDrVWzb0WPRzh/nA3OqmsfJfVhTjSW516Trvs+B0loJk4Hvqjq43c0un3sT2GCMea6KedqVXgMQkaFY+75BfnxEpIWIhJYOY114W1dhts+BK+xaM8OBLJfih4ZS5dmSk/uvAtfj7Ergs0rm+QYYLyKRdrHDeHucR4nIGcA9wLnGmLwq5qnJseDJGF2v40yqYttOd9U5FthojEmpbKLT+7DGnL6iW9MHVm2OzVhX0f9qj3sE60AGCML6O58MLAe6NmBsp2L9PU8C1tiPs4A/A3+257kF+B3ryv8y4OQGjK+rvd21dgyl+881PgFetvfvb8CQBv58W2Al63CXcY7uP6wfmlSgEKvc91qs6ziLgC3AQiDKnncI8IbLstfYx2IycHUDxZaMVVZdegyW1h7rAMw/3rHQgPvvPfv4SsJK2O0rxmi/Pub73hDx2ePfLj3uXOZ1ZB/W56HNDyilVBPUWIpllFJK1YImd6WUaoI0uSulVBOkyV0ppZogTe6qWRCRCBG5qQ7L3e+JeJTyNK0to5oFu1mIecaYfrVcLtcY09IzUSnlOXrmrpqLJ4BudhOtT1ecKCLtRWSJPX2diJwmIk8Awfa42fZ8l4vIcnvcqyLia4/PFZFZYjX5vEhEohv27SlVnp65q2ahujN3EZkOBBljHrUTdogxJsf1zF1EemM1+Xu+MaZQRP4JLDPGvCsiBrjcGDNbrLbm2xhjbmmQN6dUJfycDkApL7ECeMtuI+hTY8yaSuYZAwwGVtgtIQRztG2ZEo62RfIf4Jj2hZRqSFosoxRlbXuPwGqg6m0RuaKS2QR4xxgz0H70NMbMrGqVHgpVqRrR5K6aixysXrIqJSKdsdrvfh14A6uHHoBC+2werDZlJotIG3uZKHs5sL5Lk+3hS4Glbo5fqVrR5K6aBWNMBvCTfbH0mAuqWN34rRWR1cBFwAv2+NeAJBGZbYxZDzyA1UlDElYPS6WtHB4ChorVH+dorEbtlHKMXlBVyg20yqTyNnrmrpRSTZCeuatmRUT6Y7Up7uqwMWaYE/Eo5Sma3JVSqgnSYhmllGqCNLkrpVQTpMldKaWaIE3uSinVBGlyV0qpJkiTu1JKNUH/D0ixpKus60KEAAAAAElFTkSuQmCC\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -3684,7 +3684,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -3696,7 +3696,7 @@
},
{
"data": {
- "image/png": "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0eSufNaSbft4e8lOpp3ahU4nT4DUcfC/x2DvFqdDU01k9OjRLF68+Kj5N9xwAwUFBfTu3Zt77723WhXGypUrad++faP33aJFC9577z3+9Kc/0a9fP/r378/3338PwBtvvMHTTz9N3759Ofnkk9m1axd9+/YlODiYfv36MWvWLH7729+SmprKwIED6dOnD9dddx1lZWWMHz+e7t27k5qaypVXXslJJ51Utc+cnBwiIiJo27bxjQa0y1/lk0rKyjn3qW8pLq3g81tHENkiBA5mwzNDoX1/uHKe1R5eeY0vdPm7fPlyZs2axRtvvOFW+YMHDzJt2jTeffddL0fmHbNmzaJVq1ZMmzbtqGXa5a8KCM99vZUtuwv56/g+VmIHaNUORs2Ebd/AL+84Gp9qGgMHDuTMM8+kvLz2foZqatWqld8mdoCYmBimTp3qkW1pclc+Z3NuAc8s2swF/dpzZs8agw4PuhpShsFnd0PhXmcCVE3qmmuuITi4eYyLe/XVVxMS4pl2LprclU+pqDDc/eEqwkODuPf81KMLBAXBBU9BST4svKfpA1TKT2hyVz7l3WU7WbJtH3ef25uE6LDaCyX2hlP+AL+8DVsW1V5GqWZOk7vyGXsKSnh4wXqGdmnDxMEpxy484nZo0xXm/9EaXFspVY0md+UzHpy/lqLD5Tw8Po2goHpawoRGWMPy7d9mNY9USlWjyV35hK835DI3PYsbzjiBbokt3Vup6+nQ73Lrh005a7wboHKEJ7v89aR//OMfHDp0qMHreat739pocleOO3S4jD9/tJquCVHceGYDh80b/VcIbw3//QNUVHgnQOUYT3b560nHSu7uNtv0ZPe+tdHkrhz31BebyNhfxCPj0wgLaWCTt6g4GPMwZPwMS1/2ToDKMZ7s8veMM87gT3/6E0OHDqVHjx58++23AHV2zfv1119z/vnnV61/00038eqrr/L000+TlZXFmWeeyZlnnglAy5Ytue222+jXrx8//PADDzzwAEOGDKFPnz5Mnz6d2n4s6snufWujHYcpR63JyuOlxduYNCSFYV3jjm8jfS+F9Lfgyweg13nQqvE/PVc1fDIDdq3y7DbbpsHYR+tc7I0uf8vKyliyZAkLFizg/vvv54svvuDll1+utWveutx88808+eSTLFq0iPj4eAAKCwsZNmwYf//73wFITU3l3nvvBWDKlCnMnz+fCy64oNp2PNm9b230yl05przCcNcHq4iNDOWusY34mbsInD8Lyg/DJ3d6LkDlqPq6/L3iiiuAhnX569rN7/bt2wGra97XX3+d/v37M2zYMPbu3dvguvDg4GAuvvjiqueLFi1i2LBhpKWl8dVXX7FmTe33hCq79/UGvXJXjnl7yQ5WZuTx1KT+tI5s5LB5cSfA6XdaV+/rP7au4JXnHOMK21u80eVvbd381tU17+LFi6lwuY9zrFjCw8OrfkVbXFzMjTfeyNKlS0lJSWHmzJl1ruup7n1rU++Vu4ikiMgiEVkrImtE5A/2/DYi8rmIbLL/xtrzRUSeFpHNIrJSRBo+RIoKeHlFpTz5+UaGdWnDb/p5qBrl5JshMdUaVLvEvT63le9qqi5/6+qat1OnTqxdu5aSkhIOHDjAl19+WbVOze59XVXGGx8fT0FBwTFvAnuqe9/auFMtUwbcZoxJBYYDvxORVGAG8KUxpjvwpf0cYCzQ3Z6mA896PGrl9/7vq03sP3SYv5yf6rlh84JD4YKn4WAWfPVXz2xTOaopuvytq2velJQUJk6cSJ8+fZg4cSIDBgyoWmf69Omcc845VTdUXcXExHDttdfSp08fxowZw5AhQ2rdrye7962VMaZBEzAXOBvYALSz57UDNtiPnwcucylfVa6uadCgQUY1H9t2F5hud39s7ng33Ts7mH+bMfe1NmbnUu9sv5lYu3at0yGYZcuWmSuuuMLt8nl5eWbChAlejMhznnzySfPSSy+5Xb629wNYaurIqw26oSoinYEBwE9AkjEm2160C0iyH3cAdrqslmHPUwqAhxeso0VwELeP7umdHYy8F6LbWm3fy0u9sw/VJAK5y19Pdu9bG7eTu4i0BN4HbjHGVBsG3f4P0qBRP0RkuogsFZGlu3fvbsiqyo99v2UPC9fmcOOZ3UhsVfvAwo0W3grGPgY5q+CHZ7yzD9VkArXLX09271sbt5K7iIRiJfbZxpjKYcJzRKSdvbwdkGvPzwRce31KtudVY4x5wRgz2BgzOCEh4XjjV36kvMLw4Px1dIiJYNqpXby7s94XQM/z4OtHYf927+5LKR/kTmsZAV4G1hljnnRZNA+o/E4xFasuvnL+lXarmeFAnkv1jWrG3lu2k3XZB5kxthfhoV6+EhOBcx+DoGCYfyv4wHCS/sjocfMJx/M+uHPlfgowBThLRNLt6VzgUeBsEdkEjLKfAywAtgKbgReBGxsclQo4BSVlPP7ZRgZ1iuX8vu2aZqetk6369y1fwirf6JPEn4SHh7N3715N8A4zxrB3717CwxtWjVlvhY8xZjFQV1u1kbWUN8DvGhSFCnj/WrSZPQUlvDx1sOeaPrpjyG9h5Rz4dAZ0GwmRbZpu334uOTmZjIwM9J6Y88LDw0lOTm7QOvoLVeV1O/cd4qXF27hoQAf6pcQ07c6Dgq1h+Z4/HT7/C4zTG6zuCg0NpUsXL98bUV6jfcsor3v00/UECdxxjpeaPtanbRqcfBOseBO2fetMDEo1MU3uyqt+3r6Pj1dmc/3pJ9CutXf60HDL6TMgphPMvwVKPdtfiVK+SJO78pqKCsOD89fStlU400d0dTaYFpFw/pOwdzMsfrL+8kr5OU3uyms+XJHJyow8/jS2J5EtfOD2TrdRkHYJfPsk7N7gdDRKeZUmd+UVhw6X8dhn6+mX3Jpx/Xyo94kxj0CLKB2WTwU8Te7KK57731ZyDpZw7wWpBAU1YdPH+rRMsMZd3fEDrHjd6WiU8hpN7srjsg4U8cI3Wzi/bzsGdfLBduUDroBOp8LCeyE/x+lolPIKTe7K4x77dD0VBmaM7eV0KLUTgQv+AWVF1o+blApAmtyVR63YsZ+P0rO49rQuJMdGOh1O3eK7w2m3w5oPIGOp09Eo5XGa3JXHGGM1fUyIDuOGM7o5HU79ht8AIeHwyztOR6KUx2lyVx7z35XZLN9xgDvG9KRlmA80faxPeCvocQ6s+VAH9VABR5O78oji0nIeXbCOE9u3YsLAhnVw5Ki+E+HQHtj6tdORKOVRmtyVR7z07Vay8or5y/k+1vSxPt1GQXhrWOUfQ7Mp5S5N7qrRcg4W86+vt3DOiW0Z3jXO6XAaJiQMUi+EdfPhcKHT0SjlMZrcVaM98dkGysoNd53ro00f69N3IpQWwoZPnI5EKY/R5K4aZVVGHu8tz+DqUzrTKS7K6XCOT8eToVUHrZpRAUWTuzpulU0f20S24Hdn+UHTx7oEBUGfi2HzF1C41+lolPIITe7quL27LIMl2/dx6+getAoPdTqcxuk7ESrKYO2HTkeilEdoclfHZXVmHn/5aDUndY3j0sEpTofTeEl9IKGXDqStAoYmd9Vg+woPc90by4iLasH/XT6AkOAAOI1ErL7ed/wAB3Y4HY1SjRYAn0rVlMrKK7j57RXsLijh2SsGEdcyzOmQPCdtgvVXb6yqAKDJXTXIEws3snjzHv46rg/9UmKcDsezYjtDyjCtmlEBQZO7ctuCVdk8978tTB7WkYlDAqCevTZpl0DuWti12ulIlGoUTe7KLZty8rn93V8Y0DGGey9IdToc7zlxPEiwVs0ov6fJXdXrYHEp099YRmSLEJ6dPIiwkGCnQ/KeqHjoNtKqmtExVpUf0+SujqmiwnDrnHR27jvEvyYPpG3rcKdD8r60iXAww2o5o5Sf0uSujun/Fm3mi3W5/Pm83gzt4oPjoXpDz7EQGqlVM8qvaXJXdVq0PpdZX2zkogEdmHpyZ6fDaTphLaHXebD2Iyg77HQ0Sh0XTe6qVtv3FPKHd1bQu20rHhqfhogf9dHuCWkToWi/1d+MUn6o3uQuIq+ISK6IrHaZ10ZEPheRTfbfWHu+iMjTIrJZRFaKyEBvBq+849DhMq5/cxlBQcLzUwYR0SKAb6DW5YQzITJOq2aU33Lnyv1V4Jwa82YAXxpjugNf2s8BxgLd7Wk68KxnwlRNxRjDne+tZGNOPk9PGkBKm0inQ3JGcKjVLHLDJ1CS73Q0SjVYvcndGPMNsK/G7HHAa/bj14ALXea/biw/AjEi0s5Dsaom8PLibcxfmc3tY3oyokeC0+E4K+0SKCuyRmlSys8cb517kjEm2368C0iyH3cAdrqUy7DnKT/w/ZY9PPLJes45sS03nH6C0+E4L2UYxHTUqhnllxp9Q9UYYwDT0PVEZLqILBWRpbt3725sGKqRsg4UcdNbK+gSH8UTE/s1vxuotansKXLrIijIdToapRrkeJN7TmV1i/238szPBFw7HUm25x3FGPOCMWawMWZwQkIz//rvsOLScq5/cxmHyyp4fsogWoaFOB2S70i7BEwFrNFBPJR/Od7kPg+Yaj+eCsx1mX+l3WpmOJDnUn2jfJAxhnvnrmZlRh5PTuzHCQktnQ7JtyT2hqQ0WPkfpyNRqkHcaQr5NvAD0FNEMkRkGvAocLaIbAJG2c8BFgBbgc3Ai8CNXolaecxbS3bwn6UZ/P6sbow+sa3T4fimvpdA5lLYu8XpSJRyW73fv40xl9WxaGQtZQ3wu8YGpZrGj1v3MnPeGk7vkcAto3o4HY7v6nMxfH4frH4fTr/T6WiUcov+QrWZWrp9H9e8+jOd4qJ4alJ/goP0BmqdWidDp1OsqhnT4LYDSjlCk3sztOzX/Ux9ZQltW4fz1rXDiIls4XRIvi9tAuzdBNnpTkeilFs0uTcz6TsPcNUrS0hsFc7b1w4nMboZdOHrCanjIChUh+BTfkOTezOyKiOPKS//RGxUC966dhhJrTSxuy2yDXQfbQ/iUe50NErVS5N7M7E6M48rXv6J1hGhvD19OO1aRzgdkv9JmwAFu2D7t05HolS9NLk3A2uzDnLFyz/RMiyEt68dTocYTezHpedYaBGt3REov6DJPcBt2JXPFS//RERoMG9fO7z59vLoCaER0PsCWDsPSoudjkapY9LkHsA25eRz+Ys/EhosvH3tcDrGaWJvtLQJUHIQNi10OhKljkmTe4DanFvAZS/+RFCQldg7x0c5HVJg6HI6RCXCKu2OQPk2Te4BaNueQi5/8UcA3r52OF21vxjPCQ6xfrG68TMoOuB0NErVSZN7gPl1byGXvfAj5RWGt64dRrdETewel3YJlB+Gdf91OhKl6qTJPYDs3HeIy174kZKycmZfO4weSdFOhxSYOgyENl21akb5NE3uASJj/yEmvfAjh0rLmf3b4fRq28rpkAJX5SAe276Fg1lOR6NUrTS5B4CsA0Vc9uKP5BeX8ua0YaS218TudWkTAQOrP3A6EqVqpcndz+3KK+ayF3/kwKFS3vztMPp0aO10SM1DfDdoP0CrZpTP0vHU/FjG/kNMeXkJewsO88a0ofRNjnE6pOYl7RL47G54oqdVVXO8gkMhuIU9hUJw2JHHIWEuy8Oqlw1pASEREHcCJKZCfHdruVJocvdLxhg+WJ7JzHlrMMBr1wxhQMdYp8NqfgZcAQd2QOmh49+GMVBRZrW+KSuB8lLrcflhOFwARfugzH5eXgrlJUcel5VARemRbQWFWgk+MdUeHvBE62/rjhCkX9KbG03ufmZf4WHu/mAVn67ZxdDObfj7xH7apYBTwlvD2L85G0NZCezZBLlrrSlnLexcAqtduiZu0RISelVP+Imp0DLRubiV12ly9yOL1udyx3srOVhUyl1je/Hb07rqCErNXUgYtO1jTa6KD8Lu9UcSfu5a2LAAVrxxpExkvJXo47tDXLcjU0wn68dayq/pO+gHCkvKeGjBOt76aQe92kbzxrSh9G6nLWLUMYS3gpSh1uSqINe+yl8HOWusv6vfh+K8I2WCQiC2i53sT6ie+KPbNu7+gmoymtx93PId+7l1Tjq/7jvEdSO6cuvoHoSFBDsdlvJXLROtqesZR+YZA4f2wd7NNaYtsHURlLn0gBkaVT3hx3e3Wg3FddOk72M0ufuo0vIKnv5yE88s2ky71hG8c+1whnWNczosFYhEICrOmjoOq76sogIOZlZP+Hs3Q9YKWPsRmAqrXEQsJA+B5KGQMgQ6DIIw/YW0kzS5+6DNufncMied1ZkHmTAomfsuSCU6XJu4KQcEBUFMijWdcGb1ZWUlVrLPXGrdxN255EhXyBJk3bRNGWon/KFWlw16dd9kxBjjdAwMHjzYLF261OkwHFdRYXjth+08+sl6osJCeHh8Guf0aet0WEq5r2g/ZCyDDDvZZy6z+r8HiIyzr+6HWMm+/UAI047tGkNElhljBte2TK/cfUR2XhF3vLuSxZv3MLJXIo9cnEZitA5grfxMRCx0H2VNYA0mvnuDnex/tv5u/NRaJkGQeKL1a9/WKRDT0WqpE5NiPdfE3yia3H3A3PRM/vLRasoqDI9clMakISmIfn1VgSAoGJJSrWnQVda8Q/sgY6mV6DOXQ/ZKWP+x9eMsV5FxVsKvlvg72tVEHbVOvx6a3B2yr/AwG3blM/unX5m/MpuBHWOYdWl/OsXpiEkqwEW2gR6jralSRQUU5lq/+K057V5v1eWX1Ri3NiK27sQf09H6kVkzpsndyw4dLmNjTgEbd+WzISefDfbf3fklAIQECXeM6cl1I7oSEqw/EVfNVFCQ1YY+uu3RbfPBaq5ZuLv25L93M2z56uhuIMJaH0n0NRN/TEcIjwnoG7ya3D2ktLyCbXsKWb8rv1oi37n/EJX3rMNDg+iRFM3pPRLomRRNz7bRpLZvRXzLMGeDV8rXiRxpo59cy/1DY+DQ3qMTf95O2L8Ntv3P6qvHVYtoK8kn9LDq/hN7W9VHMZ0Doi8eTe4NVFFhyDxQVHUFvmFXPhtz8tmyu4DSciuLBwcJXeKjSEtuzYRByfRsG03PpGhS2kRqdwFKeYMIRMVbU4eBRy83xmrJc9SV/69Wvf+aD4+UDY20++JJPZLwE1OhZZJfXelrcj+GPQUlVhLfdaQ6ZVNOPoWHy6vKdIiJoGfbaM7slVh1Nd41IUp/RaqULxGx6voj20D7/kcvLyk40hdPZdcMmxZC+ptHykS0OTrhJ/SCiJimehUN4pXkLiLnAE8BwcBLxphHvbEfTykoKWNjTn61RL4xJ5+9hUfu3reJakHPpGguGZxCz7bR9EiKpkdSS/1xkVKBIKylVd1Ts8qncM/RffH88g4czj9SJqJNjbp9l6l1itXPjwM8ntxFJBh4BjgbyAB+FpF5xpi1nt5XfYwxHCwuY3d+MbkHS8ix/+bml5BzsJjc/BIy9xeReaCoap3IFsF0T4pmVO8kerSNppedyONbttDmiUo1N1Hx0GWENVUyxqrLz11nJf79v1rP62rVEx5Td+KP6ei1K39vXLkPBTYbY7YCiMg7wDjA48k952AxG3PyqyXu3S6JOze/mOLSiqPWiwgNJqlVGInR4QzqFMvlwzrSI8mqF0+OjSBI68WVUnUROZKge4ypvqyqVc9Oqz7f9cZuXa16xj4Ow6Z7PExvJPcOwE6X5xnAsDrKNsoHyzP526frq563DAshMTqMhOgw+qfEkBgdRmKrMJJahZMQbf1NjA6jZViIXoUrpTyvWqueQUcvr61VT6eTvBKKYzdURWQ6MB2gY8eOx7WN8/u2Y2DHGBLtpB0VpveHlVI+rL5WPR7kjWyYCaS4PE+251VjjHkBeAGsjsOOZ0cpbSJ1iDmllKqFN1rq/wx0F5EuItICmATM88J+lFJK1cHjV+7GmDIRuQn4DKsp5CvGmDWe3o9SSqm6eaWS2hizAFjgjW0rpZSqn/93oKCUUuoomtyVUioAaXJXSqkApMldKaUCkE8MkC0iu4Ffj3P1eGCPB8PxNI2vcTS+xvP1GDW+49fJGJNQ2wKfSO6NISJL6xr92xdofI2j8TWer8eo8XmHVssopVQA0uSulFIBKBCS+wtOB1APja9xNL7G8/UYNT4v8Ps6d6WUUkcLhCt3pZRSNWhyV0qpAOQ3yV1EzhGRDSKyWURm1LI8TETm2Mt/EpHOTRhbiogsEpG1IrJGRP5QS5kzRCRPRNLt6d6mis/e/3YRWWXve2kty0VEnraP30oR8e5IAtX33dPluKSLyEERuaVGmSY/fiLyiojkishql3ltRORzEdlk/42tY92pdplNIjK1iWJ7XETW2+/fhyISU8e6xzwXvBzjTBHJdHkfz61j3WN+3r0Y3xyX2LaLSHod6zbJMWwUY4zPT1hdB28BugItgF+A1BplbgSesx9PAuY0YXztgIH242hgYy3xnQHMd/AYbgfij7H8XOATQIDhwE8Ovte7sH6c4ejxA0YAA4HVLvMeA2bYj2cAf6tlvTbAVvtvrP04tgliGw2E2I//Vlts7pwLXo5xJnC7G+fAMT/v3oqvxvK/A/c6eQwbM/nLlXvVoNvGmMNA5aDbrsYBr9mP3wNGShMNlGqMyTbGLLcf5wPrsMaS9SfjgNeN5UcgRkTaORDHSGCLMeZ4f7HsMcaYb4B9NWa7nmevARfWsuoY4HNjzD5jzH7gc+Acb8dmjFlojCmzn/6INQqaY+o4fu5w5/PeaMeKz84dE4G3Pb3fpuIvyb22QbdrJs+qMvYJngfENUl0LuzqoAHAT7UsPklEfhGRT0TkxKaNDAMsFJFl9vi1NblzjJvCJOr+QDl5/ColGWOy7ce7gKRayvjCsbwG65tYbeo7F7ztJrvq6JU6qrV84fidBuQYYzbVsdzpY1gvf0nufkFEWgLvA7cYYw7WWLwcq6qhH/BP4KMmDu9UY8xAYCzwOxEZ0cT7r5c9LONvgHdrWez08TuKsb6f+1xbYhG5BygDZtdRxMlz4VngBKA/kI1V9eGLLuPYV+0+/3nyl+TuzqDbVWVEJARoDextkuisfYZiJfbZxpgPai43xhw0xhTYjxcAoSIS31TxGWMy7b+5wIdYX31duTWwuZeNBZYbY3JqLnD6+LnIqayusv/m1lLGsWMpIlcB5wOT7X8+R3HjXPAaY0yOMabcGFMBvFjHvh09F+38cREwp64yTh5Dd/lLcndn0O15QGWrhAnAV3Wd3J5m18+9DKwzxjxZR5m2lfcARGQo1rFvkn8+IhIlItGVj7FuvK2uUWwecKXdamY4kOdS/dBU6rxacvL41eB6nk0F5tZS5jNgtIjE2tUOo+15XiUi5wB3Ar8xxhyqo4w754I3Y3S9jzO+jn2783n3plHAemNMRm0LnT6GbnP6jq67E1Zrjo1Yd9Hvsec9gHUiA4RjfZ3fDCwBujZhbKdifT1fCaTb07nA9cD1dpmbgDVYd/5/BE5uwvi62vv9xY6h8vi5xifAM/bxXQUMbuL3NworWbd2mefo8cP6R5MNlGLV+07Duo/zJbAJ+AJoY5cdDLzksu419rm4Gbi6iWLbjFVXXXkOVrYeaw8sONa50ITH7w37/FqJlbDb1YzRfn7U570p4rPnv1p53rmUdeQYNmbS7geUUioA+Uu1jFJKqQbQ5K6UUgFIk7tSSgUgTe5KKRWANLmrZkFEYkTkxuNY725vxKOUt2lrGdUs2N1CzDfG9GngegXGmJbeiUop79Erd9VcPAqcYHfR+njNhSLSTkS+sZevFpHTRORRIMKeN9sud4WILLHnPS8iwfb8AhGZJVaXz1+KSELTvjylqtMrd9Us1HflLiK3AeHGmIfshB1pjMl3vXIXkd5YXf5eZIwpFZF/AT8aY14XEQNcYYyZLVZf84nGmJua5MUpVYsQpwNQykf8DLxi9xH0kTEmvZYyI4FBwM92TwgRHOlbpoIjfZG8CRzVv5BSTUmrZZSiqm/vEVgdVL0qIlfWUkyA14wx/e2ppzFmZl2b9FKoSrlFk7tqLvKxRsmqlYh0wuq/+0XgJawRegBK7at5sPqUmSAiifY6bez1wPosTbAfXw4s9nD8SjWIJnfVLBhj9gLf2TdLj7qhijWM3y8isgK4FHjKnv8CsFJEZhtj1gJ/xhqkYSXWCEuVvRwWAkPFGo/zLKxO7ZRyjN5QVcoDtMmk8jV65a6UUgFIr9xVsyIiaVh9irsqMcYMcyIepbxFk7tSSgUgrZZRSqkApMldKaUCkCZ3pZQKQJrclVIqAGlyV0qpAKTJXSmlAtD/A+vNP5R7EsAPAAAAAElFTkSuQmCC\n",
+ "image/png": "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0eSufNaSbft4e8lOpp3ahU4nT4DUcfC/x2DvFqdDU01k9OjRLF68+Kj5N9xwAwUFBfTu3Zt77723WhXGypUrad++faP33aJFC9577z3+9Kc/0a9fP/r378/3338PwBtvvMHTTz9N3759Ofnkk9m1axd9+/YlODiYfv36MWvWLH7729+SmprKwIED6dOnD9dddx1lZWWMHz+e7t27k5qaypVXXslJJ51Utc+cnBwiIiJo27bxjQa0y1/lk0rKyjn3qW8pLq3g81tHENkiBA5mwzNDoX1/uHKe1R5eeY0vdPm7fPlyZs2axRtvvOFW+YMHDzJt2jTeffddL0fmHbNmzaJVq1ZMmzbtqGXa5a8KCM99vZUtuwv56/g+VmIHaNUORs2Ebd/AL+84Gp9qGgMHDuTMM8+kvLz2foZqatWqld8mdoCYmBimTp3qkW1pclc+Z3NuAc8s2swF/dpzZs8agw4PuhpShsFnd0PhXmcCVE3qmmuuITi4eYyLe/XVVxMS4pl2LprclU+pqDDc/eEqwkODuPf81KMLBAXBBU9BST4svKfpA1TKT2hyVz7l3WU7WbJtH3ef25uE6LDaCyX2hlP+AL+8DVsW1V5GqWZOk7vyGXsKSnh4wXqGdmnDxMEpxy484nZo0xXm/9EaXFspVY0md+UzHpy/lqLD5Tw8Po2goHpawoRGWMPy7d9mNY9USlWjyV35hK835DI3PYsbzjiBbokt3Vup6+nQ73Lrh005a7wboHKEJ7v89aR//OMfHDp0qMHreat739pocleOO3S4jD9/tJquCVHceGYDh80b/VcIbw3//QNUVHgnQOUYT3b560nHSu7uNtv0ZPe+tdHkrhz31BebyNhfxCPj0wgLaWCTt6g4GPMwZPwMS1/2ToDKMZ7s8veMM87gT3/6E0OHDqVHjx58++23AHV2zfv1119z/vnnV61/00038eqrr/L000+TlZXFmWeeyZlnnglAy5Ytue222+jXrx8//PADDzzwAEOGDKFPnz5Mnz6d2n4s6snufWujHYcpR63JyuOlxduYNCSFYV3jjm8jfS+F9Lfgyweg13nQqvE/PVc1fDIDdq3y7DbbpsHYR+tc7I0uf8vKyliyZAkLFizg/vvv54svvuDll1+utWveutx88808+eSTLFq0iPj4eAAKCwsZNmwYf//73wFITU3l3nvvBWDK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",
"text/plain": [
""
]
@@ -3708,7 +3708,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -3720,7 +3720,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEXCAYAAABWNASkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABD5UlEQVR4nO3dd3hUVfrA8e+bTkhCEjqEKh1CL1aULjYQEfFnQWUXG/aG66rorr2guKuuhbUsrigWWEQFKSoKSg8dAtJCIBCSkAQSUs7vj3sTJiEhE5jJnUzez/PMM3dufefOnXfOnHvvOWKMQSmllH8JcDoApZRSnqfJXSml/JAmd6WU8kOa3JVSyg9pcldKKT+kyV0ppfyQJnc/JiI7RWRwBfNMFpH/+FJMp7HO60Rk3hmuo3g/iEhLETEiEuSZCH2XiHwgIn93OIabRGSJkzH4I03uHiAi54vIryKSISKHReQXEenjdFw1hTFmujFmqNNxlKcm/VhUJREJFZFpInJERPaLyP2nmHesiGyxv6MpIvKhiERVZbxVTZP7GbIPkDnAG0As0BR4Csit5HpERKr156HJ62Te3CfV5Zjx4j6YDLQFWgADgIdF5OJy5v0FOM8YUwdoDQQBjv5j8TafPzCqgXYAxpj/GmMKjDHHjDHzjDEJ9t/NX0TkH3aJYbOIDCpaUEQWi8gzIvILcBRoLSIdRGS+/Q9gi4iMcZn/UhFZbZdU9ojIZNdAROQGEdklIqki8lgl3kOYiMwQkUwRWSUi3VzWOUlEttvTNorIlS7Tit7fFBFJBSaLyFkistCO4ZCITBeR6FLb62OvK01E/i0iYfb6YkRkjogctKfNEZG4UtvbYcfyh4hc5zK+wr/1IvK6vd+OiMhKEbmggkVuEZF9IpIsIg+6rCfAZb+kishnIhJrTysqpY8Xkd3AQuAne9F0EckSkXNOEWOgiLxi77s/RGSia6m/nGPmZhHZZO+XHSJyq8v6LhKRvSLyF3udO4v2m4sYEfnGXv43ETnLjX1pRORue3uHROSloh+aco6LOiLykf3Z7hKRv0rJHyYp73tyCuOAvxlj0owxm4B3gZvKmtEYs8cYc8hlVAHQxo1tVF/GGH2cwQOIAlKBD4HhQIzLtJuAfOA+IBi4BsgAYu3pi4HdQGeskkQdYA9ws/26B3AI6GTPfxEQj/Wj3BU4AIy0p3UCsoD+QCjwqr3twRXEPxnIA0bbMT4I/AEE29OvBprY27wGyAYal3p/d9nx1sL6wgyxY6iPldhec9neTmA90Azrn84vwN/taXWBq4BwIBL4HPjanlYbOAK0t183Bjq7xLHEjc/qensbQcADwH4gzGU//McebgkY4L/2duOBg0X7ErgHWAbE2e/zX8B/Sy37kb1sLZdxQW7EeBuw0V53DPCD67KcfMwEA5cCZwECXIiV9Hu6HDP59vEQak/PdtmPH2Adv33t9U0HPnUjTgMssj/D5sBW4E+nOC4+AmbZn2tLe/7x7nxPytl+jB1DQ5dxo4F1p1jmfHu9xt4HQ53OH17NTU4H4A8PoKP9JdlrH6SzgYb2QbsPEJd5fwdusIcXA0+7TLsG+LnUuv8FPFnOdl8DptjDT7h+Ke3Echz3kvsyl9cBQDJwQTnzrwFG2MM3AbsrWP9IYLXL653AbS6vLwG2l7NsdyDN5f2kYyX/WqXmuwk3knsZ608Durnsh9LJvYPLvC8C79vDm4BBLtMaY/1ABrks29pletE4d5L7QuBWl9eDOTm5P13BOr4G7rGHL7KPydou0z8DHreHPwDeK/V5bHYjTgNc7PL6DmBBWccFEGgfi51cxt0KLHaZv9zvSTnbb2bHEOYybgiw043Ym9qfd7vKHjPV6aHVMh5gjNlkjLnJGBMHdMEq6b5mT04y9hFl22VPL7LHZbgF0E9E0osewHVAIwAR6Scii+y/thlYpbx69rJNXNdljMnGKpG5w3W5QqwfqSb2Nm8UkTUu8XRx2Wbp+BGRhiLyqYgkicgR4D+l5i+9TPH+EJFwEfmX/bf9CFapP1pEAu33c439npPtaoQObr6/otgetKsvMuz3UqeM2CqME+tz+spln2zC+pvfsJxlK6PE51jOekrv8+Eiskysqrx0rATt+r7S7P1XpPQxuN9l+CgQ4Was5e2f0tPqYZXId5Wav6nL64q+J6Vl2c+uJ0WjgMwKYsYYkwR8B3xa0bzVmSZ3DzPGbMYqDXWxRzUVEXGZpTlWKaV4EZfhPcCPxphol0eEMeZ2e/onWP8KmhnrxNDbWH/FwSptNytakYiEY1VBuMN1uQCsKoF9ItICqx5zIlDXGBONVaXi+n5KNyv6rD0u3hgThVUVIqXmaeYy7Lo/HgDaA/3sZfsXhQVgjPneGDMEq6S82Y7NLXb9+sPAGKyqs2isv+ilY3Mnzj3A8FKfU5idNIqYcoYrkoy1/8uK4aT1iUgo8AXwMlYVRTQwl5LvK0ZEapfzXs5EefunRIxYVYt5WD+KrvO77q+KviclGGPSsPZVN5fR3YANbkVu/cuq8NxCdabJ/QyJdQL0gaITfyLSDLgWq04WoAFwt4gEi8jVWFU4c8tZ3RygnVgnRoPtRx8R6WhPjwQOG2NyRKQv8H8uy84ELhPrsswQ4Gnc/3x7icgo+6TdvVhX+izDqgoxWPXNiMjNnPjRKk8kVqkqQ0SaAg+VMc+dIhJnn4R8DJjhsuwxrBOPscCTRQvY/whG2Ekq195GoZvvr2jd+fZ7CRKRJyhZ6ivL4/a/ic5Y50GK4nwbeMb+8UNE6ovIiFOs56Ada2s34vwMuEdEmop1IvqRCuYPwapLPwjki8hwoKzLQp8SkRD7R+4yrPMZZ+ohsU6CN8M6DzGjrJmMMQVY7+sZEYm099v9WP/qilTme1LkI+CvdgwdgD9jFaxOIta9EM3t4RbAM8ACN99ntaTJ/cxlAv2A30QkGysprscqhQL8hnW51iGsA2q0MabM6hJjTCbWF3MsVqllP/AC1pcXrHrNp0UkE6uO/TOXZTcAd2KV7pOx6pP3uvkeZmFVeaQBNwCjjDF5xpiNwCvAUqyTt/FYJ0BP5SmgJ1ap+BvgyzLm+QSYB+wAtnPikrTXsE6+HcLaj9+5LBOAlRD2AYexTgzejvu+t9e3Fesvfw4VV538CCRiJYGXjTFFN0q9jvUPap79WSzDOgbKZIw5ivXZ/2JX5Zx9im2+i7VvEoDVWAkuH6vap6x1ZwJ3Yx0LaVg/+LNLzbbfnrYP64TpbfY/zDM1C1iJdR7mG+D9U8x7F9ZJzB3AEqxjYJrLdLe/Jy6exDp+dmF9Vi8ZY74DEJHmYl2Z1NyetxPwq/0d/QXYgvVj4LekZDWX8iQRuQnrCoLznY5FVU92SfxtY0yLCmcue/mLsE4Ux1Uwa2XXa4C2xphET65XeY6W3JXyISJSS0QuEZEgu1rrSeArp+NS1Y8m9xpARL61/6KWfvzF6dg8SUQuKOd9ZlW8dNURkbfLibPoBPlTWNUoq7GuxHnCgRh9Yl+WF4NUfANajafVMkop5Ye05K6UUn5Ik7tSSvkhn2jFr169eqZly5ZOh6GUUtXKypUrDxlj6pc1zSeSe8uWLVmxYoXTYSilVLUiIrvKm6bVMkop5Yc0uSullB/S5K6UUn7IreQuVu8t68Rq+nWFPS5WrB6DttnPMfZ4EZGpIpIoIgki0tObb0AppdTJKlNyH2CM6W6M6W2/noTVOH9brIaVJtnjh2M1ANQWmAC85alglVJKuedMqmVGYHUth/080mX8R8ayDKuzhcZnsB2llFKV5G5yN1jNm64UkQn2uIbGmGR7eD8neqFpSsmmVPdSsscVpZRSXubude7nG2OSRKQBMF9ESrQFbYwxdhOgbrN/JCYANG/evIK5y/H7u/DjixAaASG1ISTSHrZfh0Zaw2VOt8eH1YHwehDoE5f8K6WUR7iV0Yq6DzPGpIjIV1g9pR8QkcbGmGS72iXFnj2Jkt1vxVGyO62idb4DvAPQu3fv02u9LLY1dLgEcrPgeJb1nJUCx3fY47Kt8RX2ciYQ0QAiGkJkI+sR0ejEcNHriAYQGHxaoSqlapZjxwtIO3qctKPHST+aZw/nkZZdcty4c1syoH0Dj2+/wuRud2sWYIzJtIeHYnXhNhsYBzxvP8+yF5kNTBSRT7F6p8lwqb7xrDaDrMepFBZC3lEryR/PhtzMEz8Ex7MgJ936QchMhswD1nPyWmvcST8KArXruST+hhDTEjpeAfXbe+UtKqV8izGGfRk5rE/KYFPyEQ5m5lqJOzuvRNLOzS+/F8iI0CCiw4OJCQ8h53iZnWydMXdK7g2xenovmv8TY8x3IrIc+ExExmN1czXGnn8uVu/riVg9qd/s8agrIyDAqn4JdbdDd1tBPmQftJJ91oETyT9rP2Taj/3rrGkL/w4N4yH+KuhyFUSfZjWTUsqnGGNISj/G+qQM1iVlsC7pCBuSMkjNPg6ACMSGhxQn6riYcOKbBhNT+8S4mPBgosNDSgyHBHn/FiOfaM+9d+/eptq2LZN5ADZ8Betnwt7l1rhm/SD+aug0EiLKbNNHKeVjjDHsTXNN5Bls2HeEw3YiDwwQ2jaIIL5pHeLj6tClaR06NY4iLDjQsZhFZKXL5eklp2ly96C0nbD+C1j3BaRsAAmE1hdCl9HQ8TLr5K1SynFFibwoiRcl9PSjeQAEBQhtG0YS3zSK+KZWIu/ocCIviyZ3JxzYaJXm182E9F0QGArthlqJvt0wCK7ldIRK1QjGGHYfPloika9POkLGsROJvH2jyOIk3qVpHTo0ivS5RF4WTe5OMgaSVlpJfsOXVh19SCR0uBTiR0Pri/QKHKU8xBjDrtSjJUrj65MyOJKTD0BwYKlE3qQO7atJIi+LJndfUVgAO5fAus9h02zIybCuvLn6A2hxjtPRKVWt5OYXsDftGBv2HbES+d4M1u/LINMlkXdoFEWXpnWsevKmdWjXKILQoOqZyMuiyd0X5edC4gKY/zik74Yr3oBuY52OSimfkZtfwL70HPamHWVv2jGX52MkpR3jQGYORekrJDCADo0jSybyhpFVclWKk06V3PW2TKcEhVo3YDU/Gz67Eb66FQ5tgwGPWZdvKuXniqpQdh8+kbyT0o8VDx84klti/sAAoXGdMOJianF+23rExdQiLiacDo0ia0QiryxN7k4Lj4Xrv4Rv7oefX4bD22HkW3rCVfmd7Nx81u5JZ+WuNFbtTmP1nvTiq1PAOrHZJLoWcTG1uLBdfZpGh9sJvBZxseE0jAwlKFATuLs0ufuCoBCrWqZeO5j/hFVNM/a/1h2wSlVDRaXyVbvT7GSezpb9Ryi0q1HaNYzg4s6N6NE8mtb1I2gaXYuGUWEEBoizgfsRTe6+QgTOu9tqL+fLP8O7A+H/ZkCjLk5HplSFjh0vYO3edFbtTmPVrnRW704rvoszMjSI7s2jGTqwLT1bxNC9WTR1aukVYt6myd3XdLwMbvkOPhkL04bB6GnWdfFKOcAYw7G8ghINXqUdzSPdbkslJTOHhL0ZbEw+QoFdLG9drzYDOjSgZ/MYeraIpm2DSC2RO0CTuy9q3A3+vAD+O9Z6DH0Gzr7dKt0rdZoKCw0Zx/JKJuji5+Mczj4x7NqK4fFTNIAVFRZE5yZ1uO3C1vRsHkOP5jHE1g6pwnelyqPJ3VdFNYGbv4UvJ8D3j8KhrXDJS3rDkwIgJ6/AJQGfSMbpxSXsE4k6zZ6WcSyP8q58DgwQlwaugmkWG07XuDrEhIcUjyt6jq1tjYsODyZYT3D6LE3uviykNoz5GBY8Bb+8ZrVdc/UHUCva2biUxxhjyMzNJz27ZKI+nH28uGR9UvI+epyjp2gmtlZw4IlkXDuYxtG1iHVN0LVPbqUwKiwI0X+GfkWTu68LCIAhT0G9tvC/e+D9IdaJ1tjWTkemSskrKCTdpbrDSsYuw9l5HHYZl24n6/zCsovTIlCnVrBdeg6mYVQY7RtFlkjKsSWalrWGq+ut9MqzNLlXFz2uh+gW8NkN8O4gGDsdWpzrdFQ12q7UbCZ9sY6k9GOkZR8nMze/3HlDAgOILq7SCKZtg4jiao4Yl/bAi0rVseEhRNUK1hOR6rRpcq9OWl0Af1oAn4yBj0bA5VOh+7VOR1UjGWN45IsENiQdYWDHBsUJuqg+unTSDg8J1GoPVaU0uVc3dc+C8fOtJgu+vg1SE2HgX/VKmir22Yo9LNtxmOdGxXNtX+15S/kePdVdHRU1WdDjeqvJgjXTnY6oRknJzOGZbzbRt1Us1/RuVvECSjlAk3t1FRQCl78BLS+AbydZV9KoKvHU7I3k5Bfy3Kh4ArROXPkoTe7VWUAAjHzTqpL56narvXjlVfM3HuCbdcncPbANZ9WvZKfrSlUhTe7VXXRzGP4C7P4Vlv7D6Wj8WmZOHo9/vZ72DSOZ0P8sp8NR6pQ0ufuDbtdCx8th4d9h/3qno/FbL32/hQOZOTx/Vby2Ha58nh6h/kAELnsdwqKt5grycytcRFXOyl2H+XjZLsad05IezWOcDkepCmly9xe168KIf0DKBlj0jNPR+JXc/AImfbGOxlFhPDisvdPhKOUWTe7+pN0w6HUT/DIVdv7idDR+4+3FO9iWksXfr+xCRKjeGqKqB03u/mboMxDT0rrBKeeI09FUe4kpmfxzUSKXd2vCwA7aM5aqPjS5+5vQCBj1DmTshe8edTqaaq2w0PDol+uoFRLIE5d1cjocpSpFk7s/atYXzr8P1vwHNn/jdDTV1ie/72b5zjT+emlH6keGOh2OUpWiyd1fXTgJGnWF2XdDVorT0VQ7+zNyeOHbzZzXpi6je8U5HY5SlabJ3V8FhcCodyE300rw5XXBo8r05Oz1HC8o5JmR8dqao6qWNLn7swYdYPBk2PotrP7Y6Wiqje/WJ/P9hgPcN6QdLevVdjocpU6L28ldRAJFZLWIzLFftxKR30QkUURmiEiIPT7Ufp1oT2/ppdiVO/rdBq36WydXD//hdDQ+L+NYHk/M2kCnxlH86fxWToej1GmrTMn9HmCTy+sXgCnGmDZAGjDeHj8eSLPHT7HnU04JCIARb4IEwle3aeNiFXjhu80cysrlhau6EqSdP6tqzK2jV0TigEuB9+zXAgwEZtqzfAiMtIdH2K+xpw8SrbR0VnQzuOQl2LMMfp3qdDQ+67cdqXzy227Gn9+K+Lg6Toej1Blxt2jyGvAwUGi/rgukG2OKOo3cCzS1h5sCewDs6Rn2/MpJXcdApxGw8BlITnA6Gp+Tk1fAo1+tIy6mFvcNaed0OEqdsQqTu4hcBqQYY1Z6csMiMkFEVojIioMHD3py1aosInDZaxBeF766FfJynI7Ip7y5KJEdB7N59sp4wkO0iQFV/blTcj8PuEJEdgKfYlXHvA5Ei0jRtyAOSLKHk4BmAPb0OkBq6ZUaY94xxvQ2xvSuX7/+Gb0J5abwWLtxsY2w8G9OR+MztuzP5M3F2xnVoyn92+mxqPxDhcndGPOoMSbOGNMSGAssNMZcBywCRtuzjQNm2cOz7dfY0xcaoxdZ+4y2Q6D3eFj6T9i5xOloHFdQaJj0ZQJRtYL5qzYxoPzImVwO8Ahwv4gkYtWpv2+Pfx+oa4+/H5h0ZiEqjxv6N4htbV09k5PhdDSO+s+yXazenc7jl3UktnaI0+Eo5TGVSu7GmMXGmMvs4R3GmL7GmDbGmKuNMbn2+Bz7dRt7+g5vBK7OQEhtq3GxI/uszrVrqKT0Y7z43Wb6t6vPyO5NK15AqWpEL+StqeJ6wwUPwNpPYMdip6OpcoWFhkdmJmCAZ0Z20SYGlN/R5F6TXfAA1GkO8x6HwsKK5/cj//ltF0sSD/HXSzvRLDbc6XCU8jhN7jVZcBgMehz2J8C6z52Opsr8cSib5+Zu5sJ29bm2bzOnw1HKKzS513RdRkPjbtalkTXg2veCQsODn68lOFB44aquWh2j/JYm95ouIACG/h0y9sBvbzsdjde9+/MOVu5K4+kRXWhUJ8zpcJTyGk3uymo1su0w+PlVOHrY6Wi8Zsv+TF6dt5WLOzdiRPcmToejlFdpcleWIU/D8Uz48UWnI/GK4/mF3P/ZGiLDgnjmSr06Rvk/Te7K0qAD9LgBlr8Hh/3v1oR/LEpkw74jPDsqnroR2h+q8n+a3NUJA/4CgSHww1NOR+JRCXvT+eeiREb1bMqwzo2cDkepKqHJXZ0Q2QjOvQs2fg17ljsdjUfk5BVw/2drqR8RypOXd3Y6HKWqjCZ3VdK5d0FEQ5j3V7/oVPuVeVtITMnixdFdqVMr2OlwlKoymtxVSaERcNGjVq9Nm+c4Hc0Z+W1HKu8t+YPrz26uTfmqGkeTuzpZjxugXnuY/yQU5DkdzWnJzs3nwZlraRYTzqPDOzodjlJVTpO7OllgkHVp5OHtsPIDp6M5Lc/M3cTetGO8MqYbtUO1ZyVV82hyV2VrNwxanA+Ln4ecI05HUyk/bj3IJ7/t5s8XtKZPy1inw1HKEZrcVdlErE49jh6CX15zOhq3ZRzN45GZCbRtEMH92tG1qsE0uavyNe1pNSy29J+QkVTx/D5g8v82cDArl1fHdCcsONDpcJRyjCZ3dWqDngBTCIuecTqSCn23PpmvVicxcUAb4uPqOB2OUo7S5K5OLaYF9J0Aaz6B/eucjqZch7Jyeeyr9XRpGsXEgW2cDkcpx2lyVxXr/yCE1YH5TzgdSZmMMfzly3Vk5ubz6pjuBAfqYa2UfgtUxWrFQP+HYPtCSFzgdDQn+XpNEvM2HuDBoe1o1zDS6XCU8gma3JV7+v4ZoltYpffCAqejKZaccYwnZm2gd4sYxp/f2ulwlPIZmtyVe4JCrZOrB9bD2k+djgawqmMenplAfoHh5au7ERigbbQrVUSTu3Jfl6ugSU9Y+Hc4ftTpaPjk9938vO0Qf7m0Iy3r1XY6HKV8iiZ35T4Rq7/VzH2w7E1HQ9lz+CjPfrOJ89rU5fp+zR2NRSlfpMldVU7L86D9JbDkNcg66EgIhYWGR75IQER44aqu2mWeUmXQ5K4qb/BTkHcUfnzBkc1P/303v25P5bFLOxIXE+5IDEr5Ok3uqvLqt4Ne42Dlv+FQYpVues/hozw3dxMXtK3H2D7NqnTbSlUnmtzV6bnoUQgKgx+erLJNFhYaHpq5lgARntfqGKVOSZO7Oj0RDeC8e6zemvauqJJNfrxsF8t2HObxyzrSNLpWlWxTqepKk7s6fWffbt29uvh5r29qV2o2z3+7mQvb1WdMb62OUaoiFXZRIyJhwE9AqD3/TGPMkyLSCvgUqAusBG4wxhwXkVDgI6AXkApcY4zZ6aX4lZNCI+GcibDwb7B3JcT18spmrOqYBIICheevitfqmCqSl5fH3r17ycnJcTqUGi8sLIy4uDiCg93v5N2d/sdygYHGmCwRCQaWiMi3wP3AFGPMpyLyNjAeeMt+TjPGtBGRscALwDWVfTOqmug7AZb+w7py5rrPvLKJD5fu5Pc/DvPi6K40rqPVMVVl7969REZG0rJlS/1BdZAxhtTUVPbu3UurVq3cXq7CahljybJfBtsPAwwEZtrjPwRG2sMj7NfY0weJHhn+KywKzrkTtn0PSas8vvo/DmXzwnebGdC+Plf3ivP4+lX5cnJyqFu3riZ2h4kIdevWrfQ/KLfq3EUkUETWACnAfGA7kG6Mybdn2Qs0tYebAnsA7OkZWFU3yl/1vRXCouHHFz262oJCw0OfryU4MIDnRunVMU7Qfe4bTudzcCu5G2MKjDHdgTigL9Ch0lsqRUQmiMgKEVlx8KAzdzoqDykqvW/9Fvat8dhq//3LH6zYlcbkyzvTqE6Yx9arnCciPPDAA8WvX375ZSZPnuzVbbZs2ZKrrrqq+PXMmTO56aabvLpNJ1XqahljTDqwCDgHiBaRojr7OKCok80koBmAPb0O1onV0ut6xxjT2xjTu379+qcXvfId/W61OvTwUOl9x8EsXvp+C4M6NGBUz6YVL6CqldDQUL788ksOHTpUpdtduXIlGzdurNJtOqXC5C4i9UUk2h6uBQwBNmEl+dH2bOOAWfbwbPs19vSFxhjjwZiVLwqrA2ffAVu+geSEM1pVQaHhwc/XEhYcyLOj9OoYfxQUFMSECROYMmXKSdN27tzJwIED6dq1K4MGDWL37t0A3HTTTdx9992ce+65tG7dmpkzZxYv89JLL9GnTx+6du3Kk0+Wf2PdAw88wDPPnNwf8OHDhxk5ciRdu3bl7LPPJiHBOoYnT57MLbfcwkUXXUTr1q2ZOnVq8TL/+c9/6Nu3L927d+fWW2+loMB3+jkA90rujYFFIpIALAfmG2PmAI8A94tIIlad+vv2/O8Dde3x9wOTPB+28kn9boPQOmfc5sy0JX+wanc6k6/oRMMorY7xV3feeSfTp08nIyOjxPi77rqLcePGkZCQwHXXXcfdd99dPC05OZklS5YwZ84cJk2yUsu8efPYtm0bv//+O2vWrGHlypX89NNPZW5zzJgxrFq1isTEks1mPPnkk/To0YOEhASeffZZbrzxxuJpmzdv5vvvv+f333/nqaeeIi8vj02bNjFjxgx++eUX1qxZQ2BgINOnT/fUrvGICi+FNMYkAD3KGL8Dq/699Pgc4GqPRKeql1rRcPZtVnLfvx4adan0KhJTsnhp3haGdGrIyO5aHePPoqKiuPHGG5k6dSq1ap24xHXp0qV8+eWXANxwww08/PDDxdNGjhxJQEAAnTp14sCBA4CV3OfNm0ePHlaaysrKYtu2bfTv3/+kbQYGBvLQQw/x3HPPMXz48OLxS5Ys4YsvvgBg4MCBpKamcuTIEQAuvfRSQkNDCQ0NpUGDBhw4cIAFCxawcuVK+vTpA8CxY8do0KCBJ3fPGXPnOnel3Hf27bDsLSvBX/NxpRYtsNuOCQ8J5Jkru2h1TA1w77330rNnT26++Wa35g8NDS0eLqrtNcbw6KOPcuutt7q1jhtuuIHnnnuOLl3cK3y4bjMwMJD8/HyMMYwbN47nnnvOrXU4QZsfUJ5VK8Y6ubppNhzYUKlF3/t5B6t3p/PUFZ1pEKnVMTVBbGwsY8aM4f333y8ed+655/Lpp1ZXjtOnT+eCCy445TqGDRvGtGnTyMqybsdJSkoiJSUFgEGDBpGUlFRi/uDgYO67774S9f0XXHBBcbXK4sWLqVevHlFRUeVuc9CgQcycObN4O4cPH2bXrl3uvu0qoclded7Zd0BIZKWunElMyeSV+VsZ1rkhV3Rr4sXglK954IEHSlw188Ybb/Dvf/+brl278vHHH/P666+fcvmhQ4fyf//3f5xzzjnEx8czevRoMjMzKSwsJDExkdjY2JOWGT9+PPn5+cWvJ0+ezMqVK+natSuTJk3iww8/PGkZV506deLvf/87Q4cOpWvXrgwZMoTk5ORKvnPvEl+4kKV3795mxYqqaVlQVZEFT8PPr8IdS6FBx1POml9QyFVvL2V3ajbz7ruQ+pGhp5xfVY1NmzbRseOpPztftn79eqZNm8arr77qdCgeUdbnISIrjTG9y5pfS+7KO86ZCCG13Sq9v/PzDtbuSefpEV00sSuP6dKli98k9tOhyV15R3gs9P0zbPgKUjaXO9vWA5m8Nn8bw7s04rKujaswQKX8myZ35T3n3AXB4fDTS2VOzi8o5MHP1xIRFsTfRurVMUp5kiZ35T2160LfP8H6L+Dg1pMm/3f5HhL2ZvC3EV2oF6HVMUp5kiZ35V3n3g3BtU4qvefmF/DmokR6tYjhkvhGDgWnlP/S5K68q3Y96DMe1s+EQ9uKR3++Yi/JGTncM6itVsco5QWa3JX3nXs3BIYWl96P5xfy1uLt9GgezQVt6zkcnPJlx44d48ILL6SgoIB9+/YxevToMue76KKLqOhy6ieeeIIffvjhlPPk5uYyePBgunfvzowZMyoV686dO/nkk08qtQxYDaIVNYI2duxYtm3bVsES7tHkrrwvooFVel/3ORxKZObKvSSlH9NSu6rQtGnTGDVqFIGBgTRp0qRES5CV9fTTTzN48OBTzrN69WoA1qxZwzXXVK530NNN7q5uv/12XnzRM81ma3JXVePcuyEwhIIfX+KfixLp1iyaC9tpO/7q1KZPn86IESMAK3kWtQdz7Ngxxo4dS8eOHbnyyis5duxYhetyLSG3bNmSJ598kp49exIfH8/mzZtJSUnh+uuvZ/ny5XTv3p3t27ezcuVKLrzwQnr16sWwYcOK70JNTExk8ODBdOvWjZ49e7J9+3YmTZrEzz//TPfu3ZkyZQoFBQU89NBDxU0R/+tf/wKstnAmTpxI+/btGTx4cHETBmA1g/DDDz+UuHv2dGnDYapqRDaE3rcgv/2LoJy+3Dvyci21VyNP/W8DG/cd8eg6OzWJ4snLO5c7/fjx4+zYsYOWLVueNO2tt94iPDycTZs2kZCQQM+ePSu9/Xr16rFq1SrefPNNXn75Zd577z3ee+89Xn75ZebMmUNeXh433HADs2bNon79+syYMYPHHnuMadOmcd111zFp0iSuvPJKcnJyKCws5Pnnny9eFuCdd96hTp06LF++nNzcXM477zyGDh3K6tWr2bJlCxs3buTAgQN06tSJW265BYCAgADatGnD2rVr6dWrV6XfkytN7qrK5J19F4XL3uPxqLlc1P4Wp8NRPu7QoUNER0eXOe2nn34qbue9a9eudO3atdLrHzVqFAC9evUqbmLY1ZYtW1i/fj1DhgwBoKCggMaNG5OZmUlSUhJXXnklAGFhZTdyN2/ePBISEor/LWRkZLBt2zZ++uknrr322uKqpoEDB5ZYrkGDBuzbt0+Tu6o+vtpWQHb+AMbJD0jaHxDb2umQlJtOVcL2llq1apGTk+O19Rc15VvUjG9pxhg6d+7M0qVLS4zPzMx0a/3GGN544w2GDRtWYvzcuXNPuVxOTk6J9u1Pl9a5qyqRV1DIG4u2sbj+dUhAEPz8itMhKR8XExNDQUFBmQm+f//+xScv169fX9wtHsCNN97I77//fsbbb9++PQcPHixO7nl5eWzYsIHIyEji4uL4+uuvAesKm6NHjxIZGVki8Q8bNoy33nqLvLw8ALZu3Up2djb9+/dnxowZFBQUkJyczKJFi0psd+vWrW63NX8qmtxVlfhqdRJ7Dh/j+iFnI71ugrWfQtpOp8NSPm7o0KEsWbLkpPG33347WVlZdOzYkSeeeKJEFUZCQgJNmpx5s9EhISHMnDmTRx55hG7dutG9e3d+/fVXAD7++GOmTp1K165dOffcc9m/fz9du3YlMDCQbt26MWXKFP70pz/RqVMnevbsSZcuXbj11lvJz8/nyiuvpG3btnTq1Ikbb7yRc845p3ibBw4coFatWjRqdOY39mmTv8rr8gsKGfTqj0SEBjHnrvORzGR4vRt0GwtXvOF0eKocvtDk76pVq5gyZQoff+xer15Hjhxh/PjxfP75516OzDumTJlCVFQU48ePP2maNvmrfM7Xa/axK/Uodxdd1x7VBHqOgzWfQJpv9V6jfEvPnj0ZMGAABQUFbs0fFRVVbRM7QHR0NOPGjfPIujS5K6/KLyjkHwu30bFxFEM7NTwx4fz7QAJgSc1tb1u555ZbbiEwMNDpMKrEzTffTFCQZ65z0eSuvGr22n3sTD3KPYPalLyuvU5T6HEDrJ4OqdudC1ApP6XJXXlNQaHhHwsT6dAokqGdyjhB1P8hq733WXdCYWHVB6iUH9Pkrrzmf2v3seNQNvcMaktAQBl3o0Y1huHPw+6l8NvbVR+gUn5Mk7vyioJCw9SF22jfMJJhnU9xWVe3a6HtMFjwFBxKrLoAlfJzmtyVV8xJ2MeOg9ncXV6pvYgIXP46BIXCrDug0L2rIlTN4Mkmfz3ptdde4+jRo5VezlvN+5ZFk7vyuIJCwxsLE2nXMILhXdy4GSOqMQx/Efb8Bsve8n6AqtrwZJO/nnSq5O7uZZuebN63LJrclcfNXZdMYkoWdw2soNTuqus10P4SWPi3Ej02qZrNk03+XnTRRTzyyCP07duXdu3a8fPPPwOU2zTv4sWLueyyy4qXnzhxIh988AFTp05l3759DBgwgAEDBgAQERHBAw88QLdu3Vi6dClPP/00ffr0oUuXLkyYMIGybhb1ZPO+ZdGGw5RHFRYa3li4jTYNIrgkvrH7C4rAZVPgn/3g69vhlu8hoGZc21wtfDsJ9q/z7DobxVsn1MvhjSZ/8/Pz+f3335k7dy5PPfUUP/zwA++//36ZTfOW5+677+bVV19l0aJF1Ktn9SSWnZ1Nv379eOUVq82kTp068cQTTwBwww03MGfOHC6//PIS6/Fk875l0ZK78qhv1+9n64Es7hrYhkB3S+1FIhvBJS/D3uWw9B/eCVBVGxU1+Xv99dcDlWvy17WZ3507dwJW07wfffQR3bt3p1+/fqSmpla6LjwwMJCrrrqq+PWiRYvo168f8fHxLFy4kA0bNpS5XFHzvt6gJXflMYWFhqkLtnFW/dpc1vU0G26KHw0bv4aFz0C7i6F+e4/GqE7TKUrY3uKNJn/Laua3vKZ5lyxZQqHL/ReniiUsLKz4LtqcnBzuuOMOVqxYQbNmzZg8eXK5y3qqed+yVFhyF5FmIrJIRDaKyAYRucceHysi80Vkm/0cY48XEZkqIokikiAile8iRVVL32/Yz5YDmdw1sG3lS+1FiqpnQmpb1TMF3qmPVL6vqpr8La9p3hYtWrBx40Zyc3NJT09nwYIFxcuUbt7XVVG89erVIysr65QngT3VvG9Z3KmWyQceMMZ0As4G7hSRTsAkYIExpi2wwH4NMBxoaz8mAHr5Qw1QWGh4fcE2WterzeXdzrC51YgGcMlLkLQSlmqrkTVZVTT5W17TvM2aNWPMmDF06dKFMWPG0KNHj+JlJkyYwMUXX1x8QtVVdHQ0f/7zn+nSpQvDhg2jT58+ZW7Xk837lskYU6kHMAsYAmwBGtvjGgNb7OF/Ade6zF88X3mPXr16GVW9fbsu2bR4ZI75YuUez6ywsNCYT6835ul6xhzY6Jl1qkrZuNH5/b5y5Upz/fXXuz1/RkaGGT16tBcj8pxXX33VvPfee27PX9bnAaww5eTVSp1QFZGWQA/gN6ChMSbZnrQfKGryrymwx2WxvfY45aeMseraW9YN54ozLbUXEYFLX4XQSK2eqcH8uclfTzbvWxa3k7uIRABfAPcaY0p0g27/glSq1w8RmSAiK0RkxcGDByuzqPIx8zceYGPyESYObEtQoAcvwIqoD5e+AvtWwy+veW69qlrx1yZ/Pdm8b1nc+iaKSDBWYp9ujCnqJvyAiDS2pzcGUuzxSUAzl8Xj7HElGGPeMcb0Nsb0rl+//unGrxxmjFXX3qJuOCO7e6jU7qrzldBpJCx+Hg6UfTmZUupk7lwtI8D7wCZjjGvPCrOBov8U47Dq4ovG32hfNXM2kOFSfaP8zIJNKWzYd4Q7B7TxbKnd1aWvQFgdu3omzzvbUGUyPtANpzq9z8Gdb+N5wA3AQBFZYz8uAZ4HhojINmCw/RpgLrADSATeBe6odFSqWigqtTeLrcWVPbx4WqV2PbjsVUheC0te8952VAlhYWGkpqZqgneYMYbU1FTCwsIqtVyFFT7GmCVAeRctDypjfgPcWakoVLW0YFMK65IyeOGqeIK9VWov0mkEdLkKfnwB2g+HRt65NlidEBcXx969e9FzYs4LCwsjLi6uUsvoHarqtOQXFPL8d5tpVa82o3pW7qA7bcNfgj9+sqpn/rwQAoOrZrs1VHBwMK1atXI6DHWatG0ZdVo+W7GXxJQsHrm4vfdL7UVq17XuXt2fAD9rx9pKnYomd1Vp2bn5vDp/K71bxJy6lyVv6Hg5xF8NP70IyQkVz69UDaXJXVXaOz/t4FBWLo9e0hHrYqoqNvxFCK8LX98B+cerfvtKVQOa3FWlpBzJ4Z2fdnBJfCN6tYhxJojwWLjsNTiwDn5+2ZkYlPJxmtxVpUz5YSv5hYU8PKyDs4F0uAS6joWf7TtYlVIlaHJXbtt6IJMZy/dwXb8WtKxX2+lwrDbGa9eHr26HPM+2+61UdafJXbnt+W83UzskiLsHtXU6FEutGLjiH3BwEyx+1ulolPIpmtyVW37dfoiFm1O4Y0AbYmuHOB3OCW0HQ6+b4JepsHuZ09Eo5TM0uasKFRYanp27iSZ1wrj5vJZOh3OyoX+H6Obw1W1wPNvpaJTyCZrcVYVmr93H+qQjPDisPWHBPtj0amgkjHwT0nbC/CecjkYpn6DJXZ1STl4BL32/hc5NohjZ3Yf7XGl5Ppx9Byx/D7YvdDoapRynyV2d0oe/7iQp/Rh/uaQjAafb6XVVGfQ41GsHsyZCTobT0SjlKE3uqlxp2cf5x6JELmpfn/Pa1HM6nIoF14KRb0Pmfvh2UsXzK+XHNLmrcr2xMJHs3HweHd7R6VDcF9cLLrgf1n4Cm79xOhqlHKPJXZVpd+pRPl62k6t7NaN9o0inw6mc/g9Do3j43z2QfcjpaJRyhCZ3VaYXv99MUEAA9w9t53QolRcUAlf+y6p3n3MfaE9CqgbS5K5OsmZPOnMSkvnzBa1oGFW5rr18RsPOMOAvsGk2rJvpdDRKVTlN7qoEYwzPfrOJehEhTLjwLKfDOTPn3g1xfWDuA3BE+2hXNYsmd1XC/I0H+H3nYe4d3I6I0GreC2NAoFU9k38cZt+l1TOqRtHkrorl2f2inlW/NmP7NHM6HM+oexYMeRoS58OqD52ORqkqo8ldFft0+R52HMxm0vCOBFVVv6hVoc+foFV/+P4xq4kCpWoAP/oGqzORlZvP6z9spW+rWAZ3bOB0OJ4VEAAj3gQEvr4TCgudjkgpr9PkrgD414/bOZR1nMec6hfV26KbWZ177FoCv73tdDRKeZ0md8X+jBze/XkHl3drQrdm0U6H4z3dr4N2w2HBU3Bwq9PRKOVVmtwVr87fQmEhPDysvdOheJcIXP661QbN17dBQb7TESnlNZrca7jN+4/w+cq93HhOC5rFhjsdjvdFNoRLX4WklfDLFKejUcprNLnXcM/N3UxkaBATB7ZxOpSq02UUdLkKFr8AyQlOR6OUV2hyr8EWbUnhx60HmTiwDdHhPtQvalW45GUIj7W65svPdToapTxOk3sNlX70OJO+SKBtgwhuPKel0+FUvfBYuOINSNkAS7R6RvkfTe411OOzNpCadZwp13T3zX5Rq0K7YRB/Nfz0MqRsdjoapTyqwuQuItNEJEVE1ruMixWR+SKyzX6OsceLiEwVkUQRSRCRnt4MXp2eWWuS+N/afdw7uC1dmtZxOhxnDXsOQiPgf3frzU3Kr7hTcv8AuLjUuEnAAmNMW2CB/RpgONDWfkwA3vJMmMpTkjOO8fjX6+nZPJrbqnurj54QUd9K8Ht+g5XTnI5GKY+pMLkbY34CDpcaPQIoaoXpQ2Cky/iPjGUZEC0ijT0UqzpDhYWGh2cmkF9oeHVMd/9qP+ZMdBsLrQfA/MmQkeR0NEp5xOl+uxsaY4oayN4PNLSHmwJ7XObba487iYhMEJEVIrLi4MGDpxmGqoyPlu7k522H+OulnWhZr7bT4fgOEbhsChTmw9wHtWlg5RfOuOhmjDFApb8Nxph3jDG9jTG969evf6ZhqAokpmTx3LebGdihAdf29ZPmfD0pthUMeBS2zIWNs5yORqkzdrrJ/UBRdYv9nGKPTwJcM0ecPU45KK+gkPtmrCE8JJDnr4r3z4bBPOHsO6FRV/j2YTiW5nQ0Sp2R003us4Fx9vA4YJbL+Bvtq2bOBjJcqm+UQ95YmMi6pAyeGxVPg8hq2idqVQgMsq59zz4E8590Ohqlzog7l0L+F1gKtBeRvSIyHngeGCIi24DB9muAucAOIBF4F7jDK1Ert63encY/FyUyqmdTLu6i57Yr1KQ7nHOH1WvTziVOR6PUaRPjAyePevfubVasWOF0GH7n6PF8Lp26hOP5hXx77wVEhQU7HVL1cPwovHUOBATBbb9AsP7bUb5JRFYaY3qXNU2vhfNjz83dzM7UbF6+upsm9soICbeunklNhJ9ecjoapU6LJnc/tXhLCh8v28X481pxzll1nQ6n+jlrIHS7Fn55Dfavr3B2pXyNJnc/lJZ9nIdnJtCuYQQP+nsHHN407FkIi7abJihwOhqlKkWTu58xxvDXr9eTdrSGNwrmCeGxcPHzVscev7/rdDRKVYomdz8za80+vlmXzH1D2tG5SQ1vFMwT4kdDm8Gw4GlI3+10NEq5TZO7H9mXfozHZ62nd4sYbu2vjYJ5RFHTBADfPKBNE6hqQ5O7nygsNDz4+VoKCg2vjOlGYIDeheox0c1h4F9h2zxY/4XT0SjlFk3ufuLfv+7k1+2pPHFZJ1rU1UbBPK7frdCkJ3z7CBwt3UiqUr5Hk7sf2HYgkxe+28zgjg24po82CuYVAYFwxVTISYd5f3U6GqUqpMm9mjueX8h9n60hIjSI50Z11UbBvKlRPJx7N6yZDtsXOR2NUqekyb2am7pgG+uTjvDcqHjqR4Y6HY7/u/BhiG0Nc+61milQykdpcq/GFm1O4c3FiYzuFcewzo2cDqdmCK4Fl78OaTvhx+crnF0pp2hyr6Y+WrqT8R8up32jKJ68vJPT4dQsrfpDjxvg139A8lqno1GqTJrcq5n8gkImz97AE7M2MKB9Az6/7RwitVGwqjf0bxBeF2ZNhC3fwu7f4NA260oabapA+YAgpwNQ7svMyeOu/65m8ZaDjD+/FX+5pKNez+6UWjFw6cvw+U3w37GlJgrUioZasVYTBiWeY6wfhbKmadPCyoM0uVcTew4fZfyHy9l+MJtnruzCdf1aOB2S6jQC7tsImfusEvvRw3CsjOfMZEjZaL3Oyy5/fcHhFf8AlP6RCI2y7qJVqhRN7tXAyl1p3PrxCnLzC/nw5r6c37ae0yGpIlGNrYe78nLK/gE4etjqt7X4dSqk77GGj6VTbh/0AUHWv4jSib/E67qlfhxiIFCr8vydJncfN2tNEg/NTKBRVBifTuhDmwYRToekzkRwGAQ3gagm7i9TWAA5GWX8IKSe/OOQthP2rbJeF+SWv87QKCvJuyb9Ev8WYk7+txBSW/8lVCOa3H2UMYbXF2zjtR+20bdlLG/f0IvY2iFOh6WcEBBoJ99Y95cxBvKO2tVFqeX8O3B5Przdes49Uv46A0NK/ROIgdr1oFFXaNYX6newYlU+QZO7D8rJK+DhmQnMXruPUT2b8tyoeEKD9EujKkHEKmmH1IboSjRJUZBX/g9A8b+FNGv44Bb440dYMc1aNiQS4npbib5ZX2ja2zqxrByhyd3HHMzM5daPV7BqdzoPDWvPHRedpU0KqKoTGAwRDayHO4yBwztg73LY8xvsWW71O2sKAYH67a1EH9cXmvWDum0gQK/Argqa3H3Ilv2Z3PLBclKzc3nzup5cEl+JE3VKOUEE6p5lPbrZl4TmZlq9V+1ZDnt/h42zYdVH1rSwaIjrYyX6Zn2gaS8IjXQsfH+myd1HLN6SwsRPVlMrJJAZE86hW7Nop0NS6vSERkLri6wHQGEhpCZaiX6P/Uj8AesKIIHIxlbVUXTzko86zaFOnF7/f5o0ufuAD3/dyVP/20D7RlG8P643TaJrOR2SUp4TEAD121mPHtdb43IyYO8KSFplXeGTvstK+hu+gsL8kstHNHJJ+q4/Ai3s5K/fl7JocndQbn4Bz36ziQ+X7mJwxwa8PrYHtUP1I1E1QFgdaDPIergqLLBu+krf7fLYZT0nrYCNX5+c/Ou2gcbdoUl367lxV2v9NZxmkipWUGhYuj2VWWuS+G7DfjJz8vnT+a14VJsSUMq6lLJOnPVoce7J04uT/x4r4af9AckJsHsprJ95Yr7Ys04k+ybdoXG3GpfwNblXAWMMq3an87+1+5iTkMyhrFwiQoMY2rkhV/WM47w2esepUm4pkfzPKTkt6yAkr4F9a6zn3b+V7PM2tnWpEn43v75UU5O7F23ef4TZa/Yxe+0+9qYdIyQogEEdGnBFtyYM6NCAsGC9dl0pj4moD22HWI8i2YfsZL/aet67HDZ8eWJ6TCsrybuW8mvFVGnY3qLJ3cN2px5l9tokZq/dx9YDWQQGCOe1qce9g9sxtHNDorR5XqWqTu160Haw9SiSnWqV7ItK+ftWWXX5RaJblKrS6V65u4N9hCZ3D0g5ksOchGRmr93Hmj3pAPRuEcPfRnRmeHxj6kVo93dK+YzadU8+mXv0cMkqnX1rYOOsE9Ojm5dM9k16+HzC1+TuBmMMWbn5HDiSS0pmDin284EjuWxKPsKyHakUGujUOIpJwztwWdfGxMWEOx22Uspd4bFw1kDrUeToYaunLdekv2n2iel1mltX5kQ1PbnVTdfXIRGONLjmleQuIhcDrwOBwHvGGJ/sbLKw0JCZm89BO1EXJeyUI7kcyMzhoP2cciSXY3kn964THhJIs5hwJg5owxXdm9Cmgd5pp5TfCI+FswZYjyLH0qyEv2+N9bx/Hez82bpuvzyBIaWaZY4p2QzzWQOhURePh+/x5C4igcA/gSHAXmC5iMw2xmz09LaSM47xx6FssnMLyM7NJys3n6PH88myX2fn5pN9vOS07NwCsuxpR4+X3R1a7ZBAGkaFUT8ylG5x0TSIDKVhVBgNokJpEGk9N4wKI0KvSVeqZqkVU/Lu2yIF+VbiL7etfpdWOVMTrRu2jh22rtkPi6oeyR3oCyQaY3YAiMinwAjA48l91pp9PP/t5jKnhYcEUjs0iIjQIGqHBhIeEkSDyDBq1wsiwn5dOzSIqLAg6hcl78hQGmjSVkpVVmCQdbVORH33lzHGaocnwDv5xhtrbQrscXm9F+hXeiYRmQBMAGjevPlpbejS+MZ0i4smIjSI8NBAO5EHER4cSIDeEKSU8mUiVqndSxwrohpj3gHeAejdu3c5fYidWrPYcJrF6olLpZQqzRsNKycBrr0DxNnjlFJKVRFvJPflQFsRaSUiIcBYYHYFyyillPIgj1fLGGPyRWQi8D3WpZDTjDEbPL0dpZRS5fNKnbsxZi4w1xvrVkopVTHtzFAppfyQJnellPJDmtyVUsoPiTGndYm5Z4MQOQjsOs3F6wGHPBiOp2l8Z0bjO3O+HqPGd/paGGPKvC3WJ5L7mRCRFcaY3k7HUR6N78xofGfO12PU+LxDq2WUUsoPaXJXSik/5A/J/R2nA6iAxndmNL4z5+sxanxeUO3r3JVSSp3MH0ruSimlStHkrpRSfqjaJHcRuVhEtohIoohMKmN6qIjMsKf/JiItqzC2ZiKySEQ2isgGEbmnjHkuEpEMEVljP56oqvjs7e8UkXX2tleUMV1EZKq9/xJEpGcVxtbeZb+sEZEjInJvqXmqfP+JyDQRSRGR9S7jYkVkvohss59jyll2nD3PNhEZV0WxvSQim+3P7ysRiS5n2VMeC16OcbKIJLl8jpeUs+wpv+9ejG+GS2w7RWRNOctWyT48I8YYn39gtS65HWgNhABrgU6l5rkDeNseHgvMqML4GgM97eFIYGsZ8V0EzHFwH+4E6p1i+iXAt4AAZwO/OfhZ78e6OcPR/Qf0B3oC613GvQhMsocnAS+UsVwssMN+jrGHY6ogtqFAkD38QlmxuXMseDnGycCDbhwDp/y+eyu+UtNfAZ5wch+eyaO6lNyL+2U1xhwHivpldTUC+NAengkMEpEq6WvPGJNsjFllD2cCm7C6G6xORgAfGcsyIFpEGjsQxyBguzHmdO9Y9hhjzE/A4VKjXY+zD4GRZSw6DJhvjDlsjEkD5gMXezs2Y8w8Y0y+/XIZVkc5jiln/7nDne/7GTtVfHbuGAP819PbrSrVJbmX1S9r6eRZPI99gGcAdaskOhd2dVAP4LcyJp8jImtF5FsR6Vy1kWGAeSKy0u6/tjR39nFVGEv5Xygn91+RhsaYZHt4P9CwjHl8YV/egvVPrCwVHQveNtGuOppWTrWWL+y/C4ADxpht5Ux3eh9WqLok92pBRCKAL4B7jTFHSk1ehVXV0A14A/i6isM73xjTExgO3Cki/at4+xWye+66Avi8jMlO77+TGOv/uc9dSywijwH5wPRyZnHyWHgLOAvoDiRjVX34oms5dand579P1SW5u9Mva/E8IhIE1AFSqyQ6a5vBWIl9ujHmy9LTjTFHjDFZ9vBcIFhE6lVVfMaYJPs5BfgK66+vK1/o+3Y4sMoYc6D0BKf3n4sDRdVV9nNKGfM4ti9F5CbgMuA6+8fnJG4cC15jjDlgjCkwxhQC75azbUePRTt/jAJmlDePk/vQXdUlubvTL+tsoOiqhNHAwvIObk+z6+feBzYZY14tZ55GRecARKQv1r6vkh8fEaktIpFFw1gn3taXmm02cKN91czZQIZL9UNVKbe05OT+K8X1OBsHzCpjnu+BoSISY1c7DLXHeZWIXAw8DFxhjDlazjzuHAvejNH1PM6V5Wzb6X6YBwObjTF7y5ro9D50m9NndN19YF3NsRXrLPpj9rinsQ5kgDCsv/OJwO9A6yqM7Xysv+cJwBr7cQlwG3CbPc9EYAPWmf9lwLlVGF9re7tr7RiK9p9rfAL8096/64DeVfz51sZK1nVcxjm6/7B+aJKBPKx63/FY53EWANuAH4BYe97ewHsuy95iH4uJwM1VFFsiVl110TFYdPVYE2DuqY6FKtx/H9vHVwJWwm5cOkb79Unf96qIzx7/QdFx5zKvI/vwTB7a/IBSSvmh6lIto5RSqhI0uSullB/S5K6UUn5Ik7tSSvkhTe6qRhCRaBG54zSW+4s34lHK2/RqGVUj2M1CzDHGdKnkclnGmAjvRKWU92jJXdUUzwNn2U20vlR6oog0FpGf7OnrReQCEXkeqGWPm27Pd72I/G6P+5eIBNrjs0RkilhNPi8QkfpV+/aUKklL7qpGqKjkLiIPAGHGmGfshB1ujMl0LbmLSEesJn9HGWPyRORNYJkx5iMRMcD1xpjpYrU138AYM7FK3pxSZQhyOgClfMRyYJrdRtDXxpg1ZcwzCOgFLLdbQqjFibZlCjnRFsl/gJPaF1KqKmm1jFIUt+3dH6uBqg9E5MYyZhPgQ2NMd/vR3hgzubxVeilUpdyiyV3VFJlYvWSVSURaYLXf/S7wHlYPPQB5dmkerDZlRotIA3uZWHs5sL5Lo+3h/wOWeDh+pSpFk7uqEYwxqcAv9snSk06oYnXjt1ZEVgPXAK/b498BEkRkujFmI/BXrE4aErB6WCpq5TAb6CtWf5wDsRq1U8oxekJVKQ/QSyaVr9GSu1JK+SEtuasaRUTisdoUd5VrjOnnRDxKeYsmd6WU8kNaLaOUUn5Ik7tSSvkhTe5KKeWHNLkrpZQf0uSulFJ+SJO7Ukr5of8Hgh2LhRFhbtkAAAAASUVORK5CYII=",
"text/plain": [
""
]
@@ -3756,7 +3756,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -3768,7 +3768,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -3780,7 +3780,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -3792,7 +3792,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEXCAYAAAC9A7+nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA690lEQVR4nO3dd3wUZf7A8c83HZKQAEkIvQVpoUfwRBHrgSJYOAFB9CzY5fTuPE/vbKdn/XlnV7CCShEbItgOUVFBEgg1dAIktIQSQiD9+f0xE1xCQjawu7PZfN+v176yO/PMzHdnd7955pl5nhFjDEoppeq+IKcDUEop5Rma0JVSKkBoQldKqQChCV0ppQKEJnSllAoQmtCVUipAaEKv50QkU0Qu8PI22omIEZEQb27H20TkbBFZ53Qcrvxl3/rie6RqpgndR0TkLBH5WUTyRGSfiPwkIqc7HZdynzHmR2NMZ6fjCCQicr6IrBWRwyLynYi0PUHZ70QkR0QOishyERnhy1jrAk3oPiAijYA5wItAE6Al8AhQVMv1iIj49WfmBzXFOnUUUBfi9VaMIhIHfAz8E+t3kQrMOMEiE4HmxphGwATgPRFp7o3Y6iq/Tg4B5DQAY8w0Y0yZMeaIMeZrY8wKEbnOrq2/ZNfe14rI+RULisgCEXlcRH4CDgMdRKSLiHxj1/TXichVLuUvEZFldi1mu4g87BqIiFwjIltFZK+IPOBO8CISJCL3icgme7mZItLEnldxyH+DiGwD5otIsIg8KyK5IrIZuKTS+lqIyGw7/o0icpPLvP4ikmrHv1tEnqshtuO2b0+/XkQyRGS/iHzlWvOzy98iIhtE5ICIvGz/swyzY+rhUjbBrj3Gi8hgEclyY3/1tT+DfBH5UERmiMhj9rzBIpIlIn8TkV3A2yLSWETm2LXP/fbzVi7rWyAiT4jIr/Z++axi/7sYKyLb7H1e4+cqIg+LyCw7tnwRWSoivVzmZ9oxrgAKRCRERIaLyGp7ny0Qka6VVnu6iKyx38PbIhJRQxhXAKuNMR8aYwqBh4FeItKlqsLGmBXGmNKKl0Ao0Lqm91qvGGP04eUH0AjYC7wLDAUau8y7DigF7sb6go4C8oAm9vwFwDagOxACxADbgT/ar/sAuUA3u/xgoAfWP+uewG7gMnteN+AQMAgIB56zt31BDfFPBBYBrezlXgem2fPaYf24pgCRQAPgFmAt1o+tCfCdXSbEXuYH4BUgAugN5ADn2fN+Aa6xn0cBZ9QQW1XbHwFsBLra++gfwM8uyxisI6ZYoI29/SH2vFeApyq9989d9m1WDfGEAVvt5UKxklYx8JjLOkqBp+x92QBoClwJNASigQ+BT13WuQDIBpLt9/gR8F6l9z/ZXlcvrCO/rjXE+TBQAoy04/wLsAUItednAun2Z9gAq1JSAFxol7/X3sdhLuVXuXzmP1W85xPE8DzwaqVpq4ArT7DMHKDQfs9fAkFO/7796eF4APXlYSeXd4As+wc9G2iGldB3AOJS9ld+S2oLgEdd5o0Cfqy07teBh6rZ7n+B/9jPHwSmu8yLtJNNTQk9Azjf5XVzOxmEuCSUDi7z5wO3uLy+yC4TYv/gy4Bol/lPAO/Yz3/Aao6Kc3O/VrX9ecANLq+DsI5u2tqvDXCWy/yZwH328wFY/0DFfp0KXGU/H0zNCX0QVvJ1/TwXcmxCLwYiTrCO3sB+l9cLgCddXnez1xHs8v5bVfr+jK4hzoeBRZX20U7gbPt1JnC9y/x/AjMrlc8GBruUd/3MLwY21RDDm67vy572E3BdDcuFYlWM7vHEbzOQHtrk4iPGmAxjzHXGmFZYNa0WWMkWINvY31TbVnt+he0uz9sCA+zD3gMicgAYCyQCiMgA+e3kUR5WbTnOXraF67qMMQVYRw41aQt84rK9DKyk3KyaGFtUer210rx9xpj8SvNb2s9vwKoNrhWRJSIyzI34Km+/LfC8S7z7AHHZBsAul+eHsY4GMMYstl8Ptg/9k7D++bqrBcd/ntsrlckxVhMDACLSUERet5vCDmL9U4sVkeBq1rEVK6nFuUyr8v3UwPW7UI5V2ajue9cCl8/RLr+dY/dp5Rhd11WVQ1hHr64aAflVlD3KGFNijJkHXCQiw2vYRr2iCd0Bxpi1WLX1ZHtSSxERlyJtsGrtRxdxeb4d+N4YE+vyiDLG3GrP/wArAbU2xsQAr2ElM7BqYEfbHEWkIdbhfk22A0MrbTPCGJNdTYzHbMd+PxV2AE1EJLrS/GwAY8wGY8wYIAGrWWKWiES6EWPlfXRzpXgbGGN+dmM9YDWNjQOuAWa5Jl837OT4z7NyO2/lIU7/DHQGBhjrhN8ge3p162iDdYSUW4u4quL6XQjCalKr7nu3A+sfZUV5sZd3/Q5UjtF1XVVZjdVEVLHOSKCjPd0dIXZ5ZdOE7gNincT8c8WJLhFpDYzBapcGK3ndJSKhIvIHrOaZudWsbg5wmlgnN0Ptx+kuJ6iisWrAhSLSH7jaZdlZwDCxLqEMAx7Fve/Aa8DjFScW7ROEJ7pkbKb9flqJSGPgvooZxpjtwM/AEyISISI9sWrl79nrHici8XYN8IC9WLkbMVaO9+8i0t1eZ4y9X931HnA5VlKfUstt/4J19HKHfSJxBNC/hmWigSPAAftk50NVlBknIt3sf8KPYv2jKatlbJX1E5ErxLqK5U9Ybe+Lqik7E7hErMsMQ7H+CRVhfZYVbrc/8ybAA5z4ihWAT4BkEbnSPoH6ILDCrvAcw/4NDRWRBvZ3fhzWP77v3X+7gU8Tum/kY7XNLhaRAqwfzSqsHwXAYqATVo3rcWCkMabKphC7qeIiYDRWDWgXv51gA7gNeFRE8rF+IDNdll0N3I5Vi98J7Mc6zK7J81i1/q/t9S6y3091JgNfAcuBpViXprkag9X2uwPrR/2QMeZbe94QYLWIHLK3O9oYc8SNGI8yxnyCtU+m200Yq7DaXN1dfrsdtwF+rOW2i7FOhN6A9Q9pHNY/4RNdovpfrBOPuVj79ssqykzFOqrbhXUy+a7axFWNz7DOyezHOhq5whhTUlVBY8w6rPfyoh3npcCl9vut8AHwNbAZ2AQ8dqKNG2NysE4GP27HMADrew2AiLwmIq9VvMRq99+DdRJ7IjDKGLPU/bcb+CpO/CiHiMh1wI3GmLOcjkX9RkTeAnYYY/7hgXUtBl4zxrx9kssvwLqq5Y1TjcVlnQ8DScaYcZ5ap3Ke33dqUMrXRKQdVi27z0kufw6wDqsmOxbr8tGqat1KeZQ2uSgARGSeiByq4nG/H8Q2tprY3D15Vptt/QurieYZY8yWasq0qSaeQyLSBusE53KsJpc/YzWh7fR0rDXxh89URO6vJoZ5voqhPtEmF6WUChBaQ1dKqQChCV0ppQKEYydF4+LiTLt27ZzavFJK1UlpaWm5xpj4quY5ltDbtWtHamqqU5tXSqk6SUS2VjdPm1yUUipAaEJXSqkAoQldKaUChPYUVSqAlZSUkJWVRWFhbQaMVP4gIiKCVq1aERoa6vYyNSZ0e0yLYcAeY0xyFfMFaxCli7HGYb5OB8xRyj9kZWURHR1Nu3btOHZEX+XPjDHs3buXrKws2rdv7/Zy7jS5vIM1Al51hmKNFNgJ68atr7q9daWUVxUWFtK0aVNN5nWMiNC0adNaH1nVmNCNMT9g3fGlOiOAKcayCOtOK3onbqX8hCbzuulkPjdPnBRtybG3nsri2NtSKRUwlmTuY+jzP7LjQK2GaFcnKTMzk+Tk41p6VTV8epWLiEwQkVQRSc3JyfHlppU6ZVn7D3PL1DQydh5kSeaJDlqVcoYnEno2x95LsBXH3mfwKGPMJGNMijEmJT6+yp6rSvmlw8WlTJiSRnFpOcFBwobdh5wOqd7ZvHkzffr0YfHixQwZMoR+/fpx9tlns3btWvLz82nfvj0lJdYNlw4ePHjM6/rCEwl9NjBeLGcAeU6M/ayUtxhj+OuHK8jYdZAXxvShbZOGbNyjCd2X1q1bx5VXXsk777zD/fffz4svvkhaWhrPPvsst912G9HR0QwePJgvvvgCgOnTp3PFFVfU6pK/QODOZYvTgMFAnIhkYd3ANhTAGPMa1s2MLwY2Yl22+EdvBauUE17+biNfrNzJfUO7cG6XBKb9uo2NOZrQfSUnJ4cRI0bw8ccf06ZNG37++Wf+8Iff7vldVGTdrvXGG2/k6aef5rLLLuPtt99m8uTJToXsmBoTujFmTA3zDdaNh5UKON+s2c2zX6/nst4tuHlQBwCSEqKYv3YPJWXlhAZrZ2tvi4mJoU2bNixcuJDRo0cTGxtLenr6ceUGDhxIZmYmCxYsoKysrF6eTNVvo1LVWL87nz9NX0bPVjE8eWXPo5eRdWoWRWm5YeveAocjrB/CwsL45JNPmDJlCnPmzKF9+/Z8+OGHgNUctnz58qNlx48fz9VXX80f/1g/Gwo0oStVhf0Fxdz4bioNw0N4/Zp+RIQGH52XFB8NoCdGfSgyMpI5c+bwn//8h1GjRvHmm2/Sq1cvunfvzmeffXa03NixY9m/fz9jxpywYSFg6VguSlVSWlbOHdOWsiuvkOk3n0HzmAbHzO+YEAmgJ0Z9oF27dqxatQqA2NhYlixZAsDEiROrLL9w4UJGjhxJbGysr0L0K5rQlarksS8y+GnjXp4Z2ZO+bRofN79hWAgtYxvoiVE/c+eddzJv3jzmzp3rdCiO0YSulIuZS7bzzs+ZXD+wPX9IaV1tuaSEKG1y8TMvvvii0yE4TtvQlbKlbd3HA5+u5OxOcdx/cZcTlu2UEMWmnEOUlRsfRadUzTShKwXsOHCEm6cupUVsA14c04eQGi5HTEqIoqi0nOz9OqaL8h+a0FW9d6S4jJunplFYUsYb41OIbRhW4zJJCVEAbMzJ93Z4SrlNE7qq14wx3PvRClbtyOO/o3rTqVm0W8sdTeh6pYvyI5rQVb326veb+Hz5Dv5yUWcu6NbM7eViG4YRFxWuJ0aVX9GEruqt/2Xs5pmv1nFprxbcNrhjrZfvlBClly76QFRUlNtl33nnHXbs2OHFaLxj8ODBpKamnvJ6NKGremnjnnwmTk+ne4tGPO3Srb82khKi2Lj7ENZwRupUlJWVeWQ9TiT00tJSn27vRPQ6dFXv5B0u4cZ3U4kIDWLSNSk0CAuueaEqJCVEkV9Uyp78Ipo1ivBwlJ73yOerWbPjoEfX2a1FIx66tPsJy2RmZh4dv3zp0qV0796dKVOm0K1bN0aNGsU333zDvffeizGGf//73xhjuOSSS3jqqaeOruPuu+/m66+/JjExkenTp1PV/RRmzZpFamoqY8eOpUGDBjzxxBO89dZbR8d9WbBgAc8++yxz5sw5btmysjJuuOEGUlNTERGuv/567r77bgYPHkyvXr34/vvvKS0t5a233qJ///48/PDDbNq0ic2bN9OmTRteeOEFbrnlFrZt2wbAf//7XwYOHMivv/7KxIkTKSwspEGDBrz99tt07tyZI0eO8Mc//pHly5fTpUsXjhzxzNVSWkNX9UpFt/7sA0d4bVw/WsQ2qHmhanTSE6NuW7duHbfddhsZGRk0atSIV155BYCmTZuydOlSBg0axN/+9jfmz59Peno6S5Ys4dNPPwWgoKCAlJQUVq9ezTnnnMMjjzxS5TZGjhxJSkoK77//Punp6Vx44YUsXryYggJrELUZM2YwevToKpdNT08nOzubVatWsXLlymMG9zp8+DDp6em88sorXH/99Uenr1mzhm+//ZZp06YxceJE7r77bpYsWcJHH33EjTfeCECXLl348ccfWbZsGY8++ij3338/AK+++ioNGzYkIyODRx55hLS0tFPbwTatoat65cl5a/lxQy5PXtGDlHZNTmldFVe6bNidz8CkOE+E51U11aS9qXXr1gwcOBCAcePG8cILLwAwatQoAJYsWcLgwYOP1rzHjh3LDz/8wGWXXUZQUNDRcuPGjeOKK65wa5shISEMGTKEzz//nJEjR/LFF1/w9NNPV1m2Q4cObN68mTvvvJNLLrmEiy666Oi8ioG+Bg0axMGDBzlw4AAAw4cPp0EDq0Lw7bffsmbNmqPLHDx4kEOHDpGXl8e1117Lhg0bEJGjd1D64YcfuOuuuwDo2bMnPXv2dOs91fiePbIWpeqAWWlZvLFwC9ed2Y7R/duc8vrio8NpFBGiJ0bdUPkcRcXryMjIU17XiYwePZqXXnqJJk2akJKSQnR01ZelNm7cmOXLl/PVV1/x2muvMXPmTN566y23Yy8vL2fRokVERBzb9HbHHXdw7rnn8sknn5CZmcngwYPdjv1kaJOLqheWbtvP/R+v5MyOTXngkq4eWaeI6Jgubtq2bRu//PILAB988AFnnXXWMfP79+/P999/T25uLmVlZUybNo1zzjkHsJLlrFmzql3WVXR0NPn5v3X2Ouecc1i6dCmTJ0+utrkFIDc3l/Lycq688koee+wxli5denTejBkzAGskx5iYGGJiYo5b/qKLLjpmLJmKG3Dk5eXRsmVLwDphW2HQoEF88MEHAKxatYoVK1ZUG1ttaEJXAW9XXiE3T00jMSaCl6/u69G7DCXZY7qoE+vcuTMvv/wyXbt2Zf/+/dx6663HzG/evDlPPvkk5557Lr169aJfv36MGDECsGrCv/76K8nJycyfP58HH3yw2u1cd9113HLLLfTu3ZsjR44QHBzMsGHDmDdvHsOGDat2uezsbAYPHkzv3r0ZN24cTzzxxNF5ERER9OnTh1tuuYU333yzyuVfeOEFUlNT6dmzJ926deO1114D4N577+Xvf/87ffr0OeZqmFtvvZVDhw7RtWtXHnzwQfr161fzTnSDOHXJVUpKivHEdZdKnUhhSRmjXv+FjXsO8fFtA+mc6F5PUHdN/mEzj8/NYNk/L6RxZM1DBvhaRkYGXbt65ojkZGVmZjJs2LCj45rXJYMHD+bZZ58lJSXFke1X9fmJSJoxpsqAtIauApYxhr9/vJLlWXn8Z1RvjydzcB3TRWvpynl6UlQFrMk/buaTZdncc+FpXNQ90SvbcB3T5fRTvGomULnedchTbr/9dn766adjpk2cONGte4kOGDCAoqKiY6ZNnTqVHj16HFd2wYIFpxSnr2lCVwHpu3V7eHLeWi7ukcid5yV5bTstYxvQIDRYT4z62Msvv3zSyy5evNiDkfgXbXJRAWdTziHumraMzomNePYPvU6qW7+7goKEDvGRft3kokMT1E0n87lpQlcBJe9ICTe9m0pYcBCTx/ejYZj3D0I7JUSxyU97i0ZERLB3715N6nWMMYa9e/ced117TbTJRQWMsnLDXdOWsW3fYT646QxaNW7ok+0mJUTxafoOCopKiQz3r59Uq1atyMrKIicnx+lQVC1FRETQqlWrWi3jX98+pU7B01+u5fv1OTx+eTL92/vuBGVSgnX1zKacQ/RsFeuz7bojNDSU9u3bOx2G8hFtclEB4ZNlWbz+w2bGndGGsQPa+nTbv43p4p/NLqr+0ISu6rzl2w/wt49WMqB9E0cGoGrbtCEhQeLXJ0ZV/aAJXdVpew4WMmFqKvFR4bwy1rPd+t0VGhxE+7hIraErx2lCV3VWYUkZE6amkV9YyhvXptA0KtyxWHRMF+UPNKGrOskYwwOfrCJ9+wGeu6oXXZs3cjSeTglRbN1bQFGpZ26lptTJcCuhi8gQEVknIhtF5L4q5rcRke9EZJmIrBCRiz0fqlK/eXPhFj5amsXE8zsxJLm50+HQMSGKcgNbcgucDkXVYzUmdBEJBl4GhgLdgDEi0q1SsX8AM40xfYDRwCueDlSpCj+sz+HfczP4ffdmTDy/k9PhAMeO6aKUU9ypofcHNhpjNhtjioHpwIhKZQxQccwbA/j2ttuq3tiSW8AdHyzltGbRPHdVb4KCvNetvzY6xkchopcuKme5k9BbAttdXmfZ01w9DIwTkSxgLnBnVSsSkQkikioiqdpzTdVWfmEJN01JJThImDw+xa96ZUaEBtO6cUO9dFE5ylMnRccA7xhjWgEXA1NF5Lh1G2MmGWNSjDEpFTeDVcodZeWGidPTycwt4JWx/WjdxDfd+mvDn8d0UfWDOwk9G2jt8rqVPc3VDcBMAGPML0AE4P+3QVd1xrNfr2P+2j08dGk3ftexqdPhVCkpIYrNOQWUlpU7HYqqp9xJ6EuATiLSXkTCsE56zq5UZhtwPoCIdMVK6Nqmojzis/RsXl2wiTH92zDuDN9266+NjglRFJeVs33/EadDUfVUjQndGFMK3AF8BWRgXc2yWkQeFZHhdrE/AzeJyHJgGnCd0fE6lQeszMrj3lkr6N+uCY8M7+7Vsc1PVaejY7rk11BSKe9w66ySMWYu1slO12kPujxfAwz0bGiqvtuTb3Xrj4sK55VxfQkL8e9+cB1d7i96kcOxqPrJfy4TUMpFUWkZt763lP2Hi/no1jOJc7Bbv7saRYSS2ChCr0VXjtGErvyOMYYHP11N2tb9vHR1H7q3iHE6JLclJURpQleO8e9jWFUvvftzJjNSt3PneUkM69nC6XBqpSKh6ykk5QRN6Mqv/LQxl399kcGF3Zpx9wWnOR1OrSUlRHG4uIwdeYVOh6LqIU3oym9s3VvAbe8vpWN8JP8Z5T/d+mtDx3RRTtKErvzCoaJSbpqSighMHp9ClB9166+NTprQlYPq5q9GBZTycsPdM9LZlFPAlOv707ZppNMhnbSmUeE0bhjKxj16LbryPa2hK8f959v1fLNmN/+4pCsDk+r+iBF6pYtyiiZ05agvVuzkxfkbuSqlFded2c7pcDwiKSGaDXqli3KAJnTlmFXZefz5w3T6tW3Mvy5L9utu/bWRlBDFgcMl7C0odjoUVc9oQleOyD1UxIQpqTRuGMZr4/oRHhLsdEgeoydGlVM0oSufKy4t59b30thbUMyka1KIj/b/bv21UXHp4gZN6MrH9CoX5VPGGB6avZolmft5fnRverSqO9363dU8JoLIsGC92YXyOa2hK596b9FWpv26jVsHd2RE78p3MgwMIkJSQhQb9NJF5WOa0JXP/LJpL498vobzuiTwl4s6Ox2OV3XUSxeVAzShK5/Yvu8wt72fRtumDfnv6N4E18Fu/bXRKSGa3QeLOFhY4nQoqh7RhK68rsDu1l9Wbnjj2tNpFBHqdEhep2O6KCdoQldeVV5uuGdmOut35/PS1X1pH1d3u/XXhl66qJygCV151fP/28BXq3dz/8VdGXRavNPh+EzrJg0JCwnShK58ShO68pp5K3fy/P82cGXfVtxwVnunw/Gp4CChQ1ykJnTlU5rQlVdk7DzIPTOX07t1LI9fHjjd+mtDB+lSvqYJXXncvoJibpqSSqMGIUy6ph8RoYHTrb82khKi2L7/MIUlZU6HouoJTejKo0rKyrnt/TT25Bcx6ZoUEhpFOB2SYzolRGMMbMrRWrryDU3oyqMe/XwNizbv46kre9CrdazT4ThKL11UvqYJXXnM+4u3MnXRVm4e1IHL+7RyOhzHtYtrSJBoQle+owldecTizXt56LPVDO4cz71Dujgdjl8IDwmmXdNINuzWhK58QxO6OmVZ+w9z6/tLadO0Ic+P7hPw3fpro2NCFBu1DV35iCZ0dUoOF5dy05Q0SsrKmTw+hZgGgd+tvzY6JUSRmVtASVm506GoekATujppxhj++uEK1u46yAtj+tAxPsrpkPxOUkIUpeWGrXsLnA5F1QOa0NVJe2n+Rr5YuZP7hnTh3M4JTofjl/RKF+VLbiV0ERkiIutEZKOI3FdNmatEZI2IrBaRDzwbpvI3X6/exf99s57L+7RkwqAOTofjtyqOWvTEqPKFGm9BJyLBwMvAhUAWsEREZhtj1riU6QT8HRhojNkvIlpdC2DrduVz94x0erWK4YkretTLbv3uigwPoWVsAz0xqnzCnRp6f2CjMWazMaYYmA6MqFTmJuBlY8x+AGPMHs+GqfzF/oJibpyyhMjwEF6/JqXeduuvDR3TRfmKOwm9JbDd5XWWPc3VacBpIvKTiCwSkSGeClD5j5Kycm7/YCm784p47Zp+JMbU3279tZGUEMWmnEOUlxunQ1EBzlMnRUOATsBgYAwwWURiKxcSkQkikioiqTk5OR7atPKVx7/I4OdNe/n3FT3o26ax0+HUGUkJURSWlJN94IjToagA505CzwZau7xuZU9zlQXMNsaUGGO2AOuxEvwxjDGTjDEpxpiU+Pj6c7ODQDBjyTbe+TmTG85qz8h+2q2/NiruXrRhT77DkahA505CXwJ0EpH2IhIGjAZmVyrzKVbtHBGJw2qC2ey5MJWTUjP38Y9PV3F2pzj+PlS79deWXrqofKXGhG6MKQXuAL4CMoCZxpjVIvKoiAy3i30F7BWRNcB3wF+NMXu9FbTynR0HjnDLe2m0jG3AS2P6EhKsXRdqK7ZhGHFR4ZrQldfVeNkigDFmLjC30rQHXZ4b4B77oQLEkeIyJkxNpbCknOkTUohpqN36T1ZSQiQbNKErL9PqlqqSMYa/zlrO6h0HeWFMb5ISop0OqU6ruHTRqvso5R2a0FWVXlmwiTkrdvLX33fmvC7NnA6nzuuUEE1+YSl78oucDkUFME3o6jjfrtnNs1+vY3ivFtx6TkenwwkIemJU+YImdHWMDbvz+dOMdLq3aMRTV/bUbv0e0kkTuvIBTejqqLzDJdw0JZWI0GAmXZNCgzDt1u8p8dHhREeE6LXoyqs0oSsASsvKuWPaUrIPHOH1a/rSIraB0yEFFBHRMV2U12lCVwA8MW8tP27I5fHLetCvbROnwwlInTShKy/ThK74MHU7by7cwnVntuOq01vXvIA6KUkJUeQeKubA4WKnQ1EBShN6PZe2dT8PfLKKgUlN+cclXZ0OJ6B1sq/l11q68hZN6PXYrrxCbnkvjcSYCO3W7wNJRwfp0oSuvMOtrv8q8BSWWN36DxeV8v6NA2gcGeZ0SAGvZWwDIkKDtIauvEYTej1kjOG+j1awMjuPSdekcFoz7dbvC0FBQsf4KK2hK6/RY+x6aNIPm/k0fQd/vvA0Luym3fp9KSkhik2a0JWXaEKvZ75bu4cnv1zLJT2bc/u5SU6HU+90Sogi+8ARCopKnQ5FBSBN6PXIxj2HuGvaMromNuKZkdqt3wl6YlR5kyb0eiLvSAkTpqQSFhLE5GtTaBimp0+c0LdtY0Rgwbo9ToeiApAm9HqgrNxw17RlbN9/mFfH9aOldut3TEJ0BCltG/Plql1Oh6ICkCb0euCpL9fy/focHhmeTP/22q3faUOSm7N2Vz5bcgucDkUFGE3oAe7jpVlM+mEz43/XlqsHtHE6HAUMSU4E0Fq68jhN6AEsffsB7vt4Jb/r0JR/DuvmdDjK1jK2Ab1axfDlqp1Oh6ICjCb0ALX7YCE3T00lITqcl8f2JVS79fuVIcnNWZ6VR/aBI06HogKI/soDkNWtP438wlLeuDaFJtqt3+9os4vyBk3oAcYYw/2frGT59gM8d1VvuiQ2cjokVYX2cZF0SYzWZhflUZrQA8ybC7fw8dJs/nRBp6O1QOWfhiQnkrp1P3vyC50ORQUITegB5Pv1Ofx7bgZDkxO567xOToejajA0uTnGwNerdzsdigoQmtADxJbcAu78YCmnNYvm2T/0IihIu/X7u9OaRdEhLlLb0ZXHaEIPAAcLS7jx3SWEBAcxeXwKkeHarb8uEBF+n5zIL5v3sr9Ab0unTp0m9DqurNzwp+npbN17mFfG9qV1k4ZOh6RqYWhyImXlhm8ytNlFnTpN6HXcM1+tY/7aPTw0vDtndGjqdDiqlnq0jKFlbANtdlEeoQm9DvssPZvXvt/E1QPacM0ZbZ0OR50EEWFIciILN+SSX1jidDiqjtOEXketyDrAvbNW0L9dEx6+tLvT4ahTMDQ5keKycuav1SF11alxK6GLyBARWSciG0XkvhOUu1JEjIikeC5EVdme/EImTEkjLiqcV8b1JSxE/y/XZX3bNCY+OlybXdQpqzETiEgw8DIwFOgGjBGR40Z6EpFoYCKw2NNBqt8UlZZxy9Q08o6UMGl8P+Kiwp0OSZ2ioCDh992bsWBdDkeKy5wOR9Vh7lTt+gMbjTGbjTHFwHRgRBXl/gU8BWi3Ny8xxvDPT1exdNsB/u+qXnRvEeN0SMpDhiY350hJGd+v12YXdfLcSegtge0ur7PsaUeJSF+gtTHmCw/Gpip55+dMZqZmcdd5SVzco7nT4SgPGtC+CY0bhjJPm13UKTjlxlcRCQKeA/7sRtkJIpIqIqk5OTmnuul6ZeGGXB77IoOLujXjTxec5nQ4ysNCgoO4sFsz5mfsoahUm13UyXEnoWcDrV1et7KnVYgGkoEFIpIJnAHMrurEqDFmkjEmxRiTEh8ff/JR1zOZuQXc/sFSOsZH8tyo3tqtP0ANTW5OflEpP2/c63Qoqo5yJ6EvATqJSHsRCQNGA7MrZhpj8owxccaYdsaYdsAiYLgxJtUrEdcz+YUl3DQlFRF4Y/zpRGm3/oB1ZlJTosNDmKdD6qqTVGNCN8aUAncAXwEZwExjzGoReVREhns7wPqsvNxw94x0NucW8MrVfWnTVLv1B7LwkGDO65rAN2t2U1pW7nQ4qg5yq7pnjJkLzK007cFqyg4+9bAUwHPfrOfbjD08Mrw7ZybFOR2O8oGhyYl8lr6DxVv2MVA/c1VL2iPFT81ZsYOXvtvI6NNbM/532q2/vjjntAQahAZrs4s6KZrQ/dCq7Dz+8uFyUto25tERyYjoSdD6okFYMIM7x/PV6t2Ulxunw1F1jCZ0P5OTX8SEKak0aRjGq+P6abf+emhIciI5+UUs3bbf6VBUHaPZwo8Ul5Zz63tp7DtczKTxKcRHa7f++ui8LgmEBQdpJyNVa5rQ/YQxhodmryJ1636eGdmL5Jbarb++io4I5axOcXy5ahfGaLOLcp8mdD8xddFWpv26ndsGd+TSXi2cDkc5bEhyItkHjrAyO8/pUFQdogndD/y8KZdHPl/DBV0T+MtFnZ0OR/mBC7s2IzhItNlF1YomdIdt33eY299fSoe4SP6j3fqVrXFkGL/r0FSbXVStaEJ30KGiUm58N5VyA5PHpxAdEep0SMqPDElOZEtuAet3H3I6FFVHaEJ3SHm54Z4Z6WzYk89LV/ehXVyk0yEpP3NR92aIoJ2MlNs0oTvkv//bwNdrdvPAJd04u5OOPKmOlxAdQUrbxnprOuU2TegOmLdyJy/8bwMj+7Xi+oHtnA5H+bEhyc1ZuyufLbkFToei6gBN6D62ZsdB7pm5nD5tYnn8cu3Wr05sSHIioM0uyj2a0H1o76EibpqSSkyDUF4f14/wkGCnQ1J+rmVsA3q1iuErbXZRbtCE7iMlZeXc9v5Scg8VMWl8PxIaRTgdkqojfp+cyPKsPLIPHHE6FOXnNKH7yCOfr2bxln08PbInPVvFOh2OqkOGJls3BNeTo6ommtB94L1FW3lv0TZuPqcDI3q3dDocVce0j4ukS2I0X2o7uqqBJnQvW7R5Lw/PXs25neO59/ddnA5H1VFDkhNJ3bqfPfmFToei/JgmdC/avu8wt72/lDZNG/L8mD4Ea7d+dZKGJjfHGPhq9W6nQ1F+TBO6lxwuLuWmKamUlJXzxvgUGmm3fnUKTmsWRYe4SL3aRZ2QJnQvMMbwlw+Xs353Pi9d3ZcO8VFOh6TqOBHh98mJ/LJ5L/sLip0OR/kpTehe8OL8jcxduYu/D+3KOadpt37lGUOTEykrN3yToc0uqmqa0D3sy1W7eO6b9VzRpyU3nt3e6XBUAOnRMoaWsQ308kVVLU3oHrR210HumZlOr9ax/PuKHtqtX3mUiDAkOZGFG3LJLyxxOhzlhzShe8i+gmJumpJKVHgIk67pR0SodutXnjesZ3OKy8p5a2Gm06EoP6QJ3QNKysq5/f2l7D5YxOvX9KOZdutXXtKnTWOG92rBS99tYMPufKfDUX5GE7oHPDZnDb9s3ssTl/egT5vGToejAtxDl3YjKjyEez9aQVm53p5O/UYT+ima/us23v1lKzed3Z4r+7VyOhxVDzSNCuehS7uzbNsB3v050+lwlB/RhH4KlmTu45+frWLQafHcN7Sr0+GoemRE7xac2zmeZ75ax/Z9h50OR/kJTegnKfvAEW59L41WjRvy4mjt1q98S0R4/PIeBAnc/8lKjNGmF6UJ/aQcKS5jwpRUikrKmTw+hZiG2q1f+V6L2AbcN7QLP27IZVZaltPhKD/gVkIXkSEisk5ENorIfVXMv0dE1ojIChH5n4i09Xyo/sEYw19nLWfNzoO8MKYPSQnarV85Z+yAtpzerjGPfZGhIzGqmhO6iAQDLwNDgW7AGBHpVqnYMiDFGNMTmAU87elA/cUrCzYxZ8VO7v19F87tkuB0OKqeCwoSnryyJ0dKynh49mqnw1EOc6eG3h/YaIzZbIwpBqYDI1wLGGO+M8ZUnJlZBATk5R7frtnNs1+vY0TvFtxyTgenw1EKgI7xUUw8vxNzV+7SYQHqOXcSektgu8vrLHtadW4A5lU1Q0QmiEiqiKTm5OS4H6Uf2LA7nz/NSKdHyxieurKndutXfmXCoA50a96If362irzDOixAfeXRk6IiMg5IAZ6par4xZpIxJsUYkxIfX3dGITxwuJgbp6QSERrM69qtX/mh0OAgnh7Zk30Fxfx7bobT4SiHuJPQs4HWLq9b2dOOISIXAA8Aw40xRZ4Jz3mlZeXc8cEydh4o5PVr+tE8poHTISlVpeSWMdx0dgdmpG7np425ToejHOBOQl8CdBKR9iISBowGZrsWEJE+wOtYyXyP58N0zuNzM1i4MZfHLk+mX1vt1q/8258u6ET7uEj+/vFKDheXOh2O8rEaE7oxphS4A/gKyABmGmNWi8ijIjLcLvYMEAV8KCLpIjK7mtXVKTNTt/P2T5n8cWA7rkppXfMCSjksIjSYJ6/owbZ9h3nu6/VOh6N8LMSdQsaYucDcStMedHl+gYfjclza1v3845NVnJUUxwMXa7d+VXcM6NCUsQPa8NZPWxjWqwW9W8c6HZLyEe0pWoWdeUe4eWoazWMjeOnqPoQE625Sdct9Q7vQrFEEf5u1guLScqfDUT6imaqSwpIyJkxJo7CkjDfGpxDbMMzpkJSqteiIUB67LJl1u/N5dcEmp8NRPqIJ3YUxhr99tIJVO/L476jedGoW7XRISp2087s205th1DOa0F28/sNmPkvfwV8u6swF3Zo5HY5Sp0xvhlG/aEK3zV+7m6e+XMuwns25bXBHp8NRyiNcb4Yx5ZdMp8NRXqYJHdi4J5+J09Lp1rwRz4zspd36VUCpuBnG01/qzTACXb1P6HmHS7hpShrhoUFMGp9CgzDt1q8Ci94Mo/6o1wm9rNxw5/RlZO0/zKvj+tEyVrv1q8DkejOMj5YeN3KHChD1OqE/OS+DH9bn8K8RyZzeronT4SjlVRU3w/jXnDVk5hY4HY7ygnqb0D9Ky2Lyj1u49ndtGd2/jdPhKOV1QUHCU1f2BODSlxby7ZrdDkekPK1eJvRl2/bz909W8rsOTfnHsMo3X1IqcHWIj2LOnWfRtmlDbpySytNfrqW0THuSBop6l9B3Hyzk5qlpNGsUzitj+xKq3fpVPdO6SUNm3XImY/q35pUFmxj/1q/kHgqYEa/rtXqVzQpLypgwNY1DRaVMHp9C40jt1q/qp4jQYJ64oidPj+xJ2tb9XPLCj6Rt3ed0WOoU1ZuEbozh/o9Xsnz7AZ67qjddEhs5HZJSjrsqpTUf33Ym4SHBjHp9EW//tEUva6zD6k1Cf+PHLXy8LJt7LjyNIcmJToejlN/o3iKGz+88i8GdE3jk8zXcOW0ZBUV6c4y6qF4k9O/X5/DEvAwu7pHIneclOR2OUn4npkEok67px9+GdGHuyp0Mf2mhDuhVBwV8Qt+cc4g7PlhK58RGPPsH7davVHWCgoRbB3fkvRsHkHekhBEv/8Ts5TucDkvVQkAn9IOFJdw4JZXQ4CAmj+9HwzC3btCkVL12Zsc45tx5Nl2bN+Kuact4ePZqvUlGHRGwCb2s3HDXtGVs23uYV8f2pVXjhk6HpFSdkRgTwfQJZ3D9wPa883Mmoyf9ws68I06HpWoQsAn96a/WsmBdDg8P786ADk2dDkepOic0OIgHL+3GS1f3Yd2ufC55YSE/bcx1Oix1AgGZ0D9dls3r329m7IA2jDujrdPhKFWnDevZgs/uOIumkWFc8+ZiXpq/gRLtXeqXAi6hr8g6wN8+WsGA9k146NLuToejVEBISoji09sHMqxnC579ej2/e2I+T8zNYFPOIadDUy7EqU4EKSkpJjU11aPr3HOwkOEv/URwkDD7joE0jQr36PqVqu+MMXy3bg/Tft3O/LV7KCs3pLRtzFWnt+aSHs2JDNcLD7xNRNKMMSlVzguUhF5UWsaYSYvI2JnPR7eeSbcW2hNUKW/ak1/Ix0uzmblkO5tzC4gMC+bSXi34Q0pr+raJ1UuEvSTgE7oxhr/OWsGstCxeHduXoT2ae2S9SqmaGWNI27qfGUu2M2fFTo6UlNEpIYqrUlpzed+WxOmRskcFfEJ/c+EW/jVnDXed34l7LjzNI+tUStXeoaJS5izfwYzU7SzbdoCQIOGCrs0YdXprBp0WT3CQ1tpPVUAn9B835HDtW79yYbdmvDq2H0H6hVHKL2zYnc+MJdv5eFk2+wqKSWwUwch+rfhDSivaNo10Orw6K2ATemZuASNe/onERhF8fNuZekJGKT9UXFrO/zJ2MzN1O9+vz6HcQIuYCLq3jKF7i0Ykt4ihe8tGJDaK0HZ3N5woodfZDJhvd+sPEnjj2hRN5kr5qbCQIIb2aM7QHs3ZmXeEL1bsZEVWHqt25PFtxm4q6pRNI8Po1qIRyXai794ihrZNGupRdy3UySxYXm64e0Y6W3ILmHpDf1o30W79StUFzWMacOPZHY6+LigqJWPnQVbvOMiq7DxW7zjI5B82U1puZfmo8BC6NW9E95ZWgk9u2YiO8VF6p7FquJXQRWQI8DwQDLxhjHmy0vxwYArQD9gLjDLGZHo21N/83zfr+DZjD4+O6M6ZHeO8tRmllJdFhoeQ0q4JKe2aHJ1WVFrGht2HWL0jj1XZB1m9I49pv26jsMTqnRoWHESzmHDio8JJiI4goVE4CdHhxEdbr+Ojw0loFE7TyPB6dxK2xoQuIsHAy8CFQBawRERmG2PWuBS7AdhvjEkSkdHAU8AobwT8+fIdvPzdJsb0b8012q1fqYATHhJMcssYklvGMOp0a1pZuWFL7iFWZR8kY9dBducVsie/iI05h/hl817yjpQct54ggaZRVrKvnPAbNQihYVgIkWEhRIYHExkeQsOwYKLCrelhIXXzCMCdGnp/YKMxZjOAiEwHRgCuCX0E8LD9fBbwkoiI8cIZ16aRYVzYrRmPDE/WEyhK1RPBQUJSQjRJCdFcRsvj5heWlJGTX8Se/CJy8ovIybcS/p6DReQcKmJPfiGrdxwk91AR5W5kpbDgIBqGBx9N+A3DQuxkbyX/8JAgQoPtR4gQFvzb67CQIMKCxWX+b6/D7OU6xEWS0CjC4/vJnYTeEtju8joLGFBdGWNMqYjkAU0Bjw/NdmZSHGcmaTOLUuo3EaHBtG7SsMbzaWXlhn0FxRQUlXKoqJTDxWUUFJdSUFTK4aLfnhcUl3G4qJRDRWUcLrZeFxSVknuoiMPFZRSXllNSVk5xaTnFZdajNtXXxy5L9srAgT49KSoiE4AJAG3atPHlppVSiuAgId5ufvG0snJDSVk5RXayLykrp6TUWAnfZVpxWTnt47xzHb47CT0baO3yupU9raoyWSISAsRgnRw9hjFmEjAJrOvQTyZgpZTyR8FBQnBQMBGhwY7F4E7L/xKgk4i0F5EwYDQwu1KZ2cC19vORwHxvtJ8rpZSqXo01dLtN/A7gK6zLFt8yxqwWkUeBVGPMbOBNYKqIbAT2YSV9pZRSPuRWG7oxZi4wt9K0B12eFwJ/8GxoSimlaqNuXmyplFLqOJrQlVIqQGhCV0qpAKEJXSmlAoRj46GLSA6w9SQXj8MLvVA9SOM7NRrfqfP3GDW+k9fWGBNf1QzHEvqpEJHU6gZ49wca36nR+E6dv8eo8XmHNrkopVSA0ISulFIBoq4m9ElOB1ADje/UaHynzt9j1Pi8oE62oSullDpeXa2hK6WUqkQTulJKBQi/TugiMkRE1onIRhG5r4r54SIyw56/WETa+TC21iLynYisEZHVIjKxijKDRSRPRNLtx4NVrcuLMWaKyEp726lVzBcRecHefytEpK8PY+vssl/SReSgiPypUhmf7z8ReUtE9ojIKpdpTUTkGxHZYP9tXM2y19plNojItVWV8UJsz4jIWvvz+0REYqtZ9oTfBS/H+LCIZLt8jhdXs+wJf+9ejG+GS2yZIpJezbI+2YenxBjjlw+soXo3AR2AMGA50K1SmduA1+zno4EZPoyvOdDXfh4NrK8ivsHAHAf3YSYQd4L5FwPzAAHOABY7+Fnvwuow4ej+AwYBfYFVLtOeBu6zn98HPFXFck2Azfbfxvbzxj6I7SIgxH7+VFWxufNd8HKMDwN/ceM7cMLfu7fiqzT//4AHndyHp/Lw5xr60ZtTG2OKgYqbU7saAbxrP58FnC8+unO0MWanMWap/TwfyIAq7l7r30YAU4xlERArIs0diON8YJMx5mR7DnuMMeYHrDH9Xbl+z94FLqti0d8D3xhj9hlj9gPfAEO8HZsx5mtjTKn9chHWHcUcU83+c4c7v/dTdqL47NxxFTDN09v1FX9O6FXdnLpywjzm5tRAxc2pfcpu6ukDLK5i9u9EZLmIzBOR7r6NDAN8LSJp9v1cK3NnH/vCaKr/ETm5/yo0M8bstJ/vAppVUcYf9uX1WEdcVanpu+Btd9jNQm9V02TlD/vvbGC3MWZDNfOd3oc18ueEXieISBTwEfAnY8zBSrOXYjUj9AJeBD71cXhnGWP6AkOB20VkkI+3XyOxbms4HPiwitlO77/jGOvY2++u9RWRB4BS4P1qijj5XXgV6Aj0BnZiNWv4ozGcuHbu978nf07otbk5NXKCm1N7i4iEYiXz940xH1eeb4w5aIw5ZD+fC4SKSJyv4jPGZNt/9wCfYB3WunJnH3vbUGCpMWZ35RlO7z8Xuyuaouy/e6oo49i+FJHrgGHAWPsfznHc+C54jTFmtzGmzBhTDkyuZtuOfhft/HEFMKO6Mk7uQ3f5c0L365tT2+1tbwIZxpjnqimTWNGmLyL9sfa3T/7hiEikiERXPMc6ebaqUrHZwHj7apczgDyXpgVfqbZW5OT+q8T1e3Yt8FkVZb4CLhKRxnaTwkX2NK8SkSHAvcBwY8zhasq4813wZoyu52Uur2bb7vzevekCYK0xJquqmU7vQ7c5fVb2RA+sqzDWY539fsCe9ijWlxcgAutQfSPwK9DBh7GdhXXovQJItx8XA7cAt9hl7gBWY52xXwSc6cP4OtjbXW7HULH/XOMT4GV7/64EUnz8+UZiJegYl2mO7j+sfy47gRKsdtwbsM7L/A/YAHwLNLHLpgBvuCx7vf1d3Aj80UexbcRqe674DlZc9dUCmHui74IP999U+/u1AitJN68co/36uN+7L+Kzp79T8b1zKevIPjyVh3b9V0qpAOHPTS5KKaVqQRO6UkoFCE3oSikVIDShK6VUgNCErgKWiMSKyG0nsdz93ohHKW/Tq1xUwLKHZJhjjEmu5XKHjDFR3olKKe/RGroKZE8CHe3hTp+pPFNEmovID/b8VSJytog8CTSwp71vlxsnIr/a014XkWB7+iER+Y9Ywyf/T0Tiffv2lDqW1tBVwKqphi4ifwYijDGP20m6oTEm37WGLiJdsYbPvcIYUyIirwCLjDFTRMQA44wx74s1VnuCMeYOn7w5paoQ4nQASjloCfCWPSbPp8aY9CrKnA/0A5bYoxA04LexXMr5beyP94DjxvNRype0yUXVW8YaG3sQ1iBQ74jI+CqKCfCuMaa3/ehsjHm4ulV6KVSl3KIJXQWyfKy7SVVJRNpijX89GXgD6042ACV2rR2sMVxGikiCvUwTezmwfj8j7edXAws9HL9StaIJXQUsY8xe4Cf7hOdxJ0WxbnG3XESWAaOA5+3pk4AVIvK+MWYN8A+sGxuswLoTUcXogQVAf7HuT3ke1sBxSjlGT4oqdZL08kblb7SGrpRSAUJr6CrgiUgPrDG5XRUZYwY4EY9S3qIJXSmlAoQ2uSilVIDQhK6UUgFCE7pSSgUITehKKRUgNKErpVSA0ISulFIB4v8BUSiPEgcDd8YAAAAASUVORK5CYII=",
"text/plain": [
""
]
@@ -3804,7 +3804,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -3816,7 +3816,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -3828,7 +3828,7 @@
},
{
"data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEXCAYAAAC9A7+nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA6yElEQVR4nO3dd3wUZf7A8c83HVIpCaG3IC30CJ4oYj1QBAsKCKJnwS7nFc/TO9vpWX/e2RWsoFLEhgi2Q1RUkARCDZ0ACS2hhBBIf35/zASXkJAN7O5sNt/367Wv7M48M/Pd2dlvnn1mnmfEGINSSqm6L8jpAJRSSnmGJnSllAoQmtCVUipAaEJXSqkAoQldKaUChCZ0pZQKEJrQ6zkRyRSRC7y8jXYiYkQkxJvb8TYROVtE1jkdhyt/2be+OI5UzTSh+4iInCUiP4tInojsE5GfROR0p+NS7jPG/GiM6ex0HIFERM4XkbUiclhEvhORtico+y8RWSkipSLysA/DrDM0ofuAiMQAc4AXgcZAS+ARoKiW6xER8evPzA9qinXqV0BdiNdbMYpIU+Bj4J9Y34tUYMYJFtkI3At84Y14AoFfJ4cAchqAMWaaMabMGHPEGPO1MWaFiFxv19Zfsmvva0Xk/IoFRWSBiDwuIj8Bh4EOItJFRL6xa/rrRORql/KXiMgyETkoItsr12RE5FoR2Soie0XkAXeCF5EgEblPRDbZy80Ukcb2vIqf/DeKyDZgvogEi8izIpIrIpuBSyqtr4WIzLbj3ygiN7vM6y8iqXb8u0XkuRpiO2779vQbRCRDRPaLyFeuNT+7/K0iskFEDojIy/Y/yzA7ph4uZRPs2mO8iAwWkSw39ldf+zPIF5EPRWSGiDxmzxssIlki8jcR2QW8LSKNRGSOiOTY8c4RkVYu61sgIk+IyK/2fvmsYv+7GCsi2+x9XuPnKiIPi8gsO7Z8EVkqIr1c5mfaMa4ACkQkRESGi8hqe58tEJGulVZ7uoissd/D2yISUUMYVwCrjTEfGmMKgYeBXiLSparCxph3jTHzgPya3l+9ZYzRh5cfQAywF3gXGAo0cpl3PVAK3AOEAqOAPKCxPX8BsA3oDoQAscB24A/26z5ALtDNLj8Y6IH1z7onsBu4zJ7XDTgEDALCgefsbV9QQ/wTgUVAK3u514Fp9rx2gAGmAJFAA+BWYC3QGqvm9Z1dJsRe5gfgFSAC6A3kAOfZ834BrrWfRwFn1BBbVdsfgVWb62rvo38AP7ssY7B+McUBbeztD7HnvQI8Vem9f+6yb7NqiCcM2GovF4qVtIqBx1zWUQo8Ze/LBkAT4EqgIRANfAh86rLOBUA2kGy/x4+A9yq9/8n2unph/fLrWkOcDwMlwEg7zr8AW4BQe34mkG5/hg2wKiUFwIV2+XvtfRzmUn6Vy2f+U8V7PkEMzwOvVpq2CriyhuXeAx52+nvtjw/HA6gvDzu5vANk2V/o2UAzrIS+AxCXsr+6JLUFwKMu80YBP1Za9+vAQ9Vs97/Af+znDwLTXeZF2smmpoSeAZzv8rq5nQxCXBJKB5f584FbXV5fZJcJsb/wZUC0y/wngHfs5z9gNUc1dXO/VrX9ecCNLq+DsH7dtLVfG+Asl/kzgfvs5wOw/oGK/ToVuNp+PpiaE/ogrOTr+nku5NiEXgxEnGAdvYH9Lq8XAE+6vO5mryPY5f23qnT8jK4hzoeBRZX20U7gbPt1JnCDy/x/AjMrlc8GBruUd/3MLwY21RDDm67vy572E3B9DctpQq/moU0uPmKMyTDGXG+MaYVV02qBlWwBso19pNq22vMrbHd53hYYYP/sPSAiB4CxQCKAiAwQ6+RSjojkYdWWm9rLtnBdlzGmAOuXQ03aAp+4bC8DKyk3qybGFpVeb600b58xJr/S/Jb28xuxaoNrRWSJiAxzI77K228LPO8S7z5AXLYBsMvl+WGsXwMYYxbbrwfbP/2TsP75uqsFx3+e2yuVyTFWEwMAItJQRF63m8IOYv1TixOR4GrWsRWrltzUZVqV76cGrsdCOVZlo7rjrgUun6NdfjvH7tPKMbquqyqHsH69uopBm1ROmiZ0Bxhj1mLV1pPtSS1FRFyKtMGqtR9dxOX5duB7Y0ycyyPKGHObPf8DrATU2hgTC7yGlczAqoG1rliRiDTE+rlfk+3A0ErbjDDGZFcT4zHbsd9PhR1AYxGJrjQ/G8AYs8EYMwZIwGqWmCUikW7EWHkf3VIp3gbGmJ/dWA9YTWPjgGuBWa7J1w07Of7zbF2pTOUhTv8MdAYGGGNisGr58NvnVnkdbbB+IeXWIq6quB4LQVhNatUddzuw/lFWlBd7eddjoHKMruuqymqsJqKKdUYCHe3p6iRoQvcBsU5i/rniRJeItAbGYLVLg5W87haRUBG5Cqt5Zm41q5sDnCbWyc1Q+3G6ywmqaKwacKGI9AeucVl2FjBMrEsow4BHce8YeA14vOLEon2CcMQJys+0308rEWkE3FcxwxizHfgZeEJEIkSkJ1at/D173eNEJN6uAR6wFyt3I8bK8f5dRLrb64y196u73gMux0rqU2q57V+wfr3caZ9IHAH0r2GZaOAIcMA+2flQFWXGiUg3+5/wo1j/aMpqGVtl/UTkCrGuYvkjVtv7omrKzgQuEesyw1Csf0JFWJ9lhTvsz7wx8AAnvmIF4BMgWUSutE+gPgissCs8x7GP9QisYzbEPn6CqypbX2lC9418rLbZxSJSgPWlWYX1pQBYDHTCqnE9Dow0xlTZFGI3VVwEjMaqAe3itxNsALcDj4pIPtYXZKbLsquBO7Bq8TuB/Vg/s2vyPFat/2t7vYvs91OdycBXwHJgKdalaa7GYLX97sD6Uj9kjPnWnjcEWC0ih+ztjjbGHHEjxqOMMZ9g7ZPpdhPGKqyT0e4uv92O2wA/1nLbxVgnQm/E+oc0Duuf8IkuUf0v1onHXKx9+2UVZaZi/arbhXUy+e7axFWNz7DOyezH+jVyhTGmpKqCxph1WO/lRTvOS4FL7fdb4QPga2AzsAl47EQbN8bkYJ0MftyOYQDWcQ2AiLwmIq+5LDIZ6x/fGKx/GEfsuJWt4sSPcoiIXA/cZIw5y+lY1G9E5C1ghzHmHx5Y12LgNWPM2ye5/AKsq1reONVYXNb5MJBkjBnnqXUq5/l9pwalfE1E2mHVsvuc5PLnAOuwarJjsS4frarWrZRHaZOLAkBE5onIoSoe9/tBbGOric3jJ89E5F9YTTTPGGO2VFOmTTXxHBKRNlgnOJdjNbn8GasJbaenY62JP3ymInJ/NTHM81UM9Yk2uSilVIDQGrpSSgUITehKKRUgHDsp2rRpU9OuXTunNq+UUnVSWlparjEmvqp5jiX0du3akZqa6tTmlVKqThKRrdXN0yYXpZQKEJrQlVIqQGhCV0qpAKE9RZUKYCUlJWRlZVFYWJsBI5U/iIiIoFWrVoSGhrq9TI0J3R7TYhiwxxiTXMV8wRpE6WKscZivN8YsdTsCpZTXZGVlER0dTbt27Th2RF/lz4wx7N27l6ysLNq3b+/2cu40ubyDNQJedYZijRTYCZgAvOr21pVSXlVYWEiTJk00mdcxIkKTJk1q/cuqxoRujPkB644v1RkBTDGWRVh3WmleqyiUUl6jybxuOpnPzRMnRVty7K2nsjj2tlRKBYwlmfsY+vyP7DhQqyHa1UnKzMwkOfm4ll5VDZ9e5SIiE0QkVURSc3JyfLlppU5Z1v7D3Do1jYydB1mSeaIfrUo5wxMJPZtj7yXYimPvM3iUMWaSMSbFGJMSH19lz1Wl/NLh4lImTEmjuLSc4CBhw+5DTodU72zevJk+ffqwePFihgwZQr9+/Tj77LNZu3Yt+fn5tG/fnpIS64ZLBw8ePOZ1feGJhD4bGC+WM4A8J8Z+VspbjDH89cMVZOw6yAtj+tC2cUM27tGE7kvr1q3jyiuv5J133uH+++/nxRdfJC0tjWeffZbbb7+d6OhoBg8ezBdffAHA9OnTueKKK2p1yV8gcOeyxWnAYKCpiGRh3cA2FMAY8xrWzYwvBjZiXbb4B28Fq5QTXv5uI1+s3Ml9Q7twbpcEpv26jY05mtB9JScnhxEjRvDxxx/Tpk0bfv75Z6666rd7fhcVWbdrvemmm3j66ae57LLLePvtt5k8ebJTITumxoRujBlTw3yDdeNhpQLON2t28+zX67msdwtuGdQBgKSEKOav3UNJWTmhwdrZ2ttiY2Np06YNCxcuZPTo0cTFxZGenn5cuYEDB5KZmcmCBQsoKyurlydT9WhUqhrrd+fzx+nL6Nkqliev7Hn0MrJOzaIoLTds3VvgcIT1Q1hYGJ988glTpkxhzpw5tG/fng8//BCwmsOWL19+tOz48eO55ppr+MMf6mdDgSZ0paqwv6CYm95NpWF4CK9f24+I0OCj85LiowH0xKgPRUZGMmfOHP7zn/8watQo3nzzTXr16kX37t357LPPjpYbO3Ys+/fvZ8yYEzYsBCwdy0WpSkrLyrlz2lJ25RUy/ZYzaB7b4Jj5HRMiAfTEqA+0a9eOVatWARAXF8eSJUsAmDhxYpXlFy5cyMiRI4mLi/NViH5FE7pSlTz2RQY/bdzLMyN70rdNo+PmNwwLoWVcAz0x6mfuuusu5s2bx9y5c50OxTGa0JVyMXPJdt75OZMbBrbnqpTW1ZZLSojSJhc/8+KLLzodguO0DV0pW9rWfTzw6UrO7tSU+y/ucsKynRKi2JRziLJy46PolKqZJnSlgB0HjnDL1KW0iGvAi2P6EFLD5YhJCVEUlZaTvV/HdFH+QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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\n",
+ "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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",
"text/plain": [
""
]
@@ -3840,7 +3840,7 @@
},
{
"data": {
- "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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\n",
+ "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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",
"text/plain": [
""
]
@@ -3852,7 +3852,7 @@
},
{
"data": {
- "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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\n",
+ "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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",
"text/plain": [
""
]
@@ -3864,7 +3864,7 @@
},
{
"data": {
- "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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\n",
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEXCAYAAAC9A7+nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA6yElEQVR4nO3dd3wUZf7A8c83HVIpCaG3IC30CJ4oYj1QBAsKCKJnwS7nFc/TO9vpWX/e2RWsoFLEhgi2Q1RUkARCDZ0ACS2hhBBIf35/zASXkJAN7O5sNt/367Wv7M48M/Pd2dlvnn1mnmfEGINSSqm6L8jpAJRSSnmGJnSllAoQmtCVUipAaEJXSqkAoQldKaUChCZ0pZQKEJrQ6zkRyRSRC7y8jXYiYkQkxJvb8TYROVtE1jkdhyt/2be+OI5UzTSh+4iInCUiP4tInojsE5GfROR0p+NS7jPG/GiM6ex0HIFERM4XkbUiclhEvhORtico+y8RWSkipSLysA/DrDM0ofuAiMQAc4AXgcZAS+ARoKiW6xER8evPzA9qinXqV0BdiNdbMYpIU+Bj4J9Y34tUYMYJFtkI3At84Y14AoFfJ4cAchqAMWaaMabMGHPEGPO1MWaFiFxv19Zfsmvva0Xk/IoFRWSBiDwuIj8Bh4EOItJFRL6xa/rrRORql/KXiMgyETkoItsr12RE5FoR2Soie0XkAXeCF5EgEblPRDbZy80Ukcb2vIqf/DeKyDZgvogEi8izIpIrIpuBSyqtr4WIzLbj3ygiN7vM6y8iqXb8u0XkuRpiO2779vQbRCRDRPaLyFeuNT+7/K0iskFEDojIy/Y/yzA7ph4uZRPs2mO8iAwWkSw39ldf+zPIF5EPRWSGiDxmzxssIlki8jcR2QW8LSKNRGSOiOTY8c4RkVYu61sgIk+IyK/2fvmsYv+7GCsi2+x9XuPnKiIPi8gsO7Z8EVkqIr1c5mfaMa4ACkQkRESGi8hqe58tEJGulVZ7uoissd/D2yISUUMYVwCrjTEfGmMKgYeBXiLSparCxph3jTHzgPya3l+9ZYzRh5cfQAywF3gXGAo0cpl3PVAK3AOEAqOAPKCxPX8BsA3oDoQAscB24A/26z5ALtDNLj8Y6IH1z7onsBu4zJ7XDTgEDALCgefsbV9QQ/wTgUVAK3u514Fp9rx2gAGmAJFAA+BWYC3QGqvm9Z1dJsRe5gfgFSAC6A3kAOfZ834BrrWfRwFn1BBbVdsfgVWb62rvo38AP7ssY7B+McUBbeztD7HnvQI8Vem9f+6yb7NqiCcM2GovF4qVtIqBx1zWUQo8Ze/LBkAT4EqgIRANfAh86rLOBUA2kGy/x4+A9yq9/8n2unph/fLrWkOcDwMlwEg7zr8AW4BQe34mkG5/hg2wKiUFwIV2+XvtfRzmUn6Vy2f+U8V7PkEMzwOvVpq2CriyhuXeAx52+nvtjw/HA6gvDzu5vANk2V/o2UAzrIS+AxCXsr+6JLUFwKMu80YBP1Za9+vAQ9Vs97/Af+znDwLTXeZF2smmpoSeAZzv8rq5nQxCXBJKB5f584FbXV5fZJcJsb/wZUC0y/wngHfs5z9gNUc1dXO/VrX9ecCNLq+DsH7dtLVfG+Asl/kzgfvs5wOw/oGK/ToVuNp+PpiaE/ogrOTr+nku5NiEXgxEnGAdvYH9Lq8XAE+6vO5mryPY5f23qnT8jK4hzoeBRZX20U7gbPt1JnCDy/x/AjMrlc8GBruUd/3MLwY21RDDm67vy572E3B9DctpQq/moU0uPmKMyTDGXG+MaYVV02qBlWwBso19pNq22vMrbHd53hYYYP/sPSAiB4CxQCKAiAwQ6+RSjojkYdWWm9rLtnBdlzGmAOuXQ03aAp+4bC8DKyk3qybGFpVeb600b58xJr/S/Jb28xuxaoNrRWSJiAxzI77K228LPO8S7z5AXLYBsMvl+WGsXwMYYxbbrwfbP/2TsP75uqsFx3+e2yuVyTFWEwMAItJQRF63m8IOYv1TixOR4GrWsRWrltzUZVqV76cGrsdCOVZlo7rjrgUun6NdfjvH7tPKMbquqyqHsH69uopBm1ROmiZ0Bxhj1mLV1pPtSS1FRFyKtMGqtR9dxOX5duB7Y0ycyyPKGHObPf8DrATU2hgTC7yGlczAqoG1rliRiDTE+rlfk+3A0ErbjDDGZFcT4zHbsd9PhR1AYxGJrjQ/G8AYs8EYMwZIwGqWmCUikW7EWHkf3VIp3gbGmJ/dWA9YTWPjgGuBWa7J1w07Of7zbF2pTOUhTv8MdAYGGGNisGr58NvnVnkdbbB+IeXWIq6quB4LQVhNatUddzuw/lFWlBd7eddjoHKMruuqymqsJqKKdUYCHe3p6iRoQvcBsU5i/rniRJeItAbGYLVLg5W87haRUBG5Cqt5Zm41q5sDnCbWyc1Q+3G6ywmqaKwacKGI9AeucVl2FjBMrEsow4BHce8YeA14vOLEon2CcMQJys+0308rEWkE3FcxwxizHfgZeEJEIkSkJ1at/D173eNEJN6uAR6wFyt3I8bK8f5dRLrb64y196u73gMux0rqU2q57V+wfr3caZ9IHAH0r2GZaOAIcMA+2flQFWXGiUg3+5/wo1j/aMpqGVtl/UTkCrGuYvkjVtv7omrKzgQuEesyw1Csf0JFWJ9lhTvsz7wx8AAnvmIF4BMgWUSutE+gPgissCs8x7GP9QisYzbEPn6CqypbX2lC9418rLbZxSJSgPWlWYX1pQBYDHTCqnE9Dow0xlTZFGI3VVwEjMaqAe3itxNsALcDj4pIPtYXZKbLsquBO7Bq8TuB/Vg/s2vyPFat/2t7vYvs91OdycBXwHJgKdalaa7GYLX97sD6Uj9kjPnWnjcEWC0ih+ztjjbGHHEjxqOMMZ9g7ZPpdhPGKqyT0e4uv92O2wA/1nLbxVgnQm/E+oc0Duuf8IkuUf0v1onHXKx9+2UVZaZi/arbhXUy+e7axFWNz7DOyezH+jVyhTGmpKqCxph1WO/lRTvOS4FL7fdb4QPga2AzsAl47EQbN8bkYJ0MftyOYQDWcQ2AiLwmIq+5LDIZ6x/fGKx/GEfsuJWt4sSPcoiIXA/cZIw5y+lY1G9E5C1ghzHmHx5Y12LgNWPM2ye5/AKsq1reONVYXNb5MJBkjBnnqXUq5/l9pwalfE1E2mHVsvuc5PLnAOuwarJjsS4frarWrZRHaZOLAkBE5onIoSoe9/tBbGOric3jJ89E5F9YTTTPGGO2VFOmTTXxHBKRNlgnOJdjNbn8GasJbaenY62JP3ymInJ/NTHM81UM9Yk2uSilVIDQGrpSSgUITehKKRUgHDsp2rRpU9OuXTunNq+UUnVSWlparjEmvqp5jiX0du3akZqa6tTmlVKqThKRrdXN0yYXpZQKEJrQlVIqQGhCV0qpAKE9RZUKYCUlJWRlZVFYWJsBI5U/iIiIoFWrVoSGhrq9TI0J3R7TYhiwxxiTXMV8wRpE6WKscZivN8YsdTsCpZTXZGVlER0dTbt27Th2RF/lz4wx7N27l6ysLNq3b+/2cu40ubyDNQJedYZijRTYCZgAvOr21pVSXlVYWEiTJk00mdcxIkKTJk1q/cuqxoRujPkB644v1RkBTDGWRVh3WmleqyiUUl6jybxuOpnPzRMnRVty7K2nsjj2tlRKBYwlmfsY+vyP7DhQqyHa1UnKzMwkOfm4ll5VDZ9e5SIiE0QkVURSc3JyfLlppU5Z1v7D3Do1jYydB1mSeaIfrUo5wxMJPZtj7yXYimPvM3iUMWaSMSbFGJMSH19lz1Wl/NLh4lImTEmjuLSc4CBhw+5DTodU72zevJk+ffqwePFihgwZQr9+/Tj77LNZu3Yt+fn5tG/fnpIS64ZLBw8ePOZ1feGJhD4bGC+WM4A8J8Z+VspbjDH89cMVZOw6yAtj+tC2cUM27tGE7kvr1q3jyiuv5J133uH+++/nxRdfJC0tjWeffZbbb7+d6OhoBg8ezBdffAHA9OnTueKKK2p1yV8gcOeyxWnAYKCpiGRh3cA2FMAY8xrWzYwvBjZiXbb4B28Fq5QTXv5uI1+s3Ml9Q7twbpcEpv26jY05mtB9JScnhxEjRvDxxx/Tpk0bfv75Z6666rd7fhcVWbdrvemmm3j66ae57LLLePvtt5k8ebJTITumxoRujBlTw3yDdeNhpQLON2t28+zX67msdwtuGdQBgKSEKOav3UNJWTmhwdrZ2ttiY2Np06YNCxcuZPTo0cTFxZGenn5cuYEDB5KZmcmCBQsoKyurlydT9WhUqhrrd+fzx+nL6Nkqliev7Hn0MrJOzaIoLTds3VvgcIT1Q1hYGJ988glTpkxhzpw5tG/fng8//BCwmsOWL19+tOz48eO55ppr+MMf6mdDgSZ0paqwv6CYm95NpWF4CK9f24+I0OCj85LiowH0xKgPRUZGMmfOHP7zn/8watQo3nzzTXr16kX37t357LPPjpYbO3Ys+/fvZ8yYEzYsBCwdy0WpSkrLyrlz2lJ25RUy/ZYzaB7b4Jj5HRMiAfTEqA+0a9eOVatWARAXF8eSJUsAmDhxYpXlFy5cyMiRI4mLi/NViH5FE7pSlTz2RQY/bdzLMyN70rdNo+PmNwwLoWVcAz0x6mfuuusu5s2bx9y5c50OxTGa0JVyMXPJdt75OZMbBrbnqpTW1ZZLSojSJhc/8+KLLzodguO0DV0pW9rWfTzw6UrO7tSU+y/ucsKynRKi2JRziLJy46PolKqZJnSlgB0HjnDL1KW0iGvAi2P6EFLD5YhJCVEUlZaTvV/HdFH+QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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",
"text/plain": [
""
]
@@ -3876,7 +3876,7 @@
},
{
"data": {
- "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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\n",
+ "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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",
"text/plain": [
""
]
@@ -3888,7 +3888,7 @@
},
{
"data": {
- "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MAB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\n",
+ "image/png": "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QxO6qveOFJdxy9Q0CkvKeGN8CnENw2pcJikhCoCNOfneDk8pt2lCV/WaMYZ7P1rBqh15/HdUbzo1i3ZruaMJXa90UX5EE7qq1179fhOfL9/BXy7qzAXdmrm9XFzDMJpGheuJUeVXNKGreut/Gbt55qt1XNqrBbcP7ljr5TslROmliz4QFRXldtl33nmHHTt2eDEa7xg8eDCpqamnvB5N6Kpe2rgnn4nT0+neIoanXbr110ZSQhQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc9G4qEaFBTLo2hQZhwTUvVIWkhCjyi0rZk19Es5gID0fpeY98vpo1Ow56dJ3dWsTw0KXdT1gmMzPz6PjlS5cupXv37kyZMoVu3boxatQovvnmG+69916MMfz73//GGMMll1zCU089dXQd99xzD19//TWJiYlMnz6dqu6nMGvWLFJTUxk7diwNGjTgiSee4K233jo67suCBQt49tlnmTNnznHLlpWVceONN5KamoqIcMMNN3DPPfcwePBgevXqxffff09paSlvvfUW/fv35+GHH2bTpk1s3ryZNm3a8MILL3Drrbeybds2AP773/8ycOBAfv31VyZOnEhhYSENGjTg7bffpnPnzhw5coQ//OEPLF++nC5dunDkiGeultIauqpXKrr1Zx84wmvj+tEirkHNC1Wjk54Yddu6deu4/fbbycjIICYmhldeeQWAJk2asHTpUgYNGsTf/vY35s+fT3p6OkuWLOHTTz8FoKCggJSUFFavXs0555zDI488UuU2Ro4cSUpKCu+//z7p6elceOGFLF68mIICaxC1GTNmMHr06CqXTU9PJzs7m1WrVrFy5cpjBvc6fPgw6enpvPLKK9xwww1Hp69Zs4Zvv/2WadOmMXHiRO655x6WLFnCRx99xE033QRAly5d+PHHH1m2bBmPPvoo999/PwCvvvoqDRs2JCMjg0ceeYS0tLRT28E2raGreuXJeWv5cUMuT17Rg5R2jU9pXRVXumzYnc/ApKaeCM+raqpJe1Pr1q0ZOHAgAOPGjeOFF14AYNSoUQAsWbKEwYMHH615jx07lh9++IHLLruMoKCgo+XGjRvHFVdc4dY2Q0JCGDJkCJ9//jkjR47kiy++4Omnn66ybIcOHdi8eTN33XUXl1xyCRdddNHReRUDfQ0aNIiDBw9y4MABAIYPH06DBlaF4Ntvv2XNmjVHlzl48CCHDh0iLy+P6667jg0bNiAiR++g9MMPP3D33XcD0LNnT3r27OnWe6rxPXtkLUrVAbPSsnhj4RauP7Mdo/u3OeX1xUeHExMRoidG3VD5HEXF68jIyFNe14mMHj2al156icaNG5OSkkJ0dNWXpTZq1Ijly5fz1Vdf8dprrzFz5kzeeustt2MvLy9n0aJFREQc2/R25513cu655/LJJ5+QmZnJ4MGD3Y79ZGiTi6oXlm7bz/0fr+TMjk144JKuHlmniOiYLm7atm0bv/zyCwAffPABZ5111jHz+/fvz/fff09ubi5lZWVMmzaNc845B7CS5axZs6pd1lV0dDT5+b919jrnnHNYunQpkydPrra5BSA3N5fy8nKuvPJKHnvsMZYuXXp03owZMwBrJMfY2FhiY2OPW/6iiy46ZiyZihtw5OXl0bJlS8A6YVth0KBBfPDBBwCsWrWKFStWVBtbbWhCVwFvV14ht0xNIzE2gpev6evRuwwl2WO6qBPr3LkzL7/8Ml27dmX//v3cdtttx8xv3rw5Tz75JOeeey69evWiX79+jBgxArBqwr/++ivJycnMnz+fBx98sNrtXH/99dx666307t2bI0eOEBwczLBhw5g3bx7Dhg2rdrns7GwGDx5M7969GTduHE888cTReREREfTp04dbb72VN998s8rlX3jhBVJTU+nZsyfdunXjtddeA+Dee+/l73//O3369DnmapjbbruNQ4cO0bVrVx588EH69etX8050gzh1yVVKSorxxHWXSp1IYUkZo17/hY17DvHx7QPpnOheT1B3Tf5hM4/PzWDZPy+kUWTNQwb4WkZGBl27euYXycnKzMxk2LBhR8c1r0sGDx7Ms88+S0pKiiPbr+rzE5E0Y0yVAWkNXQUsYwx//3gly7Py+M+o3h5P5uA6povW0pXz9KSoCliTf9zMJ8uy+dOFp3FR90SvbMN1TJfTT/GqmUDletchT7njjjv46aefjpk2ceJEt+4lOmDAAIqKio6ZNnXqVHr06HFc2QULFpxSnL6mCV0FpO/W7eHJeWu5uEcid52X5LXttIxrQIPQYD0x6mMvv/zySS+7ePFiD0biX7TJRQWcTTmHuHvaMjonxvDsVb1Oqlu/u4KChA7xkX7d5KJDE9RNJ/O5aUJXASXvSAk3v5tKWHAQk8f3o2GY93+EdkqIYpOf9haNiIhg7969mtTrGGMMe/fuPe669ppok4sKGGXlhrunLWPbvsN8cPMZtGrU0CfbTUqI4tP0HRQUlRIZ7l9fqVatWpGVlUVOTo7ToahaioiIoFWrVrVaxr+OPqVOwdNfruX79Tk8fnky/dv77gRlUoJ19cymnEP0bBXns+26IzQ0lPbt2zsdhvIRbXJRAeGTZVm8/sNmxp3RhrED2vp027+N6eKfzS6q/tCEruq85dsP8LePVjKgfWNHBqBq26QhIUHi1ydGVf2gCV3VaXsOFjJhairxUeG8Mtaz3frdFRocRPumkVpDV47ThK7qrMKSMiZMTSO/sJQ3rkuhSVS4Y7HomC7KH2hCV3WSMYYHPllF+vYDPHd1L7o2j3E0nk4JUWzdW0BRqWdupabUyXAroYvIEBFZJyIbReS+Kua3EZHvRGSZiKwQkYs9H6pSv3lz4RY+WprFxPM7MSS5udPh0DEhinIDW3ILnA5F1WM1JnQRCQZeBoYC3YAxItKtUrF/ADONMX2A0cArng5UqQo/rM/h33Mz+H33Zkw8v5PT4QDHjumilFPcqaH3BzYaYzYbY4qB6cCISmUMUPGbNxbw7W23Vb2xJbeAOz9YymnNonnu6t4EBXmvW39tdIyPQkQvXVTOciehtwS2u7zOsqe5ehgYJyJZwFzgrqpWJCITRCRVRFK155qqrfzCEm6ekkpwkDB5fIpf9cqMCA2mdaOGeumicpSnToqOAd4xxrQCLgamishx6zbGTDLGpBhjUipuBquUO8rKDROnp5OZW8ArY/vRurFvuvXXhj+P6aLqB3cSejbQ2uV1K3uaqxuBmQDGmF+ACMD/b4Ou6oxnv17H/LV7eOjSbvyuYxOnw6lSUkIUm3MKKC0rdzoUVU+5k9CXAJ1EpL2IhGGd9Jxdqcw24HwAEemKldC1TUV5xGfp2by6YBNj+rdh3Bm+7dZfGx0ToiguK2f7/iNOh6LqqRoTujGmFLgT+ArIwLqaZbWIPCoiw+1ifwZuFpHlwDTgeqPjdSoPWJmVx72zVtC/XWMeGd7dq2Obn6pOR8d0ya+hpFLe4dZZJWPMXKyTna7THnR5vgYY6NnQVH23J9/q1t80KpxXxvUlLMS/+8F1dLm/6EUOx6LqJ/+5TEApF0WlZdz23lL2Hy7mo9vOpKmD3frdFRMRSmJMhF6LrhyjCV35HWMMD366mrSt+3npmj50bxHrdEhuS0qI0oSuHOPfv2FVvfTuz5nMSN3OXeclMaxnC6fDqZWKhK6nkJQTNKErv/LTxlz+9UUGF3Zrxj0XnOZ0OLWWlBDF4eIyduQVOh2Kqoc0oSu/sXVvAbe/v5SO8ZH8Z5T/dOuvDR3TRTlJE7ryC4eKSrl5SioiMHl8ClF+1K2/NjppQlcOqpvfGhVQyssN98xIZ1NOAVNu6E/bJpFOh3TSmkSF06hhKBv36LXoyve0hq4c959v1/PNmt3845KuDEyq+yNG6JUuyima0JWjvlixkxfnb+TqlFZcf2Y7p8PxiKSEaDbolS7KAZrQlWNWZefx5w/T6de2Ef+6LNmvu/XXRlJCFAcOl7C3oNjpUFQ9owldOSL3UBETpqTSqGEYr43rR3hIsNMheYyeGFVO0YSufK64tJzb3ktjb0Exk65NIT7a/7v110bFpYsbNKErH9OrXJRPGWN4aPZqlmTu5/nRvenRqu5063dX89gIIsOC9WYXyue0hq586r1FW5n26zZuG9yREb0r38kwMIgISQlRbNBLF5WPaUJXPvPLpr088vkazuuSwF8u6ux0OF7VUS9dVA7QhK58Yvu+w9z+fhptmzTkv6N7E1wHu/XXRqeEaHYfLOJgYYnToah6RBO68roCu1t/WbnhjetOJyYi1OmQvE7HdFFO0ISuvKq83PCnmems353PS9f0pX3Tututvzb00kXlBE3oyque/98Gvlq9m/sv7sqg0+KdDsdnWjduSFhIkCZ05VOa0JXXzFu5k+f/t4Er+7bixrPaOx2OTwUHCR2aRmpCVz6lCV15RcbOg/xp5nJ6t47j8csDp1t/beggXcrXNKErj9tXUMzNU1KJaRDCpGv7EREaON36ayMpIYrt+w9TWFLmdCiqntCErjyqpKyc299PY09+EZOuTSEhJsLpkBzTKSEaY2BTjtbSlW9oQlce9ejna1i0eR9PXdmDXq3jnA7HUXrpovI1TejKY95fvJWpi7Zyy6AOXN6nldPhOK5d04YEiSZ05Tua0JVHLN68l4c+W83gzvHcO6SL0+H4hfCQYNo1iWTDbk3oyjc0oatTlrX/MLe9v5Q2TRry/Og+Ad+tvzY6JkSxUdvQlY9oQlen5HBxKTdPSaOkrJzJ41OIbRD43fpro1NCFJm5BZSUlTsdiqoHNKGrk2aM4a8frmDtroO8MKYPHeOjnA7J7yQlRFFabti6t8DpUFQ9oAldnbSX5m/ki5U7uW9IF87tnOB0OH5Jr3RRvuRWQheRISKyTkQ2ish91ZS5WkTWiMhqEfnAs2Eqf/P16l383zfrubxPSyYM6uB0OH6r4leLnhhVvlDjLehEJBh4GbgQyAKWiMhsY8walzKdgL8DA40x+0VEq2sBbN2ufO6ZkU6vVrE8cUWPetmt312R4SG0jGugJ0aVT7hTQ+8PbDTGbDbGFAPTgRGVytwMvGyM2Q9gjNnj2TCVv9hfUMxNU5YQGR7C69em1Ntu/bWhY7ooX3EnobcEtru8zrKnuToNOE1EfhKRRSIyxFMBKv9RUlbOHR8sZXdeEa9d24/E2Prbrb82khKi2JRziPJy43QoKsB56qRoCNAJGAyMASaLSFzlQiIyQURSRSQ1JyfHQ5tWvvL4Fxn8vGkv/76iB33bNHI6nDojKSGKwpJysg8ccToUFeDcSejZQGuX163saa6ygNnGmBJjzBZgPVaCP4YxZpIxJsUYkxIfX39udhAIZizZxjs/Z3LjWe0Z2U+79ddGxd2LNuzJdzgSFejcSehLgE4i0l5EwoDRwOxKZT7Fqp0jIk2xmmA2ey5M5aTUzH3849NVnN2pKX8fqt36a0svXVS+UmNCN8aUAncCXwEZwExjzGoReVREhtvFvgL2isga4Dvgr8aYvd4KWvnOjgNHuPW9NFrGNeClMX0JCdauC7UV1zCMplHhmtCV19V42SKAMWYuMLfStAddnhvgT/ZDBYgjxWVMmJpKYUk50yekENtQu/WfrKSESDZoQldeptUtVSVjDH+dtZzVOw7ywpjeJCVEOx1SnVZx6aJV91HKOzShqyq9smATc1bs5K+/78x5XZo5HU6d1ykhmvzCUvbkFzkdigpgmtDVcb5ds5tnv17H8F4tuO2cjk6HExD0xKjyBU3o6hgbdufzxxnpdG8Rw1NX9tRu/R7SSRO68gFN6OqovMMl3DwllYjQYCZdm0KDMO3W7ynx0eFER4TotejKqzShKwBKy8q5c9pSsg8c4fVr+9IiroHTIQUUEdExXZTXaUJXADwxby0/bsjl8ct60K9tY6fDCUidNKErL9OErvgwdTtvLtzC9We24+rTW9e8gDopSQlR5B4q5sDhYqdDUQFKE3o9l7Z1Pw98soqBSU34xyVdnQ4noHWyr+XXWrryFk3o9diuvEJufS+NxNgI7dbvA0lHB+nShK68w62u/yrwFJZY3foPF5Xy/k0DaBQZ5nRIAa9lXAMiQoO0hq68RhN6PWSM4b6PVrAyO49J16ZwWjPt1u8LQUFCx/goraErr9Hf2PXQpB8282n6Dv584Wlc2E279ftSUkIUmzShKy/RhF7PfLd2D09+uZZLejbnjnOTnA6n3umUEEX2gSMUFJU6HYoKQJrQ65GNew5x97RldE2M4ZmR2q3fCXpiVHmTJvR6Iu9ICROmpBIWEsTk61JoGKanT5zQt20jRGDBuj1Oh6ICkCb0eqCs3HD3tGVs33+YV8f1o6V263dMQnQEKW0b8eWqXU6HogKQJvR64Kkv1/L9+hweGZ5M//bard9pQ5Kbs3ZXPltyC5wORQUYTegB7uOlWUz6YTPjf9eWawa0cTocBQxJTgTQWrryOE3oASx9+wHu+3glv+vQhH8O6+Z0OMrWMq4BvVrF8uWqnU6HogKMJvQAtftgIbdMTSUhOpyXx/YlVLv1+5Uhyc1ZnpVH9oEjToeiAoh+ywOQ1a0/jfzCUt64LoXG2q3f72izi/IGTegBxhjD/Z+sZPn2Azx3dW+6JMY4HZKqQvumkXRJjNZmF+VRmtADzJsLt/Dx0mz+eEGno7VA5Z+GJCeSunU/e/ILnQ5FBQhN6AHk+/U5/HtuBkOTE7n7vE5Oh6NqMDS5OcbA16t3Ox2KChCa0APEltwC7vpgKac1i+bZq3oRFKTd+v3dac2i6NA0UtvRlcdoQg8ABwtLuOndJYQEBzF5fAqR4dqtvy4QEX6fnMgvm/eyv0BvS6dOnSb0Oq6s3PDH6els3XuYV8b2pXXjhk6HpGphaHIiZeWGbzK02UWdOk3oddwzX61j/to9PDS8O2d0aOJ0OKqWerSMpWVcA212UR6hCb0O+yw9m9e+38Q1A9pw7RltnQ5HnQQRYUhyIgs35JJfWOJ0OKqO04ReR63IOsC9s1bQv11jHr60u9PhqFMwNDmR4rJy5q/VIXXVqXEroYvIEBFZJyIbReS+E5S7UkSMiKR4LkRV2Z78QiZMSaNpVDivjOtLWIj+X67L+rZpRHx0uDa7qFNWYyYQkWDgZWAo0A0YIyLHjfQkItHARGCxp4NUvykqLePWqWnkHSlh0vh+NI0KdzokdYqCgoTfd2/GgnU5HCkuczocVYe5U7XrD2w0xmw2xhQD04ERVZT7F/AUoN3evMQYwz8/XcXSbQf4v6t70b1FrNMhKQ8ZmtycIyVlfL9em13UyXMnobcEtru8zrKnHSUifYHWxpgvPBibquSdnzOZmZrF3eclcXGP5k6HozxoQPvGNGoYyjxtdlGn4JQbX0UkCHgO+LMbZSeISKqIpObk5JzqpuuVhRtyeeyLDC7q1ow/XnCa0+EoDwsJDuLCbs2Yn7GHolJtdlEnx52Eng20dnndyp5WIRpIBhaISCZwBjC7qhOjxphJxpgUY0xKfHz8yUddz2TmFnDHB0vpGB/Jc6N6a7f+ADU0uTn5RaX8vHGv06GoOsqdhL4E6CQi7UUkDBgNzK6YaYzJM8Y0Nca0M8a0AxYBw40xqV6JuJ7JLyzh5impiMAb408nSrv1B6wzk5oQHR7CPB1SV52kGhO6MaYUuBP4CsgAZhpjVovIoyIy3NsB1mfl5YZ7ZqSzObeAV67pS5sm2q0/kIWHBHNe1wS+WbOb0rJyp8NRdZBb1T1jzFxgbqVpD1ZTdvCph6UAnvtmPd9m7OGR4d05M6mp0+EoHxianMhn6TtYvGUfA/UzV7WkPVL81JwVO3jpu42MPr0143+n3frri3NOS6BBaLA2u6iTogndD63KzuMvHy4npW0jHh2RjIieBK0vGoQFM7hzPF+t3k15uXE6HFXHaEL3Mzn5RUyYkkrjhmG8Oq6fduuvh4YkJ5KTX8TSbfudDkXVMZot/EhxaTm3vZfGvsPFTBqfQny0duuvj87rkkBYcJB2MlK1pgndTxhjeGj2KlK37ueZkb1Ibqnd+uur6IhQzurUlC9X7cIYbXZR7tOE7iemLtrKtF+3c/vgjlzaq4XT4SiHDUlOJPvAEVZm5zkdiqpDNKH7gZ835fLI52u4oGsCf7mos9PhKD9wYddmBAeJNruoWtGE7rDt+w5zx/tL6dA0kv9ot35laxQZxu86NNFmF1UrmtAddKiolJveTaXcwOTxKURHhDodkvIjQ5IT2ZJbwPrdh5wORdURmtAdUl5u+NOMdDbsyeela/rQrmmk0yEpP3NR92aIoJ2MlNs0oTvkv//bwNdrdvPAJd04u5OOPKmOlxAdQUrbRnprOuU2TegOmLdyJy/8bwMj+7XihoHtnA5H+bEhyc1ZuyufLbkFToei6gBN6D62ZsdB/jRzOX3axPH45dqtX53YkOREQJtdlHs0ofvQ3kNF3DwlldgGobw+rh/hIcFOh6T8XMu4BvRqFctX2uyi3KAJ3UdKysq5/f2l5B4qYtL4fiTERDgdkqojfp+cyPKsPLIPHHE6FOXnNKH7yCOfr2bxln08PbInPVvFOR2OqkOGJls3BNeTo6ommtB94L1FW3lv0TZuOacDI3q3dDocVce0bxpJl8RovtR2dFUDTehetmjzXh6evZpzO8dz7++7OB2OqqOGJCeSunU/e/ILnQ5F+TFN6F60fd9hbn9/KW2aNOT5MX0I1m796iQNTW6OMfDV6t1Oh6L8mCZ0LzlcXMrNU1IpKSvnjfEpxGi3fnUKTmsWRYemkXq1izohTeheYIzhLx8uZ/3ufF66pi8d4qOcDknVcSLC75MT+WXzXvYXFDsdjvJTmtC94MX5G5m7chd/H9qVc07Tbv3KM4YmJ1JWbvgmQ5tdVNU0oXvYl6t28dw367miT0tuOru90+GoANKjZSwt4xro5YuqWprQPWjtroP8aWY6vVrH8e8remi3fuVRIsKQ5EQWbsglv7DE6XCUH9KE7iH7Coq5eUoqUeEhTLq2HxGh2q1fed6wns0pLivnrYWZToei/JAmdA8oKSvnjveXsvtgEa9f249m2q1feUmfNo0Y3qsFL323gQ27850OR/kZTege8NicNfyyeS9PXN6DPm0aOR2OCnAPXdqNqPAQ7v1oBWXlens69RtN6Kdo+q/bePeXrdx8dnuu7NfK6XBUPdAkKpyHLu3Osm0HePfnTKfDUX5EE/opWJK5j39+topBp8Vz39CuToej6pERvVtwbud4nvlqHdv3HXY6HOUnNKGfpOwDR7jtvTRaNWrIi6O1W7/yLRHh8ct7ECRw/ycrMUabXpQm9JNypLiMCVNSKSopZ/L4FGIbard+5Xst4hpw39Au/Lghl1lpWU6Ho/yAWwldRIaIyDoR2Sgi91Ux/08iskZEVojI/0SkredD9Q/GGP46azlrdh7khTF9SErQbv3KOWMHtOX0do147IsMHYlR1ZzQRSQYeBkYCnQDxohIt0rFlgEpxpiewCzgaU8H6i9eWbCJOSt2cu/vu3BulwSnw1H1XFCQ8OSVPTlSUsbDs1c7HY5ymDs19P7ARmPMZmNMMTAdGOFawBjznTGm4szMIiAgL/f4ds1unv16HSN6t+DWczo4HY5SAHSMj2Li+Z2Yu3KXDgtQz7mT0FsC211eZ9nTqnMjMK+qGSIyQURSRSQ1JyfH/Sj9wIbd+fxxRjo9Wsby1JU9tVu/8isTBnWgW/MY/vnZKvIO67AA9ZVHT4qKyDggBXimqvnGmEnGmBRjTEp8fN0ZhfDA4WJumpJKRGgwr2u3fuWHQoODeHpkT/YVFPPvuRlOh6Mc4k5CzwZau7xuZU87hohcADwADDfGFHkmPOeVlpVz5wfL2HmgkNev7Ufz2AZOh6RUlZJbxnLz2R2YkbqdnzbmOh2OcoA7CX0J0ElE2otIGDAamO1aQET6AK9jJfM9ng/TOY/PzWDhxlweuzyZfm21W7/yb3+8oBPtm0by949Xcri41OlwlI/VmNCNMaXAncBXQAYw0xizWkQeFZHhdrFngCjgQxFJF5HZ1ayuTpmZup23f8rkDwPbcXVK65oXUMphEaHBPHlFD7btO8xzX693OhzlYyHuFDLGzAXmVpr2oMvzCzwcl+PStu7nH5+s4qykpjxwsXbrV3XHgA5NGDugDW/9tIVhvVrQu3Wc0yEpH9GeolXYmXeEW6am0Twugpeu6UNIsO4mVbfcN7QLzWIi+NusFRSXljsdjvIRzVSVFJaUMWFKGoUlZbwxPoW4hmFOh6RUrUVHhPLYZcms253Pqws2OR2O8hFN6C6MMfztoxWs2pHHf0f1plOzaKdDUuqknd+1md4Mo57RhO7i9R8281n6Dv5yUWcu6NbM6XCUOmV6M4z6RRO6bf7a3Tz15VqG9WzO7YM7Oh2OUh7hejOMKb9kOh2O8jJN6MDGPflMnJZOt+YxPDOyl3brVwGl4mYYT3+pN8MIdPU+oecdLuHmKWmEhwYxaXwKDcK0W78KLHozjPqjXif0snLDXdOXkbX/MK+O60fLOO3WrwKT680wPlp63MgdKkDU64T+5LwMflifw79GJHN6u8ZOh6OUV1XcDONfc9aQmVvgdDjKC+ptQv8oLYvJP27hut+1ZXT/Nk6Ho5TXBQUJT13ZE4BLX1rIt2t2OxyR8rR6mdCXbdvP3z9Zye86NOEfwyrffEmpwNUhPoo5d51F2yYNuWlKKk9/uZbSMu1JGijqXULffbCQW6am0SwmnFfG9iVUu/WreqZ144bMuvVMxvRvzSsLNjH+rV/JPRQwI17Xa/UqmxWWlDFhahqHikqZPD6FRpHarV/VTxGhwTxxRU+eHtmTtK37ueSFH0nbus/psNQpqjcJ3RjD/R+vZPn2Azx3dW+6JMY4HZJSjrs6pTUf334m4SHBjHp9EW//tEUva6zD6k1Cf+PHLXy8LJs/XXgaQ5ITnQ5HKb/RvUUsn991FoM7J/DI52u4a9oyCor05hh1Ub1I6N+vz+GJeRlc3CORu85LcjocpfxObINQJl3bj78N6cLclTsZ/tJCHdCrDgr4hL455xB3frCUzokxPHuVdutXqjpBQcJtgzvy3k0DyDtSwoiXf2L28h1Oh6VqIaAT+sHCEm6akkpocBCTx/ejYZhbN2hSql47s2NT5tx1Nl2bx3D3tGU8PHu13iSjjgjYhF5Wbrh72jK27T3Mq2P70qpRQ6dDUqrOSIyNYPqEM7hhYHve+TmT0ZN+YWfeEafDUjUI2IT+9FdrWbAuh4eHd2dAhyZOh6NUnRMaHMSDl3bjpWv6sG5XPpe8sJCfNuY6HZY6gYBM6J8uy+b17zczdkAbxp3R1ulwlKrThvVswWd3nkWTyDCufXMxL83fQIn2LvVLAZfQV2Qd4G8frWBA+8Y8dGl3p8NRKiAkJUTx6R0DGdazBc9+vZ7fPTGfJ+ZmsCnnkNOhKRfiVCeClJQUk5qa6tF17jlYyPCXfiI4SJh950CaRIV7dP1K1XfGGL5bt4dpv25n/to9lJUbUto24urTW3NJj+ZEhuuFB94mImnGmJQq5wVKQi8qLWPMpEVk7Mzno9vOpFsL7QmqlDftyS/k46XZzFyync25BUSGBXNprxZcldKavm3i9BJhLwn4hG6M4a+zVjArLYtXx/ZlaI/mHlmvUqpmxhjStu5nxpLtzFmxkyMlZXRKiOLqlNZc3rclTfWXskcFfEJ/c+EW/jVnDXef34k/XXiaR9aplKq9Q0WlzFm+gxmp21m27QAhQcIFXZsx6vTWDDotnuAgrbWfqoBO6D9uyOG6t37lwm7NeHVsP4L0gFHKL2zYnc+MJdv5eFk2+wqKSYyJYGS/VlyV0oq2TSKdDq/OCtiEnplbwIiXfyIxJoKPbz9TT8go5YeKS8v5X8ZuZqZu5/v1OZQbaBEbQfeWsXRvEUNyi1i6t4whMSZC293dcKKEXmczYL7drT9I4I3rUjSZK+WnwkKCGNqjOUN7NGdn3hG+WLGTFVl5rNqRx7cZu6moUzaJDKNbixiS7UTfvUUsbRs31F/dtVAns2B5ueGeGelsyS1g6o39ad1Yu/UrVRc0j23ATWd3OPq6oKiUjJ0HWb3jIKuy81i94yCTf9hMabmV5aPCQ+jWPIbuLa0En9wyho7xUXqnsWq4ldBFZAjwPBAMvGGMebLS/HBgCtAP2AuMMsZkejbU3/zfN+v4NmMPj47ozpkdm3prM0opL4sMDyGlXWNS2jU+Oq2otIwNuw+xekceq7IPsnpHHtN+3UZhidU7NSw4iGax4cRHhZMQHUFCTDgJ0eHER1uv46PDSYgJp0lkeL07CVtjQheRYOBl4EIgC1giIrONMWtcit0I7DfGJInIaOApYJQ3Av58+Q5e/m4TY/q35lrt1q9UwAkPCSa5ZSzJLWMZdbo1razcsCX3EKuyD5Kx6yC78wrZk1/ExpxD/LJ5L3lHSo5bT5BAkygr2VdO+DENQmgYFkJkWAiR4cFEhofQMCyYqHBrelhI3fwF4E4NvT+w0RizGUBEpgMjANeEPgJ42H4+C3hJRMR44Yxrk8gwLuzWjEeGJ+sJFKXqieAgISkhmqSEaC6j5XHzC0vKyMkvYk9+ETn5ReTkWwl/z8Eicg4VsSe/kNU7DpJ7qIhyN7JSWHAQDcODjyb8hmEhdrK3kn94SBChwfYjRAgL/u11WEgQYcHiMv+312H2ch2aRpIQE+Hx/eROQm8JbHd5nQUMqK6MMaZURPKAJoDHh2Y7M6kpZyZpM4tS6jcRocG0btywxvNpZeWGfQXFFBSVcqiolMPFZRQUl1JQVMrhot+eFxSXcbiolENFZRwutl4XFJWSe6iIw8VlFJeWU1JWTnFpOcVl1qM21dfHLkv2ysCBPj0pKiITgAkAbdq08eWmlVKK4CAh3m5+8bSyckNJWTlFdrIvKSunpNRYCd9lWnFZOe2beuc6fHcSejbQ2uV1K3taVWWyRCQEiMU6OXoMY8wkYBJY16GfTMBKKeWPgoOE4KBgIkKDHYvBnZb/JUAnEWkvImHAaGB2pTKzgevs5yOB+d5oP1dKKVW9Gmvodpv4ncBXWJctvmWMWS0ijwKpxpjZwJvAVBHZCOzDSvpKKaV8yK02dGPMXGBupWkPujwvBK7ybGhKKaVqo25ebKmUUuo4mtCVUipAaEJXSqkAoQldKaUChGPjoYtIDrD1JBdvihd6oXqQxndqNL5T5+8xanwnr60xJr6qGY4l9FMhIqnVDfDuDzS+U6PxnTp/j1Hj8w5tclFKqQChCV0ppQJEXU3ok5wOoAYa36nR+E6dv8eo8XlBnWxDV0opdby6WkNXSilViSZ0pZQKEH6d0EVkiIisE5GNInJfFfPDRWSGPX+xiLTzYWytReQ7EVkjIqtFZGIVZQaLSJ6IpNuPB6talxdjzBSRlfa2U6uYLyLygr3/VohIXx/G1tllv6SLyEER+WOlMj7ffyLylojsEZFVLtMai8g3IrLB/tuommWvs8tsEJHrqirjhdieEZG19uf3iYjEVbPsCY8FL8f4sIhku3yOF1ez7Am/716Mb4ZLbJkikl7Nsj7Zh6fEGOOXD6yhejcBHYAwYDnQrVKZ24HX7OejgRk+jK850Nd+Hg2sryK+wcAcB/dhJtD0BPMvBuYBApwBLHbws96F1WHC0f0HDAL6Aqtcpj0N3Gc/vw94qorlGgOb7b+N7OeNfBDbRUCI/fypqmJz51jwcowPA39x4xg44ffdW/FVmv9/wINO7sNTefhzDf3ozamNMcVAxc2pXY0A3rWfzwLOFx/dOdoYs9MYs9R+ng9kQBV3r/VvI4ApxrIIiBOR5g7EcT6wyRhzsj2HPcYY8wPWmP6uXI+zd4HLqlj098A3xph9xpj9wDfAEG/HZoz52hhTar9chHVHMcdUs//c4c73/ZSdKD47d1wNTPP0dn3FnxN6VTenrpwwj7k5NVBxc2qfspt6+gCLq5j9OxFZLiLzRKS7byPDAF+LSJp9P9fK3NnHvjCa6r9ETu6/Cs2MMTvt57uAZlWU8Yd9eQPWL66q1HQseNuddrPQW9U0WfnD/jsb2G2M2VDNfKf3YY38OaHXCSISBXwE/NEYc7DS7KVYzQi9gBeBT30c3lnGmL7AUOAOERnk4+3XSKzbGg4HPqxittP77zjG+u3td9f6isgDQCnwfjVFnDwWXgU6Ar2BnVjNGv5oDCeunfv998mfE3ptbk6NnODm1N4iIqFYyfx9Y8zHlecbYw4aYw7Zz+cCoSLS1FfxGWOy7b97gE+wfta6cmcfe9tQYKkxZnflGU7vPxe7K5qi7L97qijj2L4UkeuBYcBY+x/Ocdw4FrzGGLPbGFNmjCkHJlezbUePRTt/XAHMqK6Mk/vQXf6c0P365tR2e9ubQIYx5rlqyiRWtOmLSH+s/e2TfzgiEiki0RXPsU6erapUbDYw3r7a5Qwgz6VpwVeqrRU5uf8qcT3OrgM+q6LMV8BFItLIblK4yJ7mVSIyBLgXGG6MOVxNGXeOBW/G6Hpe5vJqtu3O992bLgDWGmOyqprp9D50m9NnZU/0wLoKYz3W2e8H7GmPYh28ABFYP9U3Ar8CHXwY21lYP71XAOn242LgVuBWu8ydwGqsM/aLgDN9GF8He7vL7Rgq9p9rfAK8bO/flUCKjz/fSKwEHesyzdH9h/XPZSdQgtWOeyPWeZn/ARuAb4HGdtkU4A2XZW+wj8WNwB98FNtGrLbnimOw4qqvFsDcEx0LPtx/U+3jawVWkm5eOUb79XHfd1/EZ09/p+K4cynryD48lYd2/VdKqQDhz00uSimlakETulJKBQhN6EopFSA0oSulVIDQhK4ClojEicjtJ7Hc/d6IRylv06tcVMCyh2SYY4xJruVyh4wxUd6JSinv0Rq6CmRPAh3t4U6fqTxTRJqLyA/2/FUicraIPAk0sKe9b5cbJyK/2tNeF5Fge/ohEfmPWMMn/09E4n379pQ6ltbQVcCqqYYuIn8GIowxj9tJuqExJt+1hi4iXbGGz73CGFMiIq8Ai4wxU0TEAOOMMe+LNVZ7gjHmTp+8OaWqEOJ0AEo5aAnwlj0mz6fGmPQqypwP9AOW2KMQNOC3sVzK+W3sj/eA48bzUcqXtMlF1VvGGht7ENYgUO+IyPgqignwrjGmt/3obIx5uLpVeilUpdyiCV0Fsnysu0lVSUTaYo1/PRl4A+tONgAldq0drDFcRopIgr1MY3s5sL4/I+3n1wALPRy/UrWiCV0FLGPMXuAn+4TncSdFsW5xt1xElgGjgOft6ZOAFSLyvjFmDfAPrBsbrMC6E1HF6IEFQH+x7k95HtbAcUo5Rk+KKnWS9PJG5W+0hq6UUgFCa+gq4IlID6wxuV0VGWMGOBGPUt6iCV0ppQKENrkopVSA0ISulFIBQhO6UkoFCE3oSikVIDShK6VUgNCErpRSAeL/AeUqh5Bu2kKuAAAAAElFTkSuQmCC",
"text/plain": [
""
]
@@ -3900,7 +3900,7 @@
},
{
"data": {
- "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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\n",
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEXCAYAAAC9A7+nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA6t0lEQVR4nO3dd3wUZf7A8c83nRQSIAm9B2mhR/BEEeuBIlg4ASl6FuxyXvEsd7bTs/68sytYQaWIDRFsp6ioIAmEGjoBElpCCSGQ/vz+mAkuISEb2N3ZbL7v12tf2Z15Zua7s7PfPPvMPM+IMQallFJ1X5DTASillPIMTehKKRUgNKErpVSA0ISulFIBQhO6UkoFCE3oSikVIDShK0QkU0Qu8PI22omIEZEQb27H20TkbBFZ53Qcrvxl3/riOFInpgndh0TkLBH5WUTyRGSfiPwkIqc7HZdynzHmR2NMZ6fjCCQicr6IrBWRwyLynYi0PUHZdnaZw/Yy+g/EhSZ0HxGRhsBc4AWgMdASeBgoquV6RET8+nPzg5pinfoVUBfi9VaMIhIPfAT8E+t7kQrMPMEi04FlQBPgfmC2iCR4I7Y6yRijDx88gBTgQDXzrgV+Al4E8oC1wPku8xcAj9lljgBJQBfga2AfsA64yqX8JVgH/UFgO/BQpe2NB7YCe7G+FJnABTXEHwTcA2yyl5sFNLbntQMMcD2wDfgBCAaeAXKBzcBtdpkQe5kWwBw7/o3AjS7b6o/1xT4I7AaerSG247ZvT78OyAD2A18CbV2WMcDNwAbgAPASIECYHVMPl7KJwGEgARgMZLnxefe1P4N84AOsJPWoPW8wkAX8HdgFTAMaYf3Dz7HjnQu0qnQMPA78au+XT6vY/9fY7z8XuN+NGB8CZtux5QNLgV4u8zPtGFdgVTxCgOHAanufLQC6Vip/L7DGfg9vARE1xDAR+NnldRTWMd6lirKn2XHEuEz7EbjZ6e+3vzwcD6C+PICGWInwHWAo0Mhl3rVAKXAXEAqMwkrsFV/YBfYXtbv9pYrFStR/tF/3sb/E3ezyg4EeWEm4J1ZSvMye1w04BAwCwoFn7W3XlNAnAYuAVvZyrwHT7XkVCWWq/YVsgJUs1wKtsWpe33FsQv8BeBmIAHpjJbLz7Hm/AOPt59HAGTXEVtX2R2D9o+hq76N/VEocBitpxgFt7O0Psee9DDxZ6b1/5rJvT5jQsf4pbLWXCwWuAIo5NqGXAk/a+7IBVo3zSiASiMH6J/CJyzoXANlAsv0ePwTerfT+p9jr6oWV+LrWEOdDQAkw0o7zr8AWINSenwmk259hA6yEWgBcaJe/297HYS7lV7l85j9VvOcTxPAc8EqlaauAK6soezmQUWnai8ALTn+//eXheAD16WEnl7examelWDXUplgJfQcgLmV/5bektgB4xGXeKODHSut+DXiwmu3+F/iP/fwBYIbLvCg72dSU0DM49ldDczsZhLgklA4u87/FpeYEXGSXCbG/8GUcW9N6HHjbfv4DVnNUvJv7tartzweud3kdhFXLbmu/NsBZLvNnAffYzwdg/QMV+3Uq9i8g3Evog7CSr+vnuZBjE3oxJ6i9Yv2T2+/yegHwhMvrbvY6gl3ev2uN/ldgdA1xPgQsqrSPdgJn268zgetc5v8TmFWpfDYw2KW862d+MbCphhjecH1f9rSfgGurKDveNV572mMVx40+jLah+5IxJsMYc60xphVWTasFVrIFyDb2EWrbas+vsN3leVtggIgcqHgAY4FmACIywD5xlCMieVi15Xh72Rau6zLGFGD9cqhJW+Bjl+1lYCXlptXE2KLS662V5u0zxuRXmt/Sfn49Vm1wrYgsEZFhbsRXefttgedc4t2H1aTS0qXMLpfnh7F+DWCMWWy/HiwiXbCauOa4GQNY76/y57m9UpkcY0xhxQsRiRSR10Rkq4gcxPqnFiciwdWsYytWLTneZVqV76cGrsdCOVZlo7rjrgUun6NdfjvH7tPKMbquqyqHsH69umqI1QR0KmXrJU3oDjHGrMWqrSfbk1qKiLgUaYNVaz+6iMvz7cD3xpg4l0e0MeYWe/77WAmotTEmFngVK5mBVQNrXbEiEYnE+rlfk+3A0ErbjDDGZFcT4zHbsd9PhR1AYxGJqTQ/G8AYs8EYMwar7fpJrBNfUW7EWHkf3VQp3gbGmJ/dWA9YTWPjsGqFs12Trxt2cvzn2bpSGVPp9V+AzsAAY0xDrFo+/Pa5VV5HG6xfSLm1iKsqrsdCEFaTWnXH3Q6sf5QV5cVe3vUYqByj67qqshqriahinVFAR3t6VWU7VDpuelVTtl7ShO4jItJFRP4iIq3s162BMVjt0mAlrztFJFRE/oDVPDOvmtXNBU4TkfF2+VAROV1EutrzY7BqwIUi0h+42mXZ2cAw+xLKMOAR3DsOXgUeq7ikTEQSRGTECcrPst9PKxFphHVCFQBjzHbgZ+BxEYkQkZ5YtfJ37XWPE5EEuwZ4wF6s3I0YK8d7r4h0t9cZa+9Xd72L1WY7DqttvjZ+wfr1cruIhNj7qX8Ny8RgnQw8ICKNgQerKDNORLrZ/4QfwfpHU1bL2CrrJyJX2Fex/Amr7X1RNWVnAZfYlxmGYv0TKsL6LCvcZn/mjbFOuJ/oihWAj4FkEblSRCKwmgRX2BWeYxhj1mO16T9oHzeXY50j+tDN9xrwNKH7Tj5W2+xiESnA+tKswvpSACwGOmHVuB4DRhpjqmwKsZsqLgJGY9WAdvHbCTaAW4FHRCQf6wsyy2XZ1VhXnLyPVZPcj/UzuybPYdX6v7LXu8h+P9WZgnVlyXKsqyc+qjR/DFbb7w6sL/WDxphv7HlDgNUicsje7mhjzBE3YjzKGPMx1j6ZYTdhrMI6Ge3u8tvtuA3WlRS12XYx1onQ67H+IY3D+id8oktU/4t14jEXa99+UUWZaVi/6nZhnUy+szZxVeNTrHMy+7F+jVxhjCmpqqAxZh3We3nBjvNS4FL7/VZ4H/gK68qmTcCjJ9q4MSYH62TwY3YMA7COawBE5FURedVlkdFYV4ztB57A+p7kuPtmA13FSR/lIBG5FrjBGHOW07Go34jIm8AOY8w/PLCuxcCrxpi3TnL5BVhXtbx+qrG4rPMhIMkYM85T61TO8vsODUo5QUTaYdWy+5zk8udg9Q/IxTph3ZOqa91KeYw2uaijRGS+iByq4nGfH8Q2tprYPH5CTET+hdVE87QxZks1ZdpUE88hEWmDdYJzOVaTy1+wmgZ2ejrWmvjDZyoi91UTw3xfxVBfaJOLUkoFCK2hK6VUgNCErpRSAcKxk6Lx8fGmXbt2Tm1eKaXqpLS0tFxjTJUjTDqW0Nu1a0dqaqpTm1dKqTpJRLZWN0+bXJRSKkBoQldKqQChCV0ppQKE9hRVKoCVlJSQlZVFYWFtBotU/iAiIoJWrVoRGhrq9jI1JnR7PIthwB5jTHIV8wVrAKWLscZgvtYYs9TtCJRSXpOVlUVMTAzt2rXj2NF8lT8zxrB3716ysrJo376928u50+TyNtbod9UZijVKYCes+wO+4vbWlVJeVVhYSJMmTTSZ1zEiQpMmTWr9y6rGhG6M+QHrbi/VGQFMNZZFWHdZaV6rKJRSXqPJvG46mc/NEydFW3LsbaeyOPaWVEoFjCWZ+xj63I/sOFCr4dnVScrMzCQ5+biWXlUNn17lIiITRSRVRFJzcnRMelW3ZO0/zM3T0sjYeZAlmSf60aqUMzyR0LM59j6CrTj2HoNHGWMmG2NSjDEpCQlV9lxVyi8dLi5l4tQ0ikvLCQ4SNuw+5HRI9c7mzZvp06cPixcvZsiQIfTr14+zzz6btWvXkp+fT/v27SkpsW62dPDgwWNe1xeeSOhzgAliOQPIc2LcZ6W8xRjD3z5YQcaugzw/pg9tG0eycY8mdF9at24dV155JW+//Tb33XcfL7zwAmlpaTzzzDPceuutxMTEMHjwYD7//HMAZsyYwRVXXFGrS/4CgTuXLU4HBgPxIpKFdfPaUABjzKtYNzK+GNiIddniH70VrFJOeOm7jXy+cif3DO3CuV0Smf7rNjbmaEL3lZycHEaMGMFHH31EmzZt+Pnnn/nDH36733dRkXWr1htuuIGnnnqKyy67jLfeeospU6Y4FbJjakzoxpgxNcw3WDcdVirgfL1mN898tZ7LerfgpkEdAEhKjObbtXsoKSsnNFg7W3tbbGwsbdq0YeHChYwePZq4uDjS09OPKzdw4EAyMzNZsGABZWVl9fJkqh6NSlVj/e58/jRjGT1bxfLElT2PXkbWqWk0peWGrXsLHI6wfggLC+Pjjz9m6tSpzJ07l/bt2/PBBx8AVnPY8uXLj5adMGECV199NX/8Y/1sKNCErlQV9hcUc8M7qUSGh/Da+H5EhAYfnZeUEAOgJ0Z9KCoqirlz5/Kf//yHUaNG8cYbb9CrVy+6d+/Op59+erTc2LFj2b9/P2PGnLBhIWDpWC5KVVJaVs7t05eyK6+QGTedQfPYBsfM75gYBaAnRn2gXbt2rFq1CoC4uDiWLFkCwKRJk6osv3DhQkaOHElcXJyvQvQrmtCVquTRzzP4aeNenh7Zk75tGh03PzIshJZxDfTEqJ+54447mD9/PvPmzXM6FMdoQlfKxawl23n750yuG9ieP6S0rrZcUmK0Nrn4mRdeeMHpEBynbehK2dK27uP+T1Zydqd47ru4ywnLdkqMZlPOIcrKjY+iU6pmmtCVAnYcOMJN05bSIq4BL4zpQ0gNlyMmJUZTVFpO9n4d00X5D03oqt47UlzGTdPSKCwp4/UJKcRFhtW4TFJiNAAbc/K9HZ5SbtOEruo1Ywx3f7iCVTvy+O+o3nRqGuPWckcTul7povyIJnRVr73y/SY+W76Dv17UmQu6NXV7ubjIMOKjw/XEqPIrmtBVvfW/jN08/eU6Lu3VglsHd6z18p0So/XSRR+Ijo52u+zbb7/Njh07vBiNdwwePJjU1NRTXo8mdFUvbdyTz6QZ6XRv0ZCnXLr110ZSYjQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc8E4qEaFBTB6fQoOw4JoXqkJSYjT5RaXsyS+iacMID0fpeQ9/tpo1Ow56dJ3dWjTkwUu7n7BMZmbm0fHLly5dSvfu3Zk6dSrdunVj1KhRfP3119x9990YY/j3v/+NMYZLLrmEJ5988ug67rrrLr766iuaNWvGjBkzqOp+CrNnzyY1NZWxY8fSoEEDHn/8cd58882j474sWLCAZ555hrlz5x63bFlZGddffz2pqamICNdddx133XUXgwcPplevXnz//feUlpby5ptv0r9/fx566CE2bdrE5s2badOmDc8//zw333wz27ZtA+C///0vAwcO5Ndff2XSpEkUFhbSoEED3nrrLTp37syRI0f44x//yPLly+nSpQtHjnjmaimtoat6paJbf/aBI7w6rh8t4hrUvFA1OumJUbetW7eOW2+9lYyMDBo2bMjLL78MQJMmTVi6dCmDBg3i73//O99++y3p6eksWbKETz75BICCggJSUlJYvXo155xzDg8//HCV2xg5ciQpKSm89957pKenc+GFF7J48WIKCqxB1GbOnMno0aOrXDY9PZ3s7GxWrVrFypUrjxnc6/Dhw6Snp/Pyyy9z3XXXHZ2+Zs0avvnmG6ZPn86kSZO46667WLJkCR9++CE33HADAF26dOHHH39k2bJlPPLII9x3330AvPLKK0RGRpKRkcHDDz9MWlraqe1gm9bQVb3yxPy1/Lghlyeu6EFKu8antK6KK1027M5nYFK8J8Lzqppq0t7UunVrBg4cCMC4ceN4/vnnARg1ahQAS5YsYfDgwUdr3mPHjuWHH37gsssuIygo6Gi5cePGccUVV7i1zZCQEIYMGcJnn33GyJEj+fzzz3nqqaeqLNuhQwc2b97MHXfcwSWXXMJFF110dF7FQF+DBg3i4MGDHDhwAIDhw4fToIFVIfjmm29Ys2bN0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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",
"text/plain": [
""
]
@@ -3912,7 +3912,7 @@
},
{
"data": {
- "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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\n",
+ "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEXCAYAAAC9A7+nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA6t0lEQVR4nO3dd3wUZf7A8c83nRQSIAm9B2mhR/BEEeuBIlg4ASl6FuxyXvEsd7bTs/68sytYQaWIDRFsp6ioIAmEGjoBElpCCSGQ/vz+mAkuISEb2N3ZbL7v12tf2Z15Zua7s7PfPPvMPM+IMQallFJ1X5DTASillPIMTehKKRUgNKErpVSA0ISulFIBQhO6UkoFCE3oSikVIDShK0QkU0Qu8PI22omIEZEQb27H20TkbBFZ53Qcrvxl3/riOFInpgndh0TkLBH5WUTyRGSfiPwkIqc7HZdynzHmR2NMZ6fjCCQicr6IrBWRwyLynYi0PUHZdnaZw/Yy+g/EhSZ0HxGRhsBc4AWgMdASeBgoquV6RET8+nPzg5pinfoVUBfi9VaMIhIPfAT8E+t7kQrMPMEi04FlQBPgfmC2iCR4I7Y6yRijDx88gBTgQDXzrgV+Al4E8oC1wPku8xcAj9lljgBJQBfga2AfsA64yqX8JVgH/UFgO/BQpe2NB7YCe7G+FJnABTXEHwTcA2yyl5sFNLbntQMMcD2wDfgBCAaeAXKBzcBtdpkQe5kWwBw7/o3AjS7b6o/1xT4I7AaerSG247ZvT78OyAD2A18CbV2WMcDNwAbgAPASIECYHVMPl7KJwGEgARgMZLnxefe1P4N84AOsJPWoPW8wkAX8HdgFTAMaYf3Dz7HjnQu0qnQMPA78au+XT6vY/9fY7z8XuN+NGB8CZtux5QNLgV4u8zPtGFdgVTxCgOHAanufLQC6Vip/L7DGfg9vARE1xDAR+NnldRTWMd6lirKn2XHEuEz7EbjZ6e+3vzwcD6C+PICGWInwHWAo0Mhl3rVAKXAXEAqMwkrsFV/YBfYXtbv9pYrFStR/tF/3sb/E3ezyg4EeWEm4J1ZSvMye1w04BAwCwoFn7W3XlNAnAYuAVvZyrwHT7XkVCWWq/YVsgJUs1wKtsWpe33FsQv8BeBmIAHpjJbLz7Hm/AOPt59HAGTXEVtX2R2D9o+hq76N/VEocBitpxgFt7O0Psee9DDxZ6b1/5rJvT5jQsf4pbLWXCwWuAIo5NqGXAk/a+7IBVo3zSiASiMH6J/CJyzoXANlAsv0ePwTerfT+p9jr6oWV+LrWEOdDQAkw0o7zr8AWINSenwmk259hA6yEWgBcaJe/297HYS7lV7l85j9VvOcTxPAc8EqlaauAK6soezmQUWnai8ALTn+//eXheAD16WEnl7examelWDXUplgJfQcgLmV/5bektgB4xGXeKODHSut+DXiwmu3+F/iP/fwBYIbLvCg72dSU0DM49ldDczsZhLgklA4u87/FpeYEXGSXCbG/8GUcW9N6HHjbfv4DVnNUvJv7tartzweud3kdhFXLbmu/NsBZLvNnAffYzwdg/QMV+3Uq9i8g3Evog7CSr+vnuZBjE3oxJ6i9Yv2T2+/yegHwhMvrbvY6gl3ev2uN/ldgdA1xPgQsqrSPdgJn268zgetc5v8TmFWpfDYw2KW862d+MbCphhjecH1f9rSfgGurKDveNV572mMVx40+jLah+5IxJsMYc60xphVWTasFVrIFyDb2EWrbas+vsN3leVtggIgcqHgAY4FmACIywD5xlCMieVi15Xh72Rau6zLGFGD9cqhJW+Bjl+1lYCXlptXE2KLS662V5u0zxuRXmt/Sfn49Vm1wrYgsEZFhbsRXefttgedc4t2H1aTS0qXMLpfnh7F+DWCMWWy/HiwiXbCauOa4GQNY76/y57m9UpkcY0xhxQsRiRSR10Rkq4gcxPqnFiciwdWsYytWLTneZVqV76cGrsdCOVZlo7rjrgUun6NdfjvH7tPKMbquqyqHsH69umqI1QR0KmXrJU3oDjHGrMWqrSfbk1qKiLgUaYNVaz+6iMvz7cD3xpg4l0e0MeYWe/77WAmotTEmFngVK5mBVQNrXbEiEYnE+rlfk+3A0ErbjDDGZFcT4zHbsd9PhR1AYxGJqTQ/G8AYs8EYMwar7fpJrBNfUW7EWHkf3VQp3gbGmJ/dWA9YTWPjsGqFs12Trxt2cvzn2bpSGVPp9V+AzsAAY0xDrFo+/Pa5VV5HG6xfSLm1iKsqrsdCEFaTWnXH3Q6sf5QV5cVe3vUYqByj67qqshqriahinVFAR3t6VWU7VDpuelVTtl7ShO4jItJFRP4iIq3s162BMVjt0mAlrztFJFRE/oDVPDOvmtXNBU4TkfF2+VAROV1EutrzY7BqwIUi0h+42mXZ2cAw+xLKMOAR3DsOXgUeq7ikTEQSRGTECcrPst9PKxFphHVCFQBjzHbgZ+BxEYkQkZ5YtfJ37XWPE5EEuwZ4wF6s3I0YK8d7r4h0t9cZa+9Xd72L1WY7DqttvjZ+wfr1cruIhNj7qX8Ny8RgnQw8ICKNgQerKDNORLrZ/4QfwfpHU1bL2CrrJyJX2Fex/Amr7X1RNWVnAZfYlxmGYv0TKsL6LCvcZn/mjbFOuJ/oihWAj4FkEblSRCKwmgRX2BWeYxhj1mO16T9oHzeXY50j+tDN9xrwNKH7Tj5W2+xiESnA+tKswvpSACwGOmHVuB4DRhpjqmwKsZsqLgJGY9WAdvHbCTaAW4FHRCQf6wsyy2XZ1VhXnLyPVZPcj/UzuybPYdX6v7LXu8h+P9WZgnVlyXKsqyc+qjR/DFbb7w6sL/WDxphv7HlDgNUicsje7mhjzBE3YjzKGPMx1j6ZYTdhrMI6Ge3u8tvtuA3WlRS12XYx1onQ67H+IY3D+id8oktU/4t14jEXa99+UUWZaVi/6nZhnUy+szZxVeNTrHMy+7F+jVxhjCmpqqAxZh3We3nBjvNS4FL7/VZ4H/gK68qmTcCjJ9q4MSYH62TwY3YMA7COawBE5FURedVlkdFYV4ztB57A+p7kuPtmA13FSR/lIBG5FrjBGHOW07Go34jIm8AOY8w/PLCuxcCrxpi3TnL5BVhXtbx+qrG4rPMhIMkYM85T61TO8vsODUo5QUTaYdWy+5zk8udg9Q/IxTph3ZOqa91KeYw2uaijRGS+iByq4nGfH8Q2tprYPH5CTET+hdVE87QxZks1ZdpUE88hEWmDdYJzOVaTy1+wmgZ2ejrWmvjDZyoi91UTw3xfxVBfaJOLUkoFCK2hK6VUgNCErpRSAcKxk6Lx8fGmXbt2Tm1eKaXqpLS0tFxjTJUjTDqW0Nu1a0dqaqpTm1dKqTpJRLZWN0+bXJRSKkBoQldKqQChCV0ppQKE9hRVKoCVlJSQlZVFYWFtBotU/iAiIoJWrVoRGhrq9jI1JnR7PIthwB5jTHIV8wVrAKWLscZgvtYYs9TtCJRSXpOVlUVMTAzt2rXj2NF8lT8zxrB3716ysrJo376928u50+TyNtbod9UZijVKYCes+wO+4vbWlVJeVVhYSJMmTTSZ1zEiQpMmTWr9y6rGhG6M+QHrbi/VGQFMNZZFWHdZaV6rKJRSXqPJvG46mc/NEydFW3LsbaeyOPaWVEoFjCWZ+xj63I/sOFCr4dnVScrMzCQ5+biWXlUNn17lIiITRSRVRFJzcnRMelW3ZO0/zM3T0sjYeZAlmSf60aqUMzyR0LM59j6CrTj2HoNHGWMmG2NSjDEpCQlV9lxVyi8dLi5l4tQ0ikvLCQ4SNuw+5HRI9c7mzZvp06cPixcvZsiQIfTr14+zzz6btWvXkp+fT/v27SkpsW62dPDgwWNe1xeeSOhzgAliOQPIc2LcZ6W8xRjD3z5YQcaugzw/pg9tG0eycY8mdF9at24dV155JW+//Tb33XcfL7zwAmlpaTzzzDPceuutxMTEMHjwYD7//HMAZsyYwRVXXFGrS/4CgTuXLU4HBgPxIpKFdfPaUABjzKtYNzK+GNiIddniH70VrFJOeOm7jXy+cif3DO3CuV0Smf7rNjbmaEL3lZycHEaMGMFHH31EmzZt+Pnnn/nDH36733dRkXWr1htuuIGnnnqKyy67jLfeeospU6Y4FbJjakzoxpgxNcw3WDcdVirgfL1mN898tZ7LerfgpkEdAEhKjObbtXsoKSsnNFg7W3tbbGwsbdq0YeHChYwePZq4uDjS09OPKzdw4EAyMzNZsGABZWVl9fJkqh6NSlVj/e58/jRjGT1bxfLElT2PXkbWqWk0peWGrXsLHI6wfggLC+Pjjz9m6tSpzJ07l/bt2/PBBx8AVnPY8uXLj5adMGECV199NX/8Y/1sKNCErlQV9hcUc8M7qUSGh/Da+H5EhAYfnZeUEAOgJ0Z9KCoqirlz5/Kf//yHUaNG8cYbb9CrVy+6d+/Op59+erTc2LFj2b9/P2PGnLBhIWDpWC5KVVJaVs7t05eyK6+QGTedQfPYBsfM75gYBaAnRn2gXbt2rFq1CoC4uDiWLFkCwKRJk6osv3DhQkaOHElcXJyvQvQrmtCVquTRzzP4aeNenh7Zk75tGh03PzIshJZxDfTEqJ+54447mD9/PvPmzXM6FMdoQlfKxawl23n750yuG9ieP6S0rrZcUmK0Nrn4mRdeeMHpEBynbehK2dK27uP+T1Zydqd47ru4ywnLdkqMZlPOIcrKjY+iU6pmmtCVAnYcOMJN05bSIq4BL4zpQ0gNlyMmJUZTVFpO9n4d00X5D03oqt47UlzGTdPSKCwp4/UJKcRFhtW4TFJiNAAbc/K9HZ5SbtOEruo1Ywx3f7iCVTvy+O+o3nRqGuPWckcTul7povyIJnRVr73y/SY+W76Dv17UmQu6NXV7ubjIMOKjw/XEqPIrmtBVvfW/jN08/eU6Lu3VglsHd6z18p0So/XSRR+Ijo52u+zbb7/Njh07vBiNdwwePJjU1NRTXo8mdFUvbdyTz6QZ6XRv0ZCnXLr110ZSYjQbdx/CGs5InYqysjKPrMeJhF5aWurT7Z2IXoeu6p28wyXc8E4qEaFBTB6fQoOw4JoXqkJSYjT5RaXsyS+iacMID0fpeQ9/tpo1Ow56dJ3dWjTkwUu7n7BMZmbm0fHLly5dSvfu3Zk6dSrdunVj1KhRfP3119x9990YY/j3v/+NMYZLLrmEJ5988ug67rrrLr766iuaNWvGjBkzqOp+CrNnzyY1NZWxY8fSoEEDHn/8cd58882j474sWLCAZ555hrlz5x63bFlZGddffz2pqamICNdddx133XUXgwcPplevXnz//feUlpby5ptv0r9/fx566CE2bdrE5s2badOmDc8//zw333wz27ZtA+C///0vAwcO5Ndff2XSpEkUFhbSoEED3nrrLTp37syRI0f44x//yPLly+nSpQtHjnjmaimtoat6paJbf/aBI7w6rh8t4hrUvFA1OumJUbetW7eOW2+9lYyMDBo2bMjLL78MQJMmTVi6dCmDBg3i73//O99++y3p6eksWbKETz75BICCggJSUlJYvXo155xzDg8//HCV2xg5ciQpKSm89957pKenc+GFF7J48WIKCqxB1GbOnMno0aOrXDY9PZ3s7GxWrVrFypUrjxnc6/Dhw6Snp/Pyyy9z3XXXHZ2+Zs0avvnmG6ZPn86kSZO46667WLJkCR9++CE33HADAF26dOHHH39k2bJlPPLII9x3330AvPLKK0RGRpKRkcHDDz9MWlraqe1gm9bQVb3yxPy1/Lghlyeu6EFKu8antK6KK1027M5nYFK8J8Lzqppq0t7UunVrBg4cCMC4ceN4/vnnARg1ahQAS5YsYfDgwUdr3mPHjuWHH37gsssuIygo6Gi5cePGccUVV7i1zZCQEIYMGcJnn33GyJEj+fzzz3nqqaeqLNuhQwc2b97MHXfcwSWXXMJFF110dF7FQF+DBg3i4MGDHDhwAIDhw4fToIFVIfjmm29Ys2bN0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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",
"text/plain": [
""
]
@@ -3924,7 +3924,7 @@
},
{
"data": {
- "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv0YiICPbu3atJvY4xxrB3797jrmuviTa5qIBRVm64c/oytu07zPs3nkGrRpE+2W5SYjSfpO+goKiUqHD/+kq1atWKrKwscnJynA5F1VJERAStWrWq1TL+dfQpdQqe+mIt36/P4bHLk+nf3ncnKJMSratnNuUcomerOJ9t1x2hoaG0b9/e6TCUj2iTiwoIHy/L4rUfNjPujDaMHdDWp9v+bUwX/2x2UfWHJnRV5y3ffoC/f7iSAe0bOzIAVdsmkYQEiV+fGFX1gyZ0VaftOVjIxGmpJESH8/JYz3brd1docBDt46O0hq4cpwld1VmFJWVMnJZGfmEpr1+TQpPocMdi0TFdlD/QhK7qJGMM93+8ivTtB3j2ql50bd7Q0Xg6JUazdW8BRaWeuZWaUifDrYQuIkNEZJ2IbBSRe6qY30ZEvhORZSKyQkQu9nyoSv3mjYVb+HBpFpPO78SQ5OZOh0PHxGjKDWzJLXA6FFWP1ZjQRSQYeAkYCnQDxohIt0rF/gHMMsb0AUYDL3s6UKUq/LA+h3/Py+D33Zsy6fxOTocDHDumi1JOcaeG3h/YaIzZbIwpBmYAIyqVMUDFb95YwLe33Vb1xpbcAm5/fymnNY3h2at6ExTkvW79tdExIRoRvXRROcudhN4S2O7yOsue5uohYJyIZAHzgDuqWpGITBSRVBFJ1Z5rqrbyC0u4cWoqwUHClAkpftUrMyI0mNaNIvXSReUoT50UHQO8bYxpBVwMTBOR49ZtjJlsjEkxxqRU3AxWKXeUlRsmzUgnM7eAl8f2o3Vj33Trrw1/HtNF1Q/uJPRsoLXL61b2NFfXA7MAjDG/ABGA/98GXdUZz3y1jm/X7uHBS7vxu45NnA6nSkmJ0WzOKaC0rNzpUFQ95U5CXwJ0EpH2IhKGddJzTqUy24DzAUSkK1ZC1zYV5RGfpmfzyoJNjOnfhnFn+LZbf210TIymuKyc7fuPOB2KqqdqTOjGmFLgduBLIAPrapbVIvKIiAy3i/0FuFFElgPTgWuNjtepPGBlVh53z15B/3aNeXh4d6+ObX6qOh0d0yW/hpJKeYdbZ5WMMfOwTna6TnvA5fkaYKBnQ1P13Z58q1t/fHQ4L4/rS1iIf/eD6+hyf9GLHI5F1U/+c5mAUi6KSsu45d2l7D9czIe3nEm8g9363dUwIpRmDSP0WnTlGE3oyu8YY3jgk9Wkbd3Pi1f3oXuLWKdDcltSYrQmdOUY//4Nq+qld37OZGbqdu44L4lhPVs4HU6tVCR0PYWknKAJXfmVnzbm8q/PM7iwW1PuuuA0p8OptaTEaA4Xl7Ejr9DpUFQ9pAld+Y2tewu49b2ldEyI4j+j/Kdbf23omC7KSZrQlV84VFTKjVNTEYEpE1KI9qNu/bXRSRO6clDd/NaogFJebrhrZjqbcgqYel1/2jaJcjqkk9YkOpxGkaFs3KPXoivf0xq6ctx/vlnP12t2849LujIwqe6PGKFXuiinaEJXjvp8xU5e+HYjV6W04toz2zkdjkckJcawQa90UQ7QhK4csyo7j798kE6/to3412XJft2tvzaSEqM5cLiEvQXFToei6hlN6MoRuYeKmDg1lUaRYbw6rh/hIcFOh+QxemJUOUUTuvK54tJybnk3jb0FxUwen0JCjP9366+NiksXN2hCVz6mV7konzLG8OCc1SzJ3M9zo3vTo1Xd6dbvruaxEUSFBevNLpTPaQ1d+dS7i7Yy/ddt3DK4IyN6V76TYWAQEZISo9mgly4qH9OErnzml017efizNZzXJZG/XtTZ6XC8qqNeuqgcoAld+cT2fYe59b002jaJ5L+jexNcB7v110anxBh2HyziYGGJ06GoekQTuvK6Artbf1m54fVrTqdhRKjTIXmdjuminKAJXXlVebnhz7PSWb87nxev7kv7+Lrbrb829NJF5QRN6MqrnvvfBr5cvZv7Lu7KoNMSnA7HZ1o3jiQsJEgTuvIpTejKa+av3Mlz/9vAlX1bcf1Z7Z0Ox6eCg4QO8VGa0JVPaUJXXpGx8yB/nrWc3q3jeOzywOnWXxs6SJfyNU3oyuP2FRRz49RUGjYIYfL4fkSEBk63/tpISoxm+/7DFJaUOR2Kqic0oSuPKikr59b30tiTX8Tk8SkkNoxwOiTHdEqMwRjYlKO1dOUbmtCVRz3y2RoWbd7Hk1f2oFfrOKfDcZReuqh8TRO68pj3Fm9l2qKt3DSoA5f3aeV0OI5rFx9JkGhCV76jCV15xOLNe3nw09UM7pzA3UO6OB2OXwgPCaZdkyg27NaErnxDE7o6ZVn7D3PLe0tp0ySS50b3Cfhu/bXRMTGajdqGrnxEE7o6JYeLS7lxaholZeVMmZBCbIPA79ZfG50So8nMLaCkrNzpUFQ9oAldnTRjDH/7YAVrdx3k+TF96JgQ7XRIficpMZrScsPWvQVOh6LqAU3o6qS9+O1GPl+5k3uGdOHczolOh+OX9EoX5UtuJXQRGSIi60Rko4jcU02Zq0RkjYisFpH3PRum8jdfrd7F/329nsv7tGTioA5Oh+O3Kn616IlR5Qs13oJORIKBl4ALgSxgiYjMMcascSnTCbgXGGiM2S8iWl0LYOt25XPXzHR6tYrl8St61Mtu/e6KCg+hZVwDPTGqfMKdGnp/YKMxZrMxphiYAYyoVOZG4CVjzH4AY8wez4ap/MX+gmJumLqEqPAQXhufUm+79deGjumifMWdhN4S2O7yOsue5uo04DQR+UlEFonIEE8FqPxHSVk5t72/lN15Rbw6vh/NYutvt/7aSEqMZlPOIcrLjdOhqADnqZOiIUAnYDAwBpgiInGVC4nIRBFJFZHUnJwcD21a+cpjn2fw86a9/PuKHvRt08jpcOqMpMRoCkvKyT5wxOlQVIBzJ6FnA61dXreyp7nKAuYYY0qMMVuA9VgJ/hjGmMnGmBRjTEpCQv252UEgmLlkG2//nMn1Z7VnZD/t1l8bFXcv2rAn3+FIVKBzJ6EvATqJSHsRCQNGA3MqlfkEq3aOiMRjNcFs9lyYykmpmfv4xyerOLtTPPcO1W79taWXLipfqTGhG2NKgduBL4EMYJYxZrWIPCIiw+1iXwJ7RWQN8B3wN2PMXm8FrXxnx4Ej3PxuGi3jGvDimL6EBGvXhdqKiwwjPjpcE7ryuhovWwQwxswD5lWa9oDLcwP82X6oAHGkuIyJ01IpLClnxsQUYiO1W//JSkqMYoMmdOVlWt1SVTLG8LfZy1m94yDPj+lNUmKM0yHVaRWXLlp1H6W8QxO6qtLLCzYxd8VO/vb7zpzXpanT4dR5nRJjyC8sZU9+kdOhqACmCV0d55s1u3nmq3UM79WCW87p6HQ4AUFPjCpf0ISujrFhdz5/mplO9xYNefLKntqt30M6aUJXPqAJXR2Vd7iEG6emEhEazOTxKTQI0279npIQE05MRIhei668ShO6AqC0rJzbpy8l+8ARXhvflxZxDZwOKaCIiI7porxOE7oC4PH5a/lxQy6PXdaDfm0bOx1OQOqkCV15mSZ0xQep23lj4RauPbMdV53euuYF1ElJSowm91AxBw4XOx2KClCa0Ou5tK37uf/jVQxMasI/LunqdDgBrZN9Lb/W0pW3aEKvx3blFXLzu2k0i43Qbv0+kHR0kC5N6Mo73Or6rwJPYYnVrf9wUSnv3TCARlFhTocU8FrGNSAiNEhr6MprNKHXQ8YY7vlwBSuz85g8PoXTmmq3fl8IChI6JkRrDV15jf7Grocm/7CZT9J38JcLT+PCbtqt35eSEqPZpAldeYkm9Hrmu7V7eOKLtVzSszm3nZvkdDj1TqfEaLIPHKGgqNTpUFQA0oRej2zcc4g7py+ja7OGPD1Su/U7QU+MKm/ShF5P5B0pYeLUVMJCgphyTQqRYXr6xAl92zZCBBas2+N0KCoAaUKvB8rKDXdOX8b2/Yd5ZVw/Wmq3fsckxkSQ0rYRX6za5XQoKgBpQq8HnvxiLd+vz+Hh4cn0b6/d+p02JLk5a3flsyW3wOlQVIDRhB7gPlqaxeQfNjPhd225ekAbp8NRwJDkZgBaS1cepwk9gKVvP8A9H63kdx2a8M9h3ZwOR9laxjWgV6tYvli10+lQVIDRhB6gdh8s5KZpqSTGhPPS2L6Eard+vzIkuTnLs/LIPnDE6VBUANFveQCyuvWnkV9YyuvXpNBYu/X7HW12Ud6gCT3AGGO47+OVLN9+gGev6k2XZg2dDklVoX18FF2axWizi/IoTegB5o2FW/hoaTZ/uqDT0Vqg8k9DkpuRunU/e/ILnQ5FBQhN6AHk+/U5/HteBkOTm3HneZ2cDkfVYGhyc4yBr1bvdjoUFSA0oQeILbkF3PH+Uk5rGsMzf+hFUJB26/d3pzWNpkN8lLajK4/RhB4ADhaWcMM7SwgJDmLKhBSiwrVbf10gIvw+uRm/bN7L/gK9LZ06dZrQ67iycsOfZqSzde9hXh7bl9aNI50OSdXC0ORmlJUbvs7QZhd16jSh13FPf7mOb9fu4cHh3TmjQxOnw1G11KNlLC3jGmizi/IITeh12Kfp2bz6/SauHtCG8We0dTocdRJEhCHJzVi4IZf8whKnw1F1nCb0OmpF1gHunr2C/u0a89Cl3Z0OR52CocnNKC4r59u1OqSuOjVuJXQRGSIi60Rko4jcc4JyV4qIEZEUz4WoKtuTX8jEqWnER4fz8ri+hIXo/+W6rG+bRiTEhGuzizplNWYCEQkGXgKGAt2AMSJy3EhPIhIDTAIWezpI9Zui0jJunpZG3pESJk/oR3x0uNMhqVMUFCT8vntTFqzL4UhxmdPhqDrMnapdf2CjMWazMaYYmAGMqKLcv4AnAe325iXGGP75ySqWbjvA/13Vi+4tYp0OSXnI0OTmHCkp4/v12uyiTp47Cb0lsN3ldZY97SgR6Qu0NsZ87sHYVCVv/5zJrNQs7jwviYt7NHc6HOVBA9o3plFkKPO12UWdglNufBWRIOBZ4C9ulJ0oIqkikpqTk3Oqm65XFm7I5dHPM7ioW1P+dMFpToejPCwkOIgLuzXl24w9FJVqs4s6Oe4k9GygtcvrVva0CjFAMrBARDKBM4A5VZ0YNcZMNsakGGNSEhISTj7qeiYzt4Db3l9Kx4Qonh3VW7v1B6ihyc3JLyrl5417nQ5F1VHuJPQlQCcRaS8iYcBoYE7FTGNMnjEm3hjTzhjTDlgEDDfGpHol4nomv7CEG6emIgKvTzidaO3WH7DOTGpCTHgI83VIXXWSakzoxphS4HbgSyADmGWMWS0ij4jIcG8HWJ+VlxvumpnO5twCXr66L22aaLf+QBYeEsx5XRP5es1uSsvKnQ5H1UFuVfeMMfOAeZWmPVBN2cGnHpYCePbr9XyTsYeHh3fnzKR4p8NRPjA0uRmfpu9g8ZZ9DNTPXNWS9kjxU3NX7ODF7zYy+vTWTPidduuvL845LZEGocHa7KJOiiZ0P7QqO4+/frCclLaNeGREMiJ6ErS+aBAWzODOCXy5ejfl5cbpcFQdowndz+TkFzFxaiqNI8N4ZVw/7dZfDw1JbkZOfhFLt+13OhRVx2i28CPFpeXc8m4a+w4XM3lCCgkx2q2/PjqvSyJhwUHayUjVmiZ0P2GM4cE5q0jdup+nR/YiuaV266+vYiJCOatTPF+s2oUx2uyi3KcJ3U9MW7SV6b9u59bBHbm0Vwunw1EOG5LcjOwDR1iZned0KKoO0YTuB37elMvDn63hgq6J/PWizk6Ho/zAhV2bEhwk2uyiakUTusO27zvMbe8tpUN8FP/Rbv3K1igqjN91aKLNLqpWNKE76FBRKTe8k0q5gSkTUoiJCHU6JOVHhiQ3Y0tuAet3H3I6FFVHaEJ3SHm54c8z09mwJ58Xr+5Du/gop0NSfuai7k0RQTsZKbdpQnfIf/+3ga/W7Ob+S7pxdicdeVIdLzEmgpS2jfTWdMptmtAdMH/lTp7/3wZG9mvFdQPbOR2O8mNDkpuzdlc+W3ILnA5F1QGa0H1szY6D/HnWcvq0ieOxy7VbvzqxIcnNAG12Ue7RhO5Dew8VcePUVGIbhPLauH6EhwQ7HZLycy3jGtCrVSxfarOLcoMmdB8pKSvn1veWknuoiMkT+pHYMMLpkFQd8fvkZizPyiP7wBGnQ1F+ThO6jzz82WoWb9nHUyN70rNVnNPhqDpkaLJ1Q3A9OapqogndB95dtJV3F23jpnM6MKJ3S6fDUXVM+/goujSL4QttR1c10ITuZYs27+WhOas5t3MCd/++i9PhqDpqSHIzUrfuZ09+odOhKD+mCd2Ltu87zK3vLaVNk0ieG9OHYO3Wr07S0OTmGANfrt7tdCjKj2lC95LDxaXcODWVkrJyXp+QQkPt1q9OwWlNo+kQH6VXu6gT0oTuBcYY/vrBctbvzufFq/vSISHa6ZBUHSci/D65Gb9s3sv+gmKnw1F+ShO6F7zw7UbmrdzFvUO7cs5p2q1fecbQ5GaUlRu+ztBmF1U1Tege9sWqXTz79Xqu6NOSG85u73Q4KoD0aBlLy7gGevmiqpYmdA9au+sgf56VTq/Wcfz7ih7arV95lIgwJLkZCzfkkl9Y4nQ4yg9pQveQfQXF3Dg1lejwECaP70dEqHbrV543rGdzisvKeXNhptOhKD+kCd0DSsrKue29pew+WMRr4/vRVLv1Ky/p06YRw3u14MXvNrBhd77T4Sg/owndAx6du4ZfNu/l8ct70KdNI6fDUQHuwUu7ER0ewt0frqCsXG9Pp36jCf0Uzfh1G+/8spUbz27Plf1aOR2OqgeaRIfz4KXdWbbtAO/8nOl0OMqPaEI/BUsy9/HPT1cx6LQE7hna1elwVD0yoncLzu2cwNNfrmP7vsNOh6P8hCb0k5R94Ai3vJtGq0aRvDBau/Ur3xIRHru8B0EC9328EmO06UVpQj8pR4rLmDg1laKScqZMSCE2Urv1K99rEdeAe4Z24ccNucxOy3I6HOUH3EroIjJERNaJyEYRuaeK+X8WkTUiskJE/icibT0fqn8wxvC32ctZs/Mgz4/pQ1KidutXzhk7oC2nt2vEo59n6EiMquaELiLBwEvAUKAbMEZEulUqtgxIMcb0BGYDT3k6UH/x8oJNzF2xk7t/34VzuyQ6HY6q54KChCeu7MmRkjIemrPa6XCUw9ypofcHNhpjNhtjioEZwAjXAsaY74wxFWdmFgEBebnHN2t288xX6xjRuwU3n9PB6XCUAqBjQjSTzu/EvJW7dFiAes6dhN4S2O7yOsueVp3rgflVzRCRiSKSKiKpOTk57kfpBzbszudPM9Pp0TKWJ6/sqd36lV+ZOKgD3Zo35J+friLvsA4LUF959KSoiIwDUoCnq5pvjJlsjEkxxqQkJNSdUQgPHC7mhqmpRIQG85p261d+KDQ4iKdG9mRfQTH/npfhdDjKIe4k9GygtcvrVva0Y4jIBcD9wHBjTJFnwnNeaVk5t7+/jJ0HCnltfD+axzZwOiSlqpTcMpYbz+7AzNTt/LQx1+lwlAPcSehLgE4i0l5EwoDRwBzXAiLSB3gNK5nv8XyYznlsXgYLN+by6OXJ9Gur3fqVf/vTBZ1oHx/FvR+t5HBxqdPhKB+rMaEbY0qB24EvgQxgljFmtYg8IiLD7WJPA9HAByKSLiJzqlldnTIrdTtv/ZTJHwe246qU1jUvoJTDIkKDeeKKHmzbd5hnv1rvdDjKx0LcKWSMmQfMqzTtAZfnF3g4Lselbd3PPz5exVlJ8dx/sXbrV3XHgA5NGDugDW/+tIVhvVrQu3Wc0yEpH9GeolXYmXeEm6al0Twughev7kNIsO4mVbfcM7QLTRtG8PfZKyguLXc6HOUjmqkqKSwpY+LUNApLynh9QgpxkWFOh6RUrcVEhPLoZcms253PKws2OR2O8hFN6C6MMfz9wxWs2pHHf0f1plPTGKdDUuqknd+1qd4Mo57RhO7itR8282n6Dv56UWcu6NbU6XCUOmV6M4z6RRO67du1u3nyi7UM69mcWwd3dDocpTzC9WYYU3/JdDoc5WWa0IGNe/KZND2dbs0b8vTIXtqtXwWUipthPPWF3gwj0NX7hJ53uIQbp6YRHhrE5AkpNAjTbv0qsOjNMOqPep3Qy8oNd8xYRtb+w7wyrh8t47RbvwpMrjfD+HDpcSN3qABRrxP6E/Mz+GF9Dv8akczp7Ro7HY5SXlVxM4x/zV1DZm6B0+EoL6i3Cf3DtCym/LiFa37XltH92zgdjlJeFxQkPHllTwAufXEh36zZ7XBEytPqZUJftm0/9368kt91aMI/hlW++ZJSgatDQjRz7ziLtk0iuWFqKk99sZbSMu1JGijqXULffbCQm6al0bRhOC+P7UuodutX9UzrxpHMvvlMxvRvzcsLNjHhzV/JPRQwI17Xa/UqmxWWlDFxWhqHikqZMiGFRlHarV/VTxGhwTx+RU+eGtmTtK37ueT5H0nbus/psNQpqjcJ3RjDfR+tZPn2Azx7VW+6NGvodEhKOe6qlNZ8dOuZhIcEM+q1Rbz10xa9rLEOqzcJ/fUft/DRsmz+fOFpDElu5nQ4SvmN7i1i+eyOsxjcOZGHP1vDHdOXUVCkN8eoi+pFQv9+fQ6Pz8/g4h7NuOO8JKfDUcrvxDYIZfL4fvx9SBfmrdzJ8BcX6oBedVDAJ/TNOYe4/f2ldG7WkGf+oN36lapOUJBwy+COvHvDAPKOlDDipZ+Ys3yH02GpWgjohH6wsIQbpqYSGhzElAn9iAxz6wZNStVrZ3aMZ+4dZ9O1eUPunL6Mh+as1ptk1BEBm9DLyg13Tl/Gtr2HeWVsX1o1inQ6JKXqjGaxEcyYeAbXDWzP2z9nMnryL+zMO+J0WKoGAZvQn/pyLQvW5fDQ8O4M6NDE6XCUqnNCg4N44NJuvHh1H9btyueS5xfy08Zcp8NSJxCQCf2TZdm89v1mxg5ow7gz2jodjlJ12rCeLfj09rNoEhXG+DcW8+K3GyjR3qV+KeAS+oqsA/z9wxUMaN+YBy/t7nQ4SgWEpMRoPrltIMN6tuCZr9bzu8e/5fF5GWzKOeR0aMqFONWJICUlxaSmpnp0nXsOFjL8xZ8IDhLm3D6QJtHhHl2/UvWdMYbv1u1h+q/b+XbtHsrKDSltG3HV6a25pEdzosL1wgNvE5E0Y0xKlfMCJaEXlZYxZvIiMnbm8+EtZ9KthfYEVcqb9uQX8tHSbGYt2c7m3AKiwoK5tFcL/pDSmr5t4vQSYS8J+IRujOFvs1cwOy2LV8b2ZWiP5h5Zr1KqZsYY0rbuZ+aS7cxdsZMjJWV0SozmqpTWXN63JfH6S9mjAj6hv7FwC/+au4Y7z+/Eny88zSPrVErV3qGiUuYu38HM1O0s23aAkCDhgq5NGXV6awadlkBwkNbaT1VAJ/QfN+RwzZu/cmG3prwyth9BesAo5Rc27M5n5pLtfLQsm30FxTRrGMHIfq34Q0or2jaJcjq8OitgE3pmbgEjXvqJZg0j+OjWM/WEjFJ+qLi0nP9l7GZW6na+X59DuYEWsRF0bxlL9xYNSW4RS/eWDWnWMELb3d1wooReZzNgvt2tP0jg9WtSNJkr5afCQoIY2qM5Q3s0Z2feET5fsZMVWXms2pHHNxm7qahTNokKo1uLhiTbib57i1jaNo7UX921UCezYHm54a6Z6WzJLWDa9f1p3Vi79StVFzSPbcANZ3c4+rqgqJSMnQdZveMgq7LzWL3jIFN+2ExpuZXlo8ND6Na8Id1bWgk+uWVDOiZE653GquFWQheRIcBzQDDwujHmiUrzw4GpQD9gLzDKGJPp2VB/839fr+ObjD08MqI7Z3aM99ZmlFJeFhUeQkq7xqS0a3x0WlFpGRt2H2L1jjxWZR9k9Y48pv+6jcISq3dqWHAQTWPDSYgOJzEmgsSG4STGhJMQY71OiAknsWE4TaLC691J2BoTuogEAy8BFwJZwBIRmWOMWeNS7HpgvzEmSURGA08Co7wR8GfLd/DSd5sY078147Vbv1IBJzwkmOSWsSS3jGXU6da0snLDltxDrMo+SMaug+zOK2RPfhEbcw7xy+a95B0pOW49QQJNoq1kXznhN2wQQmRYCFFhIUSFBxMVHkJkWDDR4db0sJC6+QvAnRp6f2CjMWYzgIjMAEYArgl9BPCQ/Xw28KKIiPHCGdcmUWFc2K0pDw9P1hMoStUTwUFCUmIMSYkxXEbL4+YXlpSRk1/EnvwicvKLyMm3Ev6eg0XkHCpiT34hq3ccJPdQEeVuZKWw4CAiw4OPJvzIsBA72VvJPzwkiNBg+xEihAX/9josJIiwYHGZ/9vrMHu5DvFRJDaM8Ph+ciehtwS2u7zOAgZUV8YYUyoieUATwONDs52ZFM+ZSdrMopT6TURoMK0bR9Z4Pq2s3LCvoJiColIOFZVyuLiMguJSCopKOVz02/OC4jIOF5VyqKiMw8XW64KiUnIPFXG4uIzi0nJKysopLi2nuMx61Kb6+uhlyV4ZONCnJ0VFZCIwEaBNmza+3LRSShEcJCTYzS+eVlZuKCkrp8hO9iVl5ZSUGivhu0wrLiunfbx3rsN3J6FnA61dXreyp1VVJktEQoBYrJOjxzDGTAYmg3Ud+skErJRS/ig4SAgOCiYiNNixGNxp+V8CdBKR9iISBowG5lQqMwe4xn4+EvjWG+3nSimlqldjDd1uE78d+BLrssU3jTGrReQRINUYMwd4A5gmIhuBfVhJXymllA+51YZujJkHzKs07QGX54XAHzwbmlJKqdqomxdbKqWUOo4mdKWUChCa0JVSKkBoQldKqQDh2HjoIpIDbD3JxePxQi9UD9L4To3Gd+r8PUaN7+S1NcYkVDXDsYR+KkQktboB3v2BxndqNL5T5+8xanzeoU0uSikVIDShK6VUgKirCX2y0wHUQOM7NRrfqfP3GDU+L6iTbehKKaWOV1dr6EoppSrRhK6UUgHCrxO6iAwRkXUislFE7qlifriIzLTnLxaRdj6MrbWIfCcia0RktYhMqqLMYBHJE5F0+/FAVevyYoyZIrLS3nZqFfNFRJ63998KEenrw9g6u+yXdBE5KCJ/qlTG5/tPRN4UkT0issplWmMR+VpENth/G1Wz7DV2mQ0ick1VZbwQ29Mistb+/D4Wkbhqlj3hseDlGB8SkWyXz/HiapY94ffdi/HNdIktU0TSq1nWJ/vwlBhj/PKBNVTvJqADEAYsB7pVKnMr8Kr9fDQw04fxNQf62s9jgPVVxDcYmOvgPswE4k8w/2JgPiDAGcBiBz/rXVgdJhzdf8AgoC+wymXaU8A99vN7gCerWK4xsNn+28h+3sgHsV0EhNjPn6wqNneOBS/H+BDwVzeOgRN+370VX6X5/wc84OQ+PJWHP9fQj96c2hhTDFTcnNrVCOAd+/ls4Hzx0Z2jjTE7jTFL7ef5QAZUcfda/zYCmGosi4A4EWnuQBznA5uMMSfbc9hjjDE/YI3p78r1OHsHuKyKRX8PfG2M2WeM2Q98DQzxdmzGmK+MMaX2y0VYdxRzTDX7zx3ufN9P2Ynis3PHVcB0T2/XV/w5oVd1c+rKCfOYm1MDFTen9im7qacPsLiK2b8TkeUiMl9Euvs2MgzwlYik2fdzrcydfewLo6n+S+Tk/qvQ1Biz036+C2haRRl/2JfXYf3iqkpNx4K33W43C71ZTZOVP+y/s4HdxpgN1cx3eh/WyJ8Tep0gItHAh8CfjDEHK81eitWM0At4AfjEx+GdZYzpCwwFbhORQT7efo3Euq3hcOCDKmY7vf+OY6zf3n53ra+I3A+UAu9VU8TJY+EVoCPQG9iJ1azhj8Zw4tq533+f/Dmh1+bm1MgJbk7tLSISipXM3zPGfFR5vjHmoDHmkP18HhAqIvG+is8Yk23/3QN8jPWz1pU7+9jbhgJLjTG7K89wev+52F3RFGX/3VNFGcf2pYhcCwwDxtr/cI7jxrHgNcaY3caYMmNMOTClmm07eiza+eMKYGZ1ZZzch+7y54Tu1zenttvb3gAyjDHPVlOmWUWbvoj0x9rfPvmHIyJRIhJT8Rzr5NmqSsXmABPsq13OAPJcmhZ8pdpakZP7rxLX4+wa4NMqynwJXCQijewmhYvsaV4lIkOAu4HhxpjD1ZRx51jwZoyu52Uur2bb7nzfvekCYK0xJquqmU7vQ7c5fVb2RA+sqzDWY539vt+e9gjWwQsQgfVTfSPwK9DBh7GdhfXTewWQbj8uBm4GbrbL3A6sxjpjvwg404fxdbC3u9yOoWL/ucYnwEv2/l0JpPj4843CStCxLtMc3X9Y/1x2AiVY7bjXY52X+R+wAfgGaGyXTQFed1n2OvtY3Aj80UexbcRqe644Biuu+moBzDvRseDD/TfNPr5WYCXp5pVjtF8f9333RXz29LcrjjuXso7sw1N5aNd/pZQKEP7c5KKUUqoWNKErpVSA0ISulFIBQhO6UkoFCE3oKmCJSJyI3HoSy93njXiU8ja9ykUFLHtIhrnGmORaLnfIGBPtnaiU8h6toatA9gTQ0R7u9OnKM0WkuYj8YM9fJSJni8gTQAN72nt2uXEi8qs97TURCbanHxKR/4g1fPL/RCTBt29PqWNpDV0FrJpq6CLyFyDCGPOYnaQjjTH5rjV0EemKNXzuFcaYEhF5GVhkjJkqIgYYZ4x5T6yx2hONMbf75M0pVYUQpwNQykFLgDftMXk+McakV1HmfKAfsMQehaABv43lUs5vY3+8Cxw3no9SvqRNLqreMtbY2IOwBoF6W0QmVFFMgHeMMb3tR2djzEPVrdJLoSrlFk3oKpDlY91Nqkoi0hZr/OspwOtYd7IBKLFr7WCN4TJSRBLtZRrby4H1/RlpP78aWOjh+JWqFU3oKmAZY/YCP9knPI87KYp1i7vlIrIMGAU8Z0+fDKwQkfeMMWuAf2Dd2GAF1p2IKkYPLAD6i3V/yvOwBo5TyjF6UlSpk6SXNyp/ozV0pZQKEFpDVwFPRHpgjcntqsgYM8CJeJTyFk3oSikVILTJRSmlAoQmdKWUChCa0JVSKkBoQldKqQChCV0ppQKEJnSllAoQ/w9DZh8NQBMVdwAAAABJRU5ErkJggg==\n",
+ "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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",
"text/plain": [
""
]
@@ -3936,7 +3936,7 @@
},
{
"data": {
- "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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\n",
+ "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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",
"text/plain": [
""
]
@@ -3948,7 +3948,7 @@
},
{
"data": {
- "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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\n",
+ "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv0YiICPbu3atJvY4xxrB3797jrmuviTa5qIBRVm64c/oytu07zPs3nkGrRpE+2W5SYjSfpO+goKiUqHD/+kq1atWKrKwscnJynA5F1VJERAStWrWq1TL+dfQpdQqe+mIt36/P4bHLk+nf3ncnKJMSratnNuUcomerOJ9t1x2hoaG0b9/e6TCUj2iTiwoIHy/L4rUfNjPujDaMHdDWp9v+bUwX/2x2UfWHJnRV5y3ffoC/f7iSAe0bOzIAVdsmkYQEiV+fGFX1gyZ0VaftOVjIxGmpJESH8/JYz3brd1docBDt46O0hq4cpwld1VmFJWVMnJZGfmEpr1+TQpPocMdi0TFdlD/QhK7qJGMM93+8ivTtB3j2ql50bd7Q0Xg6JUazdW8BRaWeuZWaUifDrYQuIkNEZJ2IbBSRe6qY30ZEvhORZSKyQkQu9nyoSv3mjYVb+HBpFpPO78SQ5OZOh0PHxGjKDWzJLXA6FFWP1ZjQRSQYeAkYCnQDxohIt0rF/gHMMsb0AUYDL3s6UKUq/LA+h3/Py+D33Zsy6fxOTocDHDumi1JOcaeG3h/YaIzZbIwpBmYAIyqVMUDFb95YwLe33Vb1xpbcAm5/fymnNY3h2at6ExTkvW79tdExIRoRvXRROcudhN4S2O7yOsue5uohYJyIZAHzgDuqWpGITBSRVBFJ1Z5rqrbyC0u4cWoqwUHClAkpftUrMyI0mNaNIvXSReUoT50UHQO8bYxpBVwMTBOR49ZtjJlsjEkxxqRU3AxWKXeUlRsmzUgnM7eAl8f2o3Vj33Trrw1/HtNF1Q/uJPRsoLXL61b2NFfXA7MAjDG/ABGA/98GXdUZz3y1jm/X7uHBS7vxu45NnA6nSkmJ0WzOKaC0rNzpUFQ95U5CXwJ0EpH2IhKGddJzTqUy24DzAUSkK1ZC1zYV5RGfpmfzyoJNjOnfhnFn+LZbf210TIymuKyc7fuPOB2KqqdqTOjGmFLgduBLIAPrapbVIvKIiAy3i/0FuFFElgPTgWuNjtepPGBlVh53z15B/3aNeXh4d6+ObX6qOh0d0yW/hpJKeYdbZ5WMMfOwTna6TnvA5fkaYKBnQ1P13Z58q1t/fHQ4L4/rS1iIf/eD6+hyf9GLHI5F1U/+c5mAUi6KSsu45d2l7D9czIe3nEm8g9363dUwIpRmDSP0WnTlGE3oyu8YY3jgk9Wkbd3Pi1f3oXuLWKdDcltSYrQmdOUY//4Nq+qld37OZGbqdu44L4lhPVs4HU6tVCR0PYWknKAJXfmVnzbm8q/PM7iwW1PuuuA0p8OptaTEaA4Xl7Ejr9DpUFQ9pAld+Y2tewu49b2ldEyI4j+j/Kdbf23omC7KSZrQlV84VFTKjVNTEYEpE1KI9qNu/bXRSRO6clDd/NaogFJebrhrZjqbcgqYel1/2jaJcjqkk9YkOpxGkaFs3KPXoivf0xq6ctx/vlnP12t2849LujIwqe6PGKFXuiinaEJXjvp8xU5e+HYjV6W04toz2zkdjkckJcawQa90UQ7QhK4csyo7j798kE6/to3412XJft2tvzaSEqM5cLiEvQXFToei6hlN6MoRuYeKmDg1lUaRYbw6rh/hIcFOh+QxemJUOUUTuvK54tJybnk3jb0FxUwen0JCjP9366+NiksXN2hCVz6mV7konzLG8OCc1SzJ3M9zo3vTo1Xd6dbvruaxEUSFBevNLpTPaQ1d+dS7i7Yy/ddt3DK4IyN6V76TYWAQEZISo9mgly4qH9OErnzml017efizNZzXJZG/XtTZ6XC8qqNeuqgcoAld+cT2fYe59b002jaJ5L+jexNcB7v110anxBh2HyziYGGJ06GoekQTuvK6Artbf1m54fVrTqdhRKjTIXmdjuminKAJXXlVebnhz7PSWb87nxev7kv7+Lrbrb829NJF5QRN6MqrnvvfBr5cvZv7Lu7KoNMSnA7HZ1o3jiQsJEgTuvIpTejKa+av3Mlz/9vAlX1bcf1Z7Z0Ox6eCg4QO8VGa0JVPaUJXXpGx8yB/nrWc3q3jeOzywOnWXxs6SJfyNU3oyuP2FRRz49RUGjYIYfL4fkSEBk63/tpISoxm+/7DFJaUOR2Kqic0oSuPKikr59b30tiTX8Tk8SkkNoxwOiTHdEqMwRjYlKO1dOUbmtCVRz3y2RoWbd7Hk1f2oFfrOKfDcZReuqh8TRO68pj3Fm9l2qKt3DSoA5f3aeV0OI5rFx9JkGhCV76jCV15xOLNe3nw09UM7pzA3UO6OB2OXwgPCaZdkyg27NaErnxDE7o6ZVn7D3PLe0tp0ySS50b3Cfhu/bXRMTGajdqGrnxEE7o6JYeLS7lxaholZeVMmZBCbIPA79ZfG50So8nMLaCkrNzpUFQ9oAldnTRjDH/7YAVrdx3k+TF96JgQ7XRIficpMZrScsPWvQVOh6LqAU3o6qS9+O1GPl+5k3uGdOHczolOh+OX9EoX5UtuJXQRGSIi60Rko4jcU02Zq0RkjYisFpH3PRum8jdfrd7F/329nsv7tGTioA5Oh+O3Kn616IlR5Qs13oJORIKBl4ALgSxgiYjMMcascSnTCbgXGGiM2S8iWl0LYOt25XPXzHR6tYrl8St61Mtu/e6KCg+hZVwDPTGqfMKdGnp/YKMxZrMxphiYAYyoVOZG4CVjzH4AY8wez4ap/MX+gmJumLqEqPAQXhufUm+79deGjumifMWdhN4S2O7yOsue5uo04DQR+UlEFonIEE8FqPxHSVk5t72/lN15Rbw6vh/NYutvt/7aSEqMZlPOIcrLjdOhqADnqZOiIUAnYDAwBpgiInGVC4nIRBFJFZHUnJwcD21a+cpjn2fw86a9/PuKHvRt08jpcOqMpMRoCkvKyT5wxOlQVIBzJ6FnA61dXreyp7nKAuYYY0qMMVuA9VgJ/hjGmMnGmBRjTEpCQv252UEgmLlkG2//nMn1Z7VnZD/t1l8bFXcv2rAn3+FIVKBzJ6EvATqJSHsRCQNGA3MqlfkEq3aOiMRjNcFs9lyYykmpmfv4xyerOLtTPPcO1W79taWXLipfqTGhG2NKgduBL4EMYJYxZrWIPCIiw+1iXwJ7RWQN8B3wN2PMXm8FrXxnx4Ej3PxuGi3jGvDimL6EBGvXhdqKiwwjPjpcE7ryuhovWwQwxswD5lWa9oDLcwP82X6oAHGkuIyJ01IpLClnxsQUYiO1W//JSkqMYoMmdOVlWt1SVTLG8LfZy1m94yDPj+lNUmKM0yHVaRWXLlp1H6W8QxO6qtLLCzYxd8VO/vb7zpzXpanT4dR5nRJjyC8sZU9+kdOhqACmCV0d55s1u3nmq3UM79WCW87p6HQ4AUFPjCpf0ISujrFhdz5/mplO9xYNefLKntqt30M6aUJXPqAJXR2Vd7iEG6emEhEazOTxKTQI0279npIQE05MRIhei668ShO6AqC0rJzbpy8l+8ARXhvflxZxDZwOKaCIiI7porxOE7oC4PH5a/lxQy6PXdaDfm0bOx1OQOqkCV15mSZ0xQep23lj4RauPbMdV53euuYF1ElJSowm91AxBw4XOx2KClCa0Ou5tK37uf/jVQxMasI/LunqdDgBrZN9Lb/W0pW3aEKvx3blFXLzu2k0i43Qbv0+kHR0kC5N6Mo73Or6rwJPYYnVrf9wUSnv3TCARlFhTocU8FrGNSAiNEhr6MprNKHXQ8YY7vlwBSuz85g8PoXTmmq3fl8IChI6JkRrDV15jf7Grocm/7CZT9J38JcLT+PCbtqt35eSEqPZpAldeYkm9Hrmu7V7eOKLtVzSszm3nZvkdDj1TqfEaLIPHKGgqNTpUFQA0oRej2zcc4g7py+ja7OGPD1Su/U7QU+MKm/ShF5P5B0pYeLUVMJCgphyTQqRYXr6xAl92zZCBBas2+N0KCoAaUKvB8rKDXdOX8b2/Yd5ZVw/Wmq3fsckxkSQ0rYRX6za5XQoKgBpQq8HnvxiLd+vz+Hh4cn0b6/d+p02JLk5a3flsyW3wOlQVIDRhB7gPlqaxeQfNjPhd225ekAbp8NRwJDkZgBaS1cepwk9gKVvP8A9H63kdx2a8M9h3ZwOR9laxjWgV6tYvli10+lQVIDRhB6gdh8s5KZpqSTGhPPS2L6Eard+vzIkuTnLs/LIPnDE6VBUANFveQCyuvWnkV9YyuvXpNBYu/X7HW12Ud6gCT3AGGO47+OVLN9+gGev6k2XZg2dDklVoX18FF2axWizi/IoTegB5o2FW/hoaTZ/uqDT0Vqg8k9DkpuRunU/e/ILnQ5FBQhN6AHk+/U5/HteBkOTm3HneZ2cDkfVYGhyc4yBr1bvdjoUFSA0oQeILbkF3PH+Uk5rGsMzf+hFUJB26/d3pzWNpkN8lLajK4/RhB4ADhaWcMM7SwgJDmLKhBSiwrVbf10gIvw+uRm/bN7L/gK9LZ06dZrQ67iycsOfZqSzde9hXh7bl9aNI50OSdXC0ORmlJUbvs7QZhd16jSh13FPf7mOb9fu4cHh3TmjQxOnw1G11KNlLC3jGmizi/IITeh12Kfp2bz6/SauHtCG8We0dTocdRJEhCHJzVi4IZf8whKnw1F1nCb0OmpF1gHunr2C/u0a89Cl3Z0OR52CocnNKC4r59u1OqSuOjVuJXQRGSIi60Rko4jcc4JyV4qIEZEUz4WoKtuTX8jEqWnER4fz8ri+hIXo/+W6rG+bRiTEhGuzizplNWYCEQkGXgKGAt2AMSJy3EhPIhIDTAIWezpI9Zui0jJunpZG3pESJk/oR3x0uNMhqVMUFCT8vntTFqzL4UhxmdPhqDrMnapdf2CjMWazMaYYmAGMqKLcv4AnAe325iXGGP75ySqWbjvA/13Vi+4tYp0OSXnI0OTmHCkp4/v12uyiTp47Cb0lsN3ldZY97SgR6Qu0NsZ87sHYVCVv/5zJrNQs7jwviYt7NHc6HOVBA9o3plFkKPO12UWdglNufBWRIOBZ4C9ulJ0oIqkikpqTk3Oqm65XFm7I5dHPM7ioW1P+dMFpToejPCwkOIgLuzXl24w9FJVqs4s6Oe4k9GygtcvrVva0CjFAMrBARDKBM4A5VZ0YNcZMNsakGGNSEhISTj7qeiYzt4Db3l9Kx4Qonh3VW7v1B6ihyc3JLyrl5417nQ5F1VHuJPQlQCcRaS8iYcBoYE7FTGNMnjEm3hjTzhjTDlgEDDfGpHol4nomv7CEG6emIgKvTzidaO3WH7DOTGpCTHgI83VIXXWSakzoxphS4HbgSyADmGWMWS0ij4jIcG8HWJ+VlxvumpnO5twCXr66L22aaLf+QBYeEsx5XRP5es1uSsvKnQ5H1UFuVfeMMfOAeZWmPVBN2cGnHpYCePbr9XyTsYeHh3fnzKR4p8NRPjA0uRmfpu9g8ZZ9DNTPXNWS9kjxU3NX7ODF7zYy+vTWTPidduuvL845LZEGocHa7KJOiiZ0P7QqO4+/frCclLaNeGREMiJ6ErS+aBAWzODOCXy5ejfl5cbpcFQdowndz+TkFzFxaiqNI8N4ZVw/7dZfDw1JbkZOfhFLt+13OhRVx2i28CPFpeXc8m4a+w4XM3lCCgkx2q2/PjqvSyJhwUHayUjVmiZ0P2GM4cE5q0jdup+nR/YiuaV266+vYiJCOatTPF+s2oUx2uyi3KcJ3U9MW7SV6b9u59bBHbm0Vwunw1EOG5LcjOwDR1iZned0KKoO0YTuB37elMvDn63hgq6J/PWizk6Ho/zAhV2bEhwk2uyiakUTusO27zvMbe8tpUN8FP/Rbv3K1igqjN91aKLNLqpWNKE76FBRKTe8k0q5gSkTUoiJCHU6JOVHhiQ3Y0tuAet3H3I6FFVHaEJ3SHm54c8z09mwJ58Xr+5Du/gop0NSfuai7k0RQTsZKbdpQnfIf/+3ga/W7Ob+S7pxdicdeVIdLzEmgpS2jfTWdMptmtAdMH/lTp7/3wZG9mvFdQPbOR2O8mNDkpuzdlc+W3ILnA5F1QGa0H1szY6D/HnWcvq0ieOxy7VbvzqxIcnNAG12Ue7RhO5Dew8VcePUVGIbhPLauH6EhwQ7HZLycy3jGtCrVSxfarOLcoMmdB8pKSvn1veWknuoiMkT+pHYMMLpkFQd8fvkZizPyiP7wBGnQ1F+ThO6jzz82WoWb9nHUyN70rNVnNPhqDpkaLJ1Q3A9OapqogndB95dtJV3F23jpnM6MKJ3S6fDUXVM+/goujSL4QttR1c10ITuZYs27+WhOas5t3MCd/++i9PhqDpqSHIzUrfuZ09+odOhKD+mCd2Ltu87zK3vLaVNk0ieG9OHYO3Wr07S0OTmGANfrt7tdCjKj2lC95LDxaXcODWVkrJyXp+QQkPt1q9OwWlNo+kQH6VXu6gT0oTuBcYY/vrBctbvzufFq/vSISHa6ZBUHSci/D65Gb9s3sv+gmKnw1F+ShO6F7zw7UbmrdzFvUO7cs5p2q1fecbQ5GaUlRu+ztBmF1U1Tege9sWqXTz79Xqu6NOSG85u73Q4KoD0aBlLy7gGevmiqpYmdA9au+sgf56VTq/Wcfz7ih7arV95lIgwJLkZCzfkkl9Y4nQ4yg9pQveQfQXF3Dg1lejwECaP70dEqHbrV543rGdzisvKeXNhptOhKD+kCd0DSsrKue29pew+WMRr4/vRVLv1Ky/p06YRw3u14MXvNrBhd77T4Sg/owndAx6du4ZfNu/l8ct70KdNI6fDUQHuwUu7ER0ewt0frqCsXG9Pp36jCf0Uzfh1G+/8spUbz27Plf1aOR2OqgeaRIfz4KXdWbbtAO/8nOl0OMqPaEI/BUsy9/HPT1cx6LQE7hna1elwVD0yoncLzu2cwNNfrmP7vsNOh6P8hCb0k5R94Ai3vJtGq0aRvDBau/Ur3xIRHru8B0EC9328EmO06UVpQj8pR4rLmDg1laKScqZMSCE2Urv1K99rEdeAe4Z24ccNucxOy3I6HOUH3EroIjJERNaJyEYRuaeK+X8WkTUiskJE/icibT0fqn8wxvC32ctZs/Mgz4/pQ1KidutXzhk7oC2nt2vEo59n6EiMquaELiLBwEvAUKAbMEZEulUqtgxIMcb0BGYDT3k6UH/x8oJNzF2xk7t/34VzuyQ6HY6q54KChCeu7MmRkjIemrPa6XCUw9ypofcHNhpjNhtjioEZwAjXAsaY74wxFWdmFgEBebnHN2t288xX6xjRuwU3n9PB6XCUAqBjQjSTzu/EvJW7dFiAes6dhN4S2O7yOsueVp3rgflVzRCRiSKSKiKpOTk57kfpBzbszudPM9Pp0TKWJ6/sqd36lV+ZOKgD3Zo35J+friLvsA4LUF959KSoiIwDUoCnq5pvjJlsjEkxxqQkJNSdUQgPHC7mhqmpRIQG85p261d+KDQ4iKdG9mRfQTH/npfhdDjKIe4k9GygtcvrVva0Y4jIBcD9wHBjTJFnwnNeaVk5t7+/jJ0HCnltfD+axzZwOiSlqpTcMpYbz+7AzNTt/LQx1+lwlAPcSehLgE4i0l5EwoDRwBzXAiLSB3gNK5nv8XyYznlsXgYLN+by6OXJ9Gur3fqVf/vTBZ1oHx/FvR+t5HBxqdPhKB+rMaEbY0qB24EvgQxgljFmtYg8IiLD7WJPA9HAByKSLiJzqlldnTIrdTtv/ZTJHwe246qU1jUvoJTDIkKDeeKKHmzbd5hnv1rvdDjKx0LcKWSMmQfMqzTtAZfnF3g4Lselbd3PPz5exVlJ8dx/sXbrV3XHgA5NGDugDW/+tIVhvVrQu3Wc0yEpH9GeolXYmXeEm6al0Twughev7kNIsO4mVbfcM7QLTRtG8PfZKyguLXc6HOUjmqkqKSwpY+LUNApLynh9QgpxkWFOh6RUrcVEhPLoZcms253PKws2OR2O8hFN6C6MMfz9wxWs2pHHf0f1plPTGKdDUuqknd+1qd4Mo57RhO7itR8282n6Dv56UWcu6NbU6XCUOmV6M4z6RRO67du1u3nyi7UM69mcWwd3dDocpTzC9WYYU3/JdDoc5WWa0IGNe/KZND2dbs0b8vTIXtqtXwWUipthPPWF3gwj0NX7hJ53uIQbp6YRHhrE5AkpNAjTbv0qsOjNMOqPep3Qy8oNd8xYRtb+w7wyrh8t47RbvwpMrjfD+HDpcSN3qABRrxP6E/Mz+GF9Dv8akczp7Ro7HY5SXlVxM4x/zV1DZm6B0+EoL6i3Cf3DtCym/LiFa37XltH92zgdjlJeFxQkPHllTwAufXEh36zZ7XBEytPqZUJftm0/9368kt91aMI/hlW++ZJSgatDQjRz7ziLtk0iuWFqKk99sZbSMu1JGijqXULffbCQm6al0bRhOC+P7UuodutX9UzrxpHMvvlMxvRvzcsLNjHhzV/JPRQwI17Xa/UqmxWWlDFxWhqHikqZMiGFRlHarV/VTxGhwTx+RU+eGtmTtK37ueT5H0nbus/psNQpqjcJ3RjDfR+tZPn2Azx7VW+6NGvodEhKOe6qlNZ8dOuZhIcEM+q1Rbz10xa9rLEOqzcJ/fUft/DRsmz+fOFpDElu5nQ4SvmN7i1i+eyOsxjcOZGHP1vDHdOXUVCkN8eoi+pFQv9+fQ6Pz8/g4h7NuOO8JKfDUcrvxDYIZfL4fvx9SBfmrdzJ8BcX6oBedVDAJ/TNOYe4/f2ldG7WkGf+oN36lapOUJBwy+COvHvDAPKOlDDipZ+Ys3yH02GpWgjohH6wsIQbpqYSGhzElAn9iAxz6wZNStVrZ3aMZ+4dZ9O1eUPunL6Mh+as1ptk1BEBm9DLyg13Tl/Gtr2HeWVsX1o1inQ6JKXqjGaxEcyYeAbXDWzP2z9nMnryL+zMO+J0WKoGAZvQn/pyLQvW5fDQ8O4M6NDE6XCUqnNCg4N44NJuvHh1H9btyueS5xfy08Zcp8NSJxCQCf2TZdm89v1mxg5ow7gz2jodjlJ12rCeLfj09rNoEhXG+DcW8+K3GyjR3qV+KeAS+oqsA/z9wxUMaN+YBy/t7nQ4SgWEpMRoPrltIMN6tuCZr9bzu8e/5fF5GWzKOeR0aMqFONWJICUlxaSmpnp0nXsOFjL8xZ8IDhLm3D6QJtHhHl2/UvWdMYbv1u1h+q/b+XbtHsrKDSltG3HV6a25pEdzosL1wgNvE5E0Y0xKlfMCJaEXlZYxZvIiMnbm8+EtZ9KthfYEVcqb9uQX8tHSbGYt2c7m3AKiwoK5tFcL/pDSmr5t4vQSYS8J+IRujOFvs1cwOy2LV8b2ZWiP5h5Zr1KqZsYY0rbuZ+aS7cxdsZMjJWV0SozmqpTWXN63JfH6S9mjAj6hv7FwC/+au4Y7z+/Eny88zSPrVErV3qGiUuYu38HM1O0s23aAkCDhgq5NGXV6awadlkBwkNbaT1VAJ/QfN+RwzZu/cmG3prwyth9BesAo5Rc27M5n5pLtfLQsm30FxTRrGMHIfq34Q0or2jaJcjq8OitgE3pmbgEjXvqJZg0j+OjWM/WEjFJ+qLi0nP9l7GZW6na+X59DuYEWsRF0bxlL9xYNSW4RS/eWDWnWMELb3d1wooReZzNgvt2tP0jg9WtSNJkr5afCQoIY2qM5Q3s0Z2feET5fsZMVWXms2pHHNxm7qahTNokKo1uLhiTbib57i1jaNo7UX921UCezYHm54a6Z6WzJLWDa9f1p3Vi79StVFzSPbcANZ3c4+rqgqJSMnQdZveMgq7LzWL3jIFN+2ExpuZXlo8ND6Na8Id1bWgk+uWVDOiZE653GquFWQheRIcBzQDDwujHmiUrzw4GpQD9gLzDKGJPp2VB/839fr+ObjD08MqI7Z3aM99ZmlFJeFhUeQkq7xqS0a3x0WlFpGRt2H2L1jjxWZR9k9Y48pv+6jcISq3dqWHAQTWPDSYgOJzEmgsSG4STGhJMQY71OiAknsWE4TaLC691J2BoTuogEAy8BFwJZwBIRmWOMWeNS7HpgvzEmSURGA08Co7wR8GfLd/DSd5sY078147Vbv1IBJzwkmOSWsSS3jGXU6da0snLDltxDrMo+SMaug+zOK2RPfhEbcw7xy+a95B0pOW49QQJNoq1kXznhN2wQQmRYCFFhIUSFBxMVHkJkWDDR4db0sJC6+QvAnRp6f2CjMWYzgIjMAEYArgl9BPCQ/Xw28KKIiPHCGdcmUWFc2K0pDw9P1hMoStUTwUFCUmIMSYkxXEbL4+YXlpSRk1/EnvwicvKLyMm3Ev6eg0XkHCpiT34hq3ccJPdQEeVuZKWw4CAiw4OPJvzIsBA72VvJPzwkiNBg+xEihAX/9josJIiwYHGZ/9vrMHu5DvFRJDaM8Ph+ciehtwS2u7zOAgZUV8YYUyoieUATwONDs52ZFM+ZSdrMopT6TURoMK0bR9Z4Pq2s3LCvoJiColIOFZVyuLiMguJSCopKOVz02/OC4jIOF5VyqKiMw8XW64KiUnIPFXG4uIzi0nJKysopLi2nuMx61Kb6+uhlyV4ZONCnJ0VFZCIwEaBNmza+3LRSShEcJCTYzS+eVlZuKCkrp8hO9iVl5ZSUGivhu0wrLiunfbx3rsN3J6FnA61dXreyp1VVJktEQoBYrJOjxzDGTAYmg3Ud+skErJRS/ig4SAgOCiYiNNixGNxp+V8CdBKR9iISBowG5lQqMwe4xn4+EvjWG+3nSimlqldjDd1uE78d+BLrssU3jTGrReQRINUYMwd4A5gmIhuBfVhJXymllA+51YZujJkHzKs07QGX54XAHzwbmlJKqdqomxdbKqWUOo4mdKWUChCa0JVSKkBoQldKqQDh2HjoIpIDbD3JxePxQi9UD9L4To3Gd+r8PUaN7+S1NcYkVDXDsYR+KkQktboB3v2BxndqNL5T5+8xanzeoU0uSikVIDShK6VUgKirCX2y0wHUQOM7NRrfqfP3GDU+L6iTbehKKaWOV1dr6EoppSrRhK6UUgHCrxO6iAwRkXUislFE7qlifriIzLTnLxaRdj6MrbWIfCcia0RktYhMqqLMYBHJE5F0+/FAVevyYoyZIrLS3nZqFfNFRJ63998KEenrw9g6u+yXdBE5KCJ/qlTG5/tPRN4UkT0issplWmMR+VpENth/G1Wz7DV2mQ0ick1VZbwQ29Mistb+/D4Wkbhqlj3hseDlGB8SkWyXz/HiapY94ffdi/HNdIktU0TSq1nWJ/vwlBhj/PKBNVTvJqADEAYsB7pVKnMr8Kr9fDQw04fxNQf62s9jgPVVxDcYmOvgPswE4k8w/2JgPiDAGcBiBz/rXVgdJhzdf8AgoC+wymXaU8A99vN7gCerWK4xsNn+28h+3sgHsV0EhNjPn6wqNneOBS/H+BDwVzeOgRN+370VX6X5/wc84OQ+PJWHP9fQj96c2hhTDFTcnNrVCOAd+/ls4Hzx0Z2jjTE7jTFL7ef5QAZUcfda/zYCmGosi4A4EWnuQBznA5uMMSfbc9hjjDE/YI3p78r1OHsHuKyKRX8PfG2M2WeM2Q98DQzxdmzGmK+MMaX2y0VYdxRzTDX7zx3ufN9P2Ynis3PHVcB0T2/XV/w5oVd1c+rKCfOYm1MDFTen9im7qacPsLiK2b8TkeUiMl9Euvs2MgzwlYik2fdzrcydfewLo6n+S+Tk/qvQ1Biz036+C2haRRl/2JfXYf3iqkpNx4K33W43C71ZTZOVP+y/s4HdxpgN1cx3eh/WyJ8Tep0gItHAh8CfjDEHK81eitWM0At4AfjEx+GdZYzpCwwFbhORQT7efo3Euq3hcOCDKmY7vf+OY6zf3n53ra+I3A+UAu9VU8TJY+EVoCPQG9iJ1azhj8Zw4tq533+f/Dmh1+bm1MgJbk7tLSISipXM3zPGfFR5vjHmoDHmkP18HhAqIvG+is8Yk23/3QN8jPWz1pU7+9jbhgJLjTG7K89wev+52F3RFGX/3VNFGcf2pYhcCwwDxtr/cI7jxrHgNcaY3caYMmNMOTClmm07eiza+eMKYGZ1ZZzch+7y54Tu1zenttvb3gAyjDHPVlOmWUWbvoj0x9rfPvmHIyJRIhJT8Rzr5NmqSsXmABPsq13OAPJcmhZ8pdpakZP7rxLX4+wa4NMqynwJXCQijewmhYvsaV4lIkOAu4HhxpjD1ZRx51jwZoyu52Uur2bb7nzfvekCYK0xJquqmU7vQ7c5fVb2RA+sqzDWY539vt+e9gjWwQsQgfVTfSPwK9DBh7GdhfXTewWQbj8uBm4GbrbL3A6sxjpjvwg404fxdbC3u9yOoWL/ucYnwEv2/l0JpPj4843CStCxLtMc3X9Y/1x2AiVY7bjXY52X+R+wAfgGaGyXTQFed1n2OvtY3Aj80UexbcRqe644Biuu+moBzDvRseDD/TfNPr5WYCXp5pVjtF8f9333RXz29LcrjjuXso7sw1N5aNd/pZQKEP7c5KKUUqoWNKErpVSA0ISulFIBQhO6UkoFCE3oKmCJSJyI3HoSy93njXiU8ja9ykUFLHtIhrnGmORaLnfIGBPtnaiU8h6toatA9gTQ0R7u9OnKM0WkuYj8YM9fJSJni8gTQAN72nt2uXEi8qs97TURCbanHxKR/4g1fPL/RCTBt29PqWNpDV0FrJpq6CLyFyDCGPOYnaQjjTH5rjV0EemKNXzuFcaYEhF5GVhkjJkqIgYYZ4x5T6yx2hONMbf75M0pVYUQpwNQykFLgDftMXk+McakV1HmfKAfsMQehaABv43lUs5vY3+8Cxw3no9SvqRNLqreMtbY2IOwBoF6W0QmVFFMgHeMMb3tR2djzEPVrdJLoSrlFk3oKpDlY91Nqkoi0hZr/OspwOtYd7IBKLFr7WCN4TJSRBLtZRrby4H1/RlpP78aWOjh+JWqFU3oKmAZY/YCP9knPI87KYp1i7vlIrIMGAU8Z0+fDKwQkfeMMWuAf2Dd2GAF1p2IKkYPLAD6i3V/yvOwBo5TyjF6UlSpk6SXNyp/ozV0pZQKEFpDVwFPRHpgjcntqsgYM8CJeJTyFk3oSikVILTJRSmlAoQmdKWUChCa0JVSKkBoQldKqQChCV0ppQKEJnSllAoQ/w9DZh8NQBMVdwAAAABJRU5ErkJggg==",
"text/plain": [
""
]
@@ -3960,7 +3960,7 @@
},
{
"data": {
- "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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\n",
+ "image/png": "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0WUOHjzIoUOHyMvL45prrmHDhg2IyNE7KP3www/ceeedAPTs2ZOePXu69Z5qfM8eWYtSdcDstCxeX7iFa89sx+j+bU55fQkx4TSMCNETo26ofI6i4nVUVNQpr+tERo8ezYsvvkjjxo1JSUkhJqbqy1IbNWrE8uXL+fLLL3n11VeZNWsWb775ptuxl5eXs2jRIiIijm16u/322zn33HP5+OOPyczMZPDgwW7HfjK0yUXVC0u37ee+j1ZyZscm3H9JV4+sU0R0TBc3bdu2jV9++QWA999/n7POOuuY+f379+f7778nNzeXsrIypk+fzjnnnANYyXL27NnVLusqJiaG/PzfOnudc845LF26lClTplTb3AKQm5tLeXk5V155JY8++ihLly49Om/mzJmANZJjbGwssbGxxy1/0UUXHTOWTMUNOPLy8mjZsiVgnbCtMGjQIN5//30AVq1axYoVK6qNrTY0oauAtyuvkJumpdEsNoKXru7r0bsMJdljuqgT69y5My+99BJdu3Zl//793HLLLcfMb968OU888QTnnnsuvXr1ol+/fowYMQKwasK//vorycnJfPvttzzwwAPVbufaa6/l5ptvpnfv3hw5coTg4GCGDRvG/PnzGTZsWLXLZWdnM3jwYHr37s24ceN4/PHHj86LiIigT58+3HzzzbzxxhtVLv/888+TmppKz5496datG6+++ioAd999N/feey99+vQ55mqYW265hUOHDtG1a1ceeOAB+vXrV/NOdIM4dclVSkqK8cR1l0qdSGFJGaNe+4WNew7x0a0D6dzMvZ6g7pryw2Yem5fBsn9eSKOomocM8LWMjAy6dvXML5KTlZmZybBhw46Oa16XDB48mGeeeYaUlBRHtl/V5yciacaYKgPSGroKWMYY7v1oJcuz8vjPqN4eT+bgOqaL1tKV8/SkqApYU37czMfLsvnzhadxUfdmXtmG65gup5/iVTOByvWuQ55y22238dNPPx0zbdKkSW7dS3TAgAEUFRUdM23atGn06NHjuLILFiw4pTh9TRO6CkjfrdvDE/PXcnGPZtxxXpLXttMyrgENQoP1xKiPvfTSSye97OLFiz0YiX/RJhcVcDblHOLO6cvo3Kwhz/yh10l163dXUJDQISHKr5tcdGiCuulkPjdN6Cqg5B0p4cZ3UgkLDmLKhH5Ehnn/R2inxGg2+Wlv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",
"text/plain": [
""
]
@@ -3972,7 +3972,7 @@
},
{
"data": {
- "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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\n",
+ "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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",
"text/plain": [
""
]
@@ -3984,7 +3984,7 @@
},
{
"data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEXCAYAAAC9A7+nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA6vUlEQVR4nO3dd3wUZf7A8c83HVIpCb0HaaFH8MSC9UARLJyAIHoW7HJe8Sx3ttOz/ryzK1hBpYgNEWynqKggCYQaOgESWkIJIZD+/P6YCS4hIRvY3dnsft+v176yM/PMzHdnd7959pl5nhFjDEoppeq/EKcDUEop5Rma0JVSKkBoQldKqQChCV0ppQKEJnSllAoQmtCVUipAaEIPciKSJSLne3kf7UXEiEiYN/fjbSJypoisdToOV/5ybH3xOVK104TuIyJyhoj8LCL5IrJXRH4SkVOdjku5zxjzozGmi9NxBBIROU9E1ojIIRH5TkTa1VAuSUSmich2+zv0k4gM9HW8/k4Tug+ISBwwB3gBaAy0Ah4Giuu4HRERv37P/KCmWK9+BdSHeL0Vo4g0BT4C/on1vUgDZtRQPAZYDPS3y74DfC4iMd6Ird4yxujDyw8gFdhfw7JrgZ+AF4F8YA1wnsvy+cBjdpnDQDLQFfga2AusBa50KX8xsBQ4AGwDHqqyv6uBLcAe4H4gCzi/lvhDgHuAjfZ6M4HG9rL2gAGuB7YCPwChwDNAHrAJuM0uE2av0xKYbce/AbjRZV8DsL7YB4BdwLO1xHbM/u351wGZwD7gS6CdyzoGuBlYD+wHXgIEiLBj6ulSNgk4BCQCg4FsN97vfvZ7UAB8gJWkHrWXDQaygb8DO4GpQCOsf/i5drxzgNZVPgOPA7/ax+XTao7/NfbrzwPudyPGh4BZdmwFwBKgt8vyLDvG5VgVjzBgOLDKPmbzgW5Vyt8LrLZfw1tAVC0xTAB+dpmOxvqMd3Xze3UA6O/099ufHo4HEAwPIA4rEb4DDAUauSy7FigD7gLCgVFYib3yCzvf/qL2sL9U8ViJ+o/2dF/7S9zdLj8Y6ImVhHthJcVL7WXdgYPAWUAk8Ky979oS+kRgIdDaXu81YJq9rDKhTLG/kA2wkuUaoA1Wbeo7jk7oPwAvA1FAH6xEdq697Bfgavt5DHBaLbFVt/8RWP8outnH6B9VEofBSpoJQFt7/0PsZS8DT1Z57Z+5HNvjJnSsfwpb7PXCgcuBEo5O6GXAk/axbAA0Aa4AGgKxWP8EPnHZ5nwgB0ixX+OHwLtVXv9ke1u9sRJwt1rifAgoBUbacf4V2AyE28uzgAz7PWwAnAIUAhfY5e+2j3GES/mVLu/5T5Wv+TgxPAe8UmXeSuAKN75TfYAiIN7p77c/PRwPIFgednJ5G6t2VoZVQ22GldC3A+JS9ld+S2rzgUdclo0Cfqyy7deAB2vY73+B/9jPHwCmuyyLtpNNbQk9k6N/NbSwk0GYS0Lp6LL8W+Bml+kL7TJh9he+HIh1Wf448Lb9/Aes5qimbh7X6vY/D7jeZToEq5bdzp42wBkuy2cC99jPB2L9AxV7Og37FxDuJfSzsJKv6/u5gKMTegnHqb3ayWqfy/R84AmX6e72NkJdXr9rjf5XYHQtcT4ELKxyjHYAZ9rTWcB1Lsv/CcysUj4HGOxS3vU9vwjYWEsMb7i+LnveT8C1tawXB6wA7vXEdzOQHn7dHhtIjDGZxphrjTGtsWpaLbGSLUCOsT+pti328krbXJ63AwaKyP7KBzAWaA4gIgPtk0u5IpKPVVtuaq/b0nVbxphCrF8OtWkHfOyyv0yspNyshhhbVpneUmXZXmNMQZXlrezn12PVBteIyGIRGeZGfFX33w54ziXevVhNKq1cyux0eX4I69cAxphF9vRgEemK1cQ1280YwHp9Vd/PbVXK5BpjiionRKShiLwmIltE5ADWP7UEEQmtYRtbsGrJTV3mVft6auH6WajAqmzU9Llricv7aJffxtHHtGqMrtuqzkGs5OwqDqsJqFoi0gD4DOuf0eO1bD/oaEJ3gDFmDVZtPcWe1UpExKVIW6xa+5FVXJ5vA743xiS4PGKMMbfYy9/HSkBtjDHxwKtYyQysGlibyg2JSEOsn/u12QYMrbLPKGNMTg0xHrUf+/VU2g40FpHYKstzAIwx640xY7Darp8EZolItBsxVj1GN1WJt4Ex5mc3tgNW09g4rPMNs1yTrxt2cOz72aZKGVNl+i9AF2CgMSYOq5YPv71vVbfRFusXUl4d4qqO62chBKtJrabP3Xasf5SV5cVe3/UzUDVG121VZxVWE1HlNqOBTvb8Y4hIJPAJ1j+em2rZdlDShO4DItJVRP4iIq3t6TbAGKx2abCS150iEi4if8Bqnplbw+bmAKeIyNV2+XAROVVEutnLY7FqwEUiMgC4ymXdWcAw+xLKCOAR3PsMvAo8VnlJmYgkisiI45Sfab+e1iLSCOuEKgDGmG3Az8DjIhIlIr2wauXv2tseJyKJdg1wv71ahRsxVo33XhHpYW8z3j6u7noXuAwrqU+p475/wfr1cruIhNnHaUAt68RinQzcLyKNgQerKTNORLrb/4QfwfpHU17H2KrqLyKX21ex/Amr7X1hDWVnAhfblxmGY/0TKsZ6LyvdZr/njbFOuNd0xUqlj4EUEblCRKKwmgSX2xWeo9j7nIV1nK6xPx+qCk3ovlGA1Ta7SEQKsb40K7G+FACLgM5YNa7HgJHGmGqbQuymiguB0Vg1oJ38doIN4FbgEREpwPqCzHRZdxXWFSfvY9Uk92HVdmrzHFat/yt7uwvt11OTyVhXlizDunrioyrLx2C1/W7H+lI/aIz5xl42BFglIgft/Y42xhx2I8YjjDEfYx2T6XYTxkqsk9Hurr/NjtsAP9Zx3yVYJ0Kvx/qHNA7rn/DxLlH9L9aJxzysY/tFNWWmYv2q24l1MvnOusRVg0+xzsnsw/o1crkxprS6gsaYtViv5QU7zkuAS+zXW+l94CusK5s2Ao8eb+fGmFysk8GP2TEMxPpcAyAir4rIq/bk6cAwrM/+fhE5aD/OrNMrDnCVJ36UQ0TkWuAGY8wZTseifiMibwLbjTH/8MC2FgGvGmPeOsH152Nd1fL6ycbiss2HgGRjzDhPbVM5z+87NSjlayLSHquW3fcE1z8bq39AHtYJ615UX+tWyqO0yUUBICLzXH7Guj7u84PYxtYQW7Unz05yX//CaqJ52hizuYYybWuI56CItMU6wbkMq8nlL1hNaDs8HWtt/OE9FZH7aohhnq9iCCba5KKUUgFCa+hKKRUgNKErpVSAcOykaNOmTU379u2d2r1SStVL6enpecaYxOqWOZbQ27dvT1pamlO7V0qpeklEttS0TJtclFIqQGhCV0qpAKEJXSmlAoT2FFUqgJWWlpKdnU1RUV0GjFT+ICoqitatWxMeHu72OrUmdHtMi2HAbmNMSjXLBWsQpYuwxmG+1hizxO0IlFJek52dTWxsLO3bt+foEX2VPzPGsGfPHrKzs+nQoYPb67nT5PI21gh4NRmKNVJgZ6x7BL7i9t6VUl5VVFREkyZNNJnXMyJCkyZN6vzLqtaEboz5AeuOLzUZAUwxloVYd1ppUacolFJeo8m8fjqR980TJ0VbcfStp7I5+rZUSgWMxVl7Gfrcj2zfX6ch2tUJysrKIiXlmJZeVQOfXuUiIhNEJE1E0nJzc325a6VOWva+Q9w8NZ3MHQdYnHW8H61KOcMTCT2Ho+8l2Jqj7zN4hDFmkjEm1RiTmphYbc9VpfzSoZIyJkxJp6SsgtAQYf2ug06HFHQ2bdpE3759WbRoEUOGDKF///6ceeaZrFmzhoKCAjp06EBpqXXDpQMHDhw1HSw8kdBnA+PFchqQ78TYz0p5izGGv32wnMydB3h+TF/aNW7Iht2a0H1p7dq1XHHFFbz99tvcd999vPDCC6Snp/PMM89w6623Ehsby+DBg/n8888BmD59OpdffnmdLvkLBO5ctjgNGAw0FZFsrBvYhgMYY17FupnxRcAGrMsW/+itYJVywkvfbeDzFTu4Z2hXzumaxLRft7IhVxO6r+Tm5jJixAg++ugj2rZty88//8wf/vDbPb+Li63btd5www089dRTXHrppbz11ltMnjzZqZAdU2tCN8aMqWW5wbrxsFIB5+vVu3jmq3Vc2qclN53VEYDkpBi+XbOb0vIKwkO1s7W3xcfH07ZtWxYsWMDo0aNJSEggIyPjmHKDBg0iKyuL+fPnU15eHpQnU/XTqFQN1u0q4E/Tl9KrdTxPXNHryGVknZvFUFZh2LKn0OEIg0NERAQff/wxU6ZMYc6cOXTo0IEPPvgAsJrDli1bdqTs+PHjueqqq/jjH4OzoUATulLV2FdYwg3vpNEwMozXru5PVHjokWXJibEAemLUh6Kjo5kzZw7/+c9/GDVqFG+88Qa9e/emR48efPrpp0fKjR07ln379jFmzHEbFgKWjuWiVBVl5RXcPm0JO/OLmH7TabSIb3DU8k5J0QB6YtQH2rdvz8qVKwFISEhg8eLFAEycOLHa8gsWLGDkyJEkJCT4KkS/ogldqSoe/TyTnzbs4emRvejXttExyxtGhNEqoYGeGPUzd9xxB/PmzWPu3LlOh+IYTehKuZi5eBtv/5zFdYM68IfUNjWWS06K0SYXP/PCCy84HYLjtA1dKVv6lr3c/8kKzuzclPsu6nrcsp2TYtiYe5DyCuOj6JSqnSZ0pYDt+w9z09QltExowAtj+hJWy+WIyUkxFJdVkLNPx3RR/kMTugp6h0vKuWlqOkWl5bw+PpWEhhG1rpOcFAPAhtwCb4enlNs0oaugZozh7g+Xs3J7Pv8d1YfOzWLdWu9IQtcrXZQf0YSugtor32/ks2Xb+euFXTi/ezO310toGEHTmEg9Mar8iiZ0FbT+l7mLp79cyyW9W3Lr4E51Xr9zUoxeuugDMTExbpd9++232b59uxej8Y7BgweTlpZ20tvRhK6C0obdBUycnkGPlnE85dKtvy6Sk2LYsOsg1nBG6mSUl5d7ZDtOJPSysjKf7u949Dp0FXTyD5VywztpRIWHMOnqVBpEhNa+UjWSk2IoKC5jd0ExzeKiPByl5z382SpWbz/g0W12bxnHg5f0OG6ZrKysI+OXL1myhB49ejBlyhS6d+/OqFGj+Prrr7n77rsxxvDvf/8bYwwXX3wxTz755JFt3HXXXXz11Vc0b96c6dOnU939FGbNmkVaWhpjx46lQYMGPP7447z55ptHxn2ZP38+zzzzDHPmzDlm3fLycq6//nrS0tIQEa677jruuusuBg8eTO/evfn+++8pKyvjzTffZMCAATz00ENs3LiRTZs20bZtW55//nluvvlmtm7dCsB///tfBg0axK+//srEiRMpKiqiQYMGvPXWW3Tp0oXDhw/zxz/+kWXLltG1a1cOH/bM1VJaQ1dBpbJbf87+w7w6rj8tExrUvlINOuuJUbetXbuWW2+9lczMTOLi4nj55ZcBaNKkCUuWLOGss87i73//O99++y0ZGRksXryYTz75BIDCwkJSU1NZtWoVZ599Ng8//HC1+xg5ciSpqam89957ZGRkcMEFF7Bo0SIKC61B1GbMmMHo0aOrXTcjI4OcnBxWrlzJihUrjhrc69ChQ2RkZPDyyy9z3XXXHZm/evVqvvnmG6ZNm8bEiRO56667WLx4MR9++CE33HADAF27duXHH39k6dKlPPLII9x3330AvPLKKzRs2JDMzEwefvhh0tPTT+4A27SGroLKE/PW8OP6PJ64vCep7Ruf1LYqr3RZv6uAQclNPRGeV9VWk/amNm3aMGjQIADGjRvH888/D8CoUaMAWLx4MYMHDz5S8x47diw//PADl156KSEhIUfKjRs3jssvv9ytfYaFhTFkyBA+++wzRo4cyeeff85TTz1VbdmOHTuyadMm7rjjDi6++GIuvPDCI8sqB/o666yzOHDgAPv37wdg+PDhNGhgVQi++eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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\n",
+ "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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",
"text/plain": [
""
]
@@ -3996,7 +3996,7 @@
},
{
"data": {
- "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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\n",
+ "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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",
"text/plain": [
""
]
@@ -4008,7 +4008,7 @@
},
{
"data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEXCAYAAAC9A7+nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA6vUlEQVR4nO3dd3wUZf7A8c83HVIpCb0HaaFH8MSC9UARLJyAIHoW7HJe8Sx3ttOz/ryzK1hBpYgNEWynqKggCYQaOgESWkIJIZD+/P6YCS4hIRvY3dnsft+v176yM/PMzHdnd7959pl5nhFjDEoppeq/EKcDUEop5Rma0JVSKkBoQldKqQChCV0ppQKEJnSllAoQmtCVUipAaEIPciKSJSLne3kf7UXEiEiYN/fjbSJypoisdToOV/5ybH3xOVK104TuIyJyhoj8LCL5IrJXRH4SkVOdjku5zxjzozGmi9NxBBIROU9E1ojIIRH5TkTa1VAuSUSmich2+zv0k4gM9HW8/k4Tug+ISBwwB3gBaAy0Ah4Giuu4HRERv37P/KCmWK9+BdSHeL0Vo4g0BT4C/on1vUgDZtRQPAZYDPS3y74DfC4iMd6Ird4yxujDyw8gFdhfw7JrgZ+AF4F8YA1wnsvy+cBjdpnDQDLQFfga2AusBa50KX8xsBQ4AGwDHqqyv6uBLcAe4H4gCzi/lvhDgHuAjfZ6M4HG9rL2gAGuB7YCPwChwDNAHrAJuM0uE2av0xKYbce/AbjRZV8DsL7YB4BdwLO1xHbM/u351wGZwD7gS6CdyzoGuBlYD+wHXgIEiLBj6ulSNgk4BCQCg4FsN97vfvZ7UAB8gJWkHrWXDQaygb8DO4GpQCOsf/i5drxzgNZVPgOPA7/ax+XTao7/NfbrzwPudyPGh4BZdmwFwBKgt8vyLDvG5VgVjzBgOLDKPmbzgW5Vyt8LrLZfw1tAVC0xTAB+dpmOxvqMd3Xze3UA6O/099ufHo4HEAwPIA4rEb4DDAUauSy7FigD7gLCgVFYib3yCzvf/qL2sL9U8ViJ+o/2dF/7S9zdLj8Y6ImVhHthJcVL7WXdgYPAWUAk8Ky979oS+kRgIdDaXu81YJq9rDKhTLG/kA2wkuUaoA1Wbeo7jk7oPwAvA1FAH6xEdq697Bfgavt5DHBaLbFVt/8RWP8outnH6B9VEofBSpoJQFt7/0PsZS8DT1Z57Z+5HNvjJnSsfwpb7PXCgcuBEo5O6GXAk/axbAA0Aa4AGgKxWP8EPnHZ5nwgB0ixX+OHwLtVXv9ke1u9sRJwt1rifAgoBUbacf4V2AyE28uzgAz7PWwAnAIUAhfY5e+2j3GES/mVLu/5T5Wv+TgxPAe8UmXeSuAKN75TfYAiIN7p77c/PRwPIFgednJ5G6t2VoZVQ22GldC3A+JS9ld+S2rzgUdclo0Cfqyy7deAB2vY73+B/9jPHwCmuyyLtpNNbQk9k6N/NbSwk0GYS0Lp6LL8W+Bml+kL7TJh9he+HIh1Wf448Lb9/Aes5qimbh7X6vY/D7jeZToEq5bdzp42wBkuy2cC99jPB2L9AxV7Og37FxDuJfSzsJKv6/u5gKMTegnHqb3ayWqfy/R84AmX6e72NkJdXr9rjf5XYHQtcT4ELKxyjHYAZ9rTWcB1Lsv/CcysUj4HGOxS3vU9vwjYWEsMb7i+LnveT8C1tawXB6wA7vXEdzOQHn7dHhtIjDGZxphrjTGtsWpaLbGSLUCOsT+pti328krbXJ63AwaKyP7KBzAWaA4gIgPtk0u5IpKPVVtuaq/b0nVbxphCrF8OtWkHfOyyv0yspNyshhhbVpneUmXZXmNMQZXlrezn12PVBteIyGIRGeZGfFX33w54ziXevVhNKq1cyux0eX4I69cAxphF9vRgEemK1cQ1280YwHp9Vd/PbVXK5BpjiionRKShiLwmIltE5ADWP7UEEQmtYRtbsGrJTV3mVft6auH6WajAqmzU9Llricv7aJffxtHHtGqMrtuqzkGs5OwqDqsJqFoi0gD4DOuf0eO1bD/oaEJ3gDFmDVZtPcWe1UpExKVIW6xa+5FVXJ5vA743xiS4PGKMMbfYy9/HSkBtjDHxwKtYyQysGlibyg2JSEOsn/u12QYMrbLPKGNMTg0xHrUf+/VU2g40FpHYKstzAIwx640xY7Darp8EZolItBsxVj1GN1WJt4Ex5mc3tgNW09g4rPMNs1yTrxt2cOz72aZKGVNl+i9AF2CgMSYOq5YPv71vVbfRFusXUl4d4qqO62chBKtJrabP3Xasf5SV5cVe3/UzUDVG121VZxVWE1HlNqOBTvb8Y4hIJPAJ1j+em2rZdlDShO4DItJVRP4iIq3t6TbAGKx2abCS150iEi4if8Bqnplbw+bmAKeIyNV2+XAROVVEutnLY7FqwEUiMgC4ymXdWcAw+xLKCOAR3PsMvAo8VnlJmYgkisiI45Sfab+e1iLSCOuEKgDGmG3Az8DjIhIlIr2wauXv2tseJyKJdg1wv71ahRsxVo33XhHpYW8z3j6u7noXuAwrqU+p475/wfr1cruIhNnHaUAt68RinQzcLyKNgQerKTNORLrb/4QfwfpHU17H2KrqLyKX21ex/Amr7X1hDWVnAhfblxmGY/0TKsZ6LyvdZr/njbFOuNd0xUqlj4EUEblCRKKwmgSX2xWeo9j7nIV1nK6xPx+qCk3ovlGA1Ta7SEQKsb40K7G+FACLgM5YNa7HgJHGmGqbQuymiguB0Vg1oJ38doIN4FbgEREpwPqCzHRZdxXWFSfvY9Uk92HVdmrzHFat/yt7uwvt11OTyVhXlizDunrioyrLx2C1/W7H+lI/aIz5xl42BFglIgft/Y42xhx2I8YjjDEfYx2T6XYTxkqsk9Hurr/NjtsAP9Zx3yVYJ0Kvx/qHNA7rn/DxLlH9L9aJxzysY/tFNWWmYv2q24l1MvnOusRVg0+xzsnsw/o1crkxprS6gsaYtViv5QU7zkuAS+zXW+l94CusK5s2Ao8eb+fGmFysk8GP2TEMxPpcAyAir4rIq/bk6cAwrM/+fhE5aD/OrNMrDnCVJ36UQ0TkWuAGY8wZTseifiMibwLbjTH/8MC2FgGvGmPeOsH152Nd1fL6ycbiss2HgGRjzDhPbVM5z+87NSjlayLSHquW3fcE1z8bq39AHtYJ615UX+tWyqO0yUUBICLzXH7Guj7u84PYxtYQW7Unz05yX//CaqJ52hizuYYybWuI56CItMU6wbkMq8nlL1hNaDs8HWtt/OE9FZH7aohhnq9iCCba5KKUUgFCa+hKKRUgNKErpVSAcOykaNOmTU379u2d2r1SStVL6enpecaYxOqWOZbQ27dvT1pamlO7V0qpeklEttS0TJtclFIqQGhCV0qpAKEJXSmlAoT2FFUqgJWWlpKdnU1RUV0GjFT+ICoqitatWxMeHu72OrUmdHtMi2HAbmNMSjXLBWsQpYuwxmG+1hizxO0IlFJek52dTWxsLO3bt+foEX2VPzPGsGfPHrKzs+nQoYPb67nT5PI21gh4NRmKNVJgZ6x7BL7i9t6VUl5VVFREkyZNNJnXMyJCkyZN6vzLqtaEboz5AeuOLzUZAUwxloVYd1ppUacolFJeo8m8fjqR980TJ0VbcfStp7I5+rZUSgWMxVl7Gfrcj2zfX6ch2tUJysrKIiXlmJZeVQOfXuUiIhNEJE1E0nJzc325a6VOWva+Q9w8NZ3MHQdYnHW8H61KOcMTCT2Ho+8l2Jqj7zN4hDFmkjEm1RiTmphYbc9VpfzSoZIyJkxJp6SsgtAQYf2ug06HFHQ2bdpE3759WbRoEUOGDKF///6ceeaZrFmzhoKCAjp06EBpqXXDpQMHDhw1HSw8kdBnA+PFchqQ78TYz0p5izGGv32wnMydB3h+TF/aNW7Iht2a0H1p7dq1XHHFFbz99tvcd999vPDCC6Snp/PMM89w6623Ehsby+DBg/n8888BmD59OpdffnmdLvkLBO5ctjgNGAw0FZFsrBvYhgMYY17FupnxRcAGrMsW/+itYJVywkvfbeDzFTu4Z2hXzumaxLRft7IhVxO6r+Tm5jJixAg++ugj2rZty88//8wf/vDbPb+Li63btd5www089dRTXHrppbz11ltMnjzZqZAdU2tCN8aMqWW5wbrxsFIB5+vVu3jmq3Vc2qclN53VEYDkpBi+XbOb0vIKwkO1s7W3xcfH07ZtWxYsWMDo0aNJSEggIyPjmHKDBg0iKyuL+fPnU15eHpQnU/XTqFQN1u0q4E/Tl9KrdTxPXNHryGVknZvFUFZh2LKn0OEIg0NERAQff/wxU6ZMYc6cOXTo0IEPPvgAsJrDli1bdqTs+PHjueqqq/jjH4OzoUATulLV2FdYwg3vpNEwMozXru5PVHjokWXJibEAemLUh6Kjo5kzZw7/+c9/GDVqFG+88Qa9e/emR48efPrpp0fKjR07ln379jFmzHEbFgKWjuWiVBVl5RXcPm0JO/OLmH7TabSIb3DU8k5J0QB6YtQH2rdvz8qVKwFISEhg8eLFAEycOLHa8gsWLGDkyJEkJCT4KkS/ogldqSoe/TyTnzbs4emRvejXttExyxtGhNEqoYGeGPUzd9xxB/PmzWPu3LlOh+IYTehKuZi5eBtv/5zFdYM68IfUNjWWS06K0SYXP/PCCy84HYLjtA1dKVv6lr3c/8kKzuzclPsu6nrcsp2TYtiYe5DyCuOj6JSqnSZ0pYDt+w9z09QltExowAtj+hJWy+WIyUkxFJdVkLNPx3RR/kMTugp6h0vKuWlqOkWl5bw+PpWEhhG1rpOcFAPAhtwCb4enlNs0oaugZozh7g+Xs3J7Pv8d1YfOzWLdWu9IQtcrXZQf0YSugtor32/ks2Xb+euFXTi/ezO310toGEHTmEg9Mar8iiZ0FbT+l7mLp79cyyW9W3Lr4E51Xr9zUoxeuugDMTExbpd9++232b59uxej8Y7BgweTlpZ20tvRhK6C0obdBUycnkGPlnE85dKtvy6Sk2LYsOsg1nBG6mSUl5d7ZDtOJPSysjKf7u949Dp0FXTyD5VywztpRIWHMOnqVBpEhNa+UjWSk2IoKC5jd0ExzeKiPByl5z382SpWbz/g0W12bxnHg5f0OG6ZrKysI+OXL1myhB49ejBlyhS6d+/OqFGj+Prrr7n77rsxxvDvf/8bYwwXX3wxTz755JFt3HXXXXz11Vc0b96c6dOnU939FGbNmkVaWhpjx46lQYMGPP7447z55ptHxn2ZP38+zzzzDHPmzDlm3fLycq6//nrS0tIQEa677jruuusuBg8eTO/evfn+++8pKyvjzTffZMCAATz00ENs3LiRTZs20bZtW55//nluvvlmtm7dCsB///tfBg0axK+//srEiRMpKiqiQYMGvPXWW3Tp0oXDhw/zxz/+kWXLltG1a1cOH/bM1VJaQ1dBpbJbf87+w7w6rj8tExrUvlINOuuJUbetXbuWW2+9lczMTOLi4nj55ZcBaNKkCUuWLOGss87i73//O99++y0ZGRksXryYTz75BIDCwkJSU1NZtWoVZ599Ng8//HC1+xg5ciSpqam89957ZGRkcMEFF7Bo0SIKC61B1GbMmMHo0aOrXTcjI4OcnBxWrlzJihUrjhrc69ChQ2RkZPDyyy9z3XXXHZm/evVqvvnmG6ZNm8bEiRO56667WLx4MR9++CE33HADAF27duXHH39k6dKlPPLII9x3330AvPLKKzRs2JDMzEwefvhh0tPTT+4A27SGroLKE/PW8OP6PJ64vCep7Ruf1LYqr3RZv6uAQclNPRGeV9VWk/amNm3aMGjQIADGjRvH888/D8CoUaMAWLx4MYMHDz5S8x47diw//PADl156KSEhIUfKjRs3jssvv9ytfYaFhTFkyBA+++wzRo4cyeeff85TTz1VbdmOHTuyadMm7rjjDi6++GIuvPDCI8sqB/o666yzOHDgAPv37wdg+PDhNGhgVQi++eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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\n",
+ "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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",
"text/plain": [
""
]
@@ -4020,7 +4020,7 @@
},
{
"data": {
- "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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\n",
+ "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHaOSmGjX7aWzQqKoo9e/ZoUq9njDHs2bPnmOvaa6NNLipglFcY7py2lK17D/H+jafRulFDn+w3OSmGTzK2U1hcRnSkf32lWrduTXZ2Nrm5uU6HouooKiqK1q1b12kd//r0KXUSnvpiDd+vy+Wxy1IY0MF3JyiTk6yrZzbmHqRX6wSf7dcd4eHhdOjQwekwlI9ok4sKCB8vzea1HzYx7rS2jB3Yzqf7/m1MF/9sdlHBQxO6qveWbdvP3z9cwcAOjR0ZgKpdk4aEhYhfnxhVwUETuqrXdh8oYsLUNBJjInl5rGe79bsrPDSEDk2jtYauHKcJXdVbRaXlTJiaTkFRGa9fk0qTmEjHYtExXZQ/0ISu6iVjDPd/vJKMbft59sredGsR52g8nZNi2LKnkOIyz9xKTakT4VZCF5EhIrJWRDaIyD3VLG8rIt+JyFIRWS4iF3k+VKV+88aCzXy4JJuJ53VmSEoLp8OhU1IMFQY25xU6HYoKYrUmdBEJBV4ChgLdgTEi0r1KsX8AM40xfYHRwMueDlSpSj+sy+XfczP5fY9mTDyvs9PhAEeP6aKUU9ypoQ8ANhhjNhljSoDpwIgqZQxQ+Zs3HvDtbbdV0NicV8jt7y/hlGaxPHtlH0JCvNetvy46JcYgopcuKme5k9BbAdtcprPtea4eAsaJSDYwF7ijug2JyAQRSRORNO25puqqoKiUG6ekERoiTB6f6le9MqPCQ2nTqKFeuqgc5amTomOAt40xrYGLgKkicsy2jTGTjDGpxpjUypvBKuWO8grDxOkZZOUV8vLY/rRp7Jtu/XXhz2O6qODgTkLPAdq4TLe257m6HpgJYIz5BYgC/P826KreeOartXy7ZjcPXtKd33Vq4nQ41UpOimFTbiFl5RVOh6KClDsJfTHQWUQ6iEgE1knP2VXKbAXOAxCRblgJXdtUlEd8mpHDK/M3MmZAW8ad5ttu/XXRKSmGkvIKtu077HQoKkjVmtCNMWXA7cCXQCbW1SyrROQRERluF/sLcKOILAOmAdcaHa9TecCK7HzunrWcAe0b8/DwHl4d2/xkdT4ypktBLSWV8g63zioZY+Zinex0nfeAy/PVwCDPhqaC3e4Cq1t/05hIXh7Xj4gw/+4H18nl/qIXOhyLCk7+c5mAUi6Ky8q55d0l7DtUwoe3nE5TB7v1uysuKpzmcVF6LbpyjCZ05XeMMTzwySrSt+zjxav60qNlvNMhuS05KUYTunKMf/+GVUHpnZ+zmJG2jTvOTWZYr5ZOh1MnlQldTyEpJ2hCV37lpw15/OvzTC7o3oy7zj/F6XDqLDkphkMl5WzPL3I6FBWENKErv7FlTyG3vreETonR/GeU/3Trrwsd00U5SRO68gsHi8u4cUoaIjB5fCoxftStvy46a0JXDqqf3xoVUCoqDHfNyGBjbiFTrhtAuybRTod0wprERNKoYTgbduu16Mr3tIauHPefb9bx9epd/OPibgxKrv8jRuiVLsopmtCVoz5fvoMXvt3Alamtufb09k6H4xHJSbGs1ytdlAM0oSvHrMzJ5y8fZNC/XSP+dWmKX3frr4vkpBj2HyplT2GJ06GoIKMJXTki72AxE6ak0ahhBK+O609kWKjTIXmMnhhVTtGErnyupKyCW95NZ09hCZOuTiUx1v+79ddF5aWL6zWhKx/Tq1yUTxljeHD2KhZn7eO50X3o2br+dOt3V4v4KKIjQvVmF8rntIaufOrdhVuY9utWbhnciRF9qt7JMDCICMlJMazXSxeVj2lCVz7zy8Y9PPzZas7tmsRfL+zidDhe1UkvXVQO0ISufGLb3kPc+l467Zo05L+j+xBaD7v110XnpFh2HSjmQFGp06GoIKIJXXldod2tv7zC8Po1pxIXFe50SF6nY7ooJ2hCV15VUWH488wM1u0q4MWr+tGhaf3t1l8XeumicoImdOVVz/1vPV+u2sV9F3XjrFMSnQ7HZ9o0bkhEWIgmdOVTmtCV18xbsYPn/reeK/q15vozOjgdjk+Fhggdm0ZrQlc+pQldeUXmjgP8eeYy+rRJ4LHLAqdbf13oIF3K1zShK4/bW1jCjVPSiGsQxqSr+xMVHjjd+usiOSmGbfsOUVRa7nQoKkhoQlceVVpewa3vpbO7oJhJV6eSFBfldEiO6ZwUizGwMVdr6co3NKErj3rks9Us3LSXJ6/oSe82CU6H4yi9dFH5miZ05THvLdrC1IVbuOmsjlzWt7XT4TiufdOGhIgmdOU7mtCVRyzatIcHP13F4C6J3D2kq9Ph+IXIsFDaN4lm/S5N6Mo3NKGrk5a97xC3vLeEtk0a8tzovgHfrb8uOiXFsEHb0JWPaEJXJ+VQSRk3TkmntLyCyeNTiW8Q+N3666JzUgxZeYWUllc4HYoKAprQ1QkzxvC3D5azZucBnh/Tl06JMU6H5HeSk2IoqzBs2VPodCgqCGhCVyfsxW838PmKHdwzpCvndElyOhy/pFe6KF9yK6GLyBARWSsiG0TknhrKXCkiq0VklYi879kwlb/5atVO/u/rdVzWtxUTzurodDh+q/JXi54YVb5Q6y3oRCQUeAm4AMgGFovIbGPMapcynYF7gUHGmH0iotW1ALZ2ZwF3zcigd+t4Hr+8Z1B263dXdGQYrRIa6IlR5RPu1NAHABuMMZuMMSXAdGBElTI3Ai8ZY/YBGGN2ezZM5S/2FZZww5TFREeG8drVqUHbrb8udEwX5SvuJPRWwDaX6Wx7nqtTgFNE5CcRWSgiQzwVoPIfpeUV3Pb+EnblF/Pq1f1pHh+83frrIjkpho25B6moME6HogKcp06KhgGdgcHAGGCyiCRULSQiE0QkTUTScnNzPbRr5SuPfZ7Jzxv38O/Le9KvbSOnw6k3kpNiKCqtIGf/YadDUQHOnYSeA7RxmW5tz3OVDcw2xpQaYzYD67AS/FGMMZOMManGmNTExOC52UEgmLF4K2//nMX1Z3RgZH/t1l8XlXcvWr+7wOFIVKBzJ6EvBjqLSAcRiQBGA7OrlPkEq3aOiDTFaoLZ5LkwlZPSsvbyj09Wcmbnptw7VLv115Veuqh8pdaEbowpA24HvgQygZnGmFUi8oiIDLeLfQnsEZHVwHfA34wxe7wVtPKd7fsPc/O76bRKaMCLY/oRFqpdF+oqoWEETWMiNaErr6v1skUAY8xcYG6VeQ+4PDfAn+2HChCHS8qZMDWNotIKpk9IJb6hdus/UclJ0azXhK68TKtbqlrGGP42axmrth/g+TF9SE6KdTqkeq3y0kWr7qOUd2hCV9V6ef5G5izfwd9+34VzuzZzOpx6r3NSLAVFZewuKHY6FBXANKGrY3yzehfPfLWW4b1bcsvZnZwOJyDoiVHlC5rQ1VHW7yrgTzMy6NEyjiev6KXd+j2ksyZ05QOa0NUR+YdKuXFKGlHhoUy6OpUGEdqt31MSYyOJjQrTa9GVV2lCVwCUlVdw+7Ql5Ow/zGtX96NlQgOnQwooIqJjuiiv04SuAHh83hp+XJ/HY5f2pH+7xk6HE5A6a0JXXqYJXfFB2jbeWLCZa09vz5Wntql9BXVCkpNiyDtYwv5DJU6HogKUJvQgl75lH/d/vJJByU34x8XdnA4noHW2r+XXWrryFk3oQWxnfhE3v5tO8/go7dbvA8lHBunShK68w62u/yrwFJVa3foPFZfx3g0DaRQd4XRIAa9VQgOiwkO0hq68RhN6EDLGcM+Hy1mRk8+kq1M5pZl26/eFkBChU2KM1tCV1+hv7CA06YdNfJKxnb9ccAoXdNdu/b6UnBTDRk3oyks0oQeZ79bs5okv1nBxrxbcdk6y0+EEnc5JMeTsP0xhcZnToagApAk9iGzYfZA7py2lW/M4nh6p3fqdoCdGlTdpQg8S+YdLmTAljYiwECZfk0rDCD194oR+7RohAvPX7nY6FBWANKEHgfIKw53TlrJt3yFeGdefVtqt3zFJsVGktmvEFyt3Oh2KCkCa0IPAk1+s4ft1uTw8PIUBHbRbv9OGpLRgzc4CNucVOh2KCjCa0APcR0uymfTDJsb/rh1XDWzrdDgKGJLSHEBr6crjNKEHsIxt+7nnoxX8rmMT/jmsu9PhKFurhAb0bh3PFyt3OB2KCjCa0APUrgNF3DQ1jaTYSF4a249w7dbvV4aktGBZdj45+w87HYoKIPotD0BWt/50CorKeP2aVBprt36/o80uyhs0oQcYYwz3fbyCZdv28+yVfejaPM7pkFQ1OjSNpmvzWG12UR6lCT3AvLFgMx8tyeFP53c+UgtU/mlISnPStuxjd0GR06GoAKEJPYB8vy6Xf8/NZGhKc+48t7PT4ahaDE1pgTHw1apdToeiAoQm9ACxOa+QO95fwinNYnnmD70JCdFu/f7ulGYxdGware3oymM0oQeAA0Wl3PDOYsJCQ5g8PpXoSO3WXx+ICL9Pac4vm/awr1BvS6dOnib0eq68wvCn6Rls2XOIl8f2o03jhk6HpOpgaEpzyisMX2dqs4s6eZrQ67mnv1zLt2t28+DwHpzWsYnT4ag66tkqnlYJDbTZRXmEJvR67NOMHF79fiNXDWzL1ae1czocdQJEhCEpzVmwPo+ColKnw1H1nCb0emp59n7unrWcAe0b89AlPZwOR52EoSnNKSmv4Ns1OqSuOjluJXQRGSIia0Vkg4jcc5xyV4iIEZFUz4WoqtpdUMSEKek0jYnk5XH9iAjT/8v1Wb+2jUiMjdRmF3XSas0EIhIKvAQMBboDY0TkmJGeRCQWmAgs8nSQ6jfFZeXcPDWd/MOlTBrfn6YxkU6HpE5SSIjw+x7NmL82l8Ml5U6Ho+oxd6p2A4ANxphNxpgSYDowoppy/wKeBLTbm5cYY/jnJytZsnU//3dlb3q0jHc6JOUhQ1NacLi0nO/XabOLOnHuJPRWwDaX6Wx73hEi0g9oY4z53IOxqSre/jmLmWnZ3HluMhf1bOF0OMqDBnZoTKOG4czTZhd1Ek668VVEQoBngb+4UXaCiKSJSFpubu7J7jqoLFifx6OfZ3Jh92b86fxTnA5HeVhYaAgXdG/Gt5m7KS7TZhd1YtxJ6DlAG5fp1va8SrFACjBfRLKA04DZ1Z0YNcZMMsakGmNSExMTTzzqIJOVV8ht7y+hU2I0z47qo936A9TQlBYUFJfx84Y9Toei6il3EvpioLOIdBCRCGA0MLtyoTEm3xjT1BjT3hjTHlgIDDfGpHkl4iBTUFTKjVPSEIHXx59KjHbrD1inJzchNjKMeTqkrjpBtSZ0Y0wZcDvwJZAJzDTGrBKRR0RkuLcDDGYVFYa7ZmSwKa+Ql6/qR9sm2q0/kEWGhXJutyS+Xr2LsvIKp8NR9ZBb1T1jzFxgbpV5D9RQdvDJh6UAnv16Hd9k7ubh4T04Pbmp0+EoHxia0pxPM7azaPNeBul7rupIe6T4qTnLt/PidxsYfWobxv9Ou/UHi7NPSaJBeKg2u6gTogndD63MyeevHywjtV0jHhmRgoieBA0WDSJCGdwlkS9X7aKiwjgdjqpnNKH7mdyCYiZMSaNxwwheGddfu/UHoSEpzcktKGbJ1n1Oh6LqGc0WfqSkrIJb3k1n76ESJo1PJTFWu/UHo3O7JhERGqKdjFSdaUL3E8YYHpy9krQt+3h6ZG9SWmm3/mAVGxXOGZ2b8sXKnRijzS7KfZrQ/cTUhVuY9us2bh3ciUt6t3Q6HOWwISnNydl/mBU5+U6HouoRTeh+4OeNeTz82WrO75bEXy/s4nQ4yg9c0K0ZoSGizS6qTjShO2zb3kPc9t4SOjaN5j/arV/ZGkVH8LuOTbTZRdWJJnQHHSwu44Z30qgwMHl8KrFR4U6HpPzIkJTmbM4rZN2ug06HouoJTegOqagw/HlGBut3F/DiVX1p3zTa6ZCUn7mwRzNE0E5Gym2a0B3y3/+t56vVu7j/4u6c2VlHnlTHSoqNIrVdI701nXKbJnQHzFuxg+f/t56R/Vtz3aD2Toej/NiQlBas2VnA5rxCp0NR9YAmdB9bvf0Af565jL5tE3jsMu3Wr45vSEpzQJtdlHs0ofvQnoPF3DgljfgG4bw2rj+RYaFOh6T8XKuEBvRuHc+X2uyi3KAJ3UdKyyu49b0l5B0sZtL4/iTFRTkdkqonfp/SnGXZ+eTsP+x0KMrPaUL3kYc/W8WizXt5amQverVOcDocVY8MTbFuCK4nR1VtNKH7wLsLt/Duwq3cdHZHRvRp5XQ4qp7p0DSars1j+ULb0VUtNKF72cJNe3ho9irO6ZLI3b/v6nQ4qp4aktKctC372F1Q5HQoyo9pQveibXsPcet7S2jbpCHPjelLqHbrVydoaEoLjIEvV+1yOhTlxzShe8mhkjJunJJGaXkFr49PJU679auTcEqzGDo2jdarXdRxaUL3AmMMf/1gGet2FfDiVf3omBjjdEiqnhMRfp/SnF827WFfYYnT4Sg/pQndC174dgNzV+zk3qHdOPsU7davPGNoSnPKKwxfZ2qzi6qeJnQP+2LlTp79eh2X923FDWd2cDocFUB6toqnVUIDvXxR1UgTuget2XmAP8/MoHebBP59eU/t1q88SkQYktKcBevzKCgqdToc5Yc0oXvI3sISbpySRkxkGJOu7k9UuHbrV543rFcLSsoreHNBltOhKD+kCd0DSssruO29Jew6UMxrV/enmXbrV17St20jhvduyYvfrWf9rgKnw1F+RhO6Bzw6ZzW/bNrD45f1pG/bRk6HowLcg5d0JyYyjLs/XE55hd6eTv1GE/pJmv7rVt75ZQs3ntmBK/q3djocFQSaxETy4CU9WLp1P+/8nOV0OMqPaEI/CYuz9vLPT1dy1imJ3DO0m9PhqCAyok9LzumSyNNfrmXb3kNOh6P8hCb0E5Sz/zC3vJtO60YNeWG0dutXviUiPHZZT0IE7vt4BcZo04vShH5CDpeUM2FKGsWlFUwen0p8Q+3Wr3yvZUID7hnalR/X5zErPdvpcJQfcCuhi8gQEVkrIhtE5J5qlv9ZRFaLyHIR+Z+ItPN8qP7BGMPfZi1j9Y4DPD+mL8lJ2q1fOWfswHac2r4Rj36eqSMxqtoTuoiEAi8BQ4HuwBgR6V6l2FIg1RjTC5gFPOXpQP3Fy/M3Mmf5Du7+fVfO6ZrkdDgqyIWECE9c0YvDpeU8NHuV0+Eoh7lTQx8AbDDGbDLGlADTgRGuBYwx3xljKs/MLAQC8nKPb1bv4pmv1jKiT0tuPruj0+EoBUCnxBgmnteZuSt26rAAQc6dhN4K2OYynW3Pq8n1wLzqFojIBBFJE5G03Nxc96P0A+t3FfCnGRn0bBXPk1f00m79yq9MOKsj3VvE8c9PV5J/SIcFCFYePSkqIuOAVODp6pYbYyYZY1KNMamJifVnFML9h0q4YUoaUeGhvKbd+pUfCg8N4amRvdhbWMK/52Y6HY5yiDsJPQdo4zLd2p53FBE5H7gfGG6MKfZMeM4rK6/g9veXsmN/Ea9d3Z8W8Q2cDkmpaqW0iufGMzsyI20bP23Iczoc5QB3EvpioLOIdBCRCGA0MNu1gIj0BV7DSua7PR+mcx6bm8mCDXk8elkK/dtpt37l3/50fmc6NI3m3o9WcKikzOlwlI/VmtCNMWXA7cCXQCYw0xizSkQeEZHhdrGngRjgAxHJEJHZNWyuXpmZto23fsrij4Pac2Vqm9pXUMphUeGhPHF5T7buPcSzX61zOhzlY2HuFDLGzAXmVpn3gMvz8z0cl+PSt+zjHx+v5Izkptx/kXbrV/XHwI5NGDuwLW/+tJlhvVvSp02C0yEpH9GeotXYkX+Ym6am0yIhihev6ktYqB4mVb/cM7QrzeKi+Pus5ZSUVTgdjvIRzVRVFJWWM2FKOkWl5bw+PpWEhhFOh6RUncVGhfPopSms3VXAK/M3Oh2O8hFN6C6MMfz9w+Ws3J7Pf0f1oXOzWKdDUuqEndetmd4MI8hoQnfx2g+b+DRjO3+9sAvnd2/mdDhKnTS9GUZw0YRu+3bNLp78Yg3DerXg1sGdnA5HKY9wvRnGlF+ynA5HeZkmdGDD7gImTsuge4s4nh7ZW7v1q4BSeTOMp77Qm2EEuqBP6PmHSrlxSjqR4SFMGp9Kgwjt1q8Ci94MI3gEdUIvrzDcMX0p2fsO8cq4/rRK0G79KjC53gzjwyXHjNyhAkRQJ/Qn5mXyw7pc/jUihVPbN3Y6HKW8qvJmGP+as5qsvEKnw1FeELQJ/cP0bCb/uJlrfteO0QPaOh2OUl4XEiI8eUUvAC55cQHfrN7lcETK04IyoS/duo97P17B7zo24R/Dqt58SanA1TExhjl3nEG7Jg25YUoaT32xhrJy7UkaKIIuoe86UMRNU9NpFhfJy2P7Ea7d+lWQadO4IbNuPp0xA9rw8vyNjH/zV/IOBsyI10EtqLJZUWk5E6amc7C4jMnjU2kUrd36VXCKCg/l8ct78dTIXqRv2cfFz/9I+pa9ToelTlLQJHRjDPd9tIJl2/bz7JV96No8zumQlHLclalt+OjW04kMC2XUawt566fNelljPRY0Cf31Hzfz0dIc/nzBKQxJae50OEr5jR4t4/nsjjMY3CWJhz9bzR3TllJYrDfHqI+CIqF/vy6Xx+dlclHP5txxbrLT4Sjld+IbhDPp6v78fUhX5q7YwfAXF+iAXvVQwCf0TbkHuf39JXRpHsczf9Bu/UrVJCREuGVwJ969YSD5h0sZ8dJPzF623emwVB0EdEI/UFTKDVPSCA8NYfL4/jSMcOsGTUoFtdM7NWXOHWfSrUUcd05bykOzV+lNMuqJgE3o5RWGO6ctZeueQ7wyth+tGzV0OiSl6o3m8VFMn3Aa1w3qwNs/ZzF60i/syD/sdFiqFgGb0J/6cg3z1+by0PAeDOzYxOlwlKp3wkNDeOCS7rx4VV/W7izg4ucX8NOGPKfDUscRkAn9k6U5vPb9JsYObMu409o5HY5S9dqwXi359PYzaBIdwdVvLOLFb9dTqr1L/VLAJfTl2fv5+4fLGdihMQ9e0sPpcJQKCMlJMXxy2yCG9WrJM1+t43ePf8vjczPZmHvQ6dCUC3GqE0FqaqpJS0vz6DZ3Hyhi+Is/ERoizL59EE1iIj26faWCnTGG79buZtqv2/h2zW7KKwyp7Rpx5altuLhnC6Ij9cIDbxORdGNMarXLAiWhF5eVM2bSQjJ3FPDhLafTvaX2BFXKm3YXFPHRkhxmLt7GprxCoiNCuaR3S/6Q2oZ+bRP0EmEvCfiEbozhb7OWMys9m1fG9mNozxYe2a5SqnbGGNK37GPG4m3MWb6Dw6XldE6K4crUNlzWrxVN9ZeyRwV8Qn9jwWb+NWc1d57XmT9fcIpHtqmUqruDxWXMWbadGWnbWLp1P2EhwvndmjHq1DacdUoioSFaaz9ZAZ3Qf1yfyzVv/soF3Zvxytj+hOgHRim/sH5XATMWb+OjpTnsLSyheVwUI/u35g+prWnXJNrp8OqtgE3oWXmFjHjpJ5rHRfHRrafrCRml/FBJWQX/y9zFzLRtfL8ulwoDLeOj6NEqnh4t40hpGU+PVnE0j4vSdnc3HC+h19sMWGB36w8ReP2aVE3mSvmpiLAQhvZswdCeLdiRf5jPl+9geXY+K7fn803mLirrlE2iI+jeMo4UO9H3aBlPu8YN9Vd3HdTLLFhRYbhrRgab8wqZev0A2jTWbv1K1Qct4htww5kdj0wXFpeRueMAq7YfYGVOPqu2H2DyD5soq7CyfExkGN1bxNGjlZXgU1rF0SkxRu80VgO3ErqIDAGeA0KB140xT1RZHglMAfoDe4BRxpgsz4b6m//7ei3fZO7mkRE9OL1TU2/tRinlZdGRYaS2b0xq+8ZH5hWXlbN+10FWbc9nZc4BVm3PZ9qvWykqtXqnRoSG0Cw+ksSYSJJio0iKiyQpNpLEWGs6MTaSpLhImkRHBt1J2FoTuoiEAi8BFwDZwGIRmW2MWe1S7HpgnzEmWURGA08Co7wR8GfLtvPSdxsZM6ANV2u3fqUCTmRYKCmt4klpFc+oU6155RWGzXkHWZlzgMydB9iVX8TugmI25B7kl017yD9cesx2QgSaxFjJvmrCj2sQRsOIMKIjwoiODCU6MoyGEaHERFrzI8Lq5y8Ad2roA4ANxphNACIyHRgBuCb0EcBD9vNZwIsiIsYLZ1ybREdwQfdmPDw8RU+gKBUkQkOE5KRYkpNiuZRWxywvKi0nt6CY3QXF5BYUk1tgJfzdB4rJPVjM7oIiVm0/QN7BYircyEoRoSE0jAw9kvAbRoTZyd5K/pFhIYSH2o8wISL0t+mIsBAiQsVl+W/TEfZ6HZtGkxQX5fHj5E5CbwVsc5nOBgbWVMYYUyYi+UATwONDs52e3JTTk7WZRSn1m6jwUNo0bljr+bTyCsPewhIKi8s4WFzGoZJyCkvKKCwu41Dxb88LS8o5VFzGweJyDpVY04XFZeQdLOZQSTklZRWUlldQUlZBSbn1qEv19dFLU7wycKBPT4qKyARgAkDbtm19uWullCI0REi0m188rbzCUFpeQbGd7EvLKygtM1bCd5lXUl5Bh6beuQ7fnYSeA7RxmW5tz6uuTLaIhAHxWCdHj2KMmQRMAus69BMJWCml/FFoiBAaEkpUeKhjMbjT8r8Y6CwiHUQkAhgNzK5SZjZwjf18JPCtN9rPlVJK1azWGrrdJn478CXWZYtvGmNWicgjQJoxZjbwBjBVRDYAe7GSvlJKKR9yqw3dGDMXmFtl3gMuz4uAP3g2NKWUUnVRPy+2VEopdQxN6EopFSA0oSulVIDQhK6UUgHCsfHQRSQX2HKCqzfFC71QPUjjOzka38nz9xg1vhPXzhiTWN0CxxL6yRCRtJoGePcHGt/J0fhOnr/HqPF5hza5KKVUgNCErpRSAaK+JvRJTgdQC43v5Gh8J8/fY9T4vKBetqErpZQ6Vn2toSullKpCE7pSSgUIv07oIjJERNaKyAYRuaea5ZEiMsNevkhE2vswtjYi8p2IrBaRVSIysZoyg0UkX0Qy7McD1W3LizFmicgKe99p1SwXEXnePn7LRaSfD2Pr4nJcMkTkgIj8qUoZnx8/EXlTRHaLyEqXeY1F5GsRWW//bVTDutfYZdaLyDXVlfFCbE+LyBr7/ftYRBJqWPe4nwUvx/iQiOS4vI8X1bDucb/vXoxvhktsWSKSUcO6PjmGJ8UY45cPrKF6NwIdgQhgGdC9SplbgVft56OBGT6MrwXQz34eC6yrJr7BwBwHj2EW0PQ4yy8C5gECnAYscvC93onVYcLR4wecBfQDVrrMewq4x35+D/BkNes1BjbZfxvZzxv5ILYLgTD7+ZPVxebOZ8HLMT4E/NWNz8Bxv+/eiq/K8v8DHnDyGJ7Mw59r6EduTm2MKQEqb07tagTwjv18FnCe+OjO0caYHcaYJfbzAiATqrl7rX8bAUwxloVAgoi0cCCO84CNxpgT7TnsMcaYH7DG9Hfl+jl7B7i0mlV/D3xtjNlrjNkHfA0M8XZsxpivjDFl9uRCrDuKOaaG4+cOd77vJ+148dm540pgmqf36yv+nNCruzl11YR51M2pgcqbU/uU3dTTF1hUzeLficgyEZknIj18GxkG+EpE0u37uVblzjH2hdHU/CVy8vhVamaM2WE/3wk0q6aMPxzL67B+cVWnts+Ct91uNwu9WUOTlT8cvzOBXcaY9TUsd/oY1sqfE3q9ICIxwIfAn4wxB6osXoLVjNAbeAH4xMfhnWGM6QcMBW4TkbN8vP9aiXVbw+HAB9Usdvr4HcNYv7397lpfEbkfKAPeq6GIk5+FV4BOQB9gB1azhj8aw/Fr537/ffLnhF6Xm1Mjx7k5tbeISDhWMn/PGPNR1eXGmAPGmIP287lAuIg09VV8xpgc++9u4GOsn7Wu3DnG3jYUWGKM2VV1gdPHz8WuyqYo++/uaso4dixF5FpgGDDW/odzDDc+C15jjNlljCk3xlQAk2vYt6OfRTt/XA7MqKmMk8fQXf6c0P365tR2e9sbQKYx5tkayjSvbNMXkQFYx9sn/3BEJFpEYiufY508W1ml2GxgvH21y2lAvkvTgq/UWCty8vhV4fo5uwb4tJoyXwIXikgju0nhQnueV4nIEOBuYLgx5lANZdz5LHgzRtfzMpfVsG93vu/edD6wxhiTXd1Cp4+h25w+K3u8B9ZVGOuwzn7fb897BOvDCxCF9VN9A/Ar0NGHsZ2B9dN7OZBhPy4CbgZutsvcDqzCOmO/EDjdh/F1tPe7zI6h8vi5xifAS/bxXQGk+vj9jcZK0PEu8xw9flj/XHYApVjtuNdjnZf5H7Ae+AZobJdNBV53Wfc6+7O4Afijj2LbgNX2XPkZrLzqqyUw93ifBR8ev6n252s5VpJuUTVGe/qY77sv4rPnv135uXMp68gxPJmHdv1XSqkA4c9NLkoppepAE7pSSgUITehKKRUgNKErpVSA0ISuApaIJIjIrSew3n3eiEcpb9OrXFTAsodkmGOMSanjegeNMTHeiUop79EaugpkTwCd7OFOn666UERaiMgP9vKVInKmiDwBNLDnvWeXGyciv9rzXhORUHv+QRH5j1jDJ/9PRBJ9+/KUOprW0FXAqq2GLiJ/AaKMMY/ZSbqhMabAtYYuIt2whs+93BhTKiIvAwuNMVNExADjjDHviTVWe5Ix5nafvDilqhHmdABKOWgx8KY9Js8nxpiMasqcB/QHFtujEDTgt7FcKvht7I93gWPG81HKl7TJRQUtY42NfRbWIFBvi8j4aooJ8I4xpo/96GKMeaimTXopVKXcogldBbICrLtJVUtE2mGNfz0ZeB3rTjYApXatHawxXEaKSJK9TmN7PbC+PyPt51cBCzwcv1J1ogldBSxjzB7gJ/uE5zEnRbFucbdMRJYCo4Dn7PmTgOUi8p4xZjXwD6wbGyzHuhNR5eiBhcAAse5PeS7WwHFKOUZPiip1gvTyRuVvtIaulFIBQmvoKuCJSE+sMbldFRtjBjoRj1LeogldKaUChDa5KKVUgNCErpRSAUITulJKBQhN6EopFSA0oSulVIDQhK6UUgHi/wGCgCtxsdwxzgAAAABJRU5ErkJggg==",
"text/plain": [
""
]
@@ -4032,7 +4032,7 @@
},
{
"data": {
- "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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\n",
+ "image/png": "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+eYbVq9efWSdAwcOcPDgQfLz87nmmmtYv349InLkDko//PADd955JwC9evWiV69ebr2mWl+zR7aiVD0wKz2b1xds5trT2zN6QNuT3l5ibCRxUWF6YtQNVc9RVE5HR0ef9LaOZ/To0bz44os0btyY1NRUYmOrvyy1UaNGLFu2jC+//JJXX32VmTNn8uabb7ode0VFBQsXLiQq6uimt9tvv51zzjmHjz/+mKysLAYPHux27CdCm1xUUFiydR/3fbSC0zs14f6Lu3lkmyKiY7q4aevWrfzyyy8AvP/++5xxxhlHLR8wYADff/89eXl5lJeXM23aNM4++2zASpazZs2qcV1XsbGxFBT81tnr7LPPZsmSJUyePLnG5haAvLw8KioquOKKK3j00UdZsmTJkWUzZswArJEc4+PjiY+PP2b9Cy+88KixZCpvwJGfn0+rVq0A64RtpbPOOov3338fgJUrV7J8+fIaY6sLTegq4O3ML+Kmqek0j4/ipav6efQuQ8n2mC7q+Lp06cJLL71Et27d2LdvH7fccstRy1u0aMETTzzBOeecQ+/evenfvz8jRowArJrwr7/+SkpKCt9++y0PPPBAjfu59tprufnmm+nTpw+HDx8mNDSUYcOGMW/ePIYNG1bjejk5OQwePJg+ffowbtw4Hn/88SPLoqKi6Nu3LzfffDNvvPFGtes///zzpKWl0atXL7p3786rr74KwN133829995L3759j7oa5pZbbuHgwYN069aNBx54gP79+9d+EN0gTl1ylZqaajxx3aVSx1NUWs6o135hw+6DfHTrILo0d68nqLsm/7CJx+ZmsvSfF9AouvYhA3wtMzOTbt0884vkRGVlZTFs2LAj45rXJ4MHD+aZZ54hNTXVkf1X9/6JSLoxptqAtIauApYxhns/WsGy7Hz+M6qPx5M5uI7porV05Tw9KaoC1uQfN/Hx0hz+fMEpXNijuVf24Tqmy6knedVMoHK965Cn3Hbbbfz0009HzZs4caJb9xIdOHAgxcXFR82bOnUqPXv2PKbs/PnzTypOX9OErgLSd2t388S8NVzUszl3nJvstf20SmhAg/BQPTHqYy+99NIJr7to0SIPRuJftMlFBZyNuQe5c9pSujSP45k/9D6hbv3uCgkROiZG+3WTiw5NUD+dyPumCV0FlPzDpdz4ThoRoSFMHt+fhhHe/xHa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",
"text/plain": [
""
]
@@ -4044,7 +4044,7 @@
},
{
"data": {
- "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4dO7JlyxbuvPNOLrnkEi666KJjy8on+ho8eDCHDh3i4MGDAIwYMYJ69awKwbfffsvatWuPrXPo0CEOHz5Mbm4u1157LRs3bkREjl1B6YcffuCuu+4CoFevXvTq1cut11Tta/bIVpSqA2anZvLGoq1cd2Z7xgxoW+vtNY2NpEFUmHaMuqFiH0X54+jo6Fpv62TGjBnDSy+9RKNGjUhOTiY2tvLTUhs2bMiKFSv46quveO2115g1axZvvfWW27GXlZWxePFioqKOb3q74447OPfcc/nkk0/IyMhgyJAhbsd+KrTJRQWFZdsPcP/HqzizU2MeuKSbR7YpIjqni5u2b9/OL7/8AsAHH3zAWWedddzyAQMG8P3335OTk0NpaSnTp0/nnHPOAaxkOXv27CrXdRUbG0te3m+Dvc455xyWLVvGlClTqmxuAcjJyaGsrIwrr7ySxx57jGXLlh1bNnPmTMCayTEuLo64uLgT1r/ooouOm0um/AIcubm5tGrVCrA6bMsNHjyYDz74AIDVq1ezcuXKKmOrCU3oKuDtzi3g5mmpNI+L4uWr+3n0KkOJ9pwu6uS6dOnCyy+/TLdu3Thw4AC33nrrcctbtGjBk08+ybnnnkvv3r3p378/I0eOBKya8K+//kpSUhILFizgwQcfrHI/1113Hbfccgt9+vTh6NGjhIaGMnz4cObPn8/w4cOrXC8rK4shQ4bQp08fxo8fzxNPPHFsWVRUFH379uWWW27hzTffrHT9F154gZSUFHr16kX37t157bXXALj33nv5+9//Tt++fY87G+bWW2/l8OHDdOvWjQcffJD+/ftXfxDdIE6dcpWcnGw8cd6lUidTUFzK6Nd/YdPew3x82yC6NHdvJKi7pvywhcfnpbP8nxfSMLr6KQN8LT09nW7dPPOL5FRlZGQwfPjwY/Oa1yVDhgzh2WefJTk52ZH9V/b+iUiqMabSgLSGrgKWMYa/f7yKFZm5/Gd0H48nc3Cd00Vr6cp52imqAtaUH7fwyfIs/nThaVzUo7lX9uE6p8vptTxrJlC5XnXIU26//XZ++umn456bNGmSW9cSHThwIIWFhcc9N23aNHr27HlC2YULF9YqTl/ThK4C0nfr9/Lk/HVc3LM5d56X6LX9tIqvR73wUO0Y9bGXX375lNddsmSJByPxL9rkogLO5uzD3DV9OV2aN+DZP/Q+pWH97goJETo2jfbrJhedmqBuOpX3TRO6Cii5R4u56d0UIkJDmDKhP/UjvP8jtHNCDJv9dLRoVFQU+/bt06Rexxhj2Ldv3wnntVdHm1xUwCgtM9w1fTnb9x/hg5vOoHXD+j7Zb2JCDJ+m7SS/sIToSP/6SrVu3ZrMzEyys7OdDkXVUFRUFK1bt67ROv716VOqFp7+ch3fb8jm8cuTGNDBdx2UiQnW2TObsw/Tq3W8z/brjvDwcDp06OB0GMpHtMlFBYRPlmfy+g9bGH9GW8YNbOfTff82p4t/Nruo4KEJXdV5K3Yc5G8frWJgh0aOTEDVrnF9wkLErztGVXDQhK7qtL2HCpg4LYWmMZG8Ms6zw/rdFR4aQocm0VpDV47ThK7qrILiUiZOSyWvoIQ3rk2mcUykY7HonC7KH2hCV3WSMYYHPllN2o6DPHdVb7q1aOBoPJ0TYti2L5/CEs9cSk2pU+FWQheRoSKyXkQ2ich9lSxvKyLfichyEVkpIhd7PlSlfvPmoq18tCyTSed3ZmhSC6fDoVNCDGUGtubkOx2KCmLVJnQRCQVeBoYB3YGxItK9QrF/ALOMMX2BMcArng5UqXI/bMjm3/PS+X2PZkw6v7PT4QDHz+milFPcqaEPADYZY7YYY4qAGcDICmUMUP6bNw7w7WW3VdDYmpPPHR8s47RmsTx3VR9CQrw3rL8mOjWNQURPXVTOciehtwJ2uDzOtJ9z9TAwXkQygXnAnZVtSEQmikiKiKToyDVVU3kFxdw0NYXQEGHKhGS/GpUZFR5Km4b19dRF5ShPdYqOBd4xxrQGLgamicgJ2zbGTDbGJBtjkssvBquUO0rLDJNmpJGRk88r4/rTppFvhvXXhD/P6aKCgzsJPQto4/K4tf2cqxuAWQDGmF+AKMD/L4Ou6oxnv17PgnV7eejS7vyuU2Onw6lUYkIMW7LzKSktczoUFaTcSehLgc4i0kFEIrA6PedUKLMdOB9ARLphJXRtU1Ee8VlaFq8u3MzYAW0Zf4Zvh/XXRKeEGIpKy9hx4KjToaggVW1CN8aUAHcAXwHpWGezrBGRR0VkhF3sz8BNIrICmA5cZ3S+TuUBqzJzuXf2Sga0b8QjI3p4dW7z2up8bE6XvGpKKuUdbvUqGWPmYXV2uj73oMv9tcAgz4amgt3ePGtYf5OYSF4Z34+IMP8eB9fJ5fqiFzkciwpO/nOagFIuCktKufW9ZRw4UsRHt55JEweH9burQVQ4zRtE6bnoyjGa0JXfMcbw4KdrSN12gJeu7kuPlnFOh+S2xIQYTejKMf79G1YFpXd/zmBmyg7uPC+R4b1aOh1OjZQndO1CUk7QhK78yk+bcvjXF+lc2L0Z91xwmtPh1FhiQgxHikrZmVvgdCgqCGlCV35j2758bnt/GZ2aRvOf0f4zrL8mdE4X5SRN6MovHC4s4aapKYjAlAnJxPjRsP6a6KwJXTmobn5rVEApKzPcMzONzdn5TL1+AO0aRzsd0ilrHBNJw/rhbNqr56Ir39MaunLcf77dwDdr9/CPS7oxKLHuzxihZ7oop2hCV476YuUuXlywiauSW3Pdme2dDscjEhNi2ahnuigHaEJXjlmdlcufP0yjf7uG/OuyJL8e1l8TiQkxHDxSzL78IqdDUUFGE7pyRM7hQiZOTaFh/QheG9+fyLBQp0PyGO0YVU7RhK58rqikjFvfS2VffhGTr0mmaaz/D+uvifJTFzdqQlc+pme5KJ8yxvDQnDUszTjA82P60LN13RnW764WcVFER4TqxS6Uz2kNXfnUe4u3Mf3X7dw6pBMj+1S8kmFgEBESE2LYqKcuKh/ThK585pfN+3jk87Wc1zWBv1zUxelwvKqTnrqoHKAJXfnEjv1HuO39VNo1rs9/x/QhtA4O66+Jzgmx7DlUyKGCYqdDUUFEE7ryunx7WH9pmeGNa0+nQVS40yF5nc7popygCV15VVmZ4U+z0tiwJ4+Xru5HhyZ1d1h/Teipi8oJmtCVVz3/v418tWYP91/cjcGnNXU6HJ9p06g+EWEhmtCVT2lCV14zf9Uunv/fRq7s15obzurgdDg+FRoidGwSrQld+ZQmdOUV6bsO8adZK+jTJp7HLw+cYf01oZN0KV/ThK48bn9+ETdNTaFBvTAmX9OfqPDAGdZfE4kJMew4cISC4lKnQ1FBQhO68qji0jJuez+VvXmFTL4mmYQGUU6H5JjOCbEYA5uztZaufEMTuvKoRz9fy+It+3nqyp70bhPvdDiO0lMXla9pQlce8/6SbUxbvI2bB3fk8r6tnQ7Hce2b1CdENKEr39GErjxiyZZ9PPTZGoZ0acq9Q7s6HY5fiAwLpX3jaDbu0YSufEMTuqq1zANHuPX9ZbRtXJ/nx/QN+GH9NdEpIYZN2oaufEQTuqqVI0Ul3DQ1leLSMqZMSCauXuAP66+JzgkxZOTkU1xa5nQoKghoQlenzBjDXz9cybrdh3hhbF86NY1xOiS/k5gQQ0mZYdu+fKdDUUFAE7o6ZS8t2MQXq3Zx39CunNslwelw/JKe6aJ8ya2ELiJDRWS9iGwSkfuqKHOViKwVkTUi8oFnw1T+5us1u/m/bzZwed9WTBzc0elw/Fb5rxbtGFW+UO0l6EQkFHgZuBDIBJaKyBxjzFqXMp2BvwODjDEHRESrawFs/e487pmZRu/WcTxxRc+gHNbvrujIMFrF19OOUeUT7tTQBwCbjDFbjDFFwAxgZIUyNwEvG2MOABhj9no2TOUvDuQXcePUpURHhvH6NclBO6y/JnROF+Ur7iT0VsAOl8eZ9nOuTgNOE5GfRGSxiAz1VIDKfxSXlnH7B8vYk1vIa9f0p3lc8A7rr4nEhBg2Zx+mrMw4HYoKcJ7qFA0DOgNDgLHAFBGJr1hIRCaKSIqIpGRnZ3to18pXHv8inZ837+PfV/SkX9uGTodTZyQmxFBQXEbWwaNOh6ICnDsJPQto4/K4tf2cq0xgjjGm2BizFdiAleCPY4yZbIxJNsYkN20aPBc7CAQzl27nnZ8zuOGsDozqr8P6a6L86kUb9+Y5HIkKdO4k9KVAZxHpICIRwBhgToUyn2LVzhGRJlhNMFs8F6ZyUkrGfv7x6WrO7tyEvw/TYf01pacuKl+pNqEbY0qAO4CvgHRgljFmjYg8KiIj7GJfAftEZC3wHfBXY8w+bwWtfGfnwaPc8l4qreLr8dLYfoSF6tCFmoqvH0GTmEhN6Mrrqj1tEcAYMw+YV+G5B13uG+BP9k0FiKNFpUyclkJBcRkzJiYTV1+H9Z+qxIRoNmpCV16m1S1VKWMMf529gjU7D/HC2D4kJsQ6HVKdVn7qolX3Uco7NKGrSr2ycDNzV+7ir7/vwnldmzkdTp3XOSGWvIIS9uYVOh2KCmCa0NUJvl27h2e/Xs+I3i259ZxOTocTELRjVPmCJnR1nI178rh7Zho9WjbgqSt76bB+D+msCV35gCZ0dUzukWJumppCVHgok69Jpl6EDuv3lKaxkcRGhem56MqrNKErAEpKy7hj+jKyDh7l9Wv60TK+ntMhBRQR0TldlNdpQlcAPDF/HT9uzOHxy3rSv10jp8MJSJ01oSsv04Su+DBlB28u2sp1Z7bnqtPbVL+COiWJCTHkHC7i4JEip0NRAUoTepBL3XaABz5ZzaDExvzjkm5OhxPQOtvn8mstXXmLJvQgtju3gFveS6V5XJQO6/eBxGOTdGlCV97h1tB/FXgKiq1h/UcKS3j/xoE0jI5wOqSA1yq+HlHhIVpDV16jCT0IGWO476OVrMrKZfI1yZzWTIf1+0JIiNCpaYzW0JXX6G/sIDT5hy18mraTP194Ghd212H9vpSYEMNmTejKSzShB5nv1u3lyS/XcUmvFtx+bqLT4QSdzgkxZB08Sn5hidOhqACkCT2IbNp7mLumL6db8wY8M0qH9TtBO0aVN2lCDxK5R4uZODWFiLAQplybTP0I7T5xQr92DRGBhev3Oh2KCkCa0INAaZnhrunL2XHgCK+O708rHdbvmITYKJLbNeTL1budDkUFIE3oQeCpL9fx/YZsHhmRxIAOOqzfaUOTWrBudx5bc/KdDkUFGE3oAe7jZZlM/mELE37XjqsHtnU6HAUMTWoOoLV05XGa0ANY2o6D3PfxKn7XsTH/HN7d6XCUrVV8PXq3juPL1bucDkUFGE3oAWrPoQJunpZCQmwkL4/rR7gO6/crQ5NasCIzl6yDR50ORQUQ/ZYHIGtYfyp5BSW8cW0yjXRYv9/RZhflDZrQA4wxhvs/WcWKHQd57qo+dG3ewOmQVCU6NImma/NYbXZRHqUJPcC8uWgrHy/L4u4LOh+rBSr/NDSpOSnbDrA3r8DpUFSA0IQeQL7fkM2/56UzLKk5d53X2elwVDWGJbXAGPh6zR6nQ1EBQhN6gNiak8+dHyzjtGaxPPuH3oSE6LB+f3dasxg6NonWdnTlMZrQA8ChgmJufHcpYaEhTJmQTHSkDuuvC0SE3yc155ct+ziQr5elU7WnCb2OKy0z3D0jjW37jvDKuH60aVTf6ZBUDQxLak5pmeGbdG12UbWnCb2Oe+ar9SxYt5eHRvTgjI6NnQ5H1VDPVnG0iq+nzS7KIzSh12GfpWXx2vebuXpgW645o53T4ahTICIMTWrOoo055BUUOx2OquM0oddRKzMPcu/slQxo34iHL+3hdDiqFoYlNaeotIwF63RKXVU7biV0ERkqIutFZJOI3HeScleKiBGRZM+FqCram1fAxKmpNImJ5JXx/YgI0//LdVm/tg1pGhupzS6q1qrNBCISCrwMDAO6A2NF5ISZnkQkFpgELPF0kOo3hSWl3DItldyjxUye0J8mMZFOh6RqKSRE+H2PZixcn83RolKnw1F1mDtVuwHAJmPMFmNMETADGFlJuX8BTwE67M1LjDH889PVLNt+kP+7qjc9WsY5HZLykGFJLThaXMr3G7TZRZ06dxJ6K2CHy+NM+7ljRKQf0MYY84UHY1MVvPNzBrNSMrnrvEQu7tnC6XCUBw3s0IiG9cOZr80uqhZq3fgqIiHAc8Cf3Sg7UURSRCQlOzu7trsOKos25vDYF+lc1L0Zd19wmtPhKA8LCw3hwu7NWJC+l8ISbXZRp8adhJ4FtHF53Np+rlwskAQsFJEM4AxgTmUdo8aYycaYZGNMctOmTU896iCTkZPP7R8so1PTaJ4b3UeH9QeoYUktyCss4edN+5wORdVR7iT0pUBnEekgIhHAGGBO+UJjTK4xpokxpr0xpj2wGBhhjEnxSsRBJq+gmJumpiACb0w4nRgd1h+wzkxsTGxkGPN1Sl11iqpN6MaYEuAO4CsgHZhljFkjIo+KyAhvBxjMysoM98xMY0tOPq9c3Y+2jXVYfyCLDAvlvG4JfLN2DyWlZU6Ho+ogt6p7xph5wLwKzz1YRdkhtQ9LATz3zQa+Td/LIyN6cGZiE6fDUT4wLKk5n6XtZMnW/QzS91zVkI5I8VNzV+7kpe82Meb0Nkz4nQ7rDxbnnJZAvfBQbXZRp0QTuh9anZXLXz5cQXK7hjw6MgkR7QQNFvUiQhnSpSlfrdlDWZlxOhxVx2hC9zPZeYVMnJpCo/oRvDq+vw7rD0JDk5qTnVfIsu0HnA5F1TGaLfxIUUkZt76Xyv4jRUyekEzTWB3WH4zO65pARGiIDjJSNaYJ3U8YY3hozmpSth3gmVG9SWqlw/qDVWxUOGd1bsKXq3djjDa7KPdpQvcT0xZvY/qvO7htSCcu7d3S6XCUw4YmNSfr4FFWZeU6HYqqQzSh+4GfN+fwyOdruaBbAn+5qIvT4Sg/cGG3ZoSGiDa7qBrRhO6wHfuPcPv7y+jYJJr/6LB+ZWsYHcHvOjbWZhdVI5rQHXS4sIQb302hzMCUCcnERoU7HZLyI0OTmrM1J58New47HYqqIzShO6SszPCnmWls3JvHS1f3pX2TaKdDUn7moh7NEEEHGSm3aUJ3yH//t5Gv1+7hgUu6c3ZnnXlSnSghNorkdg310nTKbZrQHTB/1S5e+N9GRvVvzfWD2jsdjvJjQ5NasG53Hltz8p0ORdUBmtB9bO3OQ/xp1gr6to3n8ct1WL86uaFJzQFtdlHu0YTuQ/sOF3LT1BTi6oXz+vj+RIaFOh2S8nOt4uvRu3UcX2mzi3KDJnQfKS4t47b3l5FzuJDJE/qT0CDK6ZBUHfH7pOasyMwl6+BRp0NRfk4Tuo888vkalmzdz9OjetGrdbzT4ag6ZFiSdUFw7RxV1dGE7gPvLd7Ge4u3c/M5HRnZp5XT4ag6pkOTaLo2j+VLbUdX1dCE7mWLt+zj4TlrOLdLU+79fVenw1F11NCk5qRsO8DevAKnQ1F+TBO6F+3Yf4Tb3l9G28b1eX5sX0J1WL86RcOSWmAMfLVmj9OhKD+mCd1LjhSVcNPUFIpLy3hjQjINdFi/qoXTmsXQsUm0nu2iTkoTuhcYY/jLhyvYsCePl67uR8emMU6HpOo4EeH3Sc35Zcs+DuQXOR2O8lOa0L3gxQWbmLdqN38f1o1zTtNh/cozhiU1p7TM8E26NruoymlC97AvV+/muW82cEXfVtx4dgenw1EBpGerOFrF19PTF1WVNKF70Lrdh/jTrDR6t4nn31f01GH9yqNEhKFJzVm0MYe8gmKnw1F+SBO6h+zPL+KmqSnERIYx+Zr+RIXrsH7lecN7taCotIy3FmU4HYryQ5rQPaC4tIzb31/GnkOFvH5Nf5rpsH7lJX3bNmRE75a89N1GNu7Jczoc5Wc0oXvAY3PX8suWfTxxeU/6tm3odDgqwD10aXdiIsO496OVlJbp5enUbzSh19KMX7fz7i/buOnsDlzZv7XT4agg0Dgmkocu7cHy7Qd59+cMp8NRfkQTei0szdjPPz9bzeDTmnLfsG5Oh6OCyMg+LTm3S1Oe+Wo9O/YfcToc5Sc0oZ+irINHufW9VFo3rM+LY3RYv/ItEeHxy3sSInD/J6swRptelCb0U3K0qJSJU1MoLC5jyoRk4urrsH7ley3j63HfsK78uDGH2amZToej/IBbCV1EhorIehHZJCL3VbL8TyKyVkRWisj/RKSd50P1D8YY/jp7BWt3HeKFsX1JTNBh/co54wa24/T2DXnsi3SdiVFVn9BFJBR4GRgGdAfGikj3CsWWA8nGmF7AbOBpTwfqL15ZuJm5K3dx7++7cm7XBKfDUUEuJER48speHC0u5eE5a5wORznMnRr6AGCTMWaLMaYImAGMdC1gjPnOGFPeM7MYCMjTPb5du4dnv17PyD4tueWcjk6HoxQAnZrGMOn8zsxbtVunBQhy7iT0VsAOl8eZ9nNVuQGYX9kCEZkoIikikpKdne1+lH5g45487p6ZRs9WcTx1ZS8d1q/8ysTBHeneogH//Gw1uUd0WoBg5dFOUREZDyQDz1S23Bgz2RiTbIxJbtq07sxCePBIETdOTSEqPJTXdVi/8kPhoSE8PaoX+/OL+Pe8dKfDUQ5xJ6FnAW1cHre2nzuOiFwAPACMMMYUeiY855WUlnHHB8vZdbCA16/pT4u4ek6HpFSlklrFcdPZHZmZsoOfNuU4HY5ygDsJfSnQWUQ6iEgEMAaY41pARPoCr2Ml872eD9M5j89LZ9GmHB67PIn+7XRYv/Jvd1/QmQ5Novn7x6s4UlTidDjKx6pN6MaYEuAO4CsgHZhljFkjIo+KyAi72DNADPChiKSJyJwqNlenzErZwds/ZfDHQe25KrlN9Sso5bCo8FCevKIn2/cf4bmvNzgdjvKxMHcKGWPmAfMqPPegy/0LPByX41K3HeAfn6zmrMQmPHCxDutXdcfAjo0ZN7Atb/20leG9W9KnTbzTISkf0ZGildiVe5Sbp6XSIj6Kl67uS1ioHiZVt9w3rCvNGkTxt9krKSopczoc5SOaqSooKC5l4tRUCopLeWNCMvH1I5wOSakai40K57HLkli/J49XF252OhzlI5rQXRhj+NtHK1m9M5f/ju5D52axToek1Ck7v1szvRhGkNGE7uL1H7bwWdpO/nJRFy7o3szpcJSqNb0YRnDRhG5bsG4PT325juG9WnDbkE5Oh6OUR7heDGPqLxlOh6O8TBM6sGlvHpOmp9G9RQOeGdVbh/WrgFJ+MYynv9SLYQS6oE/ouUeKuWlqKpHhIUyekEy9CB3WrwKLXgwjeAR1Qi8tM9w5YzmZB47w6vj+tIrXYf0qMLleDOOjZSfM3KECRFAn9Cfnp/PDhmz+NTKJ09s3cjocpbyq/GIY/5q7loycfKfDUV4QtAn9o9RMpvy4lWt/144xA9o6HY5SXhcSIjx1ZS8ALn1pEd+u3eNwRMrTgjKhL99+gL9/sorfdWzMP4ZXvPiSUoGrY9MY5t55Fu0a1+fGqSk8/eU6Skp1JGmgCLqEvudQATdPS6VZg0heGdePcB3Wr4JMm0b1mX3LmYwd0IZXFm5mwlu/knM4YGa8DmpBlc0KikuZOC2Vw4UlTJmQTMNoHdavglNUeChPXNGLp0f1InXbAS554UdSt+13OixVS0GT0I0x3P/xKlbsOMhzV/Wha/MGToeklOOuSm7Dx7edSWRYKKNfX8zbP23V0xrrsKBJ6G/8uJWPl2fxpwtPY2hSc6fDUcpv9GgZx+d3nsWQLgk88vla7py+nPxCvThGXRQUCf37Ddk8MT+di3s2587zEp0ORym/E1cvnMnX9OdvQ7syb9UuRry0SCf0qoMCPqFvyT7MHR8so0vzBjz7Bx3Wr1RVQkKEW4d04r0bB5J7tJiRL//EnBU7nQ5L1UBAJ/RDBcXcODWF8NAQpkzoT/0Ity7QpFRQO7NTE+beeTbdWjTgrunLeXjOGr1IRh0RsAm9tMxw1/TlbN93hFfH9aN1w/pOh6RUndE8LooZE8/g+kEdeOfnDMZM/oVduUedDktVI2AT+tNfrWPh+mweHtGDgR0bOx2OUnVOeGgID17anZeu7sv63Xlc8sIiftqU43RY6iQCMqF/ujyL17/fwriBbRl/Rjunw1GqThveqyWf3XEWjaMjuObNJby0YCPFOrrULwVcQl+ZeZC/fbSSgR0a8dClPZwOR6mAkJgQw6e3D2J4r5Y8+/UGfvfEAp6Yl87m7MNOh6ZciFODCJKTk01KSopHt7n3UAEjXvqJ0BBhzh2DaBwT6dHtKxXsjDF8t34v03/dwYJ1eyktMyS3a8hVp7fhkp4tiI7UEw+8TURSjTHJlS4LlIReWFLK2MmLSd+Vx0e3nkn3ljoSVClv2ptXwMfLspi1dAdbcvKJjgjl0t4t+UNyG/q1jddThL0k4BO6MYa/zl7J7NRMXh3Xj2E9W3hku0qp6hljSN12gJlLdzB35S6OFpfSOSGGq5LbcHm/VjTRX8oeFfAJ/c1FW/nX3LXcdX5n/nThaR7ZplKq5g4XljB3xU5mpuxg+faDhIUIF3RrxujT2zD4tKaEhmitvbYCOqH/uDGba9/6lQu7N+PVcf0J0Q+MUn5h4548Zi7dwcfLs9ifX0TzBlGM6t+aPyS3pl3jaKfDq7MCNqFn5OQz8uWfaN4gio9vO1M7ZJTyQ0UlZfwvfQ+zUnbw/YZsygy0jIuiR6s4erRsQFLLOHq0akDzBlHa7u6GkyX0OpsB8+xh/SECb1ybrMlcKT8VERbCsJ4tGNazBbtyj/LFyl2szMxl9c5cvk3fQ3mdsnF0BN1bNiDJTvQ9WsbRrlF9/dVdA3UyC5aVGe6ZmcbWnHym3TCANo10WL9SdUGLuHrceHbHY4/zC0tI33WINTsPsTorlzU7DzHlhy2UlFlZPiYyjO4tGtCjlZXgk1o1oFPTGL3SWBXcSugiMhR4HggF3jDGPFlheSQwFegP7ANGG2MyPBvqb/7vm/V8m76XR0f24MxOTby1G6WUl0VHhpHcvhHJ7Rsde66wpJSNew6zZmcuq7MOsWZnLtN/3U5BsTU6NSI0hGZxkTSNiSQhNoqEBpEkxEbSNNZ63DQ2koQGkTSOjgy6TthqE7qIhAIvAxcCmcBSEZljjFnrUuwG4IAxJlFExgBPAaO9EfDnK3by8nebGTugDdfosH6lAk5kWChJreJIahXH6NOt50rLDFtzDrM66xDpuw+xJ7eAvXmFbMo+zC9b9pF7tPiE7YQINI6xkn3FhN+gXhj1I8KIjggjOjKU6Mgw6keEEhNpPR8RVjd/AbhTQx8AbDLGbAEQkRnASMA1oY8EHrbvzwZeEhExXuhxbRwdwYXdm/HIiCTtQFEqSISGCIkJsSQmxHIZrU5YXlBcSnZeIXvzCsnOKyQ7z0r4ew8Vkn24kL15BazZeYicw4WUuZGVIkJDqB8Zeizh148Is5O9lfwjw0IID7VvYUJE6G+PI8JCiAgVl+W/PY6w1+vYJJqEBlEeP07uJPRWwA6Xx5nAwKrKGGNKRCQXaAx4fGq2MxObcGaiNrMopX4TFR5Km0b1q+1PKy0z7M8vIr+whMOFJRwpKiW/qIT8whKOFP52P7+olCOFJRwuLOVIkfU4v7CEnMOFHCkqpaikjOLSMopKyigqtW41qb4+dlmSVyYO9GmnqIhMBCYCtG3b1pe7VkopQkOEpnbzi6eVlhmKS8sotJN9cWkZxSXGSvguzxWVltGhiXfOw3cnoWcBbVwet7afq6xMpoiEAXFYnaPHMcZMBiaDdR76qQSslFL+KDRECA0JJSo81LEY3Gn5Xwp0FpEOIhIBjAHmVCgzB7jWvj8KWOCN9nOllFJVq7aGbreJ3wF8hXXa4lvGmDUi8iiQYoyZA7wJTBORTcB+rKSvlFLKh9xqQzfGzAPmVXjuQZf7BcAfPBuaUkqpmqibJ1sqpZQ6gSZ0pZQKEJrQlVIqQGhCV0qpAOHYfOgikg1sO8XVm+CFUagepPHVjsZXe/4eo8Z36toZY5pWtsCxhF4bIpJS1QTv/kDjqx2Nr/b8PUaNzzu0yUUppQKEJnSllAoQdTWhT3Y6gGpofLWj8dWev8eo8XlBnWxDV0opdaK6WkNXSilVgSZ0pZQKEH6d0EVkqIisF5FNInJfJcsjRWSmvXyJiLT3YWxtROQ7EVkrImtEZFIlZYaISK6IpNm3ByvblhdjzBCRVfa+UypZLiLygn38VopIPx/G1sXluKSJyCERubtCGZ8fPxF5S0T2ishql+caicg3IrLR/tuwinWvtctsFJFrKyvjhdieEZF19vv3iYjEV7HuST8LXo7xYRHJcnkfL65i3ZN+370Y30yX2DJEJK2KdX1yDGvFGOOXN6ypejcDHYEIYAXQvUKZ24DX7PtjgJk+jK8F0M++HwtsqCS+IcBcB49hBtDkJMsvBuYDApwBLHHwvd6NNWDC0eMHDAb6AatdnnsauM++fx/wVCXrNQK22H8b2vcb+iC2i4Aw+/5TlcXmzmfByzE+DPzFjc/ASb/v3oqvwvL/Ax508hjW5ubPNfRjF6c2xhQB5RendjUSeNe+Pxs4X3x05WhjzC5jzDL7fh6QDpVcvda/jQSmGstiIF5EWjgQx/nAZmPMqY4c9hhjzA9Yc/q7cv2cvQtcVsmqvwe+McbsN8YcAL4Bhno7NmPM18aYEvvhYqwrijmmiuPnDne+77V2svjs3HEVMN3T+/UVf07olV2cumLCPO7i1ED5xal9ym7q6QssqWTx70RkhYjMF5Eevo0MA3wtIqn29VwrcucY+8IYqv4SOXn8yjUzxuyy7+8GmlVSxh+O5fVYv7gqU91nwdvusJuF3qqiycofjt/ZwB5jzMYqljt9DKvlzwm9ThCRGOAj4G5jzKEKi5dhNSP0Bl4EPvVxeGcZY/oBw4DbRWSwj/dfLbEuazgC+LCSxU4fvxMY67e3353rKyIPACXA+1UUcfKz8CrQCegD7MJq1vBHYzl57dzvv0/+nNBrcnFq5CQXp/YWEQnHSubvG2M+rrjcGHPIGHPYvj8PCBeRJr6KzxiTZf/dC3yC9bPWlTvH2NuGAcuMMXsqLnD6+LnYU94UZf/dW0kZx46liFwHDAfG2f9wTuDGZ8FrjDF7jDGlxpgyYEoV+3b0s2jnjyuAmVWVcfIYusufE7pfX5zabm97E0g3xjxXRZnm5W36IjIA63j75B+OiESLSGz5fazOs9UVis0BJthnu5wB5Lo0LfhKlbUiJ49fBa6fs2uBzyop8xVwkYg0tJsULrKf8yoRGQrcC4wwxhypoow7nwVvxujaL3N5Fft25/vuTRcA64wxmZUtdPoYus3pXtmT3bDOwtiA1fv9gP3co1gfXoAorJ/qm4BfgY4+jO0srJ/eK4E0+3YxcAtwi13mDmANVo/9YuBMH8bX0d7vCjuG8uPnGp8AL9vHdxWQ7OP3NxorQce5POfo8cP657ILKMZqx70Bq1/mf8BG4FugkV02GXjDZd3r7c/iJuCPPoptE1bbc/lnsPysr5bAvJN9Fnx4/KbZn6+VWEm6RcUY7ccnfN99EZ/9/DvlnzuXso4cw9rcdOi/UkoFCH9uclFKKVUDmtCVUipAaEJXSqkAoQldKaUChCZ0FbBEJF5EbjuF9e73RjxKeZue5aIClj0lw1xjTFIN1ztsjInxTlRKeY/W0FUgexLoZE93+kzFhSLSQkR+sJevFpGzReRJoJ793Pt2ufEi8qv93OsiEmo/f1hE/iPW9Mn/E5Gmvn15Sh1Pa+gqYFVXQxeRPwNRxpjH7SRd3xiT51pDF5FuWNPnXmGMKRaRV4DFxpipImKA8caY98Waqz3BGHOHT16cUpUIczoApRy0FHjLnpPnU2NMWiVlzgf6A0vtWQjq8dtcLmX8NvfHe8AJ8/ko5Uva5KKClrHmxh6MNQnUOyIyoZJiArxrjOlj37oYYx6uapNeClUpt2hCV4EsD+tqUpUSkXZY819PAd7AupINQLFdawdrDpdRIpJgr9PIXg+s788o+/7VwCIPx69UjWhCVwHLGLMP+Mnu8DyhUxTrEncrRGQ5MBp43n5+MrBSRN43xqwF/oF1YYOVWFciKp89MB8YINb1Kc/DmjhOKcdop6hSp0hPb1T+RmvoSikVILSGrgKeiPTEmpPbVaExZqAT8SjlLZrQlVIqQGiTi1JKBQhN6EopFSA0oSulVIDQhK6UUgFCE7pSSgUITehKKRUg/h8e0I7CB6bJ1AAAAABJRU5ErkJggg==\n",
+ "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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",
"text/plain": [
""
]
@@ -4056,7 +4056,7 @@
},
{
"data": {
- "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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\n",
+ "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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",
"text/plain": [
""
]
@@ -4068,7 +4068,7 @@
},
{
"data": {
- "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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\n",
+ "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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",
"text/plain": [
""
]
@@ -4080,7 +4080,7 @@
},
{
"data": {
- "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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\n",
+ "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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",
"text/plain": [
""
]
@@ -4092,7 +4092,7 @@
},
{
"data": {
- "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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\n",
+ "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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",
"text/plain": [
""
]
@@ -4104,7 +4104,7 @@
},
{
"data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXQAAAEXCAYAAAC9A7+nAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAAA66klEQVR4nO3dd3hUVfrA8e+bDklIaKH3IC30CK4oYl1QBAsrIIiuBbvoFtfVXdvqWn/u2hWsoFLEhgi2RVRUkARCDZ0ACS2hhBBIP78/7g0OISETMjN3MvN+nmeezMw999537sy8OXPOPeeKMQallFJ1X4jTASillPIMTehKKRUgNKErpVSA0ISulFIBQhO6UkoFCE3oSikVIDShK0QkQ0Qu8PI+2ouIEZEwb+7H20TkbBFZ73Qcrvzl2Pric6ROThO6D4nIWSLys4jkish+EflJRE53Oi7lPmPMj8aYLk7HEUhE5HwRWSciR0TkOxFp58Y659j/xB7zRYx1hSZ0HxGRBsBc4EWgEdAKeAQorOF2RET8+n3zg5pinfoVUBfi9VaMItIE+Bj4J9b3IgWYWc064cDzwBJvxFSX+XViCDCnARhjphtjSo0xR40xXxtjVorIdXZt/SW79r5ORM4vX1FEForI4yLyE3AE6CgiXUXkG7umv15ErnIpf4mILBeRQyKyQ0Qedg1ERK4RkW0isk9EHnAneBEJEZH7RGSzvd4sEWlkLyv/yX+DiGwHFohIqIg8KyI5IrIFuKTC9lqKyBw7/k0icpPLsgEikmLHv0dEnqsmthP2bz9/vYiki8gBEfnKteZnl79FRDaKyEERedn+Zxlhx9TTpWyCXXtsKiJDRCTTjePVz34P8kTkQxGZWV6bLN+GiPxNRHYDb4tIQxGZKyLZdrxzRaS1y/YWisgTIvKrfVw+Kz/+LsaJyHb7mFf7vorIwyIy244tT0SWiUhvl+UZdowrgXwRCRORESKyxj5mC0WkW4XNni4ia+3X8LaIRFUTxhXAGmPMh8aYAuBhoLeIdD3JOn8GvgbWVfcag44xRm8+uAENgH3Au8AwoKHLsuuAEuAeIBwYDeQCjezlC4HtQA8gDIgDdgB/tB/3BXKA7nb5IUBPrH/YvYA9wGX2su7AYWAwEAk8Z+/7gmrinwQsBlrb670OTLeXtQcMMBWIBuoBt2B94dpg1by+s8uE2ev8ALwCRAF9gGzgPHvZL8A19v0Y4IxqYqts/yOBTUA3+xj9A/jZZR2D9YspHmhr73+ovewV4KkKr/1zl2ObWU08EcA2e71wrKRVBDzmso0S4Cn7WNYDGgNXAvWBWOBD4FOXbS4EsoAk+zV+BLxX4fVPsbfVG+uXX7dq4nwYKAZG2XH+BdgKhNvLM4A0+z2sh1UpyQcutMvfax/jCJfyq13e85/KX/NJYngeeLXCc6uBK6so3w7YYH8u3qlu+8F2czyAYLrZyeUdINP+Qs8BmmEl9J2AuJT9ld+S2kLgUZdlo4EfK2z7deChKvb7X+A/9v0HgRkuy6LtZFNdQk8Hznd53MJOBmEuCaWjy/IFwC0ujy+yy4TZX/hSINZl+RPAO/b9H7Cao5q4eVwr2/984AaXxyFYv27a2Y8NcJbL8lnAffb9gVj/QMV+nAJcZd8fQvUJfTBW8nV9PxdxfEIvAqJOso0+wAGXxwuBJ10ed7e3Eery+ltX+PyMqSbOh4HFFY7RLuBs+3EGcL3L8n8CsyqUzwKGuJR3fc8vBjZXE8Obrq/Lfu4n4Loqyn8GjLbvv4Mm9ONu2uTiQ8aYdGPMdcaY1lg1rZZYyRYgy9ifUts2e3m5HS732wED7Z+9B0XkIDAOaA4gIgPF6lzKFpFcrNpyE3vdlq7bMsbkY/1yqE474BOX/aVjJeVmVcTYssLjbRWW7TfG5FVY3sq+fwNWbXCdiCwVkeFuxFdx/+2A513i3Q+Iyz4AdrvcP4JV68MYs8R+PMT+6Z+I9c/XXS058f3cUaFMtrGaGAAQkfoi8rrdFHYI659avIiEVrGNbVi15CYuz1X6eqrh+lkow6psVPW5a4nL+2iX38Hxx7RijK7bqsxhrF+vrhoAeRULisilWJWAk7axBzNN6A4xxqzDqmEk2U+1EhFxKdIWq9Z+bBWX+zuA740x8S63GGPMrfbyD7ASUBtjTBzwGlYyA6sG1qZ8QyJSH+vnfnV2AMMq7DPKGJNVRYzH7cd+PeV2Ao1EJLbC8iwAY8xGY8xYIAGrWWK2iES7EWPFY3RzhXjrGWN+dmM7YDWNjQeuAWa7Jl837OLE97NNhTIVpzn9M9AFGGiMaYBVy4ff3reK22iL9QsppwZxVcb1sxCC1aRW1eduJ9Y/yvLyYq/v+hmoGKPrtiqzBquJqHyb0UAn+/mKzgeSRWS33fcwGrhbRD6rZh9BQxO6j4jVifnn8o4uEWkDjMVqlwYred0lIuEi8ges5pl5VWxuLnCaWJ2b4fbtdJcOqlisGnCBiAwArnZZdzYwXKxTKCOAR3Hvc/Aa8Hh5x6LdQTjyJOVn2a+ntYg0BO4rX2CM2QH8DDwhIlEi0gurVv6eve3xItLUrgEetFcrcyPGivH+XUR62NuMs4+ru94DLsdK6lNruO9fsH693GF3JI4EBlSzTixwFDhod3Y+VEmZ8SLS3f4n/CjWP5rSGsZWUX8RuUKss1juxmp7X1xF2VnAJWKdZhiO9U+oEOu9LHe7/Z43Ah6gmjNWgE+AJBG50u5AfRBYaVd4Kvon1i+3PvZtDla/wR+rfZVBQhO67+Rhtc0uEZF8rC/NaqwvBVinYHXGqnE9DowyxlTaFGI3VVwEjMGqAe3mtw42gNuAR0UkD+sLMstl3TXA7Vi1+F3AAayf2dV5HusL9LW93cX266nKFOArYAWwDOvUNFdjsdp+d2J9qR8yxnxrLxsKrBGRw/Z+xxhjjroR4zHGmE+wjskMuwljNVZntLvr77DjNsCPNdx3EVZH6A1Y/5DGY/0TPtkpqv/F6njMwTq2X1ZSZhrWr7rdWJ3Jd9Ukrip8hlXTPYD1a+QKY0xxZQWNMeuxXsuLdpyXApfar7fcB1hnoGwBNgMnPU/cGJON1Rn8uB3DQKzPNQAi8pqIvGaXzTPG7C6/Yf0DzDfG7K/xqw5Q5Z0+ykEich1wozHmLKdjUb8RkbeAncaYf3hgW0uA14wxb5/i+guxzmp5o7axuGzzYSDRGDPeU9tUzvL7AQ1KOUFE2mPVsvue4vrnAOuxarLjsE4frazWrZTHaJOLOkZE5ovI4Upu9/tBbOOqiK2yzrPa7utfWE00zxhjtlZRpm0V8RwWkbZYHZwrsJpc/ozVhLbL07FWxx/eUxG5v4oY5vsqhmChTS5KKRUgtIaulFIBQhO6UkoFCMc6RZs0aWLat2/v1O6VUqpOSk1NzTHGNK1smWMJvX379qSkpDi1e6WUqpNEZFtVy7TJRSmlAoQmdKWUChCa0JVSKkDoSFGlAlhxcTGZmZkUFNRkskjlD6KiomjdujXh4eFur1NtQrfnsxgO7DXGJFWyXLAmULoYaw7m64wxy9yOQCnlNZmZmcTGxtK+fXuOn81X+TNjDPv27SMzM5MOHTq4vZ47TS7vYM1+V5VhWLMEdgYmAq+6vXellFcVFBTQuHFjTeZ1jIjQuHHjGv+yqjahG2N+wLraS1VGAlONZTHWVVZa1CgKpZTXaDKvm07lffNEp2grjr/sVCbHX5JKqYCxNGM/w57/kZ0HazQ9uzpFGRkZJCWd0NKrquDTs1xEZKKIpIhISnZ2ti93rVStZR44wi3TUknfdYilGXpNBeV/PJHQszj+OoKtOf4ag8cYYyYbY5KNMclNm1Y6clUpv3SkqISJU1MpKikjNETYuOew0yEFnS1bttC3b1+WLFnC0KFD6d+/P2effTbr1q0jLy+PDh06UFxsXWzp0KFDxz0OFp5I6HOACWI5A8h1Yt5npbzFGMNfP1xJ+u5DvDC2L+0a1WfTXk3ovrR+/XquvPJK3nnnHe6//35efPFFUlNTefbZZ7ntttuIjY1lyJAhfPHFFwDMmDGDK664okan/AUCd05bnA4MAZqISCbWxWvDAYwxr2FdyPhiYBPWaYt6wVYVUF7+bhNfrNrFfcO6cm7XBKb/up1N2ZrQfSU7O5uRI0fy8ccf07ZtW37++Wf+8IffrvddWGhdqvXGG2/k6aef5rLLLuPtt99mypQpToXsmGoTujFmbDXLDdZFh5UKON+s3cOzX2/gsj4tuXlwRwASE2JYsG4vxaVlhIfqYGtvi4uLo23btixatIgxY8YQHx9PWlraCeUGDRpERkYGCxcupLS0NCg7U/XTqFQVNuzJ4+4Zy+nVOo4nr+x17DSyzs1iKCkzbNuX73CEwSEiIoJPPvmEqVOnMnfuXDp06MCHH34IWM1hK1asOFZ2woQJXH311fzxj8HZUKAJXalKHMgv4sZ3U6gfGcbr1/QnKjz02LLEprEA2jHqQ9HR0cydO5f//Oc/jB49mjfffJPevXvTo0cPPvvss2Plxo0bx4EDBxg79qQNCwFL53JRqoKS0jLumL6M3bkFzLj5DFrE1TtueaeEaADtGPWB9u3bs3r1agDi4+NZunQpAJMmTaq0/KJFixg1ahTx8fG+CtGvaEJXqoLHvkjnp037eGZUL/q1bXjC8voRYbSKr6cdo37mzjvvZP78+cybN8/pUByjCV0pF7OW7uCdnzO4flAH/pDcpspyiQkx2uTiZ1588UWnQ3CctqErZUvdtp8HPl3F2Z2bcP/FXU9atnNCDJuzD1NaZnwUnVLV04SuFLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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\n",
+ "image/png": "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FLDz4FFunraMlvH1eHFsX8KqOR0xMSGGwpIysg7onC7Kf2hCV0HvaFEpN09LpaC4lDcmJBNfP6LadRITYgDYlJ3n7fCUcpsmdBXUjDHc+9FKVu/M5b+j+9C5Waxb6x1L6Hqmi/IjmtBVUHv1+818vmInf7moCxd0b+b2evH1I2gSE6kdo8qvaEJXQet/6Xt45qv1XNq7JbcN6VTj9TsnxOipiz4QExPjdtl33nmHnTt3ejEa7xgyZAgpKSm13o4mdBWUNu3NY9KMNHq0bMDTLsP6ayIxIYZNew5jTWekaqO0tNQj23EioZeUlPh0fyej56GroJN7pJgb300hKjyEydckUy8itPqVKpGYEENeYQl78wpp1iDKw1F63iOfr2HtzkMe3Wb3lg146NIeJy2TkZFxbP7yZcuW0aNHD6ZOnUr37t0ZPXo033zzDffeey/GGP79739jjOGSSy7hqaeeOraNe+65h6+//prmzZszY8YMKruewuzZs0lJSWHcuHHUq1ePJ554grfeeuvYvC8LFy7k2WefZe7cuSesW1payg033EBKSgoiwvXXX88999zDkCFD6N27N99//z0lJSW89dZbDBgwgIcffpjNmzezZcsW2rZtywsvvMAtt9zC9u3bAfjvf//LoEGD+PXXX5k0aRIFBQXUq1ePt99+my5dunD06FH++Mc/smLFCrp27crRo545W0pr6CqolA/rzzp4lNfG96dlfL3qV6pCZ+0Yddv69eu57bbbSE9Pp0GDBrzyyisANG7cmGXLljF48GD+9re/sWDBAtLS0li6dCmffvopAPn5+SQnJ7NmzRrOOeccHnnkkUr3MWrUKJKTk3n//fdJS0vjwgsvZMmSJeTnW5OozZw5kzFjxlS6blpaGllZWaxevZpVq1YdN7nXkSNHSEtL45VXXuH6668/9vzatWv59ttvmT59OpMmTeKee+5h6dKlfPTRR9x4440AdO3alR9//JHly5fz6KOPcv/99wPw6quvUr9+fdLT03nkkUdITU2t3QG2aQ1dBZUn56/jx405PHlFT5LbN6rVtsrPdNm4J49BiU08EZ5XVVeT9qY2bdowaNAgAMaPH88LL7wAwOjRowFYunQpQ4YMOVbzHjduHD/88AOXXXYZISEhx8qNHz+eK664wq19hoWFMXToUD7//HNGjRrFF198wdNPP11p2Y4d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",
"text/plain": [
""
]
@@ -4866,7 +4866,7 @@
},
{
"data": {
- "image/png": "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YFny9fUlISHBejzxRKErgYtl7Nix3HrrrYXGV6Zb9V0l8JSUFOLj40lNTeW3334rk+0WPM7uvfdeqyBZaWkCV5XGvHnzGDhwoPV62rRptG3bloiICCZPngzAE088ke8qiSlTpjB9+nS38ycmJtKyZUvuvvtuQkND6dOnD+np6cTGxhIXF8fNN99MVFQU6enpheJ57bXXOHToEN27d6d79+4ABAcHc/z4cRITE2nRogW33XYbzZo14+abb2b16tV07NiRpk2b8v333wOO6n933HEH7dq1o1WrVvnuwHSnatWqjBkzhhkzZhSalpyczI033kjbtm1p27atdblfeHg4KSkpiAiBgYHW2fCtt97KV199xfbt263yshERERc9AwwODmby5Mm0bt2a8PBwdu3aRU5ODsHBwfn+AmnatClHjx7N9zl069aNhx56iOjoaF599VXWrFlDq1atCA8P54477rAKebnaRu5nOnr0aDp37kxQUBBLlizh8ccfJzw8nH79+lnlduPj4+natStt2rShb9++1t2m3bp1Y8KECbRr145mzZrxzTffcOHCBSZNmsTChQuJiopi4cKFACxZsoR//OMfjBgxggULFljv69dffyUmJobw8HAmTpxIrVq1rGmlPc46d+7M6tWrPfPl5urunrJ6tGnTxqN3LCnPynsH2JRPtsmwWRs9+pjyyTa32z5//rxceeWV1usvv/xS7r77bsnJyZHs7Gzp37+//O9//5MtW7ZIly5drPlatmwpBw4ccDv/vn37xMvLS3788UcRERk6dKh88MEHIiLStWtX+eGHH4rcJ0FBQZKcnFzode56t27dKtnZ2dK6dWu5/fbbJScnR5YtWyYDBw4UEZF//vOf1vZOnTolTZs2lTNnzhS5zZo1a0pqaqoEBQVJSkqKTJs2TSZPniwiIiNHjpRvvvlGRET2798vLVq0EBGRe+65R1asWCE///yzREdHy1133SUiIn/961/lzJkzcv/998uHH35o7etz586JiEiVKlUkMjLSeixYsMB6n6+99pqIiLzxxhty5513iojIAw88IHPnzhURkU2bNknPnj1FRGTy5Mkybdo0a7/ee++9IiKSnp4uDRs2lN27d4uIyC233CIzZswochuTJ0+Wjh07yoULFyQhIUF8fX1l5cqVIiJyww03yNKlS+XChQvSoUMHOXbsmIiILFiwQG6//XZr+w8//LCIiHz22WdWjO+8847cd999+fZ1r169ZP369bJ7924JCwuzxvfv318++ugjERH5z3/+IzVr1hQR98flpR5nvXr1kri4OFcff7ndiamUxxw/fjxf08SqVatYtWoVrVq1AuDMmTPs2bOHO++8k2PHjnHo0CGSk5OpU6cOjRo14tVXX3U5f+PGjQkJCSEqKgpwlFBNTEz0SMwhISGEh4cDEBoaSs+ePTHGEB4ebm1j1apVfPLJJ9bZaUZGBgcOHKBly5ZFrrt27drceuutvPbaa/j6+lrjV69ena/nnLS0NM6cOUPnzp1Zv349QUFB3HvvvcyePZuDBw9Sp04datasSYcOHXj22WdJSkpi8ODBVinY3CYUVwYPHgw49llupw3Dhw/n6aef5vbbb2fBggUMHz7c5bK543fv3k1ISAjNmjUDYPTo0bzxxhs89NBDbrcB8Pe//51q1aoRHh5OdnY2/fr1A7D27e7du9m2bRu9e/cGIDs7m6uvvtpl7O4+76NHj7Jnzx46deqEMYZq1aqxbds2wsLC+O6771i2bBkAN910E48++ijg/ri81OPsiiuu4NChQ7Rp08btPMWhCVy5NPkfoeW6PV9fXzIyMqzXIsI///lP7rnnnkLzDh06lNjYWI4cOWIlCnfzJyYmUr16deu1l5eXy+aSksi73ipVqlivq1SpYv15LCJ8/PHHNG/e/JLX/9BDD9G6det8d0Dm5OSwadMmfHx88s3bpUsX3njjDQ4cOMCzzz7L0qVLiY2NpXPnzoAjCbVv357PPvuM6667jv/+97/06NGjWO8vb9nZDh06sHfvXpKTk1m2bBkTJ050uWzNmsWra+dqG3nHV6lSJV8J3Nx9KyKEhoby3Xeuux9wt968Fi1axKlTp6z66mlpacyfP59nn33WbbyeOs4yMjLyfTGXlLaBq0qhTp06ZGdnW0m8b9++zJ07lzNnzgBw8OBBqzzq8OHDWbBgAbGxsVYnCUXN705xSqheSplVV/r27cvMmTNzC7tZt74fPHiQnj17Frls3bp1GTZsGG+//bY1rk+fPvluv889e27UqBHHjx9nz549NGnShE6dOjF9+nS6dOkCOLp2a9KkCQ888AADBw5k69atJXo/xhgGDRrEww8/TMuWLa2Kie40b96cxMRE9u7dC8AHH3xA165dS7TtgutNTk62EnhmZibbt28vcpmCn+X8+fP54osvSExMJDExkfj4eKsdPCYmho8//hggX9u4p46zX375xSMdX2sCV5VGnz592LBhgzV800030aFDB8LDwxkyZIj1nyA0NJTTp0/ToEED68/mouZ357bbbmPs2LFuf8QEGDNmDP369bN+xLxU//rXv8jMzCQiIoLQ0FD+9a9/AXD48GGqVr34H8CPPPJIvqtRXnvtNeLi4oiIiODaa69l1qxZ1rT27dtbTRWdO3fm4MGDdOrUCXCcbYaFhREVFcW2bdusK0bS09PzXUZYnKtQhg8fzocffui2+SQvHx8f3nnnHYYOHUp4eDhVqlRh7NixF13uYry9vYmNjWXChAlERkYSFRXFxo0bi1yme/fu7Nixg6ioKF544QX279+f7/LBkJAQ/P392bx5M6+88govv/wyERER7N27F39/f8Azx9nRo0fx9fXlqquuKvV+MLlnBuUhOjpa4uLiym176tLs3Lnzom2zZWnLli3MmDGDDz74oMJiKC+vv/46jRs3ZsCAARUdinLh3Llz+Pr6YoxhwYIFzJ8/v1hXEBXHjBkzqF27NnfeeafL6a7+Hxpj4kWkUNkSbQNXlUbr1q3p3r072dnZ5XYteEW5//77KzoEVYT4+Hjuv/9+RISAgADmzp3rsXUHBARwyy23eGRdmsBVpXLHHXdUyHYHDRrEvn378o174YUX6Nu3b4XEoypW586d83V750meLMurCVwpsHp3V8pO9EdMpZSyKU3gSillU5rAlVLKpjSBK6WUTWkCV5WGJ+uBJyYmeuRON3fi4uJ44IEHShxDt27duJzuiSjr/V3Qo48+ytdff11u26us9CoUVWmUpB54RV0zHh0dTXR0xXQHm5WVVay7OC+F3a69Hz9+PHffffdF67lc7vQMXFUaeeuBr1u3ji5dutC/f3+aN2/O2LFjycnJAaBWrVo88sgjREZG8t133/Hyyy8TFhZGWFgYr7zyirW+rKwsbr75Zlq2bMmQIUPydcxQkLva1O7qea9bt47rr78ecNTo7t27N6Ghodx1110EBQVZt79nZ2cXqhGd64MPPiAqKoqwsDCrfvjJkye54YYbiIiIICYmxqpZMmXKFG655RY6duzo9iYQVzW/c+uWu9oPwcHBTJgwgdatW7N48WJWrVpFhw4daN26NUOHDrXqfTz99NO0bduWsLAwxowZY9V1iY+PJzIyksjIyGL3ZP/hhx9aMd5zzz3WX1u1atXiqaeeIjIykpiYGI4ePUpqaipBQUHW53727FkaNWpEZmYmQUFBnDhxgiNHjhRru5crTeDKtc+fgHf6e/bxufs6GxcuXOC3334jODjYGvf9998zc+ZMduzYwa+//mqVGz179izt27fnp59+wtfXl3feeYfNmzezadMm5syZYxWM2r17N+PGjWPnzp3Url2bN998s8i3XK9ePbZs2cK9995rlX999tln6dGjB99//z1r167lscce4+zZs/mWmzp1Kj169GD79u0MGTKEAwcOWNP27NnDfffdx/bt2wkICLAKJIHjdu2EhATefPNN6wamyZMn06pVK7Zu3cq///3vfL3c7Nixg9WrVzN//nyX8c+aNYsHH3yQhIQE4uLiaNiw4UX3Q2BgIFu2bKFXr14888wzrF69mi1bthAdHc3LL78MOO4a/eGHH9i2bRvp6emsWLECcNyQMnPmzGLf8LJz504WLlzIt99+S0JCAl5eXsybNw9wfKYxMTH89NNPdOnShTlz5uDv709UVBT/+9//AFixYgV9+/alWrVqgOPO3dwOLf6sNIGrSqFgPXCAdu3a0aRJE7y8vBg5cqRV6MrLy4sbb7wRgA0bNjBo0CBq1qxJrVq1GDx4MN988w3gqNDXsWNHAEaNGmUt746rGtKrVq3i+eefJyoqim7duln1vPPasGEDI0aMAKBfv37UqVPHmlZUjeiRI0cCjlKwaWlppKSksGHDBusMu0ePHpw4cYK0tDQABgwYUGQJ0g4dOvDvf//bKtSUO29R+yG3INWmTZvYsWMHHTt2JCoqivfee4/9+/cDsHbtWtq3b094eDhff/0127dvJyUlhZSUFKvaYXFuDV+zZg3x8fG0bduWqKgo1qxZY3Vj5u3tbf1Fk3c/DR8+3Oo9p2D98dya2n9m2gauXPt7yTq3LamC9cABqwZ0wdc+Pj7Faq91t7w7rmpIu6vnffTo0YtuP+86c9ebtwnlUuO7WI1tVzW/mzRpUuR2ctcpIvTu3bvQ2X1GRgbjxo0jLi6ORo0aMWXKlEKfU3GJCKNHj+a5554rNC1vze+8+3/AgAE8+eSTnDx5kvj4+Hxt3p6qqW1negauKoWC9cDB0YSyb98+cnJyWLhwoVUaNa/OnTuzbNkyzp07x9mzZ1m6dKnVicGBAwesetEfffSRy+Uvxl0977w6duzIokWLAMcZ+6lTp4q17twzyw0bNuDv74+/vz+dO3e2mhXWrVtHvXr1qF27drHW567md3H2Q0xMDN9++61Vt/vs2bP88ssv1udRr149zpw5Q2xsLOAoyBQQEGCdzefGDO5rnffs2ZPY2FirfvbJkyets3x3atWqRdu2bXnwwQe5/vrr831xe6qmtp1pAleVRt564ABt27bl/vvvp2XLloSEhDBo0KBCy7Ru3ZrbbruNdu3a0b59e+666y6ru6vmzZvzxhtv0LJlS06dOsW99957yTG5q+ed1+TJk1m1ahVhYWEsXryYq666Cj8/v4uu28fHh1atWjF27Fir04YpU6YQHx9PREQETzzxBO+9916xY3VX87s4+6F+/fq8++67jBw5koiICDp06MCuXbsICAjg7rvvJiwsjL59+9K2bVtrmXfeeYf77ruPqKgo8paldlfr/Nprr+WZZ56hT58+RERE0Lt3b6sj4qK4qj+emZnJ3r17K+xKoErDVUeZZfXQTo0rN1edqZan+Ph4GTVqlIiIrF27Vvr371+h8RRXRkaGZGZmiojIxo0bJTIysmIDymPfvn0SGhpartucOXOmLF++vEy3sWTJEpk4cWKZbqOiaKfGypby1gO3kwMHDjBs2DBycnLw9vZmzpw5FR1ShSqPWudZWVk88sgjZb6dyk575FGWiu6RpzxcDnW/v/zySyZMmJBvXEhIiJbEvUxojzxKuXE5JLm+ffva6gtHlR39EVMppWyq1AncGONljPnRGLPCEwEppZQqHk+cgT8I7PTAepRSSl2CUiVwY0xDoD/wlmfCUUopVVylPQN/BXgcyHE3gzFmjDEmzhgTl5ycXMrNqctZRdYDf+WVV4qsVlhZBQcHW5UPy9qKFSuYNGlSuWxLFU+JE7gx5nrgmIjEFzWfiMwWkWgRia5fv35JN6f+BEpaD9wTKiKB59b7sIv+/fvz6aef2vKL7nJVmjPwjsAAY0wisADoYYz50CNRqT+liqoH/tprr3Ho0CG6d+9O9+7dmTVrFo899pg1/d1333V7c8rZs2fp378/kZGRhIWFWfVNgoODefzxxwkPD6ddu3ZWjZHbbruNsWPH0r59ex5//HF+/fVX+vXrR5s2bejcubNVh/zTTz+lffv2tGrVil69elnF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\n",
+ "image/png": "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YFny9fUlISHBejzxRKErgYtl7Nix3HrrrYXGV6Zb9V0l8JSUFOLj40lNTeW3334rk+0WPM7uvfdeqyBZaWkCV5XGvHnzGDhwoPV62rRptG3bloiICCZPngzAE088ke8qiSlTpjB9+nS38ycmJtKyZUvuvvtuQkND6dOnD+np6cTGxhIXF8fNN99MVFQU6enpheJ57bXXOHToEN27d6d79+4ABAcHc/z4cRITE2nRogW33XYbzZo14+abb2b16tV07NiRpk2b8v333wOO6n933HEH7dq1o1WrVvnuwHSnatWqjBkzhhkzZhSalpyczI033kjbtm1p27atdblfeHg4KSkpiAiBgYHW2fCtt97KV199xfbt263yshERERc9AwwODmby5Mm0bt2a8PBwdu3aRU5ODsHBwfn+AmnatClHjx7N9zl069aNhx56iOjoaF599VXWrFlDq1atCA8P54477rAKebnaRu5nOnr0aDp37kxQUBBLlizh8ccfJzw8nH79+lnlduPj4+natStt2rShb9++1t2m3bp1Y8KECbRr145mzZrxzTffcOHCBSZNmsTChQuJiopi4cKFACxZsoR//OMfjBgxggULFljv69dffyUmJobw8HAmTpxIrVq1rGmlPc46d+7M6tWrPfPl5urunrJ6tGnTxqN3LCnPynsH2JRPtsmwWRs9+pjyyTa32z5//rxceeWV1usvv/xS7r77bsnJyZHs7Gzp37+//O9//5MtW7ZIly5drPlatmwpBw4ccDv/vn37xMvLS3788UcRERk6dKh88MEHIiLStWtX+eGHH4rcJ0FBQZKcnFzode56t27dKtnZ2dK6dWu5/fbbJScnR5YtWyYDBw4UEZF//vOf1vZOnTolTZs2lTNnzhS5zZo1a0pqaqoEBQVJSkqKTJs2TSZPniwiIiNHjpRvvvlGRET2798vLVq0EBGRe+65R1asWCE///yzREdHy1133SUiIn/961/lzJkzcv/998uHH35o7etz586JiEiVKlUkMjLSeixYsMB6n6+99pqIiLzxxhty5513iojIAw88IHPnzhURkU2bNknPnj1FRGTy5Mkybdo0a7/ee++9IiKSnp4uDRs2lN27d4uIyC233CIzZswochuTJ0+Wjh07yoULFyQhIUF8fX1l5cqVIiJyww03yNKlS+XChQvSoUMHOXbsmIiILFiwQG6//XZr+w8//LCIiHz22WdWjO+8847cd999+fZ1r169ZP369bJ7924JCwuzxvfv318++ugjERH5z3/+IzVr1hQR98flpR5nvXr1kri4OFcff7ndiamUxxw/fjxf08SqVatYtWoVrVq1AuDMmTPs2bOHO++8k2PHjnHo0CGSk5OpU6cOjRo14tVXX3U5f+PGjQkJCSEqKgpwlFBNTEz0SMwhISGEh4cDEBoaSs+ePTHGEB4ebm1j1apVfPLJJ9bZaUZGBgcOHKBly5ZFrrt27drceuutvPbaa/j6+lrjV69ena/nnLS0NM6cOUPnzp1Zv349QUFB3HvvvcyePZuDBw9Sp04datasSYcOHXj22WdJSkpi8ODBVinY3CYUVwYPHgw49llupw3Dhw/n6aef5vbbb2fBggUMHz7c5bK543fv3k1ISAjNmjUDYPTo0bzxxhs89NBDbrcB8Pe//51q1aoRHh5OdnY2/fr1A7D27e7du9m2bRu9e/cGIDs7m6uvvtpl7O4+76NHj7Jnzx46deqEMYZq1aqxbds2wsLC+O6771i2bBkAN910E48++ijg/ri81OPsiiuu4NChQ7Rp08btPMWhCVy5NPkfoeW6PV9fXzIyMqzXIsI///lP7rnnnkLzDh06lNjYWI4cOWIlCnfzJyYmUr16deu1l5eXy+aSksi73ipVqlivq1SpYv15LCJ8/PHHNG/e/JLX/9BDD9G6det8d0Dm5OSwadMmfHx88s3bpUsX3njjDQ4cOMCzzz7L0qVLiY2NpXPnzoAjCbVv357PPvuM6667jv/+97/06NGjWO8vb9nZDh06sHfvXpKTk1m2bBkTJ050uWzNmsWra+dqG3nHV6lSJV8J3Nx9KyKEhoby3Xeuux9wt968Fi1axKlTp6z66mlpacyfP59nn33WbbyeOs4yMjLyfTGXlLaBq0qhTp06ZGdnW0m8b9++zJ07lzNnzgBw8OBBqzzq8OHDWbBgAbGxsVYnCUXN705xSqheSplVV/r27cvMmTNzC7tZt74fPHiQnj17Frls3bp1GTZsGG+//bY1rk+fPvluv889e27UqBHHjx9nz549NGnShE6dOjF9+nS6dOkCOLp2a9KkCQ888AADBw5k69atJXo/xhgGDRrEww8/TMuWLa2Kie40b96cxMRE9u7dC8AHH3xA165dS7TtgutNTk62EnhmZibbt28vcpmCn+X8+fP54osvSExMJDExkfj4eKsdPCYmho8//hggX9u4p46zX375xSMdX2sCV5VGnz592LBhgzV800030aFDB8LDwxkyZIj1nyA0NJTTp0/ToEED68/mouZ357bbbmPs2LFuf8QEGDNmDP369bN+xLxU//rXv8jMzCQiIoLQ0FD+9a9/AXD48GGqVr34H8CPPPJIvqtRXnvtNeLi4oiIiODaa69l1qxZ1rT27dtbTRWdO3fm4MGDdOrUCXCcbYaFhREVFcW2bdusK0bS09PzXUZYnKtQhg8fzocffui2+SQvHx8f3nnnHYYOHUp4eDhVqlRh7NixF13uYry9vYmNjWXChAlERkYSFRXFxo0bi1yme/fu7Nixg6ioKF544QX279+f7/LBkJAQ/P392bx5M6+88govv/wyERER7N27F39/f8Azx9nRo0fx9fXlqquuKvV+MLlnBuUhOjpa4uLiym176tLs3Lnzom2zZWnLli3MmDGDDz74oMJiKC+vv/46jRs3ZsCAARUdinLh3Llz+Pr6YoxhwYIFzJ8/v1hXEBXHjBkzqF27NnfeeafL6a7+Hxpj4kWkUNkSbQNXlUbr1q3p3r072dnZ5XYteEW5//77KzoEVYT4+Hjuv/9+RISAgADmzp3rsXUHBARwyy23eGRdmsBVpXLHHXdUyHYHDRrEvn378o174YUX6Nu3b4XEoypW586d83V750meLMurCVwpsHp3V8pO9EdMpZSyKU3gSillU5rAlVLKpjSBK6WUTWkCV5WGJ+uBJyYmeuRON3fi4uJ44IEHShxDt27duJzuiSjr/V3Qo48+ytdff11u26us9CoUVWmUpB54RV0zHh0dTXR0xXQHm5WVVay7OC+F3a69Hz9+PHffffdF67lc7vQMXFUaeeuBr1u3ji5dutC/f3+aN2/O2LFjycnJAaBWrVo88sgjREZG8t133/Hyyy8TFhZGWFgYr7zyirW+rKwsbr75Zlq2bMmQIUPydcxQkLva1O7qea9bt47rr78ecNTo7t27N6Ghodx1110EBQVZt79nZ2cXqhGd64MPPiAqKoqwsDCrfvjJkye54YYbiIiIICYmxqpZMmXKFG655RY6duzo9iYQVzW/c+uWu9oPwcHBTJgwgdatW7N48WJWrVpFhw4daN26NUOHDrXqfTz99NO0bduWsLAwxowZY9V1iY+PJzIyksjIyGL3ZP/hhx9aMd5zzz3WX1u1atXiqaeeIjIykpiYGI4ePUpqaipBQUHW53727FkaNWpEZmYmQUFBnDhxgiNHjhRru5crTeDKtc+fgHf6e/bxufs6GxcuXOC3334jODjYGvf9998zc+ZMduzYwa+//mqVGz179izt27fnp59+wtfXl3feeYfNmzezadMm5syZYxWM2r17N+PGjWPnzp3Url2bN998s8i3XK9ePbZs2cK9995rlX999tln6dGjB99//z1r167lscce4+zZs/mWmzp1Kj169GD79u0MGTKEAwcOWNP27NnDfffdx/bt2wkICLAKJIHjdu2EhATefPNN6wamyZMn06pVK7Zu3cq///3vfL3c7Nixg9WrVzN//nyX8c+aNYsHH3yQhIQE4uLiaNiw4UX3Q2BgIFu2bKFXr14888wzrF69mi1bthAdHc3LL78MOO4a/eGHH9i2bRvp6emsWLECcNyQMnPmzGLf8LJz504WLlzIt99+S0JCAl5eXsybNw9wfKYxMTH89NNPdOnShTlz5uDv709UVBT/+9//AFixYgV9+/alWrVqgOPO3dwOLf6sNIGrSqFgPXCAdu3a0aRJE7y8vBg5cqRV6MrLy4sbb7wRgA0bNjBo0CBq1qxJrVq1GDx4MN988w3gqNDXsWNHAEaNGmUt746rGtKrVq3i+eefJyoqim7duln1vPPasGEDI0aMAKBfv37UqVPHmlZUjeiRI0cCjlKwaWlppKSksGHDBusMu0ePHpw4cYK0tDQABgwYUGQJ0g4dOvDvf//bKtSUO29R+yG3INWmTZvYsWMHHTt2JCoqivfee4/9+/cDsHbtWtq3b094eDhff/0127dvJyUlhZSUFKvaYXFuDV+zZg3x8fG0bduWqKgo1qxZY3Vj5u3tbf1Fk3c/DR8+3Oo9p2D98dya2n9m2gauXPt7yTq3LamC9cABqwZ0wdc+Pj7Faq91t7w7rmpIu6vnffTo0YtuP+86c9ebtwnlUuO7WI1tVzW/mzRpUuR2ctcpIvTu3bvQ2X1GRgbjxo0jLi6ORo0aMWXKlEKfU3GJCKNHj+a5554rNC1vze+8+3/AgAE8+eSTnDx5kvj4+Hxt3p6qqW1negauKoWC9cDB0YSyb98+cnJyWLhwoVUaNa/OnTuzbNkyzp07x9mzZ1m6dKnVicGBAwesetEfffSRy+Uvxl0977w6duzIokWLAMcZ+6lTp4q17twzyw0bNuDv74+/vz+dO3e2mhXWrVtHvXr1qF27drHW567md3H2Q0xMDN9++61Vt/vs2bP88ssv1udRr149zpw5Q2xsLOAoyBQQEGCdzefGDO5rnffs2ZPY2FirfvbJkyets3x3atWqRdu2bXnwwQe5/vrr831xe6qmtp1pAleVRt564ABt27bl/vvvp2XLloSEhDBo0KBCy7Ru3ZrbbruNdu3a0b59e+666y6ru6vmzZvzxhtv0LJlS06dOsW99957yTG5q+ed1+TJk1m1ahVhYWEsXryYq666Cj8/v4uu28fHh1atWjF27Fir04YpU6YQHx9PREQETzzxBO+9916xY3VX87s4+6F+/fq8++67jBw5koiICDp06MCuXbsICAjg7rvvJiwsjL59+9K2bVtrmXfeeYf77ruPqKgo8paldlfr/Nprr+WZZ56hT58+RERE0Lt3b6sj4qK4qj+emZnJ3r17K+xKoErDVUeZZfXQTo0rN1edqZan+Ph4GTVqlIiIrF27Vvr371+h8RRXRkaGZGZmiojIxo0bJTIysmIDymPfvn0SGhpartucOXOmLF++vEy3sWTJEpk4cWKZbqOiaKfGypby1gO3kwMHDjBs2DBycnLw9vZmzpw5FR1ShSqPWudZWVk88sgjZb6dyk575FGWiu6RpzxcDnW/v/zySyZMmJBvXEhIiJbEvUxojzxKuXE5JLm+ffva6gtHlR39EVMppWyq1AncGONljPnRGLPCEwEppZQqHk+cgT8I7PTAepRSSl2CUiVwY0xDoD/wlmfCUUopVVylPQN/BXgcyHE3gzFmjDEmzhgTl5ycXMrNqctZRdYDf+WVV4qsVlhZBQcHW5UPy9qKFSuYNGlSuWxLFU+JE7gx5nrgmIjEFzWfiMwWkWgRia5fv35JN6f+BEpaD9wTKiKB59b7sIv+/fvz6aef2vKL7nJVmjPwjsAAY0wisADoYYz50CNRqT+liqoH/tprr3Ho0CG6d+9O9+7dmTVrFo899pg1/d1333V7c8rZs2fp378/kZGRhIWFWfVNgoODefzxxwkPD6ddu3ZWjZHbbruNsWPH0r59ex5//HF+/fVX+vXrR5s2bejcubNVh/zTTz+lffv2tGrVil69elnF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",
"text/plain": [
""
]
@@ -4915,7 +4915,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -4950,7 +4950,7 @@
"outputs": [
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -5033,7 +5033,7 @@
"outputs": [
{
"data": {
- "image/png": "iVBORw0KGgoAAAANSUhEUgAAAXcAAAEXCAYAAABWNASkAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8vihELAAAACXBIWXMAAAsTAAALEwEAmpwYAABNEUlEQVR4nO3dd3hUZfbA8e+Zll5ISEInIC10IlWqoNh+thW7FBvqumtZddVd1rJr21UXu6su6KrYe18sIGBZmoC0CCItCS29Z8r7+2MmMYEkhDCTSSbn8zzzzMyt5w7hzDvvfe+5YoxBKaVUaLEEOwCllFL+p8ldKaVCkCZ3pZQKQZrclVIqBGlyV0qpEKTJXSmlQpAmd9ViiMgsEVnWwPzFInJFPfO6iUixiFgDF2HLIyJ3icjLwY5DtTya3FVIMMbsNMZEG2Pc0PAXgVJtgSZ31WxExBbsGJRqKzS5q4ASke0icquIrANKRGSOiPwsIkUislFEzj50FXlCRApEZLOITDlo/jEislxECkXkfRFJ8K2UKiJGRGwici8wHnjC11XzhHjNFZF9vnV/FJGBh4k9TEQeEpGdIrJXRP4lIhG+eZ+IyMM1ln1NROb7Xh8jIl+JSI6IHBCRBSISf9BncouIrBOREhGZJyIpIvKp73P5QkTaHXRcs0UkS0SyReTmBmIeLSLfiki+iKwVkUkN/wupkGWM0Yc+AvYAtgNrgK5ABHAu0Alvw+J8oATo6Ft2FuACbgTsvvkFQIJv/mIgExgIRAFvAy/75qUCBrDVWPaKGnGcBKwC4gEB0qr220Dsc4EPgAQgBvgQuN83rwOwD5gMXAxsA2J883oBJwJhQBKwBHjkoM/keyAF6OzbzmpgGBAOfAXcedBxveo75kHAfuAE3/y7anwGnYEc4FTf53ui731SsP8O9NH8D225q+bwmDFmlzGmzBjzpjEmyxjjMca8DmwBRtZYdh/eROj0zc8ATqsx/yVjzHpjTAnwF+C8Rp5EdeJN0P0AMcZsMsZk17ewiAgwG7jRGJNrjCkC7gMuADDG7AGuAf4DPArM8C2DMWarMeZzY0yFMWY/8E9g4kG7eNwYs9cYkwksBf5njPnBGFMOvIs30dd0tzGmxBjzI/A8cGEdYV8CfGKM+cT3+X4OrMSb7FUbo8ldNYddVS9EZIaIrPF1G+TjbYW3r7FspjGmZjW7HXhb+odsyzfPftD6dTLGfAU8ATwJ7BORZ0UktoFVkoBIYFWNWD/zTa/yIWAFMowx1aN8fF0sr4lIpogUAi/XEePeGq/L6ngffdDyBx93Jw7VHTi3Kl5fzOOAjg0cpwpRmtxVczAAItIdeA74HZBojIkH1uPtJqnS2ddqrtINyKrxvutB85zAgfr2WWuCMY8ZY44F+gN9gFsaiPkA3iQ7wBgT73vEGWNqJt17gU1ARxGp2ZK+z7f/QcaYWLwt6prH1BQHH3dWHcvswvvLJr7GI8oY88BR7lu1QprcVXOKwpv09gOIyKV4W+41JQPXiYhdRM7F2zf+SY35l4hIfxGJBP4KvGV8wx8PshfoWfVGREaIyCgRsePt5y8HPPUFaozx4P0imisiyb5tdBaRk3yvJwCXAjOAmcDjItLZt3oMUAwU+KY19CXSWH8RkUgRGeDb7+t1LPMycLqInCQiVhEJF5FJItLFD/tXrYwmd9VsjDEbgYeB7/Am30HANwct9j+gN96W873ANGNMTo35LwEvAHvwnny8rp7dPQpME5E8EXkMiMWbrPPwdmvkAA8eJuRbga3A977ulS+Avr7unBeB3xljMo0xS4F5wPO+Xx13A+l4TwZ/DLxzmP00xte+WL4EHjLGLDx4AWPMLuBM4E94v0B34f1i0f/nbZDU7t5USrUkIpIK/ALYjTGuIIejWhH9RldKqRCkyV21aSKywXeh08GPi4Mdm1JHQ7tllFIqBGnLXSmlQpAmd6WUCkEtokpf+/btTWpqarDDUEqpVmXVqlUHjDFJdc1rEck9NTWVlStXBjsMpZRqVURkR33ztFtGKaVCkCZ3pZQKQZrclVIqBGlyV0qpEKTJXSmlQpAmd6WUCkGa3JVSKgS1iHHuTbVo5yLu+u6uYIeh/GBI0hBmD57NwPYH37tDKdUUrTq5p0SlcGL3E4MdhjpKTo+TL3Z8wYUfX8jYTmO5cvCVHJtybLDDUqpVaxFVIYcPH270CtW2rcRZwusZr/OfDf8htzyXY1OO5arBVzG642hq31JVKVVFRFYZY4bXOU+Tu2pJylxlvLPlHeavn8++0n0Mbj+YKwdfycQuEzXJK3UQTe6q1al0V/L+z+8z78d5ZBZn0rddX2YPns0J3U/AIjoOQCnQ5K5aMafHyae/fMpz655je+F2esb15IpBV3BKj1OwWVr1KSOljpomd9XquT1uPt/5Oc+ue5YteVvoEt2FKwZdwRnHnIHdag92eEoFhSZ3FTI8xsPXu77m2XXPsj5nPSmRKVw28DJ+0/s3hNvCgx2eUs1Kk7sKOcYYvsv6jmfWPcPqfatJDE9k1oBZnNf3PCLtkcEOT6lmocldhbSVe1by7Lpn+S77O+LC4pieNp0p3aYE/cRr19iu2C3aZaQCR5O7ahPW7V/Hc+ueY/HuxcEOBYC0hDTmnzSfaEd0sENRIUqTu2pTtuRt4ef8n4Maw4GyAzy88mGO7XAsT095Wk/6qoBoKLnrWDIVcnq3603vdr2DHQYxjhjmfDOHOd/M4f7x9we9m0i1LZrclQqQM3udyf6y/Ty6+lGSI5O5afhNwQ5JtSGa3JUKoMsHXs7ekr28sOEFkiOTmd5/erBDUm2EJnelAkhEuG3kbeSU5/CPFf8gKSKJk3ucHOywVBugyV2pALNarNw//n5yynL407I/kRCewMiOI4Mdlgpxhz3DIyJdRWSRiGwUkQ0icr1veoKIfC4iW3zP7XzTRUQeE5GtIrJORNIDfRBKtXRh1jAem/wY3WO7c/2i68nIzQh2SCrEHXYopIh0BDoaY1aLSAywCjgLmAXkGmMeEJHbgHbGmFtF5FTg98CpwCjgUWPMqIb2oUMhVVuxp2QPF39yMcYY/jTqT369yMlusTO8w3AcVofftqlaNr+OcxeR94EnfI9Jxphs3xfAYmNMXxF5xvf6Vd/yGVXL1bdNTe6qLdmSt4WZn82kqLLI79vu064P9427j74Jff2+bdXy+G2cu4ikAsOA/wEpNRL2HiDF97ozsKvGart90+pN7kq1Jb3b9eaTsz8hszjTr9v9pfAXHl75MBd8fAG/HfJbLh14qZZFbsMa/S8vItHA28ANxpjCmnfFMcYYETminwAiMhuYDdCtW7cjWVWpVi8+PJ748Hi/bnNA+wGM6zSOe/53D4/98BiLdy/m3rH3khqX6tf9qNahUZfMiYgdb2JfYIx5xzd5r687pqpffp9veibQtcbqXXzTajHGPGuMGW6MGZ6UlNTU+JVSNcSHx/PQxIf4x4R/sL1gO+d+eC6vbHoFj/EEOzTVzBozWkaAecAmY8w/a8z6AJjpez0TeL/G9Bm+UTOjgYKG+tuVUv53So9TePfMdxneYTj3L7+f2Z/PJrtY/xu2JY1puY8FpgOTRWSN73Eq8ABwoohsAU7wvQf4BNgGbAWeA37r/7CVUoeTHJnMU1Oe4s4xd/Lj/h/5zQe/4f2t79MSigWqwNOqkEq1AbuKdjFn2RxW71vN8V2PZ+aAmYRZw/y6j3bh7egc3dmv21QN05K/SincHjcvb3qZx1Y/RqWn0u/bt1vsfH3+18Q4Yvy+bVU3LfmrlMJqsTJzwEymdJvCtoJtft32uv3reGbdM+wu2k1aYppft62aRpO7Um1Ml5gudInp4tdtto9ozzPrniGrOEuTewuhdw9QSh21qr52f1+YpZpOk7tS6qjFOmKJskeRVZIV7FCUjyZ3pdRRExE6RXfSlnsLosldKeUXnaM6k1WsLfeWQpO7UsovOkV3Iqs4Sy+SaiE0uSul/KJTdCeKncUUVhYGOxSFJnellJ9UjZjRrpmWQZO7UsovOkV3AmB38e4gR6JAk7tSyk+6xngrfe8q2nWYJVVz0OSulPKLGEcM7cLaaXJvITS5K6X8pmtMV3YVanJvCTS5K6X8pktMF225txCa3JVSftM1pit7SvfgdDuDHUqbp8ldKeU33WK74TEeLUPQAmhyV0r5TdWImZ1FO4McidJ67kopv6lK7s+vf56vd31d5zJWi5VZA2ZVj4tXgaHJXSnlN4nhiQxPGc62gm313u0ptzyXDlEduGzgZc0cXduiyV0p5TciwvMnP1/vfGMM6S+lU1RZ1IxRtU3a566UajYiQowjpk0m96zbbmfv/Q802/605a6UalYxjpg2WTmy4L33AIj7zdmE9+0b8P1py10p1azaYsu9Zo17567muchLk7tSqlm1xeTuKSmpfu0ubJ5j1+SulGpWbTG5u/Pyql97ipqnS0qTu1KqWcU6Ytt0cm+ulnuLPaHqdDrZvXs35eXlwQ5F1SE8PJwuXbpgt9uDHYpqZWIcMRQ7i4MdRrNy5+f/+rqZWu4tNrnv3r2bmJgYUlNTEZFgh6NqMMaQk5PD7t276dGjR7DDUa1MjCOGMlcZle5KHFZHsMNpFrW6Zdp6n3t5eTmJiYma2FsgESExMVF/Vakm6RjVEYCdhW2n/ozrQA4Ato4dcRe18eQOaGJvwfTfRjVVv4R+AGzO2xzkSJpP6YoV2Lt0wd65E55Cb7eMqaykPOMnnPv2BWSfLTq5NwcR4aabbqp+/9BDD3HXXXcFdJ+pqamcc8451e/feustZs2aFdB9KtVSpMal4rA4yMjNCHYozcJTXk7J998TPWkS1ti46pb7vrmP8MuZZ5L30ksB2W+bT+5hYWG88847HDhwoFn3u2rVKjZu3Nis+1SqJbBb7PRu15tNuZuCHUqzKP3f/zDl5URPnIgtOYnKHTtwZmZStmYNEhZG7OmnB2S/bT6522w2Zs+ezdy5cw+Zt337diZPnszgwYOZMmUKO3d6+whnzZrFddddx3HHHUfPnj156623qtd58MEHGTFiBIMHD+bOO++sd7833XQT99577yHTc3NzOeussxg8eDCjR49m3bp1ANx1111cdtllTJo0iZ49e/LYY49Vr/Pyyy8zcuRIhg4dylVXXYXb7W7y56FUc+iX0I+M3IxaV26GmoIPPqBy926KFi9GIiOJHDmCxCuuxJSVkf/ue5RnZBB/7rmE9+kTkP23+eQOcO2117JgwQIKCgpqTf/973/PzJkzWbduHRdffDHXXXdd9bzs7GyWLVvGRx99xG233QbAwoUL2bJlC8uXL2fNmjWsWrWKJUuW1LnP8847j9WrV7N169Za0++8806GDRvGunXruO+++5gxY0b1vM2bN/Pf//6X5cuXc/fdd+N0Otm0aROvv/4633zzDWvWrMFqtbJgwQJ/fTRKBUTfhL7kV+Szt3RvsEMJiMrdu8n64638fMKJ5L/6GlFjxmAJC8PRpTOW2FjK1qzBlJYSntYvYDG02KGQzSk2NpYZM2bw2GOPERERUT39u+++45133gFg+vTp/PGPf6yed9ZZZ2GxWOjfvz9793r/QBcuXMjChQsZNmwYAMXFxWzZsoUJEyYcsk+r1cott9zC/fffzymnnFI9fdmyZbz99tsATJ48mZycHAp9J2BOO+00wsLCCAsLIzk5mb179/Lll1+yatUqRowYAUBZWRnJycn+/HiU8ruqk6oZuRl0iOoQ5Gj8z52XX+t9dI0cYI2Pp3TVKgDC+gUuuR+25S4i80Vkn4isrzHtLhHJFJE1vsepNebdLiJbRSRDRE4KVOD+dsMNNzBv3jxKatSAaEhYWFj166qflsYYbr/9dtasWcOaNWvYunUrl19+eb3bmD59OkuWLGFXIwsJ1dyn1WrF5XJhjGHmzJnV+8zIyAj4CWGljlafdt6uiM25oTlipqrEQMd77yH21FOJPWlq9Txru3hMWRnYbIT16hWwGBrTLfMCcHId0+caY4b6Hp8AiEh/4AJggG+dp0TE6q9gAykhIYHzzjuPefPmVU877rjjeO211wBYsGAB48ePb3AbJ510EvPnz6e42Hv1XWZmJvt8w5ymTJlCZmbtmwbb7XZuvPHGWv3948ePr+5WWbx4Me3btyc2NrbefU6ZMoW33nqrej+5ubns2LGjsYetVFBE2aPoFtON9QfWc6DsQL2PgoqCw2+sBaoqMRA+cCCd//kw1vj46nm2+HYAhPXsiaVGg83fDtstY4xZIiKpjdzemcBrxpgK4BcR2QqMBL5reojN56abbuKJJ56ofv/4449z6aWX8uCDD5KUlMTzz9d/hxmAqVOnsmnTJsaMGQNAdHQ0L7/8Mu3bt2fr1q0kJCQcss7ll1/OPffcU/2+6sTp4MGDiYyM5D//+U+D++zfvz/33HMPU6dOxePxYLfbefLJJ+nevfuRHLpSzS4tMY3/bv8vi99Y3OBy16dfzxWDrmieoPykqsSAtY6GWVWiD2R/Oxxdn/vvRGQGsBK4yRiTB3QGvq+xzG7ftBarqpUNkJKSQmlpafX77t2789VXXx2yzgsvvFDvNq6//nquv/76WvPXr1/POeecU92fv3379up5YWFhZGVlVb9PSEjgPV9R/5oO7mpZv766l4zzzz+f888//9CDU6oFu/HYGxmRMqLBZf674788tvox+if057jOxzVTZEevqsSAJaaO5N7O13LvlxbQGJqa3J8G/gYY3/PDwBHd7VZEZgOzAbp169bEMFqHgQMH8s9//jPYYSjVonSO7sz5/RpulJzR6wwu/uRibl16K6//3+t0iu7UTNEdHXdRIVgsWKIiD5nXXC33Jg2FNMbsNca4jTEe4Dm8XS8AmUDXGot28U2raxvPGmOGG2OGJyUlNSUMpVSIi7BFMHfSXFweFzctvolKd2WwQ2oUT2ER1piYOst0hPXrizUhgfABAwIaQ5Na7iLS0RiT7Xt7NlDVR/AB8IqI/BPoBPQGlh91lEqpNqt7bHfuGXsPNyy+gX+s+AdzRs8JdkiH2P/4E1T+ss33Tij66its9TRaYyZNIvqbZQGvz3TY5C4irwKTgPYishu4E5gkIkPxdstsB64CMMZsEJE3gI2AC7jWGKOXSyqljsqU7lO4dOClPL/+eYYkDeH0YwJzyX5TeCoqOPDkk1gTErDGxeEuKMCUl+MuqH+kT3MU3mvMaJkL65g8r45pVcvfCxx6Xb1SSh2F64Zdx4/7f+Sv3/2Vvgl9q8fKB1vVjTiSrruOdhecj3E6yZn/PLaU4F5MqOUHlFKtgs1i48GJDxLjiOHGRTe2mFv1ufO9LfSqE6Vit9P+qtnEn3VW8IJCk7tSqhVpH9GehyY+RGZxJnOWzWkRhceqWu7W+LjgBnIQTe4NKCsrY+LEibjdbrKyspg2bVqdy02aNImVK1c2ervbt29n4MCBfonxrrvu4qGHHgLg5ptvrnNcvlKhJD0lnT8c+we+2vUVL2x4Idjh4C7IB6h1FWpLoMm9AfPnz+c3v/kNVquVTp061Srt2xL9/ve/54EHHgh2GEoF3PT+0zmx+4k8svoRVuxZEdRYqlvucdpybzUWLFjAmWeeCdRubZeVlXHBBReQlpbG2WefTVlZ2WG3tWrVKoYMGcKQIUN48sknq6e73W5uueWW6hrwzzzzDOC96nXKlCmkp6czaNAg3n///ep17r33Xvr06cO4cePIyPj1bjbdu3cnJyeHPXv2+OX4lWqpRIS/jf0b3WK6ccvXt7CvNDC3qmuMqlExLa3l3ipK/t794QY2ZhX6dZv9O8Vy5+n1X0RQWVnJtm3bSE1NPWTe008/TWRkJJs2bWLdunWkp6cfdn+XXnopTzzxBBMmTOCWW26pnj5v3jzi4uJYsWIFFRUVjB07lqlTp9K1a1feffddYmNjOXDgAKNHj+aMM85g9erVvPbaa6xZswaXy0V6ejrHHnts9fbS09P55ptvat3GT6lQFGWP4pHjH+HCjy/klq9v4d8n/Ru7xd7scbjz85GwMCw1yoW3BNpyr8eBAweIr+ebeMmSJVxyySUADB48mMGDBze4rfz8fPLz86vruk+fPr163sKFC3nxxRcZOnQoo0aNIicnhy1btmCM4U9/+hODBw/mhBNOIDMzk71797J06VLOPvtsIiMjiY2N5Ywzzqi1r+Tk5Fq1apQKZcfEH8NdY+5i9b7VzF116N3UmoM7P7/FdclAK2m5N9TCDpSIiAjKy8sDvh9jDI8//jgnnVS79P0LL7zA/v37WbVqFXa7ndTU1EbFU15eXuuGI0qFulN7nsra/Wt5aeNLjO88njGdxjTr/t0FBS2uSwa05V6vdu3a4Xa760yoEyZM4JVXXgG81Rmr7nMKMGPGDJYvr11xIT4+nvj4eJYtWwZQ6zZ4J510Ek8//TROpxOAn376iZKSEgoKCkhOTsZut7No0aLqGu0TJkzgvffeo6ysjKKiIj788MNa+/rpp5/8NhJHqdbi5uE3E2mL5MudXzb7vrXl3gpNnTqVZcuWccIJJ9Safs0113DppZeSlpZGWlparT7vdevW0anToZXrnn/+eS677DJEhKlTf70ryxVXXMH27dtJT0/HGENSUhLvvfceF198MaeffjqDBg1i+PDh9PPdjis9PZ3zzz+fIUOGkJycXH17PQCn08nWrVsZPny4vz8KpVo0u9XOsJRhrNzT+CHJ/uIpKMCR2qPZ93tYxpigP4499lhzsI0bNx4yrbmtWrXKXHLJJY1evqCgwEybNi2AETXsnXfeMXPmzGm2/bWEfyOlqvx73b/NwBcGmgOlB5p1vxnjxpmsZvx/VxOw0tSTV7VbpgHp6ekcf/zxuN2Nq30WGxvLm2++GeCo6udyubjpppuCtn+lgmlEB++v2JV7m6/1bozBk6997q3SZZddhtXaKm4Dy7nnnlvvCB+lQl1aYhqRtsiAX9TkLi5h79//Qc68+bj27cc4ndrnrpRSgWK32ElPSQ94v3vpyhXk+u6nvO/BB4GWdwETaMtdKRVCRnQYwc8FP5NTlhOwfXh8V6R2nvvP6vuhWqKiAra/ptLkrpQKGVU33A5kv3tVuYGoMWPo+cnHtLvoIiJHjw7Y/ppKk7tSKmRU9bt/vevrgLXe3QXeUiiWmBhs7drR4Y6/YPO14FsSTe4N8GfJ382bNzN06FCGDRvGzz//3OgYHnnkEUpLS6vfn3rqqeT7qtBFR0c3uG5lZSUTJkzA5XI1en9KtWY2i43hHYbz4bYPOfntkwNyQw93QQGW2FikhQ+00OTeAH+W/H3vvfeYNm0aP/zwA8ccc0yj1nG73Yck908++aTRI2IcDgdTpkzh9ddfb0rISrVKd4y+g2uHXku5u5y1+9f6ffvuggKssbF+366/aXJvgL9K/n7yySc88sgjPP300xx//PEAvPzyy4wcOZKhQ4dy1VVXVY+lj46O5qabbmLIkCHce++9ZGVlcfzxx1evl5qayoEDBw7Zx4MPPlhdNvjOO++snn7WWWfVKnegVKhLiUphRv8ZWMXKD/t+8Pv23YUFLXLo48Fax1DIT2+DPT/6d5sdBsEp9d/Ywp8lf0899VSuvvpqoqOjufnmm9m0aROvv/4633zzDXa7nd/+9rcsWLCAGTNmUFJSwqhRo3j44YcB76+HRYsW0b59+3q3v3DhQrZs2cLy5csxxnDGGWewZMkSJkyYwMCBA1mxIrg3M1CquUXaI+nTrg9r9q3x+7Y9+ZrcW7XDlfy97rrrgMaV/D3Yl19+yapVq6rrwpSVlZGc7L1TutVqPeJa7AsXLmThwoUMGzYM8N7oY8uWLUyYMAGr1YrD4aCoqIiYmJgj2q5SrdnQ5KG8t/U9XB4XNot/Ul3ZunWUrV1LzCkn+2V7gdQ6knsDLexACWTJX2MMM2fO5P777z9kXnh4+BFfEWuM4fbbb+eqq66qc35FRQXh4eFNilWp1mpY8jBe3fwqGXkZDEj0T9nwos8/ByD2oBLdLZH2udfDnyV/DzZlyhTeeust9u3z3hosNze3uqTvwWJiYigqaviM/0knncT8+fMpLi4GIDMzs3rbOTk5tG/fHru9+e9Qo1QwDUv2/pL1Z9eMKycXW4cOxJ7c8lvumtwbUFXy92DXXHMNxcXFpKWlcccddzSq5G9N/fv355577mHq1KkMHjyYE088kezs7DqXnT17NieffHL1CdX64rzooosYM2YMgwYNYtq0adVfCIsWLeK0005rzOEqFVI6RHUgJTKFD37+gIzcDMpch7/X8eG4c3KwJST4IbpmUF+5yOZ8aMnfwDn77LNNRkZGQLbdEv6NlGrIrUtuNQNfGGgGvjDQ3PDVDUe9vW3TzjU7rrjSD5H5B1ryt2laW8nfg1VWVnLWWWfRp0+fYIeiVFD8ccQfmTtpLimRKazPWX/U22tNLXdN7ofRmkr+HszhcDBjxoxgh6FU0CSEJ3BC9xO4sN+F7CnZc1RXrBpjcOXmYk1M9GOEgaPJXSkV8nq36w3Az/mNL/1Rkys3lz133IEpL8eWqC13pZRqEXrF9wLgp7yfmrR+8ddLyH/zLezduxFZYwBFS9Y6xrkrpdRR6BjVkUhbJFvztzZpfWdmJohwzIcfIg6Hn6MLDG25K6VCnojQq12vo0rutpSUVpPYQZN7g/xZ8tefLrjgArZs2dJs+1MqFPSK79XkPndnZib2zp39HFFgaXJvgD9L/vrTNddcwz/+8Y9gh6FUq5IcmUxeeR5uT+OGNtfkTe4NX5zY0mhyb4C/Sv6Ct3V/6623MnLkSPr06cPSpUurtzt+/HjS09NJT0/n22+/BWDx4sVMmjSJadOm0a9fPy6++GK81yzA+PHj+eKLL/QmHEodgfiweAyGwsrCI1rPuFw49+xpdS33w55QFZH5wP8B+4wxA33TEoDXgVRgO3CeMSZPRAR4FDgVKAVmGWNWH22Qf1/+dzbnbj7azdTSL6Eft468td75/iz5W8XlcrF8+XI++eQT7r77br744guSk5P5/PPPCQ8PZ8uWLVx44YXVXTw//PADGzZsoFOnTowdO5ZvvvmGcePGYbFY6NWrF2vXrq1V+kApVb/4sHgA8ivyaRfe+NviufbuBbcbRytL7o1pub8AHFwl5zbgS2NMb+BL33uAU4Devsds4Gn/hNn8Dlfy95JLLgGOrOTvb37zGwCOPfZYtm/fDoDT6eTKK69k0KBBnHvuuWzcuLF6+ZEjR9KlSxcsFgtDhw6tXgcgOTmZrKysIz8wpdqomsn9SFRmZgKEXsvdGLNERFIPmnwmMMn3+j/AYuBW3/QXfTUPvheReBHpaIypuypWIzXUwg6UQJT8DQsLA7w126u6VObOnUtKSgpr167F4/HUKs1btfzB6wCUl5cTERHh1/iUCmXx4fFc9l83lvfnsCMqkZS/zCG8EaU5nJneRlRrS+5N7XNPqZGw9wApvtedgV01ltvtm9bqBLLkb00FBQV07NgRi8XCSy+91Og6Nj/99FP1OQCl1OHF2WKYutpAXj5l69aRt+CVRq3n3LULRLB36BDgCP3rqC9iMsYYETFHup6IzMbbdUO3bt2ONoyAqCr5e8IJJ9Safs0113DppZeSlpZGWlraEZf8rem3v/0t55xzDi+++CInn3wyUVFRh11n7969RERE0KGV/bEpFUxxlTaKgG0npjFobxj5H32I67ihWHv7blgf5sAS/+vt8yxiISkiidJVqwjr3btVjXEHkKoRGA0u5O2W+ajGCdUMYJIxJltEOgKLjTF9ReQZ3+tXD16uoe0PHz7cHDxOfNOmTaSlpTXlmPxm9erVzJ07l5deeqlRyxcWFnL55ZcHvDLk3LlziY2N5fLLLw/ofg6nJfwbKdVY5du28cupp/HoGRa2dhRufctNl5zay3w8XFhwvAWXTQC4sf9vGXPZ0yRMn07KH28JQtQNE5FVxpjhdc1rasv9A2Am8IDv+f0a038nIq8Bo4CCo+1vD6aaJX8bUxmyuUr+xsfHM3369IDvR6lQ4snPB+Cs9OmUpPem6IRKMr/diDi957LCt2Zx2mfLmZKTxK5bL+SuXf9i++KPGON0Ej1ubBAjb5rGDIV8Fe/J0/Yishu4E29Sf0NELgd2AOf5Fv8E7zDIrXiHQl4agJib1WWXXRbsEA5x6aWt/mNVqtm5fcl94sDTiejju6fqoNrLFC1eTNYtf2TYW+u48oorKf3vExAeRkQrHHLcmNEyF9Yza0odyxrg2qMNSiml/M2dlweAtZ4hzgAxkyYROXIkzp27OK7zlezf9hhlA3tgqTFyrbXQK1SVUm1CVcvd1i6+weXsHTrgzM6mT3k7OufCpmNaX2IHTe5KqTbCnZeH2O1IZGSDy9k7dsBTVETpF18B8GlyNo0ZeNLSaHJXSrUJlbt2Y+vUEW+VlPrZOnYEIP+113AmxrI2KodtBduaI0S/0uTegJZa8hdqFzLzt48++og77rgjINtWKlgqfvqpUVek2n3XqVTu2EHk2ONAhG+zvg10eH6nyb0BLbXkrz80dCXsaaedxocffkhpaWkzRqRU4HgqKqjcsYOw3r0Pu2zE4MGkzJlD0o030v36m0mNTeWbrG+aIUr/0uTegOYo+et2u7nlllsYMWIEgwcP5plnngHg2muv5YMPPgDg7LPPrh6SOX/+fP785z8D3iqTF198MWlpaUybNq06GX/55ZcMGzaMQYMGcdlll1FRUQFAamoqt956K+np6bz55pukpqZy5513kp6ezqBBg9i82Vt5U0SYNGkSH330kV8+R6WCrXLbNvB4GpXcxWol4ZKLaX/VbOydOzO642hW713d6vrdW8U9VPfcdx8Vm/xb8jcsrR8d/vSneuc3V8nfefPmERcXx4oVK6ioqGDs2LFMnTqV8ePHs3TpUs444wwyMzPJzvZeC7Z06VIuuOACADIyMpg3bx5jx47lsssu46mnnuJ3v/sds2bN4ssvv6RPnz7MmDGDp59+mhtuuAGAxMREVq/2VmG+7bbbaN++PatXr+app57ioYce4t///jcAw4cPZ+nSpZx33nmHHohSrUyF785ljUnuB+sZ35MyVxk55Tm0j2jv79ACRlvu9Wiukr8LFy7kxRdfZOjQoYwaNYqcnBy2bNlSndw3btxI//79SUlJITs7m++++47jjjsOgK5duzJ2rPfKuUsuuYRly5aRkZFBjx496OPrW5w5cyZLliypjuH8888/bEygJYVVaChbs4bsu+8m64+3ggiO7t2PeBudo721D7OKW9f/h1bRcm+ohR0ozVXy1xjD448/zkknnXTI8vn5+Xz22WdMmDCB3Nxc3njjDaKjo4mJiSEnJ+eQs/6HGwUAHFKYrK6YQEsKq9Cw/8mnKPF1gWIMYrcf8TY6RXlPsGYVZzE4qXENuZZAW+71aK6SvyeddBJPP/00TqcT8JbyLSkpAWD06NE88sgjTJgwgfHjx/PQQw8xfvz46nV37tzJd999B8Arr7zCuHHj6Nu3L9u3b2frVu9d3l966SUmTpx4hEevJYVV62c8HsrWrCH+vPNIvPoqUu74S5O20ynam9wzizP9GV7AaXJvQFXJ34Ndc801FBcXk5aWxh133HFUJX+vuOIK+vfvT3p6OgMHDuSqq66qbkGPHz8el8tFr169SE9PJzc3t1Zy79u3L08++SRpaWnk5eVxzTXXEB4ezvPPP8+5557LoEGDsFgsXH311Ud87IsWLeK000474vWUaikqtmzFU1RERPowkm+4gYSLLmrSdiLtkbQLa9fqumUwxgT9ceyxx5qDbdy48ZBpzW3VqlXmkksuafTyBQUFZtq0aQGMqHns2bPHTJ48+bDLtYR/I6Xqk/vqa2Zj336mYvv2o97W+R+eb676/Co/ROVfwEpTT17VlnsDapb8bYzmKvkbaDt37uThhx8OdhhKHZWyH1ZjTUzE7oebAXWK7tTqWu6t4oRqMLXEkr+BNmLEiGCHoNRRK139A5Hpwxo10OBwOkd3ZsnuJRhj/LK95qAtd6VUyHHt349z1y4ihjXuGpTD6RTdiQp3BU+tfYq88jy/bDPQNLkrpUJKyXffkTVnDgCR6cP8ss1B7QfhsDj419p/8ekvn/plm4GmyV0pFVL2P/Iopd//j4ghQwjv398v2xzYfiDLL16ORSzklOccfoUWQJN7A1pyVchA2L59e/X4fYAff/yRWbNmBS8gpY6Qp6SEsvXrSbh0Fqmvv4Y4HH7bttViJT4sntzyXL9tM5A0uTeguatC1rxCNBgOTu6DBg1i9+7d7Ny5M4hRKdV4pat/ALebqJEjA7L9hPAEcss0ubd6/q4Kef311zN06FAGDhxYfRXrXXfdxfTp0xk7dizTp09n//79nHPOOYwYMYIRI0bwzTfeUqP79+/nxBNPZMCAAVxxxRV0796dAwcOsH37dtLS0rjyyisZMGAAU6dOrY7nueeeY8SIEQwZMoRzzjmnumrkrFmzuO666zjuuOPo2bNn9ZfWbbfdxtKlSxk6dChz584F4PTTT+e1117z46eqVOCULl8OdjsRQ4cGZPuJ4Ynacm/tGlsV8u6772bVqlWN2mZpaSlr1qzhqaeeqjXEcuPGjXzxxRe8+uqrXH/99dx4442sWLGCt99+myuuuAKAu+++m8mTJ7NhwwamTZtWqzW9ZcsWrr32WjZs2EB8fDxvv/024C0KtmLFCtauXUtaWhrz5s2rXic7O5tly5bx0UcfcdtttwHwwAMPMH78eNasWcONN94I/FodUqnWoHT5ciIGDcJymFvpNVVCeEKrSe6tYpz70jd+4sCuYr9us33XaMafV/9dWQ5XFfK6664Djqwq5IUXXgh4a9MUFhaS77th7xlnnFFdpOuLL75g48aN1esUFhZSXFzMsmXLePfddwE4+eSTadeuXfUyPXr0YKivpVKzuuP69euZM2cO+fn5FBcX1ypOdtZZZ2GxWOjfvz979+6tN2atDqlai6r+9sQrrwjYPhIiEthZtJOs4qzqmjMtVatI7sEQiKqQ9VVxrFmp0ePx8P333xMeHt7o7VZVdgRvdceqbplZs2bx3nvvMWTIEF544QUWL15c5zqmgZsQaHVI1VqUrl4d0P52gGPijwHgqTVPcc+4ewK2H39oFcm9oRZ2oNSsCnlwoq2qCjl58uQ6q0L+7ne/Y2Qdf2Cvv/46xx9/PMuWLSMuLo64uLhDlpk6dSqPP/44t9xyCwBr1qxh6NChjB07ljfeeINbb72VhQsXkpd3+AspioqK6NixI06nkwULFtC5c+cGl4+JiaGoqKjWNK0OqVqLQPe3A5zb51zm/TiPvIqWfyGT9rk3wN9VIcPDwxk2bBhXX311rf7vmh577DFWrlzJ4MGD6d+/P//6178AuPPOO1m4cCEDBw7kzTffpEOHDsTExDQY/9/+9jdGjRrF2LFj6dev32GPd/DgwVitVoYMGVJ9QlWrQ6rWoiTA/e1VusR0obCiMKD78Iv6Koo156MtVIWcOHGiWbFiRZNjKS8vN06n0xhjzLfffmuGDBnS5G0dyT5HjRpVvd+DtYR/I6WMMaZyz16zsf8As3fu3IDv6w+L/mBOf/f0gO+nMWigKmSr6JYJlppVIa1W62GXD2RVyJ07d3Leeefh8XhwOBw899xzAdnPwft84IEHsNn0z0S1XMbpJPMPf0AcDuLOODPg+4sNi6WgoiDg+zla+r/2MPxVFbLmycym6N27Nz/88INfYjmSffZuwg2FlWpO+x7+J2WrVtHpwQcJ69kj4PuLc8RRWFnY4itEap+7UqrVKvzsv+S+8ALtLr6YuNP/r1n2GRcWh8vjosx1+IsXg6lFJ3fTwBA9FVz6b6OCrWLbL2T/6U9EDBlCyq1/bLb9xjpiASisbNknVVtst0x4eDg5OTkkJia26J8+bZExhpycnCMai6+UP3lKSth93e+RsDA6P/qIXwuEHU5cmHcI853f3knfdn0Jt4Uza8AsIu2BHaVzpFpscu/SpQu7d+9m//79wQ5F1SE8PJwuXboEOwzVBhljyL7jTiq3/UK3ef/G3qFDs+6/V3wvEsITWL5nOd9mfQtA/8T+TOo6qVnjOJwWm9ztdjs9egT+5IhSqnXJW/AKhR9/TNINNxA1Zkyz7z81LpWvz/8agN1FuznlnVNa5N2ZWmxyV0qFtrzXXuPAs88eMl3sdjo/+CARddRsKv3hB/b+/e9ET5pE4uwrmyPMBsWHxQMts/9dk7tSKigKPvoIXG6ixo6tNb3w008peO+9Q5K7KzeXzBtuxJ6SQqe/P4BYgj8eJMoehU1s5FfkBzuUQxxVcheR7UAR4AZcxpjhIpIAvA6kAtuB84wxLe83i1IqaIzHQ8WmzcSdeQYd7rij1jx3YSFFixeT8pe/VA+mMG43mTfdhDs/n9RXX8FaR12mYBCRFntRkz+++o43xgw1xgz3vb8N+NIY0xv40vdeKaWqOTMz8ZSUEFZHzaPoiRNwZWVT8dOW6mn7H3+c0u++p8Mdd/jtvqj+EhcW1yJb7oH4XXMm8B/f6/8AZwVgH0qpVqx80yYAwtPSDpkXPXEiAMVfe09aFi1aRM6/niH+3GnEn/Ob5guykeLD4ltkIbGjTe4GWCgiq0Rktm9aijEm2/d6D5BylPtQSoWYis2bwWIhrI7yFvaUFML6p1G8eDGVu3aRdetthPfvT8qcOUGI9PDiHKHZch9njEkHTgGuFZEJNWf6qpbVeSmjiMwWkZUislLHsivVtpRv2oyjZw8s9VwIFzNpEmWrV7PtzLMA6PzYo1hq3GCmJYkLi6OgMsT63I0xmb7nfcC7wEhgr4h0BPA976tn3WeNMcONMcOTkpKOJgylVCtTvnkz4f0O7ZKpEnv66YQPHEhYaipdHpmLowVfMBcXFtciT6g2ebSMiEQBFmNMke/1VOCvwAfATOAB3/P7/ghUKRUaXHl5uLKzCU+r/wYyYT160OOtwJTP9rf4sHjKXGVUuCsIs7acXxdHMxQyBXjXN1TJBrxijPlMRFYAb4jI5cAO4LyjD1MpFSoqMjIA6hwp0xpV1ZopqCggOTI5yNH8qsnJ3RizDRhSx/QcYMrRBKWUCl1VQxzD+/YNciT+0VKTe/Av8VJKtSnu/DywWLAmJAQ7FL+oSu4tbcSMJnelVLNyFxZhiYlpEeUD/KG6vkwLG+seGp+uUqrV8BQVYo2JCXYYfhPnaJktdy0cppRqVu7CIiyxIZTcfd0yL218icW7FldPn9xtMmf3Pjs4QaHJXSnVzNxFhVhjYoMdht9E2CI4tcep/FLwC3tL9wLeOu97S/dqcldKtR2ewiIc3bsFOwy/ERH+PuHvtabdtvQ21u1fF6SIvLTPXSnVrNyFhVhCqOVelxh7DEWVRUGNQVvuSim/qtj2C6492bWmWdu3J6xXL8RiwVMYWidU6xLj8CZ3Y0x1TfrmpsldKeU3xunkl3POwZSVHTLPGhdHxPDheEpLQ+qEal1iHbG4jZtSVylR9qigxKDJXSnlN86sLExZGYnXXE30uHHeicZQuWs3pStXULpyJQCObt2DGGXgxTi8X15FlUWa3JVSrV/lzp0ARI8dS+Sxx1ZPjxw+nPizzwLAU1KCJSo4Ca+5VCX3wspCOkR1CEoMekJVKeU3Vcnd3rX+0TChntihdsv9EDk/w/vXwvZvAhqDJnellN84d+5CwsOxJbftezTEOryjgepM7ps/hh9ehhdOhVfOB7crIDFocldK+U3lrl04unYN2giRlqIqud/89c1MeWMK2cU1Rg+V7AdrGEyeAz99BsvmBiQGTe5KKb+p3LkDe7fQuUCpqbrEdOGG9BsY22ks+8r28W3Wt7/OLDkAUUkw4RY47jroMT4gMWhyV6qNce7bhysvz+/bNR4Pzl27cXTt6vdttzYiwuWDLueR4x+hXVg7ftj3w68zS/ZDVHvv66l/g26jAxKDJnel2gjj8ZDz/Av8fMKJ7LnjTr9v37V/P6aiIqRKCxwtEWFI8hDW7F9TPa04N5tMVzQL/reDBf/bwQ87/f9FCzoUUqk2oXL3brJvu907ztxux5mdffiVjpBz1y4A7F205V7T0KShLN61mJyyHNbtdNMnJ5vvPAn8+d31AFw98RiGdWvn9/1qclcqhBljyH/zTfY98HewWOh4332UfPstZWvX+n1fzsxMAOxdOvt9263ZsORhAKzdv5ZFn23heMlh6oiBLJ/kvRtphMMakP1qclcqRDn37SP7L3+h5OslRI4eTaf77sXeqRPlGzbgLvT/XYMqq5J7p05+33ZrNqD9AGwWG0t2rGDUga/ACrFpU4iNDQ/ofjW5KxWCCj7+mD1//RumooKUP/+ZdhdfVH1bO2tcLJ7CQozH49db3TkzM7ElJWEJC/PbNkNBmDWMlLBevLlhKSdbiqnsOAJH7xMCvl9N7ko1M3dBAbuuupryjRsbvY4lJgZb+/bYkpLqeHin2zt3xl1YyJ6//pWiTz8jfMhgOj3wAGE9etTaljUuDozBU1Tkfe0nzsws7J21S+ZgL363nV92J+FI+I5+7Rw4YpvnAi9N7ko1I09FBbuuvZbyDRtod9FFiMN++JWMwV1YhGv/flz791OxZQuunBxw1b6yMXzgQJx79+DOLyDphhtIvOJyxHbof3GLL6G7Cwr8nNwziRg82G/bCwUfr8vmjvc3MCgtle0sxekph4iEZtm3Jnelmolxu8m6+RbKVq6i8z8fJvbUU5u+LY8Hd14ergMHcO3bT9maNRx48knC+vSh23PPEd6vX73rWmN/Te7+YtxunNnZxJ5yit+22Zpl5pfxwZosHv3yJ4Z0jWf2uMHctgzynQUkRWpyVypkGGPYe+99FH3+OSm333ZUiR1ALBZsiYnYEhOhb1+ix48jevLxhPXujcXhaHBda7w3uRe89z5la4/sVnBisxJ9/PHYU1JqTXft2wcuV2h0yxgDmz+CXieC3XfSs7wAtn4B3cfCnvVg3HDMZFxY+fjHbPJLndWrHyiu4N9Lf6HM6WZcr/b88/whbC/2fs75xgWa3JUKHTnPPkfeK6+QcNllJMycGZB9RAwY0Kjl7J27IA4HeQsWNGk/cu99xJ55BlEjRxLWty9hPXr8OgwyFJJ75ip4/RLoeTxc+Br89Cl8fgfk76y1mLv3yXxfmEh2ZiEGWOPpxSLPUCqxM7ZXIjdP7cuQLvFYLEKe0/uFmmexQGRisxyGJnelAiz/3ffYP3cusaefTvLNNwU7HOwpyfT5/js8FRVHvK47L4/cF1+k4N33KHjrbd8G7djaeS/CsXf20zDIkgPegloTboGI+HqCcULuL3AgA/ZneEvpuiu981L6w4grYe1r4HHBmN96W+TL5kLnY6HnxDo36XJ7WPztck4A2LaIsvt7EuEp4YC9E0uSrmVS3pskuPYB4NzyFcONYZRdsIlBPE484fFUDL2U8Kl3/DoSye2i3dZFAORbrRDWPPeP1eSuVAAVL11K9pw5RB03hk733uPXoYdHwxIZiSUy8ojXs7VrR8e77qLDn/9M5fbtlG/OoOKnDMo3ZxDWpw+OLl38E+Cq5+G7JyBvO5zzb8jZ6k3g+zNg/2Y48JM3mXt+7Q4hpiPYI71dJuvfgkX3/zo/rrN33UX3et+fvwDS/q/WLnfnlXLDa2sYtvtHTrDDWssA9lqSWOg4nh+sg/CUWXk8fGr18t0SIrl64jGM7pmAeNywbRGWlc8T8f1cCHN4YyzaA/m7iC/cDT26kR/XGbqMqN6Gq9KNLUAXMYkxJiAbPhLDhw83K32331IqVJT9+CM7Zs7C0b073V96EWt0dLBDaj2ePw12LPO9EcCXp8QC7XpAUl/vo31fSOoD7ftAWI37sm54D7Z+DoPPh4V/gew13unHTIHyfMhcRUnysdxYOosNLu8XUk5JBTaLhQ+OeZ+euz+AP+0+8rg9HnhrFmx8H8QK3Y8DRxQMm86o1X/jnD7n8McRfwS8if2N+1fSb3QH0k9q2m0HRWSVMWZ4nfM0uatQYVwuCj/9jJznnqNiyxa/b98SFYU1Ph5rXFzt5/h4rPE1XsfFYdwedv/ud1giIkh97VVsSS3o5hUlOfDsREhO8ya/fqeBPSLYUf2qLA/+cQyMuRYsNrCFeZN3Ul9I7OV9fyTytsM3j3q7Y4ZeDJXFOL+8j5LlLxNFKduihrEpZgw740dyzpj+dF56KxTshmu/b1L4hQdK+fLJr3GECROvmoTNbiU82s7Jb59MZnEmGBhQPpJzCq5i3y/FnHH9ULqmNe0kqyZ3FdJMZSUFH37IgWefxbljJ2G9exM9ZbJfu0CMMXiKS3AX5OPOz8edX+B7XYCnsNDbn3sQa3w83V995ZCLiIJu5/cw/yRwxEBlEXQaBtPm+7o1/JDkC7PAYofoer7QPB7Ys9Z7B6KYFIg/qIrk+rfhrcvgsoXQbdTRx1OHR7/YwktfrOCDYSvptG8J5BzUGOhzMsWnvIgjwoojvPG91yX5Fbx+73Iqy9y4XZ7q6T2GtMc6PJ8tRZvZu8JJh1/SsMcI48/uS9pxTT9P0VBy1z531Wp5KirIf/ttcv79b1xZ2YQPGEDKE48TPdm/if1wjNuNu7AQd34+noICXL7niPT0llnbvDTH+zzzfW8/9HvXwGPe4laEx0NsJ2+ij+kIsR0hpgMk9YNuY8DSQP+wxw1L/wmL7/f2e8d1g87DoFO6N4FX3Z1p88fw45u/rtd11K+/IGI6wE//9V7o06XOnNUkmfllrNmZX/3+7dW76dfrGDqdf5F3Qu4275ee74RsXtRo3rjjOxDoOTSJAeM70bFXPHu2FeIIt2K1WTiwu7h6e26Xh+0/HuCXtQcAOPf24RTlllOSX0FhTjkblmRSsdaF0IsOwLaEtQy7MJm0Qcf77RgPpsldtTqe0lLyXn+D3Pnzce3fT8SwYXS8+26ixo0Lyu3dxGrF1q5d9YiRFq8quUclebsqkvrBvk1QlOU9AViY7X29byMU7wXja4HGdIKBv/Em/bpkfOrtJx94DnQcClmrIXO1t//5IBs7n8vOpIkkFP1Erz0fk/DxH+DjP3Agph+xpbvZkTSRr7/Z4ZfDLXe6eXrxz5RUumtNv35Kb8D7qyynNImsvAl43B6MgR/f2Y3NYaVnehI/r9rHT8v30r5rNAd2Fde1CwDComykHdeRAeM7k9g5msTOv55jGXpCV968byXh0XZGn9WTGWv/RmThOL8cX300uatWw11URN6CV8j9z39w5+UROWY0nR56iMiRI9r8PTuPSGmu97nqMvjO6d5HXdwuKNkHO7+Dta/D9097W+V1qLBE8ln3Oax1nAq5AuEnwDEQ7sqj+EAWP2YWUFzhxomV7T93hJ8BRgOj6Cu7mGxZw6SCNaRLGffuHMDXv2xiRIUNN4Ycq/dRJMZ7fvUIRHngOE8YZ03pTe/0ZNxOD7u/30v4z6V8uX4juzbmUlJQWWsdi02YevkAjhmWzPjzevP9e9vYsCST7oMS2fGj98tx6hUDSOgUBYAgxCVHYLXV/YsxItrBhXeOwmoTLFYLfTP7kJGbcWQHcoQ0uasWz5WXR95LL5H70st4ioqInjiRxKuvInLYsGCH1jqV5nhv0OyIOvyyVpu3m2bgOTDwHIyzjEUbs3hn9W4y9hSRXVBWvajFHoHZbofth44ySYpJYuSgvozskcCI1ATiI+uvqVNuDI+LsP7LXaz+cHutebYwK3HJEcSlRBLXIZK4lEjiO0QSnRCOxfpr1s/KyCNrUx49hiez4p2f2betkO3v7yBsTwXF+RVkZuRhD7Nic1jo1Due7gPb0zWtXXX/usUq1UMUbXYr487tzXHn9MJiEYzHe35FLEf2LWMP+7VLq29CX17e+DJOtxO7tRH1hZpAk7tqsVz795PzwgvkvfoaprSUmKlTSbxqdqOvxFR1KyvcTznRzHrq28Mv7ONwGjoUuEnIc+NyekiyCqlhMUTY44lwWAm3W4mND2PsOb1o16ERXxoHMR7D/l1F7FifQ2ZGHs5KDwd2FdFzaBITL+pL3p4S8rJLyN1TSl52CXu35LNt5b7q9S02IT45EpvD6t3WziIANi72Xjk7eUY/crJKWPuF925RU2al0W90Pd1L9bD4kvmRJvW69GvXD6fHybaCbfRN6HvU26tLwJK7iJwMPApYgX8bYx7w9z6M2w3G1Fn5TvlUjeJoRd0WzuxscubNJ//NNzFOJ7GnnUb72VcS1rt34zbQGo7ZzzHuyi3l6pdXsb/o8Fed/r1yCx2JIj7CXh2L3WlwVHofdqenxmuDo9JDeLlBgNJIC/EdI0mJDT8k9D3bCnjjvhWMP78PSd1i2Le9kH07iti3o5DSwl+7PaxWC+PO7U3q4EQO7C4m43972Lpyn3cZgeRuMYRH2+k1PJlx03oTEeMgMtZB5z61z2lUlLmqk35edin5+0qrR6gMm9qNIZO7sunbLNxuQ78xHcF4E3SHnnH0HBrcoan9EryF3TLyMgKW3AMyFFJErMBPwInAbmAFcKExps4C1k0dCln42X/JvOEGsFgQu937cDh+fe3v9w47Ynf4nn0PC4hVEKvvWTzeaRbje3i803B5L5d2VXjPyLudvueaj7rmV9R43YT5VVfoWWze4WlWh/enttXhe1/fNN90i296g8vU3I7vdT378ojvgR23x4ZH7LiNFStuzN4dFLzxLoVffAPGEDdhMO1PGYYjwQ6VpVBZAs4S72tnKVQW13hd4pvvew3eqxUdkb7nqBrvow4z3ftsbBG4JRInEbgIx0jjriSsdHsoKXci7kLCK7Oxl2RhLc7GWpyJtSgbW3EW1uI9III7IhFPRAKe8ATckYl4IhK908IT8EQk4nQkUkY8hRVW8koryS+pJLfMSX5JJXmlTvJ8r/NLKwmzwZReDiJNLjHuPKJc+US78oh25RHlyiPalU+UK48YVy4FKaNpd82n5O0p4Z2HVlNe7Kx1DBaLEBnnICo+jKj4MBI6RtF7eEp1H3NdivMq+OKFDWRm5FdPC4u0kdw9hpiE8OovsuyfC8jLLvl1XzYhdVB7eg5NotuABCKiGy58FgrcHjejXxnNtD7TuHXkrU3eTrOPcxeRMcBdxpiTfO9vBzDG3F/X8k1N7ru+/obdH37lS2oucDkRlwvcbnC5ELfvtdvje/Y9PB5wezBuD7gNeDzefjSP8b4PxNB/34kgsYCIqX7GUvXa+4WABbCI96efRRCrgMUCVkGsVt9rC1itvz7brBirzZdIrWC1Ymx2jN0GVjtGLBiPwXi8Dcaq157q92CMYAx4PILHiO+94DGW6mePsWCwVL/2YMUYC25sGGy4seHBigeb72E96NmG4fBDFC3GiV3KsVvKvc9Sjk0qsFldWC0ubFYXNpsHi81gtRlsNrDYLd6Hw4rFYQUET6UL43TjdnpwOw0ep8HtEtxuwe2y4HZbcbmtuDw2XCYMlwnDacJxmjBcJhyXcWA4ukvDbVJOtCWHSGsOVksRLksFZRYnhRbvVZdRHgg3FhzGhsXjwHgicJooyjyxlHtiqTRH3sVhpZIIS4H3YSsm0lFBRISbiEghIsZGREw4ns6j2LYzlp9/2I/VZmHUmT2J9iXyqPgwIqLtTep+8HgMW1bsRSyQ3D2WuKSIQ052lxZWsunbLDxuQ1R8GD2HJhEeFZh+55bsoo8vIrM4kwWnLqBLTNPKNgRjnHtnYFeN97sBv1+NsHnLLn4qHlt7otX3CP0v/1+5fQ9/MR4sxo14XIhxY/G4vc++ad7nqmkuxOPGYsqwGjd2jxupnuZb5qDtiHH9uk3fs8tqY1dSZ7a370q5NQqDHUwEYmIQY8XqsWD3CHaD94HgMGA9wqETHgxOwCnglKrXBpcYPOLGiAvEhUgpFinAIpVYpRKblCM1vvUFcNgsOGwWwmwWHFYLDrsVh9X73m6z4CaKUmcsFZWpFJf2xFPqxlPqqtV4KPI9sAqWcCuWKCuWMMHmcBFpqyTeVkK4tZhwu4dwu4UIu7d/21pHd45BqHBHUeaKpqwigdJyK2XFHnKLKynLceLe66mxdCmO8Ap6DU9myOSutYbtHQ2LReg7qkODy0TGOjj25FS/7K81G9h+ID8e+JE3f3qTG4+90e/bD1pntYjMBmYDdOvW7TBL1y1t0ijC4zbisdhA7HisVhAbHrFhLDaw2PBYbBixYyxWb7M5VBhT/Uuk+teK2+X7xeIGj2+6y+VN1tW/Dmr+cqD62XLQe6+qb8rAc/foRVpcPGlHuJ5xG9xODx6nB4/T7X2u9IAIFpv82qL3PbxdZ03r544Os9Eu0kFcpJ2YMFv1CbYj4XF7KC2spDivAhEhIsZOeLQde5g1oMM5jTE4K9yUFVVSWujE4/aQkhobsKJV6vBuSL+BKd2m0DHqyE7sNlar7pZRSqm2rKFumUA1ZVcAvUWkh4g4gAuADwK0L6WUUgcJSLeMMcYlIr8D/ov3d/18Y8yGQOxLKaXUoQLW526M+QT4JFDbV0opVb8QOsOolFKqiiZ3pZQKQZrclVIqBGlyV0qpENQibrMnIvuBplbmbw8c8GM4rYEec9ugx9w2HM0xdzfG1FkFrUUk96MhIivrG8QfqvSY2wY95rYhUMes3TJKKRWCNLkrpVQICoXk/mywAwgCPea2QY+5bQjIMbf6PnellFKHCoWWu1JKqYNocldKqRDUqpO7iJwsIhkislVEbgt2PP4iIvNFZJ+IrK8xLUFEPheRLb7ndr7pIiKP+T6DdSKSHrzIm05EuorIIhHZKCIbROR63/SQPW4RCReR5SKy1nfMd/um9xCR//mO7XVf2WxEJMz3fqtvfmpQD6CJRMQqIj+IyEe+9yF9vAAisl1EfhSRNSKy0jctoH/brTa5+27C/SRwCtAfuFBE+gc3Kr95ATj5oGm3AV8aY3oDX/reg/f4e/ses4GnmylGf3MBNxlj+gOjgWt9/56hfNwVwGRjzBBgKHCyiIwG/g7MNcb0AvKAy33LXw7k+abP9S3XGl0PbKrxPtSPt8rxxpihNca0B/Zv2xjTKh/AGOC/Nd7fDtwe7Lj8eHypwPoa7zOAjr7XHYEM3+tngAvrWq41P4D3gRPbynEDkcBqvPcaPgDYfNOr/87x3h9hjO+1zbecBDv2IzzOLr5ENhn4CO/taEP2eGsc93ag/UHTAvq33Wpb7tR9E+7OQYqlOaQYY7J9r/cAKb7XIfc5+H5+DwP+R4gft6+LYg2wD/gc+BnIN8a4fIvUPK7qY/bNLwASmzXgo/cI8Eeg6m7diYT28VYxwEIRWeW7fzQE+G87aDfIVk1njDEiEpJjWEUkGngbuMEYU1jzptGheNzGGDcwVETigXeBfsGNKHBE5P+AfcaYVSIyKcjhNLdxxphMEUkGPheRzTVnBuJvuzW33DOBrjXed/FNC1V7RaQjgO95n296yHwOImLHm9gXGGPe8U0O+eMGMMbkA4vwdkvEi0hVw6vmcVUfs29+HJDTvJEelbHAGSKyHXgNb9fMo4Tu8VYzxmT6nvfh/RIfSYD/tltzcm9rN+H+AJjpez0Tb5901fQZvjPso4GCGj/1Wg3xNtHnAZuMMf+sMStkj1tEknwtdkQkAu85hk14k/w032IHH3PVZzEN+Mr4OmVbA2PM7caYLsaYVLz/X78yxlxMiB5vFRGJEpGYqtfAVGA9gf7bDvaJhqM8SXEq8BPefso/BzsePx7Xq0A24MTb33Y53r7GL4EtwBdAgm9ZwTtq6GfgR2B4sONv4jGPw9svuQ5Y43ucGsrHDQwGfvAd83rgDt/0nsByYCvwJhDmmx7ue7/VN79nsI/hKI59EvBRWzhe3/Gt9T02VOWqQP9ta/kBpZQKQa25W0YppVQ9NLkrpVQI0uSulFIhSJO7UkqFIE3uqk0QkXgR+W0T1vtTIOJRKtB0tIxqE3wlDT4yxgw8wvWKjTHRgYlKqcDRlrtqKx4AjvGVXH3w4Jki0lFElvjmrxeR8SLyABDhm7bAt9wlvjK9a0TkGV91UkSkWETm+kr3fikiSc17eErVpi131SYcruUuIjcB4caYe30JO9IYU1Sz5S4iacA/gN8YY5wi8hTwvTHmRV9dkEuMMQtE5A4g2Rjzu2Y5OKXqoIXDlPJaAcz31bd5zxizpo5lpgDHAit8Bc0i+LUeiAd43ff6ZeCdQ9ZWqhlpt4xSgDFmCTABb4GmF0RkRh2LCfAf473hwlBjTF9jzF31bTJAoSrVKJrcVVtRBMTUN1NEugN7jTHPAf8Gqm5t5vS15sFbB2Sar2xr1W3SuvvmWfi1+NVFwDI/x6/UEdHkrtoEY0wO8I3vZOkhJ1TxFrJaKyI/AOfjLUUL8CywTkQWGGM2AnPw3nRhHd6ba3T0LVcCjBTvfW8nA38N3NEodXh6QlUpP9Ahk6ql0Za7UkqFIG25qzZFRAYBLx00ucIYMyoY8SgVKJrclVIqBGm3jFJKhSBN7kopFYI0uSulVAjS5K6UUiFIk7tSSoUgTe5KKRWC/h+ErBeVkgyRFwAAAABJRU5ErkJggg==\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -5085,7 +5085,7 @@
},
{
"data": {
- "image/png": "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7rnnHuBUdUghmqPjr7xCfnw8bR99lIAuXQgwG7WYGkO3TKOYy3vth3s4ccS740ojOwQz/OruFa6vqirknXfeCdSsKuS1114LGLVpsrKyyMjIAOCyyy4rKdK1cuVKEhISSj6TlZVFTk4O69at47PPPgPgoosuIiLi1BwoXbp0KRmXXrq6444dO3j44YfJyMggJyenTHGyK664ApPJRO/evUlJKanSfAapDimaq5z160l7bRFhkycR9sc/AGAz24DG0XJvFMndH3xRFbKiKo6lKzW63W5+/vln7HZ7tfdbXNkRjOqOxd0yN954I59//jn9+/fnrbfe4scffyz3M8ZdzOWT6pCiOXIeP87R+x/AdlZX2nomxwGk5e5tlbWwfaV0VcjTE21xVcjRo0eXWxXyjjvuYOjQoWfs84MPPmDUqFGsW7eOsLAwwsLCzthm/PjxvPzyy9x3330AbNmyhbi4OIYNG8aHH37IAw88wIoVK0hPT6/yHLKzs4mOjsbhcLBs2TLat29f6fYhISFkZ5etVS3VIUVzo10uku67H3duLp3eehNTqcaNzWS03BtDcpc+90p4uyqk3W5nwIAB3HLLLWX6v0t76aWX2LRpE7GxsfTu3Zt//etfAMybN48VK1bQt29fPvroI9q2bUtISEil8f/973/nnHPOYdiwYfTs2bPK842NjcVsNtO/f/+SC6pSHVI0N2mLFpH388+0/b+HCejWrcw6i8mCQjWKbhlV2Z/k9WXw4MH69HHiu3btolevXn6KyLB582YWLFjAu+++W63ts7KymDlzZrnFw0aOHMmzzz7L4MGDaxVLYWEhZrMZi8XCTz/9xK233sqWLVtqta+aHPPCCy9k3bp1WCxn/pHXEH5Homk68frr5Kz+sdJtgoYModXNN5WMPfeGvI0bOTTtRkIvvZR2T/+j3AlwhiwdwrU9r+Uvg//itePWllIqXmtdblJpFN0y/lK6KmR1iof5sirk4cOHufrqq3G73dhsNl5//XWfHOf0Yz711FPlJnYhfMWdn8+JVxdiad0aa/vy/wrWRQ7SXnuNjE8+odX06YRPnoS5nG7OmnCePEnSnHuxdehA23nzKpzZzGa2NYqWe53/1yqlDgLZgAtwaq0HK6VaAh8AnTGm2rtaa111J3EDVHrIYl2UvphZG926dePXX3/1Siw1OWa30/4sFcLXctev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\n",
+ "image/png": "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7rnnHuBUdUghmqPjr7xCfnw8bR99lIAuXQgwG7WYGkO3TKOYy3vth3s4ccS740ojOwQz/OruFa6vqirknXfeCdSsKuS1114LGLVpsrKyyMjIAOCyyy4rKdK1cuVKEhISSj6TlZVFTk4O69at47PPPgPgoosuIiLi1BwoXbp0KRmXXrq6444dO3j44YfJyMggJyenTHGyK664ApPJRO/evUlJKanSfAapDimaq5z160l7bRFhkycR9sc/AGAz24DG0XJvFMndH3xRFbKiKo6lKzW63W5+/vln7HZ7tfdbXNkRjOqOxd0yN954I59//jn9+/fnrbfe4scffyz3M8ZdzOWT6pCiOXIeP87R+x/AdlZX2nomxwGk5e5tlbWwfaV0VcjTE21xVcjRo0eXWxXyjjvuYOjQoWfs84MPPmDUqFGsW7eOsLAwwsLCzthm/PjxvPzyy9x3330AbNmyhbi4OIYNG8aHH37IAw88wIoVK0hPT6/yHLKzs4mOjsbhcLBs2TLat29f6fYhISFkZ5etVS3VIUVzo10uku67H3duLp3eehNTqcaNzWS03BtDcpc+90p4uyqk3W5nwIAB3HLLLWX6v0t76aWX2LRpE7GxsfTu3Zt//etfAMybN48VK1bQt29fPvroI9q2bUtISEil8f/973/nnHPOYdiwYfTs2bPK842NjcVsNtO/f/+SC6pSHVI0N2mLFpH388+0/b+HCejWrcw6i8mCQjWKbhlV2Z/k9WXw4MH69HHiu3btolevXn6KyLB582YWLFjAu+++W63ts7KymDlzZrnFw0aOHMmzzz7L4MGDaxVLYWEhZrMZi8XCTz/9xK233sqWLVtqta+aHPPCCy9k3bp1WCxn/pHXEH5Homk68frr5Kz+sdJtgoYModXNN5WMPfeGvI0bOTTtRkIvvZR2T/+j3AlwhiwdwrU9r+Uvg//itePWllIqXmtdblJpFN0y/lK6KmR1iof5sirk4cOHufrqq3G73dhsNl5//XWfHOf0Yz711FPlJnYhfMWdn8+JVxdiad0aa/vy/wrWRQ7SXnuNjE8+odX06YRPnoS5nG7OmnCePEnSnHuxdehA23nzKpzZzGa2NYqWe53/1yqlDgLZgAtwaq0HK6VaAh8AnTGm2rtaa111J3EDVHrIYl2UvphZG926dePXX3/1Siw1OWa30/4sFcLXctev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",
"text/plain": [
""
]
@@ -5123,7 +5123,7 @@
},
{
"data": {
- "image/png": "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\n",
+ "image/png": "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",
"text/plain": [
""
]
@@ -5159,7 +5159,7 @@
},
{
"data": {
- "image/png": "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tVXJ36VLl7Jo0SKSk5MZMWIEeXl57N27tya579ixg379+hEdHU1mZiarVq3izDPPBKBr166MGjUKgGuvvZaVK1eye/duevToQe/eri+u6667jl9//bUmhiuvvPKEMYEqKax0bt9szeSB/25mdK8IXr762I1KTdGkDp3mwNlBknurWu5CiADgfOCWWoufFUIkAxJIPW5dizTVwvaWtir5K6XkpZdeYsKECfW2Lyws5LvvvmPMmDHk5+fz8ccfExgYiNVqJS8vr95t0M25Lfr4wmQNxQSqpLDSef20O5u7PtrIkG6hvD59aIMjYxri1HC13DtIt0yrWu5SyjIpZbiUsqjWsulSyiQp5UAp5SQpZWbrw2x7bVXyd8KECcybNw+73XVzxJ49eygrKwNg5MiRvPjii4wZM4bRo0czd+5cRo8eXfPZw4cPs2rVKgA++OADzjrrLPr06UNqair79u0D4N133+Xss88+ybNXJYWVzumPA3nMfnc9fbpYWXjDMPxNzW/fOp2gO5UuqHZmbVHy96abbqJfv34MGTKEAQMGcMstt9S0oEePHo3D4eD0009nyJAh5Ofn10nuffr04ZVXXiExMZGCggJuvfVWzGYzb731FldccQVJSUnodDpmz5590uf+008/cdFFF5305xSlPai0O/nv+jTe++MQ768+RHZxJZuOFHLj22vpGubPOzcMJ8h8chNdu5K7vcN0ywgpm7yW2SZSUlLk8ePEd+7cSWJioo8ictmwYQMvvPAC7777brO2Ly4u5sYbb2yTypDelJWVxdVXX83y5cub3K49/I4UpSHfbctk9nsbat6bjTqMeh2h/iY+mX0G0UHmJj5dn9Qkr972Ez0Ofk3/Lnl0f+dtD0fcMkKI9VLKlIbWqZZ7E9pryV9vO3z4MM8/3+AIVkXpEHJLqwD46o6z+OflSdidkkA/A+/fNOKkEzuA06EBrpZ7+erV2DPbf2+zKvl7Au2x5K+3DRs2zNchKEqrFJa7knuv6EAGxAVzTt8orH5GLKaWzX/qsLuSe8jE82H+sg7R766Su6IonU5BuR1/k75mJEyU9eRb67VVt9yNVtdoM81W1boA24DqllEUpdMpLLcT6m/y2P6c7pa7wX0RVla1/+qQquWuKEq7U2l3klPSdALtEmxu9OajwvIqgi0nNxqmKdXdMno/V8qUNpXcFUVRTtqM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\n",
+ "image/png": "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tVXJ36VLl7Jo0SKSk5MZMWIEeXl57N27tya579ixg379+hEdHU1mZiarVq3izDPPBKBr166MGjUKgGuvvZaVK1eye/duevToQe/eri+u6667jl9//bUmhiuvvPKEMYEqKax0bt9szeSB/25mdK8IXr762I1KTdGkDp3mwNlBknurWu5CiADgfOCWWoufFUIkAxJIPW5dizTVwvaWtir5K6XkpZdeYsKECfW2Lyws5LvvvmPMmDHk5+fz8ccfExgYiNVqJS8vr95t0M25Lfr4wmQNxQSqpLDSef20O5u7PtrIkG6hvD59aIMjYxri1HC13DtIt0yrWu5SyjIpZbiUsqjWsulSyiQp5UAp5SQpZWbrw2x7bVXyd8KECcybNw+73XVzxJ49eygrKwNg5MiRvPjii4wZM4bRo0czd+5cRo8eXfPZw4cPs2rVKgA++OADzjrrLPr06UNqair79u0D4N133+Xss88+ybNXJYWVzumPA3nMfnc9fbpYWXjDMPxNzW/fOp2gO5UuqHZmbVHy96abbqJfv34MGTKEAQMGcMstt9S0oEePHo3D4eD0009nyJAh5Ofn10nuffr04ZVXXiExMZGCggJuvfVWzGYzb731FldccQVJSUnodDpmz5590uf+008/cdFFF5305xSlPai0O/nv+jTe++MQ768+RHZxJZuOFHLj22vpGubPOzcMJ8h8chNdu5K7vcN0ywgpm7yW2SZSUlLk8ePEd+7cSWJioo8ictmwYQMvvPAC7777brO2Ly4u5sYbb2yTypDelJWVxdVXX83y5cub3K49/I4UpSHfbctk9nsbat6bjTqMeh2h/iY+mX0G0UHmJj5dn9Qkr972Ez0Ofk3/Lnl0f+dtD0fcMkKI9VLKlIbWqZZ7E9pryV9vO3z4MM8/3+AIVkXpEHJLqwD46o6z+OflSdidkkA/A+/fNOKkEzuA06EBrpZ7+erV2DPbf2+zKvl7Au2x5K+3DRs2zNchKEqrFJa7knuv6EAGxAVzTt8orH5GLKaWzX/qsLuSe8jE82H+sg7R766Su6IonU5BuR1/k75mJEyU9eRb67VVt9yNVtdoM81W1boA24DqllEUpdMpLLcT6m/y2P6c7pa7wX0RVla1/+qQquWuKEq7U2l3klPSdALtEmxu9OajwvIqgi0nNxqmKdXdMno/V8qUNpXcFUVRTtqM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",
"text/plain": [
""
]
@@ -5178,7 +5178,7 @@
],
"metadata": {
"kernelspec": {
- "display_name": "Python 3",
+ "display_name": ".venv",
"language": "python",
"name": "python3"
},
@@ -5192,7 +5192,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
- "version": "3.8.6"
+ "version": "3.8.10"
},
"toc": {
"colors": {
@@ -5224,6 +5224,11 @@
"toc_section_display": "block",
"toc_window_display": false,
"widenNotebook": false
+ },
+ "vscode": {
+ "interpreter": {
+ "hash": "3581132406f7320837865a422f37590c78ed7dabfbcb5bc7771b9d116b13a5cf"
+ }
}
},
"nbformat": 4,
diff --git a/soil/__init__.py b/soil/__init__.py
index a04582a..13109cf 100644
--- a/soil/__init__.py
+++ b/soil/__init__.py
@@ -30,7 +30,7 @@ from .decorators import *
def main(
cfg="simulation.yml",
exporters=None,
- parallel=None,
+ num_processes=1,
output="soil_output",
*,
do_run=False,
@@ -69,6 +69,11 @@ def main(
"--dry-run",
"--dry",
action="store_true",
+ help="Do not run the simulation",
+ )
+ parser.add_argument(
+ "--no-dump",
+ action="store_true",
help="Do not store the results of the simulation to disk, show in terminal instead.",
)
parser.add_argument(
@@ -98,12 +103,11 @@ def main(
default=output or "soil_output",
help="folder to write results to. It defaults to the current directory.",
)
- if parallel is None:
- parser.add_argument(
- "--synchronous",
- action="store_true",
- help="Run trials serially and synchronously instead of in parallel. Defaults to false.",
- )
+ parser.add_argument(
+ "--num-processes",
+ default=num_processes,
+ help="Number of processes to use for parallel execution. Defaults to 1.",
+ )
parser.add_argument(
"-e",
@@ -112,6 +116,17 @@ def main(
default=[],
help="Export environment and/or simulations using this exporter",
)
+ parser.add_argument(
+ "--until",
+ default="",
+ help="Set maximum time for the simulation to run. ",
+ )
+
+ parser.add_argument(
+ "--seed",
+ default=None,
+ help="Manually set a seed for the simulation.",
+ )
parser.add_argument(
"--only-convert",
@@ -138,9 +153,6 @@ def main(
if args.version:
return
- if parallel is None:
- parallel = not args.synchronous
-
exporters = exporters or [
"default",
]
@@ -168,42 +180,46 @@ def main(
res = []
try:
exp_params = {}
+ opts = dict(
+ dry_run=args.dry_run,
+ dump=not args.no_dump,
+ debug=debug,
+ exporters=exporters,
+ num_processes=args.num_processes,
+ outdir=output,
+ exporter_params=exp_params,
+ **kwargs)
+ if args.seed is not None:
+ opts["seed"] = args.seed
if sim:
logger.info("Loading simulation instance")
- sim.dry_run = args.dry_run
- sim.exporters = exporters
- sim.parallel = parallel
- sim.outdir = output
- sims = [
- sim,
- ]
+ for (k, v) in opts.items():
+ setattr(sim, k, v)
+ sims = [sim]
else:
logger.info("Loading config file: {}".format(args.file))
if not os.path.exists(args.file):
logger.error("Please, input a valid file")
return
+ assert opts["debug"] == debug
sims = list(
simulation.iter_from_file(
args.file,
- dry_run=args.dry_run,
- exporters=exporters,
- parallel=parallel,
- outdir=output,
- exporter_params=exp_params,
- **kwargs,
+ **opts,
)
)
for sim in sims:
+ assert sim.debug == debug
if args.set:
for s in args.set:
k, v = s.split("=", 1)[:2]
v = eval(v)
tail, *head = k.rsplit(".", 1)[::-1]
- target = sim
+ target = sim.model_params
if head:
for part in head[0].split("."):
try:
@@ -219,9 +235,8 @@ def main(
print(sim.to_yaml())
continue
if do_run:
- res.append(sim.run())
+ res.append(sim.run(until=args.until))
else:
- print("not running")
res.append(sim)
except Exception as ex:
diff --git a/soil/agents/__init__.py b/soil/agents/__init__.py
index 1904f3c..c817b70 100644
--- a/soil/agents/__init__.py
+++ b/soil/agents/__init__.py
@@ -11,6 +11,8 @@ import inspect
import types
import textwrap
import networkx as nx
+import warnings
+import sys
from typing import Any
@@ -90,7 +92,7 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
Any attribute that is not preceded by an underscore (`_`) will also be added to its state.
"""
- def __init__(self, unique_id, model, name=None, interval=None, **kwargs):
+ def __init__(self, unique_id, model, name=None, init=True, interval=None, **kwargs):
assert isinstance(unique_id, int)
super().__init__(unique_id=unique_id, model=model)
@@ -116,6 +118,11 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
for (k, v) in kwargs.items():
setattr(self, k, v)
+ if init:
+ self.init()
+
+ def init(self):
+ pass
def __hash__(self):
return hash(self.unique_id)
@@ -130,11 +137,10 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
# TODO: refactor to clean up mesa compatibility
@property
def id(self):
+ msg = "This attribute is deprecated. Use `unique_id` instead"
+ warnings.warn(msg, DeprecationWarning)
+ print(msg, file=sys.stderr)
return self.unique_id
-
- @id.setter
- def id(self, value):
- self.unique_id = value
@classmethod
def from_dict(cls, model, attrs, warn_extra=True):
@@ -197,8 +203,10 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
# No environment
return None
- def die(self):
- self.info(f"agent dying")
+ def die(self, msg=None):
+ if msg:
+ self.info("Agent dying:", msg)
+ self.debug(f"agent dying")
self.alive = False
try:
self.model.schedule.remove(self)
@@ -207,15 +215,16 @@ class BaseAgent(MesaAgent, MutableMapping, metaclass=MetaAgent):
return time.NEVER
def step(self):
+ raise NotImplementedError("Agent must implement step method")
+
+ def _check_alive(self):
if not self.alive:
raise time.DeadAgent(self.unique_id)
- super().step()
- return time.Delta(self.interval)
-
- def log(self, message, *args, level=logging.INFO, **kwargs):
+
+ def log(self, *message, level=logging.INFO, **kwargs):
if not self.logger.isEnabledFor(level):
return
- message = message + " ".join(str(i) for i in args)
+ message = " ".join(str(i) for i in message)
message = "[@{:>4}]\t{:>10}: {}".format(self.now, repr(self), message)
for k, v in kwargs:
message += " {k}={v} ".format(k, v)
@@ -388,7 +397,7 @@ class AgentView(Mapping, Set):
def filter_agents(
- agents,
+ agents: dict,
*id_args,
unique_id=None,
state_id=None,
diff --git a/soil/agents/fsm.py b/soil/agents/fsm.py
index 8e3f8d8..71a6829 100644
--- a/soil/agents/fsm.py
+++ b/soil/agents/fsm.py
@@ -1,4 +1,5 @@
from . import MetaAgent, BaseAgent
+from ..time import Delta
from functools import partial, wraps
import inspect
@@ -85,8 +86,8 @@ class MetaFSM(MetaAgent):
class FSM(BaseAgent, metaclass=MetaFSM):
- def __init__(self, **kwargs):
- super(FSM, self).__init__(**kwargs)
+ def __init__(self, init=True, **kwargs):
+ super().__init__(**kwargs, init=False)
if not hasattr(self, "state_id"):
if not self._default_state:
raise ValueError(
@@ -95,12 +96,15 @@ class FSM(BaseAgent, metaclass=MetaFSM):
self.state_id = self._default_state.id
self._coroutine = None
+ self.default_interval = Delta(self.model.interval)
self._set_state(self.state_id)
+ if init:
+ self.init()
def step(self):
self.debug(f"Agent {self.unique_id} @ state {self.state_id}")
- default_interval = super().step()
+ self._check_alive()
next_state = self._states[self.state_id](self)
when = None
@@ -120,7 +124,7 @@ class FSM(BaseAgent, metaclass=MetaFSM):
if next_state is not None:
self._set_state(next_state)
- return when or default_interval
+ return when or self.default_interval
def _set_state(self, state, when=None):
if hasattr(state, "id"):
@@ -132,8 +136,8 @@ class FSM(BaseAgent, metaclass=MetaFSM):
self.model.schedule.add(self, when=when)
return state
- def die(self):
- return self.dead, super().die()
+ def die(self, *args, **kwargs):
+ return self.dead, super().die(*args, **kwargs)
@state
def dead(self):
diff --git a/soil/agents/network_agents.py b/soil/agents/network_agents.py
index fb0e58c..3308aec 100644
--- a/soil/agents/network_agents.py
+++ b/soil/agents/network_agents.py
@@ -2,23 +2,37 @@ from . import BaseAgent
class NetworkAgent(BaseAgent):
- def __init__(self, *args, topology, node_id, **kwargs):
- super().__init__(*args, **kwargs)
+ def __init__(self, *args, topology=None, init=True, node_id=None, **kwargs):
+ super().__init__(*args, init=False, **kwargs)
- assert topology is not None
- assert node_id is not None
- self.G = topology
+ self.G = topology or self.model.G
assert self.G
+ if node_id is None:
+ nodes = self.random.choices(list(self.G.nodes), k=len(self.G))
+ for n_id in nodes:
+ if "agent" not in self.G.nodes[n_id] or self.G.nodes[n_id]["agent"] is None:
+ node_id = n_id
+ break
+ else:
+ node_id = len(self.G)
+ self.info(f"All nodes ({len(self.G)}) have an agent assigned, adding a new node to the graph for agent {self.unique_id}")
+ self.G.add_node(node_id)
+ assert node_id is not None
+ self.G.nodes[node_id]["agent"] = self
self.node_id = node_id
+ if init:
+ self.init()
def count_neighbors(self, state_id=None, **kwargs):
return len(self.get_neighbors(state_id=state_id, **kwargs))
+ if init:
+ self.init()
def iter_neighbors(self, **kwargs):
return self.iter_agents(limit_neighbors=True, **kwargs)
def get_neighbors(self, **kwargs):
- return list(self.iter_neighbors())
+ return list(self.iter_neighbors(**kwargs))
@property
def node(self):
@@ -40,7 +54,7 @@ class NetworkAgent(BaseAgent):
for node_id in self.G.neighbors(self.node_id):
agent = self.G.nodes[node_id].get("agent")
if agent is not None:
- neighbor_ids.add(agent.id)
+ neighbor_ids.add(agent.unique_id)
if unique_ids:
unique_ids = unique_ids & neighbor_ids
else:
diff --git a/soil/config.py b/soil/config.py
index a143f6f..b99b559 100644
--- a/soil/config.py
+++ b/soil/config.py
@@ -1,267 +1,2 @@
-from __future__ import annotations
-
-from enum import Enum
-from pydantic import BaseModel, ValidationError, validator, root_validator
-
-import yaml
-import os
-import sys
-
-
-from typing import Any, Callable, Dict, List, Optional, Union, Type
-from pydantic import BaseModel, Extra
-
-from . import environment, utils
-
-import networkx as nx
-
-
-# Could use TypeAlias in python >= 3.10
-nodeId = int
-
-
-class Node(BaseModel):
- id: nodeId
- state: Optional[Dict[str, Any]] = {}
-
-
-class Edge(BaseModel):
- source: nodeId
- target: nodeId
- value: Optional[float] = 1
-
-
-class Topology(BaseModel):
- nodes: List[Node]
- directed: bool
- links: List[Edge]
-
-
-class NetConfig(BaseModel):
- params: Optional[Dict[str, Any]]
- fixed: Optional[Union[Topology, nx.Graph]]
- path: Optional[str]
-
- class Config:
- arbitrary_types_allowed = True
-
- @staticmethod
- def default():
- return NetConfig(topology=None, params=None)
-
- @root_validator
- def validate_all(cls, values):
- if "params" not in values and "topology" not in values:
- raise ValueError(
- "You must specify either a topology or the parameters to generate a graph"
- )
- return values
-
-
-class EnvConfig(BaseModel):
- @staticmethod
- def default():
- return EnvConfig()
-
-
-class SingleAgentConfig(BaseModel):
- agent_class: Optional[Union[Type, str]] = None
- unique_id: Optional[int] = None
- topology: Optional[bool] = False
- node_id: Optional[Union[int, str]] = None
- state: Optional[Dict[str, Any]] = {}
-
-
-class FixedAgentConfig(SingleAgentConfig):
- n: Optional[int] = 1
- hidden: Optional[bool] = False # Do not count this agent towards total agent count
-
- @root_validator
- def validate_all(cls, values):
- if values.get("unique_id", None) is not None and values.get("n", 1) > 1:
- raise ValueError(
- f"An unique_id can only be provided when there is only one agent ({values.get('n')} given)"
- )
- return values
-
-
-class OverrideAgentConfig(FixedAgentConfig):
- filter: Optional[Dict[str, Any]] = None
-
-
-class Strategy(Enum):
- topology = "topology"
- total = "total"
-
-
-class AgentDistro(SingleAgentConfig):
- weight: Optional[float] = 1
- strategy: Strategy = Strategy.topology
-
-
-class AgentConfig(SingleAgentConfig):
- n: Optional[int] = None
- distribution: Optional[List[AgentDistro]] = None
- fixed: Optional[List[FixedAgentConfig]] = None
- override: Optional[List[OverrideAgentConfig]] = None
-
- @staticmethod
- def default():
- return AgentConfig()
-
- @root_validator
- def validate_all(cls, values):
- if "distribution" in values and (
- "n" not in values and "topology" not in values
- ):
- raise ValueError(
- "You need to provide the number of agents or a topology to extract the value from."
- )
- return values
-
-
-class Config(BaseModel, extra=Extra.allow):
- version: Optional[str] = "1"
-
- name: str = "Unnamed Simulation"
- description: Optional[str] = None
- group: str = None
- dir_path: Optional[str] = None
- num_trials: int = 1
- max_time: float = 100
- max_steps: int = -1
- num_processes: int = 1
- interval: float = 1
- seed: str = ""
- dry_run: bool = False
- skip_test: bool = False
-
- model_class: Union[Type, str] = environment.Environment
- model_params: Optional[Dict[str, Any]] = {}
-
- visualization_params: Optional[Dict[str, Any]] = {}
-
- @classmethod
- def from_raw(cls, cfg):
- if isinstance(cfg, Config):
- return cfg
- if cfg.get("version", "1") == "1" and any(
- k in cfg for k in ["agents", "agent_class", "topology", "environment_class"]
- ):
- return convert_old(cfg)
- return Config(**cfg)
-
-
-def convert_old(old, strict=True):
- """
- Try to convert old style configs into the new format.
-
- This is still a work in progress and might not work in many cases.
- """
-
- utils.logger.warning(
- "The old configuration format is deprecated. The converted file MAY NOT yield the right results"
- )
-
- new = old.copy()
-
- network = {}
-
- if "topology" in old:
- del new["topology"]
- network["topology"] = old["topology"]
-
- if "network_params" in old and old["network_params"]:
- del new["network_params"]
- for (k, v) in old["network_params"].items():
- if k == "path":
- network["path"] = v
- else:
- network.setdefault("params", {})[k] = v
-
- topology = None
- if network:
- topology = network
-
- agents = {"fixed": [], "distribution": []}
-
- def updated_agent(agent):
- """Convert an agent definition"""
- newagent = dict(agent)
- return newagent
-
- by_weight = []
- fixed = []
- override = []
-
- if "environment_agents" in new:
-
- for agent in new["environment_agents"]:
- agent.setdefault("state", {})["group"] = "environment"
- if "agent_id" in agent:
- agent["state"]["name"] = agent["agent_id"]
- del agent["agent_id"]
- agent["hidden"] = True
- agent["topology"] = False
- fixed.append(updated_agent(agent))
- del new["environment_agents"]
-
- if "agent_class" in old:
- del new["agent_class"]
- agents["agent_class"] = old["agent_class"]
-
- if "default_state" in old:
- del new["default_state"]
- agents["state"] = old["default_state"]
-
- if "network_agents" in old:
- agents["topology"] = True
-
- agents.setdefault("state", {})["group"] = "network"
-
- for agent in new["network_agents"]:
- agent = updated_agent(agent)
- if "agent_id" in agent:
- agent["state"]["name"] = agent["agent_id"]
- del agent["agent_id"]
- fixed.append(agent)
- else:
- by_weight.append(agent)
- del new["network_agents"]
-
- if "agent_class" in old and (not fixed and not by_weight):
- agents["topology"] = True
- by_weight = [{"agent_class": old["agent_class"], "weight": 1}]
-
- # TODO: translate states properly
- if "states" in old:
- del new["states"]
- states = old["states"]
- if isinstance(states, dict):
- states = states.items()
- else:
- states = enumerate(states)
- for (k, v) in states:
- override.append({"filter": {"node_id": k}, "state": v})
-
- agents["override"] = override
- agents["fixed"] = fixed
- agents["distribution"] = by_weight
-
- model_params = {}
- if "environment_params" in new:
- del new["environment_params"]
- model_params = dict(old["environment_params"])
-
- if "environment_class" in old:
- del new["environment_class"]
- new["model_class"] = old["environment_class"]
-
- if "dump" in old:
- del new["dump"]
- new["dry_run"] = not old["dump"]
-
- model_params["topology"] = topology
- model_params["agents"] = agents
-
- return Config(version="2", model_params=model_params, **new)
+def load_config(cfg):
+ return cfg
\ No newline at end of file
diff --git a/soil/datacollection.py b/soil/datacollection.py
index e054640..7543a70 100644
--- a/soil/datacollection.py
+++ b/soil/datacollection.py
@@ -9,7 +9,7 @@ class SoilCollector(MDC):
if 'agent_count' not in model_reporters:
model_reporters['agent_count'] = lambda m: m.schedule.get_agent_count()
if 'state_id' not in agent_reporters:
- agent_reporters['agent_id'] = lambda agent: agent.get('state_id', None)
+ agent_reporters['agent_id'] = lambda agent: getattr(agent, 'state_id', None)
super().__init__(model_reporters=model_reporters,
agent_reporters=agent_reporters,
diff --git a/soil/debugging.py b/soil/debugging.py
index 4344df0..5d80f39 100644
--- a/soil/debugging.py
+++ b/soil/debugging.py
@@ -8,6 +8,7 @@ from textwrap import indent
from functools import wraps
from .agents import FSM, MetaFSM
+from mesa import Model, Agent
def wrapcmd(func):
@@ -15,14 +16,22 @@ def wrapcmd(func):
def wrapper(self, arg: str, temporary=False):
sys.settrace(self.trace_dispatch)
+ lastself = self
known = globals()
known.update(self.curframe.f_globals)
known.update(self.curframe.f_locals)
- known["agent"] = known.get("self", None)
- known["model"] = known.get("self", {}).get("model")
known["attrs"] = arg.strip().split()
- exec(func.__code__, known, known)
+ this = known.get("self", None)
+
+ if isinstance(this, Model):
+ known["model"] = this
+ elif isinstance(this, Agent):
+ known["agent"] = this
+ known["model"] = this.model
+
+ known["self"] = lastself
+ return exec(func.__code__, known, known)
return wrapper
@@ -57,6 +66,7 @@ class Debug(pdb.Pdb):
do_sl = do_soil_list
def do_continue_state(self, arg):
+ """Continue until next time this state is reached"""
self.do_break_state(arg, temporary=True)
return self.do_continue("")
@@ -80,6 +90,49 @@ class Debug(pdb.Pdb):
do_aa = do_soil_agent
+ def do_break_step(self, arg: str):
+ """
+ Break before the next step.
+ """
+ try:
+ known = globals()
+ known.update(self.curframe.f_globals)
+ known.update(self.curframe.f_locals)
+ func = getattr(known["model"], "step")
+ except AttributeError as ex:
+ self.error(f"The model does not have a step function: {ex}")
+ return
+ if hasattr(func, "__func__"):
+ func = func.__func__
+
+ code = func.__code__
+ # use co_name to identify the bkpt (function names
+ # could be aliased, but co_name is invariant)
+ funcname = code.co_name
+ lineno = code.co_firstlineno
+ filename = code.co_filename
+
+ # Check for reasonable breakpoint
+ line = self.checkline(filename, lineno)
+ if not line:
+ raise ValueError("no line found")
+ # now set the break point
+
+ existing = self.get_breaks(filename, line)
+ if existing:
+ self.message("Breakpoint already exists at %s:%d" % (filename, line))
+ return
+ cond = f"self.schedule.steps > {model.schedule.steps}"
+ err = self.set_break(filename, line, True, cond, funcname)
+ if err:
+ self.error(err)
+ else:
+ bp = self.get_breaks(filename, line)[-1]
+ self.message("Breakpoint %d at %s:%d" % (bp.number, bp.file, bp.line))
+ return self.do_continue("")
+
+ do_bstep = do_break_step
+
def do_break_state(self, arg: str, instances=None, temporary=False):
"""
Break before a specified state is stepped into.
diff --git a/soil/decorators.py b/soil/decorators.py
index 28811c4..94a4b08 100644
--- a/soil/decorators.py
+++ b/soil/decorators.py
@@ -1,4 +1,6 @@
def report(f: property):
- print(f.fget)
- setattr(f.fget, "add_to_report", True)
+ if isinstance(f, property):
+ setattr(f.fget, "add_to_report", True)
+ else:
+ setattr(f, "add_to_report", True)
return f
\ No newline at end of file
diff --git a/soil/environment.py b/soil/environment.py
index 0dd9f2a..ffe261f 100644
--- a/soil/environment.py
+++ b/soil/environment.py
@@ -19,8 +19,7 @@ from mesa import Model, Agent
from . import agents as agentmod, datacollection, serialization, utils, time, network, events
-# TODO: add metaclass to read attributes of a model
-# TODO: read "report" attributes from the model
+# TODO: maybe add metaclass to read attributes of a model
class BaseEnvironment(Model):
"""
@@ -35,10 +34,31 @@ class BaseEnvironment(Model):
:meth:`soil.environment.Environment.get` method.
"""
- def __new__(cls, *args: Any, seed="default", dir_path=None, **kwargs: Any) -> Any:
+ def __new__(cls,
+ *args: Any,
+ seed="default",
+ dir_path=None,
+ collector_class: type = datacollection.SoilCollector,
+ agent_reporters: Optional[Any] = None,
+ model_reporters: Optional[Any] = None,
+ tables: Optional[Any] = None,
+ **kwargs: Any) -> Any:
"""Create a new model with a default seed value"""
self = super().__new__(cls, *args, seed=seed, **kwargs)
self.dir_path = dir_path or os.getcwd()
+ collector_class = serialization.deserialize(collector_class)
+ self.datacollector = collector_class(
+ model_reporters=model_reporters,
+ agent_reporters=agent_reporters,
+ tables=tables,
+ )
+ for k in dir(cls):
+ v = getattr(cls, k)
+ if isinstance(v, property):
+ v = v.fget
+ if getattr(v, "add_to_report", False):
+ self.add_model_reporter(k, v)
+
return self
def __init__(
@@ -69,18 +89,12 @@ class BaseEnvironment(Model):
schedule_class = time.TimedActivation
else:
schedule_class = serialization.deserialize(schedule_class)
- self.schedule = schedule_class(self)
self.interval = interval
+ self.schedule = schedule_class(self)
self.logger = utils.logger.getChild(self.id)
- collector_class = serialization.deserialize(collector_class)
- self.datacollector = collector_class(
- model_reporters=model_reporters,
- agent_reporters=agent_reporters,
- tables=tables,
- )
for (k, v) in env_params.items():
self[k] = v
@@ -96,7 +110,7 @@ class BaseEnvironment(Model):
def agents(self):
return agentmod.AgentView(self.schedule._agents)
- def find_one(self, *args, **kwargs):
+ def agent(self, *args, **kwargs):
return agentmod.AgentView(self.schedule._agents).one(*args, **kwargs)
def count_agents(self, *args, **kwargs):
@@ -109,6 +123,8 @@ class BaseEnvironment(Model):
raise Exception(
"The environment has not been scheduled, so it has no sense of time"
)
+ def init_agents(self):
+ pass
def add_agent(self, agent_class, unique_id=None, **agent):
if unique_id is None:
@@ -127,6 +143,8 @@ class BaseEnvironment(Model):
return a
def add_agents(self, agent_classes: List[type], k, weights: Optional[List[float]] = None, **kwargs):
+ if isinstance(agent_classes, type):
+ agent_classes = [agent_classes]
if weights is None:
weights = [1] * len(agent_classes)
@@ -150,12 +168,27 @@ class BaseEnvironment(Model):
Advance one step in the simulation, and update the data collection and scheduler appropriately
"""
super().step()
- # self.logger.info(
- # "--- Step: {:^5} - Time: {now:^5} ---", steps=self.schedule.steps, now=self.now
- # )
self.schedule.step()
self.datacollector.collect(self)
+ msg = "Model data:\n"
+ max_width = max(len(k) for k in self.datacollector.model_vars.keys())
+ for (k, v) in self.datacollector.model_vars.items():
+ msg += f"\t{k:<{max_width}}: {v[-1]:>6}\n"
+ self.logger.info(f"--- Steps: {self.schedule.steps:^5} - Time: {self.now:^5} --- " + msg)
+
+ def add_model_reporter(self, name, func=None):
+ if not func:
+ func = lambda env: getattr(env, name)
+ self.datacollector._new_model_reporter(name, func)
+
+ def add_agent_reporter(self, name, agent_type=None):
+ if agent_type:
+ reporter = lambda a: getattr(a, name) if isinstance(a, agent_type) else None
+ else:
+ reporter = name
+ self.datacollector._new_agent_reporter(name, reporter)
+
def __getitem__(self, key):
try:
return getattr(self, key)
@@ -192,18 +225,19 @@ class NetworkEnvironment(BaseEnvironment):
and methods to associate agents to nodes and vice versa.
"""
- def __init__(
- self, *args,
- topology: Optional[Union[nx.Graph, str]] = None,
- agent_class: Optional[Type[agentmod.Agent]] = None,
- network_generator: Optional[Callable] = None,
- network_params: Optional[Dict] = None, **kwargs
- ):
+ def __init__(self,
+ *args,
+ topology: Optional[Union[nx.Graph, str]] = None,
+ agent_class: Optional[Type[agentmod.Agent]] = None,
+ network_generator: Optional[Callable] = None,
+ network_params: Optional[Dict] = {},
+ init=True,
+ **kwargs):
self.topology = topology
self.network_generator = network_generator
self.network_params = network_params
if topology or network_params or network_generator:
- self.create_network(topology, network_params=network_params, network_generator=network_generator)
+ self.create_network(topology, generator=network_generator, **network_params)
else:
self.G = nx.Graph()
super().__init__(*args, **kwargs, init=False)
@@ -211,23 +245,35 @@ class NetworkEnvironment(BaseEnvironment):
self.agent_class = agent_class
if agent_class:
self.agent_class = serialization.deserialize(agent_class)
- self.init()
if self.agent_class:
self.populate_network(self.agent_class)
+ self._check_agent_nodes()
+ if init:
+ self.init()
+ def add_agent(self, agent_class, *args, node_id=None, topology=None, **kwargs):
+ if node_id is None and topology is None:
+ return super().add_agent(agent_class, *args, **kwargs)
+ try:
+ a = super().add_agent(agent_class, *args, node_id=node_id, **kwargs)
+ except TypeError:
+ self.logger.warning(f"Agent constructor for {agent_class} does not have a node_id attribute. Might be a bug.")
+ a = super().add_agent(agent_class, *args, **kwargs)
+ self.G.nodes[node_id]["agent"] = a
+ return a
def add_agents(self, *args, k=None, **kwargs):
if not k and not self.G:
raise ValueError("Cannot add agents to an empty network")
super().add_agents(*args, k=k or len(self.G), **kwargs)
- def create_network(self, topology=None, network_generator=None, path=None, network_params=None):
+ def create_network(self, topology=None, generator=None, path=None, **network_params):
if topology is not None:
topology = network.from_topology(topology, dir_path=self.dir_path)
elif path is not None:
topology = network.from_topology(path, dir_path=self.dir_path)
- elif network_generator is not None:
- topology = network.from_params(network_generator, dir_path=self.dir_path, **network_params)
+ elif generator is not None:
+ topology = network.from_params(generator=generator, dir_path=self.dir_path, **network_params)
else:
raise ValueError("topology must be a networkx.Graph or a string, or network_generator must be provided")
self.G = topology
@@ -235,21 +281,15 @@ class NetworkEnvironment(BaseEnvironment):
def init_agents(self, *args, **kwargs):
"""Initialize the agents from a"""
super().init_agents(*args, **kwargs)
- for agent in self.schedule._agents.values():
- self._assign_node(agent)
-
- def _assign_node(self, agent):
- """
- Make sure the node for a given agent has the proper attributes.
- """
- if hasattr(agent, "node_id"):
- self.G.nodes[agent.node_id]["agent"] = agent
@property
def network_agents(self):
- for a in self.schedule._agents.values():
- if isinstance(a, agentmod.NetworkAgent):
- yield a
+ """Return agents still alive and assigned to a node in the network."""
+ for (id, data) in self.G.nodes(data=True):
+ if "agent" in data:
+ agent = data["agent"]
+ if getattr(agent, "alive", True):
+ yield agent
def add_node(self, agent_class, unique_id=None, node_id=None, **kwargs):
if unique_id is None:
@@ -265,7 +305,6 @@ class NetworkEnvironment(BaseEnvironment):
self.G.add_node(node_id)
assert "agent" not in self.G.nodes[node_id]
- self.G.nodes[node_id]["agent"] = None # Reserve
a = self.add_agent(
unique_id=unique_id,
@@ -277,17 +316,32 @@ class NetworkEnvironment(BaseEnvironment):
a["visible"] = True
return a
- def add_agent(self, agent_class, *args, **kwargs):
- if issubclass(agent_class, agentmod.NetworkAgent) and "node_id" not in kwargs:
- return self.add_node(agent_class, *args, **kwargs)
- a = super().add_agent(agent_class, *args, **kwargs)
- if hasattr(a, "node_id"):
- assigned = self.G.nodes[a.node_id].get("agent")
- if not assigned:
- self.G.nodes[a.node_id]["agent"] = a
- elif assigned != a:
- raise ValueError(f"Node {a.node_id} already has an agent assigned: {assigned}")
- return a
+ def _check_agent_nodes(self):
+ """
+ Detect nodes that have agents assigned to them.
+ """
+ for (id, data) in self.G.nodes(data=True):
+ if "agent_id" in data:
+ agent = self.agents(data["agent_id"])
+ self.G.nodes[id]["agent"] = agent
+ assert not getattr(agent, "node_id", None) or agent.node_id == id
+ agent.node_id = id
+ for agent in self.agents():
+ if hasattr(agent, "node_id"):
+ node_id = agent["node_id"]
+ if node_id not in self.G.nodes:
+ raise ValueError(f"Agent {agent} is assigned to node {agent.node_id} which is not in the network")
+ node = self.G.nodes[node_id]
+ if node.get("agent") is not None and node["agent"] != agent:
+ raise ValueError(f"Node {node_id} already has a different agent assigned to it")
+ self.G.nodes[node_id]["agent"] = agent
+
+ def add_agents(self, agent_classes: List[type], k=None, weights: Optional[List[float]] = None, **kwargs):
+ if k is None:
+ k = len(self.G)
+ if not k:
+ raise ValueError("Cannot add agents to an empty network")
+ super().add_agents(agent_classes, k=k, weights=weights, **kwargs)
def agent_for_node_id(self, node_id):
return self.G.nodes[node_id].get("agent")
@@ -301,11 +355,15 @@ class NetworkEnvironment(BaseEnvironment):
weights = [1] * len(agent_class)
assert len(self.G)
classes = self.random.choices(agent_class, weights, k=len(self.G))
+ toadd = []
for (cls, (node_id, node)) in zip(classes, self.G.nodes(data=True)):
if "agent" in node:
continue
- a = self.add_agent(node_id=node_id, topology=self.G, agent_class=cls, **agent_params)
- node["agent"] = a
+ node["agent"] = None # Reserve
+ toadd.append(dict(node_id=node_id, topology=self.G, agent_class=cls, **agent_params))
+ for d in toadd:
+ a = self.add_agent(**d)
+ self.G.nodes[d["node_id"]]["agent"] = a
assert all("agent" in node for (_, node) in self.G.nodes(data=True))
assert len(list(self.network_agents))
diff --git a/soil/exporters.py b/soil/exporters.py
index 783d663..b815c22 100644
--- a/soil/exporters.py
+++ b/soil/exporters.py
@@ -38,7 +38,7 @@ class DryRunner(BytesIO):
except UnicodeDecodeError:
pass
logger.info(
- "**Not** written to {} (dry run mode):\n\n{}\n\n".format(
+ "**Not** written to {} (no_dump mode):\n\n{}\n\n".format(
self.__fname, content
)
)
@@ -51,12 +51,12 @@ class Exporter:
if you don't plan to implement all the methods.
"""
- def __init__(self, simulation, outdir=None, dry_run=None, copy_to=None):
+ def __init__(self, simulation, outdir=None, dump=True, copy_to=None):
self.simulation = simulation
outdir = outdir or os.path.join(os.getcwd(), "soil_output")
self.outdir = os.path.join(outdir, simulation.group or "", simulation.name)
- self.dry_run = dry_run
- if copy_to is None and dry_run:
+ self.dump = dump
+ if copy_to is None and not dump:
copy_to = sys.stdout
self.copy_to = copy_to
@@ -77,7 +77,7 @@ class Exporter:
pass
def output(self, f, mode="w", **kwargs):
- if self.dry_run:
+ if not self.dump:
f = DryRunner(f, copy_to=self.copy_to)
else:
try:
@@ -108,16 +108,16 @@ class SQLite(Exporter):
"""Writes sqlite results"""
def sim_start(self):
- if self.dry_run:
- logger.info("NOT dumping results")
+ if not self.dump:
+ logger.debug("NOT dumping results")
return
self.dbpath = os.path.join(self.outdir, f"{self.simulation.name}.sqlite")
logger.info("Dumping results to %s", self.dbpath)
try_backup(self.dbpath, remove=True)
def trial_end(self, env):
- if self.dry_run:
- logger.info("Running in DRY_RUN mode, the database will NOT be created")
+ if not self.dump:
+ logger.info("Running in NO DUMP mode, the database will NOT be created")
return
with timer(
@@ -147,8 +147,8 @@ class csv(Exporter):
# TODO: reimplement GEXF exporting without history
class gexf(Exporter):
def trial_end(self, env):
- if self.dry_run:
- logger.info("Not dumping GEXF in dry_run mode")
+ if not self.dump:
+ logger.info("Not dumping GEXF (NO_DUMP mode)")
return
with timer(
@@ -224,8 +224,8 @@ class YAML(Exporter):
"""Writes the configuration of the simulation to a YAML file"""
def sim_start(self):
- if self.dry_run:
- logger.info("NOT dumping results")
+ if not self.dump:
+ logger.debug("NOT dumping results")
return
with self.output(self.simulation.name + ".dumped.yml") as f:
logger.info(f"Dumping simulation configuration to {self.outdir}")
@@ -235,7 +235,7 @@ class default(Exporter):
"""Default exporter. Writes sqlite results, as well as the simulation YAML"""
def __init__(self, *args, exporter_cls=[], **kwargs):
- exporter_cls = exporter_cls or [YAML, SQLite, summary]
+ exporter_cls = exporter_cls or [YAML, SQLite]
self.inner = [cls(*args, **kwargs) for cls in exporter_cls]
def sim_start(self):
diff --git a/soil/serialization.py b/soil/serialization.py
index 8010f8b..72f45c1 100644
--- a/soil/serialization.py
+++ b/soil/serialization.py
@@ -4,14 +4,15 @@ import ast
import sys
import re
import importlib
+import importlib.machinery, importlib.util
from glob import glob
from itertools import product, chain
-from .config import Config
-
import yaml
import networkx as nx
+from . import config
+
from jinja2 import Template
@@ -90,24 +91,56 @@ def load_files(*patterns, **kwargs):
for i in glob(pattern, **kwargs, recursive=True):
for cfg in load_file(i):
path = os.path.abspath(i)
- yield Config.from_raw(cfg), path
+ yield cfg, path
def load_config(cfg):
- if isinstance(cfg, Config):
- yield cfg, os.getcwd()
- elif isinstance(cfg, dict):
- yield Config.from_raw(cfg), os.getcwd()
+ if isinstance(cfg, dict):
+ yield config.load_config(cfg), os.getcwd()
else:
yield from load_files(cfg)
builtins = importlib.import_module("builtins")
-KNOWN_MODULES = [
- "soil",
-]
+KNOWN_MODULES = {
+ 'soil': None,
+}
+
+MODULE_FILES = {}
+
+def add_source_file(file):
+ """Add a file to the list of known modules"""
+ file = os.path.abspath(file)
+ if file in MODULE_FILES:
+ logger.warning(f"File {file} already added as module {MODULE_FILES[file]}. Reloading")
+ remove_source_file(file)
+ modname = f"imported_module_{len(MODULE_FILES)}"
+ loader = importlib.machinery.SourceFileLoader(modname, file)
+ spec = importlib.util.spec_from_loader(loader.name, loader)
+ my_module = importlib.util.module_from_spec(spec)
+ loader.exec_module(my_module)
+ MODULE_FILES[file] = modname
+ KNOWN_MODULES[modname] = my_module
+
+def remove_source_file(file):
+ """Remove a file from the list of known modules"""
+ file = os.path.abspath(file)
+ modname = None
+ try:
+ modname = MODULE_FILES.pop(file)
+ KNOWN_MODULES.pop(modname)
+ except KeyError as ex:
+ raise ValueError(f"File {file} had not been added as a module: {ex}")
+
+def get_module(modname):
+ """Get a module from the list of known modules"""
+ if modname not in KNOWN_MODULES or KNOWN_MODULES[modname] is None:
+ module = importlib.import_module(modname)
+ KNOWN_MODULES[modname] = module
+ return KNOWN_MODULES[modname]
+
def name(value, known_modules=KNOWN_MODULES):
"""Return a name that can be imported, to serialize/deserialize an object"""
@@ -124,9 +157,7 @@ def name(value, known_modules=KNOWN_MODULES):
if known_modules and modname in known_modules:
return tname
for kmod in known_modules:
- if not kmod:
- continue
- module = importlib.import_module(kmod)
+ module = get_module(kmod)
if hasattr(module, tname):
return tname
return "{}.{}".format(modname, tname)
@@ -177,7 +208,7 @@ def deserializer(type_, known_modules=KNOWN_MODULES):
match = IS_CLASS.match(type_)
if match:
modname, tname = match.group(1).rsplit(".", 1)
- module = importlib.import_module(modname)
+ module = get_module(modname)
cls = getattr(module, tname)
return getattr(cls, "deserialize", cls)
@@ -195,7 +226,7 @@ def deserializer(type_, known_modules=KNOWN_MODULES):
errors = []
for modname, tname in options:
try:
- module = importlib.import_module(modname)
+ module = get_module(modname)
cls = getattr(module, tname)
return getattr(cls, "deserialize", cls)
except (ImportError, AttributeError) as ex:
diff --git a/soil/simulation.py b/soil/simulation.py
index 06fc92c..1e3e16d 100644
--- a/soil/simulation.py
+++ b/soil/simulation.py
@@ -10,7 +10,7 @@ import networkx as nx
from textwrap import dedent
-from dataclasses import dataclass, field, asdict
+from dataclasses import dataclass, field, asdict, replace
from typing import Any, Dict, Union, Optional, List
@@ -22,7 +22,7 @@ import pickle
from . import serialization, exporters, utils, basestring, agents
from .environment import Environment
from .utils import logger, run_and_return_exceptions
-from .config import Config, convert_old
+from .debugging import set_trace
_AVOID_RUNNING = False
_QUEUED = []
@@ -31,24 +31,50 @@ _QUEUED = []
def do_not_run():
global _AVOID_RUNNING
_AVOID_RUNNING = True
- yield
- _AVOID_RUNNING = False
+ try:
+ logger.debug("NOT RUNNING")
+ yield
+ finally:
+ logger.debug("RUNNING AGAIN")
+ _AVOID_RUNNING = False
+
+
+def _iter_queued():
+ while _QUEUED:
+ (cls, args, kwargs) = _QUEUED.pop(0)
+ yield replace(cls, **kwargs)
# TODO: change documentation for simulation
@dataclass
class Simulation:
"""
- Parameters
- ---------
- config (optional): :class:`config.Config`
- name of the Simulation
+ A simulation is a collection of agents and a model. It is responsible for running the model and agents, and collecting data from them.
- kwargs: parameters to use to initialize a new configuration, if one not been provided.
+ Args:
+ version: The version of the simulation. This is used to determine how to load the simulation.
+ name: The name of the simulation.
+ description: A description of the simulation.
+ group: The group that the simulation belongs to.
+ model: The model to use for the simulation. This can be a string or a class.
+ model_params: The parameters to pass to the model.
+ seed: The seed to use for the simulation.
+ dir_path: The directory path to use for the simulation.
+ max_time: The maximum time to run the simulation.
+ max_steps: The maximum number of steps to run the simulation.
+ interval: The interval to use for the simulation.
+ num_trials: The number of trials (times) to run the simulation.
+ num_processes: The number of processes to use for the simulation. If greater than one, simulations will be performed in parallel. This may make debugging and error handling difficult.
+ tables: The tables to use in the simulation datacollector
+ agent_reporters: The agent reporters to use in the datacollector
+ model_reporters: The model reporters to use in the datacollector
+ dry_run: Whether or not to run the simulation. If True, the simulation will not be run.
+ source_file: Python file to use to find additional classes.
"""
version: str = "2"
- name: str = "Unnamed simulation"
+ source_file: Optional[str] = None
+ name: Optional[str] = None
description: Optional[str] = ""
group: str = None
model: Union[str, type] = "soil.Environment"
@@ -67,24 +93,17 @@ class Simulation:
outdir: Optional[str] = None
exporter_params: Optional[Dict[str, Any]] = field(default_factory=dict)
dry_run: bool = False
+ dump: bool = False
extra: Dict[str, Any] = field(default_factory=dict)
skip_test: Optional[bool] = False
+ debug: Optional[bool] = False
- @classmethod
- def from_dict(cls, env, **kwargs):
-
- ignored = {
- k: v for k, v in env.items() if k not in inspect.signature(cls).parameters
- }
-
- d = {k: v for k, v in env.items() if k not in ignored}
- if ignored:
- d.setdefault("extra", {}).update(ignored)
- if ignored:
- logger.warning(f'Ignoring these parameters (added to "extra"): { ignored }')
- d.update(kwargs)
-
- return cls(**d)
+ def __post_init__(self):
+ if self.name is None:
+ if isinstance(self.model, str):
+ self.name = self.model
+ else:
+ self.name = self.model.__class__.__name__
def run_simulation(self, *args, **kwargs):
return self.run(*args, **kwargs)
@@ -102,13 +121,14 @@ class Simulation:
)
if _AVOID_RUNNING:
_QUEUED.append((self, args, kwargs))
- return list()
- return list(self.run_gen(*args, **kwargs))
+ return []
+ return list(self._run_gen(*args, **kwargs))
- def run_gen(
+ def _run_gen(
self,
num_processes=1,
dry_run=None,
+ dump=None,
exporters=None,
outdir=None,
exporter_params={},
@@ -123,6 +143,8 @@ class Simulation:
logger.info("Output directory: %s", outdir)
if dry_run is None:
dry_run = self.dry_run
+ if dump is None:
+ dump = self.dump
if exporters is None:
exporters = self.exporters
if not exporter_params:
@@ -134,33 +156,50 @@ class Simulation:
known_modules=[
"soil.exporters",
],
- dry_run=dry_run,
+ dump=dump and not dry_run,
outdir=outdir,
**exporter_params,
)
- with utils.timer("simulation {}".format(self.name)):
- for exporter in exporters:
- exporter.sim_start()
+ if self.source_file:
+ source_file = self.source_file
+ if not os.path.isabs(source_file):
+ source_file = os.path.abspath(os.path.join(self.dir_path, source_file))
+ serialization.add_source_file(source_file)
+ try:
- for env in utils.run_parallel(
- func=self.run_trial,
- iterable=range(int(self.num_trials)),
- num_processes=num_processes,
- log_level=log_level,
- **kwargs,
- ):
+ with utils.timer("simulation {}".format(self.name)):
+ for exporter in exporters:
+ exporter.sim_start()
+
+ if dry_run:
+ def func(*args, **kwargs):
+ return None
+ else:
+ func = self.run_trial
+
+ for env in utils.run_parallel(
+ func=self.run_trial,
+ iterable=range(int(self.num_trials)),
+ num_processes=num_processes,
+ log_level=log_level,
+ **kwargs,
+ ):
+ if env is None and dry_run:
+ continue
+
+ for exporter in exporters:
+ exporter.trial_end(env)
+
+ yield env
for exporter in exporters:
- exporter.trial_start(env)
-
- for exporter in exporters:
- exporter.trial_end(env)
-
- yield env
-
- for exporter in exporters:
- exporter.sim_end()
+ exporter.sim_end()
+ finally:
+ pass
+ # TODO: reintroduce
+ # if self.source_file:
+ # serialization.remove_source_file(self.source_file)
def get_env(self, trial_id=0, model_params=None, **kwargs):
"""Create an environment for a trial of the simulation"""
@@ -188,6 +227,7 @@ class Simulation:
id=f"{self.name}_trial_{trial_id}",
seed=f"{self.seed}_trial_{trial_id}",
dir_path=self.dir_path,
+ interval=self.interval,
agent_reporters=agent_reporters,
model_reporters=model_reporters,
tables=tables,
@@ -223,6 +263,9 @@ class Simulation:
def is_done():
return prev() or model.schedule.time >= until
+
+ if not model.schedule.agents:
+ raise Exception("No agents in model. This is probably a bug. Make sure that the model has agents scheduled after its initialization.")
if self.max_steps and self.max_steps > 0 and hasattr(model.schedule, "steps"):
prev_steps = is_done
@@ -235,24 +278,21 @@ class Simulation:
dedent(
f"""
Model stats:
- Agents (total: { model.schedule.get_agent_count() }):
- - { (newline + ' - ').join(str(a) for a in model.schedule.agents) }
-
+ Agent count: { model.schedule.get_agent_count() }):
Topology size: { len(model.G) if hasattr(model, "G") else 0 }
"""
)
)
+ if self.debug:
+ set_trace()
+
while not is_done():
utils.logger.debug(
- f'Simulation time {model.schedule.time}/{until}. Next: {getattr(model.schedule, "next_time", model.schedule.time + self.interval)}'
+ f'Simulation time {model.schedule.time}/{until}.'
)
model.step()
- if (
- model.schedule.time < until
- ): # Simulation ended (no more steps) before the expected time
- model.schedule.time = until
return model
def to_dict(self):
@@ -271,14 +311,19 @@ def iter_from_file(*files, **kwargs):
yield from iter_from_config(f, **kwargs)
+def from_file(*args, **kwargs):
+ return list(iter_from_file(*args, **kwargs))
+
+
def iter_from_config(*cfgs, **kwargs):
for config in cfgs:
configs = list(serialization.load_config(config))
for config, path in configs:
d = dict(config)
+ d.update(kwargs)
if "dir_path" not in d:
d["dir_path"] = os.path.dirname(path)
- yield Simulation.from_dict(d, **kwargs)
+ yield Simulation(**d)
def from_config(conf_or_path):
@@ -293,7 +338,10 @@ def iter_from_py(pyfile, module_name='custom_simulation', **kwargs):
import importlib
import inspect
added = False
+ sims = []
+ assert not _AVOID_RUNNING
with do_not_run():
+ assert _AVOID_RUNNING
spec = importlib.util.spec_from_file_location(module_name, pyfile)
folder = os.path.dirname(pyfile)
if folder not in sys.path:
@@ -304,28 +352,27 @@ def iter_from_py(pyfile, module_name='custom_simulation', **kwargs):
module = importlib.util.module_from_spec(spec)
sys.modules[module_name] = module
spec.loader.exec_module(module)
- # import pdb;pdb.set_trace()
- loaded = False
- sims = []
for (_name, sim) in inspect.getmembers(module, lambda x: isinstance(x, Simulation)):
- loaded = True
sims.append(sim)
- for (_name, sim) in inspect.getmembers(module, lambda x: inspect.isclass(x) and issubclass(x, Simulation)):
- loaded = True
- sims.append(sim(**kwargs))
- if not loaded:
- raise AttributeError(f"No valid configurations found in {pyfile}")
+ for sim in _iter_queued():
+ sims.append(sim)
+ if not sims:
+ for (_name, sim) in inspect.getmembers(module, lambda x: inspect.isclass(x) and issubclass(x, Simulation)):
+ sims.append(sim(**kwargs))
del sys.modules[module_name]
+ assert not _AVOID_RUNNING
+ if not sims:
+ raise AttributeError(f"No valid configurations found in {pyfile}")
if added:
sys.path.remove(folder)
- yield from sims
+ for sim in sims:
+ yield replace(sim, **kwargs)
def from_py(pyfile):
return next(iter_from_py(pyfile))
-
def run_from_file(*files, **kwargs):
for sim in iter_from_file(*files):
logger.info(f"Using config(s): {sim.name}")
diff --git a/soil/time.py b/soil/time.py
index b3a87f8..5f9983f 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -97,7 +97,8 @@ class TimedActivation(BaseScheduler):
self._next = {}
self._queue = []
self._shuffle = shuffle
- self.step_interval = 1
+ # self.step_interval = getattr(self.model, "interval", 1)
+ self.step_interval = self.model.interval
self.logger = logger.getChild(f"time_{ self.model }")
def add(self, agent: MesaAgent, when=None):
diff --git a/tests/complete_converted.yml b/tests/complete_converted.yml
deleted file mode 100644
index 63f31a5..0000000
--- a/tests/complete_converted.yml
+++ /dev/null
@@ -1,49 +0,0 @@
----
-version: '2'
-name: simple
-group: tests
-dir_path: "/tmp/"
-num_trials: 3
-max_time: 100
-interval: 1
-seed: "CompleteSeed!"
-model_class: Environment
-model_params:
- topology:
- params:
- generator: complete_graph
- n: 4
- agents:
- agent_class: CounterModel
- state:
- group: network
- times: 1
- topology: true
- distribution:
- - agent_class: CounterModel
- weight: 0.25
- state:
- state_id: 0
- times: 1
- - agent_class: AggregatedCounter
- weight: 0.5
- state:
- times: 2
- override:
- - filter:
- node_id: 1
- state:
- name: 'Node 1'
- - filter:
- node_id: 2
- state:
- name: 'Node 2'
- fixed:
- - agent_class: BaseAgent
- hidden: true
- topology: false
- state:
- name: 'Environment Agent 1'
- times: 10
- group: environment
- am_i_complete: true
diff --git a/tests/old_complete.yml b/tests/old_complete.yml
deleted file mode 100644
index 9e4315b..0000000
--- a/tests/old_complete.yml
+++ /dev/null
@@ -1,37 +0,0 @@
----
-name: simple
-group: tests
-dir_path: "/tmp/"
-num_trials: 3
-max_time: 100
-interval: 1
-seed: "CompleteSeed!"
-network_params:
- generator: complete_graph
- n: 4
-network_agents:
- - agent_class: CounterModel
- weight: 0.25
- state:
- state_id: 0
- times: 1
- - agent_class: AggregatedCounter
- weight: 0.5
- state:
- times: 2
-environment_agents:
- - agent_id: 'Environment Agent 1'
- agent_class: BaseAgent
- state:
- times: 10
-environment_class: Environment
-environment_params:
- am_i_complete: true
-agent_class: CounterModel
-default_state:
- times: 1
-states:
- 1:
- name: 'Node 1'
- 2:
- name: 'Node 2'
diff --git a/tests/test_agents.py b/tests/test_agents.py
index 36b01ed..93760d6 100644
--- a/tests/test_agents.py
+++ b/tests/test_agents.py
@@ -22,7 +22,9 @@ class TestAgents(TestCase):
def test_die_raises_exception(self):
"""A dead agent should raise an exception if it is stepped after death"""
d = Dead(unique_id=0, model=environment.Environment())
+ assert d.alive
d.step()
+ assert not d.alive
with pytest.raises(stime.DeadAgent):
d.step()
@@ -161,3 +163,15 @@ class TestAgents(TestCase):
assert sum(pings) == sum(range(time)) * 2
# It is the same as pings, without the leading 0
assert sum(pongs) == sum(range(time)) * 2
+
+ def test_agent_filter(self):
+ e = environment.Environment()
+ e.add_agent(agent_class=agents.BaseAgent)
+ e.add_agent(agent_class=agents.Evented)
+ base = list(e.agents(agent_class=agents.BaseAgent))
+ assert len(base) == 2
+ ev = list(e.agents(agent_class=agents.Evented))
+ assert len(ev) == 1
+ assert ev[0].unique_id == 1
+ null = list(e.agents(unique_ids=[0, 1], agent_class=agents.NetworkAgent))
+ assert not null
\ No newline at end of file
diff --git a/tests/test_config.py b/tests/test_config.py
index 413b737..1e43c59 100644
--- a/tests/test_config.py
+++ b/tests/test_config.py
@@ -23,86 +23,18 @@ def isequal(a, b):
assert a == b
-@skip("new versions of soil do not rely on configuration files")
+# @skip("new versions of soil do not rely on configuration files")
class TestConfig(TestCase):
- def test_conversion(self):
- expected = serialization.load_file(join(ROOT, "complete_converted.yml"))[0]
- old = serialization.load_file(join(ROOT, "old_complete.yml"))[0]
- converted_defaults = config.convert_old(old, strict=False)
- converted = converted_defaults.dict(exclude_unset=True)
- isequal(converted, expected)
-
- def test_configuration_changes(self):
- """
- The configuration should not change after running
- the simulation.
- """
- config = serialization.load_file(join(EXAMPLES, "complete.yml"))[0]
- s = simulation.from_config(config)
- init_config = copy.copy(s.to_dict())
-
- s.run_simulation(dry_run=True)
- nconfig = s.to_dict()
- # del nconfig['to
- isequal(init_config, nconfig)
-
- def test_topology_config(self):
- netconfig = config.NetConfig(**{"path": join(ROOT, "test.gexf")})
- net = network.from_config(netconfig, dir_path=ROOT)
- assert len(net.nodes) == 2
- assert len(net.edges) == 1
-
- def test_env_from_config(self):
- """
- Simple configuration that tests that the graph is loaded, and that
- network agents are initialized properly.
- """
- cfg = {
- "name": "CounterAgent",
- "model_params": {
- "topology": join(ROOT, "test.gexf"),
- "agent_class": "CounterModel",
- },
- # 'states': [{'times': 10}, {'times': 20}],
- "max_time": 2,
- "dry_run": True,
- "num_trials": 1,
- }
- s = simulation.from_config(cfg)
-
- env = s.get_env()
- assert len(env.G.nodes) == 2
- assert len(env.G.edges) == 1
- assert len(env.agents) == 2
- assert env.agents[0].G == env.G
-
- def test_agents_from_config(self):
- """We test that the known complete configuration produces
- the right agents in the right groups"""
- cfg = serialization.load_file(join(ROOT, "complete_converted.yml"))[0]
- s = simulation.from_config(cfg)
- env = s.get_env()
- assert len(env.G.nodes) == 4
- assert len(env.agents(group="network")) == 4
- assert len(env.agents(group="environment")) == 1
-
- def test_yaml(self):
- """
- The YAML version of a newly created configuration should be equivalent
- to the configuration file used.
- Values not present in the original config file should have reasonable
- defaults.
- """
- with utils.timer("loading"):
- config = serialization.load_file(join(EXAMPLES, "complete.yml"))[0]
- s = simulation.from_config(config)
- with utils.timer("serializing"):
- serial = s.to_yaml()
- with utils.timer("recovering"):
- recovered = yaml.load(serial, Loader=yaml.FullLoader)
- for (k, v) in config.items():
- assert recovered[k] == v
+ def test_torvalds_config(self):
+ sim = simulation.from_config(os.path.join(ROOT, "test_config.yml"))
+ assert sim.interval == 2
+ envs = sim.run()
+ assert len(envs) == 1
+ env = envs[0]
+ assert env.interval == 2
+ assert env.count_agents() == 3
+ assert env.now == 20
def make_example_test(path, cfg):
@@ -116,7 +48,7 @@ def make_example_test(path, cfg):
s.num_trials = 1
if cfg.skip_test and not FORCE_TESTS:
self.skipTest('Example ignored.')
- envs = s.run_simulation(dry_run=True)
+ envs = s.run_simulation(dump=False)
assert envs
for env in envs:
assert env
diff --git a/tests/test_config.yml b/tests/test_config.yml
new file mode 100644
index 0000000..db1ffae
--- /dev/null
+++ b/tests/test_config.yml
@@ -0,0 +1,5 @@
+---
+source_file: "../examples/torvalds_sim.py"
+model: "TorvaldsEnv"
+max_steps: 10
+interval: 2
\ No newline at end of file
diff --git a/tests/test_examples.py b/tests/test_examples.py
index 8998b95..523943b 100644
--- a/tests/test_examples.py
+++ b/tests/test_examples.py
@@ -1,9 +1,12 @@
from unittest import TestCase
+from unittest.case import SkipTest
+
import os
from os.path import join
from glob import glob
-from soil import simulation, config, do_not_run
+
+from soil import simulation
ROOT = os.path.abspath(os.path.dirname(__file__))
EXAMPLES = join(ROOT, "..", "examples")
@@ -16,44 +19,54 @@ class TestExamples(TestCase):
pass
-def get_test_for_sim(sim, path):
+def get_test_for_sims(sims, path):
root = os.getcwd()
- iterations = sim.max_steps * sim.num_trials
- if iterations < 0 or iterations > 1000:
- sim.max_steps = 100
- sim.num_trials = 1
def wrapped(self):
- envs = sim.run_simulation(dry_run=True)
- assert envs
- for env in envs:
- assert env
- try:
- n = sim.model_params["network_params"]["n"]
- assert len(list(env.network_agents)) == n
- except KeyError:
- pass
- assert env.schedule.steps > 0 # It has run
- assert env.schedule.steps <= sim.max_steps # But not further than allowed
+ run = False
+ for sim in sims:
+ if sim.skip_test and not FORCE_TESTS:
+ continue
+ run = True
+ iterations = sim.max_steps * sim.num_trials
+ if iterations < 0 or iterations > 1000:
+ sim.max_steps = 100
+ sim.num_trials = 1
+ envs = sim.run_simulation(dump=False)
+ assert envs
+ for env in envs:
+ assert env
+ assert env.now > 0
+ try:
+ n = sim.model_params["network_params"]["n"]
+ assert len(list(env.network_agents)) == n
+ except KeyError:
+ pass
+ assert env.schedule.steps > 0 # It has run
+ assert env.schedule.steps <= sim.max_steps # But not further than allowed
+ if not run:
+ raise SkipTest("Example ignored because all simulations are set up to be skipped.")
return wrapped
def add_example_tests():
- sim_paths = []
+ sim_paths = {}
for path in glob(join(EXAMPLES, '**', '*.yml')):
if "soil_output" in path:
continue
+ if path not in sim_paths:
+ sim_paths[path] = []
for sim in simulation.iter_from_config(path):
- sim_paths.append((sim, path))
+ sim_paths[path].append(sim)
for path in glob(join(EXAMPLES, '**', '*_sim.py')):
+ if path not in sim_paths:
+ sim_paths[path] = []
for sim in simulation.iter_from_py(path):
- sim_paths.append((sim, path))
+ sim_paths[path].append(sim)
- for (sim, path) in sim_paths:
- if sim.skip_test and not FORCE_TESTS:
- continue
- test_case = get_test_for_sim(sim, path)
+ for (path, sims) in sim_paths.items():
+ test_case = get_test_for_sims(sims, path)
fname = os.path.basename(path)
test_case.__name__ = "test_example_file_%s" % fname
test_case.__doc__ = "%s should be a valid configuration" % fname
diff --git a/tests/test_exporters.py b/tests/test_exporters.py
index 3e7975b..5e86294 100644
--- a/tests/test_exporters.py
+++ b/tests/test_exporters.py
@@ -10,6 +10,8 @@ from soil import environment
from soil import simulation
from soil import agents
+from mesa import Agent as MesaAgent
+
class Dummy(exporters.Exporter):
started = False
@@ -41,14 +43,15 @@ class Exporters(TestCase):
# ticks every step
class SimpleEnv(environment.Environment):
def init(self):
- self.add_agent(agent_class=agents.BaseAgent)
+ self.add_agent(agent_class=MesaAgent)
num_trials = 5
max_time = 2
- s = simulation.Simulation(num_trials=num_trials, max_time=max_time, name="exporter_sim", dry_run=True, model=SimpleEnv)
+ s = simulation.Simulation(num_trials=num_trials, max_time=max_time, name="exporter_sim",
+ dump=False, model=SimpleEnv)
- for env in s.run_simulation(exporters=[Dummy], dry_run=True):
+ for env in s.run_simulation(exporters=[Dummy], dump=False):
assert len(env.agents) == 1
assert Dummy.started
@@ -60,18 +63,20 @@ class Exporters(TestCase):
assert Dummy.total_time == max_time * num_trials
def test_writing(self):
- """Try to write CSV, sqlite and YAML (without dry_run)"""
+ """Try to write CSV, sqlite and YAML (without no_dump)"""
n_trials = 5
+ n_nodes = 4
+ max_time = 2
config = {
"name": "exporter_sim",
"model_params": {
"network_generator": "complete_graph",
- "network_params": {"n": 4},
+ "network_params": {"n": n_nodes},
"agent_class": "CounterModel",
},
- "max_time": 2,
+ "max_time": max_time,
"num_trials": n_trials,
- "dry_run": False,
+ "dump": True,
}
output = io.StringIO()
s = simulation.from_config(config)
@@ -87,7 +92,7 @@ class Exporters(TestCase):
"constant": lambda x: 1,
},
},
- dry_run=False,
+ dump=True,
outdir=tmpdir,
exporter_params={"copy_to": output},
)
@@ -100,12 +105,13 @@ class Exporters(TestCase):
try:
for e in envs:
- db = sqlite3.connect(os.path.join(simdir, f"{s.name}.sqlite"))
+ dbpath = os.path.join(simdir, f"{s.name}.sqlite")
+ db = sqlite3.connect(dbpath)
cur = db.cursor()
- agent_entries = cur.execute("SELECT * from agents").fetchall()
- env_entries = cur.execute("SELECT * from env").fetchall()
- assert len(agent_entries) > 0
- assert len(env_entries) > 0
+ agent_entries = cur.execute("SELECT times FROM agents WHERE times > 0").fetchall()
+ env_entries = cur.execute("SELECT constant from env WHERE constant == 1").fetchall()
+ assert len(agent_entries) == n_nodes * n_trials * max_time
+ assert len(env_entries) == n_trials * max_time
with open(os.path.join(simdir, "{}.env.csv".format(e.id))) as f:
result = f.read()
diff --git a/tests/test_main.py b/tests/test_main.py
index 5174dbd..f73f690 100644
--- a/tests/test_main.py
+++ b/tests/test_main.py
@@ -6,9 +6,11 @@ import networkx as nx
from functools import partial
from os.path import join
-from soil import simulation, Environment, agents, network, serialization, utils, config
+from soil import simulation, Environment, agents, network, serialization, utils, config, from_file
from soil.time import Delta
+from mesa import Agent as MesaAgent
+
ROOT = os.path.abspath(os.path.dirname(__file__))
EXAMPLES = join(ROOT, "..", "examples")
@@ -30,11 +32,12 @@ class TestMain(TestCase):
config = {
"model_params": {
"topology": join(ROOT, "test.gexf"),
- "agent_class": "NetworkAgent",
- }
+ "agent_class": MesaAgent,
+ },
+ "max_time": 1
}
s = simulation.from_config(config)
- s.run_simulation(dry_run=True)
+ s.run_simulation(dump=False)
def test_network_agent(self):
"""
@@ -75,7 +78,6 @@ class TestMain(TestCase):
def test_init_and_count_agents(self):
"""Agents should be properly initialized and counting should filter them properly"""
- # TODO: separate this test into two or more test cases
env = Environment(topology=join(ROOT, "test.gexf"))
env.populate_network([CustomAgent.w(weight=1), CustomAgent.w(weight=3)])
assert env.agents[0].weight == 1
@@ -91,7 +93,7 @@ class TestMain(TestCase):
try:
os.chdir(os.path.dirname(pyfile))
s = simulation.from_py(pyfile)
- env = s.run_simulation(dry_run=True)[0]
+ env = s.run_simulation(dump=False)[0]
for a in env.network_agents:
skill_level = a["skill_level"]
if a.node_id == "Torvalds":
@@ -151,7 +153,6 @@ class TestMain(TestCase):
def step(self):
nonlocal n_runs
n_runs += 1
- return super().step()
n_trials = 50
max_time = 2
@@ -160,7 +161,7 @@ class TestMain(TestCase):
num_trials=n_trials,
max_time=max_time,
)
- runs = list(s.run_simulation(dry_run=True))
+ runs = list(s.run_simulation(dump=False))
over = list(x.now for x in runs if x.now > 2)
assert len(runs) == n_trials
assert len(over) == 0
@@ -203,3 +204,21 @@ class TestMain(TestCase):
assert when == 2
when = a.step()
assert when == Delta(a.interval)
+
+ def test_load_sim(self):
+ """Make sure at least one of the examples can be loaded"""
+ sims = from_file(os.path.join(EXAMPLES, "newsspread", "newsspread_sim.py"))
+ assert len(sims) == 3*3*2
+ for sim in sims:
+ assert sim
+ assert sim.name == "newspread_sim"
+ assert sim.num_trials == 5
+ assert sim.max_steps == 300
+ assert not sim.dump
+ assert sim.model_params
+ assert "ratio_dumb" in sim.model_params
+ assert "ratio_herd" in sim.model_params
+ assert "ratio_wise" in sim.model_params
+ assert "network_generator" in sim.model_params
+ assert "network_params" in sim.model_params
+ assert "prob_neighbor_spread" in sim.model_params
\ No newline at end of file
diff --git a/tests/test_network.py b/tests/test_network.py
index 8fc6644..b995ff7 100644
--- a/tests/test_network.py
+++ b/tests/test_network.py
@@ -79,8 +79,8 @@ class TestNetwork(TestCase):
env = environment.Environment(name="Test", topology=G)
env.populate_network(agents.NetworkAgent)
- a2 = env.find_one(node_id=2)
- a3 = env.find_one(node_id=3)
+ a2 = env.agent(node_id=2)
+ a3 = env.agent(node_id=3)
assert len(a2.subgraph(limit_neighbors=True)) == 2
assert len(a3.subgraph(limit_neighbors=True)) == 1
assert len(a3.subgraph(limit_neighbors=True, center=False)) == 0
From 4e9570918836974363e33ac720634f9f71602918 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Fri, 14 Apr 2023 19:53:31 +0200
Subject: [PATCH 30/39] Update README
---
README.md | 26 ++++++++++++++------------
1 file changed, 14 insertions(+), 12 deletions(-)
diff --git a/README.md b/README.md
index 2ad76be..cadfe22 100644
--- a/README.md
+++ b/README.md
@@ -1,20 +1,19 @@
# [SOIL](https://github.com/gsi-upm/soil)
+**Note**: Mesa 0.30 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/notes_v0.30.rst)
+
Soil is an extensible and user-friendly Agent-based Social Simulator for Social Networks.
Learn how to run your own simulations with our [documentation](http://soilsim.readthedocs.io).
Follow our [tutorial](examples/tutorial/soil_tutorial.ipynb) to develop your own agent models.
-**Note**: Mesa 0.30 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/migration_0.30.rst)
-## SOIL vs MESA
+## Features
-SOIL is a batteries-included platform that builds on top of MESA and provides the following out of the box:
-
-* Integration with (social) networks
-* The ability to more easily assign agents to your model (and optionally to its network):
- * Assigning agents to nodes, and vice versa
- * Using a description (e.g., 2 agents of type `Foo`, 10% of the network should be agents of type `Bar`)
+* Integration with (social) networks (through `networkx`)
+* Convenience functions and methods to easily assign agents to your model (and optionally to its network):
+ * Following a given distribution (e.g., 2 agents of type `Foo`, 10% of the network should be agents of type `Bar`)
+ * Based on the topology of the network
* **Several types of abstractions for agents**:
* Finite state machine, where methods can be turned into a state
* Network agents, which have convenience methods to access the model's topology
@@ -36,12 +35,15 @@ SOIL is a batteries-included platform that builds on top of MESA and provides th
* A command line interface (`soil`), to run multiple
* An integrated debugger (`soil --debug`) with custom functions to print agent states and break at specific states
-Nevertheless, most features in SOIL have been designed to integrate with plain Mesa.
+
+## Mesa compatibility
+
+SOIL has been redesigned to integrate well with [Mesa](https://github.com/projectmesa/mesa).
For instance, it should be possible to run a `mesa.Model` models using a `soil.Simulation` and the `soil` CLI, or to integrate the `soil.TimedActivation` scheduler on a `mesa.Model`.
-Note that some combinations of `mesa` and `soil` components, while technically possible, are much less useful or even wrong.
-For instance, you may add any `soil.agent` agent (except for the `soil.NetworkAgent`, as it needs a topology) on a regular `mesa.Model` with a vanilla scheduler from `mesa.time`.
-But in that case the agents will not get any of the advanced event-based scheduling, and most agent behaviors that depend on that will greatly vary.
+Note that some combinations of `mesa` and `soil` components, while technically possible, are much less useful or might yield surprising results.
+For instance, you may add any `soil.agent` agent on a regular `mesa.Model` with a vanilla scheduler from `mesa.time`.
+But in that case the agents will not get any of the advanced event-based scheduling, and most agent behaviors that depend on that may not work.
## Changes in version 0.3
From a3fc6a5efa477ffcd6ce6d44eeb5a9ee9517daf8 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Fri, 14 Apr 2023 19:56:44 +0200
Subject: [PATCH 31/39] Update README
---
README.md | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/README.md b/README.md
index cadfe22..65555b4 100644
--- a/README.md
+++ b/README.md
@@ -1,12 +1,13 @@
# [SOIL](https://github.com/gsi-upm/soil)
-**Note**: Mesa 0.30 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/notes_v0.30.rst)
Soil is an extensible and user-friendly Agent-based Social Simulator for Social Networks.
Learn how to run your own simulations with our [documentation](http://soilsim.readthedocs.io).
Follow our [tutorial](examples/tutorial/soil_tutorial.ipynb) to develop your own agent models.
+> **Warning**
+> Mesa 0.30 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/notes_v0.30.rst)
## Features
@@ -32,7 +33,7 @@ Follow our [tutorial](examples/tutorial/soil_tutorial.ipynb) to develop your own
* Run models in parallel
* Save results to different formats
* Simulation configuration files
-* A command line interface (`soil`), to run multiple
+* A command line interface (`soil`), to quickly run simulations with different parameters
* An integrated debugger (`soil --debug`) with custom functions to print agent states and break at specific states
From 05748a325056d0624e3ba35a98af33870a5c2866 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Fri, 14 Apr 2023 20:03:47 +0200
Subject: [PATCH 32/39] Update python version requirement
---
setup.py | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/setup.py b/setup.py
index e9b3df6..a64aa41 100644
--- a/setup.py
+++ b/setup.py
@@ -44,13 +44,18 @@ setup(
'Operating System :: MacOS :: MacOS X',
'Operating System :: Microsoft :: Windows',
'Operating System :: POSIX',
- 'Programming Language :: Python :: 3'],
+ "Programming Language :: Python :: 3 :: Only",
+ "Programming Language :: Python :: 3.8",
+ "Programming Language :: Python :: 3.9",
+ "Programming Language :: Python :: 3.10",
+ ],
install_requires=install_reqs,
extras_require=extras_require,
tests_require=test_reqs,
setup_requires=['pytest-runner', ],
pytest_plugins = ['pytest_profiling'],
include_package_data=True,
+ python_requires=">=3.8",
entry_points={
'console_scripts':
['soil = soil.__main__:main',
From b3e77cbff58379953a019d7b2dbe334f00037a0f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Fri, 14 Apr 2023 20:07:16 +0200
Subject: [PATCH 33/39] Update python version in gitlab-ci
---
.gitlab-ci.yml | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 31104b3..e438835 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -20,7 +20,7 @@ docker:
test:
tags:
- docker
- image: python:3.7
+ image: python:3.8
stage: test
script:
- pip install -r requirements.txt -r test-requirements.txt
@@ -31,7 +31,7 @@ push_pypi:
- tags
tags:
- docker
- image: python:3.7
+ image: python:3.8
stage: publish
script:
- echo $CI_COMMIT_TAG > soil/VERSION
@@ -44,7 +44,7 @@ check_pypi:
- tags
tags:
- docker
- image: python:3.7
+ image: python:3.8
stage: check_published
script:
- pip install soil==$CI_COMMIT_TAG
From 1d882dcff6f749a28c6932eb875f58937e58aad1 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Fri, 14 Apr 2023 20:21:34 +0200
Subject: [PATCH 34/39] Update easy function
---
examples/events_and_messages/README.md | 2 ++
examples/events_and_messages/cars_sim.py | 2 +-
soil/__init__.py | 10 +++-------
soil/__main__.py | 4 ++--
soil/time.py | 4 ++--
5 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/examples/events_and_messages/README.md b/examples/events_and_messages/README.md
index c5b77df..cd8b155 100644
--- a/examples/events_and_messages/README.md
+++ b/examples/events_and_messages/README.md
@@ -2,6 +2,8 @@ This example can be run like with command-line options, like this:
```bash
python cars.py --level DEBUG -e summary --csv
+#or
+soil cars.py -e summary
```
This will set the `CSV` (save the agent and model data to a CSV) and `summary` (print the a summary of the data to stdout) exporters, and set the log level to DEBUG.
diff --git a/examples/events_and_messages/cars_sim.py b/examples/events_and_messages/cars_sim.py
index 5e93138..9b3d1a4 100644
--- a/examples/events_and_messages/cars_sim.py
+++ b/examples/events_and_messages/cars_sim.py
@@ -223,4 +223,4 @@ simulation = Simulation(name="RideHailing",
model_params=dict(n_passengers=2))
if __name__ == "__main__":
- simulation.run()
\ No newline at end of file
+ easy(simulation)
\ No newline at end of file
diff --git a/soil/__init__.py b/soil/__init__.py
index 13109cf..158f524 100644
--- a/soil/__init__.py
+++ b/soil/__init__.py
@@ -33,7 +33,6 @@ def main(
num_processes=1,
output="soil_output",
*,
- do_run=False,
debug=False,
pdb=False,
**kwargs,
@@ -234,10 +233,7 @@ def main(
if args.only_convert:
print(sim.to_yaml())
continue
- if do_run:
- res.append(sim.run(until=args.until))
- else:
- res.append(sim)
+ res.append(sim.run(until=args.until))
except Exception as ex:
if args.pdb:
@@ -258,7 +254,7 @@ def main(
@contextmanager
def easy(cfg, pdb=False, debug=False, **kwargs):
try:
- yield main(cfg, debug=debug, pdb=pdb, **kwargs)[0]
+ return main(cfg, debug=debug, pdb=pdb, **kwargs)[0]
except Exception as e:
if os.environ.get("SOIL_POSTMORTEM"):
from .debugging import post_mortem
@@ -269,4 +265,4 @@ def easy(cfg, pdb=False, debug=False, **kwargs):
if __name__ == "__main__":
- main(do_run=True)
+ main()
diff --git a/soil/__main__.py b/soil/__main__.py
index 0c76791..0c40ec3 100644
--- a/soil/__main__.py
+++ b/soil/__main__.py
@@ -2,8 +2,8 @@ from . import main as init_main
def main():
- init_main(do_run=True)
+ init_main()
if __name__ == "__main__":
- init_main(do_run=True)
+ init_main()
diff --git a/soil/time.py b/soil/time.py
index 5f9983f..12f993f 100644
--- a/soil/time.py
+++ b/soil/time.py
@@ -137,7 +137,7 @@ class TimedActivation(BaseScheduler):
if not self.model.running or self.time == INFINITY:
return
- self.logger.debug("Queue length: {ql}", ql=len(self._queue))
+ self.logger.debug(f"Queue length: %s", len(self._queue))
while self._queue:
((when, _id, cond), agent) = self._queue[0]
@@ -157,7 +157,7 @@ class TimedActivation(BaseScheduler):
agent._last_return = None
agent._last_except = None
- self.logger.debug("Stepping agent {agent}", agent=agent)
+ self.logger.debug("Stepping agent %s", agent)
self._next.pop(agent.unique_id, None)
try:
From be65592055061d5c43d3c0669d221f6cc0f0acee Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Fri, 14 Apr 2023 20:25:16 +0200
Subject: [PATCH 35/39] Default parameters terroristnetwork
---
examples/terrorism/TerroristNetworkModel_sim.py | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/examples/terrorism/TerroristNetworkModel_sim.py b/examples/terrorism/TerroristNetworkModel_sim.py
index 835412c..1c8f9bf 100644
--- a/examples/terrorism/TerroristNetworkModel_sim.py
+++ b/examples/terrorism/TerroristNetworkModel_sim.py
@@ -249,10 +249,10 @@ class TerroristNetworkModel(TerroristSpreadModel):
weight_link_distance
"""
- sphere_influence: float
- vision_range: float
- weight_social_distance: float
- weight_link_distance: float
+ sphere_influence: float = 1
+ vision_range: float = 1
+ weight_social_distance: float = 0.5
+ weight_link_distance: float = 0.2
@state
def terrorist(self):
From cc238d84ec481b4e5544efdbd69253977541aa57 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?J=2E=20Fernando=20S=C3=A1nchez?=
Date: Thu, 20 Apr 2023 17:56:44 +0200
Subject: [PATCH 36/39] Pre-release version of v1.0
---
CHANGELOG.md | 26 +-
README.md | 2 +-
docs/index.rst | 17 +-
docs/installation.rst | 41 +-
docs/{notes_v0.30.rst => notes_v1.0.rst} | 6 +-
docs/output_21_0.png | Bin 7152 -> 0 bytes
docs/output_30_0.png | Bin 0 -> 4858 bytes
docs/output_34_0.png | Bin 0 -> 11636 bytes
docs/output_49_0.png | Bin 0 -> 26744 bytes
docs/output_50_0.png | Bin 0 -> 31608 bytes
docs/output_54_0.png | Bin 14777 -> 0 bytes
docs/output_54_1.png | Bin 14777 -> 0 bytes
docs/output_55_0.png | Bin 14777 -> 0 bytes
docs/output_55_1.png | Bin 14777 -> 0 bytes
docs/output_55_2.png | Bin 16484 -> 0 bytes
docs/output_55_3.png | Bin 16484 -> 0 bytes
docs/output_55_4.png | Bin 15450 -> 0 bytes
docs/output_55_5.png | Bin 15450 -> 0 bytes
docs/output_55_6.png | Bin 16013 -> 0 bytes
docs/output_55_7.png | Bin 16013 -> 0 bytes
docs/output_55_8.png | Bin 15923 -> 0 bytes
docs/output_55_9.png | Bin 15923 -> 0 bytes
docs/output_56_0.png | Bin 13082 -> 0 bytes
docs/output_56_1.png | Bin 13082 -> 0 bytes
docs/output_56_2.png | Bin 13082 -> 0 bytes
docs/output_56_3.png | Bin 13082 -> 0 bytes
docs/output_56_4.png | Bin 13066 -> 0 bytes
docs/output_56_5.png | Bin 13066 -> 0 bytes
docs/output_56_6.png | Bin 13072 -> 0 bytes
docs/output_56_7.png | Bin 13072 -> 0 bytes
docs/output_56_8.png | Bin 13033 -> 0 bytes
docs/output_56_9.png | Bin 13033 -> 0 bytes
docs/output_61_0.png | Bin 15782 -> 0 bytes
docs/output_63_1.png | Bin 14552 -> 0 bytes
docs/output_66_1.png | Bin 14552 -> 0 bytes
docs/output_67_1.png | Bin 5428 -> 0 bytes
docs/output_72_0.png | Bin 17539 -> 0 bytes
docs/output_72_1.png | Bin 17539 -> 0 bytes
docs/output_74_1.png | Bin 16314 -> 0 bytes
docs/output_75_1.png | Bin 11202 -> 0 bytes
docs/output_76_1.png | Bin 19402 -> 0 bytes
docs/quickstart.rst | 93 -
docs/quickstart.yml | 33 -
docs/soil_tutorial.rst | 3476 +++------
examples/events_and_messages/cars_sim.py | 21 +-
examples/mesa/mesa_sim.py | 2 +-
examples/mesa/server.py | 6 +-
examples/newsspread/newsspread_sim.py | 4 +-
examples/programmatic/programmatic_sim.py | 2 +-
examples/pubcrawl/pubcrawl_sim.py | 4 +-
examples/rabbits/rabbit_improved_sim.py | 2 +-
examples/rabbits/rabbits_basic_sim.py | 2 +-
examples/random_delays/random_delays_sim.py | 2 +-
.../terrorism/TerroristNetworkModel_sim.py | 23 +-
examples/tutorial/soil_tutorial.ipynb | 6363 +++++------------
requirements.txt | 3 +-
soil/VERSION | 2 +-
soil/__init__.py | 31 +-
soil/agents/Geo.py | 4 +-
soil/agents/__init__.py | 4 +-
soil/agents/fsm.py | 8 +-
soil/agents/network_agents.py | 13 +-
soil/analysis.py | 49 +
soil/datacollection.py | 6 +-
soil/environment.py | 55 +-
soil/exporters.py | 124 +-
soil/serialization.py | 4 +-
soil/simulation.py | 330 +-
soil/time.py | 29 +-
soil/utils.py | 12 +-
tests/test_agents.py | 8 +-
tests/test_config.py | 13 +-
tests/test_examples.py | 13 +-
tests/test_exporters.py | 90 +-
tests/test_main.py | 43 +-
75 files changed, 3438 insertions(+), 7528 deletions(-)
rename docs/{notes_v0.30.rst => notes_v1.0.rst} (92%)
delete mode 100644 docs/output_21_0.png
create mode 100644 docs/output_30_0.png
create mode 100644 docs/output_34_0.png
create mode 100644 docs/output_49_0.png
create mode 100644 docs/output_50_0.png
delete mode 100644 docs/output_54_0.png
delete mode 100644 docs/output_54_1.png
delete mode 100644 docs/output_55_0.png
delete mode 100644 docs/output_55_1.png
delete mode 100644 docs/output_55_2.png
delete mode 100644 docs/output_55_3.png
delete mode 100644 docs/output_55_4.png
delete mode 100644 docs/output_55_5.png
delete mode 100644 docs/output_55_6.png
delete mode 100644 docs/output_55_7.png
delete mode 100644 docs/output_55_8.png
delete mode 100644 docs/output_55_9.png
delete mode 100644 docs/output_56_0.png
delete mode 100644 docs/output_56_1.png
delete mode 100644 docs/output_56_2.png
delete mode 100644 docs/output_56_3.png
delete mode 100644 docs/output_56_4.png
delete mode 100644 docs/output_56_5.png
delete mode 100644 docs/output_56_6.png
delete mode 100644 docs/output_56_7.png
delete mode 100644 docs/output_56_8.png
delete mode 100644 docs/output_56_9.png
delete mode 100644 docs/output_61_0.png
delete mode 100644 docs/output_63_1.png
delete mode 100644 docs/output_66_1.png
delete mode 100644 docs/output_67_1.png
delete mode 100644 docs/output_72_0.png
delete mode 100644 docs/output_72_1.png
delete mode 100644 docs/output_74_1.png
delete mode 100644 docs/output_75_1.png
delete mode 100644 docs/output_76_1.png
delete mode 100644 docs/quickstart.rst
delete mode 100644 docs/quickstart.yml
create mode 100644 soil/analysis.py
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2bff290..b966489 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -3,19 +3,31 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
-## [0.30 UNRELEASED]
+## [1.0 UNRELEASED]
+
+Version 1.0 introduced multiple changes, especially on the `Simulation` class and anything related to how configuration is handled.
+For an explanation of the general changes in version 1.0, please refer to the file `docs/notes_v1.0.rst`.
+
### Added
-* Simple debugging capabilities in `soil.debugging`, with a custom `pdb.Debugger` subclass that exposes commands to list agents and their status and set breakpoints on states (for FSM agents). Try it with `soil --debug `
-* Ability to run mesa simulations
-* The `soil.exporters` module to export the results of datacollectors (model.datacollector) into files at the end of trials/simulations
* A modular set of classes for environments/models. Now the ability to configure the agents through an agent definition and a topology through a network configuration is split into two classes (`soil.agents.BaseEnvironment` for agents, `soil.agents.NetworkEnvironment` to add topology).
-* FSM agents can now have generators as states. They work similar to normal states, with one caveat. Only `time` values can be yielded, not a state. This is because the state will not change, it will be resumed after the yield, at the appropriate time. The return value *can* be a state, or a `(state, time)` tuple, just like in normal states.
+* Environments now have a class method to make them easier to use without a simulation`.run`. Notice that this is different from `run_model`, which is an instance method.
+* Ability to run simulations using mesa models
+* The `soil.exporters` module to export the results of datacollectors (`model.datacollector`) into files at the end of trials/simulations
+* Agents can now have generators as a step function or a state. They work similar to normal functions, with one caveat in the case of `FSM`: only `time` values (or None) can be yielded, not a state. This is because the state will not change, it will be resumed after the yield, at the appropriate time. The return value *can* be a state, or a `(state, time)` tuple, just like in normal states.
+* Simulations can now specify a `matrix` with possible values for every simulation parameter. The final parameters will be calculated based on the `parameters` used and a cartesian product (i.e., all possible combinations) of each parameter.
+* Simple debugging capabilities in `soil.debugging`, with a custom `pdb.Debugger` subclass that exposes commands to list agents and their status and set breakpoints on states (for FSM agents). Try it with `soil --debug `
### Changed
-* Configuration schema is very simplified
+* Configuration schema (`Simulation`) is very simplified. All simulations should be checked
+* Model / environment variables are expected (but not enforced) to be a single value. This is done to more closely align with mesa
+* `Exporter.iteration_end` now takes two parameters: `env` (same as before) and `params` (specific parameters for this environment). We considered including a `parameters` attribute in the environment, but this would not be compatible with mesa.
+* `num_trials` renamed to `iterations`
+* General renaming of `trial` to `iteration`, to work better with `mesa`
+* `model_parameters` renamed to `parameters` in simulation
+* Simulation results for every iteration of a simulation with the same name are stored in a single `sqlite` database
+
### Removed
* Any `tsih` and `History` integration in the main classes. To record the state of environments/agents, just use a datacollector. In some cases this may be slower or consume more memory than the previous system. However, few cases actually used the full potential of the history, and it came at the cost of unnecessary complexity and worse performance for the majority of cases.
-
## [0.20.7]
### Changed
* Creating a `time.When` from another `time.When` does not nest them anymore (it returns the argument)
diff --git a/README.md b/README.md
index 65555b4..e3459a0 100644
--- a/README.md
+++ b/README.md
@@ -7,7 +7,7 @@ Learn how to run your own simulations with our [documentation](http://soilsim.re
Follow our [tutorial](examples/tutorial/soil_tutorial.ipynb) to develop your own agent models.
> **Warning**
-> Mesa 0.30 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/notes_v0.30.rst)
+> Soil 1.0 introduced many fundamental changes. Check the [documention on how to update your simulations to work with newer versions](docs/notes_v1.0.rst)
## Features
diff --git a/docs/index.rst b/docs/index.rst
index cd10280..b589c06 100644
--- a/docs/index.rst
+++ b/docs/index.rst
@@ -1,7 +1,20 @@
Welcome to Soil's documentation!
================================
-Soil is an Agent-based Social Simulator in Python focused on Social Networks.
+Soil is an opinionated Agent-based Social Simulator in Python focused on Social Networks.
+
+.. image:: soil.png
+ :width: 80%
+ :align: center
+
+Soil can be installed through pip (see more details in the :doc:`installation` page):
+
+.. code:: bash
+
+ pip install soil
+
+
+To get started developing your own simulations and agent behaviors, check out our :doc:`Tutorial ` and the `examples on GitHub .
If you use Soil in your research, do not forget to cite this paper:
@@ -33,8 +46,6 @@ If you use Soil in your research, do not forget to cite this paper:
:caption: Learn more about soil:
installation
- quickstart
- configuration
Tutorial
..
diff --git a/docs/installation.rst b/docs/installation.rst
index 5da4297..831e060 100644
--- a/docs/installation.rst
+++ b/docs/installation.rst
@@ -1,7 +1,10 @@
Installation
------------
-The easiest way to install Soil is through pip, with Python >= 3.4:
+Through pip
+===========
+
+The easiest way to install Soil is through pip, with Python >= 3.8:
.. code:: bash
@@ -25,4 +28,38 @@ Or, if you're using using soil programmatically:
import soil
print(soil.__version__)
-The latest version can be installed through `GitHub `_ or `GitLab `_.
+
+
+Web UI
+======
+
+Soil also includes a web server that allows you to upload your simulations, change parameters, and visualize the results, including a timeline of the network.
+To make it work, you have to install soil like this:
+
+.. code::
+
+ pip install soil[web]
+
+Once installed, the soil web UI can be run in two ways:
+
+.. code::
+
+ soil-web
+
+ # OR
+
+ python -m soil.web
+
+
+Development
+===========
+
+The latest version can be downloaded from `GitHub `_ and installed manually:
+
+.. code:: bash
+
+ git clone https://github.com/gsi-upm/soil
+ cd soil
+ python -m venv .venv
+ source .venv/bin/activate
+ pip install --editable .
\ No newline at end of file
diff --git a/docs/notes_v0.30.rst b/docs/notes_v1.0.rst
similarity index 92%
rename from docs/notes_v0.30.rst
rename to docs/notes_v1.0.rst
index 7367f66..9f83a9c 100644
--- a/docs/notes_v0.30.rst
+++ b/docs/notes_v1.0.rst
@@ -1,7 +1,7 @@
-What are the main changes between version 0.3 and 0.2?
-######################################################
+What are the main changes in version 1.0?
+#########################################
-Version 0.3 is a major rewrite of the Soil system, focused on simplifying the API, aligning it with Mesa, and making it easier to use.
+Version 1.0 is a major rewrite of the Soil system, focused on simplifying the API, aligning it with Mesa, and making it easier to use.
Unfortunately, this comes at the cost of backwards compatibility.
We drew several lessons from the previous version of Soil, and tried to address them in this version.
diff --git a/docs/output_21_0.png b/docs/output_21_0.png
deleted file mode 100644
index cce7e07f2953d92f43f07d875ea5c01fa68e7d81..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001
literal 7152
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
J3U1nj{4c!>7v}%~
literal 0
HcmV?d00001
diff --git a/docs/output_49_0.png b/docs/output_49_0.png
new file mode 100644
index 0000000000000000000000000000000000000000..33928105fa50378f2874af7e63e0c71a1b4493d0
GIT binary patch
literal 26744
zcmc$_Ralf^*e*(lbR!+2(k;^IAYIZSCEeYPq@)N)gMf5*hagC&w4}tq(B15J{#gH7
z`&tM4Y#(qj;#c#=^W61)ey=2rjX{oqfPjE4EAvhj0Rhn!{1Br(1%Gijv_%5H1Y9Mx
zUDX`ST|GWJn;|HEbak|KaJ98Ee(rAO>|*6$&&|%u{+jiiy#Mw-Tyj(-ND&{
zgAqz<3@(E1D5K+ofPhH||3O4Z%OFKSu-KG+_g39AV?WcwS6$=gam7N;TL$+D1f2&@
z^$S5HNXM2
zPrAE*z_6)IssiM-tPKC*EQ{c!=$Oc5vrD)|mcV7k7{00;5k@Fv;%1`G6#;z6al~fM
zVIjhhqAU
zZ$#e^)Bbt}iRfXY`rR8X2aS1$7XKoI6OHy$>HZ2^$QMY2JsZ)2WL)BFIl1QfpATxP
zax_f&Wa4PmI%r(&_=UO%Z69q;hotJJ3h*JWh}6h8vP?qiow#gxaYT@_vbk@n4=?if
zrU3l_jP_RR4Z9-N+
z`PuQp&!9oPRA0zK^3|Syi?+rd;wg#dB!?CcKFFi3S=FMT(axaLz7EA}ZkSz5id|w2
zxhljnj>5}*k9MqoZulh0R~my>H55;I(O<9-jrO3-)Q~>pDjRQ|g7zI3rySbEtb45R
z2fqH1=`?I&h_8dtr7|R#P33ur3;{$>WnUYY_80SFb!!M-byBP%K16SS
zmAqxXggX;&-D?$N6?<{)kuL-kOq%oO!0?J<^h`e!WUUYq6@>g&cwWI%s0r_#tZl{@8Wgz~o?awu||B*F~0|#(oD|)qdwscSXc{
zJvF=i=%+P-L$;ST_(v}J|6Wz$9R1dfw?LZJh@`Fm>TrHr^~@6mw!Pu}{rjXysk1HH
zW#iy22G)}>mQv&
zbHtF_5cI<9Cnx4bzbqjH@f2Sax&Gx`eaB|khuECdz=u4hzTl5`)$q-Pg&^1?-!B`<
z#jY|Lkw&vdKZpn2hI#+?NeWmMW_0PeMo$H2ogeg`&s=y@ANkOwKb1kQD7stLI4ReH
zH0}#M(KGQ8A-pQ6@G&i9C+j6PakQC8Hd!>4YGtGHEqsXQ$MTzs9$hEI
zD-7DYlRM;Mm!t)jpEtPmyw3TFy-5wqNK`C#*%fCkFCBH|tctf*2I4ytYh=*k)toZ$
z)}2->8|={QdUUyj1ZRwI2lNEKg`FVI7^1E$K0NA*#KF)uWSB5n_Jz=~O6vU57Oali
zf8CgUeVIR8p1*I)lwUmQZg)AaBSaOX|BRyHHYw)ZzhKVYu-~HCxm7@Q@T=Ud(xP!O
zhX&XO?;OfHU!i{VQ+5+q69ya;SOy0N=RriXR3ODh?f@;mp(
zl;w1e5q+?r$iL*77C-JUBiQ6xq9H=i4&@g0tK3!QddkmkSjTnHa*DSC3ML!wY0B}s
zQEjw(bUyBL1R$jZ*6W`AUdViDEue`Uq7{`d%K!C=K2CJ)`M@PgN14S3iy%*1PP5+5S_MfPS3ZR
z{^uCze87^l$C9`1mmqcFCv!)81G97
z*hMXd)YE7(gm@C$gc_sW9FmcYL@i_jftXyfHsZklG$SCPhuE;nV82=(Y$^&af)Tsw*9Im
zQ~ohh;q-nJS$&fiPbX*SHI(W)_E
z!BSdxx#~>_8aXVwbPd_(0X>3W-_o6$i=%OAqfJPl<$xZA8lCqr#!fU6NWPhC>4rvo
zW4u46_|!VnH_uUks!H?-w|gP;wS-)AtC@tVx|CZp<9}d||N5QN+oJa=IM}Sweo1%t
z431BjW#!}szp84|{KKs?f*j72QwVv?@OCTb0BjPA2gxWKDQM9HNap_lD2zmryr0O!
zE8f51mdcC&^GAJfa8Or}s8=#NJREgxZ4G*U<4uzX0L{ekkAi}A7)&1Au;|s#()V-m
zs$VlR6|JqA@$vD`MJq