diff --git a/misc/plan.drawio b/misc/plan.drawio
index e40a267..c1c0efe 100644
--- a/misc/plan.drawio
+++ b/misc/plan.drawio
@@ -1 +1,678 @@
-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
\ No newline at end of file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/misc/plan.png b/misc/plan.png
index e616ec0..cb09aa9 100644
Binary files a/misc/plan.png and b/misc/plan.png differ