tor-commits
Threads by month
- ----- 2025 -----
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
February 2019
- 16 participants
- 1788 discussions
commit e80e9008cdf022ec9def11a51643d1228cb52e65
Author: juga0 <juga(a)riseup.net>
Date: Tue Feb 12 10:32:34 2019 +0000
docs: Change title to specification
---
docs/source/specification.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/source/specification.rst b/docs/source/specification.rst
index fee7dbc..a616add 100644
--- a/docs/source/specification.rst
+++ b/docs/source/specification.rst
@@ -1,5 +1,5 @@
-Simple Bandwidth Scanner technical details
-============================================
+What the scanner and the generator do
+======================================
Running the scanner
-----------------------
1
0
commit df5ccb0997dddff925c1d4548c504a50377cb8c0
Author: juga0 <juga(a)riseup.net>
Date: Thu Feb 7 12:50:40 2019 +0000
scanner: add docstring to measure_relay
Closes: #29149. Bugfix v0.1.0.
---
sbws/core/scanner.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/sbws/core/scanner.py b/sbws/core/scanner.py
index 013d4ee..3d98c55 100644
--- a/sbws/core/scanner.py
+++ b/sbws/core/scanner.py
@@ -231,6 +231,13 @@ def _pick_ideal_second_hop(relay, dest, rl, cont, is_exit):
def measure_relay(args, conf, destinations, cb, rl, relay):
+ """
+ Select a Web server, a relay to build the circuit,
+ build the circuit and measure the bandwidth of the given relay.
+
+ :return Result: a measurement Result object
+
+ """
log.debug('Measuring %s %s', relay.nickname, relay.fingerprint)
s = requests_utils.make_session(
cb.controller, conf.getfloat('general', 'http_timeout'))
1
0

23 Feb '19
commit f19b0c68e2f1022187e8d3406f2e33fe3b42b77b
Author: juga0 <juga(a)riseup.net>
Date: Thu Feb 21 13:51:04 2019 +0000
requests: Add class to override Session methods
Override get and head methods to always have a timeout.
---
sbws/util/requests.py | 15 ++++++++++++++-
1 file changed, 14 insertions(+), 1 deletion(-)
diff --git a/sbws/util/requests.py b/sbws/util/requests.py
index 0b1ece2..e0a6864 100644
--- a/sbws/util/requests.py
+++ b/sbws/util/requests.py
@@ -1,7 +1,20 @@
import requests
from sbws import settings
-import sbws.util.stem as stem_utils
+from sbws.util import stem as stem_utils
+
+
+class TimedSession(requests.Session):
+ """Requests Session that sends timeout in the head and get methods.
+ """
+
+ def get(self, url, **kwargs):
+ return super().get(url, timeout=getattr(self, "_timeout", None),
+ **kwargs)
+
+ def head(self, url, **kwargs):
+ return super().head(url, timeout=getattr(self, "_timeout", None),
+ **kwargs)
def make_session(controller, timeout):
1
0

[sbws/master] requests: Change make_session to use the TimedSession
by juga@torproject.org 23 Feb '19
by juga@torproject.org 23 Feb '19
23 Feb '19
commit 1cc8351c5d2df4f1d52c7ab2fdb1dd0eb814deae
Author: juga0 <juga(a)riseup.net>
Date: Thu Feb 21 13:55:32 2019 +0000
requests: Change make_session to use the TimedSession
that will always have timeout in the get and head methods.
---
sbws/util/requests.py | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/sbws/util/requests.py b/sbws/util/requests.py
index e0a6864..615916d 100644
--- a/sbws/util/requests.py
+++ b/sbws/util/requests.py
@@ -18,12 +18,17 @@ class TimedSession(requests.Session):
def make_session(controller, timeout):
- s = requests.Session()
+ """
+ Initialize a TimedSession with the timeout, the proxies and the headers.
+
+ """
+ s = TimedSession()
socks_info = stem_utils.get_socks_info(controller)
s.proxies = {
'http': 'socks5h://{}:{}'.format(*socks_info),
'https': 'socks5h://{}:{}'.format(*socks_info),
}
- s.timeout = timeout
+ # ``_timeout`` is not used by request's Session, but it is by TimedSession.
+ s._timeout = timeout
s.headers = settings.HTTP_HEADERS
return s
1
0

23 Feb '19
commit 733e8c3a9262cdb2c49ea7bae6c09a2ccbc818ed
Author: juga0 <juga(a)riseup.net>
Date: Tue Feb 12 09:59:12 2019 +0000
docs: Add bandwidth distribution documentation
---
docs/source/bandwidth_distribution.rst | 38 +++++++++++++++++++++
docs/source/images/20180901_163442.png | Bin 0 -> 38517 bytes
docs/source/images/20180901_164014.png | Bin 0 -> 43522 bytes
...710932-ac1eeea8-9960-11e8-9e7e-21fddff2f7a3.png | Bin 0 -> 38367 bytes
...710933-ac95e0bc-9960-11e8-9aaf-0bb1f83b65e2.png | Bin 0 -> 33525 bytes
5 files changed, 38 insertions(+)
diff --git a/docs/source/bandwidth_distribution.rst b/docs/source/bandwidth_distribution.rst
new file mode 100644
index 0000000..ef54c9f
--- /dev/null
+++ b/docs/source/bandwidth_distribution.rst
@@ -0,0 +1,38 @@
+Relays' bandwidth distribution
+===================================
+
+sbws raw measurements compared to Torflow measurements
+------------------------------------------------------
+
+.. image:: images/43710932-ac1eeea8-9960-11e8-9e7e-21fddff2f7a3.png
+ :alt: sbws and torflow raw measurements distribution
+
+
+.. image:: images/43710933-ac95e0bc-9960-11e8-9aaf-0bb1f83b65e2.png
+ :alt: sbws and torflow raw measurements distribution 2
+
+
+sbws linear scaling
+--------------------
+
+Multiply each relay bandwidth by ``7500/median``
+
+See bandwidth_file_spec_ appendix B to know how about linear scaling.
+
+Code: :func:`sbws.lib.v3bwfile.sbws_scale`
+
+.. image:: images/20180901_163442.png
+ :alt: sbws linear scaling
+
+
+sbws Torflow scaling
+-----------------------
+
+See bandwidth_file_spec_ appendix B to know how about torflow scaling.
+
+Code: :func:`sbws.lib.v3bwfile.torflow_scale`
+
+.. image:: images/20180901_164014.png
+ :alt: sbws torflow scaling
+
+.. _bandwidth_file_spec: https://gitweb.torproject.org/torspec.git/tree/bandwidth-file-spec.txt
diff --git a/docs/source/images/20180901_163442.png b/docs/source/images/20180901_163442.png
new file mode 100644
index 0000000..315e1d6
Binary files /dev/null and b/docs/source/images/20180901_163442.png differ
diff --git a/docs/source/images/20180901_164014.png b/docs/source/images/20180901_164014.png
new file mode 100644
index 0000000..f5d212d
Binary files /dev/null and b/docs/source/images/20180901_164014.png differ
diff --git a/docs/source/images/43710932-ac1eeea8-9960-11e8-9e7e-21fddff2f7a3.png b/docs/source/images/43710932-ac1eeea8-9960-11e8-9e7e-21fddff2f7a3.png
new file mode 100644
index 0000000..f79fc65
Binary files /dev/null and b/docs/source/images/43710932-ac1eeea8-9960-11e8-9e7e-21fddff2f7a3.png differ
diff --git a/docs/source/images/43710933-ac95e0bc-9960-11e8-9aaf-0bb1f83b65e2.png b/docs/source/images/43710933-ac95e0bc-9960-11e8-9aaf-0bb1f83b65e2.png
new file mode 100644
index 0000000..45b8e46
Binary files /dev/null and b/docs/source/images/43710933-ac95e0bc-9960-11e8-9aaf-0bb1f83b65e2.png differ
1
0

23 Feb '19
commit 6578a95f556400215754016f90bfb00a738d3a94
Author: juga0 <juga(a)riseup.net>
Date: Thu Feb 21 13:57:13 2019 +0000
tests: Add test to check get/head timeout
Closes: #29551. Bugfix 1.0.3-dev0.
---
tests/integration/util/test_requests.py | 29 +++++++++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/tests/integration/util/test_requests.py b/tests/integration/util/test_requests.py
new file mode 100644
index 0000000..ecb22ad
--- /dev/null
+++ b/tests/integration/util/test_requests.py
@@ -0,0 +1,29 @@
+"""Integration tests for requests."""
+import requests
+import uuid
+
+from sbws import settings
+from sbws.util import requests as requests_utils
+
+
+def test_make_session(conf, persistent_launch_tor, dests):
+ uuid_str = str(uuid.uuid4())
+ settings.init_http_headers(conf.get('scanner', 'nickname'), uuid_str,
+ str(persistent_launch_tor.get_version()))
+ session = requests_utils.make_session(
+ persistent_launch_tor, conf.getfloat('general', 'http_timeout'))
+ assert session._timeout == conf.getfloat('general', 'http_timeout')
+
+ # Because there is not an stream attached to a circuit, this will timeout.
+ response = None
+ try:
+ response = session.get(dests.next().url, verify=False)
+ except requests.exceptions.ConnectTimeout:
+ pass
+ assert response is None
+
+ # Disable socks proxies to test a session request not over Tor
+ # without timeout.
+ session.proxies = {}
+ response = session.get(dests.next().url, verify=False)
+ print(response.request.__dict__)
1
0
commit 2626f375e5aa7cf2268434edcc1bea5f70e21939
Author: juga0 <juga(a)riseup.net>
Date: Tue Feb 12 10:04:12 2019 +0000
docs: Change title to documenting page
---
docs/source/documenting.rst | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/docs/source/documenting.rst b/docs/source/documenting.rst
index dad0994..bc74dae 100644
--- a/docs/source/documenting.rst
+++ b/docs/source/documenting.rst
@@ -1,7 +1,7 @@
.. _documenting:
-Installing documentation dependendencies and building it
----------------------------------------------------------
+Installing and building the documentation
+-----------------------------------------
To build the documentation, extra Python dependencies are needed:
1
0

23 Feb '19
commit d8f922ad400372e5781de866bf80c4b9a4ba393b
Author: juga0 <juga(a)riseup.net>
Date: Tue Feb 12 10:01:38 2019 +0000
docs: Add bandwidth authorities documentation
---
docs/source/bandwidth_authorities.rst | 28 +
docs/source/images/bwauth.svg | 1570 +++++++++++++++++++++++++
docs/source/images/bwauth_measured_7days.png | Bin 0 -> 28457 bytes
docs/source/images/bwauth_measured_90days.png | Bin 0 -> 52889 bytes
4 files changed, 1598 insertions(+)
diff --git a/docs/source/bandwidth_authorities.rst b/docs/source/bandwidth_authorities.rst
new file mode 100644
index 0000000..913a431
--- /dev/null
+++ b/docs/source/bandwidth_authorities.rst
@@ -0,0 +1,28 @@
+Bandwidth authorities in metrics
+=================================
+
+Current bandwidth authorities
+-----------------------------
+
+.. image:: images/bwauth.*
+ :alt: bandwidth authorities in metrics
+
+https://metrics.torproject.org/rs.html
+
+(flag:Authority)
+
+Bandwidth Authorities - Measured Relays past 7 days
+---------------------------------------------------
+
+.. image:: images/bwauth_measured_7days.png
+ :alt: bandwidth measured in the past 7 days
+
+https://consensus-health.torproject.org/graphs.html
+
+Bandwidth Authorities - Measured Relays past 90 days
+----------------------------------------------------
+
+.. image:: images/bwauth_measured_90days.png
+ :alt: bandwidth measured in the past 90 days
+
+https://consensus-health.torproject.org/graphs.html
diff --git a/docs/source/images/bwauth.svg b/docs/source/images/bwauth.svg
new file mode 100644
index 0000000..37c3b5f
--- /dev/null
+++ b/docs/source/images/bwauth.svg
@@ -0,0 +1,1570 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+<svg
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
+ xmlns:cc="http://creativecommons.org/ns#"
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
+ xmlns:svg="http://www.w3.org/2000/svg"
+ xmlns="http://www.w3.org/2000/svg"
+ xmlns:xlink="http://www.w3.org/1999/xlink"
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+ version="1.1"
+ id="svg2"
+ width="1182"
+ height="388"
+ viewBox="0 0 1182 388"
+ sodipodi:docname="bwauth.svg"
+ inkscape:version="0.92.1 r15371">
+ <metadata
+ id="metadata8">
+ <rdf:RDF>
+ <cc:Work
+ rdf:about="">
+ <dc:format>image/svg+xml</dc:format>
+ <dc:type
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
+ <dc:title></dc:title>
+ </cc:Work>
+ </rdf:RDF>
+ </metadata>
+ <defs
+ id="defs6" />
+ <sodipodi:namedview
+ pagecolor="#ffffff"
+ bordercolor="#666666"
+ borderopacity="1"
+ objecttolerance="10"
+ gridtolerance="10"
+ guidetolerance="10"
+ inkscape:pageopacity="0"
+ inkscape:pageshadow="2"
+ inkscape:window-width="1366"
+ inkscape:window-height="704"
+ id="namedview4"
+ showgrid="false"
+ inkscape:zoom="1.0558376"
+ inkscape:cx="205.13877"
+ inkscape:cy="194"
+ inkscape:window-x="0"
+ inkscape:window-y="27"
+ inkscape:window-maximized="1"
+ inkscape:current-layer="svg2" />
+ <image
+ width="1182"
+ height="388"
+ preserveAspectRatio="none"
+ xlink:href="data:image/png;base64,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
+QGNjY2NjIwCwLGs2m2+55ZbJkydfunQpYcWPP/44IeW+++5LsaG2tjYAWL9+vdlszs/Pf/HFF6+5
+5potW7a8/fbbu3bt+v73v3/mzJn+7YJarc7Kyvrqq6+Svrtly5b58+efPn2651unT5/+2c9+9j//
+8z8pyiyVSqurq2fNmpWVlWW322fNmvXaa68dOXKkpKQEAFKUeSDbHWZjqKiDTTSWE4vfxNJH6ODV
+x/KLH3xF92uIEdrNJ8+dO3fuXJvPYVN4rAZTJTs8Wx5K/egO1p9//ZFPHrw1QN8aoB/55EHPhSPi
+y/67oWHOb3zv9LvrOVBtOzJlCxPGerjWX3UbtQuHwyc3qOXLDw1nwXo4tEQmXZKkCMnTG1fIiZzd
+0ZMLJ55WEknGHRuXy4mcHZGF2rZmEsqnT4TD4fDJDWoic0f0nMih5bIeY15do3YdJzdru4bpkpQi
+bnBPeB1fjo59C+VLDqQ6mZmSWJ10JzJqJ7y3I7P7Gaxz+/KkRObWHieEBv9MDM/zAKUnT37xhz+8
+2/P/+CVPnz6d9Jz0KCNWdWLpSfT4OPqZLmy3pSV2dq1jX55UulC0pfXMp+NcbNmOA0sSy59yuwih
+QXbLLbekDlSmTp3ac60dO3bELzNu3Lhz51Kdcf/d734HAB6Pp7y8vLS0NBAIPPHEE2fPni0uLj59
++vSsWbMmTpy4a9eufpRfKMDdd9/95ZdfJrz12muvXXVVL+fQr7rqqgMHkh99hDJ/+umnK1eu3LJl
+y/79+5cuXfr6668//vjj4XD4pptuEivzALc7nMZQUQefaCwnFr+JpUcM98Grz+UXO/j2sl9DWPz4
+ILZj30KCyNudImj9ho7a2VjrE2d+eazjqPDyWMfRwk9//sezm0QWJ8aPhwvBZvZy0nfPf3zatt6l
+fbx27pq31797XjjXEHrXq/3v0+/63l+6pla7/lQLAAB/ZJ934ZrXtI/vvz3y7+29QdEcunBup09l
+6P0qOpVeD26XL50KGCI8x3E03fNywOTpPMuwtEoRTdYYDbTP5UkYtGDcHlZliF5iSOt0CsbjYQGA
+pmnwRxfnWJanFHTyUnFuq9HGGh2O6LAn8A4jSZld4jsSP+2fdzs8OqNeSGBdVoOKIiUkpTJYHP5U
+44TR1UXqBABYd5lRQ5MkSevMlX343HiPw80bLCaR/eU9drOQrcbsYNLPNpnLly9XVPzkN785es89
+k4qKDif8f+q++4R/H+XmNt966+XLyb8ho4hY1fVSpUOHUsS+AEBSFPB8slE7ESQV10z57q8RQsPr
+nnvuSb3A3Llzeya2tLTEv5wzZw5FiV1S382MGTPuuOMOAOB5/tprr73++uuzs7OPHz/+2Wef9RwE
+u+222yS9EZY8evToz3/+8/h1Ozs7n3zyyV4nZVy5cuWJJ564ePGi2AKNjY0zZsyYPXv2W2+9tX37
+9gceeOBvf/sbAFx99dVJy3zx4sXU2504ceLVV1995cqVJ598srOzM3XxhtRgVdEYJRrLicVvonHd
+yOhz+cUOvqNmv+JCU85TbtLQpISkFPrkQSvnd9hMOkUksLW5OQDgXWaa1MeN/PnLNKSunBnyksfr
+W9fu4FcHXv1yT8/0LWef90Y7e91dd6fyETpYsf7NJ/Z+8u7Z7uHrp6eWvvTJdTl3vfa8Yc+SiS17
+G//4cXQB9sP/72/w6FMPHP7NtJsAzhx+9ykPPFKc7d2asy37+u/9cOoL/zXLIE2Zg4Dx+CmNKo2g
+U6VTsT5fH0LDwcZzPLBOs4oiSVqhM5VH+2nJ00mKIjmWjbY0HoAElkns2jEsKOjYzitUNDB+FgAo
+U1mZymXSGKyVzkqLzWcojfXcuhXJX2kyvhSg9GbRO9DEYz3ltkpObzbGtsh7HB5NpGfHOSwmB1g9
+bAfrsxsVAGlE0qJ14rMZDKWMrszl87lKNT63L+0JCIzPz6t0muT7E3RYrB5ducvntuu5nRZbymmq
+6Vix4vDq1bf/13951qy5M+H/aW+8Ify7pabmRx98MMANDQexqktZpcPF5/LwKp2m790zzuew2Fy0
+2WYY2R1A6NupuLh40qRJO3fuTL3Yzp07J02a9OSTT8YnJkzIbGxsjPW1lEplitxuvfXW6dOnC9k+
+88wzCxcubGpqUqlURUVFTz/9dH93JYkDBw4kTDKkKOqxxx577LHHpFJpfPrHH39cX18vls/Ro0dn
+zZo1c+bMw4cPCym/+93vamtrP/zww6RldrlcSSc3CmbNmnXy5Mndu3cDwIcfflhXV9fX/RpECVV0
+9uzZ+MGHzz//PPZW6ioao0RjObH4TTSuGxl9Ln+X7gff0bBfnN9pLXWReiFq9ZXpjZWUzcWcY32V
+Br/VYPMkhoS83+lkdTaHh2nx2HVMucnq5oE0WE0Kjz02OOB3Ovw6s0kxrLvSt65d5TnRe0/98fPk
+A3fjJzz5G/0LP5vw+bsnlq11Ldx+ujkovNF56LUPL+pmrblTSXw2egAAIABJREFU+v1rx0+eNu3J
+O+GQJ/IedBAP/WLGPTeMI8YDALS0BL9zqyKXHg9A3jnvP25ig59nXHtd6hwELMvSYiNS3VC0ghRm
++Y8QSm8pKy1zeDiec5dr/LbodF+RdI3JQDrLSt0sz7M+u9lSyYS6nW0AAOB5HiBuDI0khSQAktbo
+NAqScVgWPOqkLUnD2hBTbrJ4NHmZ4LDGLkRKspjXqqIoiiIlk+5a6dPYSrt6duBxeFTGSN4cy/Kk
+QkVTJKXQW2wmVf/rhHeV2f2aMqfdrFepNAZruVVDpJFbpBgcUCQTORVDq4xl7q4PnTCUuyoteo1K
+Z7aZlLzfx6SbrYgXXrh7zRrv738/Z/XqIwn/n7zzTuFfYN6896dPH+CGhoNY1aWs0uHBVtrsrMFm
+TqdRdWHsBkpy/e0PuxRlzvK0zl4ghAbZ8ePH0zzysix7/Pjx+JSe19rF/PjHP06R1auvvlpVVQUA
+Op3uzJkzarV63Lhxs2bN+uyzz7744ouEhf/xj3/0Ov1JWPKee+7561//Gr9uQq+Joqjjx4+/9NJL
+L7300vHjxxN6dym6WEeOHFGr1ZcvXz5x4gQAbNiwYfr06WazGQCSljlFVrNmzTp48OCECRNig40j
+27VL2PqECRPiX95www0pFv4mEIvlxOI38bhuZPS1/ACQ9OA7cvsV8j6uIEmSlEiu/5HZrSh1Osw0
+AOcsLePNlXaThqYohd5WZgJnjxlipM7mqLQadSpaoTGVWlScx+UHAI3VovJVOoS4WejZGdPphwyi
+vnXt3ulo7Mdb46+7N+fOPetydi7+IfHB35dtORUAADj/7qeXmL8d1hbXCv+WHQ6dvxCdF3CNVBlX
+ETPV3yc+ZGrYywCdzYf/1ZIhVUp7ywEAAHie59O8lzFJkjw3gt8PUBitVqOKAiBVxvIyE+mudLLi
+6ZTB7iyjnUbFNZTO4jOU2jREj6koJEkK490CnucjsyV9ZQaTz+Ty+1mmcauRK9UbK5meBWpvpcxO
+p7OyVOcvsznEjr2EttTt9/v9TMvJxn02yq7XxC6i9TjddLRnBwpzeanCaVBojFa7i0mzopPvu9/t
+4VVGgyK9PLojAUKe8nLe7PRzHYzDzJYZLY7oaCfZVYUUTcHA28NTT71VWjp7xYq3/vCHuxL+/9G7
+7wr/lIcPK30jORU4XWJVl7JKhwNjN1k9mrLyvk4JVZgd/pMnDu0w8aU6fVmP83GjDO8005SANjtH
+eWERStfrr78u3AyzV3feeWdNTU18iljXjiCI5557Lp08f/CDH+zatev9998Ph8Mej6e6unrLli1J
+l+R5/qOPPhLL59prr/3JT37icrmuu+66+PTW1tb4lyaT6aabbhL+njp16sKFC1MsHM/n8124cOHo
+0aOdnZ2LFi2y2WyXL1/es2fP3XffnbTMwsMDAGDevHnPPvts7Eq222+/XejX7d+//xe/+EWv2x0G
+fdr6yBZ1SIjFcmLxm2hcN0L6Wn4ASHrwHbn9ItRPu/1+v+tpNSEzllfahK6m3+0LBsp1ZJTeznJc
+ksCG87vKrSa9RqXQl/pDkUUUJqueqaz0AYDf6WD0ZsNwX7AyfM+1G0/OvEu97QZYsJmp+XTa6hsB
+4KoZ+Vm75vX+4V1326051xzbYX/zj53jbqAnrimePjPyTi85kECSaXb8eZ4n6dFyuQ2pUNHg4TgA
+WjSd0lmdfquQzrvMNkqlSWg8ChUNHpYFUAAAAOtnQaGiAdz2ctbosCgAgNZZHC5epyq1+8xlCfex
+VK6oLNdTAOYyS7neVuo22vVJ64eihftV07TC5iB9tLHcVWYwUeBzummTNVYmSmdzM2aPs7K8zKQq
+1Vd6nH0boO7a94GEtbRKQWiMdpvQMdRbbYZSs8sHJn2SZQcePj/3nG7FioayMp3F8uYf/zg3/n/f
+1KnCMld997v/+OCDm88P521j+0Ws6lR9qNLBx7mtBqtfX+mzKPq8LknRKg2tKndRLG0qdVpcplE8
+dEcay/3+MmHQffT8UiE0cLFRr74uNnHixKQjfqtWrUpxX5bi4uIvv/yys7Ozvr7+6NGjer3+5ptv
+Pnz4cEtLy2233Xb33Xf3XOWrr766//77T5w4IXYPzPfff3/y5Mk9Q9HYyJgg4YqyhJcJC8fr7Oxc
+sGDBv//9bwDweDwFBQVCemtrq1iZBa+88sqNN944efLkZcuWqdXqN954Q+jXFRQUjJLr1lLs9QAX
+HiuSx3K8SPxGiaSPnL6VX9Dz4CsWrw4DUqFQKGiFrcxUabTZbQZbZP4PoS1nPJZUZWAdJp3Fry8r
+s5fqVbxDr7BF3qCNFoPNWukptXqcjM463GN2fR21m32N6Nm1n34vJ1lyiP0icKHrJXHNeOLqcQQA
+wHUzboTAu22fJ1srwefvBupotaM0+431P91TPMNAj4M0c6BpimXSmezBsyxP0yP4/eDYuPMBnMft
+B5WCTpHebV1XpQsMPR4xoNDpab8rOjuO8bgZhU5PC6dD+K6OC03TwPc8G0FQKgUJAEDqSsuMfGWq
+WZldurpDfpeLTBxaI2mdyebwua2Uq8zRe3Yi+67QKMDv6bowsi+D9rTeoPK7Y+sO8Zmhe++d5PEY
+9XpZc/NDCf/f0tws/LvZ45l27NhQlWAQiVXd8FZpN7y/3Gi0k1ano68jdlz8iCxJUeQgjNEONYqi
+BendKQKhseD+++/3eNJ68tB77703f/78+JSmpqbYlMjYCBhN06mvl3vnnXcCgcDHH3989OhRAHj7
+7bd37twp3JHl3nvv7fn4hK+//nr+/Plvv/32119/LZbn1KlTk/7qyeXy+JfV1dWxkcbTp0/v3bs3
+/t0pU6akKHZ9fb0wG/Ojjz7aG/Wvf/0raZlj2128ePGFCxd++ctf7t27V6xfl1DIYdanraeuorEv
+LpYTi9/E0keFNMovdvAd+f2iDKWlGn+ZVZijptJpwOdwpuw+MI5yJ2lxVFoMKorsPhpAGSxGcFY6
+nU6/3jwCV/L3rWtnvn6Z+FuPJUm9ULe3cfH6xo2N7c2fBgOnPlm/q+XMjYr5NwLA+Huzb57c8sFT
+e/8ZCHaePxt01Z0+ciFJFgAAnZfPs5+/y/KfBzvPX+iM3jMjjRxUOhXn98c6AZ2d54P85x2dFwFC
+X/KfBzvPR+dv+j1+SqUasZCJrTRpdMYyp49hGJ/TZrS5FRabkRJNB95nt1jsbj/j9znLTBaXpqxU
+GFNj7HqK0gsPBNFZrBq3zWL3sazPbi31621WFQDozSbSabU6/RwAz7isZS7aaNKlKB1lLLN1tfhE
+PMdxHMexjM9ZbrI6SaPFQAEwLifE9ex4T5nRVO7yczzP+Tw+llT0egmk6L7TRquB3G81lbv9DONx
+2sxl3iS3UeE5jmVZjuMBeDb6F4DKbNN7rJZKH8txfqet1KUwmfv72L1efTBnznGV6r0bb0zx77hK
+9cGcOUNVgsEkVnVi6fFNUezj6Gt6fJ6Mw6Rf6deXV1polmEYhmFYjk9ru5zDrFIZy5weP8P43ZVm
+ayWvMwkzJsTKgxAaCrNnz540aVI6S06aNGn27Nli7x45ckT4Y+PGjRkZGf0rzKFDh954442ERKPR
+6Ha7hb97vVXmbbfdFr9udnZ2/EuO42bNmiXcRuWOO+4IBrvdGyAnJ+n58f6UObZdt9udk5Pz1Vdf
+PfjggxMmTPj/2Tv3sKaONOCPoj3RtiSrXRLbLYk3wmohSAtBLZddy0W3XNwKuF0R2oKiC4IVCl/B
+rX5ipQsWFLqwYlcE94GCn2CoEIKtgAoJXri4LUQFglYTvJSAAgcC5PvjQAhJzkkChIs7vycPD2fO
+XN55Z86Zec/ciouLfX19Vcbr3NzcxpHuZKGioqdPnxJcjk9FMxrcvhxO/w3XfZoaLz3lx298cfM1
+dTAC4gMopdEH+CgAFK/ocAY/2is8t04ilYrqcuOTh9cakTD9Du/tKeFz+SKJpK4wOiCer9QTJTmF
+byXlBh+omxbLTv9z7Y49ScBOtFP+HXuSgOe/v/tH7rVPviixDS603Vvql9lS3z1683Hz3aivSt8N
+KbTdW/pJ5t1rUrlcLkev8W333riiHIm0bfdejm1IoVUw9vveK6OtBT8GJcRpjlTFcVddVZdHYsB+
+nN3XBuRyuVzemsSmTuD8tUmgozptpyOTjACETGd5RpWItblfSvJlURGAkOls/1O1CtFb0xzJVNe0
+1uFLcUmUI52MIGSm65FLirM7elsLwlyZVARBECrTNaygVTXnqmd9yHurw+iAvvNS75gzParDlL63
+IWQ62zdqOK7WJMexh5J01J7a6cqkIgAgVKbraD7GoxO5vKM2zZdNRQBCZnpGleTspKuda9dxynFs
+RUdcR44q6a1N82fTVfKuclZJaxIboU/sVJXu7u4rV660trb+8ssvYrFYMkJ7ezv2j1gsfvDggUgk
+wr4HTyStqUKj6vDclasiXnHo6z4aZ2+Bp9rmOdhpPjqlW5220xGrjmQ62z+tevg0HYJqA4FADIW/
+vz9xR8Xf358guGKLRTs7u6GhITxv2BlxxBw8eFAllLOzs9ZQClatWqUctr+/f+XKlboENDMz6+/v
+nyyZVdJ99913nz17duHCBQRRfWvipTtlTFxFsxy8vpwcr/+G4z5djZe+8uM1vnj+DYtqX1d8ypWM
+sId70OLqJF82HeuCOvonDYskzvGlI4hnTodc3tt4ypdFRRCEyvZPu1QSxqQqn4/dmsQCZNVztaeI
+8RxZzu+5+uG9zZhR9+G9zYRHlk8GveePl+6uUHR9Bx4L67xCLh7TreDFpxzp+EcZD9OaxKbvvAS7
+cJOGOM2RiXOI+P8M3d3dJ37zmwwTkzM0Ws6SJRp/Z2i0DBOTE7/5zSwx7SAQCGTyGd+R5QoyMzMB
+AHPmzBEIBATetJpJPj4+Kpvvy+Xy58+fOzk5YR7GkbXi4mKt53EbGRmVlpZOoszq6Zqams6fP1/3
+dKeSCaoIApmJdBT4UqdtyGg826iwF6z7z5vnxhFwnPQJn/Y9e9rzRLbwtfkAyPqE9Z1PjE3WLdYe
+EgBA2xrtdCA5V+IWgDsBEOUnp6PBhZo3CYGMAym3UOIUTTTH838AIyMjL6Gwr0/7mXsIghgZGU2B
+SBAIBDLTGBgY6OjoWLFixfr169UPuPP397969apUKh0YGJg3T3OP5cqVK5hPW8LJ7S+99BKxJG+8
+8YbK5vsAgJdffrmoqAjbRkVLTjSxcePGY8eOhYWF4Z3KPXfu3GPHjqnMS5ygzOrpKvbM1DHdqWSC
+KoJAZhaoVCJp4kaHFzKi69ymx7CYI9dtc6pp5dn91oT8lqpf0L75Rsg8hGlm+pHX8nfI2gNiiDKD
+0xnx8bgnVzVlBhcy4qPhyVaThTTXy4ob3JQ5TXV6hjA0NCSTyQYHB7X6NDIymj9/vtbPlhAIBPIC
+I5fL33jjDbFYbGdnBwDg8/lLlix58OCB1n0Rzc3NHzx4IBQKX3/9dQJvzc3NH374ofIp2MqQyeTM
+zExLS0uNd1EUffjw4bKRnY31hcvl7tmz586dOyruK1euTElJIVhCNhGZJ5Lu1DOLRIVACJDmejH+
+wqU4BifnJk/93pgYs8K0g0AgEAgE8oITGhp648aN4uJiAMCmTZveeeed48ePaw3FZDJ3794dFhZm
+eAHHj0wmKy0tLS0txQ5nYzAYLi4urq6u6vMkX4x0x8EsEhUCmclA0w4CgUAgEAgEAoFAZj1wDhgE
+AoFAIBAIBAKBzHqgaQeBQCAQCAQCgUAgsx5o2kEgEAgEAoFAIBDIrEfXww9aWloMKgcEAoFAIBAI
+BAKB/C8w7k13idF1G5X+/n5DJA+BQCAQCAQCgUAg/1NoPbhyfMAJmRAIBAKBQCAQCAQy64GmHQQC
+gUAgEAgEAoHMeqBpB4FAIBAIBAKBQCCzHmjaQSAQCAQCgUAgEMisB5p2EAgEAoFAIBAIBDLrgaYd
+BAKBQCAQCAQCgcx6dD3X7gVFwonJJ0eGOlJw7ovyYnj0/TvYpCmVCgKBQCCQ/znCw8Nv3rzJ4XAA
+AB4eHm+//XZSUhKeZ7lcbmlpefv2bYXLxx9/nJaWhudfJpNlZ2f/+uuvGu+++uqr/v7+JJKhWvv+
+/n4ej1dWVnbv3j0AAJ1Of++991xdXefPn08QauIyjy/d6aW5udnLy2vOnDkFBQXLly+fmkRno6Ig
+EI3MxlG7h1cFG6Kvff+U2NfgwzsPT/+nauO+H+JFOF7QiriYGkCn4PunUTtTIjLwwk8qohQbRAnj
+LRx0+I6kdJ+zmYmxsYmFe0yFZDQEnvswgn1mxvYnFO6oYJ+FsVlgqRQA0QlnExP3LNGIt9FETczs
+t8SUilRikma5W4QIJje7OoGvE2UkJ+yNzfapyYeKKvISAu1NjU1VZZcKTgTam5kYG5uY2Qdm1UsB
+AADN22JsElhqkGy8MOCoVFKRss3ezMQYMTa12XZCIB31L8wLcTYzMTY2NrXZlqJ0Y0zYwOGwFu4x
+paPVGL/4lEMTPwJE8Q8j5WwzRRD7FJH23EMgEAPR19cHAJDL5QUFBQKBwNPT09PTUyAQnDt3Djt6
+F/OgwsOHD5XtOgAAsZGTmZm5a9euGBz27Nlz/Pjx8cl/9+5dFNXUOo3A5XKtrKw++OCD9PT04uLi
+4uLitLS0Dz74gMVicblcw8k87nSnl7CwsNu3bwuFwr/97W9Tk+J0KkpSGuNuYWJsbGLmHJInHK1G
+uI0gTsOnU6NpAPSUf2KN/iSj3AFGjE0tnANPaOypjDI7+oqz0bR71eQ1R4vfMhYQ++rmX73Pbx/o
+H8D1IeEk8lihfgwC/yTH0O3oiZSpqGadok7EIbFBOExDqgvWRglTvL2LqLFlt2+XhSLZ3n4nRIDQ
+XTOSvEDvDFJodqorBQAK08XDw4WpGKpEbBMbOjs7O9sbyhJt2zO8vROEymGlPI6Q7c2a5PzqAp5O
+dELIy8jgCaWoao9AmOLuHiu0jSu61lAWxxJm89omVWYFQ0ND335bjSDxGv+WIojyb2hoyDBSTCoa
+VVof4+6dRQrKrrktvJzIqo/wDuEMvxkFMVtC6m2zG7q67pUFdSZ4R5Sq9n2kpRF+Ke0eKZdvt13L
+8JBmeLunCInSUhFH6yNAED8AAAC0IjaCh5L1VgQEApk0BgYG6HT6qlWrAgMDJRIJAIDP5/P5fACA
+RCIJDAxctWoVg8EYGFBtzFtbW1Vc/vjHPxIkhEV++PDhgIAAb2/vY8eOLViwIDU19cqVK1lZWa+9
+9ppYLB5fFmxsbDZt2vT8+XONd//5z39u3ry5ublZ/VZzc/PmzZsJRholEgmZTM7Ly7O2tnZ2dk5P
+T7e2tr5w4cLVq1cjIiIAAAQyTyTdaYTD4ZSVlWH/X7p0qaioSK/gHh4eyl+Evby8tAaZVkUJU7z9
+ONT9ZbdvX06xrA9xDikdMS1wGkHchk+HRtMA6Cn/xBp9Q4DYJja0t7e3t7ddy46kCyLc/bI0fiee
+VYzHtPuhpzRA7PuWiP6WiB4g9r3Wx590sQh5deXyv/+V8dZCYl/Gfw5gpwUuM8OdcirhZdTb+rhQ
+iP0zPXxIRdkVExRZB6SdKIluyWSMQMOsGEFKSr1jbOp2Fo3G2pEayxKkZNQTuWsCFaZ4h/BYqfmH
+sZmlFMfIkydD2UqzUBEyiUQiURgsj6OJfjQhhydSCl3JaXDwnpY5qTg60Q3WjjNlZfmRLGRslJyY
+Q/WsuPyjPmwmg+WTerks0kBGq0wm2727vLExVCp9Rf2vu1yu+K1ubpbJZIaRYlLRqFJWZH5N2cnt
+bAaNwfJJPeyC8vIEKAAACCsr21hBoWwaABTmjggPUMlTraIU15MNDUWRrkwajem6P9aDJOSMfIPU
+XHzK6PAIEMQPAEAFh0Ly6EF+TPw0IBCIoZk3b96iRYuam5vPnDmjfvfMmTPNzc0UCmXePNXGvKWl
+RfnSyMjI3t5ea3IbNmywsrJavXq1m5vbxx9//Je//OW7775bv369qanp2bNn//Of/4wjCz09PVev
+Xn3//fefPXumcovL5e7bt4/g493Q0NCnn35aWoo7DtDZ2bl27VpHR0dPT88lS5ZYW1vPmTPnzJkz
+CQkJS5cuxZN54ulOC/39/f/n//wfZZfPPvtM45gtHthHAQVVVVXE/qdZUYITKfXs/Yk+LBqN6Xo0
+NYicF5ctwm5pbgTxGz7tjeYMkH9Cjb6BQMgUCoVCoTEdt6ce9kArOJVEI/CzAr1Nu5jH+8Ie7bg+
+Ys5d7+N/JPb9Roo3G77v5g37r5tvNAjDDpfZ7yv1Smn+b1dPNeeGT2ypfXR5WLlU8cQ+uyOK/bp8
+w74S+9iq2HLpszExiG40/LzrYKn9P5pFmEt0QzV2u+c5j1P38cEy+7DSDYevfXNH5x6ytJJTz3Sx
+1WosMB0cQIVan3TSQTulUipVbc2fqFIgYbo4DLvT2Lb0thqBBN9dA9KKiC0x7R7Z2dsZI2lpG1Am
+IaNqQSvyamw9HDEHSek+dwsTY8TYxMJ9zMi7QcDRCQAASCoSttiYGhsbm9oHZjfoEaUgrxJ1CfKh
+ab7dJzgRiEVrE5gnGofISgwODqakvPvZZ1Xr1y8JCalU+Xv7vfew310Pj4aVKwcHByeW2jRCYTAU
+ZUQiUwCKdgIAAKBSaUDIq8G+4EnbJSiZQVULTKKMVrU+dOw1Mbo9AgTxC1MiMkhBidsZs/4tDoHM
+ctatW0fsYf369eqOIpFI+dLGxoZCwVs3PwYLC4u3334bAICi6MKFC3/zm9+4uLjcvHnz0aNH6oNg
+VlZWiDYwn9XV1Vu3blUOK5PJPv30U62TMoaGhsLDw/v7+/E8VFdXW1hY2NjYXL58+eTJk5s2bfrx
+xx8BAPPmzdMoc39/P3G6JiYm8+bNw4yWGfVh8fjx43fv3lV2aWlpSU1N1TeeR48ePXr0SKu3ySqg
+cYO2t0loZvSRasvycKHVj7SaGtGj7zcV6C3/RBr9KUGpPyAVpGyzMTVG1KaajvoQ5sUML0cxsXCP
+qZACANDSQFNjZ6WRP2GCjfFUL/rQz7T7oaf0fPdZdfc0aTLB2F3b3a9uvvy3vc6XP1+98sHtsH/c
+PGe8/Ns410Ifyu2i/+a2AwBA3y/Nu9LvPF3x+7TP7dN8Fj/lCnZxuka/0zxqPlQBtoe8d3HvcsbY
+uPsetVc+o/j7ry38+9ooRm/u6cYbOr6l2gRCiiUTp4uvDJPNbG+oJ559O3FQaR9o5wRamBgbm5rZ
+KxYmtbW1AzpVISWdSQNtwnZ8d1X6hFl+3hm3KQ5+uFvFKCMRpMRmSx39PBQxo4L8GksPBxIAAEjz
+QvzyQejle533alLd6QAY+IHE0QlA62Pc3Q+1seOKrl0rimXVV9Tr/EmvrUGIMtkszbrozAuJqLFN
+LLpWlurQmR0SqzZ/UF/CwiojI9d8/jk/JuYdlb9mFy9ivxUczu9//nmCCc0Y6nkClMlmYYPDPnGH
+mbxttu77sjhZIbENLvtHJj9rQFqfFxLDo26PcNGpawZ0fwRw4hedCEmQ+qXuZwFo2UEg08bevXvp
+dHp2djaxt+zsbDqdvnfvXmVHlQmZfD5fYWu99dZbBLGtXLly1apVAIDTp0/v37/f19e3vr7e3Nx8
+9+7d2CzHyaK0tFRlmh+FQgkMDAwMDCSTx8wEb2lpuXjxIl48VVVV1tbWlpaWlZWVmMsXX3xRVFR0
+584djTLzeDyN0wsx1qxZU19fj+n87t27itmP045EIvnqq68AAMuXL4+IiIiIiMD2UImPj8cm02rl
++fPnPT09RkZGCxYsIJFIc+fO7enp6ezsxPOvUkBisbhPiYcPHypuERfQuCGRKSRpe/tIK4QCgABJ
+G0F/U7+Gz+DoLf8o+jf6hkYq5EQc4pEcsR5vfYKzdxYlsuh2+72aDBdhhHuMQLWzgAo5nHZ2ZPbl
+28LLqWxRil9EBQpIrqHedEFGvmjYk5CTJ2T7eTOmNCv6mXZZnd/i3Ur99Wu8Wwuoe//6O7OFACxe
+4rxibv8by+KcKK8CsNjijbdB93/bBwGQ8bktbYzfx3lQzRa/8pYlM24zpa3qTkXPSAy9yGafVWsX
+GyFqGxUhjOVxf2U4Ml5ZvNjYxc2U3ivl61jJJe3tVA2jCOpQqHSSpN3Qjw7FIejw/sNnLj/qelSW
+yBLGDE/3RVEUAKWV4SQSQPtQfPex9LWl+IUIWO4OIC9i7CKjsd5qIixNTExMjBG6Q0Q9KzJ21LID
+gnwB02P4yZO2t6MkOpNKIVEYjjsifZiTkXEC8HTCS8gQsg7np253ZDJZrqGJoboP4EslnYBCEg1/
+ijG12JKgNEEPcUksOrnDkcVkb4/0NkOFDRNdhff11+tiYgQHD9pGRl5V+dv4zjvYT+jgcGvVqgkm
+NEOQZMVmtLtE+g1XDBLV0pZFR0T5Id5BHGpQJM4LXHTC3QSh2vrxGHFnE3X6AgEA0PURwIlfkhcR
+1+aRuB/ufQuBTCu1tbU69tolEkldXZ2yi/paOwWrV68miOrcuXOYYWNnZ/fw4UMWi2VkZGRtbf3o
+0SP1vSjr6ur6tIH5XLduXW5urnJYFauJQqHw+fxvvvnmm2++4fP5KtYdgYl19epVFos1ODhYW1sL
+ADhy5MiqVasCAgIAABplJohqzZo1xcXFixYtmjNnjlbPU8zf//73rq4uAICVldXhw4cPHz7MYrEA
+AF1dXV988YXW4E+fPv3ggw9kMtmGDRteeuklBEHs7e1lMpm7uzveikSVvC9atEj5cvHixQSeJweW
+twuJk3CoQoKikvoTgSHZbX0AEHys1rnhmyL0lR8AMO5G3zD01YSaGRsbGyMI1TKwgr4/P3s7DQAp
+51AC6ncy1YdFo1AYjpFx3qAoW3X6HokdeeZkqAebSWOwfGJ3MKUCnhAAwArdwazPysf63Jhl56HD
+MNJkop9pd6MPd0MRgltgLhg2yYxenQfAfKNh5/lzX1r8rclfAAAgAElEQVQA+nuHAOi+8WCI/vtF
+iqdo8QoqXfbsv4rR9AXGZvhG2LP2x7nn6nb9o9Ir9U7bgOxZr05ZQftQVHneIQEkhIRKDf7oMDxC
+Qz2YFABITI/EOB9SRTZHMrzh1+jOWyiKYrMl8dxVaG8jb8/PP5sRyxYmxOThtZ+I7f6yhoaGhtvC
+hsr8SHKGs61iIayAU0FzH+mSM/wS99M57mY2W/adKBVNwctEs06EFTUo08OFMZ4YSQD0CVJSUb/8
+hkedt7O3tyd4h+SNfGEiUcgj7xgyjQImXuiffnr5wAGbsLDLX365VuXv769fx37Mykrm2P7KbEV0
+wi9CwIpLHJntWp/g7tfgXXTr1r3blSke0kPO3sObsqrA2J7d0FDDy/BG4+ydE9S+i+Gh4yOgKX5p
+aWxsjW1ioutM+VioAygn0NQEwzRQ406xEMgs5Pz583Z2drr4fPvtt//f//t/yi54ph2CIIcPH9Yl
+zt/+9rdZWVm3bt2Sy+V8Pv/s2bN4G2agKKoyUVCZhQsXrl+/vqio6NVXX1V2b2sb833Qx8dn6dKl
+2P/Lli3z9vYm8KxMXV1dT09PVVWVTCbbtm1bdHT04ODgd999t27dOo0yY9v3AwDs7e0PHDgwd+5w
+T8/Kygqz64qKirZv36413amkrq5OMXirWLKo+CcrK+v69esEwfv7+z09PcvLy1esWPHNN99gjv/8
+5z8ZDIZAIPjTn/7U09OjHkqvvBtEURTX1PzDVI63GdnEIaTBZX8kC6GQCbb20rnhmyL0lR8AMO5G
+3zAglhFlDQ0NRRGWCNUj8WQkZmoKKxo6b6fYG4/gnCGRSjWMRkqFpSn7tjnbWJi5HBL2dXZKAQCA
+4R3q2JaVVQ8AEHLy2hz9XKbYsptJ59qNS5SnN+s+yXtu7c6McrNgDIh3HcQfmxoLCZBIOn7rQPtQ
+kl4beEwYEoNJBYLOTgDoTCoQtEsAYAAAAGgXSgDdmwoAGcddBbOQk4mOFAC2xwWlOMfGVXikOmrM
+CJlKo9EAADQaI/IMUm/qncqLc/WhgHpOJc07VFEpKezIstt+Ak52SoKfZZzDycqzPoxJzzwOozqZ
+yGuAyqQjLI+USFcGAAA4hka6HArk1QMfRw1+J75N01df2YWFVcTH2wUH/3D8uL3y37plyzA/c19+
++aeff37zqZazPGY60op97hFCh5M1OxjDLhUZKe0e2TsYAAAae8eZoj57y7iM+u2H1XetIVFoTAqN
+eZRNaTfdFscJKvLRxeTCezTUUY0/G03Na2sH20yNsft9fX0xliZ5+y9fjjT0QPT4IXkkNjTEoQAA
+QJri1xEEYlCw4w3G4e23v/2txhG/8PDwFStW4MUTGhra1dUlk8l4PF5VVZWTk9Py5csrKytbW1tX
+rVql0c58/vy5h4dHXV0d3vlyN27ceP3119WPXlCMjGGorOlSuVTxrIxMJtu8efPjx48BAHw+38fH
+B3Nva2vDkxnj1KlTb7755pIlS3bt2mVpaVlSUoLZdR9++KEhVo6NG7lcrryXCTZ2p/zP0NDQvn37
+ysvL8bT0r3/969q1a7/73e+OHTumyNqKFSsuXrzo7Oz8008/HTt2TGWDFkCoc3X08qw7FHbo2Vuh
+2P9oaWAshckiMAR0b/imCv3kxxhfo28gSHQ6g0FjRMb5ZHvHZkS6jvQDENvE25d3EOVFkrfNIUTo
+EBeXuv8kE81zNosdvkHzCHKJjcgS7A+t4bSxQ6d6zE7fUbu3ETberT8sdB6/FC+/9QZoa/xV0bt9
+evdxG3j1LROtAXvKyttfWmf19/W/ZSw0AkCfDeSpVEq7SJdplmi7BKVRDf3oSCVK3wOkgkohYNKp
+ADBsHWhCXuVw6yUSVLbRbR1p+O5jQShMOgkAAEjs/Yc90CyiWZmjjJo0Qh6PpDo8RqKxfSLPXCsL
+JfMS8nU1pMcHjk7oLDoQCkZXP+qzVS7N0YUprGgYCYuiqJaTkCbEH/6whM/3cnKiNjRsUfm7oqEB
++y3n881qagwlwdSAClO8vTNIoflnlPanQVEUoKN2OI1KBWin6kcvqfLIKIlMIek+VqrTI6AxfopP
+9m2hsGGYoiAzxDK0rCY/aObadQAAACgUGoZuO0VAILMBDw8PgUCn44Vu3rz55z//Wdnl+vXriimR
+ihEwGo1GvF7u2rVrQqGwpaUF2zvxypUrp0+fxgYAnZycNmzYoOK/u7v7z3/+89WrV7u7u/HiXLZs
+mcaGhE6nK1+ePXtWsatnc3OzyiCkqakpgdg8Hg+bjXn37t38ER48eKBRZkW6n3zySU9PT0BAQE5O
+Dp5dpyLktJCXl3flyhXFpbppBwDg8/n5+fl4MeTk5AAAfvnllz/96U+rV6/+wx/+gJXpm2++efDg
+QYUHFfTKO3EBTQZSXjYPuBAeNaVb32+a0EH+iTT6hoXiGhvLEiZEYPPbmGxLUJ/PIZwrLspP4SBB
+Z07ucGVSSGNHHSguQR6gKJtTxBE6+E3DYkL9TLvt5E/wbwWOX4r5ju8xltxtjOU8Fj3tud0gjC34
+dYnjckctxxsAAIxemQ+etj3579O+p7+0f/Oflv8qDr6RyZ519T3tHegDoL+r72mX7JnK9ipMNlN6
+WyjV7l8oEFLMmIYtGkmWn639lgROvUgkqufEeMdW0IMiPSgAAPaOUFZFbMiJeomk/kREnNAxMpQJ
+CNzxoHjERY7WWlX6OqVSqVQqEdVzUrZFcEgeQS4UAEQ8DlCy7FBBwpZtKaVCKYpK6wUN7SQ63ZAG
+L65OaB6hLqSiCL+UCqFIJODEBCXUaDDuUKlUIpF0dqIAoO0SiWT4fcL0i3SoiQjJqpdIpUJO7CEe
+3dvPYEf2/Wxre9Pc/MabbxL8bpqb/2xraygJJhUclYrytjlHCB0STwZRJSKRSCQSSaQoAI5+PiRO
+RARHKAUAFZVGJPBoHt5sAIDohLOJifMJEQDSvEBLyy0JHIFQJBJWZAVGZKFsb2zmAl5airD4j4D2
++EkUGmP0RA0aCZBoVAYNGkwQyJTz9ttvL1myRBefS5Yswba11Eh19fCm2UeOHDE2Nh6fMOXl5T/8
+8IOKo7e3d0XF8PlHWrfKtLKyUg773nvvKV9KpVI7O7vdu3fv3r177dq1Ktt7ODuP5/u4RpkV6VZU
+VLz//vvPnz/38vJatGgRl8v961//qjJe5+LiMo50J5Genp6YmBhlF5FIdOTIkS+//FJlDuTnn3+u
+cV4lUJstWVVV9e677yYnJ3M4HGwmp2KSqjIqBfR07PQZlcvxFZAW0PoTISEnKoQiYT0nwS+Ex4qL
+HZ5bhdMI4vb9cPwbGD3l17/Rn0IY2+O2U3ixcQIUAIpHZChdEOu9L69eIpWK6vMSUobXKZEAQNvb
+JSgAJDIJtNfwBCKJpJ4TE5QoUOqJkhxDvZG8kEP1DtunY5sY/Uy7DQtdd1HC1d13UcJtEJ2my+OA
+MJhpwSsXNzX4/d+KT/IeL3Z7J82DosPeGIizz+q1vc27vizflte+5L3Vm0cG+p7dvPne/h83fdn4
+00D/hW9/3LT/x9hbY7eXpzi4s+p5I5N88f2LKms6HVwMfGA3bXt2fiiNF+NsybR0juCR/fLLjg7v
+8MAMzc/360x0NjNzTukLzc/YPvx9Bs8dF0ZQYhCFFxtXob7bSk2EJZVKpVLpls4ReSTvM5UnPSgA
+iIo4UheXUYORxHTxoPAinE3JZFP3FBCUnWrQMXR8nVA8TpalOEgT3C0tbQOzQERikPqHN2meN5VO
+p1tG1PS1Z3vT6XRTP2yBEs3nTFEEKcPbzNTUOabN5UzRYcNtpbGssvLNy5dX/Pe/zMZG86Ym7Pd7
+oRD7h9nYuPKnn0yvXFk2sunZzEazSlFORGBRO2gvCrVljmAbWw8AyTGRd9KhLcbZ1NjYxCGizeEM
+L1ExHZg0vIfmyfwIGi/G24bJtPGOE7ISi/KxCZ24xQeUVpATPALa4odAIDOCr7/+WiQS+fn5EXvz
+8/MTiURHjx7VeLelpeWXX34BALDZ7L/85S/jFubnn39WORUNTGwanqurq8rU0M7Ozm+//fbbb79V
+setWrlw5PstBo8zK6V69etXDw+P58+dcLtfHx0fljLiVK1eqmDdTz9dff33//n1lFwqF4uLi4uLi
+orLTzP3797/+WvOOfWS1BV5PnjyJiory9vY+fvw4UNsiBUOlgF5//XVlQ/31119X3Bp3AWmBRGcy
+pRl+Nkwb5wgONa4sf+SUKtxGEKfhI2o0DYie8o+v0Z8qSI6xsS7SrIgsEQAk9uGysv30mlhnM6qp
+rXeGEJCwBRG2Ph60ipAQjhTQfFJTXaQJzpZmtiEcekRKkJlyZMygHfRO4DItlh2Yo+M0d+XPPNf6
++Km/fo3tm/I2wg5Z9OnE7LrpQpLl7MCLaDjjStS1F6XYuwjjGnDWqL3ISE44Owvjbh3FnYMLIaSn
+pyd/2bI58+cvmDvXCKdzMCiX9w4NyWUy75aWhQu1j1JDIBDIi8eqVasINusHACxbtqyxsRHvbnZ2
+dmBg4Jw5cy5fvmxjY4Pn7dChQ3FxcQSpbNmyJSUlRcUG6O7u3rx5MzZwp9fZ2RhcLnfz5s3EJ6cZ
+GRmdP39eo+UwPpnV0zU1NRWLxSpH2BGkO2Xcv3/f0tJSZSzuo48+Sk9PBwDs3LkzMzNT+dbChQsb
+GhrefPNNlXi2bdtGMF0TAODh4aHRwwQLCALRjJSzzTKElHH7JKGJ8dJLLxki8fHsXWKD2J1ekjfp
+okw5NJ8Ih7jUPIkr/oAXKkg5gQad/d+z6wCQ8ookjhHQrhs3RkZGm27d0qUrgCCIkZGRVm8QCATy
+4jEwMCCVSpcvX75u3Tr1A+78/Pyqqqo6OzsHBgbmzdPcY8FWzfn5+RHYdUCHXtTrr7+ubiO9/PLL
+586dw7ZR0ZITTbi5uR09elR5jxAV5s6de/ToUTyzYXwyq6erPh2RON0pY//+/epzLLlc7rVr17B/
+VG719PTs379fxd4DAISEhJw9e5ZgrCI0NFSj+wQLCAJRBZVKJEJebASHHnmN0K4zHOMZtXuBEGWF
+ZNDjDuOeqyHMCuHQ4yKn+9yNaUCat8WWF9RA/L0BQsDQ0JBMJhscHNTq08jIaP78+Yr9qSEQCOR/
+ELlcvnTpUrFYzGazAQACgWDJkiWtra1ap0RaWFg8fPjw1q1byjPo1Glubvb393+Ksx2xsbHxyZMn
+LSwsNN5FUfThw4fLRnY21pfS0tJPP/1U/fiEFStWJCUlEax2m4jME0l3yqBSqRo3lSdg0aJFGs+p
+IxjhjI6OxjZTwWPmKwoyW5DmbTHz41EcghKzj2rdG9NAo3b/46YdBAKBQCCQGcHevXtv3rx5/vx5
+AICnp6e1tXVSUpLWUG+99VZwcHBISIjhBRw/MpmsrKysrKwM2/CDTqc7Ozs7OzvPnz//hUxXRw4e
+PJiUlNTbq9uBxAAsWLBg3759+/fvV78ll8tPnz79+eefK1vCixYtOnz48EcffaT1A8EMVxTkhQSa
+dhAIBAKBQCAQCAQy6zGQaQfngEEgEAgEAoFAIBDIrAeadhAIBAKBQCAQCAQy64GmHQQCgUAgEAgE
+AoHMenQ9/AA7DxQCgUAgEAgEAoFAIBNh3JvuEqPrNioQCAQCgUAgEAgEApmxwAmZEAgEAoFAIBAI
+BDLrgaYdBAKBQCAQCAQCgcx6oGkHgUAgEAgEAoFAILMeaNpBIBAIBAKBQCAQyKwHmnYQCAQCgUAg
+EAgEMuuBph0EAoFAIBAIBAKBzHqgaQeBQCAQCAQCgUAgsx5djyyfhUgKo3Mp0eFOFJz7otxoLuNA
+sB1pSqWCQCAQCASigZCQkBs3bpSUlAAANm7c+M4776SkpBg60f7+fi6XW1paeu/ePQAAnU53cXHZ
+uHHj/PnzCULJZLLTp08/ffpU411jY+OPPvqIRCLqX4wv3ReYyVVIQ0ODTCZ7++23J1tMCGTGI5/B
+SB+fyajYuJdjFVLik9FS3610q/tpXmbFxr0c272lfpltTd1qYXsv7WQ6JrViFwMPhPe/zazYEFIS
+1zzGB3vEx3RT4ktWLRmy/yW5XC5vTWIpuyKeBb1jg1aH0RF2mnjksrc6jInQ/Us65PLWNEcy2fVU
+64i30UjIdLZnVEmrihAdp1yZO6sNmEu96W29lHPEn01FqARyidPYCD1M7b7GsLh67s3xRMj+JYbI
+xItDb2POTkc6GUEQKss3qbpj9E5HdZo/m05GEDKd7X+qtkMtKG41FpdEuTLJCEKmO+7MaexVCyiX
+y8WXknzZdDICECrLN00pWR2qh/hSkv9wWKZrVIl4NCxuXmYsuHqQi0vCHOlkBCEzXaMuibW66/JY
+4egHtxx10Ce+/Pr50ROCR1v3px5Pw6MQvKg1Ph04NVNnkXAKEU8MAsVqfXinABRF5XL50NAQjUYD
+AKxdu3bt2rUAABqNNjQ0pPAwDu7cudPbq/G9MsyFCxeWL1+u3jVavnx5cXExQcD09HSCnhUA4Msv
+vzREui8qE1HIs2fPytTYsWPHK6+8cunSpSkRf+J0FPhSAVDvlKq64zZq0wXuy1/7a3PaUe4YA4TK
+dPTX1uzMjr6i4U07yf7PLh67N46A0mNx3/tkttU/6X1w7/7+LzgbMh52Dd/qOvPV9+9+1VDS3PXg
+3v24ry5/qxa/OMeV7lswUkLSvIzLn3x18d1gZdNOLm88wmKqmwTTQm9HqxKXwlhk1pFauVwul9eG
+0RHHpEbFPbFqKzXGtBPn+FIRVlR1r1wul3dcOuLvP/KgVYfREXZSY29vb29Ha21BGJuMsI40KkfU
+keNJ979E1AhOObVpvo6ObCYZjMO00xgWV8+T/7gODg7WrrDW8Tc4ODiJSRuI6jAmmR1VLZbLOxrT
+XKlU/5LhytKYxCaT2WE51Y2ttTk72Y7DVVcZnGrcmMQmM/1zasXixpIwNpnqX6L2Vq2NYpFZ/qeq
+W8WttTn+TIQ6+lxrrR4dJb5UuuuRkkaxuLEkik1GWEmNWvIyY8HXQ2MSG6H7nqoVi2vTPKlkx7RW
+YnddHis8/eC9jrTrk6Ac9fKjN5Ng2uFqUgncF7XGpwO3Zur8IsIpRM1iEChWh4fX0Mhkst/85jfL
+ly/fvn27es9++/bty5cvX7RokUwmG0fkCxcufPfdd589e6bxbkpKyty5uMtS5s6dm5qaihfzF198
+QSaT8/LyrK2tnZ2d09PTra2tL1y4cPXq1YiICABASEgIXtiJpPtCMkGFXLx4cZkaixcvBgBs3rx5
+ynIxEXov7aSTyWQ1007VHb9Rmy7wXv66vDanneGOcUdHR0eHuPHSKX8mQnY9RWSGvrimHe9Z8V/v
+/XmlkLZSSPvrvT/ze64SeO6/vztkfKadvOtJ94gtJ0dr+e/uvXalXy6Xy7tq+e+GXM6TEgQVn3Kk
++qoMb0nbPgkZa9rJG4+w6DsvjUc2Q9KR40llRtUOS3/Jnzo8fofDqGnX25jEHh2mw/WmdK38Eukt
+8KXPyA6u+JTjeEbttIYdo+fJf1xRFL2xYk3Pv05r/d1YsWbc36SnkMYjLMRR8c67tJM6rPSOAk8y
+4phG/E1OczWuDqMjrjkKSy2KiWgYR+9obVX073sLPMlk3zG1lLh69HYo/PaW+CvkxMvLTAZPD9U7
+6YjrqeFb4jRHhBlVS+Q+DKHecPWD8zrSRZ9aylFnP/oycdNOiyYxcDSD+3Tg1Ez9XkTqhYgnBo5i
+dXp4p4AVK1bgdesxli1bNr6YseDr1q3r6upSuXXhwgUCc0JhVJSUaC6OL774AgBw//79vXv3pqam
+nj9/PjAwsLi4eNeuXXK5fOnSpSYmJllZWeoBJ5jui8dkKeTx48fKl8nJyRs2bHj+/LkhZZ8kequj
+mGTHqDC2ShOoyR3n1TFd4L38dXptTjuqHePeAl8E8cwhaHZmh2mn9zYq0ZLwvz38uKa3Crus6a3y
+u//B8aeJGj3fvmm/50bVwPNTX55fs+vC338CAIBnt5uj/8GzDz3PjqqM/uHXZyN++64L2P9ovl53
+KzCmiH34disAry5e+OrIXWThfCAbfAYAAIMN15/0r2a4qc2sG0VaXlhn7qZ9FZ25kxMo59bplPEp
+o+7AgXK7+GgrTHpUKpXSaHjrBZWRlod7RUu8cnMDGMMuaK4XiRLAxQ+ivBAALc/l23k5YQ4Sbrib
+OYU0h0QxdwvObULHlxMDIimP97KikUgkml1A5vgKcKyeMVB+egAWrVVArmhiIg4ODg7NmTNQ/98B
+/nWiX/1/h+bMGRwcnFhqUwCNRgNNXL4UAACAVCJBKQwaAADl55ajbsFbaURhNVdjVCKS0MwZI85W
+Xm60upEERqEwFD4AiUIBKKrqgwASRamKo4prnLzMaHD0ICrnS8zdRpYU0+zsGCI+X4Lvjoso3YlG
+c8sUAYCvH7zXEZ5/5TjxylFfP0DalBu91Y4x/H6KLh+pDnjuAACAinKj3cwpJBKJYReQOeaNpvmW
+Uoq4mlSWCkcz+E8HTs3UTSRc8AoIR7E6PbxTwfr164k92NvbqzuuXr16jjYwn1VVVR988IFyWJlM
+tmfPnqGhIeJ0h4aG/va3v/X39+N5qK6utrCwsLGxuXz58smTJzdt2vTjjz8CAObNm/fo0aOHDx+q
++O/v7ydO18TEZN68eUNDQ3v27JHJZMTivQBMVkGcPHly9erVyi5/+9vfSktLX3755ckR1JA0JYen
+k4KTAxioDu5Er45pAOflr3cDNFNQUrWUn7zVikaaQ6IwnDR3hDU1Oig3gEZyyhzNa1O8FckuWWRw
+yZXRz7Qre15yrus7dffUp0cFI8aeMmbWF7/4vdm8BR9Gvs9P+9P/XQ367t8OTGl6stLi5IE/Zvzl
+tScXrgYWdPYp/Evu/P1H8NGnmyo/M1s6NibhTx39tN8w5wMAeoTtQ4yl5FcBPiJ+E8XKXIfmytzO
+XFJXp0dP0eCg3PhcdGu420g7jEpRICkMMKeQSDSG3dZktY7vsLemzK1e/xJSnAJwt41RRsJPjs6U
+OgV4KXSE8nP5VsOWnTQ3eGsuCOdLeiV16V4MAGbYTjNoXbSb2wGRXTy3ro57wKquvK5PeyDVOFT0
+DAAAnbnB4Xy7ZG5debqT9HRwNHeiJu2QHIC+fnk/0Q/09Q/JJ5jO1EDZGh9vzt1q5RaeWZgZHF3n
+diCAAQAQ1TWh5nZWxNVOczUmUSgkqUQyomYUABKQiIgexzouHzW3s9K/QkrrcoOjubSAaKzEcfIy
+a1DSg0gkAQya4kFmmNOAqEmC704EiqJYYeDpB+91RKBPRZw48uvtB20qLJTYRefyRa38dDtR8tbw
+cpTIHQAAOgvjM0FAJr+prjCYVPiRWzhfh1sjKRJpclQqzZrR/nSo1EzdRMJFl/ZCufLo8vAaltDQ
+0CVLlpw+fZrY2+nTp5csWbJnz57JSrekpKS5uVnZhUKh7NixY8eOHWTymO/GLS0tPB4PL56qqipr
+a2tLS8vKykrM5YsvvigqKrpz505ISEhUVJSKfy6Xq5KuMtbW1o2NjTk5OQCAO3fulJaW6puvWYdK
+QTx9+lR58OHJkyeKWwQFcfXq1R07djx+/HiREiYmJr/97W+dnZ0NnocJIkoPjpcGpB+wAqhO7sNo
+eHVMB3gdg3E0QNONtKkw/ACX5IT1hOvinbwyKdFcUYekLtOtKdwtmq9aDhobHZJb+FYGP10xONBU
+mNtkF7CVMaVZ0W9C5of3NmPzMNV/H97TPKH5yV2f0QmZ/T+mfW97tE0xaP646rLtXn5Jt1wul6PX
++LbBP36rcWRZ2rZ77/fh17Ax0qf/+JzzyUXJmYwfN4QU2n52MZw7dhReLpeX+JLVJ3ZpmJApl1/a
+SVVZcTa99Bb4kqlj5oi2FiQlFTR2yOW9jQU7WRqmAVeH0QGVTkXIjp6O1DHr58YMHFeH0QFAyGQy
+mYwAAADZ8YjyatFLO5mKsfPWJDZC33lppuwsoTrpqLfAl6w8a2E8EzLV9Nyb44kgnmPmBk6wYnR3
+d//000+6+Pzpp5+6u9V3App5iC9FOTKZTCoCAMI+MjyVtTqMjjgmlST5sqgIQKhMzyOa1ktrrsYd
+Jb5UhB11SdzbK65N82WREUCkdfEpVzLZM0es4kg8X1femuZKBgAAqmua0jYtGvMySxijhxJ/MuJZ
+oLjXkeOKqQPPfTQSQr3h6Af3daSPPjWW4zj8yOXy1iSWxnk+Su69OZ6I8sTO1iQ2IGNTzwluKaFN
+k8NhNWqG8OnQVDN1E2kE9ULU2l6MUaxuD69BWbdune7dlfXr1+sbvyKgyoTM3bt3K8dMoVBaWlqw
+W83NzSrWncZVc9iETBsbG7lc/vz5c2wXxyNHjtTV1S1atAgA4OPjo2KoqKerjLW1Neb/7NmzBOm+
+YKgoRN2D1oKQy+UDAwP+/v7GxsbX1WhrazNwDiaIOMeTim18J288whrt2uC5y+V4jdp0ofHlr9tr
+c9rBtlFBEATB+sVMzyNY17ejwJOs3LRUh9HpO6vlBBMylRqd1iSWogM5dsLqVKHfqN213upx3Brl
+2fX7Q4zVr702cv2a2RKGrPOWwpJfQGZqGGrryf/2VsPvVkW+g32/NQJg6NaPLX1r2QVfv3/hkzef
+lgoOXx8zbQFFUZR402EFJBIJlc6g+YZ8bjmwc7NTcmF4hYd7mVMAIJl7JcdvJZVnFqp/+WhvowQU
+FhZmHrBrio/OxfsygrAPlDc1NTWJWhurC6Ip6U5Wwdzhj7r8wnKa18i3H0ZA8gFGoRvDyis8nSua
+QdrBaCrno+ZeboyJxKGuZwAAiUIZ+fpFoVHAxCuGjtMsZ8NsTABAXbzb1rqt3KYmiag6zUt6wMkr
+UwQAIAHQx09ORgMKm6S9otwASbxXcK7aWIHmakxxSy+MpxV6MRZQ7ILr3A5EWyGjZaCKKH1rON8q
+Plnf2WOMgNymxtpLp7aiB+yc4rHvbjh5mRWo6Kmt38kAACAASURBVIFEImHTcjBQFMWc8Nx1Alc/
+OK8jffSpSzlq8SNt4iaHb3WyMmc4HWjqk0qlWtwBII1OPWBYmZNR0ejgMMGtYQ86aVKzZgifDk01
+UzeR8NHSXqhWHp0eXoNSXFyMbYaplXfeeYfD4ai7oyh69+5dvFDYNipcLvfVV8fM9Glra1O+3Lp1
+69Klw3OFli1b5uvrS+BZmbq6up6enqqqKplMtm3btujo6MHBwe+++27dunV5eXmpqakq/rFt/QEA
+Dg4Ohw4dUqwxW7NmTVlZ2aJFi86fP//hhx9qTfeFQa884nk2MjL697//nZub+7YapqamkySpQZBy
+o6P5dsnJqiNveO4YuK+OaQCvYzCRBmhKQVhR5U1NTdwoFkL1Ss6Mxma+NZXXdQqT7UgjOKVLlFsU
+BRobHcbWcCdRZmYdAKCpMFfkFOA21XPep+HIcv2O0pNdz69ObH8t5pOlrw+7IIzFc5l/ZH28euGr
+841eM1v+0aqh6z91KochARJJ28SVYVAUneaJymMQ1fGlDDtzPIFIDHMakGioXsywzGQnCmAExAfT
+uNEHyvHyTqHRaDQajWFu5xWdm+4lzUzGbLu6wnLa1tHKR7GLLheJuNF2kvSt5gyvia46m2Qm4TWm
+Rc+Tlc7g4KBMB2aHaVeenizxig5mAABodsG53Hjz8gPpdQDQzBmIVXh6tBuDQiLRnMKj3VAt61eV
+qzHFLrywSYrKURE/fSupSUQxt9L4DpSWh7uFNzml5wYz9JacRKGZWzkFJHPT3ZoOHCiU4udl5qOu
+B4Y5DYgkiu67pEkCGOY0fHdd0E0/o+Wouz51KUctfiS5W63souvMA9LL60T8ZDtEi7sqKIoCnE6G
+5lv6a3JUM8RPh3rN1Edarai2F+qK1f/hNQRyuU5T0jV6e/78ubOzs5WVFV6oW7dulZWVvfLKKyru
+imV4GCprvVQuVTwrI5PJNm/ejE285PP5Pj4+8fHxJ06caGtrW716NcGY5JkzZ2JjYzMyMubOnbtm
+zZqLFy9idp2Pjw/BirIXDwLd6uV57ty5GzduxP7HViqSyeQ33njj1KlTExXRgEgLk3Pb2rlbaSQS
+iUSyOlDfJ4g2p9jF1+C4Nw2H0+HVMUXgvfwn0gBNMSQGg8FgOEXHbwW50elNCneEnSxClZDmuqmE
+xG10aF7BbtLcTD4q4haK7JSWPk0V+pl2Ngtwv65teMUV5w4CBvuGB9VetXgTiH4enTz95PYjESBb
+4OZ6sPUHwd7KuX/d+Y7Spimkd1a/0nqnc2T/laG+AYDMH5sPGo0iEekyqxeVSFAabeZUtya+CNAY
+DCUXqUTpoZXyy5uAufqGDwjFnEECAACS3YF4LzQzPLlJ1YsGRk2XJi6XpDoMRqLZbY3OrSsPp3Dj
+c3WJbspgWDFAE390haRuRvwY1PVsEDq2BDz+09ZHf/Qi+D3+09aOLQGGlmQSQFEUoKOVhkajAVQq
+BYDm5GbeVK4oDs0f53SpxlJuJhe4bdXQR0Obkr280knhhbn6jthJlUdeSRQKCRuLxcvLDEejHhh2
+TrQmbvnw607ELxcx7Jxo+O46JYSnH5xy1FGfupSjVj+i3ORCUnBuZrCbOYWk9BbDc1dLoI7L72RY
+aVpfhnNLJ03iaAb36cCpmXpIqxH8B02jYnV6eA3Lxo0b+Xy+Lj5v3Ljh7u6u7NLd3e3u7n7lypXu
+7m68UMuWLdOYJTqdrnyZl5fX0tKC/d/c3Jyfn698l3jkh8fj1dbWAgDu3r2bP8KDBw/+8Ic/vPfe
+e3jpbt++vaen5+OPP87Pz8ez61SEfCHRK486DsFVVFSkpKT861//srCwEAgE4xVtCqBszRW1tjYN
+ww1mIqzw8rrCYFscd3OdXx1TBd7LfyIN0PRAcTtwwKopPhyb92ZuZwXqcjXMkVOCoNGhuAV7gcLM
+wsLCJqeA6VgMqdf0Td6zYry1dnhHIPQ/jNrL8cl7/EDa/bhbjjb/5BXy/SfnJC1Puptqf/pkL8fr
+3FNs23f0Gt92740rSkEfXONvCC4Jr5A+eNKN/R53D8jlcrn0fvhnpVFV0sfd/S21dV4hF//RPDAm
+0Y4cV7Ji5Zhc3t/fJe19LL7rF1Kyv7b3sbS/q3/4Tm0Ycybtei4+5YiM2blafMqVyvQ8UlDb2tpa
+WxDlSEWYYdXER5bLW5PYCNk1R6y+1m70+I7W2oIkT/rI6UatSewxS/Sqj3j6JpU0dvT2dtSmuZLJ
+o0vQppjejg6xWNyYxEao/gVisbijQ7FhN6C6Jl1qbG2tLohypAKgXoo4YeVyuQY9q82fbk1iI/SJ
+bdXb3d19cRmr2X5T8zt/IPrZb7q4jDUL1tr1XtpJJ7N2Yut4Wkt2shD6TuwURHGOJ5Xue6pW3NHR
+WLCTOVJHW9McydhZNrjVuLc2befOtEuNrY21BUdcqaMHd4yGlctbczypgOqZVjt6VhdWljhFPBq2
+I8eTSvc8UlDd2NraeOmUPwsZjhM/LzMYXD00JrERqmfayPFBitVVeO5a9YanH/xyxNOnLuWopx/x
+KUeE7JhU3SoW1xZEudIRgC2axXOX9+Z4IoDqGJZT3djaeCnNV+ncIoJbylLhaVKHGo7zdODWTJ1F
+0liI+GLgVh6ch3fq2LNnz5IlS3TpqyxZsiQsLEw5rLrhRMCqVauUw54/f17FA5lMDgoKCgoKUllo
+BwAoKipSlxxba0fA6tWry8rKVEIpp6t84N6FCxeGl/so8f3330+qsmciKgXx5MkT5bvK26jgFYRc
+Lndzc/Pw8JDL5S4uLh999NGhQ4fIZPLRo0ezsrLGdxzi9KC2pk7dHf/VMU3gN6Z4DdCMYmz/uffS
+Tjqg78RateooJkJmh+XUijs6WmtzjiRhp+72FngiiOspcS9BoyOXy+XyxigmmUwme07C4az6o/e5
+dseeJKjbdceeJOCHaKm65rWXYxVSGnWtVy6XPxbejYorsQ0utP3sx6iLozugqJp2/Q/DQwqtgsf8
+NvxneE0yeq9l/1eltiGcDV9U/aO2W+1MMHGaI1WxFL2r6vLYeDi7r2GmYGsSe0adVdx4hKW6IUhH
+ddpORyYZAQiZzvKMKlF/OFRNO3lvdRgd0Hde6lXfRmUEhExn+0YVtGKtfpLj2I0IOmpP7XTF1sRS
+ma6a0pwaOk45jm3oENfh40Y6atN82VQEIGSmZ1RJzk66mmmHH1auUc8GMe2KV65pcNj083tetzd6
+3/H88O4H2+/6fHTX9+O7Ph/d2bzt9vu+TS5/bnB6v3jlmllg2snlva0FYa5MKoIgCJXpGjZcfeRy
+uby3Ns2fTVdxb01zJFNdsVYHrxp3XBrewYFMZ/ufGt18YzRsb4Gn2sw6bDU2XhGrp0tFsCrvn6bY
+OQg/LzMUfD3I5XJxSZQjnYwgZKbrmH0wNLrrojc8/eC+jnD861KO+vmRy3sbT/myqAiCUNn+aZdK
+wpgjJhyee44nwo4qSPPHtgph+6bVKmoB/q0x2sDRpC41XI7zdODVTB1FwitEzWIQVh6N4k01/v7+
+qgKOxd/fXz2UXpsfqph2/f39K1eu1CWgmZlZf3+/eupaTTsAwMGDB1VCqaSLWXca7Tq8dF8wJl4Q
+crk8MTGRRCK1tLTMnTv37Nmze/fuffnll/39/RcuXBgbGzvFORo/Oph2BI3adIHfmOI1TDMI1f6z
++JQrGWEPv/jF1Um+bDr2OnX0TxrOgjjHlz686R5eo4PRmsQCZNUDtqeIOXLdprkrI+itOv4kEds3
+xWbB2j2vRbAX6LHJ1ZQgyXSy40Y35boRTS4RJds5NcU3pTvNnMV204Ak3cmpKb4p2U67V4ge9PT0
+lNn9cc68eQvnzTfCWSEwKJf3DMjkAwPO/B8XLlw4xRJCIBDITGDlypUEW6EAAJYtW6Z+ZkB3d/f7
+779fXl4OdF6wp0xJScn7779PfKKakZFRcXGxi4uL+q0DBw4cPHiQIKyPj09aWhq2WyZBuqampmKx
+WOUIO4J0XzwmWBAAgLa2tqVLl27evPnixYvt7e2HDh3Kysq6f//+li1burq6CM6ugEAMhbRwq3kw
+KVOUSWiGGAj99jTBYC9Y9583z026KJMKbWu004HkXIlbAP6iDn5yOhpc+L9t1wEg5RZKnKKhXTfp
+GBkZrfuhqK9P+5l7CIIYGRlNgUgQCAQy0xgYGOjo6FixYsX69evVD7jz9/e/evWqVCodGBiYN29M
+j+Xll18uKirauHEjttRNXzZu3Hjs2LGwsDA8o2Lu3LnHjh3DMydeeukl4vjfeOMNdbtOPV3Fnpk6
+pvviMcGCAADQ6XQbG5tz585t376dRCItXbr04cOHdXV1TU1NBFvsQCAGAZVKJE3c6PBCRnTddNh1
+AOi51m5W0XpqZxTR2WyNp3YemTFnt00bHTme9Jk0J/XFYXBwEEXRbh1AUXRwcHC65YVAIJDpZGho
+CFt3Z2dnZ2dnBwBYsmTJ0NAQcaje3t7m5mZiPwSUlJRonBC4cuVKLpdLEPDu3bu2trbLcFizZk19
+fb0h0n1RmaBCEhISAAAlJSVyubyjo8Pc3BwA8Nprr9XU1BhedghklI4cTzJA6I5hBdM3CXU8EzIh
+EAgEAoFAJpfQ0NAbN24UFxcDADZt2vTOO+8cP37c0InKZLLS0tLS0lLs2DQGg+Hi4uLq6oqdQv7i
+pTtjmUSFDA0Ntbe3L168WOvgKgTy4gFNOwgEAoFAIBAIBAKZ9UzDkeUQCAQCgUAgEAgEAplcoGkH
+gUAgEAgEAoFAILMeaNpBIBAIBAKBQCAQyKxH18MPWlpaDCoHBAKBQCAQCAQCgfwvsGzZMkNEq+s2
+Kv39/YZIHgKBQCAQCAQCgUD+pzDQDq5wQiYEAoFAIBAIBAKBzHqgaQeBQCAQCAQCgUAgsx5o2kEg
+EAgEAoFAIBDIrAeadhAIBAKBQCAQCAQy64GmHQQCgUAgEAgEAoHMeqBpB4FAIBAIBAKBQCCzHl3P
+tXshkHBi8smRoY4UnPuivBgeff8ONmlKpYJAIBAIBALCw8Nv3rzJ4XAAAB4eHm+//XZSUpKhE+3v
+7+fxeGVlZffu3QMA0On09957z9XVdf78+QShZDJZdnb2r7/+qvHuq6++6u/vTyIR9SbGl+4LzOQq
+5NatWzKZzNraerLFhEBmOoYeteu7ecM+uqHawKnoBFoRF1MD6JhdN/jwzsPT/6nauO+HeJHCB43a
+mRKRIdIc3NCIUmwQJYy3cNDhO5LSfc5mJsbGJhbuMRUStYCCfWbG9icU7qhgn4WxWWCpFADRCWcT
+E/cs0Yi30chNzOy3xJSKVGKSZrlbhAgMk73xgYoq8hIC7U2NTVXlkgpOBNqbmRgbm5jZB2bVSwEA
+AM3bYmwSWKpb1FLONlMEsU8RTbLILzCSipRt9mYmxoixqc22EwKp0h3CKkqoapwillSkBA6nZeEe
+U6pe7QnCAs3VY0Ly4LsL80KczUyMjY1NbbalCMamNLng619zfsdbXli+JlAuI0Kp6RkvXX3dxyaj
+uawNktYouHXPAOnO4Do5WfT19QEA5HJ5QUGBQCDw9PT09PQUCATnzp3Djt7FPIyDu3fvoihK4IHL
+5VpZWX3wwQfp6enFxcXFxcVpaWkffPABi8XicrkEATMzM3ft2hWDw549e44fP26IdF9UJqKQ58+f
+/6BGenq6s7NzRUXF1Mg/YfAaJlV3fV7CUwLuC0fPl+p0oNwxRoxNLZwDT2h5Y+rVz5w2Zs+EzMf/
+N7bym1/G703CSeSxQv0Y2FU3/+p9fvtA/4CyF5Jj6Hb0RMr0GDedok7EIbFBOExDqgv2uU+Y4u1d
+RI0tu327LBTJ9vY7ISKKRZIX6J1BCs1OdaUAQGG6eHi4MBWDlIhtYkNnZ2dne0NZom17hrd3glA5
+rJTHEbK9WYbI3HgR8jIyeEIpqtqqC1Pc3WOFtnFF1xrK4ljCbF6bnhGjFbERPJQ8WXJqYmho6Ntv
+qxEkXuPfUgRR/g0NDRlSlsmgPsbdO4sUlF1zW3g5kVUf4R3CGX4DEldRLarWWMTS0gi/lHaPlMu3
+265leEgzvN1ThLqGBVqqx3jkwXcXxGwJqbfNbujqulcW1JngHVFK1IucCPj615zf8ZYXUX51LBcA
+gCY946Wrr/tYOTWXtUHS0qofQ+VxptbJSWJgYIBOp69atSowMFAikQAA+Hw+n88HAEgkksDAwFWr
+VjEYjIGBAW0xacDGxmbTpk3Pnz/XePef//zn5s2bm5ub1W81Nzdv3rw5LS0NL2aJREImk/Py8qyt
+rZ2dndPT062trS9cuHD16tWIiAgAgFgsxgs7kXRfSCaokJqamhA1CgoKnj9//s033xhM6skEr2FS
+ddfnJTw14L1w9H6pThOIbWJDe3t7e3vbtexIuiDC3S9rZpqheiHXjT4lijs4fxF5rRTSVgppfxF5
+Xemq6MOlq7rKdu+1cnwPuvK8NTik7OvmcXtry3Cgeud3jnF73PxxSPFBobJTQ5wlPYg3MVHHB8+P
+SvZTT7kyiI64ZLRjF20pDohZRI2KjxA6YpvS1tfX19mQaEsmu2QINcU/6k3pOlHJa2e+N92P06ke
+crppy3BAqEGVow7t+e5kxEEpL8N0ZrsjZD+O9hg7KyPMyA4RIbZjNTC5dHV1AXCgsfHXL7+8rv5X
++eFqbm7u6uoylByTRrtQ2D7yf2e+O5nsjdUWwiqqm6rVirivs11REzs5fhqLGy8sXvWYkDw47g1x
+lohDxkhSvCAqPUQ91CSBp3+8/I6rvMYy/nLRoGe8dPV1H5NHnLwbIi0NqOnHgOnOyDo5aSxfvpy4
+o7Js2bLxxYwFX7t27ZMnT1RunT9/fu5cLV+3586dy+FoblNiY2MBAPfv39+7d29qaur58+cDAwOL
+i4t37doll8uXLl1qYmLy73//Wz3gBNN98ZgshTx48ED58ujRo3/84x9//fVXQ8o+SeA1TJrcdW8c
+pwS8F844X6pTjGrHuDPfG0Hcswk6wjr3M3VDRxNMX/QetYt5vC/s0Y7rfXzs8nof/yOx7zdSwtnw
+Q+KbwrDDZfb7Sr2+bvi+fXDYuec5j1P38cEy+7DSDYevfXNHNuze9fjrtMoN+0rsoyvDvnsokgFw
+p2FDRD1/oDsroYQdVvZ/GwEA4JlIFPuPH+zDSjccFMTffN4HNHsbRlrJqWe62GpdRcd0cAAVvHp9
+tTJx0E6plEpVWwUoqhRImC4Ow+40ti29rUag+YuCtCJiS0y7R3b2dsZInNoGjknIqELQirwaWw9H
+zEFSus/dwsQYMTaxcA/JE86sj76oIK8SdQnyoWm+3Sc4EWhjamxsbGoTmCfS5EOYEpFBCkrczlDK
+F5q3xdg+oYIT425hYmxsbOacIJCISmO2WJgaG5uYuacI9NbB4OBgSsq7n31WtX79kpCQSpW/t997
+D/vd9fBoWLlycHBQe4zTDIXBUNRPEpkCULQTAC1VVJOqdYJEGa2afejYa2IIq8e45cGBSqUBIa8G
+Gw6TtktQMoM6OTGrg6N/3PzqW16iE86mpiPzt/HAKRfVsBr0jJeuvu7KaeHl3RBp6aIfg6SrL1NZ
+JyeNdevWEXtYv369uqOVlRWiDcxndXX11q1blcPKZLJPP/1U63SJoaGh8PDw/v5+PA/V1dUWFhY2
+NjaXL18+efLkpk2bfvzxRwDAvHnzHj16pD5w19/fT5yuiYnJvHnzhoaGPv30U5lMhufthWGyCuLf
+//73mjVrlF2Cg4O///77l19+eXIENSR4DZNG9/E3jgYB54WjR991ZqGkaqkgZZuNqTFibGLmrLkj
+LBXmxQwvezCxcI+pkAIA0NJAU2NnpZE/YYKN8VSv/dHPtPuhp/R891l19zRp8rURY0+d3vYsAfjT
+X9d+95n15vnth9Ib/ysDAIC+R+2Vzyj+/msL/742itGbe7rxhgwAIOPl1ZUBxreHXIojVzsuBmA+
+ACstiz83Wzlvge9el8pjzn//PQC/NO86+csr79kUHvlj9oevtZ27/o1oUIM3BW0CIcWSiWMMKMNk
+M9sb6qd+dQIq7QPtnEALE2NjUzN7xXzltrZ2QKcq5KYzaaBN2K4evE+Y5eedcZvi4Ie7SYwyEkFK
+bLbU0c9DETMqyK+x9HAgAQCANC/ELx+EXr7Xea8m1Z0OwMzaV6atQYgy2SzN+ezMC4mosU0sulaW
+6tCZHRKrPhdJdCIkQeqXup8FVG/VHArJY8ZdftTVkGpZH+tu651Bi7x8r+t2qm19TMh4Jj2EhVVG
+Rq75/HN+TMw7Kn/NLl7Efis4nN///LP+cU8v9TwBymSzSICwiuKrWmek9XkhMTzq9ggXXeo1AITV
+YxLkUYHiE3eYydtm674vi5MVEtvgsn9kyrdhUdY/0eOgyT/BKwUlXpWkhHq5KIXVqGe8dPV1V04L
+L++GSEsX/RgqXb2Yrjo5Tvbu3Uun07Ozs4m9ZWdn0+n0vXv3Tla6paWlKtP/KBRKYGBgYGAgmTxm
+WlxLS8vFixfx4qmqqrK2tra0tKysrMRcvvjii6Kiojt37uzevRubmakMj8fTOO0QY82aNfX19Zg2
+7t69W1ZWpm++Zh0qBSEWi5XHNB4+fKi4RVAQVVVVu3fvfvz4MU2J3/3ud2+88camTZsMnocJgtcw
+aWmw9G8cDQLOC0fXvutMQirkRBzikRyxnnB9grN3FiWy6Hb7vZoMF2GEe4zaF35UyOG0syOzL98W
+Xk5li1L8/j975x7W1JE+/regPadeSFa7JNotiVgJaytQFIL65bJrueiWi1aQp+W2W7BooWKFyq64
+pT9pZQtWWmhlxV0t2JWCqxhWgaAVsEqCt4DdSrwRtJVEix7kdkKA/P4Il5DkhAQIF3c+T548yZyZ
+eefMOzNn3jO3+EoScO/YQJYwp1DS50nMKxBzQwPZ43orxpl2uS3/oLqU9egzqkvPMbZHcrzYs+Yz
+fh3+5qKXHzUdu9UDABh7YcpbbHf2rLlzLbx8rFidhEAGAIpHT3qxOTPnzjCfPXfuutfmswEAAJtm
+DmCGTTPHAAAUlaV3upztEh0t5s6YPn/RwncdoUrYquVNDalMxjDo3SWdwcKlsvEvgHS3qI93fnz4
+3IMnD8rT7cU7+qb7kiQJoLbJFo4DKdeq5vLGzNAYob2vGxTE6zFB5DXxdpaWlpYWGMstvtY+IWnQ
+sgNhoZDj19dCEDIZibM4DDpOZ7tvTAjijOF9jgGEtAXouKTvdYrVkvVpagt0Ma/04gMb3e053LCE
+QBtSXKexCk9aEJ/S6Je+U9c2qDS/9ANh9nQAdlCQG0baJxyO5dIBmH6hbiAWjmDs8rPPVuzYIfzo
+I+eEhPMa39eXLVN9xG5u1xYvNjrqCUWam5Qj80oI5QDoKaL6stoQJPt9LTGGcyifnXI03aA3FgCg
+p3iMNj06wRl2zvYsTFIYExjFY0QljMtDdkj+660OOvxT6ou9sfzBg/KN7OGk69KLeliKfKaSa6y7
+uiyqezeFLEPyxyRyjWZCyuSIuXr1qmp93bBIpVKRSKTuIhKJhp3vpPK5YsWK/Px89bAaVhOdThcI
+BF9++eWXX34pEAg0rDs9Jtb58+ft7e17enquXr0KALt37168eHFERAQAPHjwQHv/TD1Rvfrqq6dO
+nZozZ84zzzwzrOenBo17nDNnjvrfuXPn6vE8AJfLDQkJmT179iktsrOzxzzNYwrVg0nfA2uED0fT
+oLvBMazvOhmQ18TaWFhYWGAYwy6ykrWzMC+MCUDwdqWRoQeyguyZdDrbPSElEIrzNCf04dyEwwdi
+/bgcJts+KGkjhxDyxQBgH7uRU5tbqOqLqyw7tc72uGCcaXdZTrnFiJ5LYAYDO9fOnc1+rrfpUd9y
+6FbZw/xjok2fVgVk3WzsVrR2AsCMP6x7ad61SwGfXv7s/MP7uqcjtF/+ubuxstp1W5nqs+m8vLVT
+38wFUk6S6rMP9YBjOElMQAFk+8XG+nHoADjHLz0lCK/M40kBcBwHGPLWGHTdh6yRFlZYeDQniStO
+21FA9ZzEnHeW19XV1d0Q11UVJtByPJ1jyvrGJ4W8SqZvfxeAHZq+k8XztXFav21/mWTSVUYcQC7M
+zCJDC+setNzIC5OlBcYU9I+z4nRafztHY9JBQ5VEWVJSjXN6urfuthDvH5/EaTjAQD7jOE4H+QgK
+xfvvn0tOdtqy5dwnnyzX+P7tpUuqD6eqijO0vzLZkewPjRfap6T3TYOjKKLDZLUBsMPy6upq+DmB
+ZIqrZ5rBM2Ipisfo06OL2jTf0LrA4mvX7t6oyvQjdnkGjmwSnTFo5r++6qDLv2FNCjX69UKZz1Ry
+jXUfEifFvZtCliFMlNwhTESZHAUnTpxwcXExxOfSpUv//e9/a7uTJHnr1i2qUDNmzFi5cmVxcfHs
+2bPV3Rsbh7z1CwoKWrBggeq3tbV1YGCgHs/qiESijo6OCxcuKBSKkJCQxMTEnp6eb7/9dsWKFUeP
+HtXe/EO1rT8AuLq6JicnD6wxc3BwUNl1xcXFYWFhw8p9ajDqHqk8m5ub79+/Py8vz1ELKyurMUqp
+SaBqMPU/sEb4cDQJFA2OSRo3k4DZxZfX1dUVx9thDL/0AwkqU1lcWddyI9PVoh/PHClB6JjPR4jL
+MreFeDotsfHaJZa3tBAAAOzAWPfG3NxaABDzChrdQ73G2bIb9x0yFb1dAM9OMwOA5iui0L3iG4wX
+tsesLNr621f6j9ibzV6470OPz1+jPzov2vDRZX6zzojMXl7ncW6P98DnTMSv9YjFAccNfGNAyskJ
+nroMgLM5DJC2tACwOAxolA3YajKxFFgc7dFHm5gD6e50YIelRDH4SSmVVHdKYzCZTCaTzeH6JRzO
+9CNys/gEAEAtr4oZOFj46NyE8hs3ihO4spxQO5v1ulesTRgMDguzj81M8GbTcZzpHpvgRVZRLY8c
+unccwcsqaJTxQ6wsLCwsLJx21clrdthZnwgC/QAAIABJREFUuqaZaoOpv/3NZcuWytRU5+joMxrf
+Imtr1aduyZIfHBxMlICxh6jc5hsvdsvKGxhR0F1ExyKrcTqTY+8etqc4y0u8K4Wno1XVhe7iYRrV
+V+ZkyvziN7IBgMndeLj4Y05lSo5JV+pq57/+6mCovoxJgz69UOczlVxj3dWhundTyDKEiZKrzviX
+yVGjVCpH7K2trW3NmjXOzs5UoS5fvnzq1KlZs2ZpuA+MjKnQWOul8VfDszoKhWLt2rXbt28HAIFA
+EBQUlJqaun///sbGxsWLF+uxWg8ePPjnP/953759ZmZmDg4OJSUlKrvuzTff1LOi7OlDT94a5dnM
+zMzHx0f1u7e3d+vWrb/+9a8XLFjw9ddfjzaJJoSqwbw4zANrZA9HU0DV4JiicTMROIvFZrPdE1KC
+oCApZ7BPgDmn33iixoPD3hohpQUhzq5JtZzQrPKLN6rSuQPTBZl+UV4thblCUsLnNY7/mJ2xpt1S
+jEt16XczPA2IQP7zwx86n7N5YTpAR3mF7NkVDn9d+Wv2DHOAoWtop2OvOC5M+YAb/NwvuVf7di1+
+FnrlfaN9M195AW5ekek0+tS8qcFg0GUSQ6ZZkjIpyWSMfwEkpGqVkxBWiYHDYgCwnd2YYn5VX/2Q
+CKsaWc7uWqUEo3NYOAAAzt35sR+Zq29W5iCDZo+Yz8f9vNhDruJMblDC4YvlsTR+WuEEb647FKa7
+F0dcWdefXyRJgv6DYQegB+XdEIvr+iiOssHsYstrCqNMNeP0d7+bJxAEeHgw6urWa3y/VFen+iwU
+CGxqakyUgDGGFGcGBubgsYWH1Tau0F1ER5nVhPoYKU6j45rjr9ToLh6mUT1JkkAOroNgMhhAtpju
+Kasz//VUByP0ZWAKhtULdT5TyTXWXR2qezeFLEOYKLnqjHOZHDV+fn5CoUEHDl25cmXdunXqLu3t
+7evWrTt//nx7eztVKGtra52PBxaLpf736NGjd+7cUf2+ffu2xvCg/pEfPp+vmo1569atwn5+/vln
+Dw+PVatWUcl9++23Ozo6IiIijhw5QmXXaSTyqcSoezRwCK6qquqrr7768ssvX3nllYsXL440aeMA
+VYPpRP3AGsXD0RRQNTimaNxMC907KclenBavmvfG4dpBbSFP71xxSWEmD4s6fGCjN4eOD9mABehe
+UX5QnMcr5ondQidgTrxxpl0Y7W3qS5FUlzof5h67/4OsQ3Lz7q5v7rXaWgf/BgDMZ02H5sZffmiW
+N/8k+/KbOz+o7DEF8fUBUf71tlZFT+tPxI1Ws3lzMAAAi+fmT5dfudJ8/0lHc8d099fY8yTihGP3
+bzxRtDY/4Z+WVHeAlje1NHC4HOKGeOABp1C0PpE3d3bLAbqeyJufKFr7p3OKhWK6DWe8FSHNDXV2
+XZ/Gq5VIJLW8HYFJlayoBD86AHA3xtpXJsXsr5VKa/fHp4jdE2L19kbpfikJg6VTE3kLQRAEIZXU
+8jJD4nm4X5QXHUDC54GaZUcK09aHZJaJCZIkaoV1MpzFmqB3LSRBSKXSlhYSgJRJpdK+No0TmuBW
+Ex+TWyslCDEvaRefFRhq2HF8OJ3JHoDJxAFnMthMk2n7R2fnK7a2l198Uc/niq3tj9SvnCcTkoIQ
+z3ixW/qBKIZUIpFIJBIpQQJVEaXOasl+T0tLz74zbnSqmCiItLNbn8YTiiUScWVuZHwuyVUNKg8f
+lqp4jCY9lO7uoUE4Lz6eJyYASElZfBqf6RdI+frLRPlPVR2M09dY6YU6n6nkGuuunk6qezeFLEPK
+iSnkTuYyOQYsXbp03rx5hvicN2/e0qVL1V0CAwMHDqQedqtMh6GTI1577TX1vwRBuLi4bN68efPm
+zcuXL29paVG/6ulpyJtrTSoqKs6cOaPhOCC3srLy9ddfb2trCwgImDNnTmlp6VtvvaUxXufl5TUC
+uVMLDUU0Nzfr+UulCD8/vzfeeAMAXn/99Y0bN1ZXV9NotKampuDg4IyMjLFO8lhC1WBSuVM3whME
+ZYNjbN91EsAOSwmj85NShCQA3S8hliVMCtxWUCslCEltQVpm3/olHICUyaSkauWOrIYvlEiltbwd
+UelCtWliuHtsIFYQs6vWLWxCVjsbeEjCwKLkz2SpqhPt1D+fyVIp1jA/qb7gvLuO/93FwASeQ8yp
+t/5+89rj/kt3byfsOuUcw/v97otHfvhp919PffSDXC5vu1Z1Ofqvp5yji5wTyqMLf7rfH5W4Sui/
+lecQU5ZQ/UQul98XixN2l/1fTJHz1rI//VN84aFub/00ZroxAvtPbfulqsohukjtw4uu7lCFTndm
+TMjhbrKqzCg3GxoGGI1l5xvPUzuopJEX78aiYRjNxiuFr32Aiea5HPKWqhgWsKL4LUPO36iKUXs3
+htFYzoHxheIWuVwuF6e7DT1wRFaTE+Vlw8AAMIaN15C0jCuyHLehhRXz6j9upKUmM9SZhWEYw8Yr
+pu8+NM8bEac7Yyw9J6nUpdgNnhWjEZYXiGG+A8cg8kMZgwe0GMrjx4+///77hoaGn376qampSdqP
+TCZT/Whqavr5558lEsn333//+PHj4WOcUFoKfTX3JoKB47SGKaJDs1qc6UZjeGWK5XJqFauqAwNT
+FdXQzCqZ4WHlFMVjVOmhktUiLozxsmFg1LLGCL35r+N+jdfXWOlFjSH5TCXXWHcNWVS6HnNZBpa9
+MZc7ecvkGBIaGqpZWocSGhqqHUrDKtDPb3/7W/WwbW1tL730kiEBFy1a1NbWpi1dda6dfv76179q
+hNKQu3Llyubm5hMnTgyc0zCs3KeM0StCLpf/7W9/w3G8vr7ezMwsPz//vffemzlzZmho6IwZM/78
+5z+P7w2NAs0GU6c7VSM8YVA3OMN1DCYBmv3nxhwvGubc93hprEoPdGapuuVuoel9t9CYF8jCMN88
+mVzeUpcTaMfAMIzhHJrJ58XYMNSPxRan2wFN8zhtTUx0rt0zBk5zV3+ZdFEuyHr0mWrflKUYN2bO
++06YQcugJxRprqcbP77usLe+qXuSTFcvcUpdlvukXO1pGqT7PT3FKdf2TOIXu1OSjo6OQmvrZ6ZP
+f87MzJxihUCPUtnZ26tUKALv3JkxY8Y4pxCBQCAmA4sXL9ZzJAAAWFtbX79+XcOxvb197dq1qoE7
+uVyuK5w+SktL165dq/9ENXNz8xMnTugcLNq1a1dKSoqesOvXr8/MzNTY8lFbrpWVVVNTk8YRdnrk
+Pn2MUhEA0NjYyOFw/P39v/vuu3v37n3yySfffPPN7du3g4ODW1tbT548aZqEIxDUELwQuxg858YB
+vUbHs88+awrh04b3ooUT5vL1vIIxT4qJYQbFu6VkFUi9wyjHrklh5n4y6uj/kl0HQPCLpe7xyK4b
+c8zNzddcu2ZIhwPDMHNz83FIEgKBQEw2uru7CYJYuHDhihUrtA+4Cw0NvXDhQktLS3d397RpQ3os
+M2fOPHbsmJ+fn2hEmwz7+Pjs2bNn27ZtVEaFmZnZnj17qMyJYftk8+fP17brtOUO7JlpoNynj1Eq
+AgBYLNayZcuKiopCQkJwHGez2ffv36+trRWLxfb2hq3WQCDGCpKQSsX8pHgeK+GiXrvOdIxk1G7K
+IsmNyWGlfEx5Cog4N4bHSkmY6FNCxhWiYL0zP6pO/3sFxAjo7e1VKBQ9PT3D+jQ3N58+ffrALtgI
+BALxP4hSqVywYEFTUxOXywUAoVA4b968hoYG/ZsokiR5//59a2vrkQktKyt7//33tY9PeOmll/bu
+3atntdvt27fDw8M1FoMNYGFhceDAgSVLloy53KeVUWbI3r17ExMTeTyet7c3QRBubm5isfj5558/
+ceLEsmXLTJZqBEITomC9TSif7haVnrdn2L0xTTRq9z9l2iEQCAQCgZikbN269cqVKydOnAAAf39/
+R0fHvXv3mlqoQqEoLy8vLy9XHZvGYrE8PT09PT2nT58+bNipKHfSMoYZ0tvbK5PJ5s6da6KuMwIx
+JiDTDoFAIBAIBAKBQCCmPCYy7dAcMAQCgUAgEAgEAoGY8iDTDoFAIBAIBAKBQCCmPMi0QyAQCAQC
+gUAgEIgpj6GHH/z0008mTQcCgUAgEAgEAoFA/C8w4q199WPoNioIBAKBQCAQCAQCgZi0oAmZCAQC
+gUAgEAgEAjHlQaYdAoFAIBAIBAKBQEx5kGmHQCAQCAQCgUAgEFMeZNohEAgEAoFAIBAIxJQHmXYI
+BAKBQCAQCAQCMeVBph0CgUAgEAgEAoFATHkMPdcOoYa0KDGfnhjnQae4LslPLGUnR7vg45oqBAKB
+QCCmMDExMZcvXy4pKQGA1atXL1u2LDMz09RCu7q6SktLy8rK7t69CwAsFsvLy2v16tXTp0/XE0qh
+UHz99dfNzc06r1pYWPzxj3/EcX29gJHJfYoZ2wypq6tTKBRLly4d62QiEJMe5f8i5EWB89bLF0cW
+uPPsOxz3vQ2qP913Lore/st/nGN4q1IuHr7dNeCD2+/DUBr22qvrBfM/3tl3palkizuLhmE0jvf2
+s01aAau3sDDuvgH3zuotHIwVXvJYqWzY506jeR9s6Pc2GDmNxfXfXqKZwscHvTnvVBuXbJPSdHbv
+Bi6LhgHGsN+wr/qxmnt4nzvHe3uJdp6ofO3jYqwtmvdDEbbziD9GCy8xzX08LXQ2nD2yO5zLwBhq
+xaRkA02zUaGFn6X2PxQqFVNXh+HSo1Qqm0q2e3NoGEZjub9z5PpAQIOKDUXYyQBVXlE3ERTuBuhF
+qVQ+rt4XzmXRMIzG4oYfvPpYqVfXI0585/Uj77izaBiGMew37FWr5GOhiEmsTYQ6JEkqlcre3l4m
+kwkAy5cvX758OQAwmcze3t4BDyPg5s2bnZ36NH/y5MmFCxdqd40WLlx46tQpPQGzs7P1d64++eQT
+U8h9WhlNhrS2tpZrsXHjxlmzZp09e3Zckj8KqNrA4fp+k4zHxzcwALS7vpruhvXfxgn1jjFgDI57
++JBHqw6mRl9xypp20p0fnP787ggDj8a0azrizdpwvE/3t+sCtlZ+frtTqey6U3lh1QeXv1cZd9d3
+23O0jAr9XN3Cwtz3Xm/op6nvaXR9LxdjbTh4tanp6j5/Bs19X4NGwCGmXdORDQzMfnt1p1KpVD4+
+uzs8vL+hqN7Cwrh7r3d2dnY+brh6fAuXhtnvvq4e0eMj/qzws5On+3N1uz3NPvxgdUNTw9Uj4RyM
+0Zftj0s2MFjeu0uuNzVdL9nOpWH2e6/rCq/LtKMMO/bVtaenB3w+Gvjc4cEdHqi7qH96enrGULSp
+uLpvg7s7l0MDdZOg83GDGme32NPsd1/V439IhBQqpq4Ow6dHeX0vl8YJP3K1qel6yRYujRFeYnix
+oQg7GaDOK6omgrLpGFYvqsA0GnfLkerrDVePvMN1331VqVfXI0189RYOjbu9ukmpfHx9nzeDEV7S
+2S9+1IqYxNpEqKFQKH71q18tXLgwLCxMu2cfFha2cOHCOXPmKBSKEUQ+Y8aM//u//2ttbdV5NTMz
+08yMclmKmZlZVlYWVcwffvghjUYrKChwdHT09PTMzs52dHQ8efLk+fPn4+PjASAmJoYq7GjkPpWM
+MkNOnz5trcXcuXMBYO3ateN2FyODog0cvu83qeg8+w6LRqNpmXaa7ob238aJvo7x48ePHz9uun72
+YDgHo3kf1GduPr2mHb/11Ft31y0SMxeJmW/dXSfoOD/myRqWrnubYybEtGs66M7Y0D+CcKf0O+c9
+jQ/7Lj1M+aDs09uq39d327PeOWtMxGfDGbpegFe/w8K8D/b1SJr2uWOc7Rp9qUHTrvP6Xu7gMJ1m
+REMH9/pKtJrXzuMbWP1tyuTgcUPDQFes87g/jbahL3mdjweS2VkSTsPc9+mqibpH7SjCjn11JUkS
+vD/85N+XVB/l/U+U9z8Z+Kv+Ae8PR/xOevxpOuhOOdrz+Ig/g7P9aqeh/qlVTFEdDEhP9RYW5n2k
+P9ar2zkDxXz4YkMddhJAlVdUTcQwTYd+vRz3p6pWA1506Nr4xF/fbY+5DzxIz77DUNXYMVHEpNYm
+YggvvfQSVbdehbW19chiVgVfsWLFkydPNC6dPHlSjzkxYFSUlOh+Lnz44YcAcO/eva1bt2ZlZZ04
+cSIyMvLUqVObNm1SKpULFiywtLTMzc3VDjhKuU8fY5UhDx8+VP+bkZGxatWqtrY2U6Z99FC0gQb0
+/SYRndXbOTT37Vu4Go2sLnfD+m/jhGbHuPP4BgzzP6LnuTY1TDujt1FJlMa9e/9PNZ0XVH9rOi+E
+3nvji+Z0Cu/yS0LupzcuiX58N/kkN7Z4zWc36lo6zh8Xrt1ezH2f/+6ZR3KVv47W0uOXwnac5G4q
+dk2u/uKGAvS437ji+t7lC91tBz858eqmk3/9L9w/c5a740dxv9BL/yrlZt5tVf1pkaVlnnGNPcF9
+/8y7//qpQQGaSBsi3y/deonUl4wBiIoika1P/yq65y1wkD241qFKKvmLYvr8vglLth4eUFEqMjxf
+SYIgmEyt1XuSCoHU1qd/VR/TxYUtEQikOmMgKuICEqUB+fkR7P448wNwekQptVD1hQBkRb7AJcBD
+5SAtjfOxpePP4HRbn+j8etLw+xhL6Gz2QIbgdDqQJNH/Ry3dpPp/aUVqgAMTx3GmS8QhndlPHRYA
+SEF2hCq4Q0S+ZHSp7+npMQOoFkvP1N07U3dP2XpG2XpG9Vv9Uy2WmgH09PSMTtqkQJScXOGSmuhg
++CJTKhVTVAcDIKUSKdN2IFaHAB+mqFRAqAToUf0wYScBFHlF1UQY0XSokGR7MJk+hyQAQAryK0if
+6GAmtW8tXROi7AgPNh1/Bmc6BKRWSIdESKloJpMJ9f15TEilJJ3NHEYR+gUN/p7c2kQMYeXKlfo9
+uLq6aju+/PLLzwyHyueFCxfeeOMN9bAKheK9997r7e3VL7e3t/fdd9/t6uqi8lBdXb1kyRInJ6dz
+584dOHBgzZo13333HQBMmzbtwYMH9+/f1/Df1dWlX66lpeW0adN6e3vfe+89hUK7w/K0MVaKOHDg
+wMsvv6zu8u6775aVlc2cOXNsEmoqdLeBxjfgE0l9Rlw2Hp0RwSYNcB/2QTyxqCWVEGQEOzDxZ3A6
+20N3R5ioz08MdmH3dZYTKwgAIEsjmLjHoUFd1ac64C4ZEpOnXB3jTLvytpJjT77Vds9q3iPsN/a0
+aRB/fGnWex/8QZhsz/np+rufCI9aLMr9m+/JN+eIi2q/kQIAyKVNFU9+9ce33U6muO1Y0PHNP65d
+UlC72zie/vC3NtOeezPhdcG+P/y/l6kEA4Ci9MilMrDO/dvrp3fYe8wF0FiNq3iU9o8fW12dU5fh
+epIxiERQT3ew7e/xzF62+D2GLPHj6rTqJt6/fhQvtvWb23fJ1sVWKhIZ3o8gCRKkRRG2dBxnsl2C
+M/oqukQiBTZzoIfFtmWCpF5H9SbrDwUH/F1M94ig3NxFHakgI/EQ4RERMBAzKcgXOPRZdkR+dHA+
+xAmknVJRdgAbYBJUPFGpgLR10TAaCFF+dGIpMyLRhw4AQIoSfXySJS6ppSJRabKDqEIkp45QIywA
+QEt+dJzAJaNUVJHtQXwdnVg6epO2l1R0k4oeUtEDvST0kqrfQz/dAMM81aYGZGlqPhkc5zMSgwxg
+qIopqoMB4HQ6Tkil/aojAXCQSoYE16F6g8NOEtTyiqqJMLTpUIckSRIAQCKqJ21dHKg1qaVrUaqP
+S5zINrlU1CDKj7MFEh8SIVXigR6cmmpbGuzgE3eo6FB0osgnOYKtVxEGCOr7PXW0+T9NbGzsvHnz
+vv76a/3evv7663nz5r333ntjJbekpOT27dvqLnQ6fePGjRs3bqTRhiwpvXPnDp/Pp4rnwoULjo6O
+dnZ2VVVVKpcPP/ywuLj45s2bMTEx27dv1/BfWlqqIVcdR0fH69evHzlyBABu3rxZVlZm7H1NOTQU
+0dzcrD748Msvvwxc0qOI8+fPb9y48eHDh3PUsLS0/PWvf+3p6WnyexgVutvAETXgE4QkOzqViMhO
+dgDSIPc+KB/EEwZRXxSXXIp7qHrColSPgEP0xFLJY6nokE99nE+iQPM+yPqiIqlLYr5A0iDIdpFk
+BMdVkID7xAWzBdkDgwP1Rfn1LhHB7HG9FeMmZL55d61qHqb25827Oic0kxcFzlsv9q1AU3aX7OM5
+f3Gvb+5Zl3R7DC/uardmmF9uBemcbKnuPtTPz6e/c/7Lf+v7PV78psT5i8YnSqVS2X74b7zV3zzU
+mInRNyGzq/O7nJJVXzT+rPNmdSajZANt6CzGi8fOBXx4elVMkUNM5T/uqt3L2XcYGmvZ9NNwfO/e
+49cfK5Wd14+/Y98/3bcknIb5Hx/w9PiIt9YkquotLGCwGBjN3d+dMWT93JCB4+otLACMRqPRaBgA
+AM19t/pq0bPvcAbG/hv2cjHWO2cn0bqUpoPeNJr/EbVh+4Z93jQAAIb3vv7dETqPb6CpzwbQPSFT
+d1hl5xF/DPMfMnvLKPVp097e/kOBWe91197/LtX3ue76Q4FZe3v7aGSNJ1QT+TqPb6AxdExC1jvx
+T93bEBXrrg6GpOdxyQYGxt1+tqmzs+nqvg32NAwGNalL9WroDTt5GJJXVE3EcE2HPr1Ub2Fh7ntL
+9m6wZ2CAMTj+u4eu4dfU9ePj/jRDZztq1uWms9vdORwOAwPAuLv7JnhSKcIYQVNFm//jrFixwvDu
+ysqVK42NfyCgxoTMzZs3q8dMp9Pv3LmjunT79m0N607nqjnVhEwnJyelUtnW1qbaxXH37t0ikWjO
+nDkAEBQUpGGoaMtVx9HRUeX/6NGjeuQ+ZWhkiLaHYRWhVCq7u7vDw8MtLCwuadHY2GjiOxg1OttA
+A/p+k4OmI/4M1cZ9yuu77QebZyp3pXLYB/E4otpGBcMwTNUv5vjvVnV9Hx/3p6lPga3ewmK9U63U
+MyGzYa99/6TZhr32Ax3IoRNuxwvjRu0udlaP4BKY9Y+Vmc+eBjDdvM95uvmzM6Crs2/EolUq+6bw
+UuTHZ9Z8Vi/pVrR2gn53w5jht54zv7Z6zcfCtCrZ/SFDcL3i7y799XLPkuXz5qu56hdHkiSpNotR
+XFad+NMLXyavOp3i+hd7xd/31vAGNkLGcZwkjBj2YQfExQXY0gFw24CM1GC84lCRtG/K5JD30aBr
+O2VZIz2iqKjoULJLfWpiPtWbHYybXFFfX18vabhefTyRnu3hEF3a9xJbUFTBDOh/d8KOyEhmF/mw
+HQLiskslEzQbUw1JdnCcwCE1Q31+GDsiv/761bMHg8lkF49UAQkA9RUC0jbAhz1sfDrCAgAATqf3
+vz2iM+lglPp00tMLoJSDktT7kfc8FYN2gtIKcPFxGVlgLRXrrg6GQPfJLkplFgWwn6O7RIt8khMd
+sEG9UqnekLCTBY28omoiDGw6dIIDyAUZGWREUT3RKcmPkKYGROerjXdp6rq+QmRY1dNStCjVJ1gU
+XFpfL5VU7wsgkj0CDkmAWhGGC9ITCWIycerUKdVmmMOybNkyHo+n7U6S5K1bt6hCqbZRKS0tnT17
+trp7Y2Oj+t/g4OAFCxaofltbW2/YsEGPZ3VEIlFHR8eFCxcUCkVISEhiYmJPT8+33367YsWKgoKC
+rKwsDf+qbf0BwM3NbdeuXQNrzF599dXy8vI5c+acOHHizTffHFbuU4NR90jl2dzc/J///Gd+fv5S
+LaysrMYopSaCog0cTQM+jhCliYkCl4wMzZE3KncVwzyIxxfMfntFfX196XZ7jBGQcShRNfOtvkLU
+Is5wwfvxyJYShI5JH0R9aUZcsIeDLdsjuV7e54UdHOchOXRIBAD1RfkSjwgfPYsbTMIkOdful0uX
+wv7Vuixg8Y4/vLpA8XNk0o/63Q1ntrXNgRSrutq7/yq7tPbk8x99wPVRzZns/PmLsrnrf0/jHb92
+frHjyhkGicMBxwdn/vxy9Dv5795eMB8AaHMCI5d3fXomu6rFby0NAIAkSZw5woqIs22ZICAI1Si8
+QCoFYAMAgLReCmxb7ULC2XIow4MOEJEaneGRmFwRkO2hUzSdqdpbmslkJ+bjImZARmmqTzAdREUV
+zOC4gXjpLokVkghB0aGM1GDbZI9DgqLxHkwehKiI84mr9zgkih6aBJzOtHVg2maU0qXM4OSi6NJg
+w5sH7bC6mp/RNzevHvhg8eKX2+UKAKh/ZxcA2P59p4afmdj0H3/8b6vvqIVNMBKRgGAH246kxFOp
+uJ/B6mBY80h3iSuqj1P9JksjEum2DgMBh1O9vrCTAe28omoi6IY1HTph2rIxh4DsRJUN5RGX6JMc
+USqCYA/VZQpdD6t77cRXZGdIA/Kj2QDAdInOLyVdbJOzRRGpDhSKkBgmqJ/Jrk0EAAAoh47MGOWt
+ra1t9erVV69ebWtr0xnq2rVr8+fP1+4UDyzDU6Gx1kvjr4ZndRQKxdq1ax8+fAgAAoEgKChI5d7Y
+2Pjyyy/rGZM8fPjwiy++OH/+/KioKHt7+9OnT6vsuqCgID0ryp4+9OStUZ7NzMxWr16t+t3b2xsX
+F/f111/PmjUrJSXlj3/842hTaTqo2kAD+34TDFGUkd8og+D+vq5cLk+0pecn86MrdLoLBIm2AIb2
+wcYJnM1ms5nsxNTgQwGJ2Yk+qiQCYNwMiSBaX55L84Ndous9UlOzkz1syXwPdmLfBWZAtE9i3CFB
+cpygSOISFzDuijNu1M7pOcq3a6tmeY88FR1l3zVhrsv+nxtjwQxzgJ7h3AEAMOiR94/CPTvdHLoV
+ffumgOKXJ0P3pJiO2y2zSd3xf2899+DgpX5f8Jz329yEQPto2s8fn1Tt5qJPXB9MJl0q6R8+6JEr
+QD7oDZtrAV2dfWkipVKSyTRcn4RU7X0AIaioB1s2E4Dt4sGsL63okygRVEjYLh5asWJ0WzYOAIC7
+JKcGkIfiMuoNEDloutSXluKar8LA2HmFAAAgAElEQVRxpktwYr6oIo5emppvSHSmgKzPCAjIxuOK
+8tVH7Aj14TScTsdVA2xsBzbUCwbXN+pY5UMZ1kQolaRcTpJykpTL5aRcTqp+D/nI5WBYz2ZyUy+Q
+AJPNNjochYp1VwejIUoPlYJPsAOA8apXDzs50JlXVE2EYU2HbpgePrb1FQNVSfOFsZaubV1sob60
+VO+4qs7EkyQJ5GBLxGQygdR6M6qmCEME6WbyaRMBAACrV68WCASG+Lx8+bKv75B3YO3t7b6+vt9/
+/317eztVKGtra52DHSwWS/1vQUHBnTt3VL9v375dWFioflX/yA+fz7969SoA3Lp1q7Cfn3/++Xe/
++91rr71GJTcsLKyjo+NPf/pTYWEhlV2nkcinEqPu0cAhuMrKyszMzL///e9LliwRCoUjTdq4QNUG
+jqYBHz/owfmShob6PkqjOZh9XIWoKNqZwt12vPtgRkD3SU52qE+NU817s3VxAFG+/slCkvyMIjw6
+/1C0jy0dHzoaQPeJDoCiQ0VFRfUeEROwmNA40y7iV1HUlzaOIhWzp8EvDQ/qmslf7jV9kXvzWrd+
+dwCLGfOnyy9d/uV+S8cvHfD8b2hznzR9U/WoQfqI9y/h3xv6vSke/TP70jf/bW1V9LTeeyR+YjZ/
+bn8j/9zzfi9PB5i9fj0bq7r693s9+sQNYOtiS9TX9/U9nvdbZna28IezUgVAz/3//nDwv9jvlv1K
+da1eUE+3tTVUodJDwQ4uAalFIolEIipKDEisYEcnBtABwCU6zqEiMTpbJJWKsuOS6z0S42z1xUQP
+SE0cLJ2akARBEAQhlYiKMoLjivCAaB86gKS0CNQsO1KQGhCcUVpPkCQhEoikOHtEverRI8kP9tha
+75FxKJoplUgkEolESpBA5EfY2gakFgnqJZL6ikMRcYdIl2AfJgAzIM4HPxEXnFFRL5EIihIjUoWa
+26hQhjURyl6SJDtJspMk5WSnnOzs7P878CFJEpRTY0YmSRBSqZQgSABS2v+rD6lUSuLMocPUFP4l
+2R50uke2BIBKxdTVQT0sRfykKDs6OruiXlIvKkoNji51SE32wPWpXi1OirCTA915Rd1EUDYdBujF
+NiLRQxAXfUgkJYj6osTkUnZwxIBVpK1rekByNFuQGBCXL5JIJaL8xOgMAWmAosEjIhgviosrqicA
+SElpXGopMyDYhVoRBgiaItpE9OHk5DRv3jxDfM6bN8/JyUndJSAgoKKiQvV72K0yNbZP9PLyUv9L
+EISjo6NqG5WlS5e2tLSoX/X2Hsmb67Nnz54+fVrDcUBuRUWFt7d3W1vbunXr5syZc+rUqQ0bNmiM
+1/n4+IxA7tRCQxHNzc16/lIpYvXq1f7+/ioPf/rTn86fP0+j0e7fv//WW29pz4mdXFC1gUb3/SYG
+nM5kD8Bk4oAzmWwmndJ9vPtgRsGOSI2glyUmC0gAekBiXN+zRkoQElF+akbf+iVc9eDs29tTKigV
+SKRSUVFiRKpArceJe8QF4/nRyaIJseyM3EZFqVR+/kua9h4qn/+SRuFdtWHJ9/1/v8/hOe+733+E
+18OdH/A2X+hSKpVkU+P2lBLnGN6qv10uEEs//bAkRazU465UKu9cuBiwlecQU7b9YqdS2fl9QeWq
+mCLnrafjSh/eqTzXv41KV/0F0eYPS5yji5w/OL35mPShWqr6z7Xr+v5QifPfxHf0iuunaZ87Y8PA
+6W9d7d8VXAj4gOccw1v14YVPr7b331rDXi7DqEPiHlfve8edQ8MAo7Hs/beXqC26bCrZ7s6iYRiN
+462xm4FSqdQ+l0PZWb2FBax3znZqb6PSD0ZjcTdsP97QqUqr+9ADUx5fPfiOt2pNL4PjPSQt40jn
+cX9Ms7SqlhGr8oqBqe4jfN/gdjCPr+7bwGVggNE4/ttLjrzD0tpGhSqsxtLYhr1cjDW6U2Ta29ux
+1+JZoZ8t+lPmy+/sa6pylH7vvOL9gyu3HVz+/j+XvXfAblO2bdSXC8L2Yq/FT4VtVB4fdB+qDcx7
+8PSX67vtNfesofLfsM+dxvDe1zC8irWrw2BY6vgfn+3b/oPG4oYfHDx4jUr1Q+KkCDvxUOeVkrqJ
+0Ok+vF5UAq/uC+eyMAxjcLy39DUVKnToWqlUNpXs9rdXNRr2/rtLmgxTtLKz4fgWbw4D0xCkRxH6
+BE0VbSI0CA8P1+6cqBMeHq4dyqjNDxcvXqwetqura9GiRYYEtLGx6erq0pau2kZFPx999JFGKA25
+quPUT5482beNgwFynzJGrwilUpmeno7j+J07d8zMzI4ePbp169aZM2eGh4fPmDEjKSlpnO/IWCja
+QOWwfb9Jh9Z2KbrcqftvE4Fm/7npoDcN4/Y9Bpuq927gslT9EPfwvX0qaDqygdW36V7n9YMb7BkY
+hjG44fvOlmzhDNlJrmGvPdAGjsEeX55RGj8ZTNh54Ytf0lX7pjg9t/y95+O5zxmxydUUR3rIw6U0
+sT7fR9/7X0mGi0d9aj3FirfJhTTbw6M+tT5jhBtgICjo6Oj4zRsfTjc3M3sWe+YZ8xOBfwcA/8J3
+1P0olT29XXJFT+9P//5oxowZE5RSBAKBmEgWLVqkZysUALC2ttY+M6C9vf31119XDdyNoCdTUlLy
++uuv6z9Rzdzc/NSpUxojSyqSk5M/+ugjPWGDgoL27dun2i1Tj1wrK6umpiaNI+z0yH36GKUiAKCx
+sXHBggVr1649ffq0TCbbtWtXbm7uvXv31q9f/+TJEz1nVyAQpoIoCraNxg9JDuk1FkzESLZR4T63
+4psXj415UqYIzOBEj+SMfKlPBOUYMinIyCaji6aCXQdAlBZJPRKRXTfmmJubi3M/kMsHhujfBoCa
+/9PhE8Mwc3NzHRcQCATiaae7u/vx48cvvfTSypUrtQ+4Cw8PP3/+PEEQ3d3d06YN6bHMnDmzuLhY
+tY3KCOSuXr36888/37JlC5VRYWZm9vnnn1OZE88++6z++F944QVtu05b7sCemQbKffoYpSIAgMVi
+OTk5HTt2LCwsDMfxBQsW3L9/XyQS1dfXOzigBbaI8YUkpNL60sS4InaiaCLsOgDjJ2QilMqGg+9s
+13fq2/WD7+yeTKfC6ePxEX+WUTNHEQbS09NDkmS7AZAk2dPTM9HpRSAQiImkt7dXte7OxcXFxcUF
+AObNm9fb26s/VGdn5+3bt0cstKSkROeEwEWLFpWWluoJeOvWLWdnZ2sKXn311draWlPIfVoZZYak
+paUBQElJiVKpfPz4sa2tLQA8//zzNTU1pk87AjHI4yP+NMBY7luOT9wk2pFMyEQgEAgEAoEYW2Jj
+Yy9fvnzq1CkAWLNmzbJly7744gtTC1UoFGVlZWVlZapj09hstpeXl7e3t+oU8qdP7qRlDDOkt7dX
+JpPNnTt32MFVBOLpA5l2CAQCgUAgEAgEAjHlMe7wAwQCgUAgEAgEAoFATEKQaYdAIBAIBAKBQCAQ
+Ux5k2iEQCAQCgUAgEAjElMfQww/u3Llj0nQgEAgEAoFAIBAIxP8C1tbWpojW0G1Uurq6TCEegUAg
+EAgEAoFAIP6nMNEOrmhCJgKBQCAQCAQCgUBMeZBph0AgEAgEAoFAIBBTHmTaIRAIBAKBQCAQCMSU
+B5l2CAQCgUAgEAgEAjHlQaYdAoFAIBAIBAKBQEx5kGmHQCAQCAQCgUAgEFMeZNohEAgEAoFAIBAI
+xJTH0CPLEQgEAoFAIExHXFzclStXeDweAPj5+S1dunTv3r2mFtrV1cXn88vLy+/evQsALBbrtdde
+8/b2nj59up5QCoUiLy/v0aNHOq/Onj07PDwcx/Exl/sUM7YZcu3aNYVC4ejoONbJRCAmO+M8atd8
+/oLrRz/+ML5CqZBfueyaWFc90cnQgOCFWGGYa6ZkwEVats3TxtLCwnKJ745KqVYA4TYbC9f9A+6k
+cNsSC5vIMgJAst/T0tI3V9LvDevHwtLGdf2OMolGTESu75IYoQnuacSQksqCtEhXKwsrjXQNkycq
+P/tdLWy2ad6PtDIzxNXG0gKzsHIK2S8khomTLFhvYRlZNmZ3NKWhUoe0bIfvEksLC0sbz5gCMTng
+XJkZ2ZfVS3x3lOlUE5U6RhO2H+2qpN/dVHGOFUYWXWp3ymo1BEK4P9LVxtLCwtLGNTK3lgCAshBL
+TAPLyEpVnOKCGE8bSwsLCyunkEztjAMASaaTekiL9TxSr7shcRrfRBjrrpvJXE6mInK5HACUSuXx
+48eFQqG/v7+/v79QKDx27JhSqRzwMAJu3bpFkqQeD6WlpQ4ODm+88UZ2dvapU6dOnTq1b9++N954
+w97evrS0VE/AQ4cObdq0aQcF77333hdffGEKuU8ro8mQtra2M1pkZ2d7enpWVlaOT/pHjaGNhiEP
+x3GFsqE2rlGdENQ7xpiF1RLPSB3N+RCmRp8QTcicXJCVSfF8kqbmIs4MDCxmJJXfuFEei+UFhu6X
+6AsvLYgMzMFj87K86QB0jpefnxeH3n8Rc06va2lpaZHVlac7y3ICA9PE6mEJPk/MDbQf2xsaHWJ+
+Tg5fTJAaT3Xj8kSd2h2+gbl4VF7NDfG5dPva+MAYHjHaOCno7e3V7AZT09vbO0px44FudYgzA0N5
+jJ3lN26cy7SrjfGMKSMAAIiy+NBMmV/muRuNF3P8iJxA30yxZoRU6hhN2H60q5J+d1PFOVYYX3Qp
+izRFtRqCONPXN0nsnFJ8sa48xV6cx28EAPesGvEg/Bg7ml1CrDsAgHDH+pha57y6J0/ulke1pAXG
+l2n3plskLZhbel1/8LosL1yvuyFxGttEGJ1XOpnM5WQK0t3dzWKxFi9eHBkZKZVKAUAgEAgEAgCQ
+SqWRkZGLFy9ms9nd3d0jiNzJyWnNmjVtbW06r3711Vdr1669ffu29qXbt2+vXbt23759VDFLpVIa
+jVZQUODo6Ojp6Zmdne3o6Hjy5Mnz58/Hx8cDQFNTE1XY0ch9KhllhtTU1MRocfz48ba2ti+//NJk
+qR5LDG00DHk4ji9UDfWY96lMBOacXieTyWSyxot5CSxhvG9o7uQ0Q43hGdUrsWHp6uoa+H2moyyv
+5Z+X5AIAWIa5vDtnqxPmYpi45vMXAk7T9324+JWRJHaMkV+5/FrB9E9T7ZZPdEr6IYU7nHxr/ELJ
+zJqgunOxbAAQxth4NibdLQ6jA4B0v6dNpvO5ax+r21/CbTaeNfE3zm1kkuJMT9dd9PSa4jC2VtyD
+3tT+x/ZJAQAgeSF2vNC6A976ZpBMBNJcT5skTvndLG6fw/B5ogq339Um3bn8xh6umiMhkQCbrbJ2
+Sd56q0g87+5hb5wyTrJgvWUMvfDBAW9jky2Xyy0sLD755JNhff7lL3958uQJhmHGipgQNNUh3Gbj
+eSPlbnEQHQCgdscS16qNqmJFEiROV5UmsizSKrAx5UZ5f/Hrg0odowoLoLMq6XU3YZxjhbFFd5hq
+olWthsjirbcJadHOc3UvBevtdnGKL35sjwOI05yc+LE3ysOYAACVMVZRWOHQigcAlZFWgZD34IA7
+GORuUJwU92JsnhjYpAze/CQuJ1OSxYsX6+zWD2BtbX39+vURxKxqV5cvX15cXDx79mz1S6WlpWvX
+rtX/Ws3MzKyoqMjbW0f7v2vXrpSUlHv37n322WcLFy588cUXi4uL161bV1xc/NVXX1lbW7e3t6em
+pr711lsaAUcp9+ljrDLkl19+ef755wf+ZmVlnTx58ujRozNnzhyztJoIYxoNAx6O4wlVQ21sozox
+aHaMSV6IZQh54MHRIKqO8Mj7hDp59tlnxyQeDYwetdvxcNuWBxtVdh0AXJIL/ti04UtCz2z45pu3
+Ez4947qtbPVndf/5Se1CRxufJ/rTR+WuW8pWfXzxy5sKlbP8ymXXz25fvn474dMzq7aVrf60jt8M
+w14CgFaJJOnTM65bylZ9JEy90iY3IAhAb9MV8ZaPy123lQV8VvcfWY8BsUku1/246aMy109vSwAA
+5NW8yyEflbtuKeH2fYTHnhibrQAAIM6Mz8Gj0sPYgy+nJVVCKcfLrW/gjcl1ZjXWCHW/USAq49fv
+kPnl5Q3YdcMOHOPYYOklKwtqnP3cVQ7Ssm2+SywtMAvLJb7qU+wmBfryRFqZtt7JysLCwso1Mq9O
+R2B6f4cMAHAaHUiyZbg4AUAu3B+pitYpskBiWDJ7enrMzMyqq6u1J4qoU11dbWZm1tPTM3yMkxJS
+1ihl2rD6M9Xez4tZy68hAAD6Hz8AAHJy6P8+KNQxurCgsyrpdTdlnGOFkUXXiKZDhWS/p5WVav42
+KSyoIr2igvR0F2p37apy/jjBXqUWBoMJ4j61AyGTkjQ2QyNOIFsIgsGga8VE5W5InFS3YmSeUOaV
+uiz135O5nExJVqxYod/DypUrtR0dHByGnRCh8lldXR0cHKweVqFQvP/++8NOl+jt7Y2Li1N/ta1B
+dXX1kiVLnJyczp07d+DAgTVr1nz33XcAMG3atAcPHmgP3HV1demXa2lpOW3atN7e3vfff1+hUOhP
+3lPAWCnin//856uvvqruEh0d/Z///GcK2HVGNhoGPBzHE4qG2ugH0GRBLasJYWaIk5UFprnWRM2H
+uGBH39R8yyW+OyoJUNnbFp5qI3/iNCeL8Z6Eb5xpd6aj7ET7UW33fUTGxX5jbyjyn8Rbsm81sTgZ
+H6z8fLXFzVutAzVT/kBW1UoPD19e9Nfl29md+V9fvzzQjDXe2nV+enjMqjOpy1+Hpr8VPxycbkN1
+6afbmw78NOs1p6Ldv8978/nGY5e+lPQMH1unLFcIf3hr+bcfOK6dLtuVff0HxXCxPbi9qxLCYl47
+vXUhG+D+edEHNRAc7XHu899/tYo26wXWpwlLPC2MylYVkv0xaURo1k579aLV2CgDFmOgh8XiMKFR
+LNORz+Lc0MCcG3S3UHftPpI2UmFmUh7hHuo3EDMpLKyx83PDAQCIgpjQQog9d7flbk2WLwtgco3j
+UeYJWbvD13dXIzel+OLF4iT72spa/cszavlCksO1x/XFCQDQUhATX+OcXnyxPMutJS8mSde8MCpI
+AzDm5icdOI2OEzJZ/02QABhIG4dMTyNqC2J28Blh8V56y6aaOkYZVmdV0uM+fnGOFQYUXUObDnX6
+S2NjnZjkcO2ps5wsSyuUB8UOKIUelPIxhx/i7Lstl5cbk1TntTOUrREnkIQcZLzIJZYWFlY2roNL
+MqjcDYmTAmPzRF9eqcvSKXcyl5MpwNatW1ksVl5enn5veXl5LBZr69atYyW3rKxMY5yQTqdHRkZG
+RkbSaEOmxd25c+f06dNU8Vy4cMHR0dHOzq6qqkrl8uGHHxYXF9+8eXPz5s2qmZnq8Pl8PeOTr776
+am1trSo3bt26VV5ebux9TTk0FNHU1CRX4/79+wOX9CjiwoULmzdvfvjwIVON3/zmNy+88MKaNWtM
+fg+jZISNhoEPR1ND0VCP5AE00RBiXvwuPu6u6gnXpnkG5tITim/I7tbkeInjfXcINfVAink8GTch
+79wN8bksriQzNL6SBNw7NpAlzCmU9HkS8wrE3NBA9rjeinE7ZOa2/IPqUtajz76eV6Dp2iM4fbfx
+Bc63G34zHwAYs7Z63K/sr5oYe2EKu++3l49V7pW7Ahks/Q0AADzH2B5u9cp0ALD4g+PM/CtPmuDX
+fX51X1JUlt7pcuYmOloAACxa+K7jvSRh6/uqV6v6Y4vkLJ8OALPC31xU+f9uHrv121d+26svtk5s
+bdDi5XP7Ut4oefLsSw6vM6YDwNKV81mVsmaLGUNmfRiGtCA+pdEvp5CLg/rEaZIkAdQ22cJxIOVa
+1VzemBkaQ9j7uokL4jMTLiZwdMuQ18TbWSYBkC0tcqC5pRQPWnYgLBRy/NJVLQQhk5G4PYdBx+l0
+940Jxt+MaaHKE5KfliO2/7guK4wNABxOemMBL506GmluUo7MKyuUoy9OAADAvNKLDwTRAcA+ITCN
+x69rBG+KLB7KNYDFJAn6u6FmZj8aEtekxT7QCw9M21XpvJML4tz4mLxGOQv6bWrJfl/nWH4LMLwy
+y9P1vnUYoo5RhaWoSpTu4xfnWGFQ0TWs6VCDvbH8wUbVT0LaAnRckhkSksarI+g2XrFZWQnug60F
+yc/jg1ehu1rsDDtne5ZUUhgTmAXOKef6OhtqcQLdLerjneAV6sfBxbz4kBDfUFpdcRiT0t2QOCkw
+Nk8o80pdlm65k7mcTAmuXr2qWl83LFKpVCQSqbto/NWJauBuxYoV+fn56u4aVhOdThcIBAsWLACA
+bdu2ubi4tLS0qHumshDOnz+/d+/e9vb2q1evAsDu3bsXL178+9//HgAePHjw6NGjOXPm6JGrzquv
+vnrq1Kk5c+Y888wzw8p9atDIEI3smjt3roZnnRnC5XJDQkJOnDhx6tQpjUvqUzQnJSNpNAx/OI4D
+uhtqox9AE4a8JtbGIl61VRPNxndn4YEwJgDB25VGhpZnBdkDALgnpATmhObV7uEOWRKAcxMO9zsE
+JW1MK9jPF4O7vX3sRo5dbqE4NoHTZ9nFqnW2xwXjRu0uyyk3VNN9qf1yYy/L7vn5FIFaZQ/zj4k2
+fVoVkHWzsVvR2qmWrv7Nbp+dZgaKbrVReJ2X2i//3N1YWe26rUz12XRe3tqpMCo2mDub/Vxv06Pu
+YWJ7zsKGMRj+lSVznr119z+yHgDFD+fvN1rMthnBkB1RlpRU45ye7q1ZR3EcBxjy1njILMp+ZI20
+sMLCozlJXHHajgKq5yTmvLO8rq6u7oa4rqowgZbj6dy34wWAkFfJ9O1/98MOTd/J4vnaOK3ftr9M
+MukqI1WeiCtrSI6fF9ugSCT7Q+OF9inpfXPO9OYzTqf164XGpANJGJolPQAgl4PKuqP6yOVTdS6m
+Crp3VuHHDF6gDc3SLabOa2eCPUYfeOvNDsurq6vh5wSSKa6eaVrvvAbQUMcowlJVJcoqNm5xjhUG
+Fl0Dmw6d4AByYWYWGVpY96DlRl6YLC0wpkBtJFbIrwJnL7VnXG2ab2hdYPG1a3dvVGX6Ebs8A3VM
+mGT7xcb6cegAOMcvPSUIr8zjSfW4GxQnRfqNzJMR59VkLidThBMnTri4GLRWf+nSpf/+97+13UmS
+vHXrFlWoGTNmrFy5UnuhXWNjo/rfoKAglV0HANbW1oGBgXo8qyMSiTo6Oi5cuKBQKEJCQhITE3t6
+er799tsVK1YcPXpUe/MP1bb+AODq6pqcnGxm1tcHc3BwUNl1xcXFYWFhw8p9ajDqHqk8m5ub79+/
+Py8vz1ELKyurMUqpSRhZo2How3E8oGioR/MAGl8wu/jyurq64ng7jOGXfiBBZSqLK+tabmS6WvTj
+mSMlCB17ZxLissxtIZ5OS2y8donlLS0EAAA7MNa9MTe3FgDEvIJG91Cv8V4LaeJz7fRNn26+Inq7
+oM3Rl7PdZwm7u2nTR9SvM/VsjDV4yezldR7/XGnAVhRUsSl6u1S2nzGxzf7tQs/nLuceOPdlt9lc
+y+e3R3NGsEMMwcsqaJRBiFWfVSiXy3fYWRbsPHcukMMAoUwKwAYAAJlYCqxAhlYENjEH0t3pAGEp
+UZmeSSmVflnuOusQjcFkMgGAyWQnHMZqrQKz+CneQXSo5VUxA2MHCh+dm1B+I1TIy8tMC7VLcTtQ
+dTSIbfxdmQoWRZ4Y/oAgKrf5xovdDtRsZA8Tpy4M34S7B0DR0QEdHfo8PfPM1DbtAOjc2KPXYlW/
+ybLIJDrHfqAo4XQmh87k7OHSZVYhKbyovt1WhqCtjpGHpapKJ6OqKKqY9hi3KeIcKwwvujQjirQm
+DA4Ls/fLTPBmAwC4xyZ47Yrk10JQ30YnkjohwQriDDYxlTmZMr+8jWwAYHI3Hi6Wu9ql5NSG6Vky
+j7M5DBC2tAAwKdzFRsc5iLF5MrK8mszlZEph4F5uOr21tbX5+fmJRCKq8+UuX748f/587fPlBkbG
+VGis9dL4q+FZHYVCsXbt2ocPHwKAQCAICgpSuTc2Ni5evFiP1Xrw4MEXX3xx3rx5mzZtsrOzKykp
+Udl1b775pp4VZU8fevLWKM9mZmY+Pj6q3729vdu2bTt8+PCsWbOSk5PDw8NHm0pTMdJGw5CH4/hA
+1fgb06eaYHAWi81mshNSgvICk3ISvPvbZcw5fXB/FZ1IC0LcYsRuKSlZOw9wyAJPm6S+C0y/KK+k
++FzhztgaXuP4j9kZa9otxbhUA3e/m+Gpw/U5mzlwXPKkFWapXpjJBxcFd5RXyJ5dsfKvK2cBADwZ
+5d7vM195AY5fkTWvtJo7vGfdyH9++EPnc54vTDcqtuYrN8sZrxRFMkazvSE9KO+G28BYUGOmr2+V
+X3lhLIcNdMKNuYNfJY1lMwFAIqxqZLm5a5USjM5h4QAAOHfnx36FIfGZsZSzMgcZNFHEfD7uV8ge
+chVncoMSuEFeO5a4phWKgyZRJ4TtTJEn9izIEdYS0HfcA8Xe7qQ4MzAwB48tP6w2REQZ56joyYUu
+G1LZq++d2jNm5j03Rito0kDw8/jglWcPAEAQJH1gfTdOo+Mg0zHeqVMdIw9LWZXoURRVbBziHCuM
+K7qjKNJMdy9OUmUdEcsemFqjvlRfLGwEJoulljCSBACyf1Uuk8EAskXzBSchJejM/v4HIawSA4fF
+oHaXGBInBUbnifF5NZnLyZTCz89PKDToNNUrV66sW7euoqJiwKW9vX3dunXnz5/XE8ra2lqnO0u9
+AAMcPXp027ZtKs+3b9/WGB7UP/LD5/NVP27duqU+fujv779q1SoquW+//XZRUVFERASdTndzc9Np
+12kk8qnEqHs0cAiuqqrqq6++ysvLy8vLu3jx4iQ27UbQaBj2cBw3qBp/e5P0qUwJ3Tspyd4uKb4g
+tDiICRyuHeQU8qQb9dh2ksJMHhZ18cBGDgCAVF0LdK8oP4jK47HFYreoCVgMadyEzDDa29SXInW4
+Yu7uzz977XpSRbOkueOHOhtsuBIAACAASURBVPGu0y39zZb5rOnQ3PjLD83y5p9kX35z54eRnFkz
+wHT319jzJOKEY/dvPFG0Nj/hn5ZU6x0r6aPzYe6x+z/IOiQ37+765l6rrXXwb4yMrbu3TdZ8RSZv
+fqJo7VCM8FhVnM5kD8Bk4oAzGWwmHQC4G2PtK5Ni9tdKpbX741PE7gmxeo0sul9Kgr04LV73rEx5
+C0EQBCGV1PIyQ+J5uF+UFx1AwueB2kRGUpi2PiSzTEyQJFErrJPhLNYEvWshCUIqlba0kACkTCqV
+EqoWjCJPmH6xXnhxfGhmpVgiEfJ2RKXVaKtDUhDiGS92Sz8QxZBKJBKJRCIlSOo4R0dvL5AkKSc7
+9XxIkpwSZ9oBlTrI2v0xMfsrxRJxLS8tNIZvn5LkjgMQBZF2duvTeEKxRCKuzI2MzyW5gV5MAJDs
+97S09FSdcaNbHaMJS1WVqKuYKeI0BcYWXcoiTVGt1POBE5rgVhMfk1srJQgxL2kXnxUYOnhsgkxG
+4gyG2jCIe2gQzouP54kJAFJSFp/GZ/oFcofEKc0NdXZdn8arlUgktbwdgUmVrKgEPzqluyFxUt+L
+sXlC5T6kbEyRcjLFWLp06bx58wzxOW/evKVLl6q7BAYGDhxIPexWmQ4ODuphX3vtNfW/BEG4uLhs
+3rx58+bNy5cvV19oBwCenrreXA9HRUXFmTNnNBwH5FZWVr7++uttbW0BAQFz5swpLS196623NMbr
+vLy8RiB3aqGhiObmZj1/qRTh5+f3xhtvAMDrr7++cePG6upqGo3W1NQUHByckZEx1kkeS4xtNKgf
+jhMEZUNtkj6VaWGHpYTR+UkpQhKA7pcQyxImBW4rqJUShKS2IC2zb/0SDkDKZFISAKfhIKvhCyVS
+aS1vR1S6UK3HibvHBmIFMbtq3cImYpsb40y7VTO8N9HjtN030eMojrabbWe3L2hu6+lLGz45//9q
+IGzdi/2NOOYZ9PLyztubPqkIKZDNe+3ltZbGpn0IGJuzL3bRfMmNTR+dXpN25bgMnjXEVmT9Jpjx
+S2rmuQ3ZN++/8Nt94b+Za2Rsc5e84Nh674NPv1uz8/Rrfz7ttqU86NBPklHdylA4sYWFoS3pnjY2
+npny2MKcsOEqMTsqPYrOT0qp1N5tpSbejsFgMBgsO8/4AjzwcNUBPzqApJhHeHkNVjqc4+VH58d7
+WtFoVr6ZEJWXNUFj/URBIIPFYtnF18hleYEsFssqlEcCUOYJ3e9AeaYbkeZrZ+ccmQvx6VGarwNJ
+XnxksQxkxbHOnH6ck2r1xDkqurqnt3aak72/VjzzQre5dfd0m+5nF/c8+3L39N92T3tJYWYlVzLb
+yOld3dOHj2vioVAHzuJwiJxQJ46TZzyPkVJeqDp8gx50oDCeyd8R6MThOAWmiO3TiwsHJ1yqpkdR
+qWM0YUeGKeIcW0ZQdCncKasVqK16ZwYdLo7HcwJtrKw8dzR6HS7+mDtgyrXICKDT1Ce44e7p/ANu
+jTs8rSwsLN3iG90O89MHpoSr4mSG5RXGMvk7PO04dp7xfFpoYfkeLk7tbkicxjcRRrur5wlMhXIy
+5fjss88kEkloaKh+b6GhoRKJZM+ePeqORs3l08Db2/ull15Sd2lpafnHP/7xj3/8Q8OuW7Ro0chM
+ux9//FF18DqV3PPnz/v5+bW1tZWWlgYFBcnlQ95FLlq0SMPseSrRUMT8+fPVDfL58wd3atCjiN//
+/venT59uaGg4c+bM6tWrHz161N3dfe3atZiYmJSUFJPfwzii/+E4AVA31KboU5kY3D0pyYvIjc+V
+AODcj8vLd7JqkjxtGFbOgTliwEkAANw5yI9ZGRPDI4AZlJXlRaR52tk4x/BY8ZlRNuqRcaI2slrA
+a0IsuxEdWX5RLsh69JlqZuZSjBsz532Djyx/6pD/Z191uZ3z5ytnAABAT/PN65uyH7l/4Pbu5JxU
+rAPpfk9Pcco13WcBI0ZMR0fH5ULrZ56ZPuM5s2nmursg3T3Kjs5epVKxNPDOjBkzxjmFCAQCMRkY
+2ZHl7e3ta9euVQ3cadhFhmDISdnm5uYnTpzQaVGojizXE3b9+vWZmZkaWz5qy7WysmpqatI4wk6P
+3KePUSoCABobGzkcjr+//3fffXfv3r1PPvnkm2++uX37dnBwcGtr68mTJ02TcASCGoIXYheD59w4
+4K1v9xgTHVk+km1UnDAXHecc/G8iv/FI3trc2ayYMXc6gEJ+49qTZovnXTTb8kkMwS+Wuscju27M
+MTc3t11zzZAOB4Zh5ubm45AkBAKBmGx0d3cTBLFw4cIVK1ZoH3AXGhp64cKFlpaW7u7uadOG9Fhm
+zpx57Ngx1TYqI5Dr4+OzZ8+ebdu2URkVZmZme/bsoTInhu2TzZ8/X9uu05Y7sGemgXKfPkapCABg
+sVjLli0rKioKCQnBcZzNZt+/f7+2tlYsFtvbG7LzEgIxdpCEVCrmJ8XzWAkX9dp1pmMko3YINVp/
++v/s3X1cE1e+APyfKM3UVpKql4S2ayIqYe0KFJWgXoFty4s+5cW2ILcVoVtUbKFixTXPlW7pLa3s
+agstdKVqK2L7yGJXEVYIYCvoKsH6EnC3JCoStEpiRQZRmRAgzx+BEJJMXoAosL/vh09rzpw558zM
+mTNzZs7MXMs8LK+5oeqa5PCYI8Nt9rOrQ3nzh/LJ8keDLHzNp2JNvfnrCmgIent71Wp1T4/l919O
+nDjR0dFR9xZshBD6D6TRaGbOnNnS0iIQCACgtrbWxcWlqanJ/MBLiqJu3rxJ97oUi8rLy9977z3j
+zyfMnj07MzPTzNNujY2NsbGxBg+D6Tg5Oe3Zs2fevHkjnu94NcwVkpmZKRQKi4uLg4ODSZL08/OT
+yWTTp08/cuTIggUL7FZqhAyRha+5xVSw/Nbs2P+pxXdj2umuHXbtEEIIIfTobdy48fz580eOHAGA
+8PBwb2/vzMxMe2eqVqsrKysrKyu1n03jcrmBgYGBgYGOjvZ9CvpR5TtqjeAK6e3tVSqV06ZNs9Op
+M0IjArt2CCGEEEIIITTm2alrh2PAEEIIIYQQQmjMw64dQgghhBBCCI152LVDCCGEEEIIoTEPu3YI
+IYQQQgghNOZh1w4hhBBCCCGExjzs2iGEEEIIIYTQmPdwunaK4q3Z1ST9dHnh1l211EMpCkIIIYQQ
+QgiNPw+ja0dVp289A1wWAAD03Lx8c993p5dt+iFDrovBYbdnp+yWm54dIYQQQgghhJB5D6Frpyje
+UeGZFMPT/rovPnVdrOzu6taPQvgnraZ2ZdfavzAIIYQQQgghNA7Zv2unqNhd5xMVxOr76fRKnGBn
+vKvbpMGx+GFRRMn+aruXBiGEEEIIIYTGIbt37cgTxXX8IB/CUjy+nx9UV9TZuzgIIYQQQgghNA7Z
+vWvXXCtjefA5liPyBXxlfZ2Zd60ghBBCCCGEEDLN7l07hVLJ5rGtiMhicwmFUmnv8iCEEEIIIYTQ
++GPvrh2loiiCYXE4JgAAwSAoEr+AgBBCCCGEEEI2s3fXjgCCoFRWddgoFUWwrOoEIoQQQgghhBDS
+Z/cBmWw2Sym3ZpglpVRQHLY1QzcRQgghhBBCCA1i964dX8AnL8l0b0dRqzvuqlo7u1UAXXdVrXfV
+Heq+KbJaGcuNz6JJBiGEEEIIIYQQrUmWowwPyy/UM6WillodTABAx/nzL/1/d7RT/v31j0fBwTf2
+pc+9JwLIT5xp90v1tHdxEEIIIYQQQmgcmqDRaKyJ19XVNdQsFPmBfhUp9d8Gm3uOTp69NEiWXp/j
+jw/bIYQQQgghhMaxxx57zB7J2n1AJgAnKsXvTE6hwkwUqjZ7F7UmCft1CCGEEEIIITQUD6FrB0Rw
+aipXJjPzNfJmmWr1jjX8h1AWhBBCCCGEEBqHHsKATIQQQgghhBBCfcbugEyEEEIIIYQQQvaFXTuE
+EEIIIYQQGvOwa4cQQgghhBBCY56137X75Zdf7FoOhBBCCCGEEPpP4Orqao9krX2NCkIIIYQQQgih
+UQsHZCKEEEIIIYTQmIddO4QQQgghhBAa87BrhxBCCCGEEEJjHnbtEEIIIYQQQmjMw64dQgghhBBC
+CI152LVDCCGEEEIIoTEPu3YIIYQQQgghNOZZ+8lyNJiiSFjAEiYHsGimywuEIl5agi/xUEuFEEII
+jVWJiYnnzp0rKysDgGXLli1YsCA7O9vemXZ1dYlEovLy8mvXrgEAl8sNCgpatmyZo6OjmbnUavW+
+fftaW1tNTnVycnrzzTcJwtwpwNDyHcdGdoXU19er1er58+ePdDERGvU0dtZYvyyhyEv/L1121d6Z
+Dkb9JPbZeO6fI5hi5/F1fP/MJu2P7huy61/nVb+YWJbeOCiGoD+GTdoOr2QD6M/bUrbBn8tkMJj8
+4C3HW4xmqNnAZQh26sI7azbwGdzYsjaNpmmnP5MZvLepP5puozOYXEH4ljLD4rXtDeavqxlCme2l
+KdNTv64ywg93ajQajableOZKAZfJAAbbc+XOmjbTc7fsFDC4G4yWp7Pp+IFtsQI2gz1oWWnS7DwQ
+zmDGlo3wgo1RNKuObjP1M67SA1qOZ8b2rXZ+8JYyXTW2lCZ9ecpWMg0bOWbscWvTpKtadOFWlXOE
+mKn2bTU7YwVcJoPB5Api917on2Sq6aBfP4N0NhxY589lMhgMtufKTF1m9MtL10xZaL40GrvUK4P1
+ZrKOodGDoiiNRtPb28vhcABg0aJFixYtAgAOh9Pb26uLMASXL1/u7DS3Ux49enTWrFnGp0azZs0q
+LS01M2Nubq7xXPo++eQTe+Q7Xg1nhXR0dFQaWbt27ZNPPnn8+PGHUvzho2vQDMNHXYNGc7CwqvF/
+1PRPjIHB5vvH0p5R9hkb54QPo2uX+OPnjfdv3O77+5XstneeBka8a9dyIJi78nD/5icLd59868/H
+/jtBv2un0TRs8+Qb9yss6Ty+jstkMvV244ZMAYO7cu+FlpYLO8PZTP+dTQazDOratRxYyWZ4bqnp
+1Gg0mrbj22Jj+3e0mg1chiCzobOzs7Ot6cLhDQImw3Nbg35CbQfCubHH7XdmarsLG7gM/8yGpn4t
+nRqNRnNhiyfTM3ZvTVNL04UDsXwGe2BbDELTtbuwc6W/v4DPBP3zSNo0h74b9/T0/PWvVQAfmvxv
+MYD+X09PzxCyeNhMrjq6zdTPuEoPaCtbyeYGbytraGlpKNsiYDI8MxusSdNceTrbmvQc3+DJ9Nx2
+wco06aoBfZWzqpwjwky1b8gUMJmCDQdqGpouHFgn8O9bXtNNB/360Vezgc8UbKlp0WjaGnYGs9mx
+ZZ1ml5eumbLYfGk0dqhX+ujrGBol1Gr1U089NWvWrNWrVxuf2a9evXrWrFlTp05Vq9VDSHzy5Mn/
+/d//3dHRYXJqdna2gwPtYykODg45OTl0KX/wwQdMJrOwsNDb2zswMDA3N9fb2/vo0aOnTp1KSUkB
+gMTERLp5h5PvuDTMFXLs2DFXI9OmTQOAFStWPLSlGA66Bs0wfPQ1aHQHC6sa/0et78S4ra2tra2l
+4fjeWD6DGbzXXDd0/HbtKjpK37j2yhwZZ46M88a1V8QPTpmJ3Fi/LLG6kBxq+UbCSHftWvb6s1ca
+XEAmm99KHNy10zRs8+SuO25Typ01W/hM/y0bBAzd7l2zjssI3tt3Dtey05/B32JwHjbQtetsyBQM
+3KbT0EXT+63fiHQeXsnt3ydHieOxbFM3FNqamnR9uc7D4UzmSpPFpunaaaft9R98i4AuzaHvxhRF
+AaQ1NNz55JOzxv/Vj9nY2Djka9IPn9Gqo9tMGo3GZJUePL1Nt+k6y2KZDP++KmouTUvlGdB2IJzN
+33Kh03I5+2egqQa0Vc76cg4bbdkOhw+sNz2Wmw6D9aOnYZsnw193fDu+jt2/I9EsL11eVpSh38jW
+q0FxaeoYGj1mz55Nd1qv5erqOrSUtbMvXrz47t27BpOOHj1qpjuh61SUlZlu/z/44AMAuH79+saN
+G3Nyco4cORIfH19aWrp+/XqNRjNz5kxnZ+f8/HzjGYeZ7/gzUivk119/1f+ZlZX14osv3rt3z55l
+HyF0DZqp8FHWoNEdLGxo/B8hwxPjzsMrGYzwA2ZOhMdG187m16gIFcnv3PzDmc7T2p9nOk/HXH/1
+i9YdNiXyoEN0+OzqrUcF60uWptV8cUmtDVadrRX8pfGs5GL81hLBx5eaaGKq/n12aVJN8QNdcu1f
+pJWs/uEBXbJaXVeb/vSxSJBU8tLH50WttpdEh6wqkriHWH6Kzj0gAKpEEhtWizQrOZdIyIrjUbog
+eZVY4R7S/0gfx9eXJxeLFSbnJquSI4SKiIKCOF5fCFUQQbDiRPQZ6j8IQFUViH0jArQBClFyiDuL
+mECw3EMSCqQUXQL2RZEkyeEYP87I4vF0gQSLBRRF9v9UVGVEeHEIguD4xuXZsu7NpAkAlDg3Tpus
+V1yB3LoUe3p6srP/+49/PL1kiUti4gmD/1566SXt35WwsPo5c3p6emwo7OhCt5kATFbpwQiWXhWk
+dL/NpWk9SVpalW+G0IuwWM5+dNWALnxkymkdmjJQ4oIqKiQhmmMQ3YqmY/D6kecGcDgheXIAAA6H
+A1KRWLuQpEJBsXgcANrlpcuLtgz6edGxtV7ppzkofZo6hkaRJUuWmI+wdOlS48DnnntugiXamKdP
+n3711Vf151Wr1e+++25vb6/5fHt7e995552uri66CDU1NfPmzVu4cOHJkyf37NmzfPnyH3/8EQAm
+TZp069atmzdvGsTv6uoyn6+zs/OkSZN6e3vfffddtVpNF23cGKkNsWfPnueee04/5J133ikvL3/i
+iSdGpqD2RHegNBk+yho0moOFDeeuo4veqibFWdFeHGICweIFmD4RJqUFwmhfXt/JsrCKBABKFMch
+AvIGllWa4UX4ZsntXnJ9tnXtKu+VHbr7N+PwnNZPa/s7e1ZQKVqq7j715lt+R9P9ts588N3XF8/q
+GjDF5T/9CG++t/zEH91m0sRkuP3m95Nvl//cP4/ixvFWZqjXZHPJdt74+Pu2eZGLCjZ6Lnhw/ePD
+SpWNJRkgF0tZXu6GJ1ImuPu6KyQS0nLEvnRzEzLIuNw0L/2qJZcrgMfRZcZz54BcamL3oKR50RFf
+yVgBcbRvdtGnEGcJ88iAuAhdypS4QOzV17MjCxKiCyBZrOhUSHIjeACPqOGgSAoURXHuLILg8Hyj
+s8Qm1qVEJKbcfbUnp5REGBKSJvfNEEkkojQvSZVENaR89dMEAGgvSEgW+2aJJFW5AeS+BKHI2q7u
+hg0nNm9+/n//V7x16wKD/7odO6b9m11c/Nuffx5SOUcJ+s1kskqbRkoKEoQiTpwwhGU+TRvKJcoo
+oKKTQ/p3CFvTNKwGpsJHopxDoVcGuURKuft6GXe3LDUdhusHACiK0m4pVnRGhrso2iskOa8oL0Eo
+CUnTXjCiWV66vMyVQZcXnSHUK/00jdM3qGNoVEhKSnJxcdm3b5/5aPv27XNxcXn33XdHKt+ysrLG
+xkb9EBaLtXbt2rVr1zKZgx5HvXr1akVFBV06p0+f9vb29vDwOHHihDbkgw8+KCkpuXz5cmJi4pYt
+Wwzii0Qig3z1eXt7NzQ0HDhwAAAuX75cXl5u63KNOQYborW1Vf/mw+3bt3WTzGyIU6dOrV279tdf
+f52qx9nZ+b/+678CAwPtvgzDRNegWTiAjpIGjeZgYe2562hCSouS00REgPZMWJIREJHHEorkbQpJ
+Xog0OUQoNtwOlLSoSOErLBDLm8S5vvKs6OQqCoiQ5GieOFd3E0BaVCD1jYvmPdRFsW1A5uvXVmjH
+YRr/vX7N9IBmg9eoJJ40HJx5+0pU4rHPr2k02pGTCT9+TXdzeSBm9095ZT5fXNeOr7gq+tHn06u/
+0kbWUD+JfRLFZff7pkgPHfMx+SoXK0tStpJpPAbIxIBMjeb4OrbB42z0Wg6Es7UvP9E0bPPU3Xwv
+i2Uywg/rYrUdCDYafFazgQtsLpvB9A/3Zw96fm7QjeOaDVwABpPJZDIZAABM/236T4seX8fX3Ttv
+yhQwuOuOm3+W9GFoOpyZebihTaPpbDi8ztPEEOiWvcFMZvgBbWjn4ZVM/dEMNg3IpElT03kgnMEI
+P9C/Li5s4Rs+okjn/v37WVmipUsPHTt2ff78vxn89+f587V/0qVLDzo43L9/33KKo4PxqqPZTDRV
+2kjTzmAmAAA7eGdDp4U0rSqPVufhlUz2oBHR1qepMawGtOE2pTlSBpWhZgOX4Z9ZlrnSk80ABpsf
+vk37vLqlpsN4/QzO4/gWfz6fz2YAMATbdGM2TS8vXV5WNF96CzXC9UqfyTqGRoPFixdbf7qyZMkS
+W9PXzWgwIPPtt9/WT5nFYl292ndW0NjYaNC7M/nUnHZA5sKFCzUazb1797Rvcdy2bZtEIpk6dSoA
+REVFGXRUjPPV5+3trY3//fffm8l3nDFYIcYRLG4IjUbT3d0dGxvr5OR01khzc7Odl2CY6Bo0cw3d
+6GrQTB4sbGn8HyHta1QYDAZDe17MD9+mPfVtOxzO1B9CWrOBy11XozEzILMp07N/0GlTpqfuRHHw
+gNWHxba7dj911gxh0iSnNze+cOiDFw598MKhtAUhTACADoXyu4Nn4z/+YflnUnm3uqOzP/LjTP7g
+G2KmYk6ct8hlStONUw8AoOP42XvzFrhMp40MAACOjlMm9/1zipMjqLu7zKVvuiRaFEVR5t9orEMQ
+BEVadYeHFAmFYt+sLKOrLwRBaO+56zIHU5krm1lxRUVFeWm+0gxhAd2VEYYgrUoqlUrlTQ01h4Ws
+3ACvBFHflXBxURUnoj93XlxWGq8ohOcVkZwrkj+i0ZgAALyI5OQIdxYA4R6RlRFNVOUV6S+bPDc6
+WeyVkdU3Fk1aJabcI0J4w8rSIE0AACBYrP7twuKwwMptCgDvvXcyLW3hhg0nP/lkkcF/f3v2rPaP
+f+IEX2LL0NHRx+Rmoq3SxrPHFUgbLhzfG02l+QZk9F0Xs7DprSAWVYFviK+lcppmqhqYDB9+OW1m
+UAYCQCXOyqLiiqRkp7wgTpERkVBAWm46jNePHklGSLQkWiSVKuQ1OyPItICIvsGNppeXLi8rmy8a
+w6xXg5IyVcfQaFBaWqp9GaZFCxYsKC4uNg6nKOrKlSt0c2lfoyISiaZMmaIf3tzcrP8zOjp65sy+
+4Tmurq4rV640E1mfRCJ58ODB6dOn1Wr1qlWrhEJhT0/P3/72t8WLFxcWFubk5BjE177WHwD8/Pw+
++ugj3TNmzz//fGVl5dSpU48cOfL6669bzHfcsGkZ6SJPnDjxm2++KSgomG9kxowZI1RSu6Br0Mw3
+dKOpQaM5WAyv8X+YGJ5bqqRSqWiLJ4MdkZUn1I58k1ZJ2mVZvkS/gFwFSZoYlUNKRVnJ0QFe7ryA
+NKmqLwovOjlAnpcnAQBpUYE8IC7EinF+I+qhfLJ8ogt7ykzOlJmcKTOnEVMAbp89u/IvP8vYv9m6
+MaD0j/Pm0X9cjy4mw+03v3/8dvnPami9Va54KsyTMBPZhP5RlzbM0o8AgrA0lKgPRVHWjYImi7IK
+mpWiaA5BEAThlVanqhW6s3wzpNq72ArdyaJCqgCeicGg/A15WQEs4MVlJHBEwrQquuKxOBwOh8Ph
+uftGCAtyI8i8LG3fTlJUxYkeqHwsX2GVXC4S+ipyo915EdY+XWZXBM+dA4qBXYusSg5JlgbkFiTw
++kKG37wZp2mK9fn8+c++GzZUZ2T4JCT8YPBfiaur9q9+3rx/eXkNu+ijRf9moq/SJuZhcdy9AuKy
+RLkh0rS0IqPW03DTW0UuEZM8X3e63c9cmnTVwFL1GFI5bWRcBo47j+GVnCsM4bEIghOQLAyhqkQS
+sNR0mF0/VblZighhAg8AOL4JBaIM96q0XKPrDwPLS5eXlc2XFYZSrwbNb6GOoUdIM/jOjE3R7t27
+FxgY6EXfhF68eLGysvLJJ580CNc9hqdl8KyXwU+DyPrUavWKFSu0Ay/FYnFUVFRGRsauXbuam5uf
+e+45M/ckv/3229TU1N27dzs4ODz//PPHjh3T9uuioqLMPFE2/phZtzZFdnBwWLZsmfbf2icVmUzm
+M888s3fv3uEW0Y7oGrQzFhq60dOg0R0sRq7xtzuCx+PxeAHCjGgoEOYOHEsYgiw5pYcsCDGYU1EQ
+7eUrlLjH5VZJ5OIsX0b/BE5EQghZkCem5KIiua/eo08Pi21du4WP015de/HJYGtTeVD+Ywtj6YL/
+82PPnDwRwMz7I8zEnBrq5XhWcrtJcuOm24zFTJuSHUJJ9HA4LIXcmivzlEJBcTjWbFJWdIG8qUna
+R5TAZ3gmV0mKEtyB5xvAkYqq+rKTi6vkPN8AoyQZLHceAQBA+KZlRFB5yVmWznQA9LsoUpGIMLzd
+RXB8o4UFkqpkliijwJrkRh6p0GuwSHGVFNy1L3MASpoVEZFLJBcV6N1W4XnxQCoeeLjRuv63jsk0
+h+f3v3cRiyMCAtj19a8Z/Hd2fb32b5ZY7HbmzAhl+EiY3Ez0VXrwvPp3QAkWi+i7J0q/6a0lFcuB
+w+NZKqfRfHTVwHT48MtpC5Nl4ASEuEurdNVed3HUQtNhvH70M6IooAYaCA6HAxRJAu3y0uVlXfNF
+Yzj1alA6NHUMjQrLli0Ti8XWxDx37lxoaKh+yP3790NDQ//5z3/ev3+fbi5XV1eTNwu4XK7+z8LC
+wqtXr2r/3djYePDgQf2p5u/8VFRUXLhwAQCuXLlysN+NGzd+//vfv/TSS3T5rl69+sGDB3/4wx8O
+HjxI168zKOS4ZNMyWnkLrrq6Ojs7+6uvvpo3b15tbe1Qi/YQ0DVoPvQN3Shr0OgOFsNq/B8JVkha
+mpc0I1k77s3d1wskBeYH4cgLsoqIhIK8hBB3FjH4qj8rJCECivKKioqkAXGP4GFI27p2cU+toZ+0
+1uo8p0yC20236lupp55EkAAAIABJREFU29dbvsi/fLF7KDE9fF2m/9y441yHR99oTOuTHUJJ9Lj7
+upNSqe6sQ63uaKdud6q7AFR3qdvt6o7+W4JSsZTl7m7VNiVYHJ4Oh0MAweHwOCwA8E1I9qoSJuRK
+FApJbnKaNECYbOYsBoAVkSEcqJ2GKJIkSZJUyCVFWdHJRUREQggLQC4qAr2eHSXOiIjOEklJiiIl
+YomC4NnxbJWeIi/ayzcio0gil8slRcIIYRUvQRjBAgB5QXTARmlAVl4CRyGXy+VyuYKkADgRySHE
+keTorCqpXC4uEsZl1Jp4jQpFkgqFgiQpAErR/y/aNIfnZx+f8+7u537zGzN/593df/bxGW5OD4XJ
+VUe3meirtDw3gMUKyJUDkAVx7u4RGUViqVwurcqLS86jfKNDOOY2vW5euvL0USgUFMHhDJzSWZcm
+XTUwHU6fpj3Qlc09ThggTk7IkyhIUlokTBPxouO8wELTYbR+Bq2HgLhooig5uUhKAlByUXKGiBMR
+7Wtmeenyogu3vB2HU6+sqWNolFi4cKGLi4s1MV1cXBYuXKgfEhERUVVVpf23xVdlGrw+MSgoSP8n
+SZLe3t7a16jMnz+/vb1df2pwsNVXrvUcP3782LFjBoG6fKuqqoKDg+/du/fKK69MnTq1tLR05cqV
+BvfrQkIMbxOMPwYborW11cxPug2xbNmy8PBwbYQ//OEPp06dYjKZN2/efOONN4zHxI4qdA0aXfio
+a9BoDha2n7uOAry4jDhWuTBNTAGwIoTJPLEwIrlAoiBJuaQgo2+MGxDaA1Xfu0kVYpFYrlBIioRx
+GWK9M04iIDmaKEhIkzySnp2Nr1HRaDSf395u/A6Vz29vp4tv6rt2VEvzlvQyn8TiF/98rlCm+MsH
+ZekyjcbUB+joYmo0Go2G/PyDIq/E07r3o1iZ7I1j1T7/+2+pjSXR07LTn637ktrd0ye99N8Tk1D8
+9k/ab7I3ZQrYQ/pOnOEjsy1lW/y5TAaDyQ/ue0PCIIbf5dB01mzgAnfd8U7j16j0YzC5gpVbDjd1
+agvqP/iDI20X9q4L1j4Ty+YHbyl7VB9NaavZuc6fz2QAg8n1DO8vR+fhcIZhLe5/PLftws6VAjYD
+GEx++JayA+u4Rq9RadvrP3hWRvCBTjNpGjwy25QpYHCt+zrL/fv3//nPfzY1Nf3yyy8tLS2Kfkql
+UvuPlpaWGzduyOVy7VXnEVpp9mN61dFtpkEGVemmnf5MdrD286XaedkMbZWM3dn/Zh+6NAfNS1Me
+XY4GG99ymnTVgL56WLHsI8Rctdd0XtgZK+AyGAw2P3hD326t0ZhrOkysH/11q+lsOrwhmM9mGKRp
+Znnp8jIZbs12HE69sqaOoVEkNjbWsHYPFhsbazyXTS8/nDt3rv68XV1dc+bMsWZGNze3rq4u49y1
+r1Ex78MPPzSYyyBf7efUjx492vcaByvyHWeGvyE0Gs2OHTsIgrh69aqDg8P333+/cePGJ554IjY2
+dvLkyampqQ95iYaO7r1Qg8JHXYNGc7DQWDx3HQ0Mz59b9gYzGYK+w2BLTeZKAVd7DPKPzexbhJYD
+K7l9L9frbNi70pPNYDDYgtidx8s28Ae9mawp0xOYht/AfkgmaKwb5q6vtvP0F7d3aN+bsvDxRe9O
+TxE8bsNLrsY+RV6Ar0goLQgx9xydPMs3QJohzQ0YlQ+O6lHkBgRIM6RZNC9UQEP04MGD7559doKj
+4+MODhNpnhDo0Wg6e3s1avUbv/wyefJkk3EQQmh8mzNnjplXoQCAq6ur8TcD7t+///LLL2tv3A3h
+TKasrOzll182/0W1iRMnlpaWGtxZ0kpLS/vwww/NzBsVFbVz507t2zLN5DtjxoyWlhaDT9iZyXf8
+GeaGAIDm5uaZM2euWLHi2LFjSqXyo48+ys/Pv379+muvvXb37l0z365AyF7Iomj3BCJPnme2p2An
+Vrw3xIjg8cXf/ebQiBdl7OBECwPSsgoUIXG0t8EpcVYulVA06vt1AKSoSBEgxH7diJs4cWKETKZS
+Wf62HoPBmDhx4kMoEkIIjTbd3d1tbW2zZ89esmSJ8QfuYmNjT506RZJkd3f3pEmDzlieeOKJkpKS
+ZcuWaR91s9WyZcs+//zzDRs20HUqHBwcPv/8c7ruxGOPPWY+/Weeeca4X2ecr+6dmVbmO/4Mc0MA
+AJfLXbhw4aFDh1avXk0QxMyZM2/evCmRSKRSqZlX7CBkFxSpUEhFwuQinlDyKPp1ALYPyEQajUaj
+adq7bou5D7817F23bRR8GM6ytgPh3CENG0UW9PT0UBR13woURfX09Dzq8iKE0KPU29urfe7O19fX
+19cXAFxcXHp7e83P1dnZ2djYaD6OGWVlZSYHBM6ZM0ckEpmZ8cqVKz4+Pq40nn/++bq6OnvkO14N
+c4Vs374dAMrKyjQaTVtbm7u7OwBMnz79zJkz9i87QgPaDoQzgcH133D40Q1CHcqATIQQQgihkZWU
+lHTu3LnS0lIAWL58+YIFC7744gt7Z6pWq8vLy8vLy7WfTePxeEFBQcHBwdqvkI+/fEetEVwhvb29
+SqVy2rRpFm+uIjT+YNcOIYQQQgghhMa8h/LJcoQQQgghhBBC9oRdO4QQQgghhBAa87BrhxBCCCGE
+EEJjnrUfP7h69apdy4EQQgghhBBC/wlcXV3tkay1r1Hp6uqyR/YIIYQQQggh9B/FTm9wxQGZCCGE
+EEIIITTmYdcOIYQQQgghhMY87NohhBBCCCGE0JiHXTuEEEIIIYQQGvOwa4cQQgghhBBCYx527RBC
+CCGEEEJozLP2u3bIiKJ460Hm5iR/Fs10eeHWCu77awXEQy0VQgghNCYlJyefP3++uLgYAMLCwubP
+n5+ZmWnvTLu6uioqKiorK69duwYAXC73pZdeCg4OdnR0NDOXWq3ev3//nTt3TE6dMmVKbGwsQZg7
+/g8t33FsZFfIxYsX1Wq1t7f3SBcTodFutN21U50/t1RYX2PnWUYAVZ2+9Qxwtf26npuXb+777vSy
+TT9kyHUxOOz27JTdctOz0yOLV81gMJZmD8yoKN8U6Obs5OQ8L3RrtcJohtpNbk5Ld+nCqdpN85zc
+4stJAPmuQGfn0Hx5fzRGPydnt6WvbS03LBuZHzovsdbWAtuRojp71VI3ZyeG04yFq3bVknpTzK8T
+bZxdS53cNhktDyWvLtwev3SG04xBy6qozo7vy2te6Nby/jSpwtecnOPLR26ZxjLbVh1tfGvSBEpW
+mBjo5uzk5DRj4arsgW1PF26CzbvSUMqjKN8aOs/ZycnZLTCxUEaZKc6w2b470IRbs10AyNpd8Uvd
+nJ2cnN2WxufXkf1loNnW1m8XE0tmW/mt2v37FsKwDlhY9iHVGX2ULH/VwhlODCfnhVtrtTM7MRhO
+C7fWmZs0KIXRWwPtR6VSAYBGozl8+HBtbW14eHh4eHhtbe2hQ4e0n97VRhiCK1euUJS5tSISiby8
+vF599dXc3NzS0tLS0tKdO3e++uqrnp6eIpHIzIx5eXnr16/fSuPdd9/94osv7JHveDWcFXLv3r0f
+jOTm5gYGBlZXVz+c8g+bceNjOpy2EX5UaBt/GxvPR0H/xJjhNGNeYPwuC0evsXFOONq6dmOFonhH
+hWdSDE/767741HWxsrurWz8K4Z+0mtqVbVtXiapOTamgmHohsuzIyBJ2auWlS5VJjP2RMbvkZstV
+GB+5m0janxPMAmDxg8LCgvi624oMnx317e3t7cr6yh0+yt2Rkdtl+vOSFcUyQaSnTeW1p7qtoZH5
+xJr9Zy7JTu7wrEuJTCzu2+VsWycGZBW7d1fISGrQmQJZnhKTrQzLPnmp+afdYeTuyNBsGV0CVurt
+7WVYrbe3d5jZPQy2rjqT8a1JE6B262uJdT776+/evVa5pn17ZEo5ZTbc2BB3JdvKI8uOjClmv195
+6dLJbI+6xMDEctv6NDawfXegXV6rtkt2aGiqzCe95Kf6ynRP2f6KZjC3ra3fLqaysq381u/+xnXA
+/LIPt/kFIItTEouJmBLZpTMHkzxl+1NyZD576puvVb7vaWbS4NUxWmug3XR3d3O53Llz58bHxysU
+CgAQi8VisRgAFApFfHz83LlzeTxed3e3pZRMWLhw4fLly+/du2dy6l//+tcVK1Y0NjYaT2psbFyx
+YsXOnTvpUlYoFEwms7Cw0NvbOzAwMDc319vb++jRo6dOnUpJSQGAlpYWunmHk++4NMwVcubMmUQj
+hw8fvnfv3pdffmm3Uo8kE42VyXA7nKsME13jP6zztIeI4bOjXqlUKpXNP+3fzK1NCY3JH53dUJto
+rKPSU9pW/D/yiDkyzhwZ53/kEf+8W60aMXdrTvts/KnKzrMMW/NuP3bkwfZBYb82/iGx9EOZflB9
+ugd3TYX1ybafSHFj+qUk+jB8dvQldGINlxG0W9mXbbYfwy3lzOCZTiRyGT7ZzSqVqr1+hw+TGbRb
+pjJhIJre7x16UdsPRnJjituN53xklDKZsv/f7QdDmcxIbfEsr5O+KT4MbuIJk0k37/ZjsNfoT2tX
+6ha9vTiGyfDTrqv2/aEMZkzxEEp/9+5dAPjECgBw9+7dIWTxSFi96mjjW5FmfboHw293fzIVa9h9
+G5Iu3MiQdiWby3MikcsI2t9fSc+kuA3epUaWrbuDheU1u12UB0MNt2Nfxqa3tdXbxQRby2/1djRR
+B/qYXvbh1Rkt2Q4PvTgn1rAHVouZScZGZQ20o1mzZpk/UXF1dR1aytrZFy1adPv2bYNJR44ccXCw
+cHXbwcGhuNh0+5+amgoA169f37hxY05OzpEjR+Lj40tLS9evX6/RaGbOnOns7PzNN98YzzjMfMef
+kVohN27c0P/56aefvvDCC3fu3LFn2UcIXWNlKtz8Afeho2v8bW48HwnDE+P2g5EMRuh+MyfCQz8n
+NMnKLpitbL5rt/XXTRturT2rEmt/nlWJ32xZ+SVJPxpeVVN8btWHlUs3lAn6/moP3QV4cK+iWPKH
+DyuXbih/8eOfvrys1pult+W8bMPHlUs3lUd8Vv8PZY9uQodcnvqXH5ZuKH/xw9qM8/eML7yqzp9b
++lnjufr+2bMb/3X3QU3xuajU8qXCqg1VpG6Wjsvy1M+qXtxUtjT1dGoV2aGXiJlJfcgTxXX8IB+L
+T9Hx/fyguqLOUrR+suyU3cSaHat5Axe85SdqFfwgv74bbxyBD7f5TK3pKwpkdcprW5Vh+/ev5vWF
+WLxxTDAGFoGqLjzjE+avDVCUbwqd5+zEcHKeF/roBvmweDzdHUeCyQKKagcwv04U1dtfWzjDyclp
+xtL4/fW2ZEawBtaFihr8G1S1u+K1yS6ML5Rbl2BPT4+Dg0NNTY3xQBF9NTU1Dg4OPT09llMcrcyu
+uqFhszkgqzijvQFBKhUUk8c2F25oeLuSteWhlM0Kjhu3v5J6hgVx6vojjTwbdwebl1e+K3DGDO34
+baq28AQVtCaKYxSJZlvTbRe9NAFIWeHWvhGlzvNCt1ZrY9taftrlGpQXmKwDZtlSZ/TzGvi3bPtC
+j5R61aUdPn034/12K1Un1nAZjMA//x/tpHzSsOSmjIYaaEeLFy82H2HJkiXGgV5eXhYHRGhj1tTU
+REdH68+rVqvfe+89i8Mlent7k5OTu7q66CLU1NTMmzdv4cKFJ0+e3LNnz/Lly3/88UcAmDRp0q1b
+t4xv3HV1dZnP19nZedKkSb29ve+9955araaLNm6M1Ib45ptvnn/+ef2QhISEf/zjH0888cTIFNSe
+6Bork+F2OOAOB03jP6wD7qOkt6rJ2uy+MfR0o91NHdSo8vgZToF6d/5k2xc6GY+ztS/bunY/PCg/
+cv974/CdZNZP/Z29wW6ekvzxDEQnBJz8/IW/vsh88hnuXzbPC3QC1S3liQ5WbOyioj8t2sLrLNjX
+cE7XhnUq82vh/3lj0d/+6L3CUflRbsO/tJN+aVy/55cnX1pYtO2F/a9Pbz509ku5qfPh5it/Pv/E
+OxsDT/7vc3NuXNrwl/OHnGZ9nR5cFMW6VPKvAiUAgOqXxvW5l1tn/3bn/y7dGTWtVVS7vviuttdn
+ZpJeFrUylgff+LzHCF/AV9bXWXekle9K3E7G5LzvqV+1mpuVwGXrcuLyOdAsUxrPrJLlx0TuvsTy
+i6F9rYs+RW126n7SPyZMlzJVe/CMR5gfAQBAFibGHISkk9far53JCeUCjII3wdRV1FJ8gScBZtYJ
+Vbc1NPSjZkF6yU8/laR61lXXDeHxDLKuMHFrBXt1SpBuRbYXJqac8dlR8lNljl/7/sRUG8aaAWUF
+2ws5OplYdUPFikr/mF+xyid0U35xfmJqfdD72sHPdOGDDWtXsqE8BJNFkEplfyYUAAMUzQ/jxNqK
+3WEoy9tfG5vrZRRf4GlmMxpsazPbRVfDKVlxsVKwef/JS7KTOQJ5dkxKNTWE8ptbLr29yWQdMMPm
+OqO/5/b9m59UeTLFg+GWWKHUju8pjmFrB/uUbPkj7aTVLIPUTBptNXDEbNy4kcvl7t+/33y0/fv3
+c7ncjRs3jlS+5eXlBsP/WCxWfHx8fHw8kzloWNzVq1ePHTtGl87p06e9vb09PDxOnDihDfnggw9K
+SkouX7789ttva0dm6quoqDA57FDr+eefr6ur066NK1euVFZW2rpcY47BhmhpadG/p3Hz5k3dJDMb
+4vTp02+//favv/7K0fPss88+88wzy5cvt/syDBNdY2WhERvBA+5w0DT+wzrgPiKkrDjlowrCX3sm
+XLc9MDKftbnkkvLamd1BspTQrbWG28HkQY0ITork1u4+KO+LJCsulAliInkPdVFse0NmfvvXdJNy
+7ny2z6XQKLhZfvex2V4vsx0BYP6Sp7nVylanyVMAgDcrndcXJyhkRv75a2IlzH8WAAAeZ2+J5y9y
+BIAnY1+fU/1/lw9d+e3vfttbLbra5SMQejsBAMyZ9Y739dTajvd4RpX6cfbGN551cwSY7BI4+99i
+tWt6AIsBAPOemQ/n/6XsAXavWHS1mffbojD2NACYxk/vJCMOX65+aX7QZDX9JL0sFEolW2DyboEB
+FptLKJRKAIu7nqIwJb05bPdBAQH6A6cpigLQe8kWQQClMtrNVc3ZMYmkZ6ifrDAle/NPm/mm81Cd
+SfFwTgWg2ttVwPRLLxno2UHtwVp+2A5tMUmlkiI8+WwWwWL5r91sxXLamyI/dbcyKCeGD0C/TqiK
+7btlnh/X56zmAQCfv6O5sHiHLbnId4X6JFW0Azsou3KHXheZEbSjZE8UCwA8N0duL66ob4ZgmlU8
+2EWAuRQF5k/aHBx+tqWQoxPdqhsygu3h48lVyA8mRuaAT/rJ/oMXXbieYe1KtpXHMzKIiNz+UbXP
++wKQ5ack7m9WcWGIr3uwgXW7g63Ly1tbeWut9p+koh1YhDx71artxfUkyy0oKSdns39fa2FyW9Ns
+F700gRBs/lbQ9++o1LXbC3dVyMDf09by0y6Xfl40dYB+jdpYZ/Tz0vs3wWJyAIBgsVjaHi8BQDCZ
+LO3/aSfpp0ZrVNXAEXThwgXt83UWKRQKiUSiH2Lw0yTtjbvFixcXFBTohxv0mlgsllgsnjlzJgBs
+2rTJ19e3vb1dPzJdD+HUqVOZmZn379+/cOECAGzbtm3u3LkvvPACANy6devOnTtTp041k6++559/
+vrS0dOrUqRMmTLCY77hhsEIMVte0adMMIptcIQKBYNWqVUeOHCktLTWYNH369BEqqZ3QNVbmGrER
+P+AOh+mmaXgH3IdJdSbJzSlF+6omplvo+wf3rOYAkMUfbadiKnOiPAEA/DenR+6O2V/3qUCgPyvN
+Qc0zaS3fI/+gLGkzv69nl6R3sv1Q2HbX7pyK9qUgNJN+N2/qY1eu/UPZA6D+16mbzU5T3Jz6JnUo
+fy04JFn/lxMROZebu9UdnXqF0r3pdtoU3uO9LXe6Ae6fu9HdXF2zdFO59m/9KVVHp8nRCrrZJ06Z
+BOA4sS/Y0eGxx6Grsxfg/rkbvdzfTtU1GdNms7nqjn/dArOTBlAqitIfy2gGwSAo0nJ1JstTU8/4
+7NgRbLiPEgQBMOjqMJjKWdnMXH3w4Pe7UwWy7VsL6Y6TDJ/3K+vr6+svyepPHNzM3B3oo3vmvra4
+mhPaf5rMi9nxPrc41G3ha5t2lcsf/c4o3xWTUuuZvqNvfBjdOpFVn6H4YUG8IefDW72/vv5Mxe5I
+Kn1p4PaBCzQEi9m/XZgcFlizQbV6AEClAm3vju5PpRrDYzH70a26oarbHhpTH1ly8eK1Syeyw8iP
+AiO1w9XowgcMd1eyqTys4JyDH7OLI92Yzn6J9UHvb/ZksJjGD8KPLCt3h+EsLwGgqs3OoWIO1t9q
+v7R/tXJ7ZGJh/70gU9va8nYBAABSVp69aVXgwnluQR/JVO3t5BDKb8Vy0dYBGvapMyNrNNXAEXXk
+yBFfX19rYs6fP//vf/+7cThFUVeuXKGba/LkyUuWLCkpKZkyZYp+eHNzs/7PqKgobb8OAFxdXSMj
+I81E1ieRSB48eHD69Gm1Wr1q1SqhUNjT0/O3v/1t8eLF33//vfHLP7Sv9QeApUuXpqWl6Z4x8/Ly
+0vbrSkpKVq9ebTHfccOmZaSLPHHixF27du3fv9/byIwZM0aopHZB1/iYb8RG+oA7HDRN0yhqPC1g
+eKRU1tfXl6R4MNhhO/Zs1naVZdX17Zeylzr1C9ytIEkTAyJMHdSAF5nk35yfXwcAsuLCZv+YoIfc
+s7P7d+2m/HZW4OPn8vec/LLbYZrz9C0J/N8BAEDreclbhfe8Q/lbQubxulvWf0hzbVXd2wXw2CRt
+6+fw3CsB3yxhjEzJzCy5pZVCAEFYef2BUlEEx2J1JotzCpuVsGpGX7dXpVJt9XAufP/kyUg+G2qV
+CgAeAAAoZQrgRhrfL3RL3LPDnwWwOn1NdmBqenVYjr/JTJlsDocDABwOb/O3jLoZkTkV6cFRLKgr
+PsGJTNJVPpZgc+WlmNri/dnbYzzS/fac+D6KZ83S2gNZvSk0Rea358za/iJwadbJ8A+CBIvDZ3H4
+nwpYyhmr0ovXlESZalatvybeA6B+8AAePDAXacKEcdC1s3LVWat6d7YybP9aHgBwBGu/LVEt9Ujf
+Xbf6Y5ImfOAVg8PelWwqjyewBEnfX0zSxqLK41NZfE+7tuHW7w7MYSwvm89leIZlbw7mAQD4J20O
++ii+og6i/AHA1Laus7hdAEBRuMovUeaXnp7z/h4+VRjoljqk8lteLvo6YHo8g33qzMgaPTXQDrSf
+NxhatHv37oWFhUkkErrvy507d+7pp582/r6c7s6YlsGzXgY/DSLrU6vVK1as+PXXXwFALBZHRUVp
+w5ubm+fOnWum17p3797f/OY3Li4u69ev9/DwKCsr0/brXn/9dTNPlI0/ZtatTZEdHBxCQkK0/+7t
+7d20adO333775JNPpqWlxcbGDreU9kLX+Bxdc8JsIzayB9zhoGua6Br2UYjgcnk8Dm9zetT+yNTd
+m4P7jxMMnx2XTq4115zSHNQAOGFrglJT8mvfTzpT3Pzw79nZetduPkNAN+n3kwNNBbeev1zJ/t3+
+rQFlH/h9u35uEFt7D+1BZZXyscVef1ryX7zJEwFoH6BV3fj1X52Puz3jCPDE756By+eVrTYV2LQn
+fvcMNDfc0SXVeuXXZpjyO2fzk/Sw2Syl3JpRw5RSQXHYFqszK2r/JZmsvk/JGjeGR1LlmYNr+MDz
+8ePIKk703YeT155o5vr4G9USBovPJQAACMH7H4dR+SlWvQ13oIsiq6ggDG93ERxB1OZvf6pMYlZs
+P/ioXq5LybIjI3cTSQe/1XujA9064XpyQVY78GSj2Xe7GyL1b8URTBZhw805Wj350PUNpTpg7q/r
+G6onf7gZPVJ2WHUURQE18HwBh80Gqp2kDx8w3F3JtvIMQlbsr4Age349xKbdYTjLy/EP4suq6/uX
+kKIo7TVYum1tzfqRH8wuZqz5ds/aYD6L0HtW3dbyW14u+jpgmn3qzMgaJTXQDsLCwmprrfpE0Pnz
+51955RX9kPv377/yyiunTp26f/8+3Vyurq4mvxvO5XL1f37//fdXr17V/ruxsdHg9qD5Oz8VFRXa
+0ZhXrlw52O/GjRsBAQEvvvgiXb5vvfXWgwcP4uLiDhw4QNevMyjkuGTTMlp5C+7EiRN//etfv/zy
+y9/97nc//fTTUIv2ENA1PgvpGzG7nKsMHV3TNHoaT2uxglNTPWXbU7Tj3vgCD6g7WGx2rDjdQQ0A
+WEFrwqBkf3FJscwv5hE8DGlb12418y36SfEmw7t77ylbzytVrXfVHQ/U/SfbE590hNbm2/9qVbX+
+ovzyu6v/0v9gTeev+Ydu/kv5QH752kffXe9wd41+FgAc/V/iuchlmw/dvHRX3dF6t+KYvEZ7N2QS
+gFrVetf6ex+O/i/xXK40pBb/Km99cKlelnr4jov/LP/J5ifp4Qv45CWZ7sCqVnfcVbV2dqsAuu6q
+Wu+qO/oHispqZSw3vuXNSrA4PB0OhwCCw+ZxWAAgWJvkWZ2auKtOoajblZIu89+cZPYxL1ZY+uaB
+2mlI1U6SJEkq5HXF2atSiomwNUEsAHlFMej17Kja7a+tyi6XkRRF1tXWKwku99Fca5EXrgpMkfnt
+2LOGrZDL5XK5XEFSQLtOOGFJQURJSkx2tUwury3eumb7GROdO4okFQpFezsFQCkVCgVJUgBkYbyH
+x2vbi2tlcrmsOj8+JZ8SRA7/FnpvL1AUpaI6zfxRFDUmvmkHtq86k/EB5LsCnZ0D+75xYzqOf0wU
+UZySUiwjASh5ecr2Ck5YpIA+XC9N23elYZSHqtuVmLirWiaX1RVvj0ms8ExPNX27fCTYuDvQNx1W
+bBd+zGa/MymJ+XUKkpQVp35UwY2M8aTf1lZsFyCYBCjPVNTKFYq64q1rdtT275y2lt/ydqSvA6aX
+fXh1ZlD9Gdrrf/UhAAAgAElEQVSWHSM10C7mz5/v4uJiTUwXF5f58+frh0RGRuo+SG3xVZleXl76
+87700kv6P0mS9PX1ffvtt99+++1FixbpP2gHAIGBJq9cW1BVVfXDDz8YBOryra6ufvnll+/duxcR
+ETF16lSRSPTGG28Y3K8LCgoaQr5ji8GGaG1tNfOTbkOEhYW9+uqrAPDyyy+vXbu2pqaGyWS2tLRE
+R0dnZWWNdJFHEl3jQxdup3OVoaNt/G09dx0FeKvTV7MqUtNrKQBW2OYkbm1q5KbCOgVJyusKt2f3
+Pb9EAFBKpYIyc1ADAMI/KZJRmPhRnd/qR/GaG9u6di9ODl7PSjYOX89KXsgwOfBg2rxnvDuu//Ev
+Py5//9hL/+8xvw2VUXm/yIERGPXcos7G9Z9UrSpUurz03Ar922LcZ6PZtzOyT67MvXzzmd/ujH1W
+++Qbg8ffmTTnafml9R8eW779/GElPNatDXfxd7rz50Klia8U0GDw+DsT5kyT1sf8X/Vbhb9OC1mw
+M4zFsDRpAMsv1LOuon+Ac8f58y+9/+PyTxr+3d119Osfl7//Y+pFbT9TfuJMu1/Q8C6i8pMOHoxp
+3xHo5haYrUo6uHu1pZ2Yt2bHGlZFanq18dtWzqR4sNlsNpvrEZhSSER+e2JPGAtAXlJMBgUN7HQE
+PyiMVZESOIPJnBGaDWv25zySe/1UcUp8iRKUJUk+/H4+qXUAtOuEFbanMtuP3B7q4eETnw8pO9YY
+Xw4kCyPZXC7XI+WMSrk/ksvlzogppoAVtedgCqdia+RCPn9hZLrMc0fJQd2It6Hr6nbs6JxI9f6X
+esIz3RNdux3duh+b2/PYc92Ov+2eNFvtMEOl4dyjHLu6HS2n9ejZuupMx9fqv4xOE4fw31Gxx695
+a+AMJydnv5Rmv28rdvgT9OGD0qRlZlcaanm4fD65O2Yhf2FgSjE7vfKg7sMjI8723YEu3JrtApyo
+b0tSiN2RbjNmBG5tDvq25GMBQb+trdkunKicnCBye6CHm09iMTcle41b/6LZWH5rtiMdc8tukpV5
+Wax7Fo3+Gmgnn332mVwuj4mJMR8tJiZGLpd/+umn+oE2jeUzEBwcPHv2bP2Q9vb2r7/++uuvvzbo
+182ZM2doXbuff/5Z++F1unxPnToVFhZ27949kUgUFRWlUg26FjlnzhyDbs+4ZLAhnn76af0O+dNP
+P62bZGZDvPDCC8eOHWtqavrhhx+WLVt2586d7u7uixcvJiYmpqen230ZHiI7nasMHX3jb/O566NH
++KemBpH5KflyAELwcWXl+9wzqYFu7Bk+kbtlQFAAAIRPVBinOjGxmDRzUAMA4K9Zy22HoEfSs4MJ
+Vg5z17+Y9JNKnHPnM+17U+YzBIlT36Pp1wGo/rGzptLD5/Ml2ttePa2XG9bn3vH/o987o3PMrdUU
++YF+FSn13wabO6TLs5cGydLraZ57Gy0UuwIDZekXP6Uda4uG5MGDB+cOuk6Y4Dj5cYdJE02fgnT3
+aB509mo06vmRVydPnmwyDkIIjW9z584180kAAHB1dW1oaDAIvH///ooVK7Q37gz6RdYQiUQrVqww
+/0W1iRMnHjlyxGSP4qOPPjLfbXjttdeys7MNXvlonO+MGTNaWloMPmFnJt/xZ5gbAgCam5v5fH54
+ePiPP/54/fr1Tz755LvvvmtsbIyOju7o6Dh69Kh9Co4QPbJ4lUcisfvSHrPdhMcee8wemQ/lNSoL
+Gb6mvnNgiurSHVVHa2erevI0RwC16tLFu61O030Nm7qxhxOV4peeU6gIpr8QQdVm76LWfD+6+3UA
+ZEWJwj8F+3UjbuLEie7LL1pzwsFgMCZOnGgxGkIIjT/d3d0kSc6aNWvx4sXGH7iLiYk5ffp0e3t7
+d3f3pEmDzlieeOKJQ4cOaV+jMoR8Q0JCPv30002bNtF1KhwcHD799FO67oTFc7Knn37auF9nnK/u
+nZlW5jv+DHNDAACXy12wYEFRUdGqVasIguDxeDdv3qyrq5PJZJ6eY+vhUzT2UaRCIatITSnmbv7J
+bL/OfoZy184WHb9cyzwsr7mh6prk8Jgjw232s6tDefOdLM84+snzE3dz0z+m/aaILD+xmJu++VF/
+c8QCsvA1n4o19eavK6Ah6O3tVavVPT2WnwGdOHGio6Oj7i3YCCH0H0ij0cycObOlpUUgEABAbW2t
+i4tLU1OT+YGXFEXdvHnT1dV1aJmWl5e/9957xp9PmD17dmZmppmn3RobG2NjYw0eBtNxcnLas2fP
+vHnzRjzf8WqYKyQzM1MoFBYXFwcHB5Mk6efnJ5PJpk+ffuTIkQULFtit1AgZIgtfc4upYPmt2bH/
+U4vvxrTTXTt7d+0QQgghhCzbuHHj+fPnjxw5AgDh4eHe3t6ZmZn2zlStVldWVlZWVmo/m8blcgMD
+AwMDAx0d7fsU9KPKd9QawRXS29urVCqnTZtmp1NnhEYEdu0QQgghhBBCaMyzU9cOx4AhhBBCCCGE
+0JiHXTuEEEIIIYQQGvOwa4cQQgghhBBCY561Hz/45Zdf7FoOhBBCCCGEEPpPMORX+5pn7WtUEEII
+IYQQQgiNWjggEyGEEEIIIYTGPOzaIYQQQgghhNCYh107hBBCCCGEEBrzsGuHEEIIIYQQQmMedu0Q
+QgghhBBCaMzDrh1CCCGEEEIIjXnWftfuP5iiSFjAEiYHsGimywuEIl5agi/xUEuFEEIIjSuJiYnn
+zp0rKysDgGXLli1YsCA7O9vemXZ1dYlEovLy8mvXrgEAl8sNCgpatmyZo6OjmbnUavW+fftaW1tN
+TnVycnrzzTcJwtx5wdDyHcdwhSA0MjT2Rf0k9tl47p92zsWO2XUeX8f3z2zS/ui+Ibv+dV71i4ll
+6Y2DYgj6Ywxdy/HMWAGXyQAGmx+8paxlIP2GA+v8uUwGg8H2XJlZ02Y4Y80GLkOwUxe/s2YDn8GN
+LWvTaJp2+jOZwXub+qPpNjqDyRWEbykzLHPb3mD+uprhLsgIajmeubJvnXiu3Km36J1Nxw9sixWw
+GWz98nYeCGcwY8uGmCayyPRq12hayrYE85kMBpPrv+5AQ6fFcD1NmZ76zREj/HBfNEvV3lwcunJa
+syx92g6vZAPo79ctZRv8uUwGg8kP3nK8xcQsCKEhoihKo9H09vZyOBwAWLRo0aJFiwCAw+H09vbq
+IgzB5cuXOztNtj19jh49OmvWLONTo1mzZpWWlpqZMTc31/zJ1SeffGKPfMer//gVYnzQMR1Oe674
+qNAerMfAQVP/xBgYbL5/rKWzQqvOMx85HJBpnqIoQ+SVHMfT/rp36oT8tFKt6taPQgQkx1G5WeJh
+5UOKkqOzFBG5YnmLJC+CzI0IyZJqp4iFEQkS3wIpRSmqEsiMiGQRZa68BXERuURyQW4IC4DlHhIR
+EeKuu93IEGQ2dHZ2drZJq7J8FbkRERnSwWUokvpGew1rOUaSRBgSkUckFEjkTeIsL0lyREIR2TdJ
+KsrNFUlJSjWCaY603t7en2c/r/2T09BF6O3ttVMxRpLp1S7Niogu4qRVyeXiXC9JQkCCiDQbPggp
+Jxn+mQ1NfaS5Idqr3NZUe9o41lQPs3GoKmGyiGIOXsgI7cJUJRN5EdG5cjNpI4Ss193d7eLiMnv2
+7Li4OIVCAQA1NTU1NTUAoFAo4uLiZs+e/fTTT3d3d1tKyQRPT8/AwMB79+6ZnJqTkxMaGtrY2Gg8
+qbGx8eWXX/7yyy/pUm5paWEymYWFhd7e3oGBgbm5ud7e3kePHj116lRKSgoA3Lx5k27e4eQ7LuEK
+MT7omA6nP1d8VOgOxGPloMkQZDa0tbW1tbVICoQ8cXJIdJ7iUZdp+IbQHazoKH3j2itzZJw5Ms4b
+114RPzhFH3eM37Vr2evPXnl48CU/svmtQXftNBpNwzZP7rrjw8uqs02XTWdZLJPhr70R17DNk+G/
+t/96x/F1bO4Gg5sMA3ftOhsyBQO36TR00fR+618f6jy8khtbZu7y5sPW1tQ0cCPmcDiTuXJQ8Vr2
++tt+185CmiOIoqiLs7y6vsrr+iqPLo526sVZXkO+Jv3wGa72mg1cRvCB/pV6YQu/r1rRhQ92PJbN
+jD1uFGy52luMY1Q9rFgWrc6aLXym/5YNgoES16zjMoL39i1My05/Bn/LBbMpI4SsN3v2bPMnKq6u
+rkNLWTv74sWL7969azDp6NGjDg4Wrm47ODiUlZk+pnzwwQcAcP369Y0bN+bk5Bw5ciQ+Pr60tHT9
++vUajWbmzJnOzs75+fnGMw4z3/EHV4ipgw5tOM254qNCdyAeGwdNwxPjzsMrGYzwA2bOCsfpXTuh
+Ivmdm38403la+/NM5+mY669+0brDurk7LjUK/1KxNOmIYMsJ4Q93OvrDVWdrBX+5dPbflzZ+LFqa
+VPLSx+dFAwPYqVOHa1duPSpYf+T5vr9/HmwHAOi43vSnz7SpHd9Yfvu2QWYPOkSHz67eelSwvmRp
+Ws0Xl9QAAIpLK5N++OK6NkbP8T1Hn996sb5vhtt/2nJUKOkZSIGsKpK4h1h+is49IACqRBLr1gEN
+gjWQDUXpfnM4HJCKxNr7HaRCQbF4HNMJkFXJEUJFREFB/z1GoAoiCFacyEyeeg8CUFUFYt+IAG2A
+QpQc4s4iJhAs95CEAqm5+4R2xOLxdHccCRYLKMqaO2yUODfOi0MQBMcrrkBubZpUQQThm1FVJAxx
+ZxEEwQvIECvkImGEO4cgWLyQLLHN66Cnp6d3woQeycWemrN9QffuQX4+5OdD/yXknpqzPZKLvRMm
+9PT00CY0ulEKuYLjrlupXhEhHIlITNKGG8xNkiSHY/wYqzXV3vpdwzbSrORcIiErjjewyeVVYoV7
+SP/jthxfX55cLB4HF/YQGh2WLFliPsLSpUuNA5977rkJlmhjnj59+tVXX9WfV61Wv/vuuxaHS/T2
+9r7zzjtdXV10EWpqaubNm7dw4cKTJ0/u2bNn+fLlP/74IwBMmjTp1q1bxjfuurq6zOfr7Ow8adKk
+3t7ed999V61Wmy/eODBSG2JMM3HQoQ+nOVd8VGgOxGP2oKm3qklxVrQXh5hAsHgBpk+ESWmBMNqX
+13eyLKwiAYASxXGIAL07f9IML8I3S273kuuzrWtXea/s0N2/GYfntH5a29/Zo6e6fik+W3p7zrw9
+aS/s/p/pt4+eij/cPjAeqkn2p5OOb24MOfmZXxjc+PiwUjvp5omz74nhjaSg2p3Bu4OeevJZ18/+
+1zuECXD90jt/+ZeM4/7l1sCCt2bNhB6GQXaKlqq7T735lt/RdL+tMx989/XFs2oADnuB04OzTQ8A
+AKDtdNPEad23z2q3wfVbFx9MXew2cSAJuVjK8nK34nzR3dddIZGMyNA+UlKQIBRx4oQhLAAAVnRG
+hrso2iskOa8oL0EoCUnT9dz0UdK86IivZKyAONrXvehTiLOEeWRAXIRu2Shxgdirr2dHFiREF0Cy
+WNGpkORG8ABGwRtiJCIx5e7rZbEk7QUJyWLfLJGkKjeA3JcgNDd81TDN2rSEAvcMMUlJc70k/2+I
+V0QuRyhWUPJcX4kwYSiDHno1GlB1QVd/JS8thV27YNcuKC3tC+lSgaqrt//S8lhEsFgEqVD0r2YK
+gACFnKQNH4wiKVAUxbmzCILD843O6u/7WVPtrdw1bCTPTcgg43LTvPRbeLlcATyObmfhuXNALh0L
+RymERrmkpCQXF5d9+/aZj7Zv3z4XF5d33313pPItKyszGP7HYrHWrl27du1aJnPQsLirV69WVFTQ
+pXP69Glvb28PD48TJ05oQz744IOSkpLLly8nJiZu2bLFIL5IJDI57FDL29u7oaHhwIEDAHD58uXy
+8nJbl2vMMdgQra2t+jcfbutdsje/IcYwkwcdM+F9DM4VHxWaA/FYPGiS0qLkNBERoD0TlmQEROSx
+hCJ5m0KSFyJNDhEaXeGnpEVFCl9hgVjeJM71lWdFJ1dRQIQkR/PEubobC9KiAqlvXDTvoS6KbV27
+vLbddJO+uG3pxp369NHL8pnzMla48KdN8fCamxH5lPyk9PiD/umPu2x9a6bHZABHZuiCJ7uU7drL
+XU1N7Y/N4YVxHAGIBX7PzFS033aaPAXUx49elv1mbubrMzw4k2e6zXg3mD1lcH4MV7eM2Fm/d50y
+fRoz5GUe70HbaQUAPPl7N0fZz3c6AOD6rXrmjNfnqE43UQBwu+nOzd84L5isl4RCoeBYdSeAxeER
+2ocEhkOeG8Ka8NTz/yPiZRRl9XfRCI6XrxePkBckrHiziJNgci9WybOiE8Re4f5QkGymC6KqTXZn
+sVgsYoLLoo0SL2HaQM8OxAVi94i+tEmFgiJ47hwWweIFJAij3Ye5XMOnyBPmKkKEcZZLwgjJEuUl
+BHi5+8YJo/mUVCK3Pk1mRFZenBcLgBcdHcCgvIQFyb4sAE5EXABIxUO4d9kDAKoujaoLqqrg9deh
+qAgoCigKiorg9dehqkqj6gJV11i9YaflFR1CFGWkVSkoSiHJjUvIk6sAKPrwQVgBCRlpGQVikiKr
+srykQt0od2uqvTVxbKQoSE6TR2SlGdyppygKQO8WN0FogxBCw3P+/HkrD50KheL8+fP6If/+978t
+DkzSxlyyZMnf//53/XkNek0sFuv8+fNfffXVV199df78eYPenZku1qlTpzw9PXt6ei5cuAAA27Zt
+mzt3blxcHADcunXrzp07BvHNJOXt7V1ZWTl16lTdzcb/hK6dwTJOnTpV/+e0adPMRB4XaA46tOEA
+NOeKj4rpA/HYOWiqatfzCIIgJkx46rdxVby0ooI4DgBZlJZBxeXlRntxWCxegDAjGoryDIfmEb7C
+grzkCF93Ds8rOi3BnRSLpADglZzgLskr0J6La3t2EdZ0JEaQbV27nzprhjCpT8fZ672856ZP7/89
+3c2Fp26/ONCoO0D/C24ZkyaCult7593DczrjsrxY0QOgrj9xo8mJyWf2p+bp/LT5LBXK7w6ejf/4
+h+WfSeXd6o5OAJg4z/Opx5puyQBuNt3pmMkJcXtSVtemgp6LP7c/PXO6foIURVHmX16sQxAERQ63
+2vLiCqQNF47vjabSfAMytBcIJBkh0ZJokVSqkNfsjCDTAiLy5MZzKptZcUVFRXlpvv9/e/cb5LR5
+5wH85yxEgjRntc3UglyygoaskkyyTgusQlPWNC1r0uQwfQFOppN1OpeL2mmCc7k5lPZmzrn2Js71
+bjAkN+tMXmBu2mJg5jC0AZHhirg2IO7CxIQ2kRtgtZOS1TbLIZfsImGI74V3F++ubZa/Xm+/n9kX
+tvRIj1aSLf38PHp+RlxJV7tOMm0xzTAMw+x+/8A2hUsG/CMjW+gZjR+O7EiIJGJCJij4Q9Gkatb/
+w2gmw1HdH0+EJ/DhYDlu+HuO4zmqelAqrpMdbp9kObbsW4ll2RprquE8FYuFs+SeJdumd9+ld98d
+Cu1Kr22b3LPFwtnz1MCtdsQFk5k4nwkJMzhJzgZjip/hOK769NGEUDQaEjkiVgwl4mFWS2Usmthp
+P7GPxqWwVUXRpURiXIzIsmyp60uJ4zg0wS+Gq8bJRHiuhI9k6v+hBLgqdu7cWRoM86Lmz5+/Y8eO
+8dMdxzl69Gi1pWbOnPnggw+qqnrzzaN+/O3p6Sl/Gw6H58yZU3o9d+7cVatW1ShcLpvNDg4O7t+/
+v1AofPvb31YU5fz585s3b160aNGWLVteffXVMeVLw/oT0eLFi3/0ox+NPGN2//33l+K67du3P/74
+4xetd8q4pP9x6u2QahedqhcjIqp8r1gvVS7Ek+CiOUFM6xrNMAx1TSvjCyVSSilUNrRsPpeQ2GGB
+pGXblUaCM9RENBzwi0IgZrhDRYRwNGCmUlkiMjJpMxAJXufI7rrntZt4fcN9zG++Z17HjP/ZkPyv
+9YWmz/Nf+OEzd993oVBTxUVL+t9++4mfn54fuvuH37x/TuHEX//De6XpzJxZLYMf7P+wcOd7n9z3
+Ve/sz39h9ht/PFKYvr+76d6vfaZ8DSyx7AR/Z3Ach+Wv+LRlOV7082JC5Sw+HMvIajibTFihtCwQ
+ES/JadWRxFgyG4mPGceyZXUqEeCIInE5EVBiWigZqLgxHF8aW5rnBSXNZvlQQo0HwxxlMxofjo6c
+fJykaGZEz6QS8bAYC6T0zHVuTC5ja9Fg1AiksvLlbELlg3dl65y488Vi4YxDZ85MW7yYmpvp/fcv
+zLvrLlq8uPDqRvLQ+UbukElEnBTNGNHSa0eNKJzo52tNr4YVRJ502yYyJnDaaxP7aFwCO5NI9/RR
+ePiD7LquInLpmK6HRZ50yyISiIjIMiwSJtJR+ypiQwnDiDtEROxV+KoBmDSKE/sCrFjsk08+WbZs
+2TvvvFNtDMwjR47Mnj17/E3lSMtYyZhnvca8HVO4XKFQWLFixccff0xEuq6vXLmyNL2np+eee+5Z
+tGhRtQV/+tOf3nbbbbNnz37qqadaW1v37NlTiutWrlw5VZ8oq6jGvr3Cwo2g2kXnTVmrcjFSRKJK
+94r1arqrdiEW6n/RnChWEASBF5R4OBVSkkpQGerKxbQlTF2utc1WOizJRiAeT8YCopMOCMrQDD4k
+B5VoSo9F9YwpRa93m92lttotmFH117WHPtNxkYVvvvc2Mt+70HO6//d/NMl778X+5f63c7v51nRs
+6Z5/fmjzM/cG+aahtfFk/q5v7NApFwzu/lUv89X5/7TYN2dmU6lv3BDvLUtuG3y3u3f/h95Fc5qI
+v+W+af37f/d/ucJnF/3l6FiR5znLnEhfEceyHJ6/kqNnlzcKsRzHlpqJHMch50KAwvM8OeN/OWA4
+UWCJiFgpFg85qVq9Mss2euSVoapsKCiMmsvyUlhJZ7Uop8bT9Rpc1zESoVCSjWbSE2mxq986qzhP
+dPaM4zqOe+ON7uuvu47jzpnjzpnjOo77+uvujTe6jnP2jNPYHTJHsdWUSsHxGTSqTrfKTmZb1wwS
+BX5ip/3EPhqXggunze5uY4gqtzCtUS2bkUUSpABvqNrQV4Gpa6YgBa73lzXH8SXj2z4BGtWyZct0
+fUKpgw4dOvToo4+WTxkYGHj00Ud/85vfDAwMVFtq7ty5FRsLmpuby99u2bLl+PHjpdfHjh3bunVr
++dzbb7+9xoa9+eabpd6YR48e3TrsxIkTS5Ys+frXv16t3ieeeGJwcPA73/nO1q1bq8V1YzZySrqk
+/7H2gWhA1S46C6tejKrdK9ZLtQvxpLhoXhIuGIv5jXi01O9NlPyUTWdq3v+b6USGldMpOShy7OiW
+BC4ohyiTymQyRiBSh4chLy20i3z2qeqz/qbi9GlEBfdk/jzR9CVLvzj790eUbX3dJwdz2feUrf2z
+vzZvycyKi5UpnD9t9b9tOf35wunBwvCIFNOXfFOY3f3e3279Q+6k89GHf1j/82PvFsqru+HmadTf
+/cd3Tzr9H/au/48PjlzIiTNz/ryZuV8fO+ItPVnnDcwpvPXmie6/HP2gHRGJkmgbxsjtYqFwOu/0
+nymcJXL/5PTnC6eHmxYN3eBE8fIPn52OiGIontEN0zS0VCSacqRwkCcKRMJsJhrNGDaRY6rRuMqH
+wlKNNXGhuHLh7BzLsW3btm3LzGYS4WiGDclBjshUM1QW2Tl6PBROqIbtOHZWz1qscHVGHrxkZjoc
+eM4IJFIyb5XywFmlrzDHti3Lsm2HyLGGX13hOq+FT4tFx3Fcx3Fd12UY98gR9/nn3eefd48ccRnG
+dV3XcRzHaZRhVCrvdieblOWkZphGNhMPy6o/HguwNaaTmQxwXCBpElmpsF8KxTNZ0zSzGSWkaIKs
+hLgap/2FZWt8NKqcHmXLVinDcrwwgudZYnle4DkikuSoX1PkZNaysslozAgo0fo/gQrQ+BYsWDBr
+1qyJlJw1a9aCBQvKp4RCIU3TSq8vOlTmPffcU77s0qVLy9/atv2lL32pNIzKl7/85Xw+Xz63o+Ni
+v1xXsnfv3j179oyZOFKvpmkdHR2ffPLJt771rc997nM7d+5ctWrVmPa6YDB4GfU2ljEH4uTJkzXe
+Xt6BmMyqXXSqTa96r1gvVS/EDXjRFCLxCLdbiekOERdSooKuhKLprGXbZjYdTww9v8SWbhqGxia1
+dFU3LSubUSJxvSxNLhuIhtm0HMvWJbK79Lx26/p/UspoV/63rv8n1crbH675wY6FXR+WUsp8nDu6
+5se7FsqZhX//qzV7Pv54uNSYfHQn9uxb+IPfGUNr6PneczsWfj/jl0t/vwy93nO8tLbf5qLDa4uq
+1sejq3N6e9b8eNfC7+946OVDW3LWv/zjrh/nhivIZR+SM8u22KV3f9q/f6GcWamOTXtTLPZ2tftG
+Ep/9af+vh7eh9Lfje/97rlgsFovda9t8V5gS7tSBrqfbW3wMEeNtbuvsOjCcEOxM97bVHS0+hmEY
+X0vH6m3dY6sZm5ejeObA6mZqfnrvmVH5Nw6sLvttjPE2t61aM7Su7rXtoxOOnHpnw9MdpW3xtXSs
+2VWfpClnti1nxp6tpRxkpza0j57MdGw6UxyXb6R7bRvTPDqTSvV1jll21yqGWT6S0HBvp+9CgpaJ
+GhgY2HNH6/tfXXb0ob/q7e21SnS9T9dLL3t7e48tXWG0P7znjtaBgYHL3U/XTbXdfmrv2lWtPqZ0
+4m54Z+T8rDa9u6vd6+vo6i4Wh097L0OMt7l1edmpVuW0L1+2Wplq2zmq3iplyrz/UuuoFEO9u9a0
+N3sZxtvS8dLeuuYRAphqOjs7a9+odHZ2jl/qG9/4Ru2lyt19993ly549e3bevHkTWfDOO+88e/bs
++NpLee1qe/HFF8csNabeBx988PTp02+88QbDjL00Vat3irnyAzF1jL3oVJxe9V6xXqrfozbARXPs
+/XPvhg4v0zZ0i9F7YO2qtubS/Ul759qhf6F306pmhlm+6VSxeOb9DatafQzD+No6u/buWt3iK09w
+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
+AElFTkSuQmCC
+"
+ id="image10"
+ x="0"
+ y="0" />
+ <ellipse
+ id="path3682"
+ cx="162.90384"
+ cy="312.23074"
+ rx="188.28371"
+ ry="54.740433"
+ style="fill:none;stroke:#000000;stroke-width:1.38451993;stroke-opacity:1" />
+ <ellipse
+ style="fill:none;stroke:#000000;stroke-width:1.59566104;stroke-opacity:1"
+ id="path4489"
+ cx="160.53606"
+ cy="187.21155"
+ rx="184.86324"
+ ry="30.009861" />
+ <ellipse
+ style="fill:none;stroke:#000000;stroke-width:1.02960992;stroke-opacity:1"
+ id="path4491"
+ cx="161.95673"
+ cy="120.91346"
+ rx="172.36018"
+ ry="15.139041" />
+</svg>
diff --git a/docs/source/images/bwauth_measured_7days.png b/docs/source/images/bwauth_measured_7days.png
new file mode 100644
index 0000000..1568ac6
Binary files /dev/null and b/docs/source/images/bwauth_measured_7days.png differ
diff --git a/docs/source/images/bwauth_measured_90days.png b/docs/source/images/bwauth_measured_90days.png
new file mode 100644
index 0000000..347e431
Binary files /dev/null and b/docs/source/images/bwauth_measured_90days.png differ
1
0
commit 3ad41163e7c7078e89ec40829209a1e1585441ce
Author: juga0 <juga(a)riseup.net>
Date: Tue Feb 12 09:56:46 2019 +0000
docs: Add code design documentation
---
docs/source/classes_original.puml | 220 +++++++++++++
docs/source/code_design.rst | 60 ++++
docs/source/data/critical_sections.dia | Bin 0 -> 3540 bytes
docs/source/diagrams.rst | 16 -
docs/source/images/classes_original.svg | 1 +
docs/source/images/classes_sbws.svg | 246 ---------------
docs/source/images/critical_sections.svg | 516 +++++++++++++++++++++++++++++++
docs/source/images/pycallgraph.png | Bin 0 -> 381993 bytes
docs/source/images/threads.svg | 1 +
docs/source/threads.puml | 23 ++
10 files changed, 821 insertions(+), 262 deletions(-)
diff --git a/docs/source/classes_original.puml b/docs/source/classes_original.puml
new file mode 100644
index 0000000..4318db3
--- /dev/null
+++ b/docs/source/classes_original.puml
@@ -0,0 +1,220 @@
+@startuml
+
+class RelayList {
+ stem.Controller _controller
+ Lock _refresh_lock
+ int _last_refresh
+ list @p relays
+ list @p bad_exits
+ list @p exits
+ list @p non_exits
+ list @p authorities
+ bool _need_refresh()
+ _init_relays()
+ _refresh()
+ list _relays_with_flag(int flag)
+ list _relays_without_flag(int flag)
+ list exits_not_bad_can_exit_to_port(int port)
+}
+RelayList *-- Relay
+class Relay {
+ stem.RouterStatusEntryV3 _from_ns
+ stem.RelayDescriptor _from_desc
+ str @p nickname
+ str @p fingerprint
+ list @p flags
+ ExitPolicy @p exit_policy
+ str @p address
+ str @p master_key_ed25519
+ int @p observed_bandwidth
+ int @p average_bandwidth
+ int @p burst_bandwidth
+ int @p consensus_bandwidth
+ int @p consensus_bandwidth_is_unmeasured
+ obj _from_ns(attr)
+ obj _from_desc(attr)
+ bool can_exit_to_port(int port)
+ bool is_exit_not_bad_allowing_port(int port)
+}
+class RelayPrioritizer {
+ int fresh_seconds
+ ResultDump result_dump
+ RelayList relay_list
+ bool measure_authorities
+ generator best_priority()
+}
+RelayPrioritizer *-- RelayList
+RelayPrioritizer *-- ResultDump
+Result ^-- ResultError
+Result ^-- ResultSuccess
+Result -- Destination
+class Result {
+ Result.Relay _relay
+ list @p circ
+ str @p dest_url
+ str @p scanner
+ int @p time
+ str @p type
+ int @p version
+ str @p nickname
+ str @p fingerprint
+ str @p address
+ str @p master_key_ed25519
+ int @p relay_observed_bandwidth
+ int @p relay_average_bandwidth
+ int @p relay_burst_bandwidth
+ int @p consensus_bandwidth
+ int @p consensus_bandwidth_is_unmeasured
+ dict to_dict()
+ Result from_dict(dict d)
+}
+Result -- Relay
+Result *-- Result.Relay
+class Result.Relay {
+ str nickname
+ str fingerprint
+ str address
+ str master_key_ed25519
+ int observed_bandwidth
+ int average_bandwidth
+ int burst_bandwidth
+ int consensus_bandwidth
+ int consensus_bandwidth_is_unmeasured
+}
+class ResultError {
+ str @p msg
+}
+ResultError ^-- ResultErrorCircuit
+class ResultErrorCircuit {
+}
+ResultError ^-- ResultErrorStream
+class ResultSuccess {
+ list @p rtts
+ list @p downloads
+}
+ResultDump *-- Result
+ResultDump -- Relay
+class ResultDump {
+ dict data
+ int fresh_days
+ str datadir
+ Lock data_lock
+ Thread thread
+ Queue queue
+ store_result(Result result)
+ handle_result(Result result)
+ enter()
+ list results_for_relay(Relay relay)
+}
+class DestinationList {
+ list _rl
+ Destination next()
+ DestinationList @sm from_config(...)
+}
+DestinationList *-- Destination
+class Destination {
+ str @p hostname
+ int @p port
+ str @p url
+ bool @p verify
+ bool is_usable()
+ Destination @sm from_config(str conf_section,int max_dl)
+}
+V3BWHeader -- Result
+class V3BWHeader {
+ int timestamp
+ str version
+ str file_created
+ str latest_bandwidth
+ int num_lines
+ str software
+ str software_version
+ str generator_started
+ int number_eligible_relays
+ int minimum_number_eligible_relays
+ int number_consensus_relays
+ int percent_eligible_relays
+ int minimum_percent_eligible_relays
+ int @p num_lines
+
+ V3BWHeader @cm from_results(dict results)
+ add_stats(**kwargs)
+ int @sm earliest_bandwidth_from_results(dict results)
+ str @sm generator_started_from_file(dict results)
+ int @sm latest_bandwidth_from_results(dict results)
+}
+V3BWLine -- Result
+class V3BWLine {
+ int bw
+ str node_id
+ str master_key_ed25519
+ str nick
+ int rtt
+ str time
+ int success
+ int error_stream
+ int error_circ
+ int error_misc
+ int bw_median
+ int bw_mean
+ int desc_bw_avg
+ int desc_bw_bur
+ int desc_bw_obs_last
+ int desc_bw_obs_mean
+ consensus_bandwidth
+ consensus_bandwidth_is_unmeasured
+
+ int @sm bw_mean_from_results(list results)
+ int @sm bw_median_from_results(list results)
+ int @sm desc_bw_obs_last_from_results(list results)
+ int @sm desc_bw_obs_mean_from_results(list results)
+ V3BWLine @cm from_results(list results)
+ str @sm last_time_from_results(list results)
+ dict @sm result_types_from_results(list results)
+ list @sm results_away_each_other(list results)
+ list @sm results_recent_than(list results)
+}
+V3BWFile *-- V3BWHeader
+V3BWFile *-- V3BWLine
+V3BWFile -- Result
+class V3BWFile {
+ V3BWHeader header
+ list bw_lines
+ @p info_stats
+ bool @p is_min_perc
+ int @p max_bw
+ int @p mean_bw
+ int @p median_bw
+ int @p min_bw
+ int @p num
+ int @p sum_bw
+ V3BWFile @cm from_results(dict results, ...)
+ list @sm bw_kb(bw_lines)
+ list @sm bw_sbws_scale(bw_lines)
+ list @sm bw_torflow_scale(bw_lines)
+ bool @sm is_max_bw_diff_perc_reached(bw_lines)
+ (dict, bool) @sm measured_progress_stats(bw_lines)
+ int @sm read_number_consensus_relays(str consensus_path)
+ (list, list, list) to_plt()
+ list update_progress(bw_lines, ...)
+ warn_if_not_accurate_enough(bw_lines, ...)
+ tuple to_plt(...)
+ write(str output)
+}
+CircuitBuilder *-- RelayList
+CircuitBuilder -- Relay
+class CircuitBuilder {
+ set built_circuits
+ RelayList relay_list
+ list relays
+ Controller controller
+ int build_circuit()
+ void close_circuit()
+}
+CircuitBuilder ^-- GapsCircuitBuilder
+
+class State {
+ get()
+}
+
+@enduml
\ No newline at end of file
diff --git a/docs/source/code_design.rst b/docs/source/code_design.rst
new file mode 100644
index 0000000..5722447
--- /dev/null
+++ b/docs/source/code_design.rst
@@ -0,0 +1,60 @@
+Code design
+=================
+
+.. todo::
+ - Link to refactor proposal.
+ - Change this page when refactoring is implemented.
+
+UML classes diagram
+--------------------
+
+.. image:: images/classes_original.*
+ :alt: UML classes diagram
+
+`classes_original.svg <./_images/classes_original.svg>`_
+
+Packages diagram
+-----------------
+
+.. image:: ./images/packages_sbws.*
+ :alt: packages diagram
+
+`packages_sbws.svg <./_images/packages_sbws.svg>`_
+
+scanner threads
+----------------
+
+- `TorEventListener`: the thread that runs Tor and listens for events.
+- ResultDump: the thread that get the measurement results from a queue
+ every second.
+- `multiprocessing.ThreadPool` starts 3 independent threads:
+ - workers_thread
+ - tasks_thread
+ - results_thread
+- measurement threads: they execute :func:`sbws.core.scanner.measure_relay`
+ There'll be a maximum of 3 by default.
+
+.. image:: images/threads.*
+ :alt: scanner threads
+
+Critical sections
+-----------------
+
+Data types that are read or wrote from the threads.
+
+.. image:: images/critical_sections.*
+ :alt: scanner critical sections
+ :height: 400px
+ :align: center
+
+Call graph
+--------------
+
+Initialization calls to the moment where the measurement threads start.
+
+.. image:: images/pycallgraph.png
+ :alt: call graph
+ :height: 400px
+ :align: center
+
+`callgraph.png <./_images/pycallgraph.png>`_
diff --git a/docs/source/data/critical_sections.dia b/docs/source/data/critical_sections.dia
new file mode 100644
index 0000000..8f1a01b
Binary files /dev/null and b/docs/source/data/critical_sections.dia differ
diff --git a/docs/source/diagrams.rst b/docs/source/diagrams.rst
deleted file mode 100644
index ec18ed3..0000000
--- a/docs/source/diagrams.rst
+++ /dev/null
@@ -1,16 +0,0 @@
-UML diagrams
-=============
-
-Class Diagram
---------------------
-
-.. image:: ./images/classes_sbws.*
-
-`classes_sbws.svg <./_images/classes_sbws.svg>`_
-
-Packages diagram
------------------
-
-.. image:: ./images/packages_sbws.*
-
-`packages_sbws.svg <./_images/packages_sbws.svg>`_
\ No newline at end of file
diff --git a/docs/source/images/classes_original.svg b/docs/source/images/classes_original.svg
new file mode 100644
index 0000000..d894dd6
--- /dev/null
+++ b/docs/source/images/classes_original.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="1573px" preserveAspectRatio="none" style="width:1542px;height:1573px;" version="1.1" viewBox="0 0 1542 1573" width="1542px" zoomAndPan="magnify"><defs><filter height="300%" id="f17ckm9" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><!--class RelayList--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="227.2656" style="stroke: #A80036; stroke-width: 1.5;" width="258" x="1023" y="877.5"/><ellipse cx="1120.75" cy="893.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;
"/><path d="M1123.7188,899.1406 Q1123.1406,899.4375 1122.5,899.5859 Q1121.8594,899.7344 1121.1563,899.7344 Q1118.6563,899.7344 1117.3359,898.0859 Q1116.0156,896.4375 1116.0156,893.3125 Q1116.0156,890.1875 1117.3359,888.5313 Q1118.6563,886.875 1121.1563,886.875 Q1121.8594,886.875 1122.5078,887.0313 Q1123.1563,887.1875 1123.7188,887.4844 L1123.7188,890.2031 Q1123.0938,889.625 1122.5,889.3516 Q1121.9063,889.0781 1121.2813,889.0781 Q1119.9375,889.0781 1119.25,890.1484 Q1118.5625,891.2188 1118.5625,893.3125 Q1118.5625,895.4063 1119.25,896.4766 Q1119.9375,897.5469 1121.2813,897.5469 Q1121.9063,897.5469 1122.5,897.2734 Q1123.0938,897 1123.7188,896.4219 L1123.7188,899.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="54" x="1141.25" y="897.6543">RelayList</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1024" x2="1280" y1="909.5" y2="909.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="
spacingAndGlyphs" textLength="153" x="1029" y="923.7104">stem.Controller _controller</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="1029" y="936.5151">Lock _refresh_lock</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="1029" y="949.3198">int _last_refresh</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="1029" y="962.1245">list @p relays</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="1029" y="974.9292">list @p bad_exits</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="71" x="1029" y="987.7339">list @p exits</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="98" x="1029" y="1000.5386">list
@p non_exits</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="1029" y="1013.3433">list @p authorities</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1024" x2="1280" y1="1019.9375" y2="1019.9375"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="118" x="1029" y="1034.1479">bool _need_refresh()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="72" x="1029" y="1046.9526">_init_relays()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="56" x="1029" y="1059.7573">_refresh()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="165" x="1029" y="1072.562">list _relays_with_flag(int flag)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAn
dGlyphs" textLength="183" x="1029" y="1085.3667">list _relays_without_flag(int flag)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="246" x="1029" y="1098.1714">list exits_not_bad_can_exit_to_port(int port)</text><!--class Relay--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="265.6797" style="stroke: #A80036; stroke-width: 1.5;" width="273" x="980.5" y="1190"/><ellipse cx="1096.25" cy="1206" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1099.2188,1211.6406 Q1098.6406,1211.9375 1098,1212.0859 Q1097.3594,1212.2344 1096.6563,1212.2344 Q1094.1563,1212.2344 1092.8359,1210.5859 Q1091.5156,1208.9375 1091.5156,1205.8125 Q1091.5156,1202.6875 1092.8359,1201.0313 Q1094.1563,1199.375 1096.6563,1199.375 Q1097.3594,1199.375 1098.0078,1199.5313 Q1098.6563,1199.6875 1099.2188,1199.9844 L1099.2188,1202.7031 Q1098.5938,1202.125 1098,1201.8516 Q1097.4063,1201.5781 1096.7813,1201.5781 Q1095.4375
,1201.5781 1094.75,1202.6484 Q1094.0625,1203.7188 1094.0625,1205.8125 Q1094.0625,1207.9063 1094.75,1208.9766 Q1095.4375,1210.0469 1096.7813,1210.0469 Q1097.4063,1210.0469 1098,1209.7734 Q1098.5938,1209.5 1099.2188,1208.9219 L1099.2188,1211.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="33" x="1116.75" y="1210.1543">Relay</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="981.5" x2="1252.5" y1="1222" y2="1222"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="207" x="986.5" y="1236.2104">stem.RouterStatusEntryV3 _from_ns</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="986.5" y="1249.0151">stem.RelayDescriptor _from_desc</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="97" x="986.5" y="1261.8198">str @p nickname</text><text
fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="986.5" y="1274.6245">str @p fingerprint</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="72" x="986.5" y="1287.4292">list @p flags</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="137" x="986.5" y="1300.2339">ExitPolicy @p exit_policy</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="90" x="986.5" y="1313.0386">str @p address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="164" x="986.5" y="1325.8433">str @p master_key_ed25519</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="158" x="986.5" y="1338.6479">int @p observed_bandwidth</text><text fill="#000000" font-family="sans
-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="151" x="986.5" y="1351.4526">int @p average_bandwidth</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="986.5" y="1364.2573">int @p burst_bandwidth</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="167" x="986.5" y="1377.062">int @p consensus_bandwidth</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="261" x="986.5" y="1389.8667">int @p consensus_bandwidth_is_unmeasured</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="981.5" x2="1252.5" y1="1396.4609" y2="1396.4609"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="986.5" y="1410.6714">obj _from_ns(attr)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" text
Length="115" x="986.5" y="1423.4761">obj _from_desc(attr)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="169" x="986.5" y="1436.2808">bool can_exit_to_port(int port)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="245" x="986.5" y="1449.0854">bool is_exit_not_bad_allowing_port(int port)</text><!--class RelayPrioritizer--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="112.0234" style="stroke: #A80036; stroke-width: 1.5;" width="158" x="996" y="117"/><ellipse cx="1026.75" cy="133" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1029.7188,138.6406 Q1029.1406,138.9375 1028.5,139.0859 Q1027.8594,139.2344 1027.1563,139.2344 Q1024.6563,139.2344 1023.3359,137.5859 Q1022.0156,135.9375 1022.0156,132.8125 Q1022.0156,129.6875 1023.3359,128.0313 Q1024.6563,126.375 1027.1563,126.375 Q1027.8594,126.375 1028.5078,126.5313 Q1029.156
3,126.6875 1029.7188,126.9844 L1029.7188,129.7031 Q1029.0938,129.125 1028.5,128.8516 Q1027.9063,128.5781 1027.2813,128.5781 Q1025.9375,128.5781 1025.25,129.6484 Q1024.5625,130.7188 1024.5625,132.8125 Q1024.5625,134.9063 1025.25,135.9766 Q1025.9375,137.0469 1027.2813,137.0469 Q1027.9063,137.0469 1028.5,136.7734 Q1029.0938,136.5 1029.7188,135.9219 L1029.7188,138.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="1044.25" y="137.1543">RelayPrioritizer</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="997" x2="1153" y1="149" y2="149"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="1002" y="163.2104">int fresh_seconds</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="143" x="1002" y="176.0151">ResultDump result_dump</text><text fill="#000000" font-family="sans-serif" font-size="11" l
engthAdjust="spacingAndGlyphs" textLength="105" x="1002" y="188.8198">RelayList relay_list</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="146" x="1002" y="201.6245">bool measure_authorities</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="997" x2="1153" y1="208.2188" y2="208.2188"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="139" x="1002" y="222.4292">generator best_priority()</text><!--class ResultDump--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="176.0469" style="stroke: #A80036; stroke-width: 1.5;" width="199" x="899.5" y="507"/><ellipse cx="957.25" cy="523" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M960.2188,528.6406 Q959.6406,528.9375 959,529.0859 Q958.3594,529.2344 957.6563,529.2344 Q955.1563,529.2344 953.8359,527.5859 Q952.5156,525.9375 952.5156,522.8125 Q952.5156,519.6875 953.8359,518.0313 Q
955.1563,516.375 957.6563,516.375 Q958.3594,516.375 959.0078,516.5313 Q959.6563,516.6875 960.2188,516.9844 L960.2188,519.7031 Q959.5938,519.125 959,518.8516 Q958.4063,518.5781 957.7813,518.5781 Q956.4375,518.5781 955.75,519.6484 Q955.0625,520.7188 955.0625,522.8125 Q955.0625,524.9063 955.75,525.9766 Q956.4375,527.0469 957.7813,527.0469 Q958.4063,527.0469 959,526.7734 Q959.5938,526.5 960.2188,525.9219 L960.2188,528.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="977.75" y="527.1543">ResultDump</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="900.5" x2="1097.5" y1="539" y2="539"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="49" x="905.5" y="553.2104">dict data</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="81" x="905.5" y="566.0151">int fresh_days</text><text fill="#000000" font-
family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="60" x="905.5" y="578.8198">str datadir</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="905.5" y="591.6245">Lock data_lock</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="81" x="905.5" y="604.4292">Thread thread</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="76" x="905.5" y="617.2339">Queue queue</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="900.5" x2="1097.5" y1="623.8281" y2="623.8281"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="905.5" y="638.0386">store_result(Result result)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="157" x="905.5" y="650.8433">handle_result(Re
sult result)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="38" x="905.5" y="663.6479">enter()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="187" x="905.5" y="676.4526">list results_for_relay(Relay relay)</text><!--class Result--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="278.4844" style="stroke: #A80036; stroke-width: 1.5;" width="273" x="564.5" y="852"/><ellipse cx="677.25" cy="868" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M680.2188,873.6406 Q679.6406,873.9375 679,874.0859 Q678.3594,874.2344 677.6563,874.2344 Q675.1563,874.2344 673.8359,872.5859 Q672.5156,870.9375 672.5156,867.8125 Q672.5156,864.6875 673.8359,863.0313 Q675.1563,861.375 677.6563,861.375 Q678.3594,861.375 679.0078,861.5313 Q679.6563,861.6875 680.2188,861.9844 L680.2188,864.7031 Q679.5938,864.125 679,863.8516 Q678.4063,863.5781 677.7813,8
63.5781 Q676.4375,863.5781 675.75,864.6484 Q675.0625,865.7188 675.0625,867.8125 Q675.0625,869.9063 675.75,870.9766 Q676.4375,872.0469 677.7813,872.0469 Q678.4063,872.0469 679,871.7734 Q679.5938,871.5 680.2188,870.9219 L680.2188,873.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="39" x="697.75" y="872.1543">Result</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="565.5" x2="836.5" y1="884" y2="884"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="107" x="570.5" y="898.2104">Result.Relay _relay</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="64" x="570.5" y="911.0151">list @p circ</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="89" x="570.5" y="923.8198">str @p dest_url</text><text fill="#000000" font-family="sans-serif" font-siz
e="11" lengthAdjust="spacingAndGlyphs" textLength="89" x="570.5" y="936.6245">str @p scanner</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="66" x="570.5" y="949.4292">int @p time</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="67" x="570.5" y="962.2339">str @p type</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="83" x="570.5" y="975.0386">int @p version</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="97" x="570.5" y="987.8433">str @p nickname</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="102" x="570.5" y="1000.6479">str @p fingerprint</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="90" x="570.5" y="1013.4526"
>str @p address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="164" x="570.5" y="1026.2573">str @p master_key_ed25519</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="192" x="570.5" y="1039.062">int @p relay_observed_bandwidth</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="185" x="570.5" y="1051.8667">int @p relay_average_bandwidth</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="169" x="570.5" y="1064.6714">int @p relay_burst_bandwidth</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="167" x="570.5" y="1077.4761">int @p consensus_bandwidth</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="261" x="570.5" y="1090.280
8">int @p consensus_bandwidth_is_unmeasured</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="565.5" x2="836.5" y1="1096.875" y2="1096.875"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="69" x="570.5" y="1111.0854">dict to_dict()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="131" x="570.5" y="1123.8901">Result from_dict(dict d)</text><!--class ResultError--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="60.8047" style="stroke: #A80036; stroke-width: 1.5;" width="102" x="668" y="1292.5"/><ellipse cx="683" cy="1308.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M685.9688,1314.1406 Q685.3906,1314.4375 684.75,1314.5859 Q684.1094,1314.7344 683.4063,1314.7344 Q680.9063,1314.7344 679.5859,1313.0859 Q678.2656,1311.4375 678.2656,1308.3125 Q678.2656,1305.1875 679.5859,1303.5313 Q680.9063,1301.875 683.4063,1301.875 Q
684.1094,1301.875 684.7578,1302.0313 Q685.4063,1302.1875 685.9688,1302.4844 L685.9688,1305.2031 Q685.3438,1304.625 684.75,1304.3516 Q684.1563,1304.0781 683.5313,1304.0781 Q682.1875,1304.0781 681.5,1305.1484 Q680.8125,1306.2188 680.8125,1308.3125 Q680.8125,1310.4063 681.5,1311.4766 Q682.1875,1312.5469 683.5313,1312.5469 Q684.1563,1312.5469 684.75,1312.2734 Q685.3438,1312 685.9688,1311.4219 L685.9688,1314.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="70" x="697" y="1312.6543">ResultError</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="669" x2="769" y1="1324.5" y2="1324.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="68" x="674" y="1338.7104">str @p msg</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="669" x2="769" y1="1345.3047" y2="1345.3047"/><!--class ResultSuccess--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="73.6094" styl
e="stroke: #A80036; stroke-width: 1.5;" width="123" x="805.5" y="1286"/><ellipse cx="820.5" cy="1302" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M823.4688,1307.6406 Q822.8906,1307.9375 822.25,1308.0859 Q821.6094,1308.2344 820.9063,1308.2344 Q818.4063,1308.2344 817.0859,1306.5859 Q815.7656,1304.9375 815.7656,1301.8125 Q815.7656,1298.6875 817.0859,1297.0313 Q818.4063,1295.375 820.9063,1295.375 Q821.6094,1295.375 822.2578,1295.5313 Q822.9063,1295.6875 823.4688,1295.9844 L823.4688,1298.7031 Q822.8438,1298.125 822.25,1297.8516 Q821.6563,1297.5781 821.0313,1297.5781 Q819.6875,1297.5781 819,1298.6484 Q818.3125,1299.7188 818.3125,1301.8125 Q818.3125,1303.9063 819,1304.9766 Q819.6875,1306.0469 821.0313,1306.0469 Q821.6563,1306.0469 822.25,1305.7734 Q822.8438,1305.5 823.4688,1304.9219 L823.4688,1307.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="834.5" y="1306.1543">ResultSucce
ss</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="806.5" x2="927.5" y1="1318" y2="1318"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="64" x="811.5" y="1332.2104">list @p rtts</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="811.5" y="1345.0151">list @p downloads</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="806.5" x2="927.5" y1="1351.6094" y2="1351.6094"/><!--class Destination--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="124.8281" style="stroke: #A80036; stroke-width: 1.5;" width="342" x="6" y="1260.5"/><ellipse cx="136.75" cy="1276.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M139.7188,1282.1406 Q139.1406,1282.4375 138.5,1282.5859 Q137.8594,1282.7344 137.1563,1282.7344 Q134.6563,1282.7344 133.3359,1281.0859 Q132.0156,1279.4375 132.0156,1276.3125 Q132.0156,1273.1875 133.3359,12
71.5313 Q134.6563,1269.875 137.1563,1269.875 Q137.8594,1269.875 138.5078,1270.0313 Q139.1563,1270.1875 139.7188,1270.4844 L139.7188,1273.2031 Q139.0938,1272.625 138.5,1272.3516 Q137.9063,1272.0781 137.2813,1272.0781 Q135.9375,1272.0781 135.25,1273.1484 Q134.5625,1274.2188 134.5625,1276.3125 Q134.5625,1278.4063 135.25,1279.4766 Q135.9375,1280.5469 137.2813,1280.5469 Q137.9063,1280.5469 138.5,1280.2734 Q139.0938,1280 139.7188,1279.4219 L139.7188,1282.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="72" x="157.25" y="1280.6543">Destination</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="347" y1="1292.5" y2="1292.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="100" x="12" y="1306.7104">str @p hostname</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="64" x="12" y="1319.5151">int @p p
ort</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="58" x="12" y="1332.3198">str @p url</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="12" y="1345.1245">bool @p verify</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="7" x2="347" y1="1351.7188" y2="1351.7188"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="90" x="12" y="1365.9292">bool is_usable()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="330" x="12" y="1378.7339">Destination @sm from_config(str conf_section,int max_dl)</text><!--class Result.Relay--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="163.2422" style="stroke: #A80036; stroke-width: 1.5;" width="250" x="383" y="1241.5"/><ellipse cx="465.75" cy="1257.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A8
0036; stroke-width: 1.0;"/><path d="M468.7188,1263.1406 Q468.1406,1263.4375 467.5,1263.5859 Q466.8594,1263.7344 466.1563,1263.7344 Q463.6563,1263.7344 462.3359,1262.0859 Q461.0156,1260.4375 461.0156,1257.3125 Q461.0156,1254.1875 462.3359,1252.5313 Q463.6563,1250.875 466.1563,1250.875 Q466.8594,1250.875 467.5078,1251.0313 Q468.1563,1251.1875 468.7188,1251.4844 L468.7188,1254.2031 Q468.0938,1253.625 467.5,1253.3516 Q466.9063,1253.0781 466.2813,1253.0781 Q464.9375,1253.0781 464.25,1254.1484 Q463.5625,1255.2188 463.5625,1257.3125 Q463.5625,1259.4063 464.25,1260.4766 Q464.9375,1261.5469 466.2813,1261.5469 Q466.9063,1261.5469 467.5,1261.2734 Q468.0938,1261 468.7188,1260.4219 L468.7188,1263.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="76" x="486.25" y="1261.6543">Result.Relay</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="384" x2="632" y1="1273.5" y2="1273.5"/><text fill="#000000" font-family="sans-serif" fo
nt-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="389" y="1287.7104">str nickname</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="389" y="1300.5151">str fingerprint</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="67" x="389" y="1313.3198">str address</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="389" y="1326.1245">str master_key_ed25519</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="135" x="389" y="1338.9292">int observed_bandwidth</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="128" x="389" y="1351.7339">int average_bandwidth</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="112" x
="389" y="1364.5386">int burst_bandwidth</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="144" x="389" y="1377.3433">int consensus_bandwidth</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="238" x="389" y="1390.1479">int consensus_bandwidth_is_unmeasured</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="384" x2="632" y1="1396.7422" y2="1396.7422"/><!--class ResultErrorCircuit--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="141" x="559.5" y="1516"/><ellipse cx="574.5" cy="1532" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M577.4688,1537.6406 Q576.8906,1537.9375 576.25,1538.0859 Q575.6094,1538.2344 574.9063,1538.2344 Q572.4063,1538.2344 571.0859,1536.5859 Q569.7656,1534.9375 569.7656,1531.8125 Q569.7656,1528.6875 571.0859,1527.0313 Q572.4063,1525.375 574
.9063,1525.375 Q575.6094,1525.375 576.2578,1525.5313 Q576.9063,1525.6875 577.4688,1525.9844 L577.4688,1528.7031 Q576.8438,1528.125 576.25,1527.8516 Q575.6563,1527.5781 575.0313,1527.5781 Q573.6875,1527.5781 573,1528.6484 Q572.3125,1529.7188 572.3125,1531.8125 Q572.3125,1533.9063 573,1534.9766 Q573.6875,1536.0469 575.0313,1536.0469 Q575.6563,1536.0469 576.25,1535.7734 Q576.8438,1535.5 577.4688,1534.9219 L577.4688,1537.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="109" x="588.5" y="1536.1543">ResultErrorCircuit</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="560.5" x2="699.5" y1="1548" y2="1548"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="560.5" x2="699.5" y1="1556" y2="1556"/><!--class ResultErrorStream--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="147" x="735.5" y="1516"/><ellipse cx="750.5" cy="1532" fill="#ADD1B2" rx="11" ry="11
" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M753.4688,1537.6406 Q752.8906,1537.9375 752.25,1538.0859 Q751.6094,1538.2344 750.9063,1538.2344 Q748.4063,1538.2344 747.0859,1536.5859 Q745.7656,1534.9375 745.7656,1531.8125 Q745.7656,1528.6875 747.0859,1527.0313 Q748.4063,1525.375 750.9063,1525.375 Q751.6094,1525.375 752.2578,1525.5313 Q752.9063,1525.6875 753.4688,1525.9844 L753.4688,1528.7031 Q752.8438,1528.125 752.25,1527.8516 Q751.6563,1527.5781 751.0313,1527.5781 Q749.6875,1527.5781 749,1528.6484 Q748.3125,1529.7188 748.3125,1531.8125 Q748.3125,1533.9063 749,1534.9766 Q749.6875,1536.0469 751.0313,1536.0469 Q751.6563,1536.0469 752.25,1535.7734 Q752.8438,1535.5 753.4688,1534.9219 L753.4688,1537.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="115" x="764.5" y="1536.1543">ResultErrorStream</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="736.5" x2="881.5" y1="1548" y2="1548"/><line style="stroke: #A8
0036; stroke-width: 1.5;" x1="736.5" x2="881.5" y1="1556" y2="1556"/><!--class DestinationList--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="86.4141" style="stroke: #A80036; stroke-width: 1.5;" width="221" x="66.5" y="948"/><ellipse cx="126.25" cy="964" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M129.2188,969.6406 Q128.6406,969.9375 128,970.0859 Q127.3594,970.2344 126.6563,970.2344 Q124.1563,970.2344 122.8359,968.5859 Q121.5156,966.9375 121.5156,963.8125 Q121.5156,960.6875 122.8359,959.0313 Q124.1563,957.375 126.6563,957.375 Q127.3594,957.375 128.0078,957.5313 Q128.6563,957.6875 129.2188,957.9844 L129.2188,960.7031 Q128.5938,960.125 128,959.8516 Q127.4063,959.5781 126.7813,959.5781 Q125.4375,959.5781 124.75,960.6484 Q124.0625,961.7188 124.0625,963.8125 Q124.0625,965.9063 124.75,966.9766 Q125.4375,968.0469 126.7813,968.0469 Q127.4063,968.0469 128,967.7734 Q128.5938,967.5 129.2188,966.9219 L129.2188,969.6406 Z "/><text fill="#000000" f
ont-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="93" x="146.75" y="968.1543">DestinationList</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="67.5" x2="286.5" y1="980" y2="980"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="35" x="72.5" y="994.2104">list _rl</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="67.5" x2="286.5" y1="1000.8047" y2="1000.8047"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="100" x="72.5" y="1015.0151">Destination next()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="72.5" y="1027.8198">DestinationList @sm from_config(...)</text><!--class V3BWHeader--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="291.2891" style="stroke: #A80036; stroke-width: 1.5;" width="322" x="181" y="449.5"/><ellipse cx="297.25" cy="465.5"
fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M300.2188,471.1406 Q299.6406,471.4375 299,471.5859 Q298.3594,471.7344 297.6563,471.7344 Q295.1563,471.7344 293.8359,470.0859 Q292.5156,468.4375 292.5156,465.3125 Q292.5156,462.1875 293.8359,460.5313 Q295.1563,458.875 297.6563,458.875 Q298.3594,458.875 299.0078,459.0313 Q299.6563,459.1875 300.2188,459.4844 L300.2188,462.2031 Q299.5938,461.625 299,461.3516 Q298.4063,461.0781 297.7813,461.0781 Q296.4375,461.0781 295.75,462.1484 Q295.0625,463.2188 295.0625,465.3125 Q295.0625,467.4063 295.75,468.4766 Q296.4375,469.5469 297.7813,469.5469 Q298.4063,469.5469 299,469.2734 Q299.5938,469 300.2188,468.4219 L300.2188,471.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="81" x="317.75" y="469.6543">V3BWHeader</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="182" x2="502" y1="481.5" y2="481.5"/><text fill="#000000" font-family="sans-serif"
font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="187" y="495.7104">int timestamp</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="62" x="187" y="508.5151">str version</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="86" x="187" y="521.3198">str file_created</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="116" x="187" y="534.1245">str latest_bandwidth</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="76" x="187" y="546.9292">int num_lines</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="70" x="187" y="559.7339">str software</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="118" x="187" y="572.5386">str
software_version</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="123" x="187" y="585.3433">str generator_started</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="149" x="187" y="598.1479">int number_eligible_relays</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="208" x="187" y="610.9526">int minimum_number_eligible_relays</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="171" x="187" y="623.7573">int number_consensus_relays</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="148" x="187" y="636.562">int percent_eligible_relays</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="207" x="187" y="649.3667">int minimum_percen
t_eligible_relays</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="99" x="187" y="662.1714">int @p num_lines</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="182" x2="502" y1="668.7656" y2="668.7656"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="254" x="187" y="682.9761">V3BWHeader @cm from_results(dict results)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="117" x="187" y="695.7808">add_stats(**kwargs)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="310" x="187" y="708.5854">int @sm earliest_bandwidth_from_results(dict results)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="285" x="187" y="721.3901">str @sm generator_started_from_file(dict results)</text><text fil
l="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="299" x="187" y="734.1948">int @sm latest_bandwidth_from_results(dict results)</text><!--class V3BWLine--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="393.7266" style="stroke: #A80036; stroke-width: 1.5;" width="326" x="538" y="398"/><ellipse cx="666.75" cy="414" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M669.7188,419.6406 Q669.1406,419.9375 668.5,420.0859 Q667.8594,420.2344 667.1563,420.2344 Q664.6563,420.2344 663.3359,418.5859 Q662.0156,416.9375 662.0156,413.8125 Q662.0156,410.6875 663.3359,409.0313 Q664.6563,407.375 667.1563,407.375 Q667.8594,407.375 668.5078,407.5313 Q669.1563,407.6875 669.7188,407.9844 L669.7188,410.7031 Q669.0938,410.125 668.5,409.8516 Q667.9063,409.5781 667.2813,409.5781 Q665.9375,409.5781 665.25,410.6484 Q664.5625,411.7188 664.5625,413.8125 Q664.5625,415.9063 665.25,416.9766 Q665.9375,418.0469 667.2813,418.0469 Q667
.9063,418.0469 668.5,417.7734 Q669.0938,417.5 669.7188,416.9219 L669.7188,419.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="60" x="687.25" y="418.1543">V3BWLine</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="539" x2="863" y1="430" y2="430"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="34" x="544" y="444.2104">int bw</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="64" x="544" y="457.0151">str node_id</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="141" x="544" y="469.8198">str master_key_ed25519</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="42" x="544" y="482.6245">str nick</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spa
cingAndGlyphs" textLength="31" x="544" y="495.4292">int rtt</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="45" x="544" y="508.2339">str time</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="65" x="544" y="521.0386">int success</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="94" x="544" y="533.8433">int error_stream</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="73" x="544" y="546.6479">int error_circ</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="80" x="544" y="559.4526">int error_misc</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="82" x="544" y="572.2573">int bw_median</text><text fill="#000000" font-family=
"sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="72" x="544" y="585.062">int bw_mean</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="544" y="597.8667">int desc_bw_avg</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="92" x="544" y="610.6714">int desc_bw_bur</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="121" x="544" y="623.4761">int desc_bw_obs_last</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="132" x="544" y="636.2808">int desc_bw_obs_mean</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="126" x="544" y="649.0854">consensus_bandwidth</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="2
20" x="544" y="661.8901">consensus_bandwidth_is_unmeasured</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="539" x2="863" y1="668.4844" y2="668.4844"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="254" x="544" y="682.6948">int @sm bw_mean_from_results(list results)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="264" x="544" y="695.4995">int @sm bw_median_from_results(list results)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="303" x="544" y="708.3042">int @sm desc_bw_obs_last_from_results(list results)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="314" x="544" y="721.1089">int @sm desc_bw_obs_mean_from_results(list results)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" te
xtLength="233" x="544" y="733.9136">V3BWLine @cm from_results(list results)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="254" x="544" y="746.7183">str @sm last_time_from_results(list results)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="276" x="544" y="759.5229">dict @sm result_types_from_results(list results)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="268" x="544" y="772.3276">list @sm results_away_each_other(list results)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="237" x="544" y="785.1323">list @sm results_recent_than(list results)</text><!--class V3BWFile--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="329.7031" style="stroke: #A80036; stroke-width: 1.5;" width="370" x="157" y="8"/><ellipse cx="309.75" cy="24"
fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M312.7188,29.6406 Q312.1406,29.9375 311.5,30.0859 Q310.8594,30.2344 310.1563,30.2344 Q307.6563,30.2344 306.3359,28.5859 Q305.0156,26.9375 305.0156,23.8125 Q305.0156,20.6875 306.3359,19.0313 Q307.6563,17.375 310.1563,17.375 Q310.8594,17.375 311.5078,17.5313 Q312.1563,17.6875 312.7188,17.9844 L312.7188,20.7031 Q312.0938,20.125 311.5,19.8516 Q310.9063,19.5781 310.2813,19.5781 Q308.9375,19.5781 308.25,20.6484 Q307.5625,21.7188 307.5625,23.8125 Q307.5625,25.9063 308.25,26.9766 Q308.9375,28.0469 310.2813,28.0469 Q310.9063,28.0469 311.5,27.7734 Q312.0938,27.5 312.7188,26.9219 L312.7188,29.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="56" x="330.25" y="28.1543">V3BWFile</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="158" x2="526" y1="40" y2="40"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacin
gAndGlyphs" textLength="116" x="163" y="54.2104">V3BWHeader header</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="70" x="163" y="67.0151">list bw_lines</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="79" x="163" y="79.8198">@p info_stats</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="119" x="163" y="92.6245">bool @p is_min_perc</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="87" x="163" y="105.4292">int @p max_bw</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="95" x="163" y="118.2339">int @p mean_bw</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="163" y="131.0386">int @p median_bw</text><text fill="#00
0000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="84" x="163" y="143.8433">int @p min_bw</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="66" x="163" y="156.6479">int @p num</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="88" x="163" y="169.4526">int @p sum_bw</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="158" x2="526" y1="176.0469" y2="176.0469"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="252" x="163" y="190.2573">V3BWFile @cm from_results(dict results, ...)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="147" x="163" y="203.062">list @sm bw_kb(bw_lines)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="200" x="163" y="215.
8667">list @sm bw_sbws_scale(bw_lines)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="209" x="163" y="228.6714">list @sm bw_torflow_scale(bw_lines)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="288" x="163" y="241.4761">bool @sm is_max_bw_diff_perc_reached(bw_lines)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="306" x="163" y="254.2808">(dict, bool) @sm measured_progress_stats(bw_lines)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="358" x="163" y="267.0854">int @sm read_number_consensus_relays(str consensus_path)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="118" x="163" y="279.8901">(list, list, list) to_plt()</text><text fill="#000000" font-family="sans-serif" fo
nt-size="11" lengthAdjust="spacingAndGlyphs" textLength="195" x="163" y="292.6948">list update_progress(bw_lines, ...)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="245" x="163" y="305.4995">warn_if_not_accurate_enough(bw_lines, ...)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="83" x="163" y="318.3042">tuple to_plt(...)</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="92" x="163" y="331.1089">write(str output)</text><!--class CircuitBuilder--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="124.8281" style="stroke: #A80036; stroke-width: 1.5;" width="126" x="1271" y="532.5"/><ellipse cx="1291.4" cy="548.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1294.3688,554.1406 Q1293.7906,554.4375 1293.15,554.5859 Q1292.5094,554.7344 1291.8063,554.7344 Q1289.
3063,554.7344 1287.9859,553.0859 Q1286.6656,551.4375 1286.6656,548.3125 Q1286.6656,545.1875 1287.9859,543.5313 Q1289.3063,541.875 1291.8063,541.875 Q1292.5094,541.875 1293.1578,542.0313 Q1293.8063,542.1875 1294.3688,542.4844 L1294.3688,545.2031 Q1293.7438,544.625 1293.15,544.3516 Q1292.5563,544.0781 1291.9313,544.0781 Q1290.5875,544.0781 1289.9,545.1484 Q1289.2125,546.2188 1289.2125,548.3125 Q1289.2125,550.4063 1289.9,551.4766 Q1290.5875,552.5469 1291.9313,552.5469 Q1292.5563,552.5469 1293.15,552.2734 Q1293.7438,552 1294.3688,551.4219 L1294.3688,554.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="1306.6" y="552.6543">CircuitBuilder</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1272" x2="1396" y1="564.5" y2="564.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="1277" y="578.7104">set built_circuits</text><text fill="#000000" font-fa
mily="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="1277" y="591.5151">RelayList relay_list</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="56" x="1277" y="604.3198">list relays</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="114" x="1277" y="617.1245">Controller controller</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1272" x2="1396" y1="623.7188" y2="623.7188"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="93" x="1277" y="637.9292">int build_circuit()</text><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="105" x="1277" y="650.7339">void close_circuit()</text><!--class GapsCircuitBuilder--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="48" style="stroke: #A80036; stroke-width: 1.5;" width="146"
x="1387" y="967"/><ellipse cx="1402" cy="983" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1404.9688,988.6406 Q1404.3906,988.9375 1403.75,989.0859 Q1403.1094,989.2344 1402.4063,989.2344 Q1399.9063,989.2344 1398.5859,987.5859 Q1397.2656,985.9375 1397.2656,982.8125 Q1397.2656,979.6875 1398.5859,978.0313 Q1399.9063,976.375 1402.4063,976.375 Q1403.1094,976.375 1403.7578,976.5313 Q1404.4063,976.6875 1404.9688,976.9844 L1404.9688,979.7031 Q1404.3438,979.125 1403.75,978.8516 Q1403.1563,978.5781 1402.5313,978.5781 Q1401.1875,978.5781 1400.5,979.6484 Q1399.8125,980.7188 1399.8125,982.8125 Q1399.8125,984.9063 1400.5,985.9766 Q1401.1875,987.0469 1402.5313,987.0469 Q1403.1563,987.0469 1403.75,986.7734 Q1404.3438,986.5 1404.9688,985.9219 L1404.9688,988.6406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="114" x="1416" y="987.1543">GapsCircuitBuilder</text><line style="stroke: #A80036; stroke-w
idth: 1.5;" x1="1388" x2="1532" y1="999" y2="999"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1388" x2="1532" y1="1007" y2="1007"/><!--class State--><rect fill="#FEFECE" filter="url(#f17ckm9)" height="60.8047" style="stroke: #A80036; stroke-width: 1.5;" width="66" x="1189" y="142.5"/><ellipse cx="1204" cy="158.5" fill="#ADD1B2" rx="11" ry="11" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1206.9688,164.1406 Q1206.3906,164.4375 1205.75,164.5859 Q1205.1094,164.7344 1204.4063,164.7344 Q1201.9063,164.7344 1200.5859,163.0859 Q1199.2656,161.4375 1199.2656,158.3125 Q1199.2656,155.1875 1200.5859,153.5313 Q1201.9063,151.875 1204.4063,151.875 Q1205.1094,151.875 1205.7578,152.0313 Q1206.4063,152.1875 1206.9688,152.4844 L1206.9688,155.2031 Q1206.3438,154.625 1205.75,154.3516 Q1205.1563,154.0781 1204.5313,154.0781 Q1203.1875,154.0781 1202.5,155.1484 Q1201.8125,156.2188 1201.8125,158.3125 Q1201.8125,160.4063 1202.5,161.4766 Q1203.1875,162.5469 1204.5313,162.5469 Q1205.1563,162
.5469 1205.75,162.2734 Q1206.3438,162 1206.9688,161.4219 L1206.9688,164.1406 Z "/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="34" x="1218" y="162.6543">State</text><line style="stroke: #A80036; stroke-width: 1.5;" x1="1190" x2="1254" y1="174.5" y2="174.5"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="1190" x2="1254" y1="182.5" y2="182.5"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="26" x="1195" y="196.7104">get()</text><path d="M1138.67,1117.655 C1136.16,1141.31 1133.53,1166.111 1131,1189.954 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1140.05,1104.644,1135.4394,1110.1886,1138.7842,1116.5771,1143.3948,1111.0325,1140.05,1104.644" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1089.72,242.34 C1098.68,286.54 1109.61,345.43 1116,398 C1136.18,564.101 1145.24,757.865 1149.18,877.246 " fill="none" style="st
roke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1087.06,229.41,1084.3489,236.0921,1089.4743,241.1646,1092.1853,234.4826,1087.06,229.41" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1062.64,242.29 C1049.6,314.37 1029,428.19 1014.79,506.73 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1064.99,229.34,1059.9863,234.5326,1062.855,241.1485,1067.8587,235.9559,1064.99,229.34" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M709.634,1150.29 C712.587,1204.42 715.592,1259.514 717.376,1292.219 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="702.629,1150.389,708.529,1130.038,716.608,1149.627,702.629,1150.389" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M779.546,1148.146 C805.413,1199.569 831.859,1252.142 848.795,1285.809 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="773.171,1151.05,770.437,1130.038,785.678,1144.759,773.171,11
51.05" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M564.219,1069.298 C502.644,1104.936 429.46,1148.471 365,1190 C330.636,1212.139 293.652,1237.711 261.654,1260.417 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M837.502,1100.283 C883.339,1136.644 934.451,1177.19 980.304,1213.563 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M613.472,1141.659 C593.355,1176.056 572.714,1211.349 555.086,1241.491 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="620.269,1130.038,613.7871,1133.1979,614.2108,1140.3965,620.6927,1137.2366,620.269,1130.038" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M698.878,1372.61 C680.34,1417.393 653.638,1481.8967 639.546,1515.9402 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="692.508,1369.697,706.625,1353.895,705.443,1375.051,692.508,1369.697" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M739.348,1372.61 C758.095,1417
.393 785.096,1481.8967 799.347,1515.9402 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="732.78,1375.047,731.514,1353.895,745.694,1369.641,732.78,1375.047" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M944.599,694.845 C925.726,726.719 903.6,761.637 881,792 C866.16,811.937 849.661,832.189 832.845,851.753 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="951.4,683.254,944.9137,686.4049,945.3276,693.6042,951.8138,690.4532,951.4,683.254" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M986.523,683.449 C974.243,790.808 962.827,977.411 1005,1130 C1010.58,1150.179 1018.82,1170.427 1028.35,1189.81 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M177,1047.245 C177,1106.165 177,1199.251 177,1260.472 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="177,1034.13,173,1040.13,177,1046.13,181,1040.13,177,1034.13" style="stroke: #A80036; stroke
-width: 1.0;"/><path d="M473.178,740.55 C488.947,757.895 504.83,775.351 520,792 C537.644,811.365 556.273,831.779 574.602,851.847 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M701,792.134 C701,812.297 701,832.472 701,851.814 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M342,351.6 C342,384.21 342,417.88 342,449.38 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="342,338.19,338,344.19,342,350.19,346,344.19,342,338.19" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M490.906,348.21 C506.387,366.32 522.181,384.8 537.808,403.08 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="482.341,338.19,483.2029,345.3494,490.1431,347.3074,489.2812,340.148,482.341,338.19" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M191.752,338.22 C180.173,357.38 170.203,377.45 163,398 C105.082,563.26 62.8173,648.378 163,792 C169.086,800.724 407.087,886.138 564.464,941.895 "
fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1299.98,669.643 C1273,728.048 1234.84,810.657 1204.03,877.359 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="#A80036" points="1305.56,657.562,1299.4124,661.3313,1300.5273,668.4557,1306.6749,664.6864,1305.56,657.562" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1342.81,657.587 C1354.75,760.354 1367.33,971.181 1298,1130 C1287.05,1155.085 1271.35,1178.92 1253.72,1200.721 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><path d="M1359.82,676.751 C1389,767.97 1434.72,910.962 1452.54,966.679 " fill="none" style="stroke: #A80036; stroke-width: 1.0;"/><polygon fill="none" points="1353.11,678.744,1353.69,657.562,1366.45,674.48,1353.11,678.744" style="stroke: #A80036; stroke-width: 1.0;"/></g></svg>
\ No newline at end of file
diff --git a/docs/source/images/classes_sbws.svg b/docs/source/images/classes_sbws.svg
deleted file mode 100644
index e9258e8..0000000
--- a/docs/source/images/classes_sbws.svg
+++ /dev/null
@@ -1,246 +0,0 @@
-<?xml version="1.0" encoding="UTF-8" standalone="no"?>
-<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
- "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
-<!-- Generated by graphviz version 2.38.0 (20140413.2041)
- -->
-<!-- Title: classes_sbws Pages: 1 -->
-<svg width="1965pt" height="619pt"
- viewBox="0.00 0.00 1965.00 619.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 615)">
-<title>classes_sbws</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-615 1961,-615 1961,4 -4,4"/>
-<!-- 0 -->
-<g id="node1" class="node"><title>0</title>
-<polygon fill="none" stroke="black" points="0,-436.5 0,-610.5 173,-610.5 173,-436.5 0,-436.5"/>
-<text text-anchor="middle" x="86.5" y="-595.3" font-family="Times,serif" font-size="14.00">CircuitBuilder</text>
-<polyline fill="none" stroke="black" points="0,-587.5 173,-587.5 "/>
-<text text-anchor="start" x="8" y="-572.3" font-family="Times,serif" font-size="14.00">built_circuits : set</text>
-<text text-anchor="start" x="8" y="-557.3" font-family="Times,serif" font-size="14.00">circuit_timeout</text>
-<text text-anchor="start" x="8" y="-542.3" font-family="Times,serif" font-size="14.00">close_circuits_on_exit : bool</text>
-<text text-anchor="start" x="8" y="-527.3" font-family="Times,serif" font-size="14.00">controller</text>
-<text text-anchor="start" x="8" y="-512.3" font-family="Times,serif" font-size="14.00">relay_list</text>
-<text text-anchor="start" x="8" y="-497.3" font-family="Times,serif" font-size="14.00">relays</text>
-<text text-anchor="start" x="8" y="-482.3" font-family="Times,serif" font-size="14.00">rng : SystemRandom</text>
-<polyline fill="none" stroke="black" points="0,-474.5 173,-474.5 "/>
-<text text-anchor="start" x="8" y="-459.3" font-family="Times,serif" font-size="14.00">build_circuit()</text>
-<text text-anchor="start" x="8" y="-444.3" font-family="Times,serif" font-size="14.00">close_circuit()</text>
-</g>
-<!-- 1 -->
-<g id="node2" class="node"><title>1</title>
-<polygon fill="none" stroke="black" points="165.5,-135.5 165.5,-264.5 259.5,-264.5 259.5,-135.5 165.5,-135.5"/>
-<text text-anchor="middle" x="212.5" y="-249.3" font-family="Times,serif" font-size="14.00">Destination</text>
-<polyline fill="none" stroke="black" points="165.5,-241.5 259.5,-241.5 "/>
-<text text-anchor="start" x="173.5" y="-226.3" font-family="Times,serif" font-size="14.00">hostname</text>
-<text text-anchor="start" x="173.5" y="-211.3" font-family="Times,serif" font-size="14.00">port</text>
-<text text-anchor="start" x="173.5" y="-196.3" font-family="Times,serif" font-size="14.00">url</text>
-<text text-anchor="start" x="173.5" y="-181.3" font-family="Times,serif" font-size="14.00">verify</text>
-<polyline fill="none" stroke="black" points="165.5,-173.5 259.5,-173.5 "/>
-<text text-anchor="start" x="173.5" y="-158.3" font-family="Times,serif" font-size="14.00">from_config()</text>
-<text text-anchor="start" x="173.5" y="-143.3" font-family="Times,serif" font-size="14.00">is_usable()</text>
-</g>
-<!-- 2 -->
-<g id="node3" class="node"><title>2</title>
-<polygon fill="none" stroke="black" points="277.5,-157.5 277.5,-242.5 377.5,-242.5 377.5,-157.5 277.5,-157.5"/>
-<text text-anchor="middle" x="327.5" y="-227.3" font-family="Times,serif" font-size="14.00">DestinationList</text>
-<polyline fill="none" stroke="black" points="277.5,-219.5 377.5,-219.5 "/>
-<polyline fill="none" stroke="black" points="277.5,-195.5 377.5,-195.5 "/>
-<text text-anchor="start" x="285.5" y="-180.3" font-family="Times,serif" font-size="14.00">from_config()</text>
-<text text-anchor="start" x="285.5" y="-165.3" font-family="Times,serif" font-size="14.00">next()</text>
-</g>
-<!-- 3 -->
-<g id="node4" class="node"><title>3</title>
-<polygon fill="none" stroke="black" points="395.5,-165 395.5,-235 491.5,-235 491.5,-165 395.5,-165"/>
-<text text-anchor="middle" x="443.5" y="-219.8" font-family="Times,serif" font-size="14.00">DirectoryLock</text>
-<polyline fill="none" stroke="black" points="395.5,-212 491.5,-212 "/>
-<polyline fill="none" stroke="black" points="395.5,-188 491.5,-188 "/>
-<text text-anchor="middle" x="443.5" y="-172.8" font-family="Times,serif" font-size="14.00"> </text>
-</g>
-<!-- 14 -->
-<g id="node15" class="node"><title>14</title>
-<polygon fill="none" stroke="black" points="463,-488.5 463,-558.5 522,-558.5 522,-488.5 463,-488.5"/>
-<text text-anchor="middle" x="492.5" y="-543.3" font-family="Times,serif" font-size="14.00">_FLock</text>
-<polyline fill="none" stroke="black" points="463,-535.5 522,-535.5 "/>
-<polyline fill="none" stroke="black" points="463,-511.5 522,-511.5 "/>
-<text text-anchor="middle" x="492.5" y="-496.3" font-family="Times,serif" font-size="14.00"> </text>
-</g>
-<!-- 3->14 -->
-<g id="edge1" class="edge"><title>3->14</title>
-<path fill="none" stroke="black" d="M448.697,-235.102C457.628,-293.7 475.879,-413.445 485.769,-478.338"/>
-<polygon fill="none" stroke="black" points="482.315,-478.906 487.282,-488.264 489.235,-477.851 482.315,-478.906"/>
-</g>
-<!-- 4 -->
-<g id="node5" class="node"><title>4</title>
-<polygon fill="none" stroke="black" points="510,-165 510,-235 575,-235 575,-165 510,-165"/>
-<text text-anchor="middle" x="542.5" y="-219.8" font-family="Times,serif" font-size="14.00">FileLock</text>
-<polyline fill="none" stroke="black" points="510,-212 575,-212 "/>
-<polyline fill="none" stroke="black" points="510,-188 575,-188 "/>
-<text text-anchor="middle" x="542.5" y="-172.8" font-family="Times,serif" font-size="14.00"> </text>
-</g>
-<!-- 4->14 -->
-<g id="edge2" class="edge"><title>4->14</title>
-<path fill="none" stroke="black" d="M537.196,-235.102C528.083,-293.7 509.46,-413.445 499.368,-478.338"/>
-<polygon fill="none" stroke="black" points="495.903,-477.845 497.824,-488.264 502.82,-478.921 495.903,-477.845"/>
-</g>
-<!-- 5 -->
-<g id="node6" class="node"><title>5</title>
-<polygon fill="none" stroke="black" points="25.5,-165 25.5,-235 147.5,-235 147.5,-165 25.5,-165"/>
-<text text-anchor="middle" x="86.5" y="-219.8" font-family="Times,serif" font-size="14.00">GapsCircuitBuilder</text>
-<polyline fill="none" stroke="black" points="25.5,-212 147.5,-212 "/>
-<polyline fill="none" stroke="black" points="25.5,-188 147.5,-188 "/>
-<text text-anchor="start" x="33.5" y="-172.8" font-family="Times,serif" font-size="14.00">build_circuit()</text>
-</g>
-<!-- 5->0 -->
-<g id="edge3" class="edge"><title>5->0</title>
-<path fill="none" stroke="black" d="M86.5,-235.102C86.5,-280.201 86.5,-361.52 86.5,-426.176"/>
-<polygon fill="none" stroke="black" points="83.0001,-426.402 86.5,-436.402 90.0001,-426.402 83.0001,-426.402"/>
-</g>
-<!-- 6 -->
-<g id="node7" class="node"><title>6</title>
-<polygon fill="none" stroke="black" points="593.5,-165.5 593.5,-234.5 727.5,-234.5 727.5,-165.5 593.5,-165.5"/>
-<text text-anchor="middle" x="660.5" y="-219.3" font-family="Times,serif" font-size="14.00" fill="red">PathLengthException</text>
-<polyline fill="none" stroke="black" points="593.5,-211.5 727.5,-211.5 "/>
-<text text-anchor="start" x="601.5" y="-196.3" font-family="Times,serif" font-size="14.00" fill="red">errors : NoneType</text>
-<polyline fill="none" stroke="black" points="593.5,-188.5 727.5,-188.5 "/>
-<text text-anchor="middle" x="660.5" y="-173.3" font-family="Times,serif" font-size="14.00" fill="red"> </text>
-</g>
-<!-- 7 -->
-<g id="node8" class="node"><title>7</title>
-<polygon fill="none" stroke="black" points="746,-105.5 746,-294.5 879,-294.5 879,-105.5 746,-105.5"/>
-<text text-anchor="middle" x="812.5" y="-279.3" font-family="Times,serif" font-size="14.00">Relay</text>
-<polyline fill="none" stroke="black" points="746,-271.5 879,-271.5 "/>
-<text text-anchor="start" x="754" y="-256.3" font-family="Times,serif" font-size="14.00">address</text>
-<text text-anchor="start" x="754" y="-241.3" font-family="Times,serif" font-size="14.00">average_bandwidth</text>
-<text text-anchor="start" x="754" y="-226.3" font-family="Times,serif" font-size="14.00">bandwidth</text>
-<text text-anchor="start" x="754" y="-211.3" font-family="Times,serif" font-size="14.00">exit_policy</text>
-<text text-anchor="start" x="754" y="-196.3" font-family="Times,serif" font-size="14.00">fingerprint</text>
-<text text-anchor="start" x="754" y="-181.3" font-family="Times,serif" font-size="14.00">flags</text>
-<text text-anchor="start" x="754" y="-166.3" font-family="Times,serif" font-size="14.00">master_key_ed25519</text>
-<text text-anchor="start" x="754" y="-151.3" font-family="Times,serif" font-size="14.00">nickname</text>
-<text text-anchor="start" x="754" y="-136.3" font-family="Times,serif" font-size="14.00">observed_bandwidth</text>
-<polyline fill="none" stroke="black" points="746,-128.5 879,-128.5 "/>
-<text text-anchor="start" x="754" y="-113.3" font-family="Times,serif" font-size="14.00">can_exit_to()</text>
-</g>
-<!-- 8 -->
-<g id="node9" class="node"><title>8</title>
-<polygon fill="none" stroke="black" points="897.5,-105.5 897.5,-294.5 1073.5,-294.5 1073.5,-105.5 897.5,-105.5"/>
-<text text-anchor="middle" x="985.5" y="-279.3" font-family="Times,serif" font-size="14.00">RelayList</text>
-<polyline fill="none" stroke="black" points="897.5,-271.5 1073.5,-271.5 "/>
-<text text-anchor="start" x="905.5" y="-256.3" font-family="Times,serif" font-size="14.00">REFRESH_INTERVAL : int</text>
-<text text-anchor="start" x="905.5" y="-241.3" font-family="Times,serif" font-size="14.00">authorities</text>
-<text text-anchor="start" x="905.5" y="-226.3" font-family="Times,serif" font-size="14.00">bad_exits</text>
-<text text-anchor="start" x="905.5" y="-211.3" font-family="Times,serif" font-size="14.00">exits</text>
-<text text-anchor="start" x="905.5" y="-196.3" font-family="Times,serif" font-size="14.00">fast</text>
-<text text-anchor="start" x="905.5" y="-181.3" font-family="Times,serif" font-size="14.00">guards</text>
-<text text-anchor="start" x="905.5" y="-166.3" font-family="Times,serif" font-size="14.00">non_exits</text>
-<text text-anchor="start" x="905.5" y="-151.3" font-family="Times,serif" font-size="14.00">relays</text>
-<text text-anchor="start" x="905.5" y="-136.3" font-family="Times,serif" font-size="14.00">rng : SystemRandom</text>
-<polyline fill="none" stroke="black" points="897.5,-128.5 1073.5,-128.5 "/>
-<text text-anchor="start" x="905.5" y="-113.3" font-family="Times,serif" font-size="14.00">random_relay()</text>
-</g>
-<!-- 9 -->
-<g id="node10" class="node"><title>9</title>
-<polygon fill="none" stroke="black" points="1091.5,-128 1091.5,-272 1217.5,-272 1217.5,-128 1091.5,-128"/>
-<text text-anchor="middle" x="1154.5" y="-256.8" font-family="Times,serif" font-size="14.00">RelayPrioritizer</text>
-<polyline fill="none" stroke="black" points="1091.5,-249 1217.5,-249 "/>
-<text text-anchor="start" x="1099.5" y="-233.8" font-family="Times,serif" font-size="14.00">fraction_to_return</text>
-<text text-anchor="start" x="1099.5" y="-218.8" font-family="Times,serif" font-size="14.00">fresh_seconds</text>
-<text text-anchor="start" x="1099.5" y="-203.8" font-family="Times,serif" font-size="14.00">measure_authorities</text>
-<text text-anchor="start" x="1099.5" y="-188.8" font-family="Times,serif" font-size="14.00">min_to_return</text>
-<text text-anchor="start" x="1099.5" y="-173.8" font-family="Times,serif" font-size="14.00">relay_list</text>
-<text text-anchor="start" x="1099.5" y="-158.8" font-family="Times,serif" font-size="14.00">result_dump</text>
-<polyline fill="none" stroke="black" points="1091.5,-151 1217.5,-151 "/>
-<text text-anchor="start" x="1099.5" y="-135.8" font-family="Times,serif" font-size="14.00">best_priority()</text>
-</g>
-<!-- 10 -->
-<g id="node11" class="node"><title>10</title>
-<polygon fill="none" stroke="black" points="1235.5,-165 1235.5,-235 1289.5,-235 1289.5,-165 1235.5,-165"/>
-<text text-anchor="middle" x="1262.5" y="-219.8" font-family="Times,serif" font-size="14.00">State</text>
-<polyline fill="none" stroke="black" points="1235.5,-212 1289.5,-212 "/>
-<polyline fill="none" stroke="black" points="1235.5,-188 1289.5,-188 "/>
-<text text-anchor="start" x="1243.5" y="-172.8" font-family="Times,serif" font-size="14.00">get()</text>
-</g>
-<!-- 11 -->
-<g id="node12" class="node"><title>11</title>
-<polygon fill="none" stroke="black" points="1307.5,-0.5 1307.5,-399.5 1505.5,-399.5 1505.5,-0.5 1307.5,-0.5"/>
-<text text-anchor="middle" x="1406.5" y="-384.3" font-family="Times,serif" font-size="14.00">V3BWFile</text>
-<polyline fill="none" stroke="black" points="1307.5,-376.5 1505.5,-376.5 "/>
-<text text-anchor="start" x="1315.5" y="-361.3" font-family="Times,serif" font-size="14.00">bw_lines</text>
-<text text-anchor="start" x="1315.5" y="-346.3" font-family="Times,serif" font-size="14.00">header</text>
-<text text-anchor="start" x="1315.5" y="-331.3" font-family="Times,serif" font-size="14.00">info_stats</text>
-<text text-anchor="start" x="1315.5" y="-316.3" font-family="Times,serif" font-size="14.00">is_min_perc</text>
-<text text-anchor="start" x="1315.5" y="-301.3" font-family="Times,serif" font-size="14.00">max_bw</text>
-<text text-anchor="start" x="1315.5" y="-286.3" font-family="Times,serif" font-size="14.00">mean_bw</text>
-<text text-anchor="start" x="1315.5" y="-271.3" font-family="Times,serif" font-size="14.00">median_bw</text>
-<text text-anchor="start" x="1315.5" y="-256.3" font-family="Times,serif" font-size="14.00">min_bw</text>
-<text text-anchor="start" x="1315.5" y="-241.3" font-family="Times,serif" font-size="14.00">num</text>
-<text text-anchor="start" x="1315.5" y="-226.3" font-family="Times,serif" font-size="14.00">sum_bw</text>
-<polyline fill="none" stroke="black" points="1307.5,-218.5 1505.5,-218.5 "/>
-<text text-anchor="start" x="1315.5" y="-203.3" font-family="Times,serif" font-size="14.00">bw_kb()</text>
-<text text-anchor="start" x="1315.5" y="-188.3" font-family="Times,serif" font-size="14.00">bw_line_for_node_id()</text>
-<text text-anchor="start" x="1315.5" y="-173.3" font-family="Times,serif" font-size="14.00">bw_sbws_scale()</text>
-<text text-anchor="start" x="1315.5" y="-158.3" font-family="Times,serif" font-size="14.00">bw_torflow_scale()</text>
-<text text-anchor="start" x="1315.5" y="-143.3" font-family="Times,serif" font-size="14.00">from_results()</text>
-<text text-anchor="start" x="1315.5" y="-128.3" font-family="Times,serif" font-size="14.00">from_v100_fpath()</text>
-<text text-anchor="start" x="1315.5" y="-113.3" font-family="Times,serif" font-size="14.00">from_v110_fpath()</text>
-<text text-anchor="start" x="1315.5" y="-98.3" font-family="Times,serif" font-size="14.00">is_max_bw_diff_perc_reached()</text>
-<text text-anchor="start" x="1315.5" y="-83.3" font-family="Times,serif" font-size="14.00">measured_progress_stats()</text>
-<text text-anchor="start" x="1315.5" y="-68.3" font-family="Times,serif" font-size="14.00">read_number_consensus_relays()</text>
-<text text-anchor="start" x="1315.5" y="-53.3" font-family="Times,serif" font-size="14.00">to_plt()</text>
-<text text-anchor="start" x="1315.5" y="-38.3" font-family="Times,serif" font-size="14.00">update_progress()</text>
-<text text-anchor="start" x="1315.5" y="-23.3" font-family="Times,serif" font-size="14.00">warn_if_not_accurate_enough()</text>
-<text text-anchor="start" x="1315.5" y="-8.3" font-family="Times,serif" font-size="14.00">write()</text>
-</g>
-<!-- 12 -->
-<g id="node13" class="node"><title>12</title>
-<polygon fill="none" stroke="black" points="1523.5,-23 1523.5,-377 1727.5,-377 1727.5,-23 1523.5,-23"/>
-<text text-anchor="middle" x="1625.5" y="-361.8" font-family="Times,serif" font-size="14.00">V3BWHeader</text>
-<polyline fill="none" stroke="black" points="1523.5,-354 1727.5,-354 "/>
-<text text-anchor="start" x="1531.5" y="-338.8" font-family="Times,serif" font-size="14.00">file_created</text>
-<text text-anchor="start" x="1531.5" y="-323.8" font-family="Times,serif" font-size="14.00">keyvalue_tuple_ls</text>
-<text text-anchor="start" x="1531.5" y="-308.8" font-family="Times,serif" font-size="14.00">keyvalue_unordered_tuple_ls</text>
-<text text-anchor="start" x="1531.5" y="-293.8" font-family="Times,serif" font-size="14.00">keyvalue_v110str_ls</text>
-<text text-anchor="start" x="1531.5" y="-278.8" font-family="Times,serif" font-size="14.00">keyvalue_v200_ls</text>
-<text text-anchor="start" x="1531.5" y="-263.8" font-family="Times,serif" font-size="14.00">latest_bandwidth</text>
-<text text-anchor="start" x="1531.5" y="-248.8" font-family="Times,serif" font-size="14.00">num_lines</text>
-<text text-anchor="start" x="1531.5" y="-233.8" font-family="Times,serif" font-size="14.00">software</text>
-<text text-anchor="start" x="1531.5" y="-218.8" font-family="Times,serif" font-size="14.00">software_version</text>
-<text text-anchor="start" x="1531.5" y="-203.8" font-family="Times,serif" font-size="14.00">strv110</text>
-<text text-anchor="start" x="1531.5" y="-188.8" font-family="Times,serif" font-size="14.00">strv200</text>
-<text text-anchor="start" x="1531.5" y="-173.8" font-family="Times,serif" font-size="14.00">timestamp</text>
-<text text-anchor="start" x="1531.5" y="-158.8" font-family="Times,serif" font-size="14.00">version</text>
-<polyline fill="none" stroke="black" points="1523.5,-151 1727.5,-151 "/>
-<text text-anchor="start" x="1531.5" y="-135.8" font-family="Times,serif" font-size="14.00">add_stats()</text>
-<text text-anchor="start" x="1531.5" y="-120.8" font-family="Times,serif" font-size="14.00">earliest_bandwidth_from_results()</text>
-<text text-anchor="start" x="1531.5" y="-105.8" font-family="Times,serif" font-size="14.00">from_lines_v100()</text>
-<text text-anchor="start" x="1531.5" y="-90.8" font-family="Times,serif" font-size="14.00">from_lines_v110()</text>
-<text text-anchor="start" x="1531.5" y="-75.8" font-family="Times,serif" font-size="14.00">from_results()</text>
-<text text-anchor="start" x="1531.5" y="-60.8" font-family="Times,serif" font-size="14.00">from_text_v110()</text>
-<text text-anchor="start" x="1531.5" y="-45.8" font-family="Times,serif" font-size="14.00">generator_started_from_file()</text>
-<text text-anchor="start" x="1531.5" y="-30.8" font-family="Times,serif" font-size="14.00">latest_bandwidth_from_results()</text>
-</g>
-<!-- 13 -->
-<g id="node14" class="node"><title>13</title>
-<polygon fill="none" stroke="black" points="1746,-53 1746,-347 1957,-347 1957,-53 1746,-53"/>
-<text text-anchor="middle" x="1851.5" y="-331.8" font-family="Times,serif" font-size="14.00">V3BWLine</text>
-<polyline fill="none" stroke="black" points="1746,-324 1957,-324 "/>
-<text text-anchor="start" x="1754" y="-308.8" font-family="Times,serif" font-size="14.00">bw</text>
-<text text-anchor="start" x="1754" y="-293.8" font-family="Times,serif" font-size="14.00">bw_keyvalue_tuple_ls</text>
-<text text-anchor="start" x="1754" y="-278.8" font-family="Times,serif" font-size="14.00">bw_keyvalue_v110str_ls</text>
-<text text-anchor="start" x="1754" y="-263.8" font-family="Times,serif" font-size="14.00">bw_strv110</text>
-<text text-anchor="start" x="1754" y="-248.8" font-family="Times,serif" font-size="14.00">node_id</text>
-<polyline fill="none" stroke="black" points="1746,-241 1957,-241 "/>
-<text text-anchor="start" x="1754" y="-225.8" font-family="Times,serif" font-size="14.00">bw_mean_from_results()</text>
-<text text-anchor="start" x="1754" y="-210.8" font-family="Times,serif" font-size="14.00">bw_median_from_results()</text>
-<text text-anchor="start" x="1754" y="-195.8" font-family="Times,serif" font-size="14.00">desc_bw_obs_last_from_results()</text>
-<text text-anchor="start" x="1754" y="-180.8" font-family="Times,serif" font-size="14.00">desc_bw_obs_mean_from_results()</text>
-<text text-anchor="start" x="1754" y="-165.8" font-family="Times,serif" font-size="14.00">from_bw_line_v110()</text>
-<text text-anchor="start" x="1754" y="-150.8" font-family="Times,serif" font-size="14.00">from_data()</text>
-<text text-anchor="start" x="1754" y="-135.8" font-family="Times,serif" font-size="14.00">from_results()</text>
-<text text-anchor="start" x="1754" y="-120.8" font-family="Times,serif" font-size="14.00">last_time_from_results()</text>
-<text text-anchor="start" x="1754" y="-105.8" font-family="Times,serif" font-size="14.00">result_types_from_results()</text>
-<text text-anchor="start" x="1754" y="-90.8" font-family="Times,serif" font-size="14.00">results_away_each_other()</text>
-<text text-anchor="start" x="1754" y="-75.8" font-family="Times,serif" font-size="14.00">results_recent_than()</text>
-<text text-anchor="start" x="1754" y="-60.8" font-family="Times,serif" font-size="14.00">rtt_from_results()</text>
-</g>
-</g>
-</svg>
diff --git a/docs/source/images/critical_sections.svg b/docs/source/images/critical_sections.svg
new file mode 100644
index 0000000..32881ce
--- /dev/null
+++ b/docs/source/images/critical_sections.svg
@@ -0,0 +1,516 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="463pt" height="653pt" viewBox="0 0 463 653" version="1.1">
+<defs>
+<g>
+<symbol overflow="visible" id="glyph0-0">
+<path style="stroke:none;" d="M 0.65625 2.296875 L 0.65625 -9.171875 L 7.15625 -9.171875 L 7.15625 2.296875 Z M 1.390625 1.578125 L 6.4375 1.578125 L 6.4375 -8.4375 L 1.390625 -8.4375 Z M 1.390625 1.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-1">
+<path style="stroke:none;" d="M 7.328125 -5.640625 C 7.078125 -5.835938 6.820312 -5.976562 6.5625 -6.0625 C 6.3125 -6.15625 6.03125 -6.203125 5.71875 -6.203125 C 4.988281 -6.203125 4.429688 -5.972656 4.046875 -5.515625 C 3.660156 -5.054688 3.46875 -4.394531 3.46875 -3.53125 L 3.46875 0 L 2.296875 0 L 2.296875 -7.109375 L 3.46875 -7.109375 L 3.46875 -5.71875 C 3.664062 -6.21875 3.96875 -6.601562 4.375 -6.875 C 4.78125 -7.144531 5.257812 -7.28125 5.8125 -7.28125 C 6.09375 -7.28125 6.359375 -7.242188 6.609375 -7.171875 C 6.859375 -7.097656 7.097656 -6.988281 7.328125 -6.84375 Z M 7.328125 -5.640625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-2">
+<path style="stroke:none;" d="M 7.0625 -3.84375 L 7.0625 -3.28125 L 2 -3.28125 L 2 -3.234375 C 2 -2.460938 2.203125 -1.863281 2.609375 -1.4375 C 3.015625 -1.019531 3.582031 -0.8125 4.3125 -0.8125 C 4.6875 -0.8125 5.078125 -0.867188 5.484375 -0.984375 C 5.890625 -1.097656 6.320312 -1.28125 6.78125 -1.53125 L 6.78125 -0.359375 C 6.34375 -0.179688 5.914062 -0.046875 5.5 0.046875 C 5.082031 0.140625 4.679688 0.1875 4.296875 0.1875 C 3.191406 0.1875 2.328125 -0.140625 1.703125 -0.796875 C 1.085938 -1.460938 0.78125 -2.378906 0.78125 -3.546875 C 0.78125 -4.679688 1.082031 -5.585938 1.6875 -6.265625 C 2.300781 -6.941406 3.113281 -7.28125 4.125 -7.28125 C 5.03125 -7.28125 5.742188 -6.972656 6.265625 -6.359375 C 6.796875 -5.742188 7.0625 -4.90625 7.0625 -3.84375 Z M 5.890625 -4.1875 C 5.867188 -4.875 5.703125 -5.394531 5.390625 -5.75 C 5.085938 -6.113281 4.648438 -6.296875 4.078125 -6.296875 C 3.515625 -6.296875 3.050781 -6.109375 2.6875 -5.734375 C 2.320312 -5.359375 2.109375 -4.84375 2.046
875 -4.1875 Z M 5.890625 -4.1875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-3">
+<path style="stroke:none;" d="M 6.75 -9.875 L 6.75 -8.90625 L 5.421875 -8.90625 C 5.003906 -8.90625 4.710938 -8.816406 4.546875 -8.640625 C 4.378906 -8.472656 4.296875 -8.171875 4.296875 -7.734375 L 4.296875 -7.109375 L 6.75 -7.109375 L 6.75 -6.203125 L 4.296875 -6.203125 L 4.296875 0 L 3.140625 0 L 3.140625 -6.203125 L 1.234375 -6.203125 L 1.234375 -7.109375 L 3.140625 -7.109375 L 3.140625 -7.609375 C 3.140625 -8.378906 3.316406 -8.945312 3.671875 -9.3125 C 4.023438 -9.6875 4.582031 -9.875 5.34375 -9.875 Z M 6.75 -9.875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-4">
+<path style="stroke:none;" d="M 6.171875 -6.859375 L 6.171875 -5.71875 C 5.835938 -5.914062 5.5 -6.0625 5.15625 -6.15625 C 4.820312 -6.25 4.476562 -6.296875 4.125 -6.296875 C 3.601562 -6.296875 3.210938 -6.210938 2.953125 -6.046875 C 2.691406 -5.878906 2.5625 -5.617188 2.5625 -5.265625 C 2.5625 -4.941406 2.65625 -4.703125 2.84375 -4.546875 C 3.039062 -4.390625 3.523438 -4.238281 4.296875 -4.09375 L 4.78125 -4 C 5.351562 -3.894531 5.785156 -3.675781 6.078125 -3.34375 C 6.378906 -3.007812 6.53125 -2.582031 6.53125 -2.0625 C 6.53125 -1.351562 6.28125 -0.800781 5.78125 -0.40625 C 5.289062 -0.0078125 4.597656 0.1875 3.703125 0.1875 C 3.359375 0.1875 2.992188 0.148438 2.609375 0.078125 C 2.222656 0.00390625 1.804688 -0.109375 1.359375 -0.265625 L 1.359375 -1.46875 C 1.785156 -1.238281 2.195312 -1.066406 2.59375 -0.953125 C 3 -0.847656 3.378906 -0.796875 3.734375 -0.796875 C 4.242188 -0.796875 4.640625 -0.898438 4.921875 -1.109375 C 5.210938 -1.316406 5.359375 -1.609375 5.359375 -1.984375
C 5.359375 -2.523438 4.835938 -2.898438 3.796875 -3.109375 L 3.75 -3.125 L 3.3125 -3.21875 C 2.632812 -3.34375 2.140625 -3.5625 1.828125 -3.875 C 1.523438 -4.1875 1.375 -4.609375 1.375 -5.140625 C 1.375 -5.828125 1.601562 -6.351562 2.0625 -6.71875 C 2.53125 -7.09375 3.191406 -7.28125 4.046875 -7.28125 C 4.421875 -7.28125 4.785156 -7.242188 5.140625 -7.171875 C 5.492188 -7.109375 5.835938 -7.003906 6.171875 -6.859375 Z M 6.171875 -6.859375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-5">
+<path style="stroke:none;" d="M 6.671875 -4.40625 L 6.671875 0 L 5.5 0 L 5.5 -4.40625 C 5.5 -5.039062 5.382812 -5.507812 5.15625 -5.8125 C 4.9375 -6.113281 4.585938 -6.265625 4.109375 -6.265625 C 3.554688 -6.265625 3.132812 -6.070312 2.84375 -5.6875 C 2.550781 -5.300781 2.40625 -4.742188 2.40625 -4.015625 L 2.40625 0 L 1.234375 0 L 1.234375 -9.875 L 2.40625 -9.875 L 2.40625 -6.046875 C 2.613281 -6.453125 2.894531 -6.757812 3.25 -6.96875 C 3.601562 -7.175781 4.023438 -7.28125 4.515625 -7.28125 C 5.234375 -7.28125 5.769531 -7.039062 6.125 -6.5625 C 6.488281 -6.09375 6.671875 -5.375 6.671875 -4.40625 Z M 6.671875 -4.40625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-6">
+<path style="stroke:none;" d="M 5.828125 -3.546875 C 5.828125 -4.453125 5.679688 -5.132812 5.390625 -5.59375 C 5.109375 -6.0625 4.6875 -6.296875 4.125 -6.296875 C 3.550781 -6.296875 3.117188 -6.0625 2.828125 -5.59375 C 2.535156 -5.132812 2.390625 -4.453125 2.390625 -3.546875 C 2.390625 -2.648438 2.535156 -1.96875 2.828125 -1.5 C 3.117188 -1.039062 3.550781 -0.8125 4.125 -0.8125 C 4.6875 -0.8125 5.109375 -1.039062 5.390625 -1.5 C 5.679688 -1.957031 5.828125 -2.640625 5.828125 -3.546875 Z M 2.390625 -6.203125 C 2.578125 -6.546875 2.832031 -6.8125 3.15625 -7 C 3.488281 -7.1875 3.867188 -7.28125 4.296875 -7.28125 C 5.160156 -7.28125 5.835938 -6.953125 6.328125 -6.296875 C 6.816406 -5.640625 7.0625 -4.734375 7.0625 -3.578125 C 7.0625 -2.398438 6.8125 -1.476562 6.3125 -0.8125 C 5.820312 -0.144531 5.148438 0.1875 4.296875 0.1875 C 3.867188 0.1875 3.492188 0.09375 3.171875 -0.09375 C 2.847656 -0.28125 2.585938 -0.546875 2.390625 -0.890625 L 2.390625 0 L 1.21875 0 L 1.21875 -9.875 L 2.390625
-9.875 Z M 2.390625 -6.203125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-7">
+<path style="stroke:none;" d="M 3.890625 -9.125 L 3.890625 -7.109375 L 6.546875 -7.109375 L 6.546875 -6.203125 L 3.890625 -6.203125 L 3.890625 -2.34375 C 3.890625 -1.820312 3.988281 -1.457031 4.1875 -1.25 C 4.394531 -1.039062 4.742188 -0.9375 5.234375 -0.9375 L 6.546875 -0.9375 L 6.546875 0 L 5.125 0 C 4.25 0 3.628906 -0.171875 3.265625 -0.515625 C 2.910156 -0.867188 2.734375 -1.476562 2.734375 -2.34375 L 2.734375 -6.203125 L 0.828125 -6.203125 L 0.828125 -7.109375 L 2.734375 -7.109375 L 2.734375 -9.125 Z M 3.890625 -9.125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-8">
+<path style="stroke:none;" d="M 7.828125 2.5625 L 7.828125 3.0625 L 0 3.0625 L 0 2.5625 Z M 7.828125 2.5625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-9">
+<path style="stroke:none;" d="M 2.375 -0.890625 L 2.375 2.703125 L 1.203125 2.703125 L 1.203125 -7.109375 L 2.375 -7.109375 L 2.375 -6.203125 C 2.570312 -6.554688 2.832031 -6.820312 3.15625 -7 C 3.476562 -7.1875 3.851562 -7.28125 4.28125 -7.28125 C 5.132812 -7.28125 5.804688 -6.945312 6.296875 -6.28125 C 6.785156 -5.613281 7.03125 -4.691406 7.03125 -3.515625 C 7.03125 -2.367188 6.785156 -1.460938 6.296875 -0.796875 C 5.804688 -0.140625 5.132812 0.1875 4.28125 0.1875 C 3.84375 0.1875 3.460938 0.09375 3.140625 -0.09375 C 2.816406 -0.28125 2.5625 -0.546875 2.375 -0.890625 Z M 5.8125 -3.546875 C 5.8125 -4.453125 5.664062 -5.132812 5.375 -5.59375 C 5.09375 -6.0625 4.671875 -6.296875 4.109375 -6.296875 C 3.535156 -6.296875 3.101562 -6.0625 2.8125 -5.59375 C 2.519531 -5.132812 2.375 -4.453125 2.375 -3.546875 C 2.375 -2.648438 2.519531 -1.96875 2.8125 -1.5 C 3.101562 -1.039062 3.535156 -0.8125 4.109375 -0.8125 C 4.671875 -0.8125 5.09375 -1.039062 5.375 -1.5 C 5.664062 -1.957031 5.8125 -2.64
0625 5.8125 -3.546875 Z M 5.8125 -3.546875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-10">
+<path style="stroke:none;" d="M 1.625 -7.109375 L 4.609375 -7.109375 L 4.609375 -0.90625 L 6.9375 -0.90625 L 6.9375 0 L 1.125 0 L 1.125 -0.90625 L 3.453125 -0.90625 L 3.453125 -6.203125 L 1.625 -6.203125 Z M 3.453125 -9.875 L 4.609375 -9.875 L 4.609375 -8.390625 L 3.453125 -8.390625 Z M 3.453125 -9.875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-11">
+<path style="stroke:none;" d="M 3.90625 -6.296875 C 3.3125 -6.296875 2.863281 -6.0625 2.5625 -5.59375 C 2.257812 -5.132812 2.109375 -4.453125 2.109375 -3.546875 C 2.109375 -2.648438 2.257812 -1.96875 2.5625 -1.5 C 2.863281 -1.039062 3.3125 -0.8125 3.90625 -0.8125 C 4.507812 -0.8125 4.960938 -1.039062 5.265625 -1.5 C 5.566406 -1.96875 5.71875 -2.648438 5.71875 -3.546875 C 5.71875 -4.453125 5.566406 -5.132812 5.265625 -5.59375 C 4.960938 -6.0625 4.507812 -6.296875 3.90625 -6.296875 Z M 3.90625 -7.28125 C 4.894531 -7.28125 5.648438 -6.957031 6.171875 -6.3125 C 6.691406 -5.675781 6.953125 -4.753906 6.953125 -3.546875 C 6.953125 -2.335938 6.691406 -1.410156 6.171875 -0.765625 C 5.648438 -0.128906 4.894531 0.1875 3.90625 0.1875 C 2.925781 0.1875 2.175781 -0.128906 1.65625 -0.765625 C 1.132812 -1.410156 0.875 -2.335938 0.875 -3.546875 C 0.875 -4.753906 1.132812 -5.675781 1.65625 -6.3125 C 2.175781 -6.957031 2.925781 -7.28125 3.90625 -7.28125 Z M 3.90625 -7.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-12">
+<path style="stroke:none;" d="M 5.453125 -2.28125 C 5.253906 -1.789062 5.003906 -1.140625 4.703125 -0.328125 C 4.285156 0.785156 4.003906 1.46875 3.859375 1.71875 C 3.660156 2.039062 3.414062 2.285156 3.125 2.453125 C 2.832031 2.617188 2.492188 2.703125 2.109375 2.703125 L 1.171875 2.703125 L 1.171875 1.734375 L 1.859375 1.734375 C 2.203125 1.734375 2.46875 1.628906 2.65625 1.421875 C 2.851562 1.222656 3.101562 0.710938 3.40625 -0.109375 L 0.65625 -7.109375 L 1.890625 -7.109375 L 4 -1.546875 L 6.078125 -7.109375 L 7.3125 -7.109375 Z M 5.453125 -2.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-13">
+<path style="stroke:none;" d="M 4.296875 -6.390625 C 4.429688 -6.691406 4.609375 -6.914062 4.828125 -7.0625 C 5.054688 -7.207031 5.328125 -7.28125 5.640625 -7.28125 C 6.210938 -7.28125 6.613281 -7.054688 6.84375 -6.609375 C 7.082031 -6.171875 7.203125 -5.34375 7.203125 -4.125 L 7.203125 0 L 6.140625 0 L 6.140625 -4.0625 C 6.140625 -5.070312 6.082031 -5.695312 5.96875 -5.9375 C 5.851562 -6.175781 5.648438 -6.296875 5.359375 -6.296875 C 5.015625 -6.296875 4.78125 -6.164062 4.65625 -5.90625 C 4.53125 -5.644531 4.46875 -5.03125 4.46875 -4.0625 L 4.46875 0 L 3.40625 0 L 3.40625 -4.0625 C 3.40625 -5.082031 3.34375 -5.707031 3.21875 -5.9375 C 3.101562 -6.175781 2.890625 -6.296875 2.578125 -6.296875 C 2.265625 -6.296875 2.046875 -6.164062 1.921875 -5.90625 C 1.804688 -5.644531 1.75 -5.03125 1.75 -4.0625 L 1.75 0 L 0.6875 0 L 0.6875 -7.109375 L 1.75 -7.109375 L 1.75 -6.5 C 1.894531 -6.75 2.070312 -6.941406 2.28125 -7.078125 C 2.488281 -7.210938 2.722656 -7.28125 2.984375 -7.28125 C 3.304688
-7.28125 3.570312 -7.207031 3.78125 -7.0625 C 4 -6.914062 4.171875 -6.691406 4.296875 -6.390625 Z M 4.296875 -6.390625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-14">
+<path style="stroke:none;" d="M 4.453125 -3.578125 L 4.0625 -3.578125 C 3.382812 -3.578125 2.875 -3.457031 2.53125 -3.21875 C 2.1875 -2.976562 2.015625 -2.617188 2.015625 -2.140625 C 2.015625 -1.710938 2.140625 -1.378906 2.390625 -1.140625 C 2.648438 -0.910156 3.007812 -0.796875 3.46875 -0.796875 C 4.113281 -0.796875 4.617188 -1.019531 4.984375 -1.46875 C 5.359375 -1.914062 5.546875 -2.53125 5.546875 -3.3125 L 5.546875 -3.578125 Z M 6.71875 -4.0625 L 6.71875 0 L 5.546875 0 L 5.546875 -1.046875 C 5.296875 -0.628906 4.976562 -0.316406 4.59375 -0.109375 C 4.21875 0.0859375 3.757812 0.1875 3.21875 0.1875 C 2.5 0.1875 1.921875 -0.015625 1.484375 -0.421875 C 1.054688 -0.835938 0.84375 -1.382812 0.84375 -2.0625 C 0.84375 -2.851562 1.109375 -3.453125 1.640625 -3.859375 C 2.171875 -4.273438 2.953125 -4.484375 3.984375 -4.484375 L 5.546875 -4.484375 L 5.546875 -4.671875 C 5.546875 -5.234375 5.398438 -5.644531 5.109375 -5.90625 C 4.828125 -6.164062 4.378906 -6.296875 3.765625 -6.296875 C 3.359
375 -6.296875 2.953125 -6.238281 2.546875 -6.125 C 2.140625 -6.007812 1.742188 -5.84375 1.359375 -5.625 L 1.359375 -6.78125 C 1.796875 -6.945312 2.210938 -7.070312 2.609375 -7.15625 C 3.003906 -7.238281 3.390625 -7.28125 3.765625 -7.28125 C 4.347656 -7.28125 4.847656 -7.191406 5.265625 -7.015625 C 5.679688 -6.847656 6.019531 -6.585938 6.28125 -6.234375 C 6.4375 -6.023438 6.546875 -5.765625 6.609375 -5.453125 C 6.679688 -5.140625 6.71875 -4.675781 6.71875 -4.0625 Z M 6.71875 -4.0625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-15">
+<path style="stroke:none;" d="M 1.234375 -2.6875 L 1.234375 -7.09375 L 2.40625 -7.09375 L 2.40625 -2.6875 C 2.40625 -2.050781 2.515625 -1.582031 2.734375 -1.28125 C 2.960938 -0.976562 3.316406 -0.828125 3.796875 -0.828125 C 4.347656 -0.828125 4.769531 -1.019531 5.0625 -1.40625 C 5.351562 -1.800781 5.5 -2.359375 5.5 -3.078125 L 5.5 -7.09375 L 6.671875 -7.09375 L 6.671875 0 L 5.5 0 L 5.5 -1.0625 C 5.289062 -0.65625 5.003906 -0.34375 4.640625 -0.125 C 4.285156 0.0820312 3.867188 0.1875 3.390625 0.1875 C 2.660156 0.1875 2.117188 -0.0507812 1.765625 -0.53125 C 1.410156 -1.007812 1.234375 -1.726562 1.234375 -2.6875 Z M 1.234375 -2.6875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-16">
+<path style="stroke:none;" d="M 4.0625 -2.578125 C 4.0625 -2.054688 4.15625 -1.660156 4.34375 -1.390625 C 4.539062 -1.117188 4.828125 -0.984375 5.203125 -0.984375 L 6.5625 -0.984375 L 6.5625 0 L 5.078125 0 C 4.378906 0 3.835938 -0.222656 3.453125 -0.671875 C 3.078125 -1.117188 2.890625 -1.753906 2.890625 -2.578125 L 2.890625 -9.03125 L 1.015625 -9.03125 L 1.015625 -9.953125 L 4.0625 -9.953125 Z M 4.0625 -2.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-17">
+<path style="stroke:none;" d="M 4.828125 -4.46875 C 5.148438 -4.382812 5.425781 -4.222656 5.65625 -3.984375 C 5.894531 -3.753906 6.1875 -3.289062 6.53125 -2.59375 L 7.828125 0 L 6.453125 0 L 5.3125 -2.390625 C 4.988281 -3.078125 4.695312 -3.515625 4.4375 -3.703125 C 4.175781 -3.898438 3.835938 -4 3.421875 -4 L 2.203125 -4 L 2.203125 0 L 0.90625 0 L 0.90625 -9.484375 L 3.546875 -9.484375 C 4.585938 -9.484375 5.382812 -9.242188 5.9375 -8.765625 C 6.488281 -8.296875 6.765625 -7.617188 6.765625 -6.734375 C 6.765625 -6.109375 6.59375 -5.597656 6.25 -5.203125 C 5.914062 -4.804688 5.441406 -4.5625 4.828125 -4.46875 Z M 2.203125 -8.421875 L 2.203125 -5.0625 L 3.59375 -5.0625 C 4.207031 -5.0625 4.664062 -5.195312 4.96875 -5.46875 C 5.269531 -5.75 5.421875 -6.171875 5.421875 -6.734375 C 5.421875 -7.273438 5.257812 -7.691406 4.9375 -7.984375 C 4.625 -8.273438 4.160156 -8.421875 3.546875 -8.421875 Z M 2.203125 -8.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-18">
+<path style="stroke:none;" d="M 2.765625 -1.046875 C 3.847656 -1.046875 4.601562 -1.3125 5.03125 -1.84375 C 5.457031 -2.375 5.671875 -3.335938 5.671875 -4.734375 C 5.671875 -6.128906 5.457031 -7.09375 5.03125 -7.625 C 4.601562 -8.15625 3.847656 -8.421875 2.765625 -8.421875 L 2.15625 -8.421875 L 2.15625 -1.046875 Z M 2.796875 -9.484375 C 4.242188 -9.484375 5.304688 -9.097656 5.984375 -8.328125 C 6.671875 -7.554688 7.015625 -6.359375 7.015625 -4.734375 C 7.015625 -3.109375 6.671875 -1.910156 5.984375 -1.140625 C 5.304688 -0.378906 4.242188 0 2.796875 0 L 0.875 0 L 0.875 -9.484375 Z M 2.796875 -9.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-19">
+<path style="stroke:none;" d="M 3.109375 -1.9375 L 4.703125 -1.9375 L 4.703125 0 L 3.109375 0 Z M 3.109375 -1.9375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-20">
+<path style="stroke:none;" d="M 6.671875 -4.40625 L 6.671875 0 L 5.5 0 L 5.5 -4.40625 C 5.5 -5.039062 5.382812 -5.507812 5.15625 -5.8125 C 4.9375 -6.113281 4.585938 -6.265625 4.109375 -6.265625 C 3.554688 -6.265625 3.132812 -6.070312 2.84375 -5.6875 C 2.550781 -5.300781 2.40625 -4.742188 2.40625 -4.015625 L 2.40625 0 L 1.234375 0 L 1.234375 -7.109375 L 2.40625 -7.109375 L 2.40625 -6.046875 C 2.613281 -6.453125 2.894531 -6.757812 3.25 -6.96875 C 3.601562 -7.175781 4.023438 -7.28125 4.515625 -7.28125 C 5.234375 -7.28125 5.769531 -7.039062 6.125 -6.5625 C 6.488281 -6.09375 6.671875 -5.375 6.671875 -4.40625 Z M 6.671875 -4.40625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-21">
+<path style="stroke:none;" d="M 7.09375 -7.109375 L 4.546875 -3.703125 L 7.34375 0 L 6 0 L 3.90625 -2.84375 L 1.828125 0 L 0.484375 0 L 3.28125 -3.703125 L 0.734375 -7.109375 L 2.03125 -7.109375 L 3.90625 -4.53125 L 5.78125 -7.109375 Z M 7.09375 -7.109375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-22">
+<path style="stroke:none;" d="M 0 -7.109375 L 1.15625 -7.109375 L 2.390625 -1.359375 L 3.40625 -5.03125 L 4.40625 -5.03125 L 5.4375 -1.359375 L 6.671875 -7.109375 L 7.828125 -7.109375 L 6.15625 0 L 5.046875 0 L 3.90625 -3.890625 L 2.78125 0 L 1.65625 0 Z M 0 -7.109375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph0-23">
+<path style="stroke:none;" d="M 5.453125 -6.203125 L 5.453125 -9.875 L 6.609375 -9.875 L 6.609375 0 L 5.453125 0 L 5.453125 -0.890625 C 5.253906 -0.546875 4.992188 -0.28125 4.671875 -0.09375 C 4.347656 0.09375 3.972656 0.1875 3.546875 0.1875 C 2.691406 0.1875 2.015625 -0.144531 1.515625 -0.8125 C 1.023438 -1.476562 0.78125 -2.398438 0.78125 -3.578125 C 0.78125 -4.734375 1.023438 -5.640625 1.515625 -6.296875 C 2.015625 -6.953125 2.691406 -7.28125 3.546875 -7.28125 C 3.972656 -7.28125 4.347656 -7.1875 4.671875 -7 C 5.003906 -6.820312 5.265625 -6.554688 5.453125 -6.203125 Z M 2.015625 -3.546875 C 2.015625 -2.640625 2.15625 -1.957031 2.4375 -1.5 C 2.726562 -1.039062 3.15625 -0.8125 3.71875 -0.8125 C 4.28125 -0.8125 4.707031 -1.039062 5 -1.5 C 5.300781 -1.96875 5.453125 -2.648438 5.453125 -3.546875 C 5.453125 -4.453125 5.300781 -5.132812 5 -5.59375 C 4.707031 -6.0625 4.28125 -6.296875 3.71875 -6.296875 C 3.15625 -6.296875 2.726562 -6.0625 2.4375 -5.59375 C 2.15625 -5.132812 2.015625 -4.4
53125 2.015625 -3.546875 Z M 2.015625 -3.546875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-0">
+<path style="stroke:none;" d="M 0.640625 2.296875 L 0.640625 -9.171875 L 7.140625 -9.171875 L 7.140625 2.296875 Z M 1.375 1.578125 L 6.421875 1.578125 L 6.421875 -8.4375 L 1.375 -8.4375 Z M 1.375 1.578125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-1">
+<path style="stroke:none;" d="M 0.546875 -7.109375 L 1.71875 -7.109375 L 3.171875 -1.5625 L 4.625 -7.109375 L 6 -7.109375 L 7.46875 -1.5625 L 8.921875 -7.109375 L 10.09375 -7.109375 L 8.234375 0 L 6.84375 0 L 5.3125 -5.828125 L 3.78125 0 L 2.40625 0 Z M 0.546875 -7.109375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-2">
+<path style="stroke:none;" d="M 5.34375 -6.015625 C 5.207031 -6.085938 5.0625 -6.140625 4.90625 -6.171875 C 4.757812 -6.210938 4.59375 -6.234375 4.40625 -6.234375 C 3.75 -6.234375 3.242188 -6.019531 2.890625 -5.59375 C 2.535156 -5.164062 2.359375 -4.550781 2.359375 -3.75 L 2.359375 0 L 1.1875 0 L 1.1875 -7.109375 L 2.359375 -7.109375 L 2.359375 -6 C 2.597656 -6.4375 2.914062 -6.757812 3.3125 -6.96875 C 3.707031 -7.175781 4.1875 -7.28125 4.75 -7.28125 C 4.832031 -7.28125 4.921875 -7.273438 5.015625 -7.265625 C 5.109375 -7.253906 5.21875 -7.238281 5.34375 -7.21875 Z M 5.34375 -6.015625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-3">
+<path style="stroke:none;" d="M 1.21875 -7.109375 L 2.390625 -7.109375 L 2.390625 0 L 1.21875 0 Z M 1.21875 -9.875 L 2.390625 -9.875 L 2.390625 -8.390625 L 1.21875 -8.390625 Z M 1.21875 -9.875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-4">
+<path style="stroke:none;" d="M 2.375 -9.125 L 2.375 -7.109375 L 4.78125 -7.109375 L 4.78125 -6.203125 L 2.375 -6.203125 L 2.375 -2.34375 C 2.375 -1.757812 2.453125 -1.382812 2.609375 -1.21875 C 2.773438 -1.0625 3.101562 -0.984375 3.59375 -0.984375 L 4.78125 -0.984375 L 4.78125 0 L 3.59375 0 C 2.6875 0 2.0625 -0.164062 1.71875 -0.5 C 1.375 -0.84375 1.203125 -1.457031 1.203125 -2.34375 L 1.203125 -6.203125 L 0.34375 -6.203125 L 0.34375 -7.109375 L 1.203125 -7.109375 L 1.203125 -9.125 Z M 2.375 -9.125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-5">
+<path style="stroke:none;" d="M 7.3125 -3.84375 L 7.3125 -3.28125 L 1.9375 -3.28125 C 1.988281 -2.46875 2.226562 -1.851562 2.65625 -1.4375 C 3.09375 -1.019531 3.695312 -0.8125 4.46875 -0.8125 C 4.914062 -0.8125 5.347656 -0.863281 5.765625 -0.96875 C 6.191406 -1.082031 6.613281 -1.25 7.03125 -1.46875 L 7.03125 -0.359375 C 6.613281 -0.179688 6.179688 -0.046875 5.734375 0.046875 C 5.296875 0.140625 4.851562 0.1875 4.40625 0.1875 C 3.269531 0.1875 2.367188 -0.140625 1.703125 -0.796875 C 1.046875 -1.460938 0.71875 -2.359375 0.71875 -3.484375 C 0.71875 -4.648438 1.03125 -5.570312 1.65625 -6.25 C 2.289062 -6.9375 3.140625 -7.28125 4.203125 -7.28125 C 5.160156 -7.28125 5.914062 -6.972656 6.46875 -6.359375 C 7.03125 -5.742188 7.3125 -4.90625 7.3125 -3.84375 Z M 6.140625 -4.1875 C 6.128906 -4.820312 5.945312 -5.332031 5.59375 -5.71875 C 5.25 -6.101562 4.789062 -6.296875 4.21875 -6.296875 C 3.5625 -6.296875 3.035156 -6.109375 2.640625 -5.734375 C 2.253906 -5.367188 2.03125 -4.851562 1.96875 -4
.1875 Z M 6.140625 -4.1875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-6">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph1-7">
+<path style="stroke:none;" d="M 4.03125 -9.859375 C 3.46875 -8.890625 3.046875 -7.925781 2.765625 -6.96875 C 2.492188 -6.019531 2.359375 -5.054688 2.359375 -4.078125 C 2.359375 -3.097656 2.492188 -2.128906 2.765625 -1.171875 C 3.046875 -0.210938 3.46875 0.75 4.03125 1.71875 L 3.015625 1.71875 C 2.378906 0.71875 1.90625 -0.257812 1.59375 -1.21875 C 1.28125 -2.175781 1.125 -3.128906 1.125 -4.078125 C 1.125 -5.023438 1.28125 -5.972656 1.59375 -6.921875 C 1.90625 -7.878906 2.378906 -8.859375 3.015625 -9.859375 Z M 4.03125 -9.859375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-8">
+<path style="stroke:none;" d="M 1.21875 -9.875 L 2.390625 -9.875 L 2.390625 0 L 1.21875 0 Z M 1.21875 -9.875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-9">
+<path style="stroke:none;" d="M 3.984375 -6.296875 C 3.359375 -6.296875 2.863281 -6.050781 2.5 -5.5625 C 2.132812 -5.070312 1.953125 -4.398438 1.953125 -3.546875 C 1.953125 -2.691406 2.128906 -2.019531 2.484375 -1.53125 C 2.847656 -1.050781 3.347656 -0.8125 3.984375 -0.8125 C 4.597656 -0.8125 5.085938 -1.054688 5.453125 -1.546875 C 5.816406 -2.035156 6 -2.703125 6 -3.546875 C 6 -4.390625 5.816406 -5.054688 5.453125 -5.546875 C 5.085938 -6.046875 4.597656 -6.296875 3.984375 -6.296875 Z M 3.984375 -7.28125 C 4.992188 -7.28125 5.789062 -6.945312 6.375 -6.28125 C 6.957031 -5.625 7.25 -4.710938 7.25 -3.546875 C 7.25 -2.378906 6.957031 -1.460938 6.375 -0.796875 C 5.789062 -0.140625 4.992188 0.1875 3.984375 0.1875 C 2.960938 0.1875 2.160156 -0.140625 1.578125 -0.796875 C 1.003906 -1.460938 0.71875 -2.378906 0.71875 -3.546875 C 0.71875 -4.710938 1.003906 -5.625 1.578125 -6.28125 C 2.160156 -6.945312 2.960938 -7.28125 3.984375 -7.28125 Z M 3.984375 -7.28125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-10">
+<path style="stroke:none;" d="M 6.34375 -6.84375 L 6.34375 -5.75 C 6.007812 -5.925781 5.675781 -6.0625 5.34375 -6.15625 C 5.007812 -6.25 4.675781 -6.296875 4.34375 -6.296875 C 3.582031 -6.296875 2.992188 -6.050781 2.578125 -5.5625 C 2.160156 -5.082031 1.953125 -4.410156 1.953125 -3.546875 C 1.953125 -2.679688 2.160156 -2.007812 2.578125 -1.53125 C 2.992188 -1.050781 3.582031 -0.8125 4.34375 -0.8125 C 4.675781 -0.8125 5.007812 -0.851562 5.34375 -0.9375 C 5.675781 -1.03125 6.007812 -1.171875 6.34375 -1.359375 L 6.34375 -0.265625 C 6.019531 -0.117188 5.679688 -0.0078125 5.328125 0.0625 C 4.984375 0.144531 4.613281 0.1875 4.21875 0.1875 C 3.144531 0.1875 2.289062 -0.144531 1.65625 -0.8125 C 1.03125 -1.488281 0.71875 -2.398438 0.71875 -3.546875 C 0.71875 -4.703125 1.035156 -5.613281 1.671875 -6.28125 C 2.304688 -6.945312 3.179688 -7.28125 4.296875 -7.28125 C 4.648438 -7.28125 5 -7.242188 5.34375 -7.171875 C 5.6875 -7.097656 6.019531 -6.988281 6.34375 -6.84375 Z M 6.34375 -6.84375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-11">
+<path style="stroke:none;" d="M 1.1875 -9.875 L 2.359375 -9.875 L 2.359375 -4.046875 L 5.84375 -7.109375 L 7.328125 -7.109375 L 3.5625 -3.78125 L 7.484375 0 L 5.96875 0 L 2.359375 -3.46875 L 2.359375 0 L 1.1875 0 Z M 1.1875 -9.875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-12">
+<path style="stroke:none;" d="M 1.046875 -9.859375 L 2.0625 -9.859375 C 2.695312 -8.859375 3.171875 -7.878906 3.484375 -6.921875 C 3.796875 -5.972656 3.953125 -5.023438 3.953125 -4.078125 C 3.953125 -3.128906 3.796875 -2.175781 3.484375 -1.21875 C 3.171875 -0.257812 2.695312 0.71875 2.0625 1.71875 L 1.046875 1.71875 C 1.609375 0.75 2.023438 -0.210938 2.296875 -1.171875 C 2.578125 -2.128906 2.71875 -3.097656 2.71875 -4.078125 C 2.71875 -5.054688 2.578125 -6.019531 2.296875 -6.96875 C 2.023438 -7.925781 1.609375 -8.890625 1.046875 -9.859375 Z M 1.046875 -9.859375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-13">
+<path style="stroke:none;" d="M 4.453125 -3.578125 C 3.515625 -3.578125 2.863281 -3.46875 2.5 -3.25 C 2.132812 -3.03125 1.953125 -2.660156 1.953125 -2.140625 C 1.953125 -1.734375 2.085938 -1.40625 2.359375 -1.15625 C 2.628906 -0.914062 3 -0.796875 3.46875 -0.796875 C 4.113281 -0.796875 4.632812 -1.023438 5.03125 -1.484375 C 5.425781 -1.941406 5.625 -2.550781 5.625 -3.3125 L 5.625 -3.578125 Z M 6.78125 -4.0625 L 6.78125 0 L 5.625 0 L 5.625 -1.078125 C 5.351562 -0.648438 5.019531 -0.332031 4.625 -0.125 C 4.226562 0.0820312 3.738281 0.1875 3.15625 0.1875 C 2.425781 0.1875 1.847656 -0.015625 1.421875 -0.421875 C 0.992188 -0.835938 0.78125 -1.382812 0.78125 -2.0625 C 0.78125 -2.863281 1.046875 -3.46875 1.578125 -3.875 C 2.117188 -4.28125 2.921875 -4.484375 3.984375 -4.484375 L 5.625 -4.484375 L 5.625 -4.609375 C 5.625 -5.140625 5.445312 -5.550781 5.09375 -5.84375 C 4.738281 -6.144531 4.238281 -6.296875 3.59375 -6.296875 C 3.1875 -6.296875 2.789062 -6.242188 2.40625 -6.140625 C 2.019531 -
6.046875 1.648438 -5.898438 1.296875 -5.703125 L 1.296875 -6.78125 C 1.722656 -6.945312 2.140625 -7.070312 2.546875 -7.15625 C 2.953125 -7.238281 3.34375 -7.28125 3.71875 -7.28125 C 4.75 -7.28125 5.515625 -7.015625 6.015625 -6.484375 C 6.523438 -5.953125 6.78125 -5.144531 6.78125 -4.0625 Z M 6.78125 -4.0625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph1-14">
+<path style="stroke:none;" d="M 5.90625 -6.03125 L 5.90625 -9.875 L 7.078125 -9.875 L 7.078125 0 L 5.90625 0 L 5.90625 -1.0625 C 5.65625 -0.644531 5.34375 -0.332031 4.96875 -0.125 C 4.59375 0.0820312 4.144531 0.1875 3.625 0.1875 C 2.769531 0.1875 2.070312 -0.15625 1.53125 -0.84375 C 0.988281 -1.53125 0.71875 -2.429688 0.71875 -3.546875 C 0.71875 -4.660156 0.988281 -5.5625 1.53125 -6.25 C 2.070312 -6.9375 2.769531 -7.28125 3.625 -7.28125 C 4.144531 -7.28125 4.59375 -7.175781 4.96875 -6.96875 C 5.34375 -6.769531 5.65625 -6.457031 5.90625 -6.03125 Z M 1.921875 -3.546875 C 1.921875 -2.691406 2.097656 -2.019531 2.453125 -1.53125 C 2.804688 -1.039062 3.289062 -0.796875 3.90625 -0.796875 C 4.53125 -0.796875 5.019531 -1.039062 5.375 -1.53125 C 5.726562 -2.019531 5.90625 -2.691406 5.90625 -3.546875 C 5.90625 -4.410156 5.726562 -5.082031 5.375 -5.5625 C 5.019531 -6.050781 4.53125 -6.296875 3.90625 -6.296875 C 3.289062 -6.296875 2.804688 -6.050781 2.453125 -5.5625 C 2.097656 -5.082031 1.921875
-4.410156 1.921875 -3.546875 Z M 1.921875 -3.546875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-0">
+<path style="stroke:none;" d="M 0.796875 2.828125 L 0.796875 -11.28125 L 8.796875 -11.28125 L 8.796875 2.828125 Z M 1.703125 1.9375 L 7.90625 1.9375 L 7.90625 -10.390625 L 1.703125 -10.390625 Z M 1.703125 1.9375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-1">
+<path style="stroke:none;" d="M 5.75 -6.5 C 6.375 -6.5 6.820312 -6.613281 7.09375 -6.84375 C 7.375 -7.082031 7.515625 -7.46875 7.515625 -8 C 7.515625 -8.53125 7.375 -8.910156 7.09375 -9.140625 C 6.820312 -9.367188 6.375 -9.484375 5.75 -9.484375 L 4.484375 -9.484375 L 4.484375 -6.5 Z M 4.484375 -4.421875 L 4.484375 0 L 1.46875 0 L 1.46875 -11.671875 L 6.0625 -11.671875 C 7.601562 -11.671875 8.726562 -11.410156 9.4375 -10.890625 C 10.15625 -10.378906 10.515625 -9.566406 10.515625 -8.453125 C 10.515625 -7.679688 10.328125 -7.046875 9.953125 -6.546875 C 9.585938 -6.054688 9.03125 -5.691406 8.28125 -5.453125 C 8.6875 -5.359375 9.050781 -5.144531 9.375 -4.8125 C 9.707031 -4.488281 10.039062 -3.988281 10.375 -3.3125 L 12 0 L 8.796875 0 L 7.375 -2.90625 C 7.09375 -3.488281 6.800781 -3.882812 6.5 -4.09375 C 6.207031 -4.3125 5.816406 -4.421875 5.328125 -4.421875 Z M 4.484375 -4.421875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-2">
+<path style="stroke:none;" d="M 10.078125 -4.40625 L 10.078125 -3.609375 L 3.546875 -3.609375 C 3.609375 -2.953125 3.84375 -2.457031 4.25 -2.125 C 4.65625 -1.800781 5.222656 -1.640625 5.953125 -1.640625 C 6.546875 -1.640625 7.148438 -1.722656 7.765625 -1.890625 C 8.378906 -2.066406 9.015625 -2.332031 9.671875 -2.6875 L 9.671875 -0.53125 C 9.003906 -0.28125 8.335938 -0.09375 7.671875 0.03125 C 7.015625 0.164062 6.359375 0.234375 5.703125 0.234375 C 4.117188 0.234375 2.882812 -0.164062 2 -0.96875 C 1.125 -1.78125 0.6875 -2.914062 0.6875 -4.375 C 0.6875 -5.800781 1.117188 -6.921875 1.984375 -7.734375 C 2.847656 -8.554688 4.035156 -8.96875 5.546875 -8.96875 C 6.921875 -8.96875 8.019531 -8.550781 8.84375 -7.71875 C 9.664062 -6.894531 10.078125 -5.789062 10.078125 -4.40625 Z M 7.203125 -5.328125 C 7.203125 -5.859375 7.046875 -6.285156 6.734375 -6.609375 C 6.429688 -6.941406 6.03125 -7.109375 5.53125 -7.109375 C 4.988281 -7.109375 4.546875 -6.953125 4.203125 -6.640625 C 3.867188 -6.335938
3.660156 -5.898438 3.578125 -5.328125 Z M 7.203125 -5.328125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-3">
+<path style="stroke:none;" d="M 1.34375 -12.15625 L 4.140625 -12.15625 L 4.140625 0 L 1.34375 0 Z M 1.34375 -12.15625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-4">
+<path style="stroke:none;" d="M 5.265625 -3.9375 C 4.679688 -3.9375 4.242188 -3.835938 3.953125 -3.640625 C 3.660156 -3.441406 3.515625 -3.148438 3.515625 -2.765625 C 3.515625 -2.410156 3.628906 -2.132812 3.859375 -1.9375 C 4.097656 -1.738281 4.429688 -1.640625 4.859375 -1.640625 C 5.378906 -1.640625 5.816406 -1.828125 6.171875 -2.203125 C 6.535156 -2.578125 6.71875 -3.050781 6.71875 -3.625 L 6.71875 -3.9375 Z M 9.546875 -5 L 9.546875 0 L 6.71875 0 L 6.71875 -1.296875 C 6.34375 -0.765625 5.921875 -0.375 5.453125 -0.125 C 4.984375 0.113281 4.414062 0.234375 3.75 0.234375 C 2.84375 0.234375 2.101562 -0.03125 1.53125 -0.5625 C 0.96875 -1.09375 0.6875 -1.78125 0.6875 -2.625 C 0.6875 -3.65625 1.039062 -4.410156 1.75 -4.890625 C 2.457031 -5.367188 3.566406 -5.609375 5.078125 -5.609375 L 6.71875 -5.609375 L 6.71875 -5.828125 C 6.71875 -6.265625 6.539062 -6.585938 6.1875 -6.796875 C 5.84375 -7.003906 5.300781 -7.109375 4.5625 -7.109375 C 3.96875 -7.109375 3.410156 -7.046875 2.890625 -6.9218
75 C 2.378906 -6.804688 1.898438 -6.628906 1.453125 -6.390625 L 1.453125 -8.515625 C 2.054688 -8.660156 2.660156 -8.769531 3.265625 -8.84375 C 3.867188 -8.925781 4.472656 -8.96875 5.078125 -8.96875 C 6.648438 -8.96875 7.785156 -8.65625 8.484375 -8.03125 C 9.191406 -7.40625 9.546875 -6.394531 9.546875 -5 Z M 9.546875 -5 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-5">
+<path style="stroke:none;" d="M 0.203125 -8.75 L 3 -8.75 L 5.34375 -2.8125 L 7.34375 -8.75 L 10.140625 -8.75 L 6.46875 0.828125 C 6.09375 1.804688 5.660156 2.488281 5.171875 2.875 C 4.679688 3.257812 4.03125 3.453125 3.21875 3.453125 L 1.609375 3.453125 L 1.609375 1.625 L 2.484375 1.625 C 2.953125 1.625 3.296875 1.546875 3.515625 1.390625 C 3.734375 1.242188 3.898438 0.972656 4.015625 0.578125 L 4.09375 0.34375 Z M 0.203125 -8.75 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-6">
+<path style="stroke:none;" d="M 1.46875 -11.671875 L 4.484375 -11.671875 L 4.484375 -2.28125 L 9.765625 -2.28125 L 9.765625 0 L 1.46875 0 Z M 1.46875 -11.671875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-7">
+<path style="stroke:none;" d="M 1.34375 -8.75 L 4.140625 -8.75 L 4.140625 0 L 1.34375 0 Z M 1.34375 -12.15625 L 4.140625 -12.15625 L 4.140625 -9.875 L 1.34375 -9.875 Z M 1.34375 -12.15625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-8">
+<path style="stroke:none;" d="M 8.1875 -8.484375 L 8.1875 -6.359375 C 7.582031 -6.609375 7 -6.796875 6.4375 -6.921875 C 5.882812 -7.046875 5.363281 -7.109375 4.875 -7.109375 C 4.34375 -7.109375 3.945312 -7.039062 3.6875 -6.90625 C 3.425781 -6.769531 3.296875 -6.566406 3.296875 -6.296875 C 3.296875 -6.066406 3.394531 -5.890625 3.59375 -5.765625 C 3.789062 -5.648438 4.140625 -5.566406 4.640625 -5.515625 L 5.140625 -5.4375 C 6.566406 -5.257812 7.523438 -4.960938 8.015625 -4.546875 C 8.515625 -4.128906 8.765625 -3.472656 8.765625 -2.578125 C 8.765625 -1.648438 8.421875 -0.945312 7.734375 -0.46875 C 7.046875 0 6.019531 0.234375 4.65625 0.234375 C 4.082031 0.234375 3.484375 0.1875 2.859375 0.09375 C 2.242188 0 1.613281 -0.140625 0.96875 -0.328125 L 0.96875 -2.453125 C 1.519531 -2.179688 2.085938 -1.976562 2.671875 -1.84375 C 3.265625 -1.707031 3.863281 -1.640625 4.46875 -1.640625 C 5.007812 -1.640625 5.414062 -1.710938 5.6875 -1.859375 C 5.96875 -2.015625 6.109375 -2.238281 6.109375 -2.53
125 C 6.109375 -2.78125 6.015625 -2.96875 5.828125 -3.09375 C 5.640625 -3.21875 5.257812 -3.3125 4.6875 -3.375 L 4.203125 -3.4375 C 2.953125 -3.59375 2.078125 -3.878906 1.578125 -4.296875 C 1.078125 -4.722656 0.828125 -5.367188 0.828125 -6.234375 C 0.828125 -7.160156 1.144531 -7.847656 1.78125 -8.296875 C 2.414062 -8.742188 3.390625 -8.96875 4.703125 -8.96875 C 5.222656 -8.96875 5.765625 -8.925781 6.328125 -8.84375 C 6.898438 -8.769531 7.519531 -8.648438 8.1875 -8.484375 Z M 8.1875 -8.484375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-9">
+<path style="stroke:none;" d="M 4.40625 -11.234375 L 4.40625 -8.75 L 7.28125 -8.75 L 7.28125 -6.75 L 4.40625 -6.75 L 4.40625 -3.046875 C 4.40625 -2.640625 4.484375 -2.363281 4.640625 -2.21875 C 4.804688 -2.070312 5.128906 -2 5.609375 -2 L 7.046875 -2 L 7.046875 0 L 4.640625 0 C 3.535156 0 2.753906 -0.226562 2.296875 -0.6875 C 1.835938 -1.15625 1.609375 -1.941406 1.609375 -3.046875 L 1.609375 -6.75 L 0.21875 -6.75 L 0.21875 -8.75 L 1.609375 -8.75 L 1.609375 -11.234375 Z M 4.40625 -11.234375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-10">
+<path style="stroke:none;" d="M 4.484375 -9.390625 L 4.484375 -2.28125 L 5.5625 -2.28125 C 6.789062 -2.28125 7.726562 -2.582031 8.375 -3.1875 C 9.019531 -3.800781 9.34375 -4.6875 9.34375 -5.84375 C 9.34375 -7 9.019531 -7.878906 8.375 -8.484375 C 7.726562 -9.085938 6.789062 -9.390625 5.5625 -9.390625 Z M 1.46875 -11.671875 L 4.640625 -11.671875 C 6.410156 -11.671875 7.726562 -11.539062 8.59375 -11.28125 C 9.46875 -11.03125 10.210938 -10.601562 10.828125 -10 C 11.378906 -9.476562 11.785156 -8.875 12.046875 -8.1875 C 12.316406 -7.5 12.453125 -6.71875 12.453125 -5.84375 C 12.453125 -4.96875 12.316406 -4.179688 12.046875 -3.484375 C 11.785156 -2.796875 11.378906 -2.191406 10.828125 -1.671875 C 10.203125 -1.066406 9.453125 -0.632812 8.578125 -0.375 C 7.703125 -0.125 6.390625 0 4.640625 0 L 1.46875 0 Z M 1.46875 -11.671875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-11">
+<path style="stroke:none;" d="M 10.140625 -5.328125 L 10.140625 0 L 7.328125 0 L 7.328125 -4.078125 C 7.328125 -4.835938 7.3125 -5.359375 7.28125 -5.640625 C 7.25 -5.929688 7.191406 -6.144531 7.109375 -6.28125 C 6.992188 -6.457031 6.84375 -6.597656 6.65625 -6.703125 C 6.46875 -6.804688 6.253906 -6.859375 6.015625 -6.859375 C 5.429688 -6.859375 4.972656 -6.628906 4.640625 -6.171875 C 4.304688 -5.722656 4.140625 -5.101562 4.140625 -4.3125 L 4.140625 0 L 1.34375 0 L 1.34375 -8.75 L 4.140625 -8.75 L 4.140625 -7.46875 C 4.566406 -7.976562 5.015625 -8.351562 5.484375 -8.59375 C 5.960938 -8.84375 6.488281 -8.96875 7.0625 -8.96875 C 8.070312 -8.96875 8.835938 -8.65625 9.359375 -8.03125 C 9.878906 -7.414062 10.140625 -6.515625 10.140625 -5.328125 Z M 10.140625 -5.328125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-12">
+<path style="stroke:none;" d="M 5.515625 -6.96875 C 4.890625 -6.96875 4.414062 -6.742188 4.09375 -6.296875 C 3.769531 -5.847656 3.609375 -5.207031 3.609375 -4.375 C 3.609375 -3.53125 3.769531 -2.882812 4.09375 -2.4375 C 4.414062 -2 4.890625 -1.78125 5.515625 -1.78125 C 6.117188 -1.78125 6.582031 -2 6.90625 -2.4375 C 7.226562 -2.882812 7.390625 -3.53125 7.390625 -4.375 C 7.390625 -5.207031 7.226562 -5.847656 6.90625 -6.296875 C 6.582031 -6.742188 6.117188 -6.96875 5.515625 -6.96875 Z M 5.515625 -8.96875 C 7.015625 -8.96875 8.1875 -8.5625 9.03125 -7.75 C 9.882812 -6.9375 10.3125 -5.8125 10.3125 -4.375 C 10.3125 -2.9375 9.882812 -1.804688 9.03125 -0.984375 C 8.1875 -0.171875 7.015625 0.234375 5.515625 0.234375 C 4.003906 0.234375 2.820312 -0.171875 1.96875 -0.984375 C 1.113281 -1.804688 0.6875 -2.9375 0.6875 -4.375 C 0.6875 -5.8125 1.113281 -6.9375 1.96875 -7.75 C 2.820312 -8.5625 4.003906 -8.96875 5.515625 -8.96875 Z M 5.515625 -8.96875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-13">
+<path style="stroke:none;" d="M 1.25 -3.40625 L 1.25 -8.75 L 4.0625 -8.75 L 4.0625 -7.875 C 4.0625 -7.40625 4.054688 -6.8125 4.046875 -6.09375 C 4.046875 -5.375 4.046875 -4.894531 4.046875 -4.65625 C 4.046875 -3.957031 4.0625 -3.453125 4.09375 -3.140625 C 4.132812 -2.828125 4.203125 -2.601562 4.296875 -2.46875 C 4.410156 -2.28125 4.554688 -2.132812 4.734375 -2.03125 C 4.921875 -1.9375 5.132812 -1.890625 5.375 -1.890625 C 5.957031 -1.890625 6.414062 -2.113281 6.75 -2.5625 C 7.082031 -3.007812 7.25 -3.632812 7.25 -4.4375 L 7.25 -8.75 L 10.046875 -8.75 L 10.046875 0 L 7.25 0 L 7.25 -1.265625 C 6.832031 -0.753906 6.382812 -0.375 5.90625 -0.125 C 5.4375 0.113281 4.921875 0.234375 4.359375 0.234375 C 3.347656 0.234375 2.578125 -0.078125 2.046875 -0.703125 C 1.515625 -1.328125 1.25 -2.226562 1.25 -3.40625 Z M 1.25 -3.40625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-14">
+<path style="stroke:none;" d="M 9.453125 -7.296875 C 9.804688 -7.835938 10.226562 -8.25 10.71875 -8.53125 C 11.207031 -8.820312 11.742188 -8.96875 12.328125 -8.96875 C 13.328125 -8.96875 14.085938 -8.65625 14.609375 -8.03125 C 15.140625 -7.414062 15.40625 -6.515625 15.40625 -5.328125 L 15.40625 0 L 12.59375 0 L 12.59375 -4.5625 C 12.601562 -4.632812 12.609375 -4.707031 12.609375 -4.78125 C 12.609375 -4.851562 12.609375 -4.957031 12.609375 -5.09375 C 12.609375 -5.707031 12.515625 -6.15625 12.328125 -6.4375 C 12.148438 -6.71875 11.859375 -6.859375 11.453125 -6.859375 C 10.921875 -6.859375 10.507812 -6.640625 10.21875 -6.203125 C 9.9375 -5.765625 9.789062 -5.128906 9.78125 -4.296875 L 9.78125 0 L 6.96875 0 L 6.96875 -4.5625 C 6.96875 -5.53125 6.882812 -6.15625 6.71875 -6.4375 C 6.550781 -6.71875 6.253906 -6.859375 5.828125 -6.859375 C 5.285156 -6.859375 4.867188 -6.632812 4.578125 -6.1875 C 4.285156 -5.75 4.140625 -5.125 4.140625 -4.3125 L 4.140625 0 L 1.328125 0 L 1.328125 -8.75 L 4.1
40625 -8.75 L 4.140625 -7.46875 C 4.484375 -7.96875 4.878906 -8.34375 5.328125 -8.59375 C 5.773438 -8.84375 6.265625 -8.96875 6.796875 -8.96875 C 7.398438 -8.96875 7.929688 -8.820312 8.390625 -8.53125 C 8.859375 -8.238281 9.210938 -7.828125 9.453125 -7.296875 Z M 9.453125 -7.296875 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-15">
+<path style="stroke:none;" d="M 4.140625 -1.265625 L 4.140625 3.328125 L 1.34375 3.328125 L 1.34375 -8.75 L 4.140625 -8.75 L 4.140625 -7.46875 C 4.523438 -7.976562 4.953125 -8.351562 5.421875 -8.59375 C 5.890625 -8.84375 6.429688 -8.96875 7.046875 -8.96875 C 8.117188 -8.96875 9 -8.535156 9.6875 -7.671875 C 10.382812 -6.816406 10.734375 -5.71875 10.734375 -4.375 C 10.734375 -3.019531 10.382812 -1.910156 9.6875 -1.046875 C 9 -0.191406 8.117188 0.234375 7.046875 0.234375 C 6.429688 0.234375 5.890625 0.113281 5.421875 -0.125 C 4.953125 -0.375 4.523438 -0.753906 4.140625 -1.265625 Z M 6 -6.9375 C 5.40625 -6.9375 4.945312 -6.710938 4.625 -6.265625 C 4.300781 -5.828125 4.140625 -5.195312 4.140625 -4.375 C 4.140625 -3.539062 4.300781 -2.90625 4.625 -2.46875 C 4.945312 -2.03125 5.40625 -1.8125 6 -1.8125 C 6.601562 -1.8125 7.0625 -2.03125 7.375 -2.46875 C 7.6875 -2.90625 7.84375 -3.539062 7.84375 -4.375 C 7.84375 -5.207031 7.6875 -5.84375 7.375 -6.28125 C 7.0625 -6.71875 6.601562 -6.9375 6 -6
.9375 Z M 6 -6.9375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-16">
+<path style="stroke:none;" d="M 1.640625 -3.03125 L 4.453125 -3.03125 L 4.453125 0 L 1.640625 0 Z M 1.640625 -3.03125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-17">
+<path style="stroke:none;" d="M 5.453125 -6.9375 C 4.859375 -6.9375 4.40625 -6.71875 4.09375 -6.28125 C 3.78125 -5.84375 3.625 -5.207031 3.625 -4.375 C 3.625 -3.539062 3.78125 -2.90625 4.09375 -2.46875 C 4.40625 -2.03125 4.859375 -1.8125 5.453125 -1.8125 C 6.054688 -1.8125 6.515625 -2.03125 6.828125 -2.46875 C 7.140625 -2.90625 7.296875 -3.539062 7.296875 -4.375 C 7.296875 -5.207031 7.140625 -5.84375 6.828125 -6.28125 C 6.515625 -6.71875 6.054688 -6.9375 5.453125 -6.9375 Z M 7.296875 -1.265625 C 6.910156 -0.753906 6.484375 -0.375 6.015625 -0.125 C 5.554688 0.113281 5.023438 0.234375 4.421875 0.234375 C 3.335938 0.234375 2.445312 -0.191406 1.75 -1.046875 C 1.0625 -1.910156 0.71875 -3.019531 0.71875 -4.375 C 0.71875 -5.71875 1.0625 -6.816406 1.75 -7.671875 C 2.445312 -8.523438 3.335938 -8.953125 4.421875 -8.953125 C 5.023438 -8.953125 5.554688 -8.832031 6.015625 -8.59375 C 6.484375 -8.351562 6.910156 -7.972656 7.296875 -7.453125 L 7.296875 -8.75 L 10.109375 -8.75 L 10.109375 3.328125
L 7.296875 3.328125 Z M 7.296875 -1.265625 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-18">
+<path style="stroke:none;" d="M 7.296875 -7.46875 L 7.296875 -12.15625 L 10.109375 -12.15625 L 10.109375 0 L 7.296875 0 L 7.296875 -1.265625 C 6.910156 -0.753906 6.484375 -0.375 6.015625 -0.125 C 5.554688 0.113281 5.023438 0.234375 4.421875 0.234375 C 3.335938 0.234375 2.445312 -0.191406 1.75 -1.046875 C 1.0625 -1.910156 0.71875 -3.019531 0.71875 -4.375 C 0.71875 -5.71875 1.0625 -6.816406 1.75 -7.671875 C 2.445312 -8.535156 3.335938 -8.96875 4.421875 -8.96875 C 5.023438 -8.96875 5.554688 -8.84375 6.015625 -8.59375 C 6.484375 -8.351562 6.910156 -7.976562 7.296875 -7.46875 Z M 5.453125 -1.8125 C 6.054688 -1.8125 6.515625 -2.03125 6.828125 -2.46875 C 7.140625 -2.90625 7.296875 -3.539062 7.296875 -4.375 C 7.296875 -5.207031 7.140625 -5.84375 6.828125 -6.28125 C 6.515625 -6.71875 6.054688 -6.9375 5.453125 -6.9375 C 4.859375 -6.9375 4.40625 -6.71875 4.09375 -6.28125 C 3.78125 -5.84375 3.625 -5.207031 3.625 -4.375 C 3.625 -3.539062 3.78125 -2.90625 4.09375 -2.46875 C 4.40625 -2.03125 4.859
375 -1.8125 5.453125 -1.8125 Z M 5.453125 -1.8125 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-19">
+<path style="stroke:none;" d="M 7.84375 -6.375 C 7.601562 -6.488281 7.359375 -6.570312 7.109375 -6.625 C 6.867188 -6.675781 6.628906 -6.703125 6.390625 -6.703125 C 5.671875 -6.703125 5.113281 -6.472656 4.71875 -6.015625 C 4.332031 -5.554688 4.140625 -4.894531 4.140625 -4.03125 L 4.140625 0 L 1.34375 0 L 1.34375 -8.75 L 4.140625 -8.75 L 4.140625 -7.3125 C 4.503906 -7.882812 4.914062 -8.300781 5.375 -8.5625 C 5.84375 -8.832031 6.40625 -8.96875 7.0625 -8.96875 C 7.15625 -8.96875 7.253906 -8.960938 7.359375 -8.953125 C 7.472656 -8.941406 7.632812 -8.925781 7.84375 -8.90625 Z M 7.84375 -6.375 "/>
+</symbol>
+<symbol overflow="visible" id="glyph2-20">
+<path style="stroke:none;" d=""/>
+</symbol>
+<symbol overflow="visible" id="glyph2-21">
+<path style="stroke:none;" d="M 7.703125 -12.15625 L 10.515625 -12.15625 L 10.515625 -9.875 L 7.703125 -9.875 Z M 7.125 -12.15625 L 7.125 -10.328125 L 5.578125 -10.328125 C 5.179688 -10.328125 4.90625 -10.253906 4.75 -10.109375 C 4.601562 -9.960938 4.53125 -9.710938 4.53125 -9.359375 L 4.53125 -8.75 L 10.515625 -8.75 L 10.515625 0 L 7.703125 0 L 7.703125 -6.75 L 4.53125 -6.75 L 4.53125 0 L 1.71875 0 L 1.71875 -6.75 L 0.34375 -6.75 L 0.34375 -8.75 L 1.71875 -8.75 L 1.71875 -9.359375 C 1.71875 -10.316406 1.984375 -11.019531 2.515625 -11.46875 C 3.046875 -11.925781 3.867188 -12.15625 4.984375 -12.15625 Z M 7.125 -12.15625 "/>
+</symbol>
+</g>
+</defs>
+<g id="surface9983">
+<rect x="0" y="0" width="463" height="653" style="fill:rgb(100%,100%,100%);fill-opacity:1;stroke:none;"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -3.2999 9.249942 L -0.304978 9.249942 L 0.295022 9.849942 L 0.295022 10.949942 L -3.2999 10.949942 Z M -3.2999 9.249942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill:none;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.304978 9.249942 L -0.304978 9.849942 L 0.295022 9.849942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-1" x="54" y="36.806749"/>
+ <use xlink:href="#glyph0-2" x="61.826606" y="36.806749"/>
+ <use xlink:href="#glyph0-3" x="69.653212" y="36.806749"/>
+ <use xlink:href="#glyph0-1" x="77.479818" y="36.806749"/>
+ <use xlink:href="#glyph0-2" x="85.306424" y="36.806749"/>
+ <use xlink:href="#glyph0-4" x="93.13303" y="36.806749"/>
+ <use xlink:href="#glyph0-5" x="100.959635" y="36.806749"/>
+</g>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.295022 10.099942 L 3.778811 10.099942 L 3.778811 9.98002 L 6.775881 9.98002 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 7.150881 9.98002 L 6.650881 10.23002 L 6.775881 9.98002 L 6.650881 9.73002 Z M 7.150881 9.98002 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -5.5499 11.549942 L -0.244822 11.549942 L 0.355178 12.149942 L 0.355178 13.249942 L -5.5499 13.249942 Z M -5.5499 11.549942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill:none;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.244822 11.549942 L -0.244822 12.149942 L 0.355178 12.149942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-6" x="9" y="82.806749"/>
+ <use xlink:href="#glyph0-2" x="16.826606" y="82.806749"/>
+ <use xlink:href="#glyph0-4" x="24.653212" y="82.806749"/>
+ <use xlink:href="#glyph0-7" x="32.479818" y="82.806749"/>
+ <use xlink:href="#glyph0-8" x="40.306424" y="82.806749"/>
+ <use xlink:href="#glyph0-9" x="48.13303" y="82.806749"/>
+ <use xlink:href="#glyph0-1" x="55.959635" y="82.806749"/>
+ <use xlink:href="#glyph0-10" x="63.786241" y="82.806749"/>
+ <use xlink:href="#glyph0-11" x="71.612847" y="82.806749"/>
+ <use xlink:href="#glyph0-1" x="79.439453" y="82.806749"/>
+ <use xlink:href="#glyph0-10" x="87.266059" y="82.806749"/>
+ <use xlink:href="#glyph0-7" x="95.092665" y="82.806749"/>
+ <use xlink:href="#glyph0-12" x="102.919271" y="82.806749"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-1" x="147" y="12.904405"/>
+ <use xlink:href="#glyph1-2" x="157.632324" y="12.904405"/>
+ <use xlink:href="#glyph1-3" x="162.977105" y="12.904405"/>
+ <use xlink:href="#glyph1-4" x="166.58903" y="12.904405"/>
+ <use xlink:href="#glyph1-5" x="171.686144" y="12.904405"/>
+ <use xlink:href="#glyph1-6" x="179.684191" y="12.904405"/>
+ <use xlink:href="#glyph1-7" x="183.816406" y="12.904405"/>
+ <use xlink:href="#glyph1-8" x="188.888292" y="12.904405"/>
+ <use xlink:href="#glyph1-9" x="192.500217" y="12.904405"/>
+ <use xlink:href="#glyph1-10" x="200.453776" y="12.904405"/>
+ <use xlink:href="#glyph1-11" x="207.601128" y="12.904405"/>
+ <use xlink:href="#glyph1-12" x="215.12934" y="12.904405"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-2" x="155" y="85.904405"/>
+ <use xlink:href="#glyph1-5" x="160.059136" y="85.904405"/>
+ <use xlink:href="#glyph1-13" x="168.057183" y="85.904405"/>
+ <use xlink:href="#glyph1-14" x="176.023492" y="85.904405"/>
+</g>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.355178 12.399942 L 3.808889 12.399942 L 3.808889 11.48002 L 6.775881 11.48002 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 7.150881 11.48002 L 6.650881 11.73002 L 6.775881 11.48002 L 6.650881 11.23002 Z M 7.150881 11.48002 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.355178 13.249942 L 3.852639 13.249942 L 3.852639 13.749942 L 6.863381 13.749942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 7.238381 13.749942 L 6.738381 13.999942 L 6.863381 13.749942 L 6.738381 13.499942 Z M 7.238381 13.749942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 9.656545 16.508536 L 9.656545 16.849942 L 9.635256 16.849942 L 9.635256 17.749942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 9.656545 15.249942 L 9.896389 15.949942 L 9.656545 16.649942 L 9.416506 15.949942 Z M 9.656545 15.249942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.150295 17.749942 L 11.120217 17.749942 L 11.120217 19.149942 L 8.150295 19.149942 Z M 8.150295 17.749942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-1" x="281.015625" y="200.906304"/>
+ <use xlink:href="#glyph2-2" x="293.336046" y="200.906304"/>
+ <use xlink:href="#glyph2-3" x="304.187554" y="200.906304"/>
+ <use xlink:href="#glyph2-4" x="309.672038" y="200.906304"/>
+ <use xlink:href="#glyph2-5" x="319.976942" y="200.906304"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.150295 19.149942 L 11.120217 19.149942 L 11.120217 19.549942 L 8.150295 19.549942 Z M 8.150295 19.149942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.150295 19.549942 L 11.120217 19.549942 L 11.120217 19.949942 L 8.150295 19.949942 Z M 8.150295 19.549942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 7.350295 13.049942 L 11.962795 13.049942 L 11.962795 14.449942 L 7.350295 14.449942 Z M 7.350295 13.049942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-1" x="265.015625" y="106.906304"/>
+ <use xlink:href="#glyph2-2" x="277.336046" y="106.906304"/>
+ <use xlink:href="#glyph2-3" x="288.187554" y="106.906304"/>
+ <use xlink:href="#glyph2-4" x="293.672038" y="106.906304"/>
+ <use xlink:href="#glyph2-5" x="303.976942" y="106.906304"/>
+ <use xlink:href="#glyph2-6" x="314.40663" y="106.906304"/>
+ <use xlink:href="#glyph2-7" x="324.601942" y="106.906304"/>
+ <use xlink:href="#glyph2-8" x="330.086426" y="106.906304"/>
+ <use xlink:href="#glyph2-9" x="339.609809" y="106.906304"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 7.350295 14.449942 L 11.962795 14.449942 L 11.962795 14.849942 L 7.350295 14.849942 Z M 7.350295 14.449942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 7.350295 14.849942 L 11.962795 14.849942 L 11.962795 15.249942 L 7.350295 15.249942 Z M 7.350295 14.849942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -5.499705 21.099942 L -0.194822 21.099942 L 0.405178 21.699942 L 0.405178 22.799942 L -5.499705 22.799942 Z M -5.499705 21.099942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill:none;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -0.194822 21.099942 L -0.194822 21.699942 L 0.405178 21.699942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-13" x="10.003906" y="273.806749"/>
+ <use xlink:href="#glyph0-2" x="17.830512" y="273.806749"/>
+ <use xlink:href="#glyph0-14" x="25.657118" y="273.806749"/>
+ <use xlink:href="#glyph0-4" x="33.483724" y="273.806749"/>
+ <use xlink:href="#glyph0-15" x="41.31033" y="273.806749"/>
+ <use xlink:href="#glyph0-1" x="49.136936" y="273.806749"/>
+ <use xlink:href="#glyph0-2" x="56.963542" y="273.806749"/>
+ <use xlink:href="#glyph0-8" x="64.790148" y="273.806749"/>
+ <use xlink:href="#glyph0-1" x="72.616753" y="273.806749"/>
+ <use xlink:href="#glyph0-2" x="80.443359" y="273.806749"/>
+ <use xlink:href="#glyph0-16" x="88.269965" y="273.806749"/>
+ <use xlink:href="#glyph0-14" x="96.096571" y="273.806749"/>
+ <use xlink:href="#glyph0-12" x="103.923177" y="273.806749"/>
+</g>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.405178 21.949942 L 4.252444 21.949942 L 4.252444 18.849942 L 7.612991 18.849942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 7.987991 18.849942 L 7.487991 19.099942 L 7.612991 18.849942 L 7.487991 18.599942 Z M 7.987991 18.849942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 7.262795 9.28002 L 11.875295 9.28002 L 11.875295 10.68002 L 7.262795 10.68002 Z M 7.262795 9.28002 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-1" x="263.265625" y="31.507867"/>
+ <use xlink:href="#glyph2-2" x="275.586046" y="31.507867"/>
+ <use xlink:href="#glyph2-3" x="286.437554" y="31.507867"/>
+ <use xlink:href="#glyph2-4" x="291.922038" y="31.507867"/>
+ <use xlink:href="#glyph2-5" x="302.226942" y="31.507867"/>
+ <use xlink:href="#glyph2-6" x="312.65663" y="31.507867"/>
+ <use xlink:href="#glyph2-7" x="322.851942" y="31.507867"/>
+ <use xlink:href="#glyph2-8" x="328.336426" y="31.507867"/>
+ <use xlink:href="#glyph2-9" x="337.859809" y="31.507867"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 7.262795 10.68002 L 11.875295 10.68002 L 11.875295 11.08002 L 7.262795 11.08002 Z M 7.262795 10.68002 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 7.262795 11.08002 L 11.875295 11.08002 L 11.875295 11.48002 L 7.262795 11.48002 Z M 7.262795 11.08002 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.012795 22.149942 L 15.382717 22.149942 L 15.382717 23.549942 L 8.012795 23.549942 Z M 8.012795 22.149942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-10" x="278.28125" y="288.906304"/>
+ <use xlink:href="#glyph2-2" x="291.5625" y="288.906304"/>
+ <use xlink:href="#glyph2-8" x="302.414008" y="288.906304"/>
+ <use xlink:href="#glyph2-9" x="311.937391" y="288.906304"/>
+ <use xlink:href="#glyph2-7" x="319.585775" y="288.906304"/>
+ <use xlink:href="#glyph2-11" x="325.070258" y="288.906304"/>
+ <use xlink:href="#glyph2-4" x="336.460775" y="288.906304"/>
+ <use xlink:href="#glyph2-9" x="347.257758" y="288.906304"/>
+ <use xlink:href="#glyph2-7" x="354.906141" y="288.906304"/>
+ <use xlink:href="#glyph2-12" x="360.390625" y="288.906304"/>
+ <use xlink:href="#glyph2-11" x="371.382921" y="288.906304"/>
+ <use xlink:href="#glyph2-6" x="382.773438" y="288.906304"/>
+ <use xlink:href="#glyph2-7" x="392.96875" y="288.906304"/>
+ <use xlink:href="#glyph2-8" x="398.453234" y="288.906304"/>
+ <use xlink:href="#glyph2-9" x="407.976617" y="288.906304"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.012795 23.549942 L 15.382717 23.549942 L 15.382717 23.949942 L 8.012795 23.949942 Z M 8.012795 23.549942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.012795 23.949942 L 15.382717 23.949942 L 15.382717 24.349942 L 8.012795 24.349942 Z M 8.012795 23.949942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.405178 22.799942 L 4.209084 22.799942 L 4.209084 22.849942 L 7.526077 22.849942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 7.901077 22.849942 L 7.401077 23.099942 L 7.526077 22.849942 L 7.401077 22.599942 Z M 7.901077 22.849942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.405178 21.099942 L 0.405178 18.174942 L 7.350295 18.174942 L 7.350295 15.736856 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 7.350295 15.361856 L 7.600295 15.861856 L 7.350295 15.736856 L 7.100295 15.861856 Z M 7.350295 15.361856 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.062795 26.149942 L 11.422756 26.149942 L 11.422756 27.549942 L 8.062795 27.549942 Z M 8.062795 26.149942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-1" x="279.261719" y="368.906304"/>
+ <use xlink:href="#glyph2-2" x="291.58214" y="368.906304"/>
+ <use xlink:href="#glyph2-8" x="302.433648" y="368.906304"/>
+ <use xlink:href="#glyph2-13" x="311.957031" y="368.906304"/>
+ <use xlink:href="#glyph2-3" x="323.347548" y="368.906304"/>
+ <use xlink:href="#glyph2-9" x="328.832031" y="368.906304"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.062795 27.549942 L 11.422756 27.549942 L 11.422756 27.949942 L 8.062795 27.949942 Z M 8.062795 27.549942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.062795 27.949942 L 11.422756 27.949942 L 11.422756 28.349942 L 8.062795 28.349942 Z M 8.062795 27.949942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -2.547361 22.799942 L -2.547361 28.349942 L 7.576077 28.349942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 7.951077 28.349942 L 7.451077 28.599942 L 7.576077 28.349942 L 7.451077 28.099942 Z M 7.951077 28.349942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.112795 30.099942 L 17.215334 30.099942 L 17.215334 31.499942 L 8.112795 31.499942 Z M 8.112795 30.099942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-1" x="280.28125" y="447.906304"/>
+ <use xlink:href="#glyph2-2" x="292.601671" y="447.906304"/>
+ <use xlink:href="#glyph2-8" x="303.453179" y="447.906304"/>
+ <use xlink:href="#glyph2-13" x="312.976562" y="447.906304"/>
+ <use xlink:href="#glyph2-3" x="324.367079" y="447.906304"/>
+ <use xlink:href="#glyph2-9" x="329.851562" y="447.906304"/>
+ <use xlink:href="#glyph2-10" x="337.499946" y="447.906304"/>
+ <use xlink:href="#glyph2-13" x="350.781196" y="447.906304"/>
+ <use xlink:href="#glyph2-14" x="362.171712" y="447.906304"/>
+ <use xlink:href="#glyph2-15" x="378.843533" y="447.906304"/>
+ <use xlink:href="#glyph2-16" x="390.296712" y="447.906304"/>
+ <use xlink:href="#glyph2-17" x="396.374729" y="447.906304"/>
+ <use xlink:href="#glyph2-13" x="407.827908" y="447.906304"/>
+ <use xlink:href="#glyph2-2" x="419.218424" y="447.906304"/>
+ <use xlink:href="#glyph2-13" x="430.069933" y="447.906304"/>
+ <use xlink:href="#glyph2-2" x="441.460449" y="447.906304"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.112795 31.499942 L 17.215334 31.499942 L 17.215334 31.899942 L 8.112795 31.899942 Z M 8.112795 31.499942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.112795 31.899942 L 17.215334 31.899942 L 17.215334 32.299942 L 8.112795 32.299942 Z M 8.112795 31.899942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -5.499705 22.799942 L -5.499705 30.799942 L 7.626077 30.799942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.001077 30.799942 L 7.501077 31.049942 L 7.626077 30.799942 L 7.501077 30.549942 Z M 8.001077 30.799942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -5.137205 32.200137 L 0.937795 32.200137 L 1.537795 32.800137 L 1.537795 33.900137 L -5.137205 33.900137 Z M -5.137205 32.200137 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill:none;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 0.937795 32.200137 L 0.937795 32.800137 L 1.537795 32.800137 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-17" x="17.253906" y="495.806749"/>
+ <use xlink:href="#glyph0-2" x="25.080512" y="495.806749"/>
+ <use xlink:href="#glyph0-4" x="32.907118" y="495.806749"/>
+ <use xlink:href="#glyph0-15" x="40.733724" y="495.806749"/>
+ <use xlink:href="#glyph0-16" x="48.56033" y="495.806749"/>
+ <use xlink:href="#glyph0-7" x="56.386936" y="495.806749"/>
+ <use xlink:href="#glyph0-18" x="64.213542" y="495.806749"/>
+ <use xlink:href="#glyph0-15" x="72.040148" y="495.806749"/>
+ <use xlink:href="#glyph0-13" x="79.866753" y="495.806749"/>
+ <use xlink:href="#glyph0-9" x="87.693359" y="495.806749"/>
+ <use xlink:href="#glyph0-19" x="95.519965" y="495.806749"/>
+ <use xlink:href="#glyph0-20" x="103.346571" y="495.806749"/>
+ <use xlink:href="#glyph0-2" x="111.173177" y="495.806749"/>
+ <use xlink:href="#glyph0-21" x="118.999783" y="495.806749"/>
+ <use xlink:href="#glyph0-7" x="126.826389" y="495.806749"/>
+</g>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 1.537795 33.050137 L 4.825295 33.050137 L 4.825295 32.299942 L 7.626077 32.299942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.001077 32.299942 L 7.501077 32.549942 L 7.626077 32.299942 L 7.501077 32.049942 Z M 8.001077 32.299942 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 9.062795 35.100137 L 17.402834 35.100137 L 17.402834 36.500137 L 9.062795 36.500137 Z M 9.062795 35.100137 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-1" x="299.273438" y="547.910211"/>
+ <use xlink:href="#glyph2-2" x="311.593859" y="547.910211"/>
+ <use xlink:href="#glyph2-8" x="322.445367" y="547.910211"/>
+ <use xlink:href="#glyph2-13" x="331.96875" y="547.910211"/>
+ <use xlink:href="#glyph2-3" x="343.359266" y="547.910211"/>
+ <use xlink:href="#glyph2-9" x="348.84375" y="547.910211"/>
+ <use xlink:href="#glyph2-10" x="356.492133" y="547.910211"/>
+ <use xlink:href="#glyph2-13" x="369.773383" y="547.910211"/>
+ <use xlink:href="#glyph2-14" x="381.1639" y="547.910211"/>
+ <use xlink:href="#glyph2-15" x="397.83572" y="547.910211"/>
+ <use xlink:href="#glyph2-16" x="409.2889" y="547.910211"/>
+ <use xlink:href="#glyph2-18" x="415.366916" y="547.910211"/>
+ <use xlink:href="#glyph2-4" x="426.820095" y="547.910211"/>
+ <use xlink:href="#glyph2-9" x="437.617079" y="547.910211"/>
+ <use xlink:href="#glyph2-4" x="445.265462" y="547.910211"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 9.062795 36.500137 L 17.402834 36.500137 L 17.402834 36.900137 L 9.062795 36.900137 Z M 9.062795 36.500137 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 9.062795 36.900137 L 17.402834 36.900137 L 17.402834 37.300137 L 9.062795 37.300137 Z M 9.062795 36.900137 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -5.037205 34.93002 L 4.117873 34.93002 L 4.717873 35.53002 L 4.717873 36.63002 L -5.037205 36.63002 Z M -5.037205 34.93002 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill:none;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 4.117873 34.93002 L 4.117873 35.53002 L 4.717873 35.53002 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-17" x="19.253906" y="550.408312"/>
+ <use xlink:href="#glyph0-2" x="27.080512" y="550.408312"/>
+ <use xlink:href="#glyph0-4" x="34.907118" y="550.408312"/>
+ <use xlink:href="#glyph0-15" x="42.733724" y="550.408312"/>
+ <use xlink:href="#glyph0-16" x="50.56033" y="550.408312"/>
+ <use xlink:href="#glyph0-7" x="58.386936" y="550.408312"/>
+ <use xlink:href="#glyph0-18" x="66.213542" y="550.408312"/>
+ <use xlink:href="#glyph0-15" x="74.040148" y="550.408312"/>
+ <use xlink:href="#glyph0-13" x="81.866753" y="550.408312"/>
+ <use xlink:href="#glyph0-9" x="89.693359" y="550.408312"/>
+ <use xlink:href="#glyph0-19" x="97.519965" y="550.408312"/>
+ <use xlink:href="#glyph0-4" x="105.346571" y="550.408312"/>
+ <use xlink:href="#glyph0-7" x="113.173177" y="550.408312"/>
+ <use xlink:href="#glyph0-11" x="120.999783" y="550.408312"/>
+ <use xlink:href="#glyph0-1" x="128.826389" y="550.408312"/>
+ <use xlink:href="#glyph0-2" x="136.652995" y="550.408312"/>
+ <use xlink:href="#glyph0-8" x="144.479601" y="550.408312"/>
+ <use xlink:href="#glyph0-1" x="152.306207" y="550.408312"/>
+ <use xlink:href="#glyph0-2" x="160.132812" y="550.408312"/>
+ <use xlink:href="#glyph0-4" x="167.959418" y="550.408312"/>
+ <use xlink:href="#glyph0-15" x="175.786024" y="550.408312"/>
+ <use xlink:href="#glyph0-16" x="183.61263" y="550.408312"/>
+ <use xlink:href="#glyph0-7" x="191.439236" y="550.408312"/>
+</g>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 4.717873 35.78002 L 6.890334 35.78002 L 6.890334 35.800137 L 8.576077 35.800137 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 8.951077 35.800137 L 8.451077 36.050137 L 8.576077 35.800137 L 8.451077 35.550137 Z M 8.951077 35.800137 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-1" x="173.253906" y="424.908312"/>
+ <use xlink:href="#glyph1-2" x="183.88623" y="424.908312"/>
+ <use xlink:href="#glyph1-3" x="189.231011" y="424.908312"/>
+ <use xlink:href="#glyph1-4" x="192.842936" y="424.908312"/>
+ <use xlink:href="#glyph1-5" x="197.94005" y="424.908312"/>
+</g>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-1" x="222.253906" y="521.908312"/>
+ <use xlink:href="#glyph1-2" x="232.88623" y="521.908312"/>
+ <use xlink:href="#glyph1-3" x="238.231011" y="521.908312"/>
+ <use xlink:href="#glyph1-4" x="241.842936" y="521.908312"/>
+ <use xlink:href="#glyph1-5" x="246.94005" y="521.908312"/>
+ <use xlink:href="#glyph1-6" x="254.938097" y="521.908312"/>
+ <use xlink:href="#glyph1-7" x="259.070312" y="521.908312"/>
+ <use xlink:href="#glyph1-8" x="264.142198" y="521.908312"/>
+ <use xlink:href="#glyph1-9" x="267.754123" y="521.908312"/>
+ <use xlink:href="#glyph1-10" x="275.707682" y="521.908312"/>
+ <use xlink:href="#glyph1-11" x="282.855035" y="521.908312"/>
+ <use xlink:href="#glyph1-12" x="290.383247" y="521.908312"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 9.512795 39.050137 L 14.815334 39.050137 L 14.815334 40.450137 L 9.512795 40.450137 Z M 9.512795 39.050137 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph2-19" x="308.25" y="626.910211"/>
+ <use xlink:href="#glyph2-2" x="316.140625" y="626.910211"/>
+ <use xlink:href="#glyph2-8" x="326.992133" y="626.910211"/>
+ <use xlink:href="#glyph2-13" x="336.515516" y="626.910211"/>
+ <use xlink:href="#glyph2-3" x="347.906033" y="626.910211"/>
+ <use xlink:href="#glyph2-9" x="353.390516" y="626.910211"/>
+ <use xlink:href="#glyph2-8" x="361.0389" y="626.910211"/>
+ <use xlink:href="#glyph2-20" x="370.562283" y="626.910211"/>
+ <use xlink:href="#glyph2-21" x="376.132487" y="626.910211"/>
+ <use xlink:href="#glyph2-3" x="387.991753" y="626.910211"/>
+ <use xlink:href="#glyph2-2" x="393.476237" y="626.910211"/>
+</g>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 9.512795 40.450137 L 14.815334 40.450137 L 14.815334 40.850137 L 9.512795 40.850137 Z M 9.512795 40.450137 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 9.512795 40.850137 L 14.815334 40.850137 L 14.815334 41.250137 L 9.512795 41.250137 Z M 9.512795 40.850137 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(100%,100%,100%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M -4.787205 39.100137 L 4.367873 39.100137 L 4.967873 39.700137 L 4.967873 40.800137 L -4.787205 40.800137 Z M -4.787205 39.100137 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill:none;stroke-width:0.05;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 4.367873 39.100137 L 4.367873 39.700137 L 4.967873 39.700137 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph0-22" x="24.253906" y="633.806749"/>
+ <use xlink:href="#glyph0-1" x="32.080512" y="633.806749"/>
+ <use xlink:href="#glyph0-10" x="39.907118" y="633.806749"/>
+ <use xlink:href="#glyph0-7" x="47.733724" y="633.806749"/>
+ <use xlink:href="#glyph0-2" x="55.56033" y="633.806749"/>
+ <use xlink:href="#glyph0-8" x="63.386936" y="633.806749"/>
+ <use xlink:href="#glyph0-1" x="71.213542" y="633.806749"/>
+ <use xlink:href="#glyph0-2" x="79.040148" y="633.806749"/>
+ <use xlink:href="#glyph0-4" x="86.866753" y="633.806749"/>
+ <use xlink:href="#glyph0-15" x="94.693359" y="633.806749"/>
+ <use xlink:href="#glyph0-16" x="102.519965" y="633.806749"/>
+ <use xlink:href="#glyph0-7" x="110.346571" y="633.806749"/>
+ <use xlink:href="#glyph0-8" x="118.173177" y="633.806749"/>
+ <use xlink:href="#glyph0-7" x="125.999783" y="633.806749"/>
+ <use xlink:href="#glyph0-11" x="133.826389" y="633.806749"/>
+ <use xlink:href="#glyph0-8" x="141.652995" y="633.806749"/>
+ <use xlink:href="#glyph0-23" x="149.479601" y="633.806749"/>
+ <use xlink:href="#glyph0-14" x="157.306207" y="633.806749"/>
+ <use xlink:href="#glyph0-7" x="165.132812" y="633.806749"/>
+ <use xlink:href="#glyph0-14" x="172.959418" y="633.806749"/>
+ <use xlink:href="#glyph0-23" x="180.786024" y="633.806749"/>
+ <use xlink:href="#glyph0-10" x="188.61263" y="633.806749"/>
+ <use xlink:href="#glyph0-1" x="196.439236" y="633.806749"/>
+</g>
+<path style="fill:none;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 4.967873 39.950137 L 7.190334 39.950137 L 7.190334 40.000137 L 8.926077 40.000137 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<path style="fill-rule:evenodd;fill:rgb(0%,0%,0%);fill-opacity:1;stroke-width:0.1;stroke-linecap:butt;stroke-linejoin:miter;stroke:rgb(0%,0%,0%);stroke-opacity:1;stroke-miterlimit:10;" d="M 9.301077 40.000137 L 8.801077 40.250137 L 8.926077 40.000137 L 8.801077 39.750137 Z M 9.301077 40.000137 " transform="matrix(20,0,0,20,112.998,-173.1004)"/>
+<g style="fill:rgb(0%,0%,0%);fill-opacity:1;">
+ <use xlink:href="#glyph1-1" x="219.253906" y="611.408312"/>
+ <use xlink:href="#glyph1-2" x="229.88623" y="611.408312"/>
+ <use xlink:href="#glyph1-3" x="235.231011" y="611.408312"/>
+ <use xlink:href="#glyph1-4" x="238.842936" y="611.408312"/>
+ <use xlink:href="#glyph1-5" x="243.94005" y="611.408312"/>
+ <use xlink:href="#glyph1-6" x="251.938097" y="611.408312"/>
+ <use xlink:href="#glyph1-7" x="256.070312" y="611.408312"/>
+ <use xlink:href="#glyph1-8" x="261.142198" y="611.408312"/>
+ <use xlink:href="#glyph1-9" x="264.754123" y="611.408312"/>
+ <use xlink:href="#glyph1-10" x="272.707682" y="611.408312"/>
+ <use xlink:href="#glyph1-11" x="279.855035" y="611.408312"/>
+ <use xlink:href="#glyph1-12" x="287.383247" y="611.408312"/>
+</g>
+</g>
+</svg>
diff --git a/docs/source/images/pycallgraph.png b/docs/source/images/pycallgraph.png
new file mode 100644
index 0000000..def4475
Binary files /dev/null and b/docs/source/images/pycallgraph.png differ
diff --git a/docs/source/images/threads.svg b/docs/source/images/threads.svg
new file mode 100644
index 0000000..5e68dcb
--- /dev/null
+++ b/docs/source/images/threads.svg
@@ -0,0 +1 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentScriptType="application/ecmascript" contentStyleType="text/css" height="266px" preserveAspectRatio="none" style="width:874px;height:266px;" version="1.1" viewBox="0 0 874 266" width="874px" zoomAndPan="magnify"><defs><filter height="300%" id="ft70fwu" width="300%" x="-1" y="-1"><feGaussianBlur result="blurOut" stdDeviation="2.0"/><feColorMatrix in="blurOut" result="blurOut2" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .4 0"/><feOffset dx="4.0" dy="4.0" in="blurOut2" result="blurOut3"/><feBlend in="SourceGraphic" in2="blurOut3" mode="normal"/></filter></defs><g><ellipse cx="438.5" cy="20" fill="#000000" filter="url(#ft70fwu)" rx="10" ry="10" style="stroke: none; stroke-width: 1.0;"/><rect fill="#FEFECE" filter="url(#ft70fwu)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="93" x="392" y="5
0"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="73" x="402" y="71.1387">MainThread</text><rect fill="#000000" filter="url(#ft70fwu)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="857" x="10" y="103.9688"/><rect fill="#FEFECE" filter="url(#ft70fwu)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="125" x="24" y="165.9688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="105" x="34" y="187.1074">TorEventListener</text><rect fill="#FEFECE" filter="url(#ft70fwu)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="95" x="177" y="165.9688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="75" x="187" y="187.1074">ResultDump</text><rect fill="#FEFECE" filter="url(#ft70fwu)" height="33.9688" rx="12.5" ry="12.5"
style="stroke: #A80036; stroke-width: 1.5;" width="117" x="300" y="165.9688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="97" x="310" y="187.1074">workers_thread</text><rect fill="#FEFECE" filter="url(#ft70fwu)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="102" x="445" y="165.9688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="82" x="455" y="187.1074">tasks_thread</text><rect fill="#FEFECE" filter="url(#ft70fwu)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="103" x="575" y="165.9688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="83" x="585" y="187.1074">resutls_tread</text><rect fill="#FEFECE" filter="url(#ft70fwu)" height="33.9688" rx="12.5" ry="12.5" style="stroke: #A80036; stroke-width: 1.5;" width="111" x="730" y="177
.9688"/><text fill="#000000" font-family="sans-serif" font-size="12" lengthAdjust="spacingAndGlyphs" textLength="91" x="740" y="199.1074">measure_relay</text><polygon fill="#FEFECE" filter="url(#ft70fwu)" points="748.5,129.9688,822.5,129.9688,834.5,141.9688,822.5,153.9688,748.5,153.9688,736.5,141.9688,748.5,129.9688" style="stroke: #A80036; stroke-width: 1.5;"/><text fill="#000000" font-family="sans-serif" font-size="11" lengthAdjust="spacingAndGlyphs" textLength="74" x="748.5" y="145.7769">threads < 3?</text><rect fill="#000000" filter="url(#ft70fwu)" height="6" rx="2.5" ry="2.5" style="stroke: #000000; stroke-width: 1.0;" width="857" x="10" y="253.9375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="438.5" x2="438.5" y1="30" y2="50"/><polygon fill="#A80036" points="434.5,40,438.5,50,442.5,40,438.5,44" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785.5" x2="785.5" y1="153.9688" y2="177.9688"/><polygon fill="#A80036" p
oints="781.5,167.9688,785.5,177.9688,789.5,167.9688,785.5,171.9688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785.5" x2="785.5" y1="211.9375" y2="221.9375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785.5" x2="853" y1="221.9375" y2="221.9375"/><polygon fill="#A80036" points="849,192.9531,853,182.9531,857,192.9531,853,188.9531" style="stroke: #A80036; stroke-width: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="853" x2="853" y1="141.9688" y2="221.9375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="853" x2="834.5" y1="141.9688" y2="141.9688"/><polygon fill="#A80036" points="844.5,137.9688,834.5,141.9688,844.5,145.9688,840.5,141.9688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="736.5" x2="718" y1="141.9688" y2="141.9688"/><polygon fill="#A80036" points="714,178.9531,718,188.9531,722,178.9531,718,182.9531" style="stroke: #A80036; stroke-width
: 1.5;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="718" x2="718" y1="141.9688" y2="233.9375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="718" x2="785.5" y1="233.9375" y2="233.9375"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785.5" x2="785.5" y1="233.9375" y2="253.9375"/><polygon fill="#A80036" points="781.5,243.9375,785.5,253.9375,789.5,243.9375,785.5,247.9375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="86.5" x2="86.5" y1="109.9688" y2="165.9688"/><polygon fill="#A80036" points="82.5,155.9688,86.5,165.9688,90.5,155.9688,86.5,159.9688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="86.5" x2="86.5" y1="199.9375" y2="253.9375"/><polygon fill="#A80036" points="82.5,243.9375,86.5,253.9375,90.5,243.9375,86.5,247.9375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="224.5" x2="224.5" y1="109.9688" y
2="165.9688"/><polygon fill="#A80036" points="220.5,155.9688,224.5,165.9688,228.5,155.9688,224.5,159.9688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="224.5" x2="224.5" y1="199.9375" y2="253.9375"/><polygon fill="#A80036" points="220.5,243.9375,224.5,253.9375,228.5,243.9375,224.5,247.9375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="358.5" x2="358.5" y1="109.9688" y2="165.9688"/><polygon fill="#A80036" points="354.5,155.9688,358.5,165.9688,362.5,155.9688,358.5,159.9688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="358.5" x2="358.5" y1="199.9375" y2="253.9375"/><polygon fill="#A80036" points="354.5,243.9375,358.5,253.9375,362.5,243.9375,358.5,247.9375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="496" x2="496" y1="109.9688" y2="165.9688"/><polygon fill="#A80036" points=
"492,155.9688,496,165.9688,500,155.9688,496,159.9688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="496" x2="496" y1="199.9375" y2="253.9375"/><polygon fill="#A80036" points="492,243.9375,496,253.9375,500,243.9375,496,247.9375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="626.5" x2="626.5" y1="109.9688" y2="165.9688"/><polygon fill="#A80036" points="622.5,155.9688,626.5,165.9688,630.5,155.9688,626.5,159.9688" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="626.5" x2="626.5" y1="199.9375" y2="253.9375"/><polygon fill="#A80036" points="622.5,243.9375,626.5,253.9375,630.5,243.9375,626.5,247.9375" style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="785.5" x2="785.5" y1="109.9688" y2="129.9688"/><polygon fill="#A80036" points="781.5,119.9688,785.5,129.9688,789.5,119.9688,785.5,123.9688"
style="stroke: #A80036; stroke-width: 1.0;"/><line style="stroke: #A80036; stroke-width: 1.5;" x1="438.5" x2="438.5" y1="83.9688" y2="103.9688"/><polygon fill="#A80036" points="434.5,93.9688,438.5,103.9688,442.5,93.9688,438.5,97.9688" style="stroke: #A80036; stroke-width: 1.0;"/></g></svg>
\ No newline at end of file
diff --git a/docs/source/threads.puml b/docs/source/threads.puml
new file mode 100644
index 0000000..fcacba9
--- /dev/null
+++ b/docs/source/threads.puml
@@ -0,0 +1,23 @@
+@startuml
+
+start
+
+:MainThread;
+ fork
+ :TorEventListener;
+ fork again
+ :ResultDump;
+ fork again
+ :workers_thread;
+ fork again
+ :tasks_thread;
+ fork again
+ :resutls_tread;
+ fork again
+ while (threads < 3?)
+ :measure_relay;
+ endwhile
+ end fork
+
+
+@enduml
\ No newline at end of file
1
0

23 Feb '19
commit b01ce3ddb367b78e0328168c815750baa402a6a1
Author: juga0 <juga(a)riseup.net>
Date: Tue Feb 12 11:20:35 2019 +0000
docs: Add Tor bandwidth files documentation
---
docs/source/tor_bandwidth_files.rst | 32 ++++++++++++++++++++++++++++++++
1 file changed, 32 insertions(+)
diff --git a/docs/source/tor_bandwidth_files.rst b/docs/source/tor_bandwidth_files.rst
new file mode 100644
index 0000000..94aaae7
--- /dev/null
+++ b/docs/source/tor_bandwidth_files.rst
@@ -0,0 +1,32 @@
+How bandwidth files are shown in the Tor network
+=================================================
+
+Directory authorities' votes
+-----------------------------
+
+moria, using Tor 0.3.5.7:
+
+.. code:: text
+
+ bandwidth-file-headers timestamp=1548181637
+
+https://collector.torproject.org/recent/relay-descriptors/votes/
+
+To appear in Tor v0.4.1.x:
+
+.. code:: text
+
+ bandwidth-file-digest sha256=01234567890123456789abcdefghijkl
+
+https://trac.torproject.org/projects/tor/ticket/26698
+
+Directory authorities' bandwidth file URL
+-----------------------------------------
+
+To appear in Tor v0.4.1.x:
+
+.. code:: text
+
+ /tor/status-vote/next/bandwidth.z
+
+https://trac.torproject.org/projects/tor/ticket/21377
1
0