From 57c65976468c245df0ccf39093ffe23d70facedd Mon Sep 17 00:00:00 2001
From: Mark Qvist
Date: Sun, 9 Jul 2023 14:45:02 +0200
Subject: [PATCH] Github pages output
---
.gitignore | 2 +-
Makefile | 6 +
build/connect.html | 39 +
build/connect_de.html | 40 +
build/connect_pl.html | 39 +
build/connect_pt-br.html | 40 +
build/credits.html | 35 +
build/credits_de.html | 35 +
build/credits_pl.html | 35 +
build/credits_pt-br.html | 35 +
build/crypto.html | 35 +
build/crypto_de.html | 35 +
build/crypto_pl.html | 35 +
build/crypto_pt-br.html | 35 +
build/css/water.css | 1710 +++
build/docs.html | 17 +
build/docs_de.html | 17 +
build/docs_pl.html | 17 +
build/docs_pt-br.html | 17 +
build/donate.html | 28 +
build/donate_de.html | 24 +
build/donate_pl.html | 28 +
build/donate_pt-br.html | 28 +
build/gfx/reticulum_logo_512.png | Bin 0 -> 86758 bytes
build/hardware.html | 31 +
build/hardware_de.html | 31 +
build/hardware_pl.html | 31 +
build/hardware_pt-br.html | 30 +
build/index.html | 35 +
build/index_de.html | 35 +
build/index_pl.html | 35 +
build/index_pt-br.html | 36 +
build/license-de.html | 35 +
build/license.html | 35 +
build/manual/Reticulum Manual.pdf | Bin 0 -> 2381782 bytes
build/manual/_images/board_heltec32.png | Bin 0 -> 195590 bytes
build/manual/_images/board_rnode.png | Bin 0 -> 265337 bytes
build/manual/_images/board_rnodev2.png | Bin 0 -> 575473 bytes
build/manual/_images/board_t3v20.png | Bin 0 -> 254806 bytes
build/manual/_images/board_t3v21.png | Bin 0 -> 241220 bytes
build/manual/_images/board_tbeam.png | Bin 0 -> 187914 bytes
build/manual/_images/if_mode_graph_b.png | Bin 0 -> 25824 bytes
build/manual/_images/nomadnet_3.png | Bin 0 -> 87591 bytes
build/manual/_images/radio_is5ac.png | Bin 0 -> 165557 bytes
build/manual/_images/radio_rblhg5.png | Bin 0 -> 242191 bytes
build/manual/_images/sideband_devices.webp | Bin 0 -> 58570 bytes
build/manual/_sources/examples.rst.txt | 128 +
build/manual/_sources/forhumans.rst.txt | 4 +
.../_sources/gettingstartedfast.rst.txt | 510 +
build/manual/_sources/hardware.rst.txt | 241 +
build/manual/_sources/index.rst.txt | 43 +
build/manual/_sources/interfaces.rst.txt | 748 ++
build/manual/_sources/networks.rst.txt | 169 +
build/manual/_sources/reference.rst.txt | 214 +
build/manual/_sources/support.rst.txt | 42 +
build/manual/_sources/understanding.rst.txt | 897 ++
build/manual/_sources/using.rst.txt | 568 +
build/manual/_sources/whatis.rst.txt | 168 +
.../_sphinx_javascript_frameworks_compat.js | 134 +
build/manual/_static/basic.css | 900 ++
build/manual/_static/check-solid.svg | 4 +
build/manual/_static/clipboard.min.js | 7 +
build/manual/_static/copy-button.svg | 5 +
build/manual/_static/copybutton.css | 94 +
build/manual/_static/copybutton.js | 248 +
build/manual/_static/copybutton_funcs.js | 73 +
build/manual/_static/custom.css | 20 +
build/manual/_static/debug.css | 69 +
build/manual/_static/doctools.js | 156 +
build/manual/_static/documentation_options.js | 14 +
build/manual/_static/file.png | Bin 0 -> 286 bytes
build/manual/_static/jquery-3.6.0.js | 10881 ++++++++++++++++
build/manual/_static/jquery.js | 2 +
build/manual/_static/language_data.js | 199 +
build/manual/_static/minus.png | Bin 0 -> 90 bytes
build/manual/_static/plus.png | Bin 0 -> 90 bytes
build/manual/_static/pygments.css | 255 +
build/manual/_static/rns_logo_512.png | Bin 0 -> 86758 bytes
.../manual/_static/scripts/furo-extensions.js | 0
build/manual/_static/scripts/furo.js | 3 +
.../_static/scripts/furo.js.LICENSE.txt | 7 +
build/manual/_static/scripts/furo.js.map | 1 +
build/manual/_static/searchtools.js | 566 +
build/manual/_static/skeleton.css | 296 +
build/manual/_static/sphinx_highlight.js | 144 +
.../manual/_static/styles/furo-extensions.css | 2 +
.../_static/styles/furo-extensions.css.map | 1 +
build/manual/_static/styles/furo.css | 2 +
build/manual/_static/styles/furo.css.map | 1 +
build/manual/_static/underscore-1.13.1.js | 2042 +++
build/manual/_static/underscore.js | 6 +
build/manual/examples.html | 3335 +++++
build/manual/forhumans.html | 270 +
build/manual/genindex.html | 736 ++
build/manual/gettingstartedfast.html | 750 ++
build/manual/hardware.html | 512 +
build/manual/index.html | 477 +
build/manual/interfaces.html | 1019 ++
build/manual/networks.html | 480 +
build/manual/objects.inv | Bin 0 -> 2446 bytes
build/manual/reference.html | 2026 +++
build/manual/search.html | 278 +
build/manual/searchindex.js | 1 +
build/manual/support.html | 343 +
build/manual/understanding.html | 1209 ++
build/manual/using.html | 825 ++
build/manual/whatis.html | 447 +
build/start.html | 65 +
build/start_de.html | 65 +
build/start_pl.html | 65 +
build/start_pt-br.html | 64 +
docs/connect.html | 39 +
docs/connect_de.html | 40 +
docs/connect_pl.html | 39 +
docs/connect_pt-br.html | 40 +
docs/credits.html | 35 +
docs/credits_de.html | 35 +
docs/credits_pl.html | 35 +
docs/credits_pt-br.html | 35 +
docs/crypto.html | 35 +
docs/crypto_de.html | 35 +
docs/crypto_pl.html | 35 +
docs/crypto_pt-br.html | 35 +
docs/css/water.css | 1710 +++
docs/docs.html | 17 +
docs/docs_de.html | 17 +
docs/docs_pl.html | 17 +
docs/docs_pt-br.html | 17 +
docs/donate.html | 28 +
docs/donate_de.html | 24 +
docs/donate_pl.html | 28 +
docs/donate_pt-br.html | 28 +
docs/gfx/reticulum_logo_512.png | Bin 0 -> 86758 bytes
docs/hardware.html | 31 +
docs/hardware_de.html | 31 +
docs/hardware_pl.html | 31 +
docs/hardware_pt-br.html | 30 +
docs/index.html | 35 +
docs/index_de.html | 35 +
docs/index_pl.html | 35 +
docs/index_pt-br.html | 36 +
docs/license-de.html | 35 +
docs/license.html | 35 +
docs/manual/Reticulum Manual.pdf | Bin 0 -> 2381782 bytes
docs/manual/_images/board_heltec32.png | Bin 0 -> 195590 bytes
docs/manual/_images/board_rnode.png | Bin 0 -> 265337 bytes
docs/manual/_images/board_rnodev2.png | Bin 0 -> 575473 bytes
docs/manual/_images/board_t3v20.png | Bin 0 -> 254806 bytes
docs/manual/_images/board_t3v21.png | Bin 0 -> 241220 bytes
docs/manual/_images/board_tbeam.png | Bin 0 -> 187914 bytes
docs/manual/_images/if_mode_graph_b.png | Bin 0 -> 25824 bytes
docs/manual/_images/nomadnet_3.png | Bin 0 -> 87591 bytes
docs/manual/_images/radio_is5ac.png | Bin 0 -> 165557 bytes
docs/manual/_images/radio_rblhg5.png | Bin 0 -> 242191 bytes
docs/manual/_images/sideband_devices.webp | Bin 0 -> 58570 bytes
docs/manual/_sources/examples.rst.txt | 128 +
docs/manual/_sources/forhumans.rst.txt | 4 +
.../_sources/gettingstartedfast.rst.txt | 510 +
docs/manual/_sources/hardware.rst.txt | 241 +
docs/manual/_sources/index.rst.txt | 43 +
docs/manual/_sources/interfaces.rst.txt | 748 ++
docs/manual/_sources/networks.rst.txt | 169 +
docs/manual/_sources/reference.rst.txt | 214 +
docs/manual/_sources/support.rst.txt | 42 +
docs/manual/_sources/understanding.rst.txt | 897 ++
docs/manual/_sources/using.rst.txt | 568 +
docs/manual/_sources/whatis.rst.txt | 168 +
.../_sphinx_javascript_frameworks_compat.js | 134 +
docs/manual/_static/basic.css | 900 ++
docs/manual/_static/check-solid.svg | 4 +
docs/manual/_static/clipboard.min.js | 7 +
docs/manual/_static/copy-button.svg | 5 +
docs/manual/_static/copybutton.css | 94 +
docs/manual/_static/copybutton.js | 248 +
docs/manual/_static/copybutton_funcs.js | 73 +
docs/manual/_static/custom.css | 20 +
docs/manual/_static/debug.css | 69 +
docs/manual/_static/doctools.js | 156 +
docs/manual/_static/documentation_options.js | 14 +
docs/manual/_static/file.png | Bin 0 -> 286 bytes
docs/manual/_static/jquery-3.6.0.js | 10881 ++++++++++++++++
docs/manual/_static/jquery.js | 2 +
docs/manual/_static/language_data.js | 199 +
docs/manual/_static/minus.png | Bin 0 -> 90 bytes
docs/manual/_static/plus.png | Bin 0 -> 90 bytes
docs/manual/_static/pygments.css | 255 +
docs/manual/_static/rns_logo_512.png | Bin 0 -> 86758 bytes
.../manual/_static/scripts/furo-extensions.js | 0
docs/manual/_static/scripts/furo.js | 3 +
.../_static/scripts/furo.js.LICENSE.txt | 7 +
docs/manual/_static/scripts/furo.js.map | 1 +
docs/manual/_static/searchtools.js | 566 +
docs/manual/_static/skeleton.css | 296 +
docs/manual/_static/sphinx_highlight.js | 144 +
.../manual/_static/styles/furo-extensions.css | 2 +
.../_static/styles/furo-extensions.css.map | 1 +
docs/manual/_static/styles/furo.css | 2 +
docs/manual/_static/styles/furo.css.map | 1 +
docs/manual/_static/underscore-1.13.1.js | 2042 +++
docs/manual/_static/underscore.js | 6 +
docs/manual/examples.html | 3335 +++++
docs/manual/forhumans.html | 270 +
docs/manual/genindex.html | 736 ++
docs/manual/gettingstartedfast.html | 750 ++
docs/manual/hardware.html | 512 +
docs/manual/index.html | 477 +
docs/manual/interfaces.html | 1019 ++
docs/manual/networks.html | 480 +
docs/manual/objects.inv | Bin 0 -> 2446 bytes
docs/manual/reference.html | 2026 +++
docs/manual/search.html | 278 +
docs/manual/searchindex.js | 1 +
docs/manual/support.html | 343 +
docs/manual/understanding.html | 1209 ++
docs/manual/using.html | 825 ++
docs/manual/whatis.html | 447 +
docs/start.html | 65 +
docs/start_de.html | 65 +
docs/start_pl.html | 65 +
docs/start_pt-br.html | 64 +
220 files changed, 70985 insertions(+), 1 deletion(-)
create mode 100644 build/connect.html
create mode 100644 build/connect_de.html
create mode 100644 build/connect_pl.html
create mode 100644 build/connect_pt-br.html
create mode 100644 build/credits.html
create mode 100644 build/credits_de.html
create mode 100644 build/credits_pl.html
create mode 100644 build/credits_pt-br.html
create mode 100644 build/crypto.html
create mode 100644 build/crypto_de.html
create mode 100644 build/crypto_pl.html
create mode 100644 build/crypto_pt-br.html
create mode 100644 build/css/water.css
create mode 100644 build/docs.html
create mode 100644 build/docs_de.html
create mode 100644 build/docs_pl.html
create mode 100644 build/docs_pt-br.html
create mode 100644 build/donate.html
create mode 100644 build/donate_de.html
create mode 100644 build/donate_pl.html
create mode 100644 build/donate_pt-br.html
create mode 100644 build/gfx/reticulum_logo_512.png
create mode 100644 build/hardware.html
create mode 100644 build/hardware_de.html
create mode 100644 build/hardware_pl.html
create mode 100644 build/hardware_pt-br.html
create mode 100644 build/index.html
create mode 100644 build/index_de.html
create mode 100644 build/index_pl.html
create mode 100644 build/index_pt-br.html
create mode 100644 build/license-de.html
create mode 100644 build/license.html
create mode 100644 build/manual/Reticulum Manual.pdf
create mode 100644 build/manual/_images/board_heltec32.png
create mode 100644 build/manual/_images/board_rnode.png
create mode 100644 build/manual/_images/board_rnodev2.png
create mode 100644 build/manual/_images/board_t3v20.png
create mode 100644 build/manual/_images/board_t3v21.png
create mode 100644 build/manual/_images/board_tbeam.png
create mode 100644 build/manual/_images/if_mode_graph_b.png
create mode 100644 build/manual/_images/nomadnet_3.png
create mode 100644 build/manual/_images/radio_is5ac.png
create mode 100644 build/manual/_images/radio_rblhg5.png
create mode 100644 build/manual/_images/sideband_devices.webp
create mode 100644 build/manual/_sources/examples.rst.txt
create mode 100644 build/manual/_sources/forhumans.rst.txt
create mode 100644 build/manual/_sources/gettingstartedfast.rst.txt
create mode 100644 build/manual/_sources/hardware.rst.txt
create mode 100644 build/manual/_sources/index.rst.txt
create mode 100644 build/manual/_sources/interfaces.rst.txt
create mode 100644 build/manual/_sources/networks.rst.txt
create mode 100644 build/manual/_sources/reference.rst.txt
create mode 100644 build/manual/_sources/support.rst.txt
create mode 100644 build/manual/_sources/understanding.rst.txt
create mode 100644 build/manual/_sources/using.rst.txt
create mode 100644 build/manual/_sources/whatis.rst.txt
create mode 100644 build/manual/_static/_sphinx_javascript_frameworks_compat.js
create mode 100644 build/manual/_static/basic.css
create mode 100644 build/manual/_static/check-solid.svg
create mode 100644 build/manual/_static/clipboard.min.js
create mode 100644 build/manual/_static/copy-button.svg
create mode 100644 build/manual/_static/copybutton.css
create mode 100644 build/manual/_static/copybutton.js
create mode 100644 build/manual/_static/copybutton_funcs.js
create mode 100644 build/manual/_static/custom.css
create mode 100644 build/manual/_static/debug.css
create mode 100644 build/manual/_static/doctools.js
create mode 100644 build/manual/_static/documentation_options.js
create mode 100644 build/manual/_static/file.png
create mode 100644 build/manual/_static/jquery-3.6.0.js
create mode 100644 build/manual/_static/jquery.js
create mode 100644 build/manual/_static/language_data.js
create mode 100644 build/manual/_static/minus.png
create mode 100644 build/manual/_static/plus.png
create mode 100644 build/manual/_static/pygments.css
create mode 100644 build/manual/_static/rns_logo_512.png
create mode 100644 build/manual/_static/scripts/furo-extensions.js
create mode 100644 build/manual/_static/scripts/furo.js
create mode 100644 build/manual/_static/scripts/furo.js.LICENSE.txt
create mode 100644 build/manual/_static/scripts/furo.js.map
create mode 100644 build/manual/_static/searchtools.js
create mode 100644 build/manual/_static/skeleton.css
create mode 100644 build/manual/_static/sphinx_highlight.js
create mode 100644 build/manual/_static/styles/furo-extensions.css
create mode 100644 build/manual/_static/styles/furo-extensions.css.map
create mode 100644 build/manual/_static/styles/furo.css
create mode 100644 build/manual/_static/styles/furo.css.map
create mode 100644 build/manual/_static/underscore-1.13.1.js
create mode 100644 build/manual/_static/underscore.js
create mode 100644 build/manual/examples.html
create mode 100644 build/manual/forhumans.html
create mode 100644 build/manual/genindex.html
create mode 100644 build/manual/gettingstartedfast.html
create mode 100644 build/manual/hardware.html
create mode 100644 build/manual/index.html
create mode 100644 build/manual/interfaces.html
create mode 100644 build/manual/networks.html
create mode 100644 build/manual/objects.inv
create mode 100644 build/manual/reference.html
create mode 100644 build/manual/search.html
create mode 100644 build/manual/searchindex.js
create mode 100644 build/manual/support.html
create mode 100644 build/manual/understanding.html
create mode 100644 build/manual/using.html
create mode 100644 build/manual/whatis.html
create mode 100644 build/start.html
create mode 100644 build/start_de.html
create mode 100644 build/start_pl.html
create mode 100644 build/start_pt-br.html
create mode 100644 docs/connect.html
create mode 100644 docs/connect_de.html
create mode 100644 docs/connect_pl.html
create mode 100644 docs/connect_pt-br.html
create mode 100644 docs/credits.html
create mode 100644 docs/credits_de.html
create mode 100644 docs/credits_pl.html
create mode 100644 docs/credits_pt-br.html
create mode 100644 docs/crypto.html
create mode 100644 docs/crypto_de.html
create mode 100644 docs/crypto_pl.html
create mode 100644 docs/crypto_pt-br.html
create mode 100644 docs/css/water.css
create mode 100644 docs/docs.html
create mode 100644 docs/docs_de.html
create mode 100644 docs/docs_pl.html
create mode 100644 docs/docs_pt-br.html
create mode 100644 docs/donate.html
create mode 100644 docs/donate_de.html
create mode 100644 docs/donate_pl.html
create mode 100644 docs/donate_pt-br.html
create mode 100644 docs/gfx/reticulum_logo_512.png
create mode 100644 docs/hardware.html
create mode 100644 docs/hardware_de.html
create mode 100644 docs/hardware_pl.html
create mode 100644 docs/hardware_pt-br.html
create mode 100644 docs/index.html
create mode 100644 docs/index_de.html
create mode 100644 docs/index_pl.html
create mode 100644 docs/index_pt-br.html
create mode 100644 docs/license-de.html
create mode 100644 docs/license.html
create mode 100644 docs/manual/Reticulum Manual.pdf
create mode 100644 docs/manual/_images/board_heltec32.png
create mode 100644 docs/manual/_images/board_rnode.png
create mode 100644 docs/manual/_images/board_rnodev2.png
create mode 100644 docs/manual/_images/board_t3v20.png
create mode 100644 docs/manual/_images/board_t3v21.png
create mode 100644 docs/manual/_images/board_tbeam.png
create mode 100644 docs/manual/_images/if_mode_graph_b.png
create mode 100644 docs/manual/_images/nomadnet_3.png
create mode 100644 docs/manual/_images/radio_is5ac.png
create mode 100644 docs/manual/_images/radio_rblhg5.png
create mode 100644 docs/manual/_images/sideband_devices.webp
create mode 100644 docs/manual/_sources/examples.rst.txt
create mode 100644 docs/manual/_sources/forhumans.rst.txt
create mode 100644 docs/manual/_sources/gettingstartedfast.rst.txt
create mode 100644 docs/manual/_sources/hardware.rst.txt
create mode 100644 docs/manual/_sources/index.rst.txt
create mode 100644 docs/manual/_sources/interfaces.rst.txt
create mode 100644 docs/manual/_sources/networks.rst.txt
create mode 100644 docs/manual/_sources/reference.rst.txt
create mode 100644 docs/manual/_sources/support.rst.txt
create mode 100644 docs/manual/_sources/understanding.rst.txt
create mode 100644 docs/manual/_sources/using.rst.txt
create mode 100644 docs/manual/_sources/whatis.rst.txt
create mode 100644 docs/manual/_static/_sphinx_javascript_frameworks_compat.js
create mode 100644 docs/manual/_static/basic.css
create mode 100644 docs/manual/_static/check-solid.svg
create mode 100644 docs/manual/_static/clipboard.min.js
create mode 100644 docs/manual/_static/copy-button.svg
create mode 100644 docs/manual/_static/copybutton.css
create mode 100644 docs/manual/_static/copybutton.js
create mode 100644 docs/manual/_static/copybutton_funcs.js
create mode 100644 docs/manual/_static/custom.css
create mode 100644 docs/manual/_static/debug.css
create mode 100644 docs/manual/_static/doctools.js
create mode 100644 docs/manual/_static/documentation_options.js
create mode 100644 docs/manual/_static/file.png
create mode 100644 docs/manual/_static/jquery-3.6.0.js
create mode 100644 docs/manual/_static/jquery.js
create mode 100644 docs/manual/_static/language_data.js
create mode 100644 docs/manual/_static/minus.png
create mode 100644 docs/manual/_static/plus.png
create mode 100644 docs/manual/_static/pygments.css
create mode 100644 docs/manual/_static/rns_logo_512.png
create mode 100644 docs/manual/_static/scripts/furo-extensions.js
create mode 100644 docs/manual/_static/scripts/furo.js
create mode 100644 docs/manual/_static/scripts/furo.js.LICENSE.txt
create mode 100644 docs/manual/_static/scripts/furo.js.map
create mode 100644 docs/manual/_static/searchtools.js
create mode 100644 docs/manual/_static/skeleton.css
create mode 100644 docs/manual/_static/sphinx_highlight.js
create mode 100644 docs/manual/_static/styles/furo-extensions.css
create mode 100644 docs/manual/_static/styles/furo-extensions.css.map
create mode 100644 docs/manual/_static/styles/furo.css
create mode 100644 docs/manual/_static/styles/furo.css.map
create mode 100644 docs/manual/_static/underscore-1.13.1.js
create mode 100644 docs/manual/_static/underscore.js
create mode 100644 docs/manual/examples.html
create mode 100644 docs/manual/forhumans.html
create mode 100644 docs/manual/genindex.html
create mode 100644 docs/manual/gettingstartedfast.html
create mode 100644 docs/manual/hardware.html
create mode 100644 docs/manual/index.html
create mode 100644 docs/manual/interfaces.html
create mode 100644 docs/manual/networks.html
create mode 100644 docs/manual/objects.inv
create mode 100644 docs/manual/reference.html
create mode 100644 docs/manual/search.html
create mode 100644 docs/manual/searchindex.js
create mode 100644 docs/manual/support.html
create mode 100644 docs/manual/understanding.html
create mode 100644 docs/manual/using.html
create mode 100644 docs/manual/whatis.html
create mode 100644 docs/start.html
create mode 100644 docs/start_de.html
create mode 100644 docs/start_pl.html
create mode 100644 docs/start_pt-br.html
diff --git a/.gitignore b/.gitignore
index 3ad3c7a..22ffa08 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,2 @@
build.env
-
+./build/*
diff --git a/Makefile b/Makefile
index 1590f6e..cc2cacd 100644
--- a/Makefile
+++ b/Makefile
@@ -13,6 +13,12 @@ website:
cp -r ../../Reticulum/docs/manual/* build/manual/
cp -r ../../Reticulum/docs/Reticulum\ Manual.pdf build/manual/
+docsfolder:
+ @mkdir -p ./docs
+ cp -rv ./build/* ./docs/
+
+github: website docsfolder
+
upload:
. ./build.env; \
rsync -rv build/ "$$DEPLOY_TARGET" --delete
diff --git a/build/connect.html b/build/connect.html
new file mode 100644
index 0000000..8d4f809
--- /dev/null
+++ b/build/connect.html
@@ -0,0 +1,39 @@
+
+
+
+
+
+
+
If you just want to get started experimenting without building any physical networks, you are welcome to join the Public Reticulum Testnet. The testnet is just that, an informal network for testing and experimenting. It will be up most of the time, and anyone can join, but it also means that there's no guarantees for service availability.
+The testnet runs the very latest version of Reticulum (often even a short while before it is publicly released). Sometimes experimental versions of Reticulum might be deployed to nodes on the testnet, which means strange behaviour can occur. If none of that scares you, you can join the testnet via either TCP or I2P.
+Just add one of the following interfaces to your Reticulum configuration file:
+# TCP/IP interface to the Dublin Hub
+ [[RNS Testnet Dublin]]
+ type = TCPClientInterface
+ enabled = yes
+ target_host = dublin.connect.reticulum.network
+ target_port = 4965
+
+# TCP/IP interface to the BetweenTheBorders Hub (community-provided)
+ [[RNS Testnet BetweenTheBorders]]
+ type = TCPClientInterface
+ enabled = yes
+ target_host = betweentheborders.com
+ target_port = 4242
+
+# Interface to I2P Hub A
+ [[RNS Testnet I2P Hub A]]
+ type = I2PInterface
+ enabled = yes
+ peers = mrwqlsioq4hoo2lmeeud7dkfscnm7yxak7dmiyvsrnpfag3z5tsq.b32.i2p
+
+The testnet also contains a number of Nomad Network nodes, and LXMF propagation nodes.
+ + + diff --git a/build/connect_de.html b/build/connect_de.html new file mode 100644 index 0000000..19ff231 --- /dev/null +++ b/build/connect_de.html @@ -0,0 +1,40 @@ + + + + + + +Wenn Sie einfach nur experimentieren wollen, ohne ein physisches Netzwerk aufzubauen, können Sie sich gerne dem öffentlichen Reticulum Testnet anschließen. Das Testnetz ist genau das: ein informelles Netzwerk zum Testen und Experimentieren. Es wird die meiste Zeit verfügbar sein, und jeder kann mitmachen, aber das bedeutet auch, dass es keine Garantien für die Verfügbarkeit der Dienste gibt.
+Auf dem Testnetz läuft die allerneueste Version von Reticulum (oft sogar kurz vor der öffentlichen Freigabe). Manchmal werden experimentelle Versionen von Reticulum auf Knoten im Testnetz eingesetzt, was bedeutet, dass seltsames Verhalten auftreten kann. +Wenn Sie das alles nicht abschreckt, können Sie dem Testnetz über TCP oder I2P beitreten.
+Fügen Sie einfach eine der folgenden Schnittstellen in Ihre Reticulum-Konfigurationsdatei ein:
+# TCP/IP interface to the Dublin Hub
+ [[RNS Testnet Dublin]]
+ type = TCPClientInterface
+ enabled = yes
+ target_host = dublin.connect.reticulum.network
+ target_port = 4965
+
+# TCP/IP interface to the BetweenTheBorders Hub (community-provided)
+ [[RNS Testnet BetweenTheBorders]]
+ type = TCPClientInterface
+ enabled = yes
+ target_host = betweentheborders.com
+ target_port = 4242
+
+# Interface to I2P Hub A
+ [[RNS Testnet I2P Hub A]]
+ type = I2PInterface
+ enabled = yes
+ peers = mrwqlsioq4hoo2lmeeud7dkfscnm7yxak7dmiyvsrnpfag3z5tsq.b32.i2p
+
+Das Testnetz enthält auch eine Reihe von Nomad Network-Knoten und LXMF-Propagationsknoten, Sowie Sideband Peers, welche untereinander erreichbar sind.
+Nächstes Thema: Lesen Sie das Handbuch
+ + diff --git a/build/connect_pl.html b/build/connect_pl.html new file mode 100644 index 0000000..7ece3c5 --- /dev/null +++ b/build/connect_pl.html @@ -0,0 +1,39 @@ + + + + + + +Jeśli chcesz po prostu zacząć eksperymentować bez budowania fizycznych sieci, zachęcam do przyłączenia się do Publicznego Testnetu Reticulum. Testnet to po prostu nieformalna sieć do testowania i eksperymentowania. Będzie działać przez większość czasu i każdy może do niej dołączyć, ale oznacza to również, że nie ma gwarancji dostępności usług.
+W sieci testowej działa najnowsza wersja Reticulum (często nawet krótko przed jej publicznym udostępnieniem). Czasami eksperymentalne wersje Reticulum mogą zostać wdrożone do węzłów w sieci testowej, co oznacza, że mogą wystąpić dziwne zachowania. Jeśli Ciebie to nie przeraża, możesz dołączyć do sieci testowej przez TCP lub I2P.
+Dodaj jeden z następujących interfejsów do pliku konfiguracyjnego Reticulum:
+# TCP/IP interface to the Dublin Hub
+ [[RNS Testnet Dublin]]
+ type = TCPClientInterface
+ enabled = yes
+ target_host = dublin.connect.reticulum.network
+ target_port = 4965
+
+# TCP/IP interface to the BetweenTheBorders Hub (community-provided)
+ [[RNS Testnet BetweenTheBorders]]
+ type = TCPClientInterface
+ enabled = yes
+ target_host = betweentheborders.com
+ target_port = 4242
+
+# Interface to I2P Hub A
+ [[RNS Testnet I2P Hub A]]
+ type = I2PInterface
+ enabled = yes
+ peers = mrwqlsioq4hoo2lmeeud7dkfscnm7yxak7dmiyvsrnpfag3z5tsq.b32.i2p
+
+Testnet zawiera również liczne węzły Nomad Network, i węzły propagacyjne LXMF.
+Następny Temat: Przeczytaj Podręcznik
+ + diff --git a/build/connect_pt-br.html b/build/connect_pt-br.html new file mode 100644 index 0000000..554143f --- /dev/null +++ b/build/connect_pt-br.html @@ -0,0 +1,40 @@ + + + + + + +Se você quiser experimentar sem criar nenhuma rede física, você é bem-vindo para entrar na Rede de Teste Pública Reticulum. A rede de teste é apenas isso, uma rede informal para teste e experimentação. Estará online na maior parte do tempo e qualquer um pode entrar, mas isso também significa que não há garantia da disponibilidade do serviço.
+A rede de teste executa a última versão do Reticulum (muitas vezes antes da versão ser publicamente lançada). +Algumas vezes versões experimentais do Reticulum podem ser utilizada em nós da rede de teste, que pode causar instabilidade. Se nada disso importa para você, você pode entrar na rede de teste via TCP ou I2P.
+Adicione uma das seguintes interfaces no arquivo de configuração do seu Reticulum:
+# Interface TCP/IP para o Dublin Hub
+ [[RNS Testnet Dublin]]
+ type = TCPClientInterface
+ enabled = yes
+ target_host = dublin.connect.reticulum.network
+ target_port = 4965
+
+# Interface TCP/IP para o BetweenTheBorders Hub
+ [[RNS Testnet BetweenTheBorders]]
+ type = TCPClientInterface
+ enabled = yes
+ target_host = betweentheborders.com
+ target_port = 4242
+
+# Interface para o I2P Hub A
+ [[RNS Testnet I2P Hub A]]
+ type = I2PInterface
+ enabled = yes
+ peers = mrwqlsioq4hoo2lmeeud7dkfscnm7yxak7dmiyvsrnpfag3z5tsq.b32.i2p
+
+A rede de teste também contém o número de nós da Nomad Network e nós de propagação LXMF.
+ + + diff --git a/build/credits.html b/build/credits.html new file mode 100644 index 0000000..4f1667e --- /dev/null +++ b/build/credits.html @@ -0,0 +1,35 @@ + + + + + + +Reticulum can only exist because of the mountain of Open Source work it was built on top of, the contributions of everyone involved, and everyone that has supported the project through the years. To everyone who has helped, thank you so much.
+A number of other modules and projects are either part of, or used by Reticulum. Sincere thanks to the authors and contributors of the following projects:
+The protocol design and reference implementation for Reticulum was carried out between 2014 and 2022 by Mark Qvist.
+The Python reference implementation of Reticulum and this website is licensed under the MIT License. Please donate to support the continued development.
+Reticulum kann nur existieren, weil es auf einem Berg von Open-Source-Arbeiten aufbaut, weil alle Beteiligten dazu beigetragen haben und weil alle, die das Projekt über die Jahre hinweg unterstützt haben. Vielen Dank an alle, die geholfen haben.
+Eine Reihe anderer Module und Projekte sind entweder Teil von Reticulum oder werden von Reticulum verwendet. Ein herzliches Dankeschön an die Autoren und Mitwirkenden der folgenden Projekte:
+Das Protokolldesign und die Referenzimplementierung für Reticulum wurden zwischen 2014 und 2022 von Mark Qvist durchgeführt.
+Die Python Referenzimplementierung von Reticulum und diese Website ist lizenziert unter der MIT License. Bitte Spenden sie zur Unterstützung der weiteren Entwicklung.
+Reticulum może istnieć tylko dzięki górze pracy Open Source, na której zostało zbudowane, dzięki wkładowi wszystkich zaangażowanych osób i wszystkich, którzy wspierali projekt przez lata. Wszystkim, którzy pomogli, bardzo dziękuję.
+Wiele innych modułów i projektów jest częścią lub jest wykorzystywanych przez Reticulum. Szczere podziękowania dla autorów i współtwórców następujących projektów:
+Projekt protokołu i wdrożenie referencyjne dla Reticulum zostało zrealizowane w latach 2014-2022 przez Marka Qvista.
+Implementacja referencji dla języka Python oraz ta strona są opubliowanie na Licencji MIT. Proszę przekaż darowiznę, żeby wesprzeć dalszy rozwój projektu.
+Reticulum só foi possível graças a montanha de trabalho Código Aberto para o projeto, as contribuições de todos envolvidos e todos que apoiaram o projeto por esses anos. Para todos que ajudaram, muito obrigado.
+Uma lista de outros modelos e projetos são parte disso ou utilizado no Reticulum, Agradecimentos sinceros para os autores e contribuidores dos seguinte projetos:
+O design do protocolo e implementação de referência foram desenvolvidos entre 2014 e 2022 por Mark Qvist.
+A implementação Python referencial do Reticulum e seu site utilizam a licença MIT. Por favor considere uma doação para ajudar a continuar o projeto.
+Reticulum uses a simple suite of efficient, strong and modern cryptographic primitives, with widely available implementations that can be used both on general-purpose CPUs and on microcontrollers. The necessary primitives are:
+In the default installation configuration, the X25519
, Ed25519
and AES-128-CBC
primitives are provided by OpenSSL (via the PyCA/cryptography package). The hashing functions SHA-256
and SHA-512
are provided by the standard Python hashlib. The HKDF
, HMAC
, Fernet
primitives, and the PKCS7
padding function are always provided by the following internal implementations:
Reticulum also includes a complete implementation of all necessary primitives in pure Python. If OpenSSL & PyCA are not available on the system when Reticulum is started, Reticulum will instead use the internal pure-python primitives. A trivial consequence of this is performance, with the OpenSSL backend being much faster. The most important consequence however, is the potential loss of security by using primitives that has not seen the same amount of scrutiny, testing and review as those from OpenSSL.
+If you want to use the internal pure-python primitives, it is highly advisable that you have a good understanding of the risks that this pose, and make an informed decision on whether those risks are acceptable to you.
+Reticulum is relatively young software, and should be considered as such. While it has been built with cryptography best-practices very foremost in mind, it has not been externally security audited, and there could very well be privacy or security breaking bugs. If you want to help out, or help sponsor an audit, please do get in touch.
+Next Topic: Acknowledgements & Credits
+ + diff --git a/build/crypto_de.html b/build/crypto_de.html new file mode 100644 index 0000000..fac48f2 --- /dev/null +++ b/build/crypto_de.html @@ -0,0 +1,35 @@ + + + + + + +Reticulum verwendet eine einfache Reihe von effizienten, starken und modernen kryptographischen Primitiven mit weithin verfügbaren Implementierungen, die sowohl auf Allzweck-CPUs als auch auf Mikrocontrollern verwendet werden können. Die notwendigen Primitive sind:
+In der Standard-Installationskonfiguration werden die Primitive X25519
, Ed25519
und AES-128-CBC
von OpenSSL (mit dem PyCA/cryptography Packet mitgebracht). Die Hashing-Funktionen SHA-256
und SHA-512
werden vom Standard-Python bereitgestellt hashlib. Die HKDF
, HMAC
, Fernet
Primitive, und die PKCS7
Auffüllfunktion werden immer von den folgenden internen Implementierungen bereitgestellt:
Reticulum enthält außerdem eine vollständige Implementierung aller erforderlichen Primitive in reinem Python. Wenn OpenSSL und PyCA beim Start von Reticulum nicht auf dem System verfügbar sind, verwendet Reticulum stattdessen die internen reinen Python-Primitive. Eine triviale Folge hiervon ist die Leistung, da das OpenSSL-Backend viel schneller ist. Die wichtigste Konsequenz ist jedoch der potenzielle Verlust an Sicherheit durch die Verwendung von Primitiven, die nicht in gleichem Maße wie die von OpenSSL untersucht, getestet und geprüft wurden.
+Wenn Sie die internen reinen Python-Primitive verwenden wollen, ist es sehr ratsam, dass Sie die damit verbundenen Risiken gut verstehen und eine fundierte Entscheidung darüber treffen, ob diese Risiken für Sie akzeptabel sind.
+Reticulum ist eine relativ junge Software, die als solche betrachtet werden sollte. Obwohl es unter Berücksichtigung der besten Kryptographie-Praktiken entwickelt wurde, ist es nicht extern sicherheitsgeprüft worden, und es könnte sehr wohl Fehler enthalten, die den Datenschutz oder die Sicherheit verletzen. Wenn Sie mithelfen oder ein Audit sponsern wollen, nehmen Sie bitte Kontakt auf.
+Nächstes Thema: Danksagungen & Credits
+ + diff --git a/build/crypto_pl.html b/build/crypto_pl.html new file mode 100644 index 0000000..11b2191 --- /dev/null +++ b/build/crypto_pl.html @@ -0,0 +1,35 @@ + + + + + + +Reticulum wykorzystuje prosty zestaw wydajnych, silnych i nowoczesnych prymitywów kryptograficznych, z szeroko dostępnymi implementacjami, które mogą być używane zarówno na procesorach ogólnego przeznaczenia, jak i na mikrokontrolerach. Niezbędne prymitywy to:
+W domyślnej konfiguracji instalacji, prymitywy X25519
, Ed25519
i AES-128-CBC
są dostarczone przez OpenSSL (przez pakiet PyCA/cryptography). Funkcja hashu SHA-256
i SHA-512
są dostarczone przez standard Pythona hashlib. Prymitywy HKDF
, HMAC
, Fernet
i funkcja padding PKCS7
są zawsze dostarczane przez następujące wewnętrzne implementacje:
Reticulum zawiera również kompletną implementację wszystkich niezbędnych prymitywów w czystym Pythonie. Jeśli OpenSSL i PyCA nie są dostępne w systemie podczas uruchamiania Reticulum, Reticulum użyje wewnętrznych prymitywów w czystym Pythonie. Trywialną konsekwencją tego jest wydajność, backend OpenSSL jest znacznie szybszy. Najważniejszą konsekwencją jest jednak potencjalna utrata bezpieczeństwa poprzez użycie prymitywów, które nie zostały poddane takiej samej analizie, testom i przeglądom jak te z OpenSSL.
+Jeśli chcesz używać wewnętrznych czystych prymitywów pythona, jest bardzo wskazane, abyś dobrze rozumiał ryzyko, jakie to stwarza, i podjął świadomą decyzję, czy to ryzyko jest dla ciebie do przyjęcia.
+Reticulum jest stosunkowo młodym oprogramowaniem i powinno być traktowane jako takie. Chociaż zostało zbudowane z myślą o najlepszych praktykach kryptograficznych, nie zostało poddane zewnętrznemu audytowi bezpieczeństwa i bardzo możliwe, że zawiera błędy naruszające prywatność lub bezpieczeństwo. Jeśli chcesz pomóc lub zasponsorować audyt, skontaktuj się ze mną.
+Next Topic: Podziękowania & Zasługi
+ + diff --git a/build/crypto_pt-br.html b/build/crypto_pt-br.html new file mode 100644 index 0000000..4c07f80 --- /dev/null +++ b/build/crypto_pt-br.html @@ -0,0 +1,35 @@ + + + + + + +Reticulum utiliza uma suíte simples de primitivos criptográficos modernos, fortes e eficientes, com diversas implementações disponíveis que pode ser utilizados tanto em CPUs convencionais como microcontroladores. Os primitivos necessários são:
+Na configuração de instalação padrão, os primitivos X25519
, Ed25519
e AES_128-CBC
são fornecidos pela OpenSSL (pelo pacote PyCA/cryptography ). As funções de hash SHA-256
e SHA-512
são fornecidas pela biblioteca Python hashlib. Os primitivos HKDF
, HMAC
, Fernet
, e a função de preenchimento PKCS7
são sempre fornecidas pelas seguintes implementações internas:
Reticulum também incluí a implementação completa de todos os primitivos necessários em Python puro. Se o OpenSSL & PyCA não estão disponíveis no sistema que o Reticulum é iniciado, Reticulum vai utilizar os primitivos internos. A consequência trivial disso é o desempenho, com a biblioteca OpenSSL sendo mais rápida. A consequência mais importante no entanto, é a potencial perda de segurança por utilizar primitivos que não possuem o mesmo nível de suporte, teste e revisão que o OpenSSL.
+Se você quer utilizar primitivos internos em Python, é aconselhável que você entenda os riscos envolvidos, e tome uma decisão informada conforme os ricos são aceitáveis para você.
+Reticulum é um software relativamente jovem, e deve ser considerado como tal. Enquanto ele é desenvolvido com as melhores práticas de criptografia em mente, ainda não foi auditado externamente, e pode haver bugs para segurança e privacidade. Se você quer ajudar, ou patrocinar uma auditoria, nos informe.
+Próxima Página: Agradecimentos & Créditos
+ + diff --git a/build/css/water.css b/build/css/water.css new file mode 100644 index 0000000..39c5d78 --- /dev/null +++ b/build/css/water.css @@ -0,0 +1,1710 @@ +/** + * Automatic version: + * Uses light theme by default but switches to dark theme + * if a system-wide theme preference is set on the user's device. + */ + +:root { + --background-body: #fff; + --background: #efefef; + --background-alt: #f7f7f7; + --selection: #9e9e9e; + --text-main: #363636; + --text-bright: #000; + --text-muted: #70777f; + --links: #0076d1; + --focus: #0096bfab; + --border: #dbdbdb; + --code: #000; + --animation-duration: 0.1s; + --button-base: #d0cfcf; + --button-hover: #9b9b9b; + --scrollbar-thumb: rgb(170, 170, 170); + --scrollbar-thumb-hover: var(--button-hover); + --form-placeholder: #949494; + --form-text: #1d1d1d; + --variable: #39a33c; + --highlight: #ff0; + --select-arrow: url("data:image/svg+xml;charset=utf-8,%3C?xml version='1.0' encoding='utf-8'?%3E %3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='62.5' width='116.9' fill='%23161f27'%3E %3Cpath d='M115.3,1.6 C113.7,0 111.1,0 109.5,1.6 L58.5,52.7 L7.4,1.6 C5.8,0 3.2,0 1.6,1.6 C0,3.2 0,5.8 1.6,7.4 L55.5,61.3 C56.3,62.1 57.3,62.5 58.4,62.5 C59.4,62.5 60.5,62.1 61.3,61.3 L115.2,7.4 C116.9,5.8 116.9,3.2 115.3,1.6Z'/%3E %3C/svg%3E"); +} + +body { + font-size: 1.1em; +} + +div.top_menu { + font-size: 1em; +} + +div.lang_menu { + margin-bottom: 0.35em; +} + +@media (prefers-color-scheme: dark) { +:root { + --background-body: #202b38; + --background: #161f27; + --background-alt: #1a242f; + --selection: #1c76c5; + --text-main: #dbdbdb; + --text-bright: #fff; + --text-muted: #a9b1ba; + --links: #41adff; + --focus: #0096bfab; + --border: #526980; + --code: #ffbe85; + --animation-duration: 0.1s; + --button-base: #0c151c; + --button-hover: #040a0f; + --scrollbar-thumb: var(--button-hover); + --scrollbar-thumb-hover: rgb(0, 0, 0); + --form-placeholder: #a9a9a9; + --form-text: #fff; + --variable: #d941e2; + --highlight: #efdb43; + --select-arrow: url("data:image/svg+xml;charset=utf-8,%3C?xml version='1.0' encoding='utf-8'?%3E %3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='62.5' width='116.9' fill='%23efefef'%3E %3Cpath d='M115.3,1.6 C113.7,0 111.1,0 109.5,1.6 L58.5,52.7 L7.4,1.6 C5.8,0 3.2,0 1.6,1.6 C0,3.2 0,5.8 1.6,7.4 L55.5,61.3 C56.3,62.1 57.3,62.5 58.4,62.5 C59.4,62.5 60.5,62.1 61.3,61.3 L115.2,7.4 C116.9,5.8 116.9,3.2 115.3,1.6Z'/%3E %3C/svg%3E"); +} +} + +html { + scrollbar-color: rgb(170, 170, 170) #fff; + scrollbar-color: var(--scrollbar-thumb) var(--background-body); + scrollbar-width: thin; + text-size-adjust: none; + -webkit-text-size-adjust: none; + -moz-text-size-adjust: none; + -ms-text-size-adjust: none; +} + +@media (prefers-color-scheme: dark) { + + html { + scrollbar-color: #040a0f #202b38; + scrollbar-color: var(--scrollbar-thumb) var(--background-body); + } +} + +@media (prefers-color-scheme: dark) { + + html { + scrollbar-color: #040a0f #202b38; + scrollbar-color: var(--scrollbar-thumb) var(--background-body); + } +} + +@media (prefers-color-scheme: dark) { + + html { + scrollbar-color: #040a0f #202b38; + scrollbar-color: var(--scrollbar-thumb) var(--background-body); + } +} + +@media (prefers-color-scheme: dark) { + + html { + scrollbar-color: #040a0f #202b38; + scrollbar-color: var(--scrollbar-thumb) var(--background-body); + } +} + +@media (prefers-color-scheme: dark) { + + html { + scrollbar-color: #040a0f #202b38; + scrollbar-color: var(--scrollbar-thumb) var(--background-body); + } +} + +@media (prefers-color-scheme: dark) { + + html { + scrollbar-color: #040a0f #202b38; + scrollbar-color: var(--scrollbar-thumb) var(--background-body); + } +} + +body { + font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen', 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue', 'Segoe UI Emoji', 'Apple Color Emoji', 'Noto Color Emoji', sans-serif; + line-height: 1.4; + max-width: 800px; + margin: 20px auto; + padding: 0 10px; + word-wrap: break-word; + color: #363636; + color: var(--text-main); + background: #fff; + background: var(--background-body); + text-rendering: optimizeLegibility; +} + +@media (prefers-color-scheme: dark) { + + body { + background: #202b38; + background: var(--background-body); + } +} + +@media (prefers-color-scheme: dark) { + + body { + color: #dbdbdb; + color: var(--text-main); + } +} + +li { + margin-top: 0.5em; + margin-bottom: 0.5em; +} + +button { + transition: + background-color 0.1s linear, + border-color 0.1s linear, + color 0.1s linear, + box-shadow 0.1s linear, + transform 0.1s ease; + transition: + background-color var(--animation-duration) linear, + border-color var(--animation-duration) linear, + color var(--animation-duration) linear, + box-shadow var(--animation-duration) linear, + transform var(--animation-duration) ease; +} + +@media (prefers-color-scheme: dark) { + + button { + transition: + background-color 0.1s linear, + border-color 0.1s linear, + color 0.1s linear, + box-shadow 0.1s linear, + transform 0.1s ease; + transition: + background-color var(--animation-duration) linear, + border-color var(--animation-duration) linear, + color var(--animation-duration) linear, + box-shadow var(--animation-duration) linear, + transform var(--animation-duration) ease; + } +} + +input { + transition: + background-color 0.1s linear, + border-color 0.1s linear, + color 0.1s linear, + box-shadow 0.1s linear, + transform 0.1s ease; + transition: + background-color var(--animation-duration) linear, + border-color var(--animation-duration) linear, + color var(--animation-duration) linear, + box-shadow var(--animation-duration) linear, + transform var(--animation-duration) ease; +} + +@media (prefers-color-scheme: dark) { + + input { + transition: + background-color 0.1s linear, + border-color 0.1s linear, + color 0.1s linear, + box-shadow 0.1s linear, + transform 0.1s ease; + transition: + background-color var(--animation-duration) linear, + border-color var(--animation-duration) linear, + color var(--animation-duration) linear, + box-shadow var(--animation-duration) linear, + transform var(--animation-duration) ease; + } +} + +textarea { + transition: + background-color 0.1s linear, + border-color 0.1s linear, + color 0.1s linear, + box-shadow 0.1s linear, + transform 0.1s ease; + transition: + background-color var(--animation-duration) linear, + border-color var(--animation-duration) linear, + color var(--animation-duration) linear, + box-shadow var(--animation-duration) linear, + transform var(--animation-duration) ease; +} + +@media (prefers-color-scheme: dark) { + + textarea { + transition: + background-color 0.1s linear, + border-color 0.1s linear, + color 0.1s linear, + box-shadow 0.1s linear, + transform 0.1s ease; + transition: + background-color var(--animation-duration) linear, + border-color var(--animation-duration) linear, + color var(--animation-duration) linear, + box-shadow var(--animation-duration) linear, + transform var(--animation-duration) ease; + } +} + +h1 { + font-size: 1.85em; + margin-top: 0; +} + +h1, +h2, +h3, +h4, +h5, +h6 { + margin-bottom: 12px; + margin-top: 24px; +} + +h1 { + color: #000; + color: var(--text-bright); +} + +@media (prefers-color-scheme: dark) { + + h1 { + color: #fff; + color: var(--text-bright); + } +} + +h2 { + color: #000; + color: var(--text-bright); +} + +@media (prefers-color-scheme: dark) { + + h2 { + color: #fff; + color: var(--text-bright); + } +} + +h3 { + color: #000; + color: var(--text-bright); +} + +@media (prefers-color-scheme: dark) { + + h3 { + color: #fff; + color: var(--text-bright); + } +} + +h4 { + color: #000; + color: var(--text-bright); +} + +@media (prefers-color-scheme: dark) { + + h4 { + color: #fff; + color: var(--text-bright); + } +} + +h5 { + color: #000; + color: var(--text-bright); +} + +@media (prefers-color-scheme: dark) { + + h5 { + color: #fff; + color: var(--text-bright); + } +} + +h6 { + color: #000; + color: var(--text-bright); +} + +@media (prefers-color-scheme: dark) { + + h6 { + color: #fff; + color: var(--text-bright); + } +} + +strong { + color: #000; + color: var(--text-bright); +} + +@media (prefers-color-scheme: dark) { + + strong { + color: #fff; + color: var(--text-bright); + } +} + +h1, +h2, +h3, +h4, +h5, +h6, +b, +strong, +th { + font-weight: 600; +} + +q::before { + content: none; +} + +q::after { + content: none; +} + +blockquote { + border-left: 4px solid #0096bfab; + border-left: 4px solid var(--focus); + margin: 1.5em 0; + padding: 0.5em 1em; + font-style: italic; +} + +@media (prefers-color-scheme: dark) { + + blockquote { + border-left: 4px solid #0096bfab; + border-left: 4px solid var(--focus); + } +} + +q { + border-left: 4px solid #0096bfab; + border-left: 4px solid var(--focus); + margin: 1.5em 0; + padding: 0.5em 1em; + font-style: italic; +} + +@media (prefers-color-scheme: dark) { + + q { + border-left: 4px solid #0096bfab; + border-left: 4px solid var(--focus); + } +} + +blockquote > footer { + font-style: normal; + border: 0; +} + +blockquote cite { + font-style: normal; +} + +address { + font-style: normal; +} + +a[href^='mailto\:']::before { + content: '📧 '; +} + +a[href^='tel\:']::before { + content: '📞 '; +} + +a[href^='sms\:']::before { + content: '💬 '; +} + +mark { + background-color: #ff0; + background-color: var(--highlight); + border-radius: 2px; + padding: 0 2px 0 2px; + color: #000; +} + +@media (prefers-color-scheme: dark) { + + mark { + background-color: #efdb43; + background-color: var(--highlight); + } +} + +a > code, +a > strong { + color: inherit; +} + +button, +select, +input[type='submit'], +input[type='reset'], +input[type='button'], +input[type='checkbox'], +input[type='range'], +input[type='radio'] { + cursor: pointer; +} + +input, +select { + display: block; +} + +[type='checkbox'], +[type='radio'] { + display: initial; +} + +input { + color: #1d1d1d; + color: var(--form-text); + background-color: #efefef; + background-color: var(--background); + font-family: inherit; + font-size: inherit; + margin-right: 6px; + margin-bottom: 6px; + padding: 10px; + border: none; + border-radius: 6px; + outline: none; +} + +@media (prefers-color-scheme: dark) { + + input { + background-color: #161f27; + background-color: var(--background); + } +} + +@media (prefers-color-scheme: dark) { + + input { + color: #fff; + color: var(--form-text); + } +} + +button { + color: #1d1d1d; + color: var(--form-text); + background-color: #efefef; + background-color: var(--background); + font-family: inherit; + font-size: inherit; + margin-right: 6px; + margin-bottom: 6px; + padding: 10px; + border: none; + border-radius: 6px; + outline: none; +} + +@media (prefers-color-scheme: dark) { + + button { + background-color: #161f27; + background-color: var(--background); + } +} + +@media (prefers-color-scheme: dark) { + + button { + color: #fff; + color: var(--form-text); + } +} + +textarea { + color: #1d1d1d; + color: var(--form-text); + background-color: #efefef; + background-color: var(--background); + font-family: inherit; + font-size: inherit; + margin-right: 6px; + margin-bottom: 6px; + padding: 10px; + border: none; + border-radius: 6px; + outline: none; +} + +@media (prefers-color-scheme: dark) { + + textarea { + background-color: #161f27; + background-color: var(--background); + } +} + +@media (prefers-color-scheme: dark) { + + textarea { + color: #fff; + color: var(--form-text); + } +} + +select { + color: #1d1d1d; + color: var(--form-text); + background-color: #efefef; + background-color: var(--background); + font-family: inherit; + font-size: inherit; + margin-right: 6px; + margin-bottom: 6px; + padding: 10px; + border: none; + border-radius: 6px; + outline: none; +} + +@media (prefers-color-scheme: dark) { + + select { + background-color: #161f27; + background-color: var(--background); + } +} + +@media (prefers-color-scheme: dark) { + + select { + color: #fff; + color: var(--form-text); + } +} + +button { + background-color: #d0cfcf; + background-color: var(--button-base); + padding-right: 30px; + padding-left: 30px; +} + +@media (prefers-color-scheme: dark) { + + button { + background-color: #0c151c; + background-color: var(--button-base); + } +} + +input[type='submit'] { + background-color: #d0cfcf; + background-color: var(--button-base); + padding-right: 30px; + padding-left: 30px; +} + +@media (prefers-color-scheme: dark) { + + input[type='submit'] { + background-color: #0c151c; + background-color: var(--button-base); + } +} + +input[type='reset'] { + background-color: #d0cfcf; + background-color: var(--button-base); + padding-right: 30px; + padding-left: 30px; +} + +@media (prefers-color-scheme: dark) { + + input[type='reset'] { + background-color: #0c151c; + background-color: var(--button-base); + } +} + +input[type='button'] { + background-color: #d0cfcf; + background-color: var(--button-base); + padding-right: 30px; + padding-left: 30px; +} + +@media (prefers-color-scheme: dark) { + + input[type='button'] { + background-color: #0c151c; + background-color: var(--button-base); + } +} + +button:hover { + background: #9b9b9b; + background: var(--button-hover); +} + +@media (prefers-color-scheme: dark) { + + button:hover { + background: #040a0f; + background: var(--button-hover); + } +} + +input[type='submit']:hover { + background: #9b9b9b; + background: var(--button-hover); +} + +@media (prefers-color-scheme: dark) { + + input[type='submit']:hover { + background: #040a0f; + background: var(--button-hover); + } +} + +input[type='reset']:hover { + background: #9b9b9b; + background: var(--button-hover); +} + +@media (prefers-color-scheme: dark) { + + input[type='reset']:hover { + background: #040a0f; + background: var(--button-hover); + } +} + +input[type='button']:hover { + background: #9b9b9b; + background: var(--button-hover); +} + +@media (prefers-color-scheme: dark) { + + input[type='button']:hover { + background: #040a0f; + background: var(--button-hover); + } +} + +input[type='color'] { + min-height: 2rem; + padding: 8px; + cursor: pointer; +} + +input[type='checkbox'], +input[type='radio'] { + height: 1em; + width: 1em; +} + +input[type='radio'] { + border-radius: 100%; +} + +input { + vertical-align: top; +} + +label { + vertical-align: middle; + margin-bottom: 4px; + display: inline-block; +} + +input:not([type='checkbox']):not([type='radio']), +input[type='range'], +select, +button, +textarea { + -webkit-appearance: none; +} + +textarea { + display: block; + margin-right: 0; + box-sizing: border-box; + resize: vertical; +} + +textarea:not([cols]) { + width: 100%; +} + +textarea:not([rows]) { + min-height: 40px; + height: 140px; +} + +select { + background: #efefef url("data:image/svg+xml;charset=utf-8,%3C?xml version='1.0' encoding='utf-8'?%3E %3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='62.5' width='116.9' fill='%23161f27'%3E %3Cpath d='M115.3,1.6 C113.7,0 111.1,0 109.5,1.6 L58.5,52.7 L7.4,1.6 C5.8,0 3.2,0 1.6,1.6 C0,3.2 0,5.8 1.6,7.4 L55.5,61.3 C56.3,62.1 57.3,62.5 58.4,62.5 C59.4,62.5 60.5,62.1 61.3,61.3 L115.2,7.4 C116.9,5.8 116.9,3.2 115.3,1.6Z'/%3E %3C/svg%3E") calc(100% - 12px) 50% / 12px no-repeat; + background: var(--background) var(--select-arrow) calc(100% - 12px) 50% / 12px no-repeat; + padding-right: 35px; +} + +@media (prefers-color-scheme: dark) { + + select { + background: #161f27 url("data:image/svg+xml;charset=utf-8,%3C?xml version='1.0' encoding='utf-8'?%3E %3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='62.5' width='116.9' fill='%23efefef'%3E %3Cpath d='M115.3,1.6 C113.7,0 111.1,0 109.5,1.6 L58.5,52.7 L7.4,1.6 C5.8,0 3.2,0 1.6,1.6 C0,3.2 0,5.8 1.6,7.4 L55.5,61.3 C56.3,62.1 57.3,62.5 58.4,62.5 C59.4,62.5 60.5,62.1 61.3,61.3 L115.2,7.4 C116.9,5.8 116.9,3.2 115.3,1.6Z'/%3E %3C/svg%3E") calc(100% - 12px) 50% / 12px no-repeat; + background: var(--background) var(--select-arrow) calc(100% - 12px) 50% / 12px no-repeat; + } +} + +@media (prefers-color-scheme: dark) { + + select { + background: #161f27 url("data:image/svg+xml;charset=utf-8,%3C?xml version='1.0' encoding='utf-8'?%3E %3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='62.5' width='116.9' fill='%23efefef'%3E %3Cpath d='M115.3,1.6 C113.7,0 111.1,0 109.5,1.6 L58.5,52.7 L7.4,1.6 C5.8,0 3.2,0 1.6,1.6 C0,3.2 0,5.8 1.6,7.4 L55.5,61.3 C56.3,62.1 57.3,62.5 58.4,62.5 C59.4,62.5 60.5,62.1 61.3,61.3 L115.2,7.4 C116.9,5.8 116.9,3.2 115.3,1.6Z'/%3E %3C/svg%3E") calc(100% - 12px) 50% / 12px no-repeat; + background: var(--background) var(--select-arrow) calc(100% - 12px) 50% / 12px no-repeat; + } +} + +@media (prefers-color-scheme: dark) { + + select { + background: #161f27 url("data:image/svg+xml;charset=utf-8,%3C?xml version='1.0' encoding='utf-8'?%3E %3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='62.5' width='116.9' fill='%23efefef'%3E %3Cpath d='M115.3,1.6 C113.7,0 111.1,0 109.5,1.6 L58.5,52.7 L7.4,1.6 C5.8,0 3.2,0 1.6,1.6 C0,3.2 0,5.8 1.6,7.4 L55.5,61.3 C56.3,62.1 57.3,62.5 58.4,62.5 C59.4,62.5 60.5,62.1 61.3,61.3 L115.2,7.4 C116.9,5.8 116.9,3.2 115.3,1.6Z'/%3E %3C/svg%3E") calc(100% - 12px) 50% / 12px no-repeat; + background: var(--background) var(--select-arrow) calc(100% - 12px) 50% / 12px no-repeat; + } +} + +@media (prefers-color-scheme: dark) { + + select { + background: #161f27 url("data:image/svg+xml;charset=utf-8,%3C?xml version='1.0' encoding='utf-8'?%3E %3Csvg version='1.1' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' height='62.5' width='116.9' fill='%23efefef'%3E %3Cpath d='M115.3,1.6 C113.7,0 111.1,0 109.5,1.6 L58.5,52.7 L7.4,1.6 C5.8,0 3.2,0 1.6,1.6 C0,3.2 0,5.8 1.6,7.4 L55.5,61.3 C56.3,62.1 57.3,62.5 58.4,62.5 C59.4,62.5 60.5,62.1 61.3,61.3 L115.2,7.4 C116.9,5.8 116.9,3.2 115.3,1.6Z'/%3E %3C/svg%3E") calc(100% - 12px) 50% / 12px no-repeat; + background: var(--background) var(--select-arrow) calc(100% - 12px) 50% / 12px no-repeat; + } +} + +select::-ms-expand { + display: none; +} + +select[multiple] { + padding-right: 10px; + background-image: none; + overflow-y: auto; +} + +input:focus { + box-shadow: 0 0 0 2px #0096bfab; + box-shadow: 0 0 0 2px var(--focus); +} + +@media (prefers-color-scheme: dark) { + + input:focus { + box-shadow: 0 0 0 2px #0096bfab; + box-shadow: 0 0 0 2px var(--focus); + } +} + +select:focus { + box-shadow: 0 0 0 2px #0096bfab; + box-shadow: 0 0 0 2px var(--focus); +} + +@media (prefers-color-scheme: dark) { + + select:focus { + box-shadow: 0 0 0 2px #0096bfab; + box-shadow: 0 0 0 2px var(--focus); + } +} + +button:focus { + box-shadow: 0 0 0 2px #0096bfab; + box-shadow: 0 0 0 2px var(--focus); +} + +@media (prefers-color-scheme: dark) { + + button:focus { + box-shadow: 0 0 0 2px #0096bfab; + box-shadow: 0 0 0 2px var(--focus); + } +} + +textarea:focus { + box-shadow: 0 0 0 2px #0096bfab; + box-shadow: 0 0 0 2px var(--focus); +} + +@media (prefers-color-scheme: dark) { + + textarea:focus { + box-shadow: 0 0 0 2px #0096bfab; + box-shadow: 0 0 0 2px var(--focus); + } +} + +input[type='checkbox']:active, +input[type='radio']:active, +input[type='submit']:active, +input[type='reset']:active, +input[type='button']:active, +input[type='range']:active, +button:active { + transform: translateY(2px); +} + +input:disabled, +select:disabled, +button:disabled, +textarea:disabled { + cursor: not-allowed; + opacity: 0.5; +} + +::-moz-placeholder { + color: #949494; + color: var(--form-placeholder); +} + +:-ms-input-placeholder { + color: #949494; + color: var(--form-placeholder); +} + +::-ms-input-placeholder { + color: #949494; + color: var(--form-placeholder); +} + +::placeholder { + color: #949494; + color: var(--form-placeholder); +} + +@media (prefers-color-scheme: dark) { + + ::-moz-placeholder { + color: #a9a9a9; + color: var(--form-placeholder); + } + + :-ms-input-placeholder { + color: #a9a9a9; + color: var(--form-placeholder); + } + + ::-ms-input-placeholder { + color: #a9a9a9; + color: var(--form-placeholder); + } + + ::placeholder { + color: #a9a9a9; + color: var(--form-placeholder); + } +} + +fieldset { + border: 1px #0096bfab solid; + border: 1px var(--focus) solid; + border-radius: 6px; + margin: 0; + margin-bottom: 12px; + padding: 10px; +} + +@media (prefers-color-scheme: dark) { + + fieldset { + border: 1px #0096bfab solid; + border: 1px var(--focus) solid; + } +} + +legend { + font-size: 0.9em; + font-weight: 600; +} + +input[type='range'] { + margin: 10px 0; + padding: 10px 0; + background: transparent; +} + +input[type='range']:focus { + outline: none; +} + +input[type='range']::-webkit-slider-runnable-track { + width: 100%; + height: 9.5px; + -webkit-transition: 0.2s; + transition: 0.2s; + background: #efefef; + background: var(--background); + border-radius: 3px; +} + +@media (prefers-color-scheme: dark) { + + input[type='range']::-webkit-slider-runnable-track { + background: #161f27; + background: var(--background); + } +} + +input[type='range']::-webkit-slider-thumb { + box-shadow: 0 1px 1px #000, 0 0 1px #0d0d0d; + height: 20px; + width: 20px; + border-radius: 50%; + background: #dbdbdb; + background: var(--border); + -webkit-appearance: none; + margin-top: -7px; +} + +@media (prefers-color-scheme: dark) { + + input[type='range']::-webkit-slider-thumb { + background: #526980; + background: var(--border); + } +} + +input[type='range']:focus::-webkit-slider-runnable-track { + background: #efefef; + background: var(--background); +} + +@media (prefers-color-scheme: dark) { + + input[type='range']:focus::-webkit-slider-runnable-track { + background: #161f27; + background: var(--background); + } +} + +input[type='range']::-moz-range-track { + width: 100%; + height: 9.5px; + -moz-transition: 0.2s; + transition: 0.2s; + background: #efefef; + background: var(--background); + border-radius: 3px; +} + +@media (prefers-color-scheme: dark) { + + input[type='range']::-moz-range-track { + background: #161f27; + background: var(--background); + } +} + +input[type='range']::-moz-range-thumb { + box-shadow: 1px 1px 1px #000, 0 0 1px #0d0d0d; + height: 20px; + width: 20px; + border-radius: 50%; + background: #dbdbdb; + background: var(--border); +} + +@media (prefers-color-scheme: dark) { + + input[type='range']::-moz-range-thumb { + background: #526980; + background: var(--border); + } +} + +input[type='range']::-ms-track { + width: 100%; + height: 9.5px; + background: transparent; + border-color: transparent; + border-width: 16px 0; + color: transparent; +} + +input[type='range']::-ms-fill-lower { + background: #efefef; + background: var(--background); + border: 0.2px solid #010101; + border-radius: 3px; + box-shadow: 1px 1px 1px #000, 0 0 1px #0d0d0d; +} + +@media (prefers-color-scheme: dark) { + + input[type='range']::-ms-fill-lower { + background: #161f27; + background: var(--background); + } +} + +input[type='range']::-ms-fill-upper { + background: #efefef; + background: var(--background); + border: 0.2px solid #010101; + border-radius: 3px; + box-shadow: 1px 1px 1px #000, 0 0 1px #0d0d0d; +} + +@media (prefers-color-scheme: dark) { + + input[type='range']::-ms-fill-upper { + background: #161f27; + background: var(--background); + } +} + +input[type='range']::-ms-thumb { + box-shadow: 1px 1px 1px #000, 0 0 1px #0d0d0d; + border: 1px solid #000; + height: 20px; + width: 20px; + border-radius: 50%; + background: #dbdbdb; + background: var(--border); +} + +@media (prefers-color-scheme: dark) { + + input[type='range']::-ms-thumb { + background: #526980; + background: var(--border); + } +} + +input[type='range']:focus::-ms-fill-lower { + background: #efefef; + background: var(--background); +} + +@media (prefers-color-scheme: dark) { + + input[type='range']:focus::-ms-fill-lower { + background: #161f27; + background: var(--background); + } +} + +input[type='range']:focus::-ms-fill-upper { + background: #efefef; + background: var(--background); +} + +@media (prefers-color-scheme: dark) { + + input[type='range']:focus::-ms-fill-upper { + background: #161f27; + background: var(--background); + } +} + +a { + text-decoration: none; + color: #0076d1; + color: var(--links); +} + +@media (prefers-color-scheme: dark) { + + a { + color: #41adff; + color: var(--links); + } +} + +a:hover { + text-decoration: underline; +} + +code { + background: #efefef; + background: var(--background); + color: #000; + color: var(--code); + padding: 2.5px 5px; + border-radius: 6px; + font-size: 1em; +} + +@media (prefers-color-scheme: dark) { + + code { + color: #ffbe85; + color: var(--code); + } +} + +@media (prefers-color-scheme: dark) { + + code { + background: #161f27; + background: var(--background); + } +} + +samp { + background: #efefef; + background: var(--background); + color: #000; + color: var(--code); + padding: 2.5px 5px; + border-radius: 6px; + font-size: 1em; +} + +@media (prefers-color-scheme: dark) { + + samp { + color: #ffbe85; + color: var(--code); + } +} + +@media (prefers-color-scheme: dark) { + + samp { + background: #161f27; + background: var(--background); + } +} + +time { + background: #efefef; + background: var(--background); + color: #000; + color: var(--code); + padding: 2.5px 5px; + border-radius: 6px; + font-size: 1em; +} + +@media (prefers-color-scheme: dark) { + + time { + color: #ffbe85; + color: var(--code); + } +} + +@media (prefers-color-scheme: dark) { + + time { + background: #161f27; + background: var(--background); + } +} + +pre > code { + padding: 10px; + display: block; + overflow-x: auto; +} + +var { + color: #39a33c; + color: var(--variable); + font-style: normal; + font-family: monospace; +} + +@media (prefers-color-scheme: dark) { + + var { + color: #d941e2; + color: var(--variable); + } +} + +kbd { + background: #efefef; + background: var(--background); + border: 1px solid #dbdbdb; + border: 1px solid var(--border); + border-radius: 2px; + color: #363636; + color: var(--text-main); + padding: 2px 4px 2px 4px; +} + +@media (prefers-color-scheme: dark) { + + kbd { + color: #dbdbdb; + color: var(--text-main); + } +} + +@media (prefers-color-scheme: dark) { + + kbd { + border: 1px solid #526980; + border: 1px solid var(--border); + } +} + +@media (prefers-color-scheme: dark) { + + kbd { + background: #161f27; + background: var(--background); + } +} + +img, +video { + max-width: 100%; + height: auto; +} + +hr { + border: none; + border-top: 1px solid #dbdbdb; + border-top: 1px solid var(--border); +} + +@media (prefers-color-scheme: dark) { + + hr { + border-top: 1px solid #526980; + border-top: 1px solid var(--border); + } +} + +table { + border-collapse: collapse; + margin-bottom: 10px; + width: 100%; + table-layout: fixed; +} + +table caption { + text-align: left; +} + +td, +th { + padding: 6px; + text-align: left; + vertical-align: top; + word-wrap: break-word; +} + +thead { + border-bottom: 1px solid #dbdbdb; + border-bottom: 1px solid var(--border); +} + +@media (prefers-color-scheme: dark) { + + thead { + border-bottom: 1px solid #526980; + border-bottom: 1px solid var(--border); + } +} + +tfoot { + border-top: 1px solid #dbdbdb; + border-top: 1px solid var(--border); +} + +@media (prefers-color-scheme: dark) { + + tfoot { + border-top: 1px solid #526980; + border-top: 1px solid var(--border); + } +} + +tbody tr:nth-child(even) { + background-color: #efefef; + background-color: var(--background); +} + +@media (prefers-color-scheme: dark) { + + tbody tr:nth-child(even) { + background-color: #161f27; + background-color: var(--background); + } +} + +tbody tr:nth-child(even) button { + background-color: #f7f7f7; + background-color: var(--background-alt); +} + +@media (prefers-color-scheme: dark) { + + tbody tr:nth-child(even) button { + background-color: #1a242f; + background-color: var(--background-alt); + } +} + +tbody tr:nth-child(even) button:hover { + background-color: #fff; + background-color: var(--background-body); +} + +@media (prefers-color-scheme: dark) { + + tbody tr:nth-child(even) button:hover { + background-color: #202b38; + background-color: var(--background-body); + } +} + +::-webkit-scrollbar { + height: 10px; + width: 10px; +} + +::-webkit-scrollbar-track { + background: #efefef; + background: var(--background); + border-radius: 6px; +} + +@media (prefers-color-scheme: dark) { + + ::-webkit-scrollbar-track { + background: #161f27; + background: var(--background); + } +} + +::-webkit-scrollbar-thumb { + background: rgb(170, 170, 170); + background: var(--scrollbar-thumb); + border-radius: 6px; +} + +@media (prefers-color-scheme: dark) { + + ::-webkit-scrollbar-thumb { + background: #040a0f; + background: var(--scrollbar-thumb); + } +} + +@media (prefers-color-scheme: dark) { + + ::-webkit-scrollbar-thumb { + background: #040a0f; + background: var(--scrollbar-thumb); + } +} + +::-webkit-scrollbar-thumb:hover { + background: #9b9b9b; + background: var(--scrollbar-thumb-hover); +} + +@media (prefers-color-scheme: dark) { + + ::-webkit-scrollbar-thumb:hover { + background: rgb(0, 0, 0); + background: var(--scrollbar-thumb-hover); + } +} + +@media (prefers-color-scheme: dark) { + + ::-webkit-scrollbar-thumb:hover { + background: rgb(0, 0, 0); + background: var(--scrollbar-thumb-hover); + } +} + +::-moz-selection { + background-color: #9e9e9e; + background-color: var(--selection); + color: #000; + color: var(--text-bright); +} + +::selection { + background-color: #9e9e9e; + background-color: var(--selection); + color: #000; + color: var(--text-bright); +} + +@media (prefers-color-scheme: dark) { + + ::-moz-selection { + color: #fff; + color: var(--text-bright); + } + + ::selection { + color: #fff; + color: var(--text-bright); + } +} + +@media (prefers-color-scheme: dark) { + + ::-moz-selection { + background-color: #1c76c5; + background-color: var(--selection); + } + + ::selection { + background-color: #1c76c5; + background-color: var(--selection); + } +} + +details { + display: flex; + flex-direction: column; + align-items: flex-start; + background-color: #f7f7f7; + background-color: var(--background-alt); + padding: 10px 10px 0; + margin: 1em 0; + border-radius: 6px; + overflow: hidden; +} + +@media (prefers-color-scheme: dark) { + + details { + background-color: #1a242f; + background-color: var(--background-alt); + } +} + +details[open] { + padding: 10px; +} + +details > :last-child { + margin-bottom: 0; +} + +details[open] summary { + margin-bottom: 10px; +} + +summary { + display: list-item; + background-color: #efefef; + background-color: var(--background); + padding: 10px; + margin: -10px -10px 0; + cursor: pointer; + outline: none; +} + +@media (prefers-color-scheme: dark) { + + summary { + background-color: #161f27; + background-color: var(--background); + } +} + +summary:hover, +summary:focus { + text-decoration: underline; +} + +details > :not(summary) { + margin-top: 0; +} + +summary::-webkit-details-marker { + color: #363636; + color: var(--text-main); +} + +@media (prefers-color-scheme: dark) { + + summary::-webkit-details-marker { + color: #dbdbdb; + color: var(--text-main); + } +} + +dialog { + background-color: #f7f7f7; + background-color: var(--background-alt); + color: #363636; + color: var(--text-main); + border: none; + border-radius: 6px; + border-color: #dbdbdb; + border-color: var(--border); + padding: 10px 30px; +} + +@media (prefers-color-scheme: dark) { + + dialog { + border-color: #526980; + border-color: var(--border); + } +} + +@media (prefers-color-scheme: dark) { + + dialog { + color: #dbdbdb; + color: var(--text-main); + } +} + +@media (prefers-color-scheme: dark) { + + dialog { + background-color: #1a242f; + background-color: var(--background-alt); + } +} + +dialog > header:first-child { + background-color: #efefef; + background-color: var(--background); + border-radius: 6px 6px 0 0; + margin: -10px -30px 10px; + padding: 10px; + text-align: center; +} + +@media (prefers-color-scheme: dark) { + + dialog > header:first-child { + background-color: #161f27; + background-color: var(--background); + } +} + +dialog::-webkit-backdrop { + background: #0000009c; + -webkit-backdrop-filter: blur(4px); + backdrop-filter: blur(4px); +} + +dialog::backdrop { + background: #0000009c; + -webkit-backdrop-filter: blur(4px); + backdrop-filter: blur(4px); +} + +footer { + border-top: 1px solid #dbdbdb; + border-top: 1px solid var(--border); + padding-top: 10px; + color: #70777f; + color: var(--text-muted); +} + +@media (prefers-color-scheme: dark) { + + footer { + color: #a9b1ba; + color: var(--text-muted); + } +} + +@media (prefers-color-scheme: dark) { + + footer { + border-top: 1px solid #526980; + border-top: 1px solid var(--border); + } +} + +body > footer { + margin-top: 40px; +} + +@media print { + body, + pre, + code, + summary, + details, + button, + input, + textarea { + background-color: #fff; + } + + button, + input, + textarea { + border: 1px solid #000; + } + + body, + h1, + h2, + h3, + h4, + h5, + h6, + pre, + code, + button, + input, + textarea, + footer, + summary, + strong { + color: #000; + } + + summary::marker { + color: #000; + } + + summary::-webkit-details-marker { + color: #000; + } + + tbody tr:nth-child(even) { + background-color: #f2f2f2; + } + + a { + color: #00f; + text-decoration: underline; + } +} diff --git a/build/docs.html b/build/docs.html new file mode 100644 index 0000000..e5341f0 --- /dev/null +++ b/build/docs.html @@ -0,0 +1,17 @@ + + + + + + +You can browse full documentation for Reticulum on this site or on GitHub Pages.
+You can also download the Reticulum manual as a PDF
+Next Topic: Cryptographic Primitives
+ + diff --git a/build/docs_de.html b/build/docs_de.html new file mode 100644 index 0000000..92c2762 --- /dev/null +++ b/build/docs_de.html @@ -0,0 +1,17 @@ + + + + + + +Die vollständige Dokumentation zu Reticulum finden Sie hier Auf dieser Seite oder auf den GitHub Seiten.
+Sie können auch das Reticulum-Handbuch als PDF herunterladen
+Nächstes Thema: Kryptographische Primitive
+ + diff --git a/build/docs_pl.html b/build/docs_pl.html new file mode 100644 index 0000000..fab9708 --- /dev/null +++ b/build/docs_pl.html @@ -0,0 +1,17 @@ + + + + + + +Możesz sprawdzić pełną dokumentację Reticulum na tej stronie lub na stronach GitHub.
+Możesz również pobrać podręcznik Reticulum jako PDF
+Następny Temat: Prymitywy Kryptograficzne
+ + diff --git a/build/docs_pt-br.html b/build/docs_pt-br.html new file mode 100644 index 0000000..6b81375 --- /dev/null +++ b/build/docs_pt-br.html @@ -0,0 +1,17 @@ + + + + + + +Você navegar por toda documentação do Reticulum neste site ou no GitHub Pages.
+Você também pode baixar o manual do Reticulum como PDF
+ + + diff --git a/build/donate.html b/build/donate.html new file mode 100644 index 0000000..579b7a3 --- /dev/null +++ b/build/donate.html @@ -0,0 +1,28 @@ + + + + + + +You can help support the continued development of open, free and private communications systems by donating via one of the following channels:
+84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
+ 0x81F7B979fEa6134bA9FD5c701b3501A2e61E897a
+ 3CPmacGm34qYvR6XWLVEJmi2aNe3PZqUuq
+ https://ko-fi.com/markqvist
Sie können die weitere Entwicklung offener, freier und privater Kommunikationssysteme unterstützen, indem Sie über einen der folgenden Kanäle spenden:
+Monero
+84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
+
+Ethereum
+0x81F7B979fEa6134bA9FD5c701b3501A2e61E897a
+
+Bitcoin
+3CPmacGm34qYvR6XWLVEJmi2aNe3PZqUuq
+
+
+
diff --git a/build/donate_pl.html b/build/donate_pl.html
new file mode 100644
index 0000000..328aaec
--- /dev/null
+++ b/build/donate_pl.html
@@ -0,0 +1,28 @@
+
+
+
+
+
+
+Możesz wspomóc dalszy rozwój otwartych, wolnych, prywatnych systemów komunikacji przez przekazanie darowizny za pośrednictwem jednego z następujących kanałów:
+84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
+ 0x81F7B979fEa6134bA9FD5c701b3501A2e61E897a
+ 3CPmacGm34qYvR6XWLVEJmi2aNe3PZqUuq
+ https://ko-fi.com/markqvist
Você pode ajudar na continuação do desenvolvimento de sistemas de comunicação abertos, livres e privados, doando através de um dos seguintes canais:
+84FpY1QbxHcgdseePYNmhTHcrgMX4nFfBYtz2GKYToqHVVhJp8Eaw1Z1EedRnKD19b3B8NiLCGVxzKV17UMmmeEsCrPyA5w
+ 0x81F7B979fEa6134bA9FD5c701b3501A2e61E897a
+ 3CPmacGm34qYvR6XWLVEJmi2aNe3PZqUuq
+ https://ko-fi.com/markqvist
gqN@wjpUvzn7z zW8N^Q(~{oPWy3D7?``Vd|EfNZg|Odu;`XdNWEn=YNb_QvnwGph zes!KwC%<14c(Ah;M~h54uM@$4tE#8=o==s}ibluNi}$P8;?KQx9=^oDXV?%*NOt+| z&uiD0NaJ}Mk{h^vN73GVsFy_K^Ul1~Z;@Gumxx5OCWqznvpZ8EvIN0|Z(vakx%l~G zBv)z@8t)VLm%Ew|BLm=#V6+(x=H)J@AvVi@;DkB+>Pp*J8&yxcG!wz>f`k26 GyP6#g6!&zD%?&xJy<6y%_+?pxM=uojO%@8hj!8e|XyRx1- zb;`S5gQp^dvw^tbW>gX)|1HYf3f=kbP8f|Aii%Y3_t}%?^+w&}JPxrn{13{@W#b)F z-ju^8MzLIpf57Vh(D=h0qa)KhcP>C6SS2~M&>kqW?``77R(bwbsC1ukGQT>}b)o_+ zVBGcXy=|A_!Q5NbWh>=#qt)ewQWVdgJ>xSh!ETS;i@j)4HdG{umTDliI5GAdWy^r% z{e}?PMsN*V6k#x&xRkSW*uL=7=JoVC_30>_DG@RuBy#eAM(NtMYdyv0viO}UHml{^ zk0>^+Y$_iQ>fp`@Xo95Zyr0K>$!ShR-e=)kVNX0V$@@#XbO%^q0BPgPs}Gz4$7bAn zt9@LRqE5=!2OT<9Vz(B*H{V;SZOO?9^1t|pydtEsp<0gXmnxQd>STz;ItKSn-*sV$ zERtFQ$s?UY5-eGJBqtrj-9wi`^qz7-To4C-Ahq6lR%*3@;2bBX(O#6({NZ$h=FWPD zKxM#g>CE1puWuA%S)~IM>TSCmS(|wf8qY5`;v*;QYQ8~n8GUPVN=j=(2*D|#+vpb( zUZsmMZEbCn3&r)nYPZL%4)-=2FOBlgVh6EFzJ#^LBqcPw7Cr-rIbK2wzKw8Utxo*b zv1{qp*Ep9C7B4PIVy{`ytYXH(WWrT*G+y}rdS-{;ff>df@P^%ue$Cy*cinuH1o_%o zk=;=&QRYTkJGoP0-wKTIf$d^o86 %@6u<@&p}T%fscd$NTliQ}4QEs`dL> zjxh%Wt^ruSjlv2-g%6mN!mqGpC(n%C=1g|m-7DPKxz%v1;W73Dzb|HE{_Eq}^m{Sj z;D!>%5GVuIJ~0OD{mywBP^w-fi|$(g`| zwH9sI*K-e=saKDwPMtbWaZ*qYAk&k?v^2-Om;`Q3)mYi13OYtcgSl>$8;xt#;y2%% zk1jETo8K_@Sn)i4Y22kTDdw-mGR1n>cHb%Y_9==!^^eRr=HSiB*xEhThjn{q53BZK z9%|J{4y@2^N-9HPPuv++|75~|EZAt3dxHL8X6Ndv!Dq>!de&8 @ztydnGS^8kn zvLLAu1|aWAu{uCZ?HhV)l|@Q_!LTX_a7`BE+#3K9F?yddktFa(T()KgznJrnfxh5O zg>cfpcY~8&XN~2a*o4{hO8@B;(Y}5A=LaqHx1Z`SN13jF&c}#0=3@qkT@drHiZQxX zd#1_td(XMe0+%~*#h6xA>=O?5L@3}TZtLwR-!2|Br#?12cAK~yzH|HW!-sLK{&Q!3 zgViI=Dw)29rpdw@UUvo&5^&?_)}Tatw3ZBU!A#nJbmRsxu!Ln3_XL;U4V z;~2CEaw80$h?f$joJZPzL%c*oQHeY|$rfW4OkX4L*xPsZvcUUfBTvuwqTY*!zacpy z%}Zv#yhun7+%n38K>xHz(!Ph?VeRK9Z5NlK=`~++M)}`o1q3vWYkc2|x=qNPmynQ{ zIL6=F=g}?A{X)`*f8v9PuyE#}**$etRn-eliW8Vs#+rBbOqGQ5G|$E4^ic(d1W}<6 z2vPE9EDUx!C` (UKtmV z-kG?seeGJ< mcC zG9i@oXfLYD%ZG>t9|hzYy|WF^!>}|+?ml&YkCnJC7$?S_f{+(dm1E~YgWJ8B3~V>6 zXPM*P-rJvikyM~%rb;P$P~r(W1S`-A+pT(^h(b7UvdWa-0kU{sy7avR|J_oH?v9Rx z_4V~kh%KXvGU>_5cDdvjPC1 SQx#a)-^EIOEf`@fjHcwMTmk+5rIpmgkYX zz9J-Lin7;xBE=fo-Q=m+d8p_(!X4I&L$@1)33+f-X4fE7^ku83q3Wp0oxXF7dJW#n z9*m5Pj6YgWuHWfAP;D%x+W|GMFNxP66GH2Cs5I&n`K!Su5)%@pa;WCcqZCM}a(556 z$FrdJA@)?kzoYNzMH7_S%5+--K9Z32GnFt@P#m+%pLLWg;YZ>J2? 2Rp7t BsxFRSB4g z)ZW}{sjVR^-8^kVmG}UUPdDPjTBg>L&NEh;%4kM6Pxjn;u94$Xd2niGmJqf2MSrI_ z`0z0p(32-mEPc&dVov)lSI*+|?&L9^7C0qhE9f<^3&lm#=m4t5kKos>(Wm{yyxdHs z5`)+RL$qWLf@nX~5$k)8J}@e*e(VR2j9l&0WXyzX!#K&GY3XPtv7bxj qcj)*yG^C1#{CH-`>?4vs!;4$8UU0mz?Z UFb4ri{^6N1Q^hnl(qNnJ@$kV+ak4q4FGMY$Kd+B?bPGB3orBuis~eCYX>r}& zg=5Ip oR1n-jBv?s15Eo|;3Ir?e6U)ZEcgSBMJ5Idw85UWt?l}9^~(AW$Kofcsc-IS=<3ozE *c4S^}RPzQNRaREYm 8xlrFMtvgPQdSP`ylFR(t6V*-hkT*>DD={~6Qqfv z*V%c#8qyyrP3?ERI>?#&`m=cpl?Qy#23SODT@A247dBVM$5)xe?hM2o{mD4C4}1S? zwY#ltjrQpG@83Zo5#TI;!!bPNqV42VKu1k|Mhr@cs;L;s%$#(8RSAz@QR6rEI-iO3 zK>?om&aPXPk>4~9raPU3=DAPsRTV2o^$;T1Z`tGBSY4oKnrCsr$4AJ1i %IR=VN!XCe*uiGO1_d&${@=!l&>+I`(m%uChjf^~u%XU}HY zWd!QCx3>!i{;u7d&yS$)<4?Zf4+fJ7mGwf9+4+M}mvVt0<`)kjj|PP9Kt-+%oB=_Z ztdP*nR3WPfO@~&9u8{O*>?q=run z!t!r|0ZS73 vf-j YN&D2t>=v%FRR})HNSaX!Tt!Ix5U?>!Zz)0{p#YoO7D5{z!=UdMOlDx zL39-~?aHUvAlgFB3U({MDlaxD;_mEPPc^Kplhaxhq?z;PIE)TGbUE8uc|c6TbS^6= zhj~lxlIs}X2dD3StACb$d`JNL# )ynAO*94n6WQFG*Pf)#D~kA6MmFAJMOSKe|?j*F%>Jz6f_2g3rP#} zgT}UGda8>N$I6LgWVE>SGOkwSvJ7)3xL}NU{z7uxgow!zAlr3rHOgQ-qP@4} zbam1j0+hpa>ywBK0fVCF`0p}sW%tu}&9@FaZXU-^M^6ZtlsOsJt%Q-#o>Pg(=i=W0 zPx{uTTCx%o>3)w?df<%(|9!n>2#{J~X#n~h0RCu0&?i660fZ>}LSes!Em-ul_sMBt zvSJzw21X09%UYm ra6{62Q81vbz@+?(DCsVgc8RbI z_x(wj2#?#I9Isyvgi#zHt^`}&Yy03b3OP;1y?V57rT&;7=q)t~ulYoCKCBdn+zBE& zQY=pJy1IH2tM3G|`S=bvP}b(cAal?WRGr!o<(mr8odhnQr1)_sj^2?P>!CU$NJu$x zR6P<2=s~8}1wrl3+ mYK!@vmptGpb$gvy7zz&X{nmq%4pRC-xl zdtVXC9;_0u1?`;Cd!tLD?14D=i8!aSzNjq+Y?qwc(>UjgXINoqne_$5Jl2TNP%@@&7L%pBa8)VRl*W89~Bd0`{ntS z&KHu&A3t8}S{oS9h1#JRfSj1X3t&;rf)BmQT*o!Q;1rxA+3rjVsL=2yZ!bjXAl<4* z7r(zFUd^V_&u09lgWCAPO%;~#<%Q%stCkbCohkAG0X5@7Kq*0KqnsfVco{O@uXiUN z+=tzM9?dMS4fL3sSf2P;uOi8Tkb;Wq+gB_piiZoETj4ZRN?|BB=eHaONyGlVN9~+6 zu5Mp+Chbj|BPe!%=VY9e_J8jpx(_+g;p-dveEq^c7RZc@``atCYb|V)cCO8ImC+D8 zEo Op~==q`42hUb+rE5_(4jxrvnGCBjs4apNGG57}-Qa&p4C#;97scCP0o zo>qSE^j+JdbIDu8rkxIQKpSMogP1EXG|Yl_Z2%?%6(!cxn}}^iU6z$)Th%CL;s+`{ zkW>yb(92zO_6pX40;2?*j;BHZ|GL~7z>oYl<{E)tyjwk*+Wi!i77zi}f2Fxb+)!~P zs(Cy(C_om>`xNR^I_i(=)t4aehxi|@Hz!~R$H&D6B0hcmxcbe+b*=Sm?A+F#j*iZ$ zOHL<&NBYK+Z&oYeG5aOUaWF3JrM&Zca@VR$Io?AdP{yCT2`~||`85zBJP&c+DjFJi z#+Htb&J7AU$i$C8$`Tfi$Kx^b`~1md$sJkGIH|7jBN{(gLYO5#EukxZA_vfXz}9y= z-9lr%?ROBPtX3x)S+2OBV^P0CEOp}GGn)tr1MbDG9;Zml&CXCI`G-6}z}E(bkTjvR zcF<=JHvJDuSBuF5)K7*5zgCLg!SBA es7sX zS?2=5yR{P(1Mkr21qP~+knpHhv|&Y9-yZ{Bghq{(6XQ?y25Oq^@nG4|l2 zir9ULOHQ6098SJ>(Ef? ynM&d6sbh=|tN7k*osGuuanNC#&ay}cXRW%%l+P9? z4PEjBS}#S+k)gNu2laisFV8I-u*iU&$p@)cfB`Mq;yKBgFD+J)NMzlByhBP#`Y<{= z3#^bu(mM(YRieP9D;~dkvelWP1iP-HvPOGAO-;=-DS(%@8z5a)df2&CFJ00vFqDTt zw32d81!8mzxOpG2r_p`OZkH=y1sulfq#rX}T>tbHt%B|$D84ZvUP)T8IduPb8}ls# zsW1j=er(g3xL ~jU<*3K2T>B)C#K!{?49xr#4YXj_BEg4BZM&Gd-qr=~mwL=< zNcb$X+@V!aU??p`@B Vk&ANs`H@6Du-&=#9yhvv!oNT3 z2BY`#hzi6d(U#5;KSbc(h9%%1-2y|Q0o%(VcG$_CYD6arwYg4s88dpC9ba2C#XgI0 zq+4>GCiXxEh6t?wI-pDi^9NC&WoK K2(kTdCWR0sd`&-MTe1JG(F6K)}p*l5q4U3f4u0S=?p7i;Sr89AW@~c&yZJ&u@|6`Bu;dAh}th z^UDeUv&eHQpt$_yX21qO^u!MU jKt~{d(-IV6d@$HP1q>OndGMhanAKMnNx$`T zu;`P6=D`%oBKnBp3H6&rET?hestvE-ov`)9e&<1kpw`Mr+4RHflg8@FidQqJ@4UXC z_vRyD3Wvd>7rzWuRY~yz2!y3nE1!|O#B9L_cQ31j%D+xN)O_|#Q MS;x(tccK1=3XAdM%BM;KKb z#IDs8HeJOvFr58U-+TF361z?EcGf&c<22q)AeV`?fDm&HNFA{$tWCo4$49hYv#0By z@|;agVnBSLVV@<8qemupD29{LKYa8^s5VGm9tp-VjW3O%LYN65W@U$=gI>KGR;x`7 zeHXaPKz^nOSrI|C`~LHWIh3gQ--387meKL$i!DT7u*h>PT{}d@V(;)d HucUt(l$)q(&X0iHL%!B=|T8))c?oySuwgoN~WW0B|^{<8X#= z{r=bj-@yv#?XVrD)LClNVc(w}{YwPyjAE5ejg{HsVNu_in17{ @jsB86(D;7Zw@uNU^VmTo{rZSDuN2F=8Ih-N;F z`GZ!{_NMlq_NJjF?*#BaeSHR~yYL+s5XrS6)j>RMDXu?i2T2uK-1ZI#en{l;U mXV?rLqOQN+bzAl3e@1;-+i3se%{`fV1Z^JEB^vzaCJWl)J!N* zrl+S%9Qw1h(t4OG&@8%%gpohX*9F@ILgcQJe7c{fz=LR{Em$?!KeU-Nr(C&wO!`vv z4LlYAm`+BvA|8Z7H}KMUVBQSIAohX{pDvmkFS)IkLd0|)7c(Cl8=C{m-I*>uoOA79 zZ=pDfSv)2s<)pBP2xyJ4;(3UZx6JV!OsYUwoq{?A68~1(Adt|pyMJc;p>pifG6ru3 z40PV4j1MX+$`2&vDCLl;_6w+h&&zj3vJ|AAlZK(FSiHmQ&5F(Q5W0kQs5=pTxxoIc zw{d68aqaj4{c-Awd*)~2ArNKpMcx9_q8 ?zw04TVC&*|(`Yo3<%hnnYJ7!5nmn~yCmBA# 5=?tn@6P8J!?UF>J*$P~ zW2*Q)1-^;Lh~TswqlI|f8`$ T_&qz(`FknpG`Ph=-bargzlIg90q7^g z+b~vp@07R;OK)#46ED_?NY3jXzQ3sbnzFKpbt~1@%6K>2aTs&)Rux@r%T)lhqQ_IP z=Wf;%o
anS1HD5Rk26~WXXfx4AGO5Y$P=l_BrdN*R8G3ft+#$inRfj zj Wm>w}LjP(?gAI^5r AiPtYx~A#2FVDXPw#AO`odf#{ZM1uO|(4o}6N z&gpN1Mu`pxtB eik zr^S{v7}q=s4d^1>3T2?8oYDIjT@rI^(slZe4=R>GGomjAj7!L6 J{r=PBL!;p9fCZTuwnD)b+XrG&%`X Z@HtL^v?E*Py)-XQW=VBGxg%+I11q74l`z1X z#UR9kr-`+GVdBc=WsTzet95S%I5iA1<~NylZxrjJkJKJE1+P!HRW%($#}>3A-8_3h zOG|517vT4Z>d1lxlS@~3$Glc5Q4^14Cf9uJzZIMUa-?`A6*>uKpzKB0T+K;r50l`1 zsXeLn+JK9SP7fdJp>)x>{pxtcs@i+$738b~0OP6M?_EYy@j6u9H52(hCfBNo>+chY z^0=wAeF_Fn3)K3EL zDre50R}pu#fV6evDW7EzPCnJz3Yto?z={L5M}1!EUZi|*^l5_+x-i9+<#44m(OQTo zP{E=(j&6mW`Q!>1$q1z8&z(=x(=|YazU(%EHTO%q 332MhmeaM0>RUqhPjpL+2}kfm$JQ9FO7ycHMtYO&zv- zxVu*XVE pwWT;LRg|+#Spbxv57Zrt3Ea}^Bgpme1bTEET(6_a^)G9dMbt& ziyJs&M_~%RRS@Co)`7hUI#^SVAV2l$6vxm9M+1NtySuX)SM&B5CaB!{nkx0xx7+`8 z-bSc)-8a5dm#e YNEMI3PCT*X%El!1vJMnVYh9 znh^gBmNpIP!%Ls1*6g#XV`5{up(P8#L@%W13>zH4!^M$GS}X|qKfS9J`LH-$5F%7T zZosQ%hwUri3(%>AYm=Mzu0932l6l~!9?w@>RP2NvYM>u8{D>sZ^IOPIf{yJ zY^oI$K%rc NxH6Z>)Yu#fGi3_~tCB&Lkt9Q0teQJxe zP+CLzPzkl@{k$SwcCuU2jm0BR3lU%6=)rBL>n7Tv66*mD4;oCP`hO36K&228To}fU zF+kn|E^h= }m#uz>EiAR8d6D?MiWfLphC z!@Gu7Wh_Xap C~tM#$-U-SR`>6Z0aose%x zbDhNZtirBV=_4vn)H>ICqc6~6A}^??ibBYG#ChZCPSWvq{c#o~Cw!M#& |2Kj;x6 zlLEy_3gfxk#T)y{B-v*urB)HgV6~n)2i_}VFW$cwtzQRaM<{U5^NgSqO%%Naa9k`B zo|si*B+!$}fOGF&W&ufZerqo}tR7_Gl%qmhemYDf6X=4IK#)5PmvtFDO-^osYQ7n4 zTeR{zEU+>(2J8Tyzh78-YU}`!qxOX)k+Y|uW+3Gl4Ba;9SdRKwl?>WKMeCzO9j<{o z1s3fpYILNntzEHHHY|ER2*7qLbh{R-knjn9j-;2X)Hg;liP|^7cPo no7MYvN z0}97t2P3YiCDKA%hYlV3DyDf7r *IrXuw zY&6<>P!X3RuFvfs2%YD>3oxYmbn8lS)L!zSCgOgmgPf@;3zT-5AejfvK(Pf*-7n5? z3$IAybLurEBIzu-Jmv3X;;D_A@#ow {5 *g09X+K46@Ga+Mi7U63RJf!x@@a74w(ze?57x)Ju_J zd7c_6P`g1h(N#a;DFMW5o#Ge1T)qTl(pJaXys%9rQVjZ2$lRPg!$sq3AeA1r`z-y) zVy 7)il;jAg)`yq2Vcs zPd5L~>;vmyhy@kq4+t+4ZkO$Qa7c($+2GnhOlko@yr7#a2elp#?4yv7kPM+hU3QZ9 z? BOBfbP#1;WTQsU6b5SlekCkyfUalWrB z=O$JfMLD1^7f?m-dk3BRb$nz7Sq_qVpbb lL;E^?CcysONNMZNC01Qa1db1pX}PizWGt!pB6&`dZ_958b1;6 z$Tg8egF@pZU_7A(dD_PX4rY{(`RBVf6|xWAAEZcoe4Ht-M2pGeKA|lT--tRQz4~^$ z_t8m&M}2H>Nxg 58j5RP1)WaMrH02H!GBg2Q3`I7 -MeqqgJBxApg zKz~Yt$*)3nyqA=foh|G%B-reWkS6@W(G~LGEdwPk`AiQFgPh8vfrcAtWb7%qAS#X% z>NZM#a@9KiM$GDqWi$`CsUrg_L-hD@jO4P#ug+($wi#^)wslVX=Fqj4V!bO(KYscI zE8XZ?f2agrwmU0(+y>AfK-C18D3JRnph~p^ey;{x3U0-p3xIkLuMF_=c8EWTE4`@H z{s3R{@xm(d${ruQ6L>)6JB5Vh=koIV6iHt>8Nsa3M%jb9jQwzcco{{`bMr0Y(-GMa zdrwO6hfBHK2e*6=j{@&I$R%*850yDH+qCbrkQW)fi-3-vJ(5@8DR>T;dc)v)?kJ+Y z=BWMp5o|BC+H^ZrLKO)Op)XZBt(Dx}g`vL-2c34-*4A-PpF(3W8YU)Fj_s4Sm?p(D zXBBrr?Sw*aCb{F|q+1DS_Fao12z=`cKqHNkueYFMsBfovBO|tsS#Ie>T-UJ+9A{I0 z8$mNq%5#w)@lHJF$#?TY^kwWYiS`aOx!_Z9^s21KFLGF=`ixbdN>e}%=9puS(C1x? zkU?jmO{I+U0Erj>pp}uxmzxIqp1zV(>Q)n=L*wN@c}bBCmf;^{`)sQc?>YJc0aOMN zbZ|B58?YX~44MCu_JmnZ+A{8$B<@-zvFc;8hBv>*dFIE%eeR5FhLkpnT7b58_nfI@F8v1~pNPE}G;>I3pe29$maZi+h? zCqjPHQ3J>R5dXEt3RL99EOjL2(!BYXtyzJ_i^2grZf5?!IlDUclMKuz?^DXG@-7UQ z3xJuG`SzMy4K$gXCG#4bfC3(tsXLOMSK*Bnq*8L0%W*&e#{qvA6cp4Dc1;+hZ=NqO zmykk}^1XF?1il9!D0%2f`03+ zptI^cOKnUwo5I?p=w!h`xybqv0oQ8rIgW46>N}Yg~ z0!*6bwPr{WLHIkZ=87LiqvvRJ1wx5xN#D3Hdq};jcETwSVKCb zQRgaJ!zm_~1oZ2kO|%EtQ<``z5SPP+N>oG}w#13*2~e;dw{~?=+`ykSA+D)pA0T~j zotTfO4Ie@PQtv)HfWbq=o&hc)_0M>~A9ZL!rgrk8oQfvF&=FYB(OM{8k`pRNC0Y|U z@XedwvbCkCAe&=RBLJZ|Z 5?*i2jezuMen2^x*?WofdD(R-L8d9JoK59TL5oL} z7`{AGY*OyA+*1UcMO7ooM*56;G2%(5M9s8I(NOa2C2cN`ra|YvaLOIDrJUy6g^LIP z6BH)5py4VrGZV4%3ynFq8ZHclywv7^&PdSyQjiUtJ+J_hD%As|l1|6sS_UV*a)LHA z!=5ckXyP!gn4FIHWpQTa1%&E`|M7a=lNEC_E~MU){z+!$4inefthK=+^LjIpT}?3h zU1-!l=)4`;bX9<&WDJAIB9!ZvI>pDI{20I galS9lpwbc}L_C1 i$lOiR zOqY5_!F $eyNu>U8!k&YHcUt%m>$T87Jpl{X!;aB)lGf4g6xL zh?k0v8%_b or6vkC2WXX zF|RD-J~-XLUemAk;} =|OwHE#6QK$&D_EtM0rWdAe bn2z1$dWv9--P9R-3+>T;4&@O{g;&cjhYSQxD9Ipt)DcBRV#A zwwY3vF6da{GhdT=@piH4?c29=jW=UgW1$IHaC%GBp)U-OKhi8Y?)&B7*Uv}^L*wDh z(ocA5;M!j7DUk>e((6k>jr;?X5*d0^g>dfOIx5U0J7G=1Q&xnHe~P)@Jy1NN@95Lc zW_(0YgC4n4{u5*<1_3iQ;Qh>Zp|=h%u^qNU%4N`hSK7c L(_ZQ#)c=qSxxRU%=L8g)*1KTwiq-V;a6n^ zE*V(teVZRrke{H- SDh z4_>eiuir_!1;=Z-(|r{@Twpi+pnvXu;T;|`#Ri@e4R z-rkRQHHNcGJbP40)Y~LF1YAcb%0H^&q_9Ucq;n{9&Li& zV=rOI;D-E)^*X7EvA$%5(;Jj~TY{qd9`XHS%!+v-qGI&~_4kM3e=;tz2JKj?hXtFN zu>xdax$M?ppkHKq GH?d{Li0JTH-Bge@;EQBLfUX78DBj6T|I5^>pGV+nv`5 zSp5^we)kLK6>C-wQ0(R(^aWgAe0ps-AcXcOz1F+)L^lyl*r2*%u8Gu24K^cs?{|+t z3* ^4ev6&kRBP4yC+goFkj z_T&aQsTQo*aKE00{bex*`z=%}lV_O}n|`e5fb1dL&>;>!hm=JMdGlt7*qs1&YKs@3 z$w{DdCIM*Fl>!O72EBzu%oQ9xXX4t%a|c(vtAW_t>guTgxp%pC+iYujbiwD)#HBJ^ zp#C5p5IV4+S3vD&6foP+xd8N){Xi}?^nrcNH_(9-h|sFD1H33+oP=g)yokw^P@ld^ zsk}0NXK!NRyVZM%n%-O~t>Mj>w9#_63#iGeVq5167wYfk*1tXl^%VY>09$=GU|?iy z0X >1fBt7JCF zu~#yZRaV)%l8hUNNF{p|ibGZ+o3d$% D{GPE%S|H{Il2D9G oshd2DNqGoCK?MI#BaKq~d+EDBezK? z1RdS~;a%s0IS%wM;Fwc0GibTJN6+(@Lz9({uct9^EdW?b)SV7z8QNb%VnHnOm?M8f zP1~( 7yFwESnDf*)Wn@ z?`A`7yT)r}7JZ;gP&m==)BNuqkT@4_EnYHGc~7VG!+vhZ;sxc8h~{Mr35 Lr0LQ3_s7+_II=*ON9@zL`1f ztA8C;b2blRZL8e{azandjrRCncNF~=M|$x5GM5sz;SSC(mP5?pM1$U$gMI zwbAZHz48Sa_xPPV^1Dqb)8U~O3ZT-Y0dSuU5csv!{RN*e)Lad^@|{jNM$*sR5(Uvp z^t6X0=fgqr`8LV**l*0X={brkU6t={-9AT(t-bk0;rVN8Wc@%ZsQ1wMAzo1J^QHxS zGhkjT7SC4n%5War2CrBwJeiSFbs~N=)3{}J{lY=#0>B6;P<;AW$<;SW(2=`FqL3d@ zERvwf0@p+~L@*?$r4{_ykR;of^19v7dPwe;wk&q6DXb|tzmQd&!|C8|`&Bqy{u^;_ zNwj77Rx-m)-=*zfNrn|K2p_gDkmt0L``Yqy$Cl&wQjwJ0?!`68i>r&%1Vh$B(CeU1S?xaD29+8MbtGB=61p~jkTEg*qvPNAy=kR_Ne;_W43$J z0cuqNRBf9)*KhGhI*dv&D?I}CI!F=6a)C?S{rjL!gI^Eh>ZSh{5duJPK$}l?^<<}} zYQb>98~?Fd=N0Q|XtrU9H-?kUE~pPRcE69|K#vEoljU;bIO94F@edOdN#%l`j_oUl zmn9X=IhuAhf*QhqP<7579lhQ(K6H`f#P1PfoB3!l)?`%sFsw>z^oudcqskK_SLqm~ z@dDa-NznA(Et3K@A5iMR$&t0(V&GMtt(q8`;+Qzhp~F?5l_K5sw o~3r&I-m4$J!Vk66lE_n+&FN@e2Z+UpAp;APSMzd=B)!J zY?SdB-*6v%)eU^H9+2jkr72~=VwDWLCF|b)@!LtkHEkB#`E`mUd{TXa;5SrcS9^v{ zu kgt~MBhMI3b#(`St zg^9go$=%7>__=)xxGI<7%tDh1G@{-XErgSH7gttRP{j~55<3Uut0ATbX_dKBd=_^7 z#mpo)2~fw?qoZ>F{cj$HpWiH%DchsGc0q;)X=R+SsBT9!PBE0mnY%GsQurH?39)|# z`yO*T+|~ZkVxb{8wHiewE++{aD&s*x8~}XKysa(aMj2oAN!8osd;x|BH*3oQzKI5L zfP3YRAxxYz* 9h;``)<9_r0=9LD!LTM86J^qFau>=WV^?*@y z>~Z}f*3R$-9Tpd&RyJnw5qo<13&pgmS2pTwBc}ho1F{T| UHc&-MM2{xkOcbN?$Zy8i_&a&H`lqBn O-0LD_jnlPPN$E zgigJCc~Y%g^lCA+ wAp{CU3@8@S*{7YHph$)6*b-a0EdPgbfXibu-AJ9}{R6Yw~cMqkJz9 z2f!89^R@VLSJ{PqdJ3N;#WNvwhG&u6<>$FtJ^k@Q282Y~-FoAvtcYZD*hcg4);L2E zoDtyLalf~=4>Ny>bxmj4JPahPm-dJ8OIr5A>jNtM@gG%RjspYZ3aajwgPoU4LC|QT z&PQ-wpsGD!l)GTC`qa^}%<|J+t;{y_4S9-}#W#;A`@8#JS;c4x7oa-_Uk~Xx#y>K5 zU _W5e(m0 zuU!E9BfL?y!T(GR_>)`e2cLiW3waN^Ag%-*3u-Y1qlsqnfDeohsP_q`9Z)Eq4&8fw z@@2Nvc5Gy`wVE*{#b0vD&hN2*8MK&WE)gG|1%ON$9M9k+{9w9t%9vsF5&WRlcPvJh zwK&T+k2|mXM?SSCQdau2I!&Ggp5>Tr;51t-GqJEW{D7n@sl2!R79{)wWfyvANFbdC z5{LD(#h-_RTAm--h%@fB*D$1!mIBr~=&Ko4<(LoXiAp4rw-byxeHSJhJO)nys4;J$ z2$s)l*F25HjU{^J4%0W5Q%=r;!qV 3Bnhwd>hS$rwJCxIg&yhI58G@$cj4i+;N54{XDY&voG`&hIO1OA z9&f{^e8zH+>5;Q)MGz+c{$ >&_qw;j zfWl=SXBQXe$D!GU*^96Kym(c-_-gIjnZk?R&tga<<3G*oern&S6TVzAIQsVO+m)}E zj3(1vvJ(5iIra#+XMiNE_2tqpJb?=XZv16khV$$FcViLC_a3=w6Nanty(z6kypu43 zWNV3^!CE6127*~KyYB(NIxMsg5j1JfK7RbjZLsf-l-&{v&ib3ovmY59ZO|_Rn%ygq z;$q4!%8CHo8wdOj1Jv&0l9F$slQOw_^)ub4m!f+^iOQo7R?f=oScl D-6(FJa9LFMSl|c(zw~b+jQaS zX(kA}k)8Pnt C2E+7I7z*r6nyW4o%bFb>dF`fsmnV&G$BWoQ2hz+KX^#jWLEFAlVFg0yZ6FLPiR zQ{Qq=>KY|qvTh;NJt#2l`xkpujsi}BOHyxHjFiLS !GinQ|oEZp2eb37nirI=sP^;$;RXc8X$#(6=-%dVI!EOM8QNRpLooN zk%uSt#ii+AZ=iwx1>e$YQOo0I#2mSs(|x41ct3Ck$z~<&Nb?tY;_x_yD#Fa!B#ClM zsUJ?FU=VUT>3iYAkvsQVV<}4c8fLj_`$e8r40&pUXTejE`;~1Istn 1Ot%~bX=*&vgd z4=g*5w6wISTSJPS7WBSoq0y7L8UfX05`F^sdF245LNPV47)&;X_Ew)a2SIKk`N{4< zo~KHrkzNVvFkZL5O7WV~_t#8BFaU8BKM$3@y#PojDgv_%%M!)QuSH5Th~HIOxOk}Z zCs^B (&IMRNAJui}lpw;YVg8q5W;e=3f)_9jAZo~{ z`2{aISZEoG_fmha#T0CdcaLy{a{x1H?KA0BSgg3}GV;)-@xIvhAAj~51py4oES7uf zb0MX-fmfa#EXyt)Qgfsy8DLZ50-dhMr^-7C3X6$dhd!KFC~Q;3TnM|ae!0==RPM|e zn2X-m=69JfJ%I=pDfxy`?~g#_{Jt>??N={Q7Czp+9Qf1K-4w>m2m0=Z1b0ltGlaxg zA=>LqVa$U+*`&k;=o0W;0tOI@h6Uf2h(V@|Lqu_Lg{;QQ;!B35Crvlj(xep9FM!V? zF?T1HSA`3Xq~F>bSIX_fe;0-73%6dY@I7}ii|lEUT>mxfa^WpvMuKBh%eUU9z7Mr! z$KxX2Ut6)fbXU58UEvM8pp1PhVkm46EJ%hPA s z2S4r#XU5Wg#H}s=TW#)t>oh?oJU}Obz7+w;{@KZk_zMP5U+RnX; @iSUhR!5Po>OQ#opCHD6Z1XrN zDFU5YKr0mF(@WX9MdGDx)#Is>!{YN3uXBlBw2sQHbVW2v^zwGZJ_@am&5i{xX#tMp z BD@O@-GhiYAG$nzQGjWh$< TO+GsfMh@|D{eqbO`Z6jo)m75 z{Ke1Hw#MzGentpaL)8SjPZmkx2vJG5$OEZtF!H3#Q$Fi0pum9xM1O`o=Dm=x(`7>6 z?6ZY+%eF6>^&ihUYgA-hSd98l*Q^BqEC)azc}@1uA8cQjvTd}qFjLK^*O%Yf`tYsC zqrpB}SLV1Ixu&MtlyXr@G_&TgXj6M?X%~Dim-Sk~X)d2gSfvS7VQfkUYPKD0iRHi} zcK=&elpdDjWwLKkNHZ>9x&)9g9JJIi?**T6u(D3TRJi(j5#)iZ_XUfXLWp6B{0hv( z-`o=%I5~{{(d7Gj6)njh`0}^zfe%^-rbQ<=sAQH9l_BK?E^ K#4ct_4!D5_3tkj*j@W@c1-sq?Jg4;Td)0JY*8mZk@g *hVo@1(iAhA z!U3;f`*<9mY8?1!;eK%fu~0dl(kal#c>EvTecdeGTX~K*m-DTNFcET|QhzlcGV| za<$Op !y@l^VLnk^b4Xs zJo*vr?m{Q}+A1RKgs1+jRaVNLzyNxx31`R!Q5JNdMbTHGyd{8j(7P`0Gj`0$$qBL> zbYN1ylb0(}(2~@djrS`lq$895F~DEB|M0AvNam})qDtlA)Kwbe#QKqI75pM1QQW`o z-n)<6zCvp+n@$3Wlz8 ^sctkq|lLt20G8m2M$Z364N1qChj!p)uj?nE?#`WSby-?ch6-HsFR5 zin4H8D|g`-xBGNGn|*!#5TZDQb9xp()j&F1A8QLr?{N<-0i*i?noJ3;jdOrLzscPZ zr $vybT>l?++%DmL1=j6uNo?F=zqpzUzZU?sE z^4u=;>8N8EzU?!RQsg*gGu8Fn-=~xdoA^m5_ITfx6a!TCaM0<0>Kh9?42eH0Dkc`( zVCL(S;&YatPC Fq0zU$l_m8~DQ zD!VOcFo8g;VYxjH|zZ^->q?37wf= zbLx8je*XFIU6WpGL{YR0c#luON%tKgvEvP0>vk<@Tw3jg5q(eHDKfmz!sK*unAG{b zWsRXg7{!$T!%4_hf8YNT_jdZG(LO*R>aMOuQ=d~aGh=`!PDx2=b(GbU+#Dz}A%kC^ z^cX#l94cNv-vO1um{9RJ{Mx%91nC+O!!eEyQ5wr<>YMoq*RP zu0@Qy4t+f+WYd3sJ%9X@k0Z-afiycUZ^*jIVuYQ%D>HFwqO%`2i&<*Qi}D63W_jp- zkm20~RCxoP0U!D(p~aBYK9iTt!7qAO>I~DFe-$kik@qYt?1%tz@b+FAI)4lSDdLRb z9y`mAQ%(VjVZCoMmMw~3+jZc}nUH)Y)p)AqS~cE7b2V^$sN`CwrlkdyoOu7L`f_^C z<)m_z%>UB@Y$t!|cCOMp^>1x$t-^Ow9dxRf`fy*%>_BbKRCKA39xVG&P>cX(6@=tp z=%{tz1w~$mNI?E*9Q2L`TT0L!L1HGDyt#!%MfFYgX=rJiYBxOC4%oswm*ZU7#u|H{ zyIy+uRHyLFF?v9TsJaUBp7oL?{>>1H0dCqf_K%t_!mVie;)~#N=p~i|M?Pra;S1tI zMMD{imw9L4>7XzfT8#eZW&ZL=8T&TPqT7P7wNRl+6oe8W }E8z11KQ zUO1e8&JU?9Zv@|p7U+{?u75a!IvOA&&eZl|AqxoqT0w;q0cH$H16pi_xmeh+4Uph) z=$|`scSMAR?Exu5m8}l4=?O5i0HV<9T}P|4KmFjZ&cxisqRM~Ba#o#dP@$<5rOA}C zhyX-i-kcw zxR#-%@i28+f@?$Va=>~=L%DrFQ<#b?_mYy3>&a_-*-+NH*$Zh&ycya^<#hRNq9{R> zq{xCdu$&;=VQssBAQfluUyJH6x?gYIg_--6y~|}Ch!@^6K6%-^oKMaGI~&KZtb7c< z`o|~jK0v(5N-G(IYg|DMG!Up8z!LPEh&`bHl}A~DwrvNobT3fTr;ou=4fzQ; ER*w)O**kHB+;L!6R;nrS~WE8dXQZv&+XWYE!oyP~0@5B~w&@e=^CcR+OI zmk;URIHy^FF&TL%@1@^UF4&w5uQBRGs+7+ s5xlKR zynx;L)6@%i?|n%Bu(F1ku6gILq!rgo>tY(?OZ)dCBU_!Ta)?9(ZqY{=mHqB`!a@HQ z^u{ZICLsuVK_De|00SAAL6!avmc{q=nS%R?23i4Lo|=wdc3rHhS)DDpk++=IFcZ|F zw#O*_tqao(HMzhORB(I`K+pRS%R#GfTAz!D_p5fV6cfKN-YfiMr9UEo(SPnLa{mHG zdGf_n;P`VL2G1X_d#|&zFrYLW2=PK8kWH_EZX)sA@Rm-O6lG~okzk8PYgO48h^M0! zIhKcymY-AZMoP*DnK`K@x@5W7F49M&BKKQ8@RdUowoQ5*5Fj*{SPKP7yjFhV8#AD7 z?_z$M( q%Vc6^jsR>C13r`RZs)fkhhBzP@%ii5mZyK3 z2x1z0n_IN^ HvQK|yEXBvA3(a(55QH&LAs=iDnzV({l903XYY`oEC{ul%};>%rz` zW|8pb(3Zu<#=Zxi18SLi<#MJc{4+Nll6lg`{PEn*HAQriIUjNsyyIhmGdvCl?`ofB zWJs_GySJPCQDT}rm3{%nmcBcJeXOX{6@24#C|rp?`WJ!a-lJzxn l>0f@f9fA|ZsJv$pWsqO zbE}ClnAQdR9T;qKfC0NI(7kgbVC}?1v%kWzqHXINMk*Vua9h%(tOP%2CJ<1>3-JAn zV>2B-);#ka3e|Xa8%hKuRc#<$i~{151(gwc+R(8BjQSS(!c#!*D}#&?9I#v4^cdZ( zg6x>0&uxTL*FSVnwSwQzZVx6k*S@?5^YzdQ2WlYoWC08WvYkP!u^ 78j=mv&gs1+xeIgCZ-Wpq{OBn&EuRT1NsDk12_ux6Rxya zad`Fnt|Zs|@gzeAXBNB+zn~x%r3OG)(GyZ@omIu9>3&<}7R#C1Ax|{N05IUZfOxpQ zTwqO72lLOzBV0cGT$3+D_&m)%L*wTFCryUnc&Tj@7a1k}JMd5{bTcz{b56LaVpn(| zC6@BRgPUQ#wLX*tKm~(wgnmK*BF#^K*mdsrKZFtYNP%1kgS?{?t~?y4=Qr=61O3zk z7(#5)e*2w8k>5{!+HuFIGrJ4K=Jd(3wm`;{^w&Vn)eb_!CNh1RF%#zd*a`m+xze2T z`^vcFa)yG+`;1IX;b0=o0m4Jw=nfNxL?be3)S{!jdv+)qzHAWxe}Kp=)} 8dc( z%4Tv*WYua@7Ga7DcCsmU+n5#j5H|-VyX%kxfc#KAZR;Y%yf=Tl(Ikv$mXP`h$LJb) z@7^`g>jU6bWxO1drK%Q~RbyVtqDM =5Ra-Zc)3#bEJA2!(x5giZ3+Eve;;|6kr?dBnBt3XQ3 zU*_tkiQ$lD0-dOX#}nio8o2{slL{n#7#@H3wOVC5a8b~UaQ_HNcmgnx%XIu8 sGE|A<|OCG|!ahJ{gJguLs%jL=0CW$D8(ZHTE~Kd2Jq?`MqHtuOA-{JOc70;NAL3 z35j+P{X4o{7GFO}JXq;%>1R6lkFK(@vg4(l{Lb}rS`qdE+HK5Ky0j3P9~-v!i?33? z_A@lU?;&WLZ7p5ijT!U+3yG9IKC GwDWcxARTbL!Zv51h@V1lStyOjEau_1us3S*p>-9 z_zz@z_?2cfofCl1C}{DRKwYbEkf^ l +{uP+_Lib-8WlYA(`#|E5 zGV~n}h0z$k05FxAlv*p~c-eGU3vsor;;1LCFyjZ)kG+f?rltlh%)|cc)YOdA&;3qF zRGBt)JO4{jsVM~)HR^#L3)!-11QXrEt?`CCC&9A@ymSBtqy|*9wEdd64!OMS^cKBV zc%6j%C|(N*dJk2;*H}=6x7mjZe-6oRRg%NFGUM?roNVg!5pB3umQBz4KL5fo?$wB$ z^5Ps2>E?orAgJoqIzNsdx^rmTN)m$651kO)CSv~VlMn{iCb1XZnZIapNi6fiqQdMr z)Xr-60sSXE&}y&1*$b5Qm0rw+n9&TC--%R-6djp6{R^$N50bn_Jr#wdq>ccK@c#4? zdkUsi>22VZ&_qQoub2l9+Mo=spnxBQ4-{`bgGuE>JYPKUqXxaKt!JtFHa6 $z7A%7X3gc$U}Cdj2G;_E0D2&>$6`*SN8U$X71BBR&5WWrAXm_mhN# ziHcP_@b6MyH-ezMWUo}LmCD>=!|euhS9P$NBd;waFWp)tQzlo{qZP#^Q{ZVe+vCRI z#f^n_MKXy1)2;)UR8W9TXG~x7?UlBruAQ~cm+#x+5(p4Ewe1xyllWUb_OqJ+76i^8 z;FB?Xb__ECz<>@s^A+fKiFtYNJX#QJSOQXe68>GoRJ5jj)es3( `lf-g@>kTFvX87x_90XL!d zNE!0Flj|#Gsm!=ia~iFcJE*BGD;*yQQlmRZWWaCBz>;C!CUJ9neXz= 7CEFg~>a8Lc60$n^e49Xgrir1V*dQ=Y|LAJj^UR-m0lDo~Pq5f=5;}~(g zCKhs_%G?C9R`GMeg*wS?BalrO4yoSiEH6-P87lw$57hUSQBeVsv=ldk>>*21M@G1| zhjPNJwXW9pB>g* 5Wnt>A!#hdevh8N`9|3mwRZjOuI&pS zOi%g(Lw7Dr8%R0u@IHc0H% ;4K7J|XzQnY2N71l*K6kz3({0eP ze3UF}i~yra@d+uvjlY*KWGNqoUNFzoLBL0l!d%!=l>n{EmtO~H_YE4X4QC#*13$dN zxB?S3Nsu<=p1lAfr70A4wv^59#6dr3O5FswBG4EBsJxZ(n@%q}8E>}(@(ADw7?WQ8 zWPW9B0s%#+dk*<=0|A69ve>T5YEkdl`~(b=h{>7Rna@HP$0;KZOmz|g;;opV3rhOg zQ`KV}|EVxn;k@UY?@dX+BSt~bjh5@|^lr`Co6^{n(!1tf2)F)gI9k7hvyp=SSdsM@ z$^|y>F1`h)@pD%S#?*$~Psm7Nwn{KNIG0vme=(552j5pff}F`2@5hD2;hB-FPK^hc ziYrk?hv4RqgM)XryWUjYD^mOSDX_F0g>;>g=%q+=K+JxEGE7}v9Sgw64ba&wb_g*F z;qCaLWPb~mgjubfFhBS81!|)bk4p*No}^TU1p(-ZyB#ZrXbvA&*;pahETB~pwr`6d z4}clt_V^`Suiv>ELo>0lD(6ppA%-Bh0~@Ok3PUHU--$u3EfADLpB=K9PCC*mBzw>* zUH2mbf+DQAdX5-hR7K1;dWQD~E?^qhXtan_gtUj^3JKJUZ0UY#v>3F+Nu(~XumwDO zHtPM@vmVuIqTnnTTZ}B4(N+@3w;Rx~pdCB-v@7YO7b7*@?Z=8_o|ss5cCdKQ- Qr|>HZG2PET=0!P)+Ty#HnlcU)QItX+KQ{8<_h8Rut%(vOh)Cmu}UPiS0*a~r8 zK=f1dd;Un{2$l?=)BrVy|5VuE*U+I4>xQaP>+0D$fCwO#1y1u^utw<`7`%lO%Zx*} z*rq}8{Ndg$be~2MMAtryi4lo+@Q2P%r`(=g{ECblQXMg{c|6uPaF_r>nHTO@^ltp` zDRp)IqIqd=O!rdF(6@4_0 %rF2-LdtAnQ&fJ8|q)ht6P>$cX+%4t2Ys(r6@z zjVGWyn%h{;!US79y;dj3ACHu8Ra=*iU8HP0npGU;!-4%dZ6`oQfkj*|?e@EsB9VXI zfFP&IzNV9m?*MdxylZMN&tmM)@rpzXRI;(LO+wV#adC0 jU<#shs}g2kA 8{7uVYvL>5~jL!9;E!OkQ#m$@MRwO>txa|B>588n1{;9Fs8h=R-c`#%=|a6 z2n7G^C{9t$Jc)7h>ErdZ(tI9VDaO73L-SBzkmTk!WVJ^2!Uw>`6_AELhu8kcPU4Kg zD~tZs?O#?(?q8_@HP#3Us!yo}XD&nb$*d9*!I^Y&PvEp-n~?_=$AYoX`KtR x&QTZcEXv=jY_>uM0t&24z9V+xrA)4WO*q*I0|(0!bcW)LX~IgbA286LWLX zSgw@DxS^v+oA7eYBV!364C6nG 5Iv?EdbL1JU{F+8Sa-5B5Eq-Gv##PM!Yo*I zRaf_Zd1zZv@2T`3p$Mqf!t$yiP?$GfW%J2=J$!$VMl*EXEr3lv>PpsG;>qI)u6auw z%#5yBqVp1Cg}4n4jUa@YTP4*!>1z+?Y-M%vtAm+vrAia7rY9Ff^+^43=jV53M3eQH z_pIj&rtYkc+Y4fXpvrs(@j|R9Mj3>127(x9*d(_y;5W5-D*gh-R0j^%pSOM|67Xl@ z#i{kJJNj^~BS+=rb)Nx3+hG&n3Pa5k5Q#4zt;~xB0Rc|dXu1E7zLUksuE&(oT^%GK z#1=Bk)|m-1$S33=qB6mPWv7~gAcD#DD`S#6kKo+hnOF#!i16P}uoCPQ@5y0so+_u! zq4Am 5dQlJmP4f~g}!N8R? zcrLzUpu~y=-38@ao4+z(VW)Qq_b2MQ<&_F{O0}?XvF-1MdGDF03$=Z%)IMq4xKW|` zA#gGv(BxmhWKh!z55iBoUt%6@j~V&s;^OiPxJ=$b;9I*h=QA~0j^ZCM;-~9w3UN{q ztfz-O{6-D~8Io%bmAr=6?^*8~m0r3egwb~-upLM-O`JKbXm61fcyji1sr`tho1d5< z+5EAaRYN>l-Z10x(t7uzhbB;;;)w_o6Js~e;1wgg#!I=I4&zr;mSmQ=5*dFxfV~5i zKq})J`U(^?@el6zf*hh1PWsye(wxQ+ya*0K&9o1h^p+SL{^fF+ad?j)Clx|#dzaL5 znF{loN$1d7kI+H;lx^9a3rU<&ee>9KDB@__Z?cJ(yDww?Q*~PbC}PuV1(4?fK `v2{ICZetS ewhhTD591f%R07J z5L b;~IE_>$|2+pFT#fA4pl$ zkYT#};69?)ug 2*?dwAvffp&BfJHdsSF`XhH zGh?_#mL`lhBIk#@ld-$cSXQ%nEG{7gY8M(H_C9VMoaY}wFKKLPS>(1KpmN*nWkcQJ z^z>wRa2Lz{#=}~VL3)&@zGe%0-;bzojBQ7-t>@sCvm%r*AiYna*nz_tv_XcS7k@|e zNwY_7Sr4qkyy$TG;VmNK^BEy-+JD(_CHE5|RUxjfZd9XcJ2gdzkWV~ap-YOzCF?0m zCtMVB50Z{kZ;VS4o4s3;Op37gy_uVx$lE3wM4>;}Pm;ZkLx7 #R@K8jxvdOn z_1;2}0Czo{)p;LxwFXT*uB=sCH3r@9TW`HWNBA~}*(w@_)&>SBR$DoTcHH{XxLsd~ zc Z~E^R1^oeU zed~z;)m4{%o2N}Zj38@ZJIJMQd!=+;8aJVR`LKT?5%H(5FpVxzEPOIQfKy#k{?0UO zg;?t(H6FgW{Xt*Irb*Zyl-ej|u$2L}X;$DLEkSxSZ}a?9tnH;3c7ZwC$(~G)vO3R3 z`PydK3>4lq-42!^k Cr2l$mXsrO*VQrhh6=}U!Y%zignl(W2gb^a9dDJlZD zV0h~;aiIO)YWw}lz=Ys(ry@@(3O=Oid0-Z4a{B#2^nSMaE&R1>f*^1$DKfVKq8e^o z0jK6Y>E~%d5C8t1o5|ZaS{{)o9h0OjAR a}hK2-{H0*XfqO@Jei$T3x<7v zzzkk(dGRR{1uczgFZ1RyiNp_7eH3&kljmX_Rr)T#^@q|upyz3;J#nx2@I$sJKYX#1Q4{zm|D>704ntoq WB6MFIa~CFvV1e#$*QyIxdNjtQ7_KDYD!uf)Y&ctl z iPUQcmdk;Q$>kjodjJjfY zg$Bw7h5leNX KV-(;=8~@i0IhW#{sA$rPS7oH5Ij0`3M*fio$Kn z{D45&dhHK+hHlr?R=FX49r6($poz`Ez*O# b^y``BP%mEu6lXIxoYV8vl);o2uMmAq&YJpWP+|dhHfH=XXyOZ zJDb)`JVKK9XL|)D?Kisu|4$20{>k>m^KUm*ONCJ>1UBPX)iAC9uNQHF!qDgk+vwQQ z@YQ$!sjtFXnHgneA2~CadpT!>pmeL9Bja4}Ez=Q+%F!nBku4WzXGq9L&7moMAo_uM zO5{ke6h6fD${yv@>%M)GM-BuLYssH-bZD*(umu7J*L4noAJM&d@mq3fI5(0Tcgf?l zwRQOlR`kKDebi(2`}fJDjXR1G$b0mXr(UEUaTUR=E1=@o_tx@=r>{i*iwI>kgToIV z8Y;`R`!z{C)?~zQ=9*-h_ss+KkTRQUW<=!Yd*+Au93V|VkCdVnWoTfK%!ITWvidPY zy14=-@9jB5!~mC)Msb1z>wvY-eyzKqRv6vZT`aE=v!5MM#wEj#HF~}LrDo60i)>20 zS~-%yjw=~`a NHc%+ jMzi?8}+8QVPav zMu1D+illE{^YyWXzlfZ+3~gBJC=kE3?|_}juLe T=TvNF|%3e -5BJE37~TMP)5=~R zX`_IZ1EV|se&^@4&l>D-W&L_OdtNHwnUwUC)JUO_c`uhzZLH>Ve^bRQd&jPhv5(`o z%_5l9a=Hr4RGEex+ICbD3^mVoz9c89TX*bA?L2#IM{K)=bL=fiU!- e-1Od zovohU2WPMt@0f;-U7GH7+qNc&MQ`P+bTIir@9R6#f1!eDkYUnQ}?ou2 B#1Xwwv7$ zZ_|`siGwIyT2x*qZz97?cA2lyM0E(BqWgi+RG6mIobTzp>o>nd@M D6QZSie`UEsiBV{pv tt7clwT0v=#l8vd#o6Q s|BoCQ1qGiVVGnse3}zzb9$U%y{&8^@T}Sy2+ot zy8OJo!A^@2*}VFo1NVGF3_Jiu7G+r%&VwC~3sjtsL$Z}d{gTH@-eTS%9rp_B?KF|r z`3L62cH^VML~lAgL=)?9y~Iq|Tqpijm;WpF(GRDPwJg>W9UTq0hyd^$ikWl>BMZx2 z7-52b$O#Inv&ZDZ#X>i5TuMsQ#3V80BJF?bI9->EMlW)^UVSt#;b{JbL)f@aoFU!L zTU*moN!9Lgw`MCHOy#hS`VR_5pEd+a$YOn0r}W~7SZx`RRvub@j>X; 1k-*}O0xLH=v-&2?( zCOU RJ zr^~!o$gY%e^h%5#-seD2ZE0zTvVkN<9Eth9<%T8{YY17^z4BJ|YgJ)OpbFvm(LSb^ zUm;BRM#TtuzXGw`M-q|1Kk{UKhDfz5a)hNdmQtk6D1O^elm))6Hxa6E=0Pv`7D{;q zgh2qN^5Z%a7d!k6Xvef6Y?uVQwNd+;GZ*lYTBfGV;4g A``8L@y=V OLdCb3o2LfW>f&&qin4q*HCpaR} zkP|c`yZ(f%EHgY0AhNgs#~1d3gVfavX>u`1Kj%(19lf$Q&A36SjKzPxndgI&vEZU6 z0YiW)$R1j&ML+_KA82JuJivn60D9YyAAkJnC)ocs#tu+0PWGI|GTR~Sxqe#Pb99qK zn{H*gKRMMlHMOph%doXx3i9>`x?)Ja6}p`quntsuKpM8o1+tQM#*lfzwxyeIVBPQo zKxnMa&kdG+d|B4~5M-R@x@SgeJfgvvfo7bi=5qkV3JoE`-+jXVvGwJLZ|IM+;51Hi zzD^{5<%4XJFG8Z9VSPswEQ+#}Vvmf93S6fR0*!m%CaPdPbK~c`1(4yBBl?(>J)a(L zf5gc*8FQ{i%&|>t!7azmjT({O>-MD$RmZX;oMju@@LE6-sH8t3Elme84sUEZlc}ME zK?xcg?7)-M%a+9?!h*hLL*_I%I9UM-C|O?3=ytyFL 7BGy$F zB(%b+Na{`7S`1n9J<~9Fw#Me>_aGx+=r*LG;vvj3QfMFOF<`Y3Fc|<11BSM{;B0~> z3{94V6ieU3$IqUHH~@>(1qPg8MsKV!wys>vk@#qM{U1leQTl<(p?BvyYKfN>*_Cz(LXN`1qN!$aU@FG~1CI&{zO@X!5>({P1wuiyQ ziYkMI|J#oO3Eee#&1T12T2jp6V&MtuRbanXV@k9UV^J&xwTy9UTh+g{f<5R;IKVvw zr3#|dB+%I`_y{8d-}y(do|Xf4QM15E{s`ociz@Ir!gGv B`CF|EL5+&RBa z(&$3-;hZtY?_CvYO+wO;)4n0=KrZ>Q5FXmn)+sm93Q!MxJ&~st?JEpH_@+%C@B;+% zvM|BDKZz~ix&e{%BN!=mY_`d~tG+@|P6cEfii3JK2WCUle*xS)#QSkqTK)a}xEXOl z)>#;`gGgO&PRQSY3;G3WnKpFaE6V|RHr}FQV)#wJP_6jkZrGvG@x4zfkO>-t3THs4 z=n84GFm+1YV)q_v{AUBub$|!J>@}G0zN1ry)#K~t4*gik41{ESYn#O|@P7X-mMmWv zon06Wf-2>W^@v& V{9G^+Aprp@n!@M3If0Y3U|_|%jmN+_VCO8z0rI)KpW1H?T?LtNpvxuq#k zRXve)qJcd`Qfngc?H2 jPI8mH@My@LPz_sJ?**gwgKvgWYiAio+G zsJ;Uj`c^Msls*)8WcYKPRdZB~0fyK;LnMIF4cjp`!-d>M%v6>mA9t*rR93zUn-YcM zl_MaUq9gnL<;YKt>VT^OB9B&gaTSnmp>-X07y%e@9}o*D3prMV0h;9t7{TNR7_wA4 zL6*lELcXwp6=Hxy_h$f)Lie*vzB2-R?-wX6S|N};@8-RG_da|{mz%KzFyvv>)#ZNm zY#W_cF)F`f2$L>(sqe`m;!&7#?oku}Mr>8|^EC~5rfE%Qf{p=-9a}3iiiFFf4;Zp> zh=7m(@c8U32W%uGJYBdf#9OBg!q~j$k)Kk!M1>@x8uo~p|8eRt^+y^S8ctaUfWx$b zK2KtA-wyB_2qInq2X;GnECdB}e}kTS#}S^%j0Ugl6aSrGFAlpdlk6YjIvOqx&hp8~ zBNRUvPlW~reF1D7EQnmKrnVnpa{!9R!2%r~LhvMdNt5ugY{RP#(P}pU^S3NDhv2K{ zAfTJ=%cq4kaSuRl3vHYL9OLkjAD56wa;8mCB $|2kV zT@=Q Q8^Due57a06ra_E6_< Bc($BBl%e?n~ zzlXrgRUPfab$i%V#KR(b!I*At!J`otrOoyi#>-y@gtl1@P*R8tv1vG=;Y~v%`|bAN zND+0LCK6C0s_!HEK^{-0EQsJgY;s6j3s;p np2Rp8w-hV8JV@V~?mg5@jQvO}BHSu3qs_ z)wb*LD)%5gw&n4lcO7a(Jnc8j2&W8ae3>_3oiH7cnf<}97a8!-sSIGL{gT50Q4-W? zHEufE`%GEQ!69e eOsFg~a@9v}O!lqvWLW{5Oh-hxJt51j)x>1*V;Xc) z?I5%!GjT)~2PomDM9yRd(<3D4DJYYZlFrw|MrAJwV{3`;9@2PzYC^`VUfdl5&W4I^ zW9rEK{o=+O&**S`0b?!IWc&-;b+9}MED5;WC&-VbaVW`XbQYZV^w1fIfn{njxiKD$ zQ=rQD3F}lqAmRlQ;YiRwcb?VwrkC(&XF#3O!k<$!|L@%agcO3PaNkSAv`tV}gJeS) z(kse`JgFEMjIIJfI|}*ft?U6A7)?p?Ao4IK#6)dCf_TMrE%IDL5O=&VXA#%LsjzF5 zls|adAp?(*BnwZO1BicgUlWR?L-5MB{2_R4(Y$?h86XLQq+t;k9X#C0B&2eb3P;R! zV0`p2I!)0zB;q?!)p7F(a!e(N6$FT-<*V-RfvhiwHRBM)LV@_gQUTxx+5VecswyJ1 z*<+0#Qn^B7>q^nHi8f8VyeDj`K%$vfSV&p&i07;yO7CD0=oVJrEQ `DbOsV_a9nc;8v>XsN>#UQCrql=bxKfXzIH3d-a== z@zysD&A>~TKSax@s3^9A@HGnP`%VWe^P?LBkyfv|(Qh=Z0?RrF>*gW_m{ntMK7 ~`Wb#j5R~z0Z z3%** nkg*mn$f%QKB7pu&;cophWzAr$ zgbrdk`6cs`mn%{%8nCIFu~L|yPhRYb5I}lI<{ORK5JU9=;F|#Q)xv%CrRev&Hp~45 z5@Qv8|Bt5cj;pc%|G&;@@1Z>i(NrOX=v2}$N@-Y?P)SIlP@PjmGD^d27a>YAiZ((~ zQ7F<*MpNUII-TG1eSf~c$HV>4{h-dduJ?Gop6hk6n`4`rBl2Vs2^2$XO0i6)$IUzA zhG%(m)o;9)6DsMPC1%c}HhD6QR?uFS&yBm_I?@CFGE8$Ol?rBpq!dHdjfnz%Urx+g zc~lgQj0NPB3lTnmVFH@BSNyEfUOzJRn&GDgQVeby-m+OL{7R2XuQ&NVG3)=?bJ&Ch z+gCt$RUeN#zQNM?6)u-4UV9!gmytTKc#Ybei^yg;cpGkg2n(R)>}F3Y8%T<#nltNv zl)KYrTu%&e-FoZ8iJL-#r@L9SyandVOw$}ofG7>Fbseb+#3vH7Dx^|DtyA=@2sQS8 zT>FgvgJlc@mfVApHZ>Q 9LsnFZK490>M*2jTqtHo7zORDX%ofc@VQjm|> zhfz`ii8pSX*wX#iA1AH`^=!wJbv8D;FC_>4o_2r4Q5aNR;~B>AIrGN* gO7-yZ;s3RiV{Mk1dOFC>I?U zc(j%!m 93tDqOM3J{mAA^eRIU8-tyDON0-ms=dpFL z`pjp&e*GHM2Pd`Vs0|bd5i{XiH}iD9doZ@PCGfLOr_l@;l2&xT-o}L#Q7B2rOfJJZ zVXgczj iZd8eDB_R`{#i$p}IS?5%oG;%@A|Y(dU)JAjLU4fEqasS0UBhZu`rE DfV*HXUSdw6+dIQHzV) z_t@_2PulhL2me*Tdd;`nV~&NDK@hWEXU&ZxP_== mPtq kLF$HTyY8+LgRr5`aCAYSok=Bra94CBEwQ;buyKsHNDLe z>Z!qo$*oR;hIU67B6=$Z$%qmlu$ZlRj}`w1dfe9p96(gD2MWWWUpKF4PbHh57Bxjf zf&g^502j=d1_JYlVl~J6XT0z})5iOUV=EH+IW2DbLbA{dco)FzD*%cRi}WRfxlf_v z)DOYru$D913!b-Wb?pthFC}=CPVR@Y#p7p9*1Gaf@q8Y>@p$KqF +&c58V`&cqIC zw65L{aWl>~DP?7y>TJl9K||A!soM8t1u>IE8~=?Am`3JE=oG3C*Oy1aY!B*1a%h49 zQep0MDc|;Uqn<#tIxk(uqk;6(rYB5^rgU3j@D}p}{T^!s4TiyQ16i?nN8pbI3Qw z>wN(}BU)nhIK>@*ZDP0m-sBSJh$df5ZPAHAXH`*QhFN_U^T!heSv% T*9xtY)#9b`Ef!BoRX$ttThi*PN&fI@@FQ3 zZ9oZM2Im* =SsciVts)2&`A#>$SbnX7i4k5Z`k&Uh6T z@^oaa{O&8;JeP!ZvHyp(m+xLQ8;BJq0G5GApbB=;5nL>Uk>OWLBFHO*a)H<&bk;b) zX(Qp$U6l~42n}g`F^05rk9S^JHXYtvSR3}ohq<68G~wtHhLmtxy#zU~3R3yx`|3Ow zUE95G5JJSwPc*I6kTq@62GOoL1b;vSPNHLMhv!z)Ihk-~#BwIYMLnRVuV1^XtM)Km zU7aOAyRPy4{W(jWzGbqH-yE#i4F`ZJ4ih+pVWHs<== {v;fqz7B?FWO0R zCx`%Nbul@IxQEIU>PFUkyOquna#l8mlu63gBmd@1PC=fpG{Uq#hk? zoe5|a7P&FWX=5=~(>wX8qN~)_l|H)`FLm>s<0g~*gEcxW&`f&(N)`SU1EiB7R!|g+ z^COpJQ^8M|0cQotamCABux(LM;6RI!f0rP3?FEEp=aw8Q>pQg?g=*%_n>!IVV1FEQ zv4*g@T9UD_ne8(t>XoIYc1vt#NiZI~q^admZ`O8Dja0B$+drkV+GKVEa&Pq3AqnxC z?w}2@eKLQO^LU|TfL+w&hSxkeu+0HUqZ7W#y@ K(j n61)$z05tzHXwf^TiA|9YAgy`M9MMLHRIkS<;LLkX|tu(S(60gFG_z^2Cv-96} zu6;qzzqkvDS4=mGyTnnqi}lPTHR)x-%z5+&atw|8%X)D_0E*XGN77Z09ITxL)t#Zc z=`7K4xuTk|0Nzu)n7VtGmssO3B4U2I_outEh>GIb!Y722_65#W67^}F%ELHxXdy0q zC_Kr5hL;m`@6e?ySI%J62!e@Etoi3~on5QEUvZc##>><2V?6)d6#D;0-=&D%Bce!v z|7%GA)X2|GTD5rf!O&M1U>+@vLVt+C BV!xU*E@O#fZ_x}OUt{-GHQ`3_J z ;8bkGlp#u~!yp2-&BE@vfQH7RK(AMbrg`h* z&s38=ej*{4sk-)XS`x3CLL$}l>7vWywNGA~$fUj!C^MjKUR6gk`FYrBe^Nq11aL=a zwB`cwA+HD7XY(XF7#`4lH0FCr5aTrJmUIB21R=uZy((A^#1E-N?Ce `Jkd6iWR1Kkeytwzx5Zi@KM8xxm z;ex24`d0Mw?RvzaiR*J2gk%`9zNE<}9mg1wpH?E`Ag3@CCF9M~DTH&vfXHP-dYbb3 zNcqO>sbe2Fk519YY{q$}=TdrukHyjh{sr#fWt@{JBc(|BPSMS-xB2KE%Wxtiql}2h zC>B5jpuj`?n9MZOu(}wyf*c$qb5PLb?X91WaW&h HA$BKFPbXWsTcauS2$dD>l|o-^UkF-bQMT3_ov@3B`1^9|LS{Bqoj>pKYmp8 zr^LteVwqzRVGtXMZ~(l5fXJjD0~NmlI$+aP#3=T@Ts)a?hvCRkDd1x&cKL+-OPo)Q zxb7aveRPOwIAs#1M~}f$1mSQkD*n`#_yfKE?Z_oWK*Yu5dt#fVBTtz~9mk>crn=f3 za3sa{P)kco12Sx5=S`=cCNZ(p7q#0qB-msepQmABKCUdd_QA_-*;OgQ*?D<+xDkQ+ zRY2W+3JcQa7_wwYTMN0^3V@kFwa6>OHu|Lu++jr193ikUIb|-A0c(TMa>7dy3WKO; zFiFacR9*gs>Wg<_N8v6Zw|561$Sc@g@*U4uS(X#MKfx+Lic0w&{MnlCq!2^w*-6?C zpxcD+4R8gS0fy&o_ B` g$r(I2Vva#X{M?yu=keiqq)_4-7C6*x{pI>;gy%u!>(m8F&hCto6Flzh&(Ho;y>= z=2P-sw#!@!9WR$J60^(v>PM?vwU>*X{qS(y+f#t LkU#0&>w zkU}cMii(P<9qWZ~GZHXuA$mrw1#pw%COZAeC*r;5aO2Ma|9cu=Q)W+z@zS@RGSL}% zD~FGZa|H-4IX+QCoLoQt<*uU$GE8Dmaq&gq^R+VgkeOt{balE2d;tvj%TDE$f&Gas z+CR)zf7Rc$^paPp=1+-Le{(+`qJCB-$-B;@)=>c9sg@=D2Sjn0y%lJ~6u2^?bLA}c zcqxc$D`BN(^fF9Y)g&YjW)RzuWF=U~M3-HaX!^O)=54#}Zl#6pWvzA3&g(B2e|rq7 zPnoYL5Z^{pgEUODvv+DO^vk~^$({nzm z2XUNCsILJ_@{A+5b@#DVh&m-L5mvZMj+OhI2KeGIp0f=5%K&4mw7%oWfZ>_gORz5k z<8z-ph_?D!-(x7+elRt?yt2PXDCF~t6yM!nb3XaJ!iqTbWk=vnRDt%cV5kwhrv&{P z2^ztL)(JQ #MBYfjl$aN$9ckLQ(NT> z+ kjiQP@-P&+D(-IS^sm_QIbyxf(5V+q=*X~IJlD1Al9eU4%6?!`wVT>X+Rzw z=rAnN2~^F~1wDus{xnh9lAaOV(53izbxv|hN;Ghi*%}&_-aTHQI5z7hAF8wB!xqHR zcx2DQwQmkWWyTC7x}AqRDiwt&)VfdOongm$;@cEX!fIG2w8tYv4qP&2@)%1)pS`=C zNqc(FeV2F8POd=CJ_-%N)8^c*SKU%-9mGd;sYS9eV*I>sbWVtuZKxB(x2h07b}3nO zv)*l?(1%NnwuJnFiKr5s)m%>N?nOI6jYA)|_J6X|aNNq!&^kxGk%!qHlXysFXM|A| zq}0NPBQ<&{clx<*rO^e1IuV}zXJg*n6-Rp`k;;;ae=zgQ@}!M~&%^AE2pl_nBbz`} zhy-n#3NRm37F2(9dbE2#B7kBY`oTY+!hf4R&y~U=oQK*0)0t(U(11%`6l#h*@Z<0-p1Vo?*?Wn!pE#nt?9JHQ(^(z)TF+9`%S2ZW&t z;ey4{9MQi+81L`+K(XwpTtpihk79 5acAD8$%gdtJMVuj z<1Gzin7& M#!Z}zTea2I>ND}x$BIPR@F9~ r zDF1{Lhr}=8b4t+LBHkL!NY)Ph++=I`WmelhdayVX5rk$bP__TsJ&*trVUh+ ~r87wZp?9YZy3e!N#!Rz3%H{#+=dP^1?eAH6H1 z#v7BXf#G4%;GXv8UBb1uch^c0IlKn!WkLmxp+O? ZB^Z3=q&vu|Jw3#;#Vh8Mc_>jCc^Ibgw zD^^8@^KTDpK9}P4$E$DJKJHiXwWoq|Gg#Ms%$L#dbBsVtYOUM%{n_L56fU7(?>{qQ zOslQvlxy&iMbl;zEKVXmz_5ii5FOz~ 0Nsad<)fiI @u_9T-y18IBJ>JC3#wcavm?iFJI{V+=Rc+dO 6Zrj`{ z#3Jo~nsG!-G{33WlyXs|m31mzP`h+CD4A1qVU%V!m%iFGRfwvUXF31Ur6#EKN1pFy z^dlVOa?-5T!7dM#6$KC6ZsPo^0aU35H4*eNC{z`e_{6{akOd^f1#|i+_H}Bvqrs&z zK4U&@WjEHUTjdTPbfhTPXL9O2rcps0hN*rv+edJX-8?pn?B5(RFcJp$?pcU2&Gx;jNVIppc#^HMrqCpmNF#Wp> zZl1k+QiQScz9L!yYaeI&Wr|#2D6|&2fnyR_b(Fd2pb@~G8g6aNk<*r&a{5j@@v0Y6 z%{&{Bsgf?J6lEy8hR@8AVH)Ev^KBD@&tlVYDM`urIckw=HnK5w@hr(_EZRq_fmPp1 zW=*~~=uUcK{l+t&edPU;{DF<%t|c9-;>bK#g|e&1a8giE&^?GtoUWdpHe1{5T`8@0 z+uB#@e y$dSXan~o{-W9-=)g`zsY2z7S&O4E 5+h*8dcMOB#Dl<_R_iJ4x^Zf&>!}uw^fWKvs1(Z9jKRWlpl|_48TrZ@b;a^ z!1SmjAqJ4O%w5nI%1nc9=a?+ZhHkGU#l2~^NoHy)@nSkG^k^cd-JfJ>3X>iWx}TkS zE?`g96%EyY@Y&57pNJWz$E;qrWy&?X^<30xrIM73XVOv}X3d&~{)Hki8_7!noVIvU zSX{gkKP(dBIvzhcwzaLTyyNF?BW5i9{nOrk4Y$ij1b4pRlVB*Z=>HzRS iJ<=?>c&LlJjwkv$x z=3J}p=HcwVq33-=D+h d!Q6c-i?NW2*1y%BiU-g?7xU z@&M-&J$DK)$yul_(8wv{+``z{PC;g#SKNr`rJ{W!FPUs)%{dL~%F4@&EaH< be&uBDw_ZN&p}!z^ke!}BTeerjspd-SyR3o&1yVi27W4j2^@ma>lR!~O z``B}RVo+z&TI+pgkW!vkB(gGI<3Q$%2$xZt`H}zr)k`8ROQ-s*Q`YeXW>PPMVsH2a zW~xipy`m)as}yf`bDH{0IUG(Nnrnp%YfrPi1SBuH&i4;vWnNKZUgJNTbtOtna+|Gh zifho2TI$PgeNWDxfED8t6Q&u5oLWzSGnG $9b!g_)xr{22LEv4f1qD|Ze}*;X>u4 zfS(ajzbtt^nx5D$Jdpdr+Yk63Ip`DjBfia% =dH?$;y8Ju~yTAoTC<9*2>vfwZBDV=Z0Vr!#vt z_b-o%jBK0I%lHrpO@m12a}i+{A7fGcmSK+~lea4=t7^+DZQ{bzEPHu|qYCT2=L{KM zkEbCw33zm6W5c &C&ppi7@?9Qu z*Y$1djwuy|V+V&zm!vEhv<@ys794;#lD2ix^z-9=&O}e4y7K5Lz KADqeBiLXDP^K%nSEKx+6+?$g9=!oijMFD09%3sCvpIhizA&t zfT&h*u@Pk?{cwU{Xx?#E^^z2>%24Y>@HL7;N_e8noQTMi1s3`mgA;$QtknL>qgHt` z@ F=KMai)W&g zLRjlA83E}98uP{z{HCXRw3aX5(xy0Hi&Ae&qaM-i -`eprlkaXm8lawAY_$y!}19_36P`2s){4Ito}c2$NMP)>-xWh11>Pk>2rV z7*2O(g4$o5Jf#zCvT9;{+~ECFsO`egRrr1ViGW0sZBGP&6sE|Cf$IRHN9Wt|?ys|Q zujTQa@qy!bN%$Jp50cLbGYmr}WY$lOGF&cSzoI1DO^Z1k63MaCVV$!JgCfjS$FkTp z8U ZG?gV-(osbXK{3Lt_^~-lDoYtXpJuuUiIwRo{&{us Hm&p^cCC$p?po5Tq4o4_0T#VJ*4uZr9yS zRs&@8`}280je<2zjW1fKY(ad>KMgH`9J`-Ub|1D-HU*N?;}%9Mb+q{3@(_-NS3ux! zWsxgOK*aeN7YwN^;Po!w$ts;(_uj@liiIv?{_V(@!{@YUtfw8x@{R&NCpnFmNza09 zX{aPdrVgOAPjpzEGFC~(x>774nJ|_Z1e;j5#RYLc@=jhVW4;y;5FlX;;iKETxW85` z*`qa8E!*EuYl~jq*84ECY8f8H9zec+m5;VA0IFM~I9y3HHqvb8H0i72O!daXs;neD zKw=-c!BIQY>@E-JznbK6O&f^lG1qIfefRt6x4uC(+w1zo|1p0QY&cgrOMDw8K~z^@ z;S;JC>M-2V;;LEduif 2QZ8L8_dU4u2Dy1r9a*=y>2 bNE*l88Rj+99x(uvJgro %g!|YY0|i0{kwRfbk~m;R9HcV>{>I&? zx<1fzl6xQ*-cTYfb{PPEe3yOUp%9gswt2SZV~@6tIOB47A6!wT?Az`Y-cx|u(GsQ( zuk-1e2e-5d2x7%!eryMj`flG=hzjo^q>+`M8tGDEvbX8K50-j*pl8|e(D3lCs9Ttr zBn^#VM|^V*aH~)*Cy