From f7fd4821993cc9fad0af6def285e234eaca189ed Mon Sep 17 00:00:00 2001
From: BlackPhlox <theluja@gmail.com>
Date: Thu, 2 Jun 2022 15:54:01 +0200
Subject: [PATCH 01/63] Init bevy 0.8 update

---
 Cargo.lock         | 695 ++++++++++++++++++++++++++++++---------------
 Cargo.toml         |  10 +-
 README.md          |   5 +-
 examples/switch.rs |   4 +-
 src/lib.rs         |  22 +-
 5 files changed, 493 insertions(+), 243 deletions(-)

diff --git a/Cargo.lock b/Cargo.lock
index f84bead..179b189 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2,6 +2,22 @@
 # It is not intended for manual editing.
 version = 3
 
+[[package]]
+name = "ab_glyph"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24606928a235e73cdef55a0c909719cadd72fce573e5713d58cb2952d8f5794c"
+dependencies = [
+ "ab_glyph_rasterizer",
+ "owned_ttf_parser",
+]
+
+[[package]]
+name = "ab_glyph_rasterizer"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a13739d7177fbd22bb0ed28badfff9f372f8bef46c863db4e1c6248f6b223b6e"
+
 [[package]]
 name = "ahash"
 version = "0.7.6"
@@ -51,9 +67,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.56"
+version = "1.0.57"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27"
+checksum = "08f9b8508dccb7687a1d6c4ce66b2b0ecef467c94667de27d8d7fe1f8d2a9cdc"
 
 [[package]]
 name = "approx"
@@ -124,34 +140,19 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
 
 [[package]]
 name = "bevy"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fce306d40a111309ee61d4626efbafccdd46bb80657122c38061fa7264c08e4"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_internal",
 ]
 
-[[package]]
-name = "bevy-crevice-derive"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "191a752a01c3402deb24320acf42288bf822e5d22f19ae1d903797f02e9b0c33"
-dependencies = [
- "bevy_macro_utils",
- "proc-macro2",
- "quote",
- "syn",
-]
-
 [[package]]
 name = "bevy_app"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32660ae99fa3498ca379de28b7e2f447e6531b0e432bf200901efeec075553c1"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_derive",
  "bevy_ecs",
  "bevy_reflect",
+ "bevy_tasks",
  "bevy_utils",
  "wasm-bindgen",
  "web-sys",
@@ -159,9 +160,7 @@ dependencies = [
 
 [[package]]
 name = "bevy_asset"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2afd395240087924ba49c8cae2b00d007aeb1db53ee726a543b1e90dce2d3ab"
+version = "0.8.0-dev"
 dependencies = [
  "anyhow",
  "bevy_app",
@@ -174,7 +173,7 @@ dependencies = [
  "crossbeam-channel",
  "downcast-rs",
  "js-sys",
- "ndk-glue",
+ "ndk-glue 0.6.2",
  "parking_lot",
  "rand",
  "serde",
@@ -186,9 +185,10 @@ dependencies = [
 
 [[package]]
 name = "bevy_config_cam"
-version = "0.3.0"
+version = "0.4.0"
 dependencies = [
  "bevy",
+ "bevy_dolly",
  "rand",
  "strum",
  "strum_macros",
@@ -196,12 +196,9 @@ dependencies = [
 
 [[package]]
 name = "bevy_core"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12c0f8614b6014671ab60bacb8bf681373d08b0bb15633b8ef72b895cf966d29"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_app",
- "bevy_derive",
  "bevy_ecs",
  "bevy_math",
  "bevy_reflect",
@@ -212,35 +209,22 @@ dependencies = [
 
 [[package]]
 name = "bevy_core_pipeline"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74d570bc9310196190910a5b1ffd8c8c35bd6b73f918d0651ae3c3d4e57be9a7"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_app",
  "bevy_asset",
- "bevy_core",
+ "bevy_derive",
  "bevy_ecs",
+ "bevy_reflect",
  "bevy_render",
+ "bevy_transform",
  "bevy_utils",
-]
-
-[[package]]
-name = "bevy_crevice"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3da0a284fb26c02cb96ef4d5bbf4de5fad7e1a901730035a61813bf64e28482e"
-dependencies = [
- "bevy-crevice-derive",
- "bytemuck",
- "glam",
- "mint",
+ "serde",
 ]
 
 [[package]]
 name = "bevy_derive"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6abddf2ed415f31d28a9bf9ab3c0bc857e98a722858d38dba65bdda481f8d714"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_macro_utils",
  "quote",
@@ -249,25 +233,30 @@ dependencies = [
 
 [[package]]
 name = "bevy_diagnostic"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ebf72ea058cfc379756e9da7de6861174e1860504f41e3e5a46d5b1c35d6644"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_app",
- "bevy_core",
  "bevy_ecs",
  "bevy_log",
+ "bevy_time",
  "bevy_utils",
 ]
 
+[[package]]
+name = "bevy_dolly"
+version = "0.0.1"
+dependencies = [
+ "bevy",
+ "dolly",
+]
+
 [[package]]
 name = "bevy_ecs"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79e67dd06b14e787d2026fe6e2b63f67482afcc62284f20ea2784d8b0662e95f"
+version = "0.8.0-dev"
 dependencies = [
  "async-channel",
  "bevy_ecs_macros",
+ "bevy_ptr",
  "bevy_reflect",
  "bevy_tasks",
  "bevy_utils",
@@ -275,14 +264,11 @@ dependencies = [
  "fixedbitset",
  "fxhash",
  "serde",
- "thiserror",
 ]
 
 [[package]]
 name = "bevy_ecs_macros"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "718923a491490bd81074492d61fc08134f9c62a29ba8666818cd7a6630421246"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_macro_utils",
  "proc-macro2",
@@ -290,17 +276,24 @@ dependencies = [
  "syn",
 ]
 
+[[package]]
+name = "bevy_encase_derive"
+version = "0.8.0-dev"
+dependencies = [
+ "bevy_macro_utils",
+ "encase_derive_impl",
+]
+
 [[package]]
 name = "bevy_gltf"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e07bda7721091c1a683343d466132dc69dec65aa83d8c9e328a2fb3431f03be"
+version = "0.8.0-dev"
 dependencies = [
  "anyhow",
  "base64",
  "bevy_app",
  "bevy_asset",
  "bevy_core",
+ "bevy_core_pipeline",
  "bevy_ecs",
  "bevy_hierarchy",
  "bevy_log",
@@ -318,9 +311,7 @@ dependencies = [
 
 [[package]]
 name = "bevy_hierarchy"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f407f152f35541a099484200afe3b0ca09ce625469e8233dcdc264d6f88e01a"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_app",
  "bevy_ecs",
@@ -331,9 +322,7 @@ dependencies = [
 
 [[package]]
 name = "bevy_input"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff4ec4f6e38ef1b41ff68ec7badd6afc5c9699191e61e511c4abee91a5888afc"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_app",
  "bevy_ecs",
@@ -343,9 +332,7 @@ dependencies = [
 
 [[package]]
 name = "bevy_internal"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d518a8e5f526a9537fc8408a284caec7af22b23c3b23c0dee08bacc0930e2f1a"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_app",
  "bevy_asset",
@@ -360,22 +347,25 @@ dependencies = [
  "bevy_log",
  "bevy_math",
  "bevy_pbr",
+ "bevy_ptr",
  "bevy_reflect",
  "bevy_render",
  "bevy_scene",
+ "bevy_sprite",
  "bevy_tasks",
+ "bevy_text",
+ "bevy_time",
  "bevy_transform",
+ "bevy_ui",
  "bevy_utils",
  "bevy_window",
  "bevy_winit",
- "ndk-glue",
+ "ndk-glue 0.6.2",
 ]
 
 [[package]]
 name = "bevy_log"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "943ec496720ded2ff62b292d8e5fc845817a504915f41b7c5fd12b1380300f75"
+version = "0.8.0-dev"
 dependencies = [
  "android_log-sys",
  "bevy_app",
@@ -388,34 +378,33 @@ dependencies = [
 
 [[package]]
 name = "bevy_macro_utils"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7ddfc33a99547e36718e56e414541e461c74ec318ff987a1e9f4ff46d0dacbb"
+version = "0.8.0-dev"
 dependencies = [
- "cargo-manifest",
  "quote",
  "syn",
+ "toml",
 ]
 
 [[package]]
 name = "bevy_math"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20288df0f70ff258bbaffaf55209f1271a7436438591bbffc3d81e4d84b423f2"
+version = "0.8.0-dev"
+dependencies = [
+ "glam",
+]
+
+[[package]]
+name = "bevy_mikktspace"
+version = "0.8.0-dev"
 dependencies = [
- "bevy_reflect",
  "glam",
 ]
 
 [[package]]
 name = "bevy_pbr"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06adee54840f18cfeda7af4cdc57608644fa840be076a562353f896bfdb9c694"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_app",
  "bevy_asset",
- "bevy_core",
  "bevy_core_pipeline",
  "bevy_ecs",
  "bevy_math",
@@ -428,11 +417,13 @@ dependencies = [
  "bytemuck",
 ]
 
+[[package]]
+name = "bevy_ptr"
+version = "0.8.0-dev"
+
 [[package]]
 name = "bevy_reflect"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d0793107bc4b7c6bd04232d739fc8d70aa5fb313bfad6e850f91f79b2557eed"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_reflect_derive",
  "bevy_utils",
@@ -447,9 +438,7 @@ dependencies = [
 
 [[package]]
 name = "bevy_reflect_derive"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81c88de8067d19dfde31662ee78e3ee6971e2df27715799f91b515b37a636677"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_macro_utils",
  "proc-macro2",
@@ -460,19 +449,19 @@ dependencies = [
 
 [[package]]
 name = "bevy_render"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a358da8255b704153913c3499b3693fa5cfe13a48725ac6e76b043fa5633bc8"
+version = "0.8.0-dev"
 dependencies = [
  "anyhow",
  "bevy_app",
  "bevy_asset",
  "bevy_core",
- "bevy_crevice",
  "bevy_derive",
  "bevy_ecs",
+ "bevy_encase_derive",
  "bevy_math",
+ "bevy_mikktspace",
  "bevy_reflect",
+ "bevy_render_macros",
  "bevy_transform",
  "bevy_utils",
  "bevy_window",
@@ -480,6 +469,7 @@ dependencies = [
  "codespan-reporting",
  "copyless",
  "downcast-rs",
+ "encase",
  "futures-lite",
  "hex",
  "hexasphere",
@@ -494,11 +484,19 @@ dependencies = [
  "wgpu",
 ]
 
+[[package]]
+name = "bevy_render_macros"
+version = "0.8.0-dev"
+dependencies = [
+ "bevy_macro_utils",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
 [[package]]
 name = "bevy_scene"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ea240f2ffce9f58a5601cc5ead24111f577dc4c656452839eb1fdf4b7a28529"
+version = "0.8.0-dev"
 dependencies = [
  "anyhow",
  "bevy_app",
@@ -513,11 +511,32 @@ dependencies = [
  "uuid",
 ]
 
+[[package]]
+name = "bevy_sprite"
+version = "0.8.0-dev"
+dependencies = [
+ "bevy_app",
+ "bevy_asset",
+ "bevy_core_pipeline",
+ "bevy_ecs",
+ "bevy_log",
+ "bevy_math",
+ "bevy_reflect",
+ "bevy_render",
+ "bevy_transform",
+ "bevy_utils",
+ "bitflags",
+ "bytemuck",
+ "copyless",
+ "guillotiere",
+ "rectangle-pack",
+ "serde",
+ "thiserror",
+]
+
 [[package]]
 name = "bevy_tasks"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db2b0f0b86c8f78c53a2d4c669522f45e725ed9d9c3d734f54ec30876494e04e"
+version = "0.8.0-dev"
 dependencies = [
  "async-channel",
  "async-executor",
@@ -527,11 +546,40 @@ dependencies = [
  "wasm-bindgen-futures",
 ]
 
+[[package]]
+name = "bevy_text"
+version = "0.8.0-dev"
+dependencies = [
+ "ab_glyph",
+ "anyhow",
+ "bevy_app",
+ "bevy_asset",
+ "bevy_ecs",
+ "bevy_math",
+ "bevy_reflect",
+ "bevy_render",
+ "bevy_sprite",
+ "bevy_transform",
+ "bevy_utils",
+ "bevy_window",
+ "glyph_brush_layout",
+ "serde",
+ "thiserror",
+]
+
+[[package]]
+name = "bevy_time"
+version = "0.8.0-dev"
+dependencies = [
+ "bevy_app",
+ "bevy_ecs",
+ "bevy_reflect",
+ "bevy_utils",
+]
+
 [[package]]
 name = "bevy_transform"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa2f7a77900fb23f24ca312c1f8df3eb47a45161326f41e9b4ef05b039793503"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_app",
  "bevy_ecs",
@@ -540,14 +588,37 @@ dependencies = [
  "bevy_reflect",
 ]
 
+[[package]]
+name = "bevy_ui"
+version = "0.8.0-dev"
+dependencies = [
+ "bevy_app",
+ "bevy_asset",
+ "bevy_core_pipeline",
+ "bevy_derive",
+ "bevy_ecs",
+ "bevy_hierarchy",
+ "bevy_input",
+ "bevy_log",
+ "bevy_math",
+ "bevy_reflect",
+ "bevy_render",
+ "bevy_sprite",
+ "bevy_text",
+ "bevy_transform",
+ "bevy_utils",
+ "bevy_window",
+ "bytemuck",
+ "serde",
+ "smallvec",
+ "stretch",
+]
+
 [[package]]
 name = "bevy_utils"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f354c584812996febd48cc885f36b23004b49d6680e73fc95a69a2bb17a48e5"
+version = "0.8.0-dev"
 dependencies = [
  "ahash",
- "bevy_derive",
  "getrandom",
  "hashbrown",
  "instant",
@@ -557,12 +628,11 @@ dependencies = [
 
 [[package]]
 name = "bevy_window"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04fe33d177e10b2984fa90c1d19496fc6f6e7b36d4442699d359e2b4b507873d"
+version = "0.8.0-dev"
 dependencies = [
  "bevy_app",
  "bevy_ecs",
+ "bevy_input",
  "bevy_math",
  "bevy_utils",
  "raw-window-handle",
@@ -571,9 +641,7 @@ dependencies = [
 
 [[package]]
 name = "bevy_winit"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7c0e3b94cc73907f8a9f82945ca006a39ed2ab401aca0974b47a007a468509f"
+version = "0.8.0-dev"
 dependencies = [
  "approx",
  "bevy_app",
@@ -582,6 +650,7 @@ dependencies = [
  "bevy_math",
  "bevy_utils",
  "bevy_window",
+ "crossbeam-channel",
  "raw-window-handle",
  "wasm-bindgen",
  "web-sys",
@@ -617,9 +686,9 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
 
 [[package]]
 name = "bumpalo"
-version = "3.9.1"
+version = "3.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899"
+checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3"
 
 [[package]]
 name = "bytemuck"
@@ -663,17 +732,6 @@ dependencies = [
  "nix",
 ]
 
-[[package]]
-name = "cargo-manifest"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af6d65c7592744998c67947ec771c62687c76f00179a83ffd563c0482046bb98"
-dependencies = [
- "serde",
- "serde_derive",
- "toml",
-]
-
 [[package]]
 name = "cc"
 version = "1.0.73"
@@ -764,6 +822,12 @@ dependencies = [
  "wasm-bindgen",
 ]
 
+[[package]]
+name = "const_panic"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b81387ce99333fe045d8256d2f4cf8ed8fdc7342f0b5fe74fbb3cc70cd91ad53"
+
 [[package]]
 name = "copyless"
 version = "0.1.5"
@@ -939,12 +1003,53 @@ dependencies = [
  "libloading",
 ]
 
+[[package]]
+name = "dolly"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "72ca62af80028e899eae554918f89106ae480104b1de01965b454601e1ad87de"
+dependencies = [
+ "glam",
+]
+
 [[package]]
 name = "downcast-rs"
 version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
+[[package]]
+name = "encase"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3f33a42bdd49d6bd63cc10778a55d3f702254c68017a634be723063dc9bad270"
+dependencies = [
+ "const_panic",
+ "encase_derive",
+ "glam",
+ "thiserror",
+]
+
+[[package]]
+name = "encase_derive"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d46ef76e6a127b37791f8e48575fc6db50f030ee811ed19c1e381cf819ec1c57"
+dependencies = [
+ "encase_derive_impl",
+]
+
+[[package]]
+name = "encase_derive_impl"
+version = "0.2.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "36232cf81f78d216f9ae0865e8f8ac562fb6a5dc8d2e3e98c00ccec0b7c6473f"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
 [[package]]
 name = "env_logger"
 version = "0.8.4"
@@ -964,6 +1069,15 @@ dependencies = [
  "serde",
 ]
 
+[[package]]
+name = "euclid"
+version = "0.22.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b52c2ef4a78da0ba68fbe1fd920627411096d2ac478f7f4c9f3a54ba6705bade"
+dependencies = [
+ "num-traits",
+]
+
 [[package]]
 name = "event-listener"
 version = "2.5.2"
@@ -1062,7 +1176,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "f43e957e744be03f5801a55472f593d43fabdebf25a4585db250f04d86b1675f"
 dependencies = [
  "bytemuck",
- "mint",
+ "num-traits",
  "serde",
 ]
 
@@ -1113,6 +1227,17 @@ dependencies = [
  "serde_json",
 ]
 
+[[package]]
+name = "glyph_brush_layout"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc32c2334f00ca5ac3695c5009ae35da21da8c62d255b5b96d56e2597a637a38"
+dependencies = [
+ "ab_glyph",
+ "approx",
+ "xi-unicode",
+]
+
 [[package]]
 name = "gpu-alloc"
 version = "0.5.3"
@@ -1152,6 +1277,16 @@ dependencies = [
  "bitflags",
 ]
 
+[[package]]
+name = "guillotiere"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782"
+dependencies = [
+ "euclid",
+ "svg_fmt",
+]
+
 [[package]]
 name = "hashbrown"
 version = "0.11.2"
@@ -1207,9 +1342,9 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
 name = "image"
-version = "0.23.14"
+version = "0.24.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1"
+checksum = "28edd9d7bc256be2502e325ac0628bde30b7001b9b52e0abe31a1a9dc2701212"
 dependencies = [
  "bytemuck",
  "byteorder",
@@ -1221,9 +1356,9 @@ dependencies = [
 
 [[package]]
 name = "indexmap"
-version = "1.8.1"
+version = "1.8.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee"
+checksum = "e6012d540c5baa3589337a98ce73408de9b5a25ec9fc2c6fd6be8f0d39e0ca5a"
 dependencies = [
  "autocfg",
  "hashbrown",
@@ -1255,9 +1390,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
+checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
 
 [[package]]
 name = "jni-sys"
@@ -1292,9 +1427,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.124"
+version = "0.2.126"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21a41fed9d98f27ab1c6d161da622a4fa35e8a54a8adc24bbf3ddd0ef70b0e50"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
 
 [[package]]
 name = "libloading"
@@ -1306,6 +1441,12 @@ dependencies = [
  "winapi",
 ]
 
+[[package]]
+name = "libm"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7fc7aa29613bd6a620df431842069224d8bc9011086b1db4c0e0cd47fa03ec9a"
+
 [[package]]
 name = "lock_api"
 version = "0.4.7"
@@ -1318,9 +1459,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.16"
+version = "0.4.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
 dependencies = [
  "cfg-if 1.0.0",
 ]
@@ -1345,9 +1486,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
 
 [[package]]
 name = "memmap2"
@@ -1387,33 +1528,16 @@ version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
-[[package]]
-name = "mint"
-version = "0.5.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff"
-
 [[package]]
 name = "mio"
-version = "0.8.2"
+version = "0.8.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9"
+checksum = "713d550d9b44d89174e066b7a6217ae06234c10cb47819a88290d2b353c31799"
 dependencies = [
  "libc",
  "log",
- "miow",
- "ntapi",
  "wasi 0.11.0+wasi-snapshot-preview1",
- "winapi",
-]
-
-[[package]]
-name = "miow"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
-dependencies = [
- "winapi",
+ "windows-sys",
 ]
 
 [[package]]
@@ -1444,7 +1568,20 @@ checksum = "96d868f654c72e75f8687572699cdabe755f03effbb62542768e995d5b8d699d"
 dependencies = [
  "bitflags",
  "jni-sys",
- "ndk-sys",
+ "ndk-sys 0.2.2",
+ "num_enum",
+ "thiserror",
+]
+
+[[package]]
+name = "ndk"
+version = "0.6.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "2032c77e030ddee34a6787a64166008da93f6a352b629261d0fee232b8742dd4"
+dependencies = [
+ "bitflags",
+ "jni-sys",
+ "ndk-sys 0.3.0",
  "num_enum",
  "thiserror",
 ]
@@ -1460,15 +1597,30 @@ name = "ndk-glue"
 version = "0.5.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "c71bee8ea72d685477e28bd004cfe1bf99c754d688cd78cad139eae4089484d4"
+dependencies = [
+ "lazy_static",
+ "libc",
+ "log",
+ "ndk 0.5.0",
+ "ndk-context",
+ "ndk-macro",
+ "ndk-sys 0.2.2",
+]
+
+[[package]]
+name = "ndk-glue"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0d0c4a7b83860226e6b4183edac21851f05d5a51756e97a1144b7f5a6b63e65f"
 dependencies = [
  "android_logger",
  "lazy_static",
  "libc",
  "log",
- "ndk",
+ "ndk 0.6.0",
  "ndk-context",
  "ndk-macro",
- "ndk-sys",
+ "ndk-sys 0.3.0",
 ]
 
 [[package]]
@@ -1490,6 +1642,15 @@ version = "0.2.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121"
 
+[[package]]
+name = "ndk-sys"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "6e5a6ae77c8ee183dcbbba6150e2e6b9f3f4196a7666c02a715a95692ec1fa97"
+dependencies = [
+ "jni-sys",
+]
+
 [[package]]
 name = "nix"
 version = "0.22.3"
@@ -1513,20 +1674,11 @@ dependencies = [
  "minimal-lexical",
 ]
 
-[[package]]
-name = "ntapi"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"
-dependencies = [
- "winapi",
-]
-
 [[package]]
 name = "num-integer"
-version = "0.1.44"
+version = "0.1.45"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
 dependencies = [
  "autocfg",
  "num-traits",
@@ -1534,9 +1686,9 @@ dependencies = [
 
 [[package]]
 name = "num-iter"
-version = "0.1.42"
+version = "0.1.43"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
+checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -1545,9 +1697,9 @@ dependencies = [
 
 [[package]]
 name = "num-rational"
-version = "0.3.2"
+version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
+checksum = "d41702bd167c2df5520b384281bc111a4b5efcf7fbc4c9c222c815b07e0a6a6a"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -1556,9 +1708,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.14"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
 dependencies = [
  "autocfg",
 ]
@@ -1615,9 +1767,18 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.10.0"
+version = "1.12.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7709cef83f0c1f58f666e746a08b21e0085f7440fa6a29cc194d68aac97a4225"
+
+[[package]]
+name = "owned_ttf_parser"
+version = "0.15.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
+checksum = "4fb1e509cfe7a12db2a90bfa057dfcdbc55a347f5da677c506b53dd099cfec9d"
+dependencies = [
+ "ttf-parser",
+]
 
 [[package]]
 name = "parking"
@@ -1658,9 +1819,9 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
 
 [[package]]
 name = "petgraph"
-version = "0.6.0"
+version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a13a2fa9d0b63e5f22328828741e523766fff0ee9e779316902290dff3f824f"
+checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143"
 dependencies = [
  "fixedbitset",
  "indexmap",
@@ -1668,9 +1829,9 @@ dependencies = [
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.8"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
 
 [[package]]
 name = "pkg-config"
@@ -1705,18 +1866,18 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.37"
+version = "1.0.39"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1"
+checksum = "c54b25569025b7fc9651de43004ae593a75ad88543b17178aa5e1b9c4f15f56f"
 dependencies = [
- "unicode-xid",
+ "unicode-ident",
 ]
 
 [[package]]
 name = "profiling"
-version = "1.0.5"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9145ac0af1d93c638c98c40cf7d25665f427b2a44ad0a99b1dccf3e2f25bb987"
+checksum = "2f61dcf0b917cd75d4521d7343d1ffff3d1583054133c9b5cbea3375c703c40d"
 
 [[package]]
 name = "quote"
@@ -1772,6 +1933,12 @@ dependencies = [
  "cty",
 ]
 
+[[package]]
+name = "rectangle-pack"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb"
+
 [[package]]
 name = "redox_syscall"
 version = "0.2.13"
@@ -1783,9 +1950,9 @@ dependencies = [
 
 [[package]]
 name = "regex"
-version = "1.5.5"
+version = "1.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286"
+checksum = "d83f127d94bdbcda4c8cc2e50f6f84f4b611f69c902699ca385a39c3a75f9ff1"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1803,9 +1970,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.25"
+version = "0.6.26"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+checksum = "49b3de9ec5dc0a3417da371aab17d729997c15010e7fd24ff707773a33bddb64"
 
 [[package]]
 name = "renderdoc-sys"
@@ -1838,9 +2005,9 @@ checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f"
 
 [[package]]
 name = "ryu"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
+checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
 
 [[package]]
 name = "scoped-tls"
@@ -1856,18 +2023,18 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
 
 [[package]]
 name = "serde"
-version = "1.0.136"
+version = "1.0.137"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
+checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.136"
+version = "1.0.137"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
+checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1876,9 +2043,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.79"
+version = "1.0.81"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95"
+checksum = "9b7ce2b32a1aed03c558dc61a5cd328f15aff2dbc17daad8fb8af04d2100e15c"
 dependencies = [
  "itoa",
  "ryu",
@@ -1947,6 +2114,16 @@ dependencies = [
  "num-traits",
 ]
 
+[[package]]
+name = "stretch"
+version = "0.3.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b0dc6d20ce137f302edf90f9cd3d278866fd7fb139efca6f246161222ad6d87"
+dependencies = [
+ "lazy_static",
+ "libm",
+]
+
 [[package]]
 name = "strsim"
 version = "0.10.0"
@@ -1972,15 +2149,21 @@ dependencies = [
  "syn",
 ]
 
+[[package]]
+name = "svg_fmt"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2"
+
 [[package]]
 name = "syn"
-version = "1.0.91"
+version = "1.0.95"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d"
+checksum = "fbaf6116ab8924f39d52792136fb74fd60a80194cf1b1c6ffa6453eef1c3f942"
 dependencies = [
  "proc-macro2",
  "quote",
- "unicode-xid",
+ "unicode-ident",
 ]
 
 [[package]]
@@ -1994,18 +2177,18 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.30"
+version = "1.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
+checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.30"
+version = "1.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
+checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2027,7 +2210,6 @@ version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
 dependencies = [
- "indexmap",
  "serde",
 ]
 
@@ -2045,9 +2227,9 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.20"
+version = "0.1.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b"
+checksum = "cc6b8ad3567499f98a1db7a752b07a7c8c7c7c34c332ec00effb2b0027974b7c"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2066,9 +2248,9 @@ dependencies = [
 
 [[package]]
 name = "tracing-log"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3"
+checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
 dependencies = [
  "lazy_static",
  "log",
@@ -2104,6 +2286,18 @@ dependencies = [
  "wasm-bindgen",
 ]
 
+[[package]]
+name = "ttf-parser"
+version = "0.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c74c96594835e10fa545e2a51e8709f30b173a092bfd6036ef2cec53376244f3"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d22af068fba1eb5edcb4aea19d382b2a3deb4c8f9d475c589b6ada9e0fd493ee"
+
 [[package]]
 name = "unicode-width"
 version = "0.1.9"
@@ -2112,15 +2306,15 @@ checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
 
 [[package]]
 name = "unicode-xid"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04"
 
 [[package]]
 name = "uuid"
-version = "0.8.2"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+checksum = "c6d5d669b51467dcf7b2f1a796ce0f955f05f01cafda6c19d6e95f730df29238"
 dependencies = [
  "getrandom",
  "serde",
@@ -2350,9 +2544,9 @@ dependencies = [
 
 [[package]]
 name = "wgpu-hal"
-version = "0.12.4"
+version = "0.12.5"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93b1a9400e8d7f32dd4dd909bb9a391015d70633d639775ddd3f14d1104bc970"
+checksum = "d684ea6a34974a2fc19f1dfd183d11a62e22d75c4f187a574bb1224df8e056c2"
 dependencies = [
  "arrayvec",
  "ash",
@@ -2426,6 +2620,49 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
+[[package]]
+name = "windows-sys"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+dependencies = [
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
+
 [[package]]
 name = "winit"
 version = "0.26.1"
@@ -2443,9 +2680,9 @@ dependencies = [
  "libc",
  "log",
  "mio",
- "ndk",
- "ndk-glue",
- "ndk-sys",
+ "ndk 0.5.0",
+ "ndk-glue 0.5.2",
+ "ndk-sys 0.2.2",
  "objc",
  "parking_lot",
  "percent-encoding",
@@ -2479,6 +2716,12 @@ dependencies = [
  "nom",
 ]
 
+[[package]]
+name = "xi-unicode"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a"
+
 [[package]]
 name = "xml-rs"
 version = "0.8.4"
diff --git a/Cargo.toml b/Cargo.toml
index b864604..532787b 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "bevy_config_cam"
-version = "0.3.0"
+version = "0.4.0"
 authors = ["Black Phlox <bphlox@gmail.com>"]
 license = "MIT OR Apache-2.0"
 edition = "2021"
@@ -14,7 +14,6 @@ exclude = [
     "assets/*",
     ".github/*",
 ]
-resolver = "2"
 
 # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
 
@@ -25,13 +24,16 @@ name = "bevy_config_cam"
 rand = "0.8.0"
 strum = "0.24.0"
 strum_macros = "0.24.0"
+bevy_dolly = { path = "../bevy_dolly" }
 
 [dependencies.bevy]
-version = "0.7"
+#version = "0.7"
+path = "../bevy"
 features = ["bevy_render","bevy_pbr"]
 default-features = false
 
 [dev-dependencies.bevy]
-version = "0.7"
+#version = "0.7"
+path = "../bevy"
 features = ["bevy_core_pipeline", "bevy_pbr", "bevy_gltf", "x11", "wayland"]
 default-features = false
\ No newline at end of file
diff --git a/README.md b/README.md
index ad3465c..027bf7e 100644
--- a/README.md
+++ b/README.md
@@ -78,9 +78,9 @@ Adding this plugin to your project is *very* simple, it only requires you to wri
 Add the correct version to your `Cargo.toml`, you can find the version you are looking for under the support section. The thing you should be adding should look like this (only add the line marked by `# <--`):
 ```toml
 [dependencies]
-bevy = { version = "0.7"}
+bevy = { version = "0.8"}
 # ...
-bevy_config_cam = { version = "0.3.0"} # <-- 
+bevy_config_cam = { version = "0.4.0"} # <-- 
 ```
 
 ### Step 2. - Add to project
@@ -125,6 +125,7 @@ Note: That some of them are overwritten by accessing the settings or the changin
 |0.5|0.1.X|
 |0.6|0.2.X|
 |0.7|0.3.X|
+|0.8|0.4.X|
 
 # Licensing
 The project is under dual license MIT and Apache-2.0, so yoink to your hearts content, just remember the license agreements.
diff --git a/examples/switch.rs b/examples/switch.rs
index 39f7876..44c460b 100644
--- a/examples/switch.rs
+++ b/examples/switch.rs
@@ -52,7 +52,7 @@ fn setup(
 
     // cube camera
     commands
-        .spawn_bundle(PerspectiveCameraBundle {
+        .spawn_bundle(Camera3dBundle {
             transform: Transform::from_xyz(-2.0, 5.0, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
             ..Default::default()
         })
@@ -60,7 +60,7 @@ fn setup(
 
     // topdown camera
     commands
-        .spawn_bundle(PerspectiveCameraBundle {
+        .spawn_bundle(Camera3dBundle {
             transform: Transform::from_xyz(0.0, 10.0, 0.1).looking_at(Vec3::ZERO, Vec3::Y),
             ..Default::default()
         })
diff --git a/src/lib.rs b/src/lib.rs
index aeb0dde..ef23c58 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -8,7 +8,7 @@ use bevy::{
     render::{
         camera::Camera,
         camera::CameraProjection,
-        camera::{ActiveCamera, Camera3d, PerspectiveProjection},
+        camera::PerspectiveProjection,
     },
     window::Windows,
 };
@@ -213,7 +213,7 @@ fn setup(
         b.insert(PlayerMove)
             .with_children(|parent| {
                 parent
-                    .spawn_bundle(PerspectiveCameraBundle {
+                    .spawn_bundle(Camera3dBundle {
                         transform: Transform::from_xyz(-2.0, 5.0, 5.0)
                             .looking_at(Vec3::ZERO, Vec3::Y),
                         ..Default::default()
@@ -225,7 +225,7 @@ fn setup(
 
     // camera
     commands
-        .spawn_bundle(PerspectiveCameraBundle {
+        .spawn_bundle(Camera3dBundle {
             camera: Camera {
                 ..Default::default()
             },
@@ -412,20 +412,24 @@ fn move_camera(
 
 #[allow(clippy::type_complexity)]
 fn toggle_camera_parent(
-    mut act_cams: ResMut<ActiveCamera<Camera3d>>,
+    mut act_cams: Query<&mut Camera>,
     mut settings: ResMut<MovementSettings>,
     mut query: ParamSet<(Query<(&FlyCam, Entity)>, Query<(&PlayerCam, Entity)>)>,
 ) {
     if settings.locked_to_player && !settings.ltp {
         let p1 = query.p1();
         let (_, b) = p1.single();
-        act_cams.set(b);
+        act_cams.iter_mut().for_each(|mut cam| {
+            cam.set(Box::new(b));
+        });
 
         settings.ltp = true;
     } else if !settings.locked_to_player && settings.ltp {
         let pr = query.p0();
         let (_, b) = pr.single();
-        act_cams.set(b);
+        act_cams.iter_mut().for_each(|mut cam| {
+            cam.set(Box::new(b));
+        });
         settings.ltp = false;
     }
 }
@@ -472,8 +476,8 @@ fn scroll(
                     project.update(prim.width(), prim.height());
 
                     //Update camera with the new fov
-                    camera.projection_matrix = project.get_projection_matrix();
-                    camera.depth_calculation = project.depth_calculation();
+                    //camera.projection_matrix = project.get_projection_matrix();
+                    //camera.depth_calculation = project.depth_calculation();
 
                     println!("FOV: {:?}", project.fov);
                 }
@@ -580,7 +584,7 @@ fn initial_grab_cursor(mut windows: ResMut<Windows>) {
 /// Spawns the `Camera3dBundle` to be controlled
 fn setup_player(mut commands: Commands) {
     commands
-        .spawn_bundle(PerspectiveCameraBundle {
+        .spawn_bundle(Camera3dBundle {
             transform: Transform::from_xyz(-2.0, 5.0, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
             ..Default::default()
         })

From c6e22353903306ffa000c320bcbc2a6f4c438030 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Mon, 13 Jun 2022 23:46:56 +0200
Subject: [PATCH 02/63] Update LICENSE-APACHE

---
 LICENSE-APACHE | 192 ++++++++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 190 insertions(+), 2 deletions(-)

diff --git a/LICENSE-APACHE b/LICENSE-APACHE
index d807a6c..11069ed 100644
--- a/LICENSE-APACHE
+++ b/LICENSE-APACHE
@@ -1,4 +1,192 @@
-Copyright 2022 Mikkel Rasmussen
+                              Apache License
+                        Version 2.0, January 2004
+                     http://www.apache.org/licenses/
+
+TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+1. Definitions.
+
+   "License" shall mean the terms and conditions for use, reproduction,
+   and distribution as defined by Sections 1 through 9 of this document.
+
+   "Licensor" shall mean the copyright owner or entity authorized by
+   the copyright owner that is granting the License.
+
+   "Legal Entity" shall mean the union of the acting entity and all
+   other entities that control, are controlled by, or are under common
+   control with that entity. For the purposes of this definition,
+   "control" means (i) the power, direct or indirect, to cause the
+   direction or management of such entity, whether by contract or
+   otherwise, or (ii) ownership of fifty percent (50%) or more of the
+   outstanding shares, or (iii) beneficial ownership of such entity.
+
+   "You" (or "Your") shall mean an individual or Legal Entity
+   exercising permissions granted by this License.
+
+   "Source" form shall mean the preferred form for making modifications,
+   including but not limited to software source code, documentation
+   source, and configuration files.
+
+   "Object" form shall mean any form resulting from mechanical
+   transformation or translation of a Source form, including but
+   not limited to compiled object code, generated documentation,
+   and conversions to other media types.
+
+   "Work" shall mean the work of authorship, whether in Source or
+   Object form, made available under the License, as indicated by a
+   copyright notice that is included in or attached to the work
+   (an example is provided in the Appendix below).
+
+   "Derivative Works" shall mean any work, whether in Source or Object
+   form, that is based on (or derived from) the Work and for which the
+   editorial revisions, annotations, elaborations, or other modifications
+   represent, as a whole, an original work of authorship. For the purposes
+   of this License, Derivative Works shall not include works that remain
+   separable from, or merely link (or bind by name) to the interfaces of,
+   the Work and Derivative Works thereof.
+
+   "Contribution" shall mean any work of authorship, including
+   the original version of the Work and any modifications or additions
+   to that Work or Derivative Works thereof, that is intentionally
+   submitted to Licensor for inclusion in the Work by the copyright owner
+   or by an individual or Legal Entity authorized to submit on behalf of
+   the copyright owner. For the purposes of this definition, "submitted"
+   means any form of electronic, verbal, or written communication sent
+   to the Licensor or its representatives, including but not limited to
+   communication on electronic mailing lists, source code control systems,
+   and issue tracking systems that are managed by, or on behalf of, the
+   Licensor for the purpose of discussing and improving the Work, but
+   excluding communication that is conspicuously marked or otherwise
+   designated in writing by the copyright owner as "Not a Contribution."
+
+   "Contributor" shall mean Licensor and any individual or Legal Entity
+   on behalf of whom a Contribution has been received by Licensor and
+   subsequently incorporated within the Work.
+
+2. Grant of Copyright License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   copyright license to reproduce, prepare Derivative Works of,
+   publicly display, publicly perform, sublicense, and distribute the
+   Work and such Derivative Works in Source or Object form.
+
+3. Grant of Patent License. Subject to the terms and conditions of
+   this License, each Contributor hereby grants to You a perpetual,
+   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+   (except as stated in this section) patent license to make, have made,
+   use, offer to sell, sell, import, and otherwise transfer the Work,
+   where such license applies only to those patent claims licensable
+   by such Contributor that are necessarily infringed by their
+   Contribution(s) alone or by combination of their Contribution(s)
+   with the Work to which such Contribution(s) was submitted. If You
+   institute patent litigation against any entity (including a
+   cross-claim or counterclaim in a lawsuit) alleging that the Work
+   or a Contribution incorporated within the Work constitutes direct
+   or contributory patent infringement, then any patent licenses
+   granted to You under this License for that Work shall terminate
+   as of the date such litigation is filed.
+
+4. Redistribution. You may reproduce and distribute copies of the
+   Work or Derivative Works thereof in any medium, with or without
+   modifications, and in Source or Object form, provided that You
+   meet the following conditions:
+
+   (a) You must give any other recipients of the Work or
+       Derivative Works a copy of this License; and
+
+   (b) You must cause any modified files to carry prominent notices
+       stating that You changed the files; and
+
+   (c) You must retain, in the Source form of any Derivative Works
+       that You distribute, all copyright, patent, trademark, and
+       attribution notices from the Source form of the Work,
+       excluding those notices that do not pertain to any part of
+       the Derivative Works; and
+
+   (d) If the Work includes a "NOTICE" text file as part of its
+       distribution, then any Derivative Works that You distribute must
+       include a readable copy of the attribution notices contained
+       within such NOTICE file, excluding those notices that do not
+       pertain to any part of the Derivative Works, in at least one
+       of the following places: within a NOTICE text file distributed
+       as part of the Derivative Works; within the Source form or
+       documentation, if provided along with the Derivative Works; or,
+       within a display generated by the Derivative Works, if and
+       wherever such third-party notices normally appear. The contents
+       of the NOTICE file are for informational purposes only and
+       do not modify the License. You may add Your own attribution
+       notices within Derivative Works that You distribute, alongside
+       or as an addendum to the NOTICE text from the Work, provided
+       that such additional attribution notices cannot be construed
+       as modifying the License.
+
+   You may add Your own copyright statement to Your modifications and
+   may provide additional or different license terms and conditions
+   for use, reproduction, or distribution of Your modifications, or
+   for any such Derivative Works as a whole, provided Your use,
+   reproduction, and distribution of the Work otherwise complies with
+   the conditions stated in this License.
+
+5. Submission of Contributions. Unless You explicitly state otherwise,
+   any Contribution intentionally submitted for inclusion in the Work
+   by You to the Licensor shall be under the terms and conditions of
+   this License, without any additional terms or conditions.
+   Notwithstanding the above, nothing herein shall supersede or modify
+   the terms of any separate license agreement you may have executed
+   with Licensor regarding such Contributions.
+
+6. Trademarks. This License does not grant permission to use the trade
+   names, trademarks, service marks, or product names of the Licensor,
+   except as required for reasonable and customary use in describing the
+   origin of the Work and reproducing the content of the NOTICE file.
+
+7. Disclaimer of Warranty. Unless required by applicable law or
+   agreed to in writing, Licensor provides the Work (and each
+   Contributor provides its Contributions) on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+   implied, including, without limitation, any warranties or conditions
+   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+   PARTICULAR PURPOSE. You are solely responsible for determining the
+   appropriateness of using or redistributing the Work and assume any
+   risks associated with Your exercise of permissions under this License.
+
+8. Limitation of Liability. In no event and under no legal theory,
+   whether in tort (including negligence), contract, or otherwise,
+   unless required by applicable law (such as deliberate and grossly
+   negligent acts) or agreed to in writing, shall any Contributor be
+   liable to You for damages, including any direct, indirect, special,
+   incidental, or consequential damages of any character arising as a
+   result of this License or out of the use or inability to use the
+   Work (including but not limited to damages for loss of goodwill,
+   work stoppage, computer failure or malfunction, or any and all
+   other commercial damages or losses), even if such Contributor
+   has been advised of the possibility of such damages.
+
+9. Accepting Warranty or Additional Liability. While redistributing
+   the Work or Derivative Works thereof, You may choose to offer,
+   and charge a fee for, acceptance of support, warranty, indemnity,
+   or other liability obligations and/or rights consistent with this
+   License. However, in accepting such obligations, You may act only
+   on Your own behalf and on Your sole responsibility, not on behalf
+   of any other Contributor, and only if You agree to indemnify,
+   defend, and hold each Contributor harmless for any liability
+   incurred by, or claims asserted against, such Contributor by reason
+   of your accepting any such warranty or additional liability.
+
+END OF TERMS AND CONDITIONS
+
+APPENDIX: How to apply the Apache License to your work.
+
+   To apply the Apache License to your work, attach the following
+   boilerplate notice, with the fields enclosed by brackets "[]"
+   replaced with your own identifying information. (Don't include
+   the brackets!)  The text should be enclosed in the appropriate
+   comment syntax for the file format. We also recommend that a
+   file or class name and description of purpose be included on the
+   same "printed page" as the copyright notice for easier
+   identification within third-party archives.
+
+Copyright [yyyy] [name of copyright owner]
 
 Licensed under the Apache License, Version 2.0 (the "License");
 you may not use this file except in compliance with the License.
@@ -10,4 +198,4 @@ Unless required by applicable law or agreed to in writing, software
 distributed under the License is distributed on an "AS IS" BASIS,
 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 See the License for the specific language governing permissions and
-limitations under the License.
\ No newline at end of file
+limitations under the License.

From b1fa50e20eb5b98c3f315213168505d0d510e87f Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Mon, 13 Jun 2022 23:48:54 +0200
Subject: [PATCH 03/63] Delete LICENSE-APACHE

---
 LICENSE-APACHE | 201 -------------------------------------------------
 1 file changed, 201 deletions(-)
 delete mode 100644 LICENSE-APACHE

diff --git a/LICENSE-APACHE b/LICENSE-APACHE
deleted file mode 100644
index 11069ed..0000000
--- a/LICENSE-APACHE
+++ /dev/null
@@ -1,201 +0,0 @@
-                              Apache License
-                        Version 2.0, January 2004
-                     http://www.apache.org/licenses/
-
-TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
-
-1. Definitions.
-
-   "License" shall mean the terms and conditions for use, reproduction,
-   and distribution as defined by Sections 1 through 9 of this document.
-
-   "Licensor" shall mean the copyright owner or entity authorized by
-   the copyright owner that is granting the License.
-
-   "Legal Entity" shall mean the union of the acting entity and all
-   other entities that control, are controlled by, or are under common
-   control with that entity. For the purposes of this definition,
-   "control" means (i) the power, direct or indirect, to cause the
-   direction or management of such entity, whether by contract or
-   otherwise, or (ii) ownership of fifty percent (50%) or more of the
-   outstanding shares, or (iii) beneficial ownership of such entity.
-
-   "You" (or "Your") shall mean an individual or Legal Entity
-   exercising permissions granted by this License.
-
-   "Source" form shall mean the preferred form for making modifications,
-   including but not limited to software source code, documentation
-   source, and configuration files.
-
-   "Object" form shall mean any form resulting from mechanical
-   transformation or translation of a Source form, including but
-   not limited to compiled object code, generated documentation,
-   and conversions to other media types.
-
-   "Work" shall mean the work of authorship, whether in Source or
-   Object form, made available under the License, as indicated by a
-   copyright notice that is included in or attached to the work
-   (an example is provided in the Appendix below).
-
-   "Derivative Works" shall mean any work, whether in Source or Object
-   form, that is based on (or derived from) the Work and for which the
-   editorial revisions, annotations, elaborations, or other modifications
-   represent, as a whole, an original work of authorship. For the purposes
-   of this License, Derivative Works shall not include works that remain
-   separable from, or merely link (or bind by name) to the interfaces of,
-   the Work and Derivative Works thereof.
-
-   "Contribution" shall mean any work of authorship, including
-   the original version of the Work and any modifications or additions
-   to that Work or Derivative Works thereof, that is intentionally
-   submitted to Licensor for inclusion in the Work by the copyright owner
-   or by an individual or Legal Entity authorized to submit on behalf of
-   the copyright owner. For the purposes of this definition, "submitted"
-   means any form of electronic, verbal, or written communication sent
-   to the Licensor or its representatives, including but not limited to
-   communication on electronic mailing lists, source code control systems,
-   and issue tracking systems that are managed by, or on behalf of, the
-   Licensor for the purpose of discussing and improving the Work, but
-   excluding communication that is conspicuously marked or otherwise
-   designated in writing by the copyright owner as "Not a Contribution."
-
-   "Contributor" shall mean Licensor and any individual or Legal Entity
-   on behalf of whom a Contribution has been received by Licensor and
-   subsequently incorporated within the Work.
-
-2. Grant of Copyright License. Subject to the terms and conditions of
-   this License, each Contributor hereby grants to You a perpetual,
-   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-   copyright license to reproduce, prepare Derivative Works of,
-   publicly display, publicly perform, sublicense, and distribute the
-   Work and such Derivative Works in Source or Object form.
-
-3. Grant of Patent License. Subject to the terms and conditions of
-   this License, each Contributor hereby grants to You a perpetual,
-   worldwide, non-exclusive, no-charge, royalty-free, irrevocable
-   (except as stated in this section) patent license to make, have made,
-   use, offer to sell, sell, import, and otherwise transfer the Work,
-   where such license applies only to those patent claims licensable
-   by such Contributor that are necessarily infringed by their
-   Contribution(s) alone or by combination of their Contribution(s)
-   with the Work to which such Contribution(s) was submitted. If You
-   institute patent litigation against any entity (including a
-   cross-claim or counterclaim in a lawsuit) alleging that the Work
-   or a Contribution incorporated within the Work constitutes direct
-   or contributory patent infringement, then any patent licenses
-   granted to You under this License for that Work shall terminate
-   as of the date such litigation is filed.
-
-4. Redistribution. You may reproduce and distribute copies of the
-   Work or Derivative Works thereof in any medium, with or without
-   modifications, and in Source or Object form, provided that You
-   meet the following conditions:
-
-   (a) You must give any other recipients of the Work or
-       Derivative Works a copy of this License; and
-
-   (b) You must cause any modified files to carry prominent notices
-       stating that You changed the files; and
-
-   (c) You must retain, in the Source form of any Derivative Works
-       that You distribute, all copyright, patent, trademark, and
-       attribution notices from the Source form of the Work,
-       excluding those notices that do not pertain to any part of
-       the Derivative Works; and
-
-   (d) If the Work includes a "NOTICE" text file as part of its
-       distribution, then any Derivative Works that You distribute must
-       include a readable copy of the attribution notices contained
-       within such NOTICE file, excluding those notices that do not
-       pertain to any part of the Derivative Works, in at least one
-       of the following places: within a NOTICE text file distributed
-       as part of the Derivative Works; within the Source form or
-       documentation, if provided along with the Derivative Works; or,
-       within a display generated by the Derivative Works, if and
-       wherever such third-party notices normally appear. The contents
-       of the NOTICE file are for informational purposes only and
-       do not modify the License. You may add Your own attribution
-       notices within Derivative Works that You distribute, alongside
-       or as an addendum to the NOTICE text from the Work, provided
-       that such additional attribution notices cannot be construed
-       as modifying the License.
-
-   You may add Your own copyright statement to Your modifications and
-   may provide additional or different license terms and conditions
-   for use, reproduction, or distribution of Your modifications, or
-   for any such Derivative Works as a whole, provided Your use,
-   reproduction, and distribution of the Work otherwise complies with
-   the conditions stated in this License.
-
-5. Submission of Contributions. Unless You explicitly state otherwise,
-   any Contribution intentionally submitted for inclusion in the Work
-   by You to the Licensor shall be under the terms and conditions of
-   this License, without any additional terms or conditions.
-   Notwithstanding the above, nothing herein shall supersede or modify
-   the terms of any separate license agreement you may have executed
-   with Licensor regarding such Contributions.
-
-6. Trademarks. This License does not grant permission to use the trade
-   names, trademarks, service marks, or product names of the Licensor,
-   except as required for reasonable and customary use in describing the
-   origin of the Work and reproducing the content of the NOTICE file.
-
-7. Disclaimer of Warranty. Unless required by applicable law or
-   agreed to in writing, Licensor provides the Work (and each
-   Contributor provides its Contributions) on an "AS IS" BASIS,
-   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
-   implied, including, without limitation, any warranties or conditions
-   of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
-   PARTICULAR PURPOSE. You are solely responsible for determining the
-   appropriateness of using or redistributing the Work and assume any
-   risks associated with Your exercise of permissions under this License.
-
-8. Limitation of Liability. In no event and under no legal theory,
-   whether in tort (including negligence), contract, or otherwise,
-   unless required by applicable law (such as deliberate and grossly
-   negligent acts) or agreed to in writing, shall any Contributor be
-   liable to You for damages, including any direct, indirect, special,
-   incidental, or consequential damages of any character arising as a
-   result of this License or out of the use or inability to use the
-   Work (including but not limited to damages for loss of goodwill,
-   work stoppage, computer failure or malfunction, or any and all
-   other commercial damages or losses), even if such Contributor
-   has been advised of the possibility of such damages.
-
-9. Accepting Warranty or Additional Liability. While redistributing
-   the Work or Derivative Works thereof, You may choose to offer,
-   and charge a fee for, acceptance of support, warranty, indemnity,
-   or other liability obligations and/or rights consistent with this
-   License. However, in accepting such obligations, You may act only
-   on Your own behalf and on Your sole responsibility, not on behalf
-   of any other Contributor, and only if You agree to indemnify,
-   defend, and hold each Contributor harmless for any liability
-   incurred by, or claims asserted against, such Contributor by reason
-   of your accepting any such warranty or additional liability.
-
-END OF TERMS AND CONDITIONS
-
-APPENDIX: How to apply the Apache License to your work.
-
-   To apply the Apache License to your work, attach the following
-   boilerplate notice, with the fields enclosed by brackets "[]"
-   replaced with your own identifying information. (Don't include
-   the brackets!)  The text should be enclosed in the appropriate
-   comment syntax for the file format. We also recommend that a
-   file or class name and description of purpose be included on the
-   same "printed page" as the copyright notice for easier
-   identification within third-party archives.
-
-Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
-    http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.

From 2b9ce77a595e741de98cda1dd4d560e589aca35e Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Mon, 13 Jun 2022 23:49:19 +0200
Subject: [PATCH 04/63] Create LICENSE-APACHE

---
 LICENSE-APACHE | 201 +++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 201 insertions(+)
 create mode 100644 LICENSE-APACHE

diff --git a/LICENSE-APACHE b/LICENSE-APACHE
new file mode 100644
index 0000000..261eeb9
--- /dev/null
+++ b/LICENSE-APACHE
@@ -0,0 +1,201 @@
+                                 Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.

From bfea8687a76f534fcfa9cb586610f6b8ec7d5087 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Sun, 31 Jul 2022 16:47:29 +0200
Subject: [PATCH 05/63] Added change detection for ergonomic improvements

---
 .gitignore          |   2 +-
 Cargo.lock          | 968 ++++++++++++++++++++++++++++++--------------
 Cargo.toml          |  15 +-
 examples/minimal.rs |  69 +++-
 src/lib.rs          | 709 +-------------------------------
 src/lib2.rs         | 709 ++++++++++++++++++++++++++++++++
 6 files changed, 1447 insertions(+), 1025 deletions(-)
 create mode 100644 src/lib2.rs

diff --git a/.gitignore b/.gitignore
index 8d935a6..088ba6b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -4,7 +4,7 @@
 
 # Remove Cargo.lock from gitignore if creating an executable, leave it for libraries
 # More information here https://doc.rust-lang.org/cargo/guide/cargo-toml-vs-cargo-lock.html
-#Cargo.lock
+Cargo.lock
 
 # These are backup files generated by rustfmt
 **/*.rs.bk
diff --git a/Cargo.lock b/Cargo.lock
index f84bead..e41890d 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -2,6 +2,22 @@
 # It is not intended for manual editing.
 version = 3
 
+[[package]]
+name = "ab_glyph"
+version = "0.2.15"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "24606928a235e73cdef55a0c909719cadd72fce573e5713d58cb2952d8f5794c"
+dependencies = [
+ "ab_glyph_rasterizer",
+ "owned_ttf_parser",
+]
+
+[[package]]
+name = "ab_glyph_rasterizer"
+version = "0.1.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a13739d7177fbd22bb0ed28badfff9f372f8bef46c863db4e1c6248f6b223b6e"
+
 [[package]]
 name = "ahash"
 version = "0.7.6"
@@ -40,6 +56,15 @@ dependencies = [
  "log",
 ]
 
+[[package]]
+name = "android_system_properties"
+version = "0.1.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e"
+dependencies = [
+ "libc",
+]
+
 [[package]]
 name = "ansi_term"
 version = "0.12.1"
@@ -51,9 +76,9 @@ dependencies = [
 
 [[package]]
 name = "anyhow"
-version = "1.0.56"
+version = "1.0.58"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4361135be9122e0870de935d7c439aef945b9f9ddd4199a553b5270b49c82a27"
+checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704"
 
 [[package]]
 name = "approx"
@@ -72,9 +97,9 @@ checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
 
 [[package]]
 name = "ash"
-version = "0.34.0+1.2.203"
+version = "0.37.0+1.3.209"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0f780da53d0063880d45554306489f09dd8d1bda47688b4a57bc579119356df"
+checksum = "006ca68e0f2b03f22d6fa9f2860f85aed430d257fec20f8879b2145e7c7ae1a6"
 dependencies = [
  "libloading",
 ]
@@ -106,9 +131,9 @@ dependencies = [
 
 [[package]]
 name = "async-task"
-version = "4.2.0"
+version = "4.3.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30696a84d817107fc028e049980e09d5e140e8da8f1caeb17e8e950658a3cea9"
+checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"
 
 [[package]]
 name = "autocfg"
@@ -124,34 +149,23 @@ checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
 
 [[package]]
 name = "bevy"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4fce306d40a111309ee61d4626efbafccdd46bb80657122c38061fa7264c08e4"
+checksum = "55f08528a4e59d607460513a823b40f602d013c1a00f57b824f1075d5d48c3cd"
 dependencies = [
  "bevy_internal",
 ]
 
-[[package]]
-name = "bevy-crevice-derive"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "191a752a01c3402deb24320acf42288bf822e5d22f19ae1d903797f02e9b0c33"
-dependencies = [
- "bevy_macro_utils",
- "proc-macro2",
- "quote",
- "syn",
-]
-
 [[package]]
 name = "bevy_app"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32660ae99fa3498ca379de28b7e2f447e6531b0e432bf200901efeec075553c1"
+checksum = "53d26d6ffdf493609d2fedc1018a2ef0cb4d8e48f6d3bcea56fa2df81867e464"
 dependencies = [
  "bevy_derive",
  "bevy_ecs",
  "bevy_reflect",
+ "bevy_tasks",
  "bevy_utils",
  "wasm-bindgen",
  "web-sys",
@@ -159,9 +173,9 @@ dependencies = [
 
 [[package]]
 name = "bevy_asset"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2afd395240087924ba49c8cae2b00d007aeb1db53ee726a543b1e90dce2d3ab"
+checksum = "3d8fb95306d5f18fa70df40632cd984993aeb71e91ce059ae99699098a4f9ce9"
 dependencies = [
  "anyhow",
  "bevy_app",
@@ -173,10 +187,10 @@ dependencies = [
  "bevy_utils",
  "crossbeam-channel",
  "downcast-rs",
+ "fastrand",
  "js-sys",
  "ndk-glue",
- "parking_lot",
- "rand",
+ "parking_lot 0.12.1",
  "serde",
  "thiserror",
  "wasm-bindgen",
@@ -186,9 +200,10 @@ dependencies = [
 
 [[package]]
 name = "bevy_config_cam"
-version = "0.3.0"
+version = "0.4.0"
 dependencies = [
  "bevy",
+ "bevy_dolly",
  "rand",
  "strum",
  "strum_macros",
@@ -196,12 +211,11 @@ dependencies = [
 
 [[package]]
 name = "bevy_core"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12c0f8614b6014671ab60bacb8bf681373d08b0bb15633b8ef72b895cf966d29"
+checksum = "c6712146d54fff9e1865362e9f39a7b63c7b037ddb72a3d7bb05b959213fb61e"
 dependencies = [
  "bevy_app",
- "bevy_derive",
  "bevy_ecs",
  "bevy_math",
  "bevy_reflect",
@@ -212,35 +226,27 @@ dependencies = [
 
 [[package]]
 name = "bevy_core_pipeline"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74d570bc9310196190910a5b1ffd8c8c35bd6b73f918d0651ae3c3d4e57be9a7"
+checksum = "080bb00399b6d7697e505f871d67c6de8b52eb06b47b0cda2be80c2396805983"
 dependencies = [
  "bevy_app",
  "bevy_asset",
- "bevy_core",
+ "bevy_derive",
  "bevy_ecs",
+ "bevy_reflect",
  "bevy_render",
+ "bevy_transform",
  "bevy_utils",
-]
-
-[[package]]
-name = "bevy_crevice"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3da0a284fb26c02cb96ef4d5bbf4de5fad7e1a901730035a61813bf64e28482e"
-dependencies = [
- "bevy-crevice-derive",
- "bytemuck",
- "glam",
- "mint",
+ "radsort",
+ "serde",
 ]
 
 [[package]]
 name = "bevy_derive"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6abddf2ed415f31d28a9bf9ab3c0bc857e98a722858d38dba65bdda481f8d714"
+checksum = "a4b8f0786d1fc7e0d35297917be463db3d0886f7bd8d4221ca3d565502579ffb"
 dependencies = [
  "bevy_macro_utils",
  "quote",
@@ -249,25 +255,34 @@ dependencies = [
 
 [[package]]
 name = "bevy_diagnostic"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6ebf72ea058cfc379756e9da7de6861174e1860504f41e3e5a46d5b1c35d6644"
+checksum = "adab74ee5375fbf5d2b1d3da41de8d1491a8a706d17441b5e31214b65349d692"
 dependencies = [
  "bevy_app",
- "bevy_core",
  "bevy_ecs",
  "bevy_log",
+ "bevy_time",
  "bevy_utils",
 ]
 
+[[package]]
+name = "bevy_dolly"
+version = "0.0.1"
+dependencies = [
+ "bevy",
+ "dolly",
+]
+
 [[package]]
 name = "bevy_ecs"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "79e67dd06b14e787d2026fe6e2b63f67482afcc62284f20ea2784d8b0662e95f"
+checksum = "a5643dc27b7d6778e3a66c8e0f6ad1fd33309aa2fa61d935f360ccc85b7be6a2"
 dependencies = [
  "async-channel",
  "bevy_ecs_macros",
+ "bevy_ptr",
  "bevy_reflect",
  "bevy_tasks",
  "bevy_utils",
@@ -275,14 +290,14 @@ dependencies = [
  "fixedbitset",
  "fxhash",
  "serde",
- "thiserror",
+ "thread_local",
 ]
 
 [[package]]
 name = "bevy_ecs_macros"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "718923a491490bd81074492d61fc08134f9c62a29ba8666818cd7a6630421246"
+checksum = "a5f2f12677f8725d40930d0a19652f007fe0ef5ac38e23817cfc4930c61f5680"
 dependencies = [
  "bevy_macro_utils",
  "proc-macro2",
@@ -290,17 +305,28 @@ dependencies = [
  "syn",
 ]
 
+[[package]]
+name = "bevy_encase_derive"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "76a767adc36ce1fc917a736843b026d4de7069d90ed5e669c852481ef69fd5aa"
+dependencies = [
+ "bevy_macro_utils",
+ "encase_derive_impl",
+]
+
 [[package]]
 name = "bevy_gltf"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e07bda7721091c1a683343d466132dc69dec65aa83d8c9e328a2fb3431f03be"
+checksum = "150cc6782c4472600c2ade5d78c6ce481c992690f0499e63765aba752d7e0f04"
 dependencies = [
  "anyhow",
  "base64",
  "bevy_app",
  "bevy_asset",
  "bevy_core",
+ "bevy_core_pipeline",
  "bevy_ecs",
  "bevy_hierarchy",
  "bevy_log",
@@ -309,6 +335,7 @@ dependencies = [
  "bevy_reflect",
  "bevy_render",
  "bevy_scene",
+ "bevy_tasks",
  "bevy_transform",
  "bevy_utils",
  "gltf",
@@ -318,9 +345,9 @@ dependencies = [
 
 [[package]]
 name = "bevy_hierarchy"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f407f152f35541a099484200afe3b0ca09ce625469e8233dcdc264d6f88e01a"
+checksum = "8e2e4c20d7c843cd26ef3c5d7b4c20e3e32c275943e2437ecaca1cfd6cfe3b30"
 dependencies = [
  "bevy_app",
  "bevy_ecs",
@@ -331,9 +358,9 @@ dependencies = [
 
 [[package]]
 name = "bevy_input"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff4ec4f6e38ef1b41ff68ec7badd6afc5c9699191e61e511c4abee91a5888afc"
+checksum = "a11c70573fb4d4c056ba32cfa553daa7e6e1245cb876ccfbe322640928b7ee1c"
 dependencies = [
  "bevy_app",
  "bevy_ecs",
@@ -343,9 +370,9 @@ dependencies = [
 
 [[package]]
 name = "bevy_internal"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d518a8e5f526a9537fc8408a284caec7af22b23c3b23c0dee08bacc0930e2f1a"
+checksum = "0d603b597772130782eab6e604706cbb764fb037f9cf0a1904b6f342845b6f44"
 dependencies = [
  "bevy_app",
  "bevy_asset",
@@ -360,11 +387,16 @@ dependencies = [
  "bevy_log",
  "bevy_math",
  "bevy_pbr",
+ "bevy_ptr",
  "bevy_reflect",
  "bevy_render",
  "bevy_scene",
+ "bevy_sprite",
  "bevy_tasks",
+ "bevy_text",
+ "bevy_time",
  "bevy_transform",
+ "bevy_ui",
  "bevy_utils",
  "bevy_window",
  "bevy_winit",
@@ -373,9 +405,9 @@ dependencies = [
 
 [[package]]
 name = "bevy_log"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "943ec496720ded2ff62b292d8e5fc845817a504915f41b7c5fd12b1380300f75"
+checksum = "8cafb12fc84734236e36f407ab62c72d5d4279fa4777e40a95d7cc973cbabcd1"
 dependencies = [
  "android_log-sys",
  "bevy_app",
@@ -388,34 +420,41 @@ dependencies = [
 
 [[package]]
 name = "bevy_macro_utils"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b7ddfc33a99547e36718e56e414541e461c74ec318ff987a1e9f4ff46d0dacbb"
+checksum = "4d081af83b701e16cad209255ba6b383744dfa49efa99eb6505989f293305ab3"
 dependencies = [
- "cargo-manifest",
  "quote",
  "syn",
+ "toml",
 ]
 
 [[package]]
 name = "bevy_math"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20288df0f70ff258bbaffaf55209f1271a7436438591bbffc3d81e4d84b423f2"
+checksum = "db5394e86c5708d3aa506c6e98ec4ed2a4083a7a018c6693d9ac0e77ebfabfc2"
+dependencies = [
+ "glam",
+]
+
+[[package]]
+name = "bevy_mikktspace"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "40b299a61175a6f7e7398f83cd5b50920fd8bad4df674e614ad94f25f8426509"
 dependencies = [
- "bevy_reflect",
  "glam",
 ]
 
 [[package]]
 name = "bevy_pbr"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "06adee54840f18cfeda7af4cdc57608644fa840be076a562353f896bfdb9c694"
+checksum = "ed9a81bbd02f5e0a57899a41aec37d9cb14965e1e4d510547f3f680323d05c0f"
 dependencies = [
  "bevy_app",
  "bevy_asset",
- "bevy_core",
  "bevy_core_pipeline",
  "bevy_ecs",
  "bevy_math",
@@ -426,20 +465,29 @@ dependencies = [
  "bevy_window",
  "bitflags",
  "bytemuck",
+ "radsort",
 ]
 
+[[package]]
+name = "bevy_ptr"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d92d5679e89602a18682a37846573dcd1979410179e14204280460ba9fb8713a"
+
 [[package]]
 name = "bevy_reflect"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d0793107bc4b7c6bd04232d739fc8d70aa5fb313bfad6e850f91f79b2557eed"
+checksum = "08798e67f2d4e6898ef117d8c99cf3b50a8eebc8da4159e6dad2657a0fbe9a4e"
 dependencies = [
+ "bevy_ptr",
  "bevy_reflect_derive",
  "bevy_utils",
  "downcast-rs",
  "erased-serde",
  "glam",
- "parking_lot",
+ "once_cell",
+ "parking_lot 0.12.1",
  "serde",
  "smallvec",
  "thiserror",
@@ -447,9 +495,9 @@ dependencies = [
 
 [[package]]
 name = "bevy_reflect_derive"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81c88de8067d19dfde31662ee78e3ee6971e2df27715799f91b515b37a636677"
+checksum = "19209a7f0238053802b7de04e6724bd90d4ed7d90e87101dbd1b64cca64ff694"
 dependencies = [
  "bevy_macro_utils",
  "proc-macro2",
@@ -460,19 +508,24 @@ dependencies = [
 
 [[package]]
 name = "bevy_render"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6a358da8255b704153913c3499b3693fa5cfe13a48725ac6e76b043fa5633bc8"
+checksum = "bb49530388ef17cff3fb8bd5e47372fb3cfeb4befc73e3036f6462ac20f049ef"
 dependencies = [
  "anyhow",
  "bevy_app",
  "bevy_asset",
  "bevy_core",
- "bevy_crevice",
  "bevy_derive",
  "bevy_ecs",
+ "bevy_encase_derive",
+ "bevy_hierarchy",
+ "bevy_log",
  "bevy_math",
+ "bevy_mikktspace",
  "bevy_reflect",
+ "bevy_render_macros",
+ "bevy_time",
  "bevy_transform",
  "bevy_utils",
  "bevy_window",
@@ -480,32 +533,49 @@ dependencies = [
  "codespan-reporting",
  "copyless",
  "downcast-rs",
+ "encase",
  "futures-lite",
  "hex",
  "hexasphere",
  "image",
  "naga",
  "once_cell",
- "parking_lot",
+ "parking_lot 0.12.1",
  "regex",
  "serde",
  "smallvec",
  "thiserror",
+ "thread_local",
  "wgpu",
 ]
 
+[[package]]
+name = "bevy_render_macros"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e7d0b7a51fa819c20c64f43856c5aaea40f853050bbb09b9ba3672e5ff2688a5"
+dependencies = [
+ "bevy_macro_utils",
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
 [[package]]
 name = "bevy_scene"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2ea240f2ffce9f58a5601cc5ead24111f577dc4c656452839eb1fdf4b7a28529"
+checksum = "0064d73ebb0de39901478b493604a1a6d448fd337b66803004c60f41f1fa6c37"
 dependencies = [
  "anyhow",
  "bevy_app",
  "bevy_asset",
+ "bevy_derive",
  "bevy_ecs",
  "bevy_hierarchy",
  "bevy_reflect",
+ "bevy_render",
+ "bevy_transform",
  "bevy_utils",
  "ron",
  "serde",
@@ -513,25 +583,88 @@ dependencies = [
  "uuid",
 ]
 
+[[package]]
+name = "bevy_sprite"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "1f83dfe8897d6c0d9d5ce3818d49a13e58ae2b9b9ecf4f4bb85aa31bb0678f68"
+dependencies = [
+ "bevy_app",
+ "bevy_asset",
+ "bevy_core_pipeline",
+ "bevy_ecs",
+ "bevy_log",
+ "bevy_math",
+ "bevy_reflect",
+ "bevy_render",
+ "bevy_transform",
+ "bevy_utils",
+ "bitflags",
+ "bytemuck",
+ "copyless",
+ "fixedbitset",
+ "guillotiere",
+ "rectangle-pack",
+ "serde",
+ "thiserror",
+]
+
 [[package]]
 name = "bevy_tasks"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db2b0f0b86c8f78c53a2d4c669522f45e725ed9d9c3d734f54ec30876494e04e"
+checksum = "ff874c91a36eaac3ef957c6f3b590fb71332d9d136671cc858847d56fe9f80a3"
 dependencies = [
  "async-channel",
  "async-executor",
  "event-listener",
  "futures-lite",
  "num_cpus",
+ "once_cell",
  "wasm-bindgen-futures",
 ]
 
+[[package]]
+name = "bevy_text"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ef05a788c2c04aaa5db95b22a8f0fff0d3a0b08a7bcd1a71f050a628b38eec6e"
+dependencies = [
+ "ab_glyph",
+ "anyhow",
+ "bevy_app",
+ "bevy_asset",
+ "bevy_ecs",
+ "bevy_math",
+ "bevy_reflect",
+ "bevy_render",
+ "bevy_sprite",
+ "bevy_transform",
+ "bevy_utils",
+ "bevy_window",
+ "glyph_brush_layout",
+ "serde",
+ "thiserror",
+]
+
+[[package]]
+name = "bevy_time"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "74ec681d641371df81d7bfbcb0eea725ed873f38a094f34b5f7b436f0889e77c"
+dependencies = [
+ "bevy_app",
+ "bevy_ecs",
+ "bevy_reflect",
+ "bevy_utils",
+ "crossbeam-channel",
+]
+
 [[package]]
 name = "bevy_transform"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa2f7a77900fb23f24ca312c1f8df3eb47a45161326f41e9b4ef05b039793503"
+checksum = "42e1528e35f30bede46a50ee4134f150efc01f5c1002c340b3b2e6a0bfcb8aa5"
 dependencies = [
  "bevy_app",
  "bevy_ecs",
@@ -540,16 +673,43 @@ dependencies = [
  "bevy_reflect",
 ]
 
+[[package]]
+name = "bevy_ui"
+version = "0.8.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ac181a7b637da61fad72981ff9d2e5b899283ca7d54b2b7ea49c431121331c53"
+dependencies = [
+ "bevy_app",
+ "bevy_asset",
+ "bevy_core_pipeline",
+ "bevy_derive",
+ "bevy_ecs",
+ "bevy_hierarchy",
+ "bevy_input",
+ "bevy_log",
+ "bevy_math",
+ "bevy_reflect",
+ "bevy_render",
+ "bevy_sprite",
+ "bevy_text",
+ "bevy_transform",
+ "bevy_utils",
+ "bevy_window",
+ "bytemuck",
+ "serde",
+ "smallvec",
+ "taffy",
+]
+
 [[package]]
 name = "bevy_utils"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f354c584812996febd48cc885f36b23004b49d6680e73fc95a69a2bb17a48e5"
+checksum = "8bda6dada53e546845887ae7357eec57b8d547ef71627b716b33839b4a98b687"
 dependencies = [
  "ahash",
- "bevy_derive",
  "getrandom",
- "hashbrown",
+ "hashbrown 0.12.3",
  "instant",
  "tracing",
  "uuid",
@@ -557,12 +717,13 @@ dependencies = [
 
 [[package]]
 name = "bevy_window"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04fe33d177e10b2984fa90c1d19496fc6f6e7b36d4442699d359e2b4b507873d"
+checksum = "a3bdc3a220a9bb2fad9bd30d5f44c6645725398fe1bc588fc87abf09f092696e"
 dependencies = [
  "bevy_app",
  "bevy_ecs",
+ "bevy_input",
  "bevy_math",
  "bevy_utils",
  "raw-window-handle",
@@ -571,9 +732,9 @@ dependencies = [
 
 [[package]]
 name = "bevy_winit"
-version = "0.7.0"
+version = "0.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7c0e3b94cc73907f8a9f82945ca006a39ed2ab401aca0974b47a007a468509f"
+checksum = "57537a56ac4f4e1ffcad95227bcab37cd17b51770dacff82374a2d88be376322"
 dependencies = [
  "approx",
  "bevy_app",
@@ -582,6 +743,7 @@ dependencies = [
  "bevy_math",
  "bevy_utils",
  "bevy_window",
+ "crossbeam-channel",
  "raw-window-handle",
  "wasm-bindgen",
  "web-sys",
@@ -590,9 +752,9 @@ dependencies = [
 
 [[package]]
 name = "bit-set"
-version = "0.5.2"
+version = "0.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de"
+checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
 dependencies = [
  "bit-vec",
 ]
@@ -617,24 +779,24 @@ checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
 
 [[package]]
 name = "bumpalo"
-version = "3.9.1"
+version = "3.10.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4a45a46ab1f2412e53d3a0ade76ffad2025804294569aae387231a0cd6e0899"
+checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3"
 
 [[package]]
 name = "bytemuck"
-version = "1.9.1"
+version = "1.11.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cdead85bdec19c194affaeeb670c0e41fe23de31459efd1c174d049269cf02cc"
+checksum = "a5377c8865e74a160d21f29c2d40669f53286db6eab59b88540cbb12ffc8b835"
 dependencies = [
  "bytemuck_derive",
 ]
 
 [[package]]
 name = "bytemuck_derive"
-version = "1.1.0"
+version = "1.1.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "562e382481975bc61d11275ac5e62a19abd00b0547d99516a415336f183dcd0e"
+checksum = "cfd2f4180c5721da6335cc9e9061cce522b87a35e51cc57636d28d22a9863c80"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -663,17 +825,6 @@ dependencies = [
  "nix",
 ]
 
-[[package]]
-name = "cargo-manifest"
-version = "0.2.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af6d65c7592744998c67947ec771c62687c76f00179a83ffd563c0482046bb98"
-dependencies = [
- "serde",
- "serde_derive",
- "toml",
-]
-
 [[package]]
 name = "cc"
 version = "1.0.73"
@@ -747,9 +898,9 @@ checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
 
 [[package]]
 name = "concurrent-queue"
-version = "1.2.2"
+version = "1.2.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "30ed07550be01594c6026cff2a1d7fe9c8f683caa798e12b68694ac9e88286a3"
+checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c"
 dependencies = [
  "cache-padded",
 ]
@@ -764,6 +915,12 @@ dependencies = [
  "wasm-bindgen",
 ]
 
+[[package]]
+name = "const_panic"
+version = "0.2.4"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9c0358e41e90e443c69b2b2811f6ec9892c228b93620634cf4344fe89967fa9f"
+
 [[package]]
 name = "copyless"
 version = "0.1.5"
@@ -854,9 +1011,9 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-channel"
-version = "0.5.4"
+version = "0.5.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aaa7bd5fb665c6864b5f963dd9097905c54125909c7aa94c9e18507cdbe6c53"
+checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
 dependencies = [
  "cfg-if 1.0.0",
  "crossbeam-utils",
@@ -864,12 +1021,12 @@ dependencies = [
 
 [[package]]
 name = "crossbeam-utils"
-version = "0.8.8"
+version = "0.8.11"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0bf124c720b7686e3c2663cf54062ab0f68a88af2fb6a030e87e30bf721fcb38"
+checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc"
 dependencies = [
  "cfg-if 1.0.0",
- "lazy_static",
+ "once_cell",
 ]
 
 [[package]]
@@ -880,9 +1037,9 @@ checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
 
 [[package]]
 name = "d3d12"
-version = "0.4.1"
+version = "0.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2daefd788d1e96e0a9d66dee4b828b883509bc3ea9ce30665f04c3246372690c"
+checksum = "827914e1f53b1e0e025ecd3d967a7836b7bcb54520f90e21ef8df7b4d88a2759"
 dependencies = [
  "bitflags",
  "libloading",
@@ -939,12 +1096,53 @@ dependencies = [
  "libloading",
 ]
 
+[[package]]
+name = "dolly"
+version = "0.3.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c2ae35fe7c2f8550eb2e84dd8251cbaba660d167315daff50c800aee4013da32"
+dependencies = [
+ "glam",
+]
+
 [[package]]
 name = "downcast-rs"
 version = "1.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
 
+[[package]]
+name = "encase"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0a516181e9a36e8982cb37933c5e7dba638c42938cacde46ee4e5b4156f881b9"
+dependencies = [
+ "const_panic",
+ "encase_derive",
+ "glam",
+ "thiserror",
+]
+
+[[package]]
+name = "encase_derive"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "f5b802412eea315f29f2bb2da3a5963cd6121f56eaa06aebcdc0c54eea578f22"
+dependencies = [
+ "encase_derive_impl",
+]
+
+[[package]]
+name = "encase_derive_impl"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "0f2f4de457d974f548d2c2a16f709ebd81013579e543bd1a9b19ced88132c2cf"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
 [[package]]
 name = "env_logger"
 version = "0.8.4"
@@ -957,33 +1155,42 @@ dependencies = [
 
 [[package]]
 name = "erased-serde"
-version = "0.3.20"
+version = "0.3.21"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad132dd8d0d0b546348d7d86cb3191aad14b34e5f979781fc005c80d4ac67ffd"
+checksum = "81d013529d5574a60caeda29e179e695125448e5de52e3874f7b4c1d7360e18e"
 dependencies = [
  "serde",
 ]
 
+[[package]]
+name = "euclid"
+version = "0.22.7"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b52c2ef4a78da0ba68fbe1fd920627411096d2ac478f7f4c9f3a54ba6705bade"
+dependencies = [
+ "num-traits",
+]
+
 [[package]]
 name = "event-listener"
-version = "2.5.2"
+version = "2.5.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "77f3309417938f28bf8228fcff79a4a37103981e3e186d2ccd19c74b38f4eb71"
+checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
 
 [[package]]
 name = "fastrand"
-version = "1.7.0"
+version = "1.8.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c3fcf0cee53519c866c09b5de1f6c56ff9d647101f81c1964fa632e148896cdf"
+checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
 dependencies = [
  "instant",
 ]
 
 [[package]]
 name = "fixedbitset"
-version = "0.4.1"
+version = "0.4.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "279fb028e20b3c4c320317955b77c5e0c9701f05a1d309905d6fc702cdc5053e"
+checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
 
 [[package]]
 name = "fnv"
@@ -1044,25 +1251,24 @@ dependencies = [
 
 [[package]]
 name = "getrandom"
-version = "0.2.6"
+version = "0.2.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9be70c98951c83b8d2f8f60d7065fa6d5146873094452a1008da8c2f1e4205ad"
+checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
 dependencies = [
  "cfg-if 1.0.0",
  "js-sys",
  "libc",
- "wasi 0.10.2+wasi-snapshot-preview1",
+ "wasi",
  "wasm-bindgen",
 ]
 
 [[package]]
 name = "glam"
-version = "0.20.5"
+version = "0.21.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f43e957e744be03f5801a55472f593d43fabdebf25a4585db250f04d86b1675f"
+checksum = "781aa11be58ef14b0cd7326618afcbd9cdb5ba686bdab7193d87cdc322cd7033"
 dependencies = [
  "bytemuck",
- "mint",
  "serde",
 ]
 
@@ -1113,6 +1319,17 @@ dependencies = [
  "serde_json",
 ]
 
+[[package]]
+name = "glyph_brush_layout"
+version = "0.2.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "cc32c2334f00ca5ac3695c5009ae35da21da8c62d255b5b96d56e2597a637a38"
+dependencies = [
+ "ab_glyph",
+ "approx",
+ "xi-unicode",
+]
+
 [[package]]
 name = "gpu-alloc"
 version = "0.5.3"
@@ -1140,7 +1357,7 @@ checksum = "a538f217be4d405ff4719a283ca68323cc2384003eca5baaa87501e821c81dda"
 dependencies = [
  "bitflags",
  "gpu-descriptor-types",
- "hashbrown",
+ "hashbrown 0.11.2",
 ]
 
 [[package]]
@@ -1152,11 +1369,50 @@ dependencies = [
  "bitflags",
 ]
 
+[[package]]
+name = "guillotiere"
+version = "0.6.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782"
+dependencies = [
+ "euclid",
+ "svg_fmt",
+]
+
+[[package]]
+name = "hash32"
+version = "0.2.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67"
+dependencies = [
+ "byteorder",
+]
+
+[[package]]
+name = "hash32-derive"
+version = "0.1.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "59d2aba832b60be25c1b169146b27c64115470981b128ed84c8db18c1b03c6ff"
+dependencies = [
+ "proc-macro2",
+ "quote",
+ "syn",
+]
+
 [[package]]
 name = "hashbrown"
 version = "0.11.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
+dependencies = [
+ "ahash",
+]
+
+[[package]]
+name = "hashbrown"
+version = "0.12.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
 dependencies = [
  "ahash",
  "serde",
@@ -1185,12 +1441,12 @@ checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
 
 [[package]]
 name = "hexasphere"
-version = "7.0.0"
+version = "7.2.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "04ab9d20ba513ff1582a7d885e91839f62cf28bef7c56b1b0428ca787315979b"
+checksum = "9652f2ed7ee9c6374a061039f60fc6e25d7adac7fa10f83365669af3b24b0bf0"
 dependencies = [
  "glam",
- "lazy_static",
+ "once_cell",
 ]
 
 [[package]]
@@ -1207,26 +1463,25 @@ checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
 
 [[package]]
 name = "image"
-version = "0.23.14"
+version = "0.24.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24ffcb7e7244a9bf19d35bf2883b9c080c4ced3c07a9895572178cdb8f13f6a1"
+checksum = "7e30ca2ecf7666107ff827a8e481de6a132a9b687ed3bb20bb1c144a36c00964"
 dependencies = [
  "bytemuck",
  "byteorder",
  "color_quant",
- "num-iter",
  "num-rational",
  "num-traits",
 ]
 
 [[package]]
 name = "indexmap"
-version = "1.8.1"
+version = "1.9.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f647032dfaa1f8b6dc29bd3edb7bbef4861b8b8007ebb118d6db284fd59f6ee"
+checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
 dependencies = [
  "autocfg",
- "hashbrown",
+ "hashbrown 0.12.3",
 ]
 
 [[package]]
@@ -1237,9 +1492,9 @@ checksum = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a"
 
 [[package]]
 name = "inplace_it"
-version = "0.3.3"
+version = "0.3.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "90953f308a79fe6d62a4643e51f848fbfddcd05975a38e69fdf4ab86a7baf7ca"
+checksum = "67f0347836f3f6362c1e7efdadde2b1c4b4556d211310b70631bae7eb692070b"
 
 [[package]]
 name = "instant"
@@ -1255,9 +1510,9 @@ dependencies = [
 
 [[package]]
 name = "itoa"
-version = "1.0.1"
+version = "1.0.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1aab8fc367588b89dcee83ab0fd66b72b50b72fa1904d7095045ace2b0c81c35"
+checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
 
 [[package]]
 name = "jni-sys"
@@ -1267,9 +1522,9 @@ checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
 
 [[package]]
 name = "js-sys"
-version = "0.3.57"
+version = "0.3.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "671a26f820db17c2a2750743f1dd03bafd15b98c9f30c7c2628c024c05d73397"
+checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2"
 dependencies = [
  "wasm-bindgen",
 ]
@@ -1282,6 +1537,7 @@ checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3"
 dependencies = [
  "libc",
  "libloading",
+ "pkg-config",
 ]
 
 [[package]]
@@ -1292,9 +1548,9 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
 
 [[package]]
 name = "libc"
-version = "0.2.124"
+version = "0.2.126"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "21a41fed9d98f27ab1c6d161da622a4fa35e8a54a8adc24bbf3ddd0ef70b0e50"
+checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
 
 [[package]]
 name = "libloading"
@@ -1318,9 +1574,9 @@ dependencies = [
 
 [[package]]
 name = "log"
-version = "0.4.16"
+version = "0.4.17"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6389c490849ff5bc16be905ae24bc913a9c8892e19b2341dbc175e14c341c2b8"
+checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
 dependencies = [
  "cfg-if 1.0.0",
 ]
@@ -1345,9 +1601,9 @@ dependencies = [
 
 [[package]]
 name = "memchr"
-version = "2.4.1"
+version = "2.5.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "308cc39be01b73d0d18f82a0e7b2a3df85245f84af96fdddc5d202d27e47b86a"
+checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
 
 [[package]]
 name = "memmap2"
@@ -1369,9 +1625,9 @@ dependencies = [
 
 [[package]]
 name = "metal"
-version = "0.23.1"
+version = "0.24.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0514f491f4cc03632ab399ee01e2c1c1b12d3e1cf2d667c1ff5f87d6dcd2084"
+checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060"
 dependencies = [
  "bitflags",
  "block",
@@ -1387,40 +1643,23 @@ version = "0.2.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
 
-[[package]]
-name = "mint"
-version = "0.5.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e53debba6bda7a793e5f99b8dacf19e626084f525f7829104ba9898f367d85ff"
-
 [[package]]
 name = "mio"
-version = "0.8.2"
+version = "0.8.4"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "52da4364ffb0e4fe33a9841a98a3f3014fb964045ce4f7a45a398243c8d6b0c9"
+checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf"
 dependencies = [
  "libc",
  "log",
- "miow",
- "ntapi",
- "wasi 0.11.0+wasi-snapshot-preview1",
- "winapi",
-]
-
-[[package]]
-name = "miow"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21"
-dependencies = [
- "winapi",
+ "wasi",
+ "windows-sys",
 ]
 
 [[package]]
 name = "naga"
-version = "0.8.5"
+version = "0.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3012f2dbcc79e8e0b5825a4836a7106a75dd9b2fe42c528163be0f572538c705"
+checksum = "5f50357e1167a3ab92d6b3c7f4bf5f7fd13fde3f4b28bf0d5ea07b5100fdb6c0"
 dependencies = [
  "bit-set",
  "bitflags",
@@ -1433,7 +1672,9 @@ dependencies = [
  "pp-rs",
  "rustc-hash",
  "spirv",
+ "termcolor",
  "thiserror",
+ "unicode-xid",
 ]
 
 [[package]]
@@ -1513,41 +1754,21 @@ dependencies = [
  "minimal-lexical",
 ]
 
-[[package]]
-name = "ntapi"
-version = "0.3.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f"
-dependencies = [
- "winapi",
-]
-
 [[package]]
 name = "num-integer"
-version = "0.1.44"
+version = "0.1.45"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2cc698a63b549a70bc047073d2949cce27cd1c7b0a4a862d08a8031bc2801db"
+checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
 dependencies = [
  "autocfg",
  "num-traits",
 ]
 
-[[package]]
-name = "num-iter"
-version = "0.1.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b2021c8337a54d21aca0d59a92577a029af9431cb59b909b03252b9c164fad59"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
 [[package]]
 name = "num-rational"
-version = "0.3.2"
+version = "0.4.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "12ac428b1cb17fce6f731001d307d351ec70a6d202fc2e60f7d4c5e42d8f4f07"
+checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
 dependencies = [
  "autocfg",
  "num-integer",
@@ -1556,9 +1777,9 @@ dependencies = [
 
 [[package]]
 name = "num-traits"
-version = "0.2.14"
+version = "0.2.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9a64b1ec5cda2586e284722486d802acf1f7dbdc623e2bfc57e65ca1cd099290"
+checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
 dependencies = [
  "autocfg",
 ]
@@ -1615,9 +1836,18 @@ dependencies = [
 
 [[package]]
 name = "once_cell"
-version = "1.10.0"
+version = "1.13.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87f3e037eac156d1775da914196f0f37741a274155e34a0b7e427c35d2a2ecb9"
+checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
+
+[[package]]
+name = "owned_ttf_parser"
+version = "0.15.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "07ef1a404ae479dd6906f4fa2c88b3c94028f1284beb42a47c183a7c27ee9a3e"
+dependencies = [
+ "ttf-parser",
+]
 
 [[package]]
 name = "parking"
@@ -1633,7 +1863,17 @@ checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
 dependencies = [
  "instant",
  "lock_api",
- "parking_lot_core",
+ "parking_lot_core 0.8.5",
+]
+
+[[package]]
+name = "parking_lot"
+version = "0.12.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
+dependencies = [
+ "lock_api",
+ "parking_lot_core 0.9.3",
 ]
 
 [[package]]
@@ -1650,6 +1890,19 @@ dependencies = [
  "winapi",
 ]
 
+[[package]]
+name = "parking_lot_core"
+version = "0.9.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929"
+dependencies = [
+ "cfg-if 1.0.0",
+ "libc",
+ "redox_syscall",
+ "smallvec",
+ "windows-sys",
+]
+
 [[package]]
 name = "percent-encoding"
 version = "2.1.0"
@@ -1658,9 +1911,9 @@ checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
 
 [[package]]
 name = "petgraph"
-version = "0.6.0"
+version = "0.6.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4a13a2fa9d0b63e5f22328828741e523766fff0ee9e779316902290dff3f824f"
+checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143"
 dependencies = [
  "fixedbitset",
  "indexmap",
@@ -1668,9 +1921,9 @@ dependencies = [
 
 [[package]]
 name = "pin-project-lite"
-version = "0.2.8"
+version = "0.2.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e280fbe77cc62c91527259e9442153f4688736748d24660126286329742b4c6c"
+checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
 
 [[package]]
 name = "pkg-config"
@@ -1705,28 +1958,34 @@ dependencies = [
 
 [[package]]
 name = "proc-macro2"
-version = "1.0.37"
+version = "1.0.42"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec757218438d5fda206afc041538b2f6d889286160d649a86a24d37e1235afd1"
+checksum = "c278e965f1d8cf32d6e0e96de3d3e79712178ae67986d9cf9151f51e95aac89b"
 dependencies = [
- "unicode-xid",
+ "unicode-ident",
 ]
 
 [[package]]
 name = "profiling"
-version = "1.0.5"
+version = "1.0.6"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9145ac0af1d93c638c98c40cf7d25665f427b2a44ad0a99b1dccf3e2f25bb987"
+checksum = "2f61dcf0b917cd75d4521d7343d1ffff3d1583054133c9b5cbea3375c703c40d"
 
 [[package]]
 name = "quote"
-version = "1.0.18"
+version = "1.0.20"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a1feb54ed693b93a84e14094943b84b7c4eae204c512b7ccb95ab0c66d278ad1"
+checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
 dependencies = [
  "proc-macro2",
 ]
 
+[[package]]
+name = "radsort"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "17fd96390ed3feda12e1dfe2645ed587e0bea749e319333f104a33ff62f77a0b"
+
 [[package]]
 name = "rand"
 version = "0.8.5"
@@ -1772,20 +2031,26 @@ dependencies = [
  "cty",
 ]
 
+[[package]]
+name = "rectangle-pack"
+version = "0.4.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb"
+
 [[package]]
 name = "redox_syscall"
-version = "0.2.13"
+version = "0.2.16"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62f25bc4c7e55e0b0b7a1d43fb893f4fa1361d0abe38b9ce4f323c2adfe6ef42"
+checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
 dependencies = [
  "bitflags",
 ]
 
 [[package]]
 name = "regex"
-version = "1.5.5"
+version = "1.6.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1a11647b6b25ff05a515cb92c365cec08801e83423a235b51e231e1808747286"
+checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
 dependencies = [
  "aho-corasick",
  "memchr",
@@ -1803,9 +2068,9 @@ dependencies = [
 
 [[package]]
 name = "regex-syntax"
-version = "0.6.25"
+version = "0.6.27"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f497285884f3fcff424ffc933e56d7cbca511def0c9831a7f9b5f6153e3cc89b"
+checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
 
 [[package]]
 name = "renderdoc-sys"
@@ -1815,9 +2080,9 @@ checksum = "f1382d1f0a252c4bf97dc20d979a2fdd05b024acd7c2ed0f7595d7817666a157"
 
 [[package]]
 name = "ron"
-version = "0.7.0"
+version = "0.7.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1b861ecaade43ac97886a512b360d01d66be9f41f3c61088b42cedf92e03d678"
+checksum = "88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a"
 dependencies = [
  "base64",
  "bitflags",
@@ -1832,15 +2097,15 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
 
 [[package]]
 name = "rustversion"
-version = "1.0.6"
+version = "1.0.8"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2cc38e8fa666e2de3c4aba7edeb5ffc5246c1c2ed0e3d17e560aeeba736b23f"
+checksum = "24c8ad4f0c00e1eb5bc7614d236a7f1300e3dbd76b68cac8e06fb00b015ad8d8"
 
 [[package]]
 name = "ryu"
-version = "1.0.9"
+version = "1.0.10"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73b4b750c782965c211b42f022f59af1fbceabdd026623714f104152f1ec149f"
+checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
 
 [[package]]
 name = "scoped-tls"
@@ -1856,18 +2121,18 @@ checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
 
 [[package]]
 name = "serde"
-version = "1.0.136"
+version = "1.0.140"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ce31e24b01e1e524df96f1c2fdd054405f8d7376249a5110886fb4b658484789"
+checksum = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03"
 dependencies = [
  "serde_derive",
 ]
 
 [[package]]
 name = "serde_derive"
-version = "1.0.136"
+version = "1.0.140"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08597e7152fcd306f41838ed3e37be9eaeed2b61c42e2117266a554fab4662f9"
+checksum = "6f2122636b9fe3b81f1cb25099fcf2d3f542cdb1d45940d56c713158884a05da"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -1876,9 +2141,9 @@ dependencies = [
 
 [[package]]
 name = "serde_json"
-version = "1.0.79"
+version = "1.0.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e8d9fa5c3b304765ce1fd9c4c8a3de2c8db365a5b91be52f186efc675681d95"
+checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
 dependencies = [
  "itoa",
  "ryu",
@@ -1896,9 +2161,12 @@ dependencies = [
 
 [[package]]
 name = "slab"
-version = "0.4.6"
+version = "0.4.7"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb703cfe953bccee95685111adeedb76fabe4e97549a58d16f03ea7b9367bb32"
+checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
+dependencies = [
+ "autocfg",
+]
 
 [[package]]
 name = "slotmap"
@@ -1911,9 +2179,9 @@ dependencies = [
 
 [[package]]
 name = "smallvec"
-version = "1.8.0"
+version = "1.9.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f2dd574626839106c320a323308629dcb1acfc96e32a8cba364ddc61ac23ee83"
+checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
 dependencies = [
  "serde",
 ]
@@ -1955,15 +2223,15 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
 
 [[package]]
 name = "strum"
-version = "0.24.0"
+version = "0.24.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e96acfc1b70604b8b2f1ffa4c57e59176c7dbb05d556c71ecd2f5498a1dee7f8"
+checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
 
 [[package]]
 name = "strum_macros"
-version = "0.24.0"
+version = "0.24.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6878079b17446e4d3eba6192bb0a2950d5b14f0ed8424b852310e5a94345d0ef"
+checksum = "4faebde00e8ff94316c01800f9054fd2ba77d30d9e922541913051d1d978918b"
 dependencies = [
  "heck",
  "proc-macro2",
@@ -1972,15 +2240,34 @@ dependencies = [
  "syn",
 ]
 
+[[package]]
+name = "svg_fmt"
+version = "0.4.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2"
+
 [[package]]
 name = "syn"
-version = "1.0.91"
+version = "1.0.98"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b683b2b825c8eef438b77c36a06dc262294da3d5a5813fac20da149241dcd44d"
+checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
 dependencies = [
  "proc-macro2",
  "quote",
- "unicode-xid",
+ "unicode-ident",
+]
+
+[[package]]
+name = "taffy"
+version = "0.1.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ec27dea659b100d489dffa57cf0efc6d7bfefb119af817b92cc14006c0b214e3"
+dependencies = [
+ "arrayvec",
+ "hash32",
+ "hash32-derive",
+ "num-traits",
+ "typenum",
 ]
 
 [[package]]
@@ -1994,18 +2281,18 @@ dependencies = [
 
 [[package]]
 name = "thiserror"
-version = "1.0.30"
+version = "1.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "854babe52e4df1653706b98fcfc05843010039b406875930a70e4d9644e5c417"
+checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a"
 dependencies = [
  "thiserror-impl",
 ]
 
 [[package]]
 name = "thiserror-impl"
-version = "1.0.30"
+version = "1.0.31"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aa32fd3f627f367fe16f893e2597ae3c05020f8bba2666a4e6ea73d377e5714b"
+checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2027,15 +2314,14 @@ version = "0.5.9"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
 dependencies = [
- "indexmap",
  "serde",
 ]
 
 [[package]]
 name = "tracing"
-version = "0.1.34"
+version = "0.1.36"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5d0ecdcb44a79f0fe9844f0c4f33a342cbcbb5117de8001e6ba0dc2351327d09"
+checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307"
 dependencies = [
  "cfg-if 1.0.0",
  "pin-project-lite",
@@ -2045,9 +2331,9 @@ dependencies = [
 
 [[package]]
 name = "tracing-attributes"
-version = "0.1.20"
+version = "0.1.22"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e65ce065b4b5c53e73bb28912318cb8c9e9ad3921f1d669eb0e68b4c8143a2b"
+checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2056,19 +2342,19 @@ dependencies = [
 
 [[package]]
 name = "tracing-core"
-version = "0.1.26"
+version = "0.1.29"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f54c8ca710e81886d498c2fd3331b56c93aa248d49de2222ad2742247c60072f"
+checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7"
 dependencies = [
- "lazy_static",
+ "once_cell",
  "valuable",
 ]
 
 [[package]]
 name = "tracing-log"
-version = "0.1.2"
+version = "0.1.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a6923477a48e41c1951f1999ef8bb5a3023eb723ceadafe78ffb65dc366761e3"
+checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
 dependencies = [
  "lazy_static",
  "log",
@@ -2077,13 +2363,13 @@ dependencies = [
 
 [[package]]
 name = "tracing-subscriber"
-version = "0.3.11"
+version = "0.3.15"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4bc28f93baff38037f64e6f43d34cfa1605f27a49c34e8a04c5e78b0babf2596"
+checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b"
 dependencies = [
  "ansi_term",
- "lazy_static",
  "matchers",
+ "once_cell",
  "regex",
  "sharded-slab",
  "smallvec",
@@ -2104,6 +2390,24 @@ dependencies = [
  "wasm-bindgen",
 ]
 
+[[package]]
+name = "ttf-parser"
+version = "0.15.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "7b3e06c9b9d80ed6b745c7159c40b311ad2916abb34a49e9be2653b90db0d8dd"
+
+[[package]]
+name = "typenum"
+version = "1.15.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
+
+[[package]]
+name = "unicode-ident"
+version = "1.0.2"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7"
+
 [[package]]
 name = "unicode-width"
 version = "0.1.9"
@@ -2112,15 +2416,15 @@ checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
 
 [[package]]
 name = "unicode-xid"
-version = "0.2.2"
+version = "0.2.3"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8ccb82d61f80a663efe1f787a51b16b5a51e3314d6ac365b08639f52387b33f3"
+checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04"
 
 [[package]]
 name = "uuid"
-version = "0.8.2"
+version = "1.1.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7"
+checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f"
 dependencies = [
  "getrandom",
  "serde",
@@ -2144,12 +2448,6 @@ version = "1.1.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
 
-[[package]]
-name = "wasi"
-version = "0.10.2+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd6fbd9a79829dd1ad0cc20627bf1ed606756a7f77edff7b66b7064f9cb327c6"
-
 [[package]]
 name = "wasi"
 version = "0.11.0+wasi-snapshot-preview1"
@@ -2158,9 +2456,9 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
 
 [[package]]
 name = "wasm-bindgen"
-version = "0.2.80"
+version = "0.2.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27370197c907c55e3f1a9fbe26f44e937fe6451368324e009cba39e139dc08ad"
+checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d"
 dependencies = [
  "cfg-if 1.0.0",
  "wasm-bindgen-macro",
@@ -2168,13 +2466,13 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-backend"
-version = "0.2.80"
+version = "0.2.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53e04185bfa3a779273da532f5025e33398409573f348985af9a1cbf3774d3f4"
+checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f"
 dependencies = [
  "bumpalo",
- "lazy_static",
  "log",
+ "once_cell",
  "proc-macro2",
  "quote",
  "syn",
@@ -2183,9 +2481,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-futures"
-version = "0.4.30"
+version = "0.4.32"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f741de44b75e14c35df886aff5f1eb73aa114fa5d4d00dcd37b5e01259bf3b2"
+checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad"
 dependencies = [
  "cfg-if 1.0.0",
  "js-sys",
@@ -2195,9 +2493,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro"
-version = "0.2.80"
+version = "0.2.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17cae7ff784d7e83a2fe7611cfe766ecf034111b49deb850a3dc7699c08251f5"
+checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602"
 dependencies = [
  "quote",
  "wasm-bindgen-macro-support",
@@ -2205,9 +2503,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-macro-support"
-version = "0.2.80"
+version = "0.2.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "99ec0dc7a4756fffc231aab1b9f2f578d23cd391390ab27f952ae0c9b3ece20b"
+checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da"
 dependencies = [
  "proc-macro2",
  "quote",
@@ -2218,9 +2516,9 @@ dependencies = [
 
 [[package]]
 name = "wasm-bindgen-shared"
-version = "0.2.80"
+version = "0.2.82"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d554b7f530dee5964d9a9468d95c1f8b8acae4f282807e7d27d4b03099a46744"
+checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a"
 
 [[package]]
 name = "wayland-client"
@@ -2296,9 +2594,9 @@ dependencies = [
 
 [[package]]
 name = "web-sys"
-version = "0.3.57"
+version = "0.3.59"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b17e741662c70c8bd24ac5c5b18de314a2c26c32bf8346ee1e6f53de919c283"
+checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1"
 dependencies = [
  "js-sys",
  "wasm-bindgen",
@@ -2306,15 +2604,15 @@ dependencies = [
 
 [[package]]
 name = "wgpu"
-version = "0.12.0"
+version = "0.13.1"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b97cd781ff044d6d697b632a2e212032c2e957d1afaa21dbf58069cbb8f78567"
+checksum = "277e967bf8b7820a76852645a6bce8bbd31c32fda2042e82d8e3ea75fda8892d"
 dependencies = [
  "arrayvec",
  "js-sys",
  "log",
  "naga",
- "parking_lot",
+ "parking_lot 0.12.1",
  "raw-window-handle",
  "smallvec",
  "wasm-bindgen",
@@ -2327,11 +2625,12 @@ dependencies = [
 
 [[package]]
 name = "wgpu-core"
-version = "0.12.2"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c4688c000eb841ca55f7b35db659b78d6e1cd77d7caf8fb929f4e181f754047d"
+checksum = "89b92788dec9d0c1bed849a1b83f01b2ee12819bf04a79c90f68e4173f7b5ba2"
 dependencies = [
  "arrayvec",
+ "bit-vec",
  "bitflags",
  "cfg_aliases",
  "codespan-reporting",
@@ -2339,21 +2638,23 @@ dependencies = [
  "fxhash",
  "log",
  "naga",
- "parking_lot",
+ "parking_lot 0.12.1",
  "profiling",
  "raw-window-handle",
  "smallvec",
  "thiserror",
+ "web-sys",
  "wgpu-hal",
  "wgpu-types",
 ]
 
 [[package]]
 name = "wgpu-hal"
-version = "0.12.4"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93b1a9400e8d7f32dd4dd909bb9a391015d70633d639775ddd3f14d1104bc970"
+checksum = "20cbdfc3d0637dba3d5536b93adef3d26023a0b96f0e1ee5ee9560a401d9f646"
 dependencies = [
+ "android_system_properties",
  "arrayvec",
  "ash",
  "bit-set",
@@ -2374,7 +2675,7 @@ dependencies = [
  "metal",
  "naga",
  "objc",
- "parking_lot",
+ "parking_lot 0.12.1",
  "profiling",
  "range-alloc",
  "raw-window-handle",
@@ -2388,9 +2689,9 @@ dependencies = [
 
 [[package]]
 name = "wgpu-types"
-version = "0.12.0"
+version = "0.13.2"
 source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "549533d9e1cdd4b4cda7718d33ff500fc4c34b5467b71d76b547ae0324f3b2a2"
+checksum = "1f762cbc08e1a51389859cf9c199c7aef544789cf3510889aab12c607f701604"
 dependencies = [
  "bitflags",
 ]
@@ -2426,6 +2727,49 @@ version = "0.4.0"
 source = "registry+https://github.com/rust-lang/crates.io-index"
 checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
 
+[[package]]
+name = "windows-sys"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
+dependencies = [
+ "windows_aarch64_msvc",
+ "windows_i686_gnu",
+ "windows_i686_msvc",
+ "windows_x86_64_gnu",
+ "windows_x86_64_msvc",
+]
+
+[[package]]
+name = "windows_aarch64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
+
+[[package]]
+name = "windows_i686_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
+
+[[package]]
+name = "windows_i686_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
+
+[[package]]
+name = "windows_x86_64_gnu"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
+
+[[package]]
+name = "windows_x86_64_msvc"
+version = "0.36.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
+
 [[package]]
 name = "winit"
 version = "0.26.1"
@@ -2447,7 +2791,7 @@ dependencies = [
  "ndk-glue",
  "ndk-sys",
  "objc",
- "parking_lot",
+ "parking_lot 0.11.2",
  "percent-encoding",
  "raw-window-handle",
  "smithay-client-toolkit",
@@ -2479,6 +2823,12 @@ dependencies = [
  "nom",
 ]
 
+[[package]]
+name = "xi-unicode"
+version = "0.3.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a"
+
 [[package]]
 name = "xml-rs"
 version = "0.8.4"
diff --git a/Cargo.toml b/Cargo.toml
index b864604..647cf3e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -1,6 +1,6 @@
 [package]
 name = "bevy_config_cam"
-version = "0.3.0"
+version = "0.4.0"
 authors = ["Black Phlox <bphlox@gmail.com>"]
 license = "MIT OR Apache-2.0"
 edition = "2021"
@@ -22,16 +22,17 @@ resolver = "2"
 name = "bevy_config_cam"
 
 [dependencies]
-rand = "0.8.0"
-strum = "0.24.0"
-strum_macros = "0.24.0"
+rand = "0.8"
+strum = "0.24"
+strum_macros = "0.24"
+bevy_dolly = { path="../bevy_dolly" }
 
 [dependencies.bevy]
-version = "0.7"
+version = "0.8.0"
 features = ["bevy_render","bevy_pbr"]
 default-features = false
 
 [dev-dependencies.bevy]
-version = "0.7"
-features = ["bevy_core_pipeline", "bevy_pbr", "bevy_gltf", "x11", "wayland"]
+version = "0.8.0"
+features = ["bevy_core_pipeline", "bevy_asset", "bevy_scene", "bevy_pbr", "bevy_gltf", "x11", "wayland"]
 default-features = false
\ No newline at end of file
diff --git a/examples/minimal.rs b/examples/minimal.rs
index 2b1ed9d..25b75d4 100644
--- a/examples/minimal.rs
+++ b/examples/minimal.rs
@@ -1,13 +1,15 @@
 //Base
 use bevy::prelude::*;
+use bevy::render::camera::ScalingMode;
 use bevy_config_cam::*;
+use bevy_dolly::prelude::*;
 
 fn main() {
     App::new()
-        .insert_resource(Msaa { samples: 4 })
         .add_plugins(DefaultPlugins)
         .add_plugin(ConfigCam)
         .add_startup_system(setup)
+        .add_system(update_yaw_driver)
         .run();
 }
 
@@ -16,7 +18,6 @@ fn setup(
     mut commands: Commands,
     mut meshes: ResMut<Assets<Mesh>>,
     mut materials: ResMut<Assets<StandardMaterial>>,
-    mut cl: ResMut<CamLogic>,
 ) {
     // plane
     commands.spawn_bundle(PbrBundle {
@@ -25,21 +26,63 @@ fn setup(
         ..Default::default()
     });
 
-    // cube, set as target
-    cl.target = Some(
-        commands
-            .spawn_bundle(PbrBundle {
-                mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
-                material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
-                transform: Transform::from_xyz(0.0, 0.5, 0.0),
-                ..Default::default()
-            })
-            .id(),
-    );
+    // cube
+    commands.spawn_bundle(PbrBundle {
+        mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
+        material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
+        transform: Transform::from_xyz(0.0, 0.5, 0.0),
+        ..Default::default()
+    });
 
     // light
     commands.spawn_bundle(PointLightBundle {
         transform: Transform::from_xyz(4.0, 8.0, 4.0),
         ..Default::default()
     });
+
+    commands.spawn().insert(
+        Rig::builder()
+            .with(YawPitch::new().yaw_degrees(45.0).pitch_degrees(-30.0))
+            .with(Smooth::new_rotation(1.5))
+            .with(Arm::new(Vec3::Z * 4.0))
+            .build(),
+    );
+
+    commands.spawn_bundle(Camera3dBundle {
+        transform: Transform::from_xyz(0.0, 5.0, 0.01).looking_at(Vec3::ZERO, Vec3::Y),
+        camera: Camera {
+            is_active: true,
+            ..Default::default()
+        },
+        projection: OrthographicProjection {
+            scale: 3.0,
+            scaling_mode: ScalingMode::FixedVertical(1.0),
+            ..default()
+        }
+        .into(),
+        ..Default::default()
+    });
+
+    commands.spawn_bundle(Camera3dBundle {
+        transform: Transform::from_xyz(5., 2.0, 0.).looking_at(Vec3::ZERO, Vec3::Y),
+        camera: Camera {
+            is_active: false,
+            ..Default::default()
+        },
+        ..Default::default()
+    });
+    //.insert(FlyCam);
+}
+
+fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut query: Query<&mut Rig>) {
+    for mut rig in &mut query {
+        if let Some(camera_driver) = rig.try_driver_mut::<YawPitch>() {
+            if keys.just_pressed(KeyCode::Z) {
+                camera_driver.rotate_yaw_pitch(-90.0, 0.0);
+            }
+            if keys.just_pressed(KeyCode::X) {
+                camera_driver.rotate_yaw_pitch(90.0, 0.0);
+            }
+        }
+    }
 }
diff --git a/src/lib.rs b/src/lib.rs
index aeb0dde..dd48622 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,709 +1,28 @@
-use bevy::{
-    ecs::{
-        event::{Events, ManualEventReader},
-        schedule::SystemSet,
-    },
-    input::mouse::{MouseMotion, MouseWheel},
-    prelude::*,
-    render::{
-        camera::Camera,
-        camera::CameraProjection,
-        camera::{ActiveCamera, Camera3d, PerspectiveProjection},
-    },
-    window::Windows,
-};
-
-use strum::IntoEnumIterator;
-use strum_macros::EnumIter;
-
-#[macro_export]
-macro_rules! next_enum {
-    ($l:ident, $k:expr) => {
-        $l::iter()
-            .enumerate()
-            .nth(
-                $l::iter()
-                    .enumerate()
-                    .find(|a| a.1 == *$k.current())
-                    .map(|(i, _)| {
-                        if i + 1 > $l::iter().count() - 1 {
-                            0usize
-                        } else {
-                            i + 1
-                        }
-                    })
-                    .unwrap(),
-            )
-            .unwrap()
-            .1
-    };
-}
-
-#[derive(Component)]
-pub struct PlayerMove;
-#[derive(Clone, Eq, PartialEq, Debug, Hash)]
-enum PluginState {
-    Enabled,
-    //Disabled,
-}
-
-#[derive(Clone, Eq, PartialEq, Debug, Hash, EnumIter)]
-enum ScrollType {
-    MovementSpeed,
-    Zoom,
-    Sensitivity,
-    Lerp,
-    CamFwd,
-}
-#[derive(Clone, Eq, PartialEq, Debug, Hash, EnumIter)]
-pub enum CameraState {
-    //Look at player and other targets if set
-    LookAt,
-    //Follow the player only
-    FollowStatic,
-    //Camera is moved above and pointed down, rotation bound to one axis
-    TopDown,
-    TopDownDirection,
-    //Follows behind the player a certain distance
-    FollowBehind,
-    //Camera at same position as player, enables to use the mouse to look (WIP)
-    Fps,
-    //Use the mouse to look and move the camera freely
-    Free,
-}
-
-pub struct PlayerKeyMap {
-    pub forward: &'static [KeyCode],
-    pub backward: &'static [KeyCode],
-    pub left: &'static [KeyCode],
-    pub right: &'static [KeyCode],
-    pub up: &'static [KeyCode],
-    pub down: &'static [KeyCode],
-    pub rot_left: &'static [KeyCode],
-    pub rot_right: &'static [KeyCode],
-}
-
-pub struct PlayerSettings {
-    pub player_asset: &'static str,
-    pub speed: f32,
-    pub map: PlayerKeyMap,
-    pub pos: Vec3,
-    pub cam_fwd: bool,
-}
-
-impl Default for PlayerKeyMap {
-    fn default() -> Self {
-        Self {
-            forward: &[KeyCode::Up],
-            backward: &[KeyCode::Down],
-            left: &[KeyCode::Comma],
-            right: &[KeyCode::Period],
-            up: &[KeyCode::RShift],
-            down: &[KeyCode::Minus],
-            rot_left: &[KeyCode::Left],
-            rot_right: &[KeyCode::Right],
-        }
-    }
-}
-
-impl Default for PlayerSettings {
-    fn default() -> Self {
-        Self {
-            player_asset: "",
-            speed: 12.0,
-            map: PlayerKeyMap::default(),
-            pos: Default::default(),
-            cam_fwd: false,
-        }
-    }
-}
-
-#[derive(Debug, Hash, PartialEq, Eq, Clone, SystemLabel)]
-struct MovementUpdate;
+use bevy::prelude::{App, Camera, Changed, Entity, Plugin, Query, Res, Time, Transform};
+use bevy_dolly::prelude::*;
 
 pub struct ConfigCam;
 impl Plugin for ConfigCam {
     fn build(&self, app: &mut App) {
-        app.init_resource::<CamLogic>()
-            .add_plugin(NoCameraPlayerPlugin)
-            .init_resource::<PlayerSettings>()
-            .add_state(PluginState::Enabled)
-            .add_state(CameraState::FollowBehind)
-            .add_state(ScrollType::MovementSpeed)
-            .add_system(toggle_camera_parent.after(MovementUpdate))
-            .add_system(switch_scroll_type.after(MovementUpdate))
-            .add_system(scroll.after(MovementUpdate))
-            .add_system(cycle_cam_state.after(MovementUpdate))
-            .add_system_set(SystemSet::on_enter(PluginState::Enabled).with_system(setup))
-            .add_system_set(
-                SystemSet::on_update(PluginState::Enabled)
-                    .with_system(move_player.after(MovementUpdate))
-                    .with_system(move_camera.label(MovementUpdate)),
-            );
+        app.add_system(config_cam_change_detection);
     }
 }
 
-#[derive(Default)]
-pub struct Player {
-    entity: Option<Entity>,
-}
-
-#[derive(Default)]
-pub struct CamLogic {
-    player: Player,
-    camera_should_focus: Vec3,
-    camera_is_focus: Vec3,
-    pub target: Option<Entity>,
-}
-
-const RESET_FOCUS: [f32; 3] = [0., 0., 0.];
-
-#[allow(unused_must_use)]
-fn cycle_cam_state(
-    mut cam_state: ResMut<State<CameraState>>,
-    settings: Res<MovementSettings>,
-    keyboard_input: Res<Input<KeyCode>>,
-) {
-    if keyboard_input
-        .get_just_pressed()
-        .any(|m| settings.map.next_cam.iter().any(|nc| m == nc))
-    {
-        let result = next_enum!(CameraState, cam_state);
-
-        println!("Camera: {:?}", result);
-        cam_state.set(result);
-    }
-}
-
-fn setup(
-    mut commands: Commands,
-    asset_server: Res<AssetServer>,
-    mut _cl: ResMut<CamLogic>,
-    settings: Res<PlayerSettings>,
-    mut meshes: ResMut<Assets<Mesh>>,
-    mut materials: ResMut<Assets<StandardMaterial>>,
-) {
-    let mut a = if settings.player_asset.is_empty() {
-        commands.spawn_bundle(PbrBundle {
-            mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
-            material: materials.add(Color::rgb(0.7, 0.3, 0.3).into()),
-            transform: Transform::from_xyz(0.0, 0.5, 0.0),
-            ..Default::default()
-        })
-    } else {
-        commands.spawn_bundle((
-            Transform {
-                translation: settings.pos,
-                rotation: Quat::from_rotation_y(-std::f32::consts::FRAC_PI_2),
-                ..Default::default()
-            },
-            GlobalTransform::identity(),
-        ))
-    };
-
-    let b = if settings.player_asset.is_empty() {
-        a.with_children(|_| {})
-    } else {
-        a.with_children(|cell| {
-            cell.spawn_scene(asset_server.load(settings.player_asset));
-        })
-    };
-
-    _cl.player.entity = Some(
-        b.insert(PlayerMove)
-            .with_children(|parent| {
-                parent
-                    .spawn_bundle(PerspectiveCameraBundle {
-                        transform: Transform::from_xyz(-2.0, 5.0, 5.0)
-                            .looking_at(Vec3::ZERO, Vec3::Y),
-                        ..Default::default()
-                    })
-                    .insert(PlayerCam);
-            })
-            .id(),
-    );
-
-    // camera
-    commands
-        .spawn_bundle(PerspectiveCameraBundle {
-            camera: Camera {
-                ..Default::default()
-            },
-            transform: Transform::from_xyz(-2.0, 5.0, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
-            ..Default::default()
-        })
-        .insert(FlyCam);
-}
-
-// control the cam logic character
-fn move_player(
-    keys: Res<Input<KeyCode>>,
+fn config_cam_change_detection(
+    mut cameras: Query<(&mut Transform, &Camera)>,
     time: Res<Time>,
-    settings: Res<PlayerSettings>,
-    mut transforms: Query<(&PlayerMove, &mut Transform)>,
+    mut query: Query<(Entity, &mut Rig), Changed<Rig>>,
 ) {
-    for (_player, mut transform) in transforms.iter_mut() {
-        let (_, mut rotation) = transform.rotation.to_axis_angle();
-        let mut velocity = Vec3::ZERO;
-        let local_z = transform.local_z();
-        //Forward should be togglable either xyz or cam direction xyz
-        let forward = if settings.cam_fwd {
-            Vec3::new(local_z.x, 0., local_z.z)
-        } else {
-            -Vec3::new(local_z.x, 0., local_z.z)
-        };
+    for (entity, mut rig) in &mut query {
+        //let d = rig.drivers.iter().map(|f| format!("{:?}", f)).collect::<Vec<String>>().join(", ");
+        //info!("{:?} changed: {:?}", entity, d);
 
-        let right = Vec3::new(local_z.z, 0., -local_z.x);
+        let transform = rig.update(time.delta_seconds());
 
-        for key in keys.get_pressed() {
-            if validate_key(settings.map.forward, key) {
-                velocity += forward
+        cameras.for_each_mut(|(mut t, camera)| {
+            if camera.is_active {
+                t.transform_2_bevy(transform);
             }
-            if validate_key(settings.map.backward, key) {
-                velocity -= forward
-            }
-            if validate_key(settings.map.left, key) {
-                velocity -= right
-            }
-            if validate_key(settings.map.right, key) {
-                velocity += right
-            }
-            if validate_key(settings.map.up, key) {
-                velocity += Vec3::Y
-            }
-            if validate_key(settings.map.down, key) {
-                velocity -= Vec3::Y
-            }
-            if validate_key(settings.map.rot_left, key) {
-                //Wrapping around
-                if rotation > std::f32::consts::FRAC_PI_2 * 4.0 - 0.05 {
-                    rotation = 0.0;
-                }
-                rotation += 0.1
-            }
-            if validate_key(settings.map.rot_right, key) {
-                //Wrapping around
-                if rotation < 0.05 {
-                    rotation = std::f32::consts::FRAC_PI_2 * 4.0;
-                }
-                rotation -= 0.1
-            }
-        }
-
-        velocity = velocity.normalize();
-
-        transform.rotation = Quat::from_rotation_y(rotation);
-
-        if !velocity.is_nan() {
-            transform.translation += velocity * time.delta_seconds() * 4.0;
-        }
-    }
-}
-
-// change the focus of the camera
-#[allow(clippy::type_complexity)]
-fn move_camera(
-    time: Res<Time>,
-    state: Res<State<CameraState>>,
-    mut cl: ResMut<CamLogic>,
-    mut settings: ResMut<MovementSettings>,
-    mut transforms: ParamSet<(Query<&mut Transform, With<Camera3d>>, Query<&Transform>)>,
-) {
-    let mut delta_trans = Transform::identity();
-    settings.disable_look = true;
-    settings.disable_move = false;
-    settings.locked_to_player = false;
-
-    match *state.current() {
-        CameraState::Free => {
-            settings.disable_look = false;
-            return;
-        }
-        CameraState::LookAt => {
-            // if there is both a player and a bonus, target the mid-point of them
-            if let (Some(player_entity), Some(bonus_entity)) = (cl.player.entity, cl.target) {
-                let transform_query = transforms.p1();
-                if let (Ok(player_transform), Ok(bonus_transform)) = (
-                    transform_query.get(player_entity),
-                    transform_query.get(bonus_entity),
-                ) {
-                    cl.camera_should_focus = player_transform
-                        .translation
-                        .lerp(bonus_transform.translation, settings.lerp);
-                }
-            // otherwise, if there is only a player, target the player
-            } else if let Some(player_entity) = cl.player.entity {
-                if let Ok(player_transform) = transforms.p1().get(player_entity) {
-                    cl.camera_should_focus = player_transform.translation;
-                }
-            // otherwise, target the middle
-            } else {
-                cl.camera_should_focus = Vec3::from(RESET_FOCUS);
-            }
-        }
-        _ => {
-            if let Some(player_entity) = cl.player.entity {
-                if let Ok(player_transform) = transforms.p1().get(player_entity) {
-                    match *state.current() {
-                        CameraState::Fps => {
-                            delta_trans.translation = player_transform.translation;
-                            settings.disable_move = true;
-
-                            settings.disable_look = false;
-                            delta_trans.rotation = player_transform.rotation;
-                            delta_trans.translation += Vec3::new(/*-4.*/ 0., 1., 0.);
-                        }
-                        CameraState::TopDown => {
-                            delta_trans.translation = player_transform.translation;
-                            settings.disable_move = true;
-
-                            delta_trans.translation +=
-                                Vec3::new(/*-4.*/ 0., settings.dist, 0.);
-                            delta_trans.rotation =
-                                Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)
-                        }
-                        CameraState::TopDownDirection => {
-                            settings.disable_move = true;
-                            settings.locked_to_player = true;
-
-                            delta_trans.translation +=
-                                Vec3::new(/*-4.*/ 0., settings.dist, 0.);
-                            delta_trans.rotation =
-                                Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2);
-                        }
-                        CameraState::FollowBehind => {
-                            settings.disable_move = true;
-
-                            settings.locked_to_player = true;
-
-                            delta_trans.translation += Vec3::new(/*-4.*/ 0., 1., 4.);
-                        }
-                        _ => {}
-                    }
-                    cl.camera_should_focus = player_transform.translation;
-                }
-            // otherwise, target the middle
-            } else {
-                cl.camera_should_focus = Vec3::from(RESET_FOCUS);
-            }
-        }
-    }
-
-    const SPEED: f32 = 2.0;
-
-    // calculate the camera motion based on the difference between where the camera is looking
-    // and where it should be looking; the greater the distance, the faster the motion;
-    // smooth out the camera movement using the frame time
-    let mut camera_motion = cl.camera_should_focus - cl.camera_is_focus;
-    if camera_motion.length() > 0.2 {
-        camera_motion *= SPEED * time.delta_seconds();
-        // set the new camera's actual focus
-        cl.camera_is_focus += camera_motion;
-    }
-    // look at that new camera's actual focus
-    for mut transform in transforms.p0().iter_mut() {
-        if delta_trans.translation != Vec3::ZERO {
-            *transform = delta_trans
-        } else {
-            *transform = transform.looking_at(cl.camera_is_focus, Vec3::Y)
-        }
-    }
-}
-
-#[allow(clippy::type_complexity)]
-fn toggle_camera_parent(
-    mut act_cams: ResMut<ActiveCamera<Camera3d>>,
-    mut settings: ResMut<MovementSettings>,
-    mut query: ParamSet<(Query<(&FlyCam, Entity)>, Query<(&PlayerCam, Entity)>)>,
-) {
-    if settings.locked_to_player && !settings.ltp {
-        let p1 = query.p1();
-        let (_, b) = p1.single();
-        act_cams.set(b);
-
-        settings.ltp = true;
-    } else if !settings.locked_to_player && settings.ltp {
-        let pr = query.p0();
-        let (_, b) = pr.single();
-        act_cams.set(b);
-        settings.ltp = false;
-    }
-}
-
-// Listens for Z key being pressed and toggles between the scroll-type states
-#[allow(unused_must_use)]
-fn switch_scroll_type(
-    mut scroll_type: ResMut<State<ScrollType>>,
-    keyboard_input: Res<Input<KeyCode>>,
-) {
-    if keyboard_input.just_pressed(KeyCode::E) {
-        let result = next_enum!(ScrollType, scroll_type);
-
-        println!("{:?}", result);
-        scroll_type.set(result);
-    }
-}
-
-// Depending on the state, the mouse-scroll changes either the movement speed or the field-of-view of the camera
-fn scroll(
-    mut settings: ResMut<MovementSettings>,
-    mut p_settings: ResMut<PlayerSettings>,
-    scroll_type: Res<State<ScrollType>>,
-    mut mouse_wheel_events: EventReader<MouseWheel>,
-    windows: Res<Windows>,
-    mut query: Query<(&FlyCam, &mut Camera, &mut PerspectiveProjection)>,
-) {
-    for event in mouse_wheel_events.iter() {
-        match *scroll_type.current() {
-            ScrollType::MovementSpeed => {
-                settings.speed = (settings.speed + event.y * 0.1).abs();
-                println!("Speed: {:?}", settings.speed);
-            }
-            ScrollType::Sensitivity => {
-                settings.sensitivity = (settings.sensitivity + event.y * 0.000001).abs();
-                println!("Sensitivity: {:?}", settings.sensitivity);
-            }
-            ScrollType::Zoom => {
-                for (_camera, mut camera, mut project) in query.iter_mut() {
-                    project.fov = (project.fov - event.y * 0.01).abs();
-                    let prim = windows.get_primary().unwrap();
-
-                    //Calculate projection with new fov
-                    project.update(prim.width(), prim.height());
-
-                    //Update camera with the new fov
-                    camera.projection_matrix = project.get_projection_matrix();
-                    camera.depth_calculation = project.depth_calculation();
-
-                    println!("FOV: {:?}", project.fov);
-                }
-            }
-            ScrollType::Lerp => {
-                settings.lerp = (settings.lerp + event.y * 0.01).abs();
-                println!("Lerp: {:?}", settings.lerp);
-            }
-            ScrollType::CamFwd => {
-                if event.y > 0.01 {
-                    p_settings.cam_fwd = !p_settings.cam_fwd;
-                }
-                println!("CamFwd: {:?}", p_settings.cam_fwd);
-            }
-        }
-    }
-}
-
-//bevy_flycam by sburris0 - https://github.com/sburris0/bevy_flycam
-
-/// Keeps track of mouse motion events, pitch, and yaw
-#[derive(Default)]
-struct InputState {
-    reader_motion: ManualEventReader<MouseMotion>,
-    pitch: f32,
-    yaw: f32,
-}
-
-pub struct CamKeyMap {
-    pub forward: &'static [KeyCode],
-    pub backward: &'static [KeyCode],
-    pub left: &'static [KeyCode],
-    pub right: &'static [KeyCode],
-    pub up: &'static [KeyCode],
-    pub down: &'static [KeyCode],
-    pub next_cam: &'static [KeyCode],
-    pub next_setting: &'static [KeyCode],
-}
-
-impl Default for CamKeyMap {
-    fn default() -> Self {
-        Self {
-            forward: &[KeyCode::W],
-            backward: &[KeyCode::S],
-            left: &[KeyCode::A],
-            right: &[KeyCode::D],
-            up: &[KeyCode::Space],
-            down: &[KeyCode::LShift],
-            next_cam: &[KeyCode::C],
-            next_setting: &[KeyCode::E],
-        }
-    }
-}
-
-/// Mouse sensitivity and movement speed
-pub struct MovementSettings {
-    pub sensitivity: f32,
-    pub speed: f32,
-    pub dist: f32,
-    pub map: CamKeyMap,
-    //pub force_cam: &'static[CameraState],
-    pub disable_move: bool,
-    pub disable_look: bool,
-    pub locked_to_player: bool,
-    pub lerp: f32,
-
-    pub ltp: bool,
-}
-
-impl Default for MovementSettings {
-    fn default() -> Self {
-        Self {
-            sensitivity: 0.00012,
-            speed: 12.,
-            dist: 10.,
-            map: CamKeyMap::default(),
-            disable_move: false,
-            disable_look: false,
-            locked_to_player: false,
-            lerp: 0.5,
-            ltp: false,
-        }
-    }
-}
-
-/// Used in queries when you want flycams and not other cameras
-
-#[derive(Component)]
-struct FlyCam;
-#[derive(Component)]
-struct PlayerCam;
-
-/// Grabs/ungrabs mouse cursor
-fn toggle_grab_cursor(window: &mut Window) {
-    window.set_cursor_lock_mode(!window.cursor_locked());
-    window.set_cursor_visibility(!window.cursor_visible());
-}
-
-/// Grabs the cursor when game first starts
-fn initial_grab_cursor(mut windows: ResMut<Windows>) {
-    toggle_grab_cursor(windows.get_primary_mut().unwrap());
-}
-
-/// Spawns the `Camera3dBundle` to be controlled
-fn setup_player(mut commands: Commands) {
-    commands
-        .spawn_bundle(PerspectiveCameraBundle {
-            transform: Transform::from_xyz(-2.0, 5.0, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
-            ..Default::default()
-        })
-        .insert(FlyCam);
-}
-
-/// Handles keyboard input and movement
-fn player_move(
-    keys: Res<Input<KeyCode>>,
-    time: Res<Time>,
-    windows: Res<Windows>,
-    settings: Res<MovementSettings>,
-    mut query: Query<(&FlyCam, &mut Transform)>,
-) {
-    if settings.disable_move {
-        return;
-    }
-    let window = windows.get_primary().unwrap();
-    for (_camera, mut transform) in query.iter_mut() {
-        let mut velocity = Vec3::ZERO;
-        let local_z = transform.local_z();
-        let forward = -Vec3::new(local_z.x, 0., local_z.z);
-        let right = Vec3::new(local_z.z, 0., -local_z.x);
-
-        for key in keys.get_pressed() {
-            if window.cursor_locked() {
-                if validate_key(settings.map.forward, key) {
-                    velocity += forward
-                }
-                if validate_key(settings.map.backward, key) {
-                    velocity -= forward
-                }
-                if validate_key(settings.map.left, key) {
-                    velocity -= right
-                }
-                if validate_key(settings.map.right, key) {
-                    velocity += right
-                }
-                if validate_key(settings.map.up, key) {
-                    velocity += Vec3::Y
-                }
-                if validate_key(settings.map.down, key) {
-                    velocity -= Vec3::Y
-                }
-            }
-        }
-
-        velocity = velocity.normalize();
-
-        if !velocity.is_nan() {
-            transform.translation += velocity * time.delta_seconds() * settings.speed
-        }
-    }
-}
-
-pub fn validate_key<T>(codes: &'static [T], key: &T) -> bool
-where
-    T: PartialEq<T>,
-{
-    codes.iter().any(|m| m == key)
-}
-
-/// Handles looking around if cursor is locked
-fn player_look(
-    settings: Res<MovementSettings>,
-    windows: Res<Windows>,
-    mut state: ResMut<InputState>,
-    motion: Res<Events<MouseMotion>>,
-    mut query: Query<(&FlyCam, &mut Transform)>,
-) {
-    if settings.disable_look {
-        return;
-    }
-    let window = windows.get_primary().unwrap();
-    let mut state_delta = state.as_mut();
-    for (_camera, mut transform) in query.iter_mut() {
-        for ev in state_delta.reader_motion.iter(&motion) {
-            if window.cursor_locked() {
-                state_delta.pitch -=
-                    (settings.sensitivity * ev.delta.y * window.height()).to_radians();
-                state_delta.yaw -=
-                    (settings.sensitivity * ev.delta.x * window.width()).to_radians();
-            }
-
-            state_delta.pitch = state_delta.pitch.clamp(-1.54, 1.54);
-
-            // Order is important to prevent unintended roll
-            transform.rotation = Quat::from_axis_angle(Vec3::Y, state_delta.yaw)
-                * Quat::from_axis_angle(Vec3::X, state_delta.pitch);
-        }
-    }
-}
-
-fn cursor_grab(keys: Res<Input<KeyCode>>, mut windows: ResMut<Windows>) {
-    let window = windows.get_primary_mut().unwrap();
-    if keys.just_pressed(KeyCode::Escape) {
-        toggle_grab_cursor(window);
-    }
-}
-
-/// Contains everything needed to add first-person fly camera behavior to your game
-pub struct PlayerPlugin;
-impl Plugin for PlayerPlugin {
-    fn build(&self, app: &mut App) {
-        app.init_resource::<InputState>()
-            .init_resource::<MovementSettings>()
-            .add_startup_system(setup_player)
-            .add_startup_system(initial_grab_cursor)
-            .add_system(player_move.before(MovementUpdate))
-            .add_system(player_look.after(MovementUpdate))
-            .add_system(cursor_grab.after(MovementUpdate));
-    }
-}
-
-/// Same as `PlayerPlugin` but does not spawn a camera
-pub struct NoCameraPlayerPlugin;
-impl Plugin for NoCameraPlayerPlugin {
-    fn build(&self, app: &mut App) {
-        app.init_resource::<InputState>()
-            .init_resource::<MovementSettings>()
-            .add_startup_system(initial_grab_cursor)
-            .add_system(player_move.before(MovementUpdate))
-            .add_system(player_look.after(MovementUpdate))
-            .add_system(cursor_grab.after(MovementUpdate));
+        });
     }
 }
diff --git a/src/lib2.rs b/src/lib2.rs
new file mode 100644
index 0000000..aeb0dde
--- /dev/null
+++ b/src/lib2.rs
@@ -0,0 +1,709 @@
+use bevy::{
+    ecs::{
+        event::{Events, ManualEventReader},
+        schedule::SystemSet,
+    },
+    input::mouse::{MouseMotion, MouseWheel},
+    prelude::*,
+    render::{
+        camera::Camera,
+        camera::CameraProjection,
+        camera::{ActiveCamera, Camera3d, PerspectiveProjection},
+    },
+    window::Windows,
+};
+
+use strum::IntoEnumIterator;
+use strum_macros::EnumIter;
+
+#[macro_export]
+macro_rules! next_enum {
+    ($l:ident, $k:expr) => {
+        $l::iter()
+            .enumerate()
+            .nth(
+                $l::iter()
+                    .enumerate()
+                    .find(|a| a.1 == *$k.current())
+                    .map(|(i, _)| {
+                        if i + 1 > $l::iter().count() - 1 {
+                            0usize
+                        } else {
+                            i + 1
+                        }
+                    })
+                    .unwrap(),
+            )
+            .unwrap()
+            .1
+    };
+}
+
+#[derive(Component)]
+pub struct PlayerMove;
+#[derive(Clone, Eq, PartialEq, Debug, Hash)]
+enum PluginState {
+    Enabled,
+    //Disabled,
+}
+
+#[derive(Clone, Eq, PartialEq, Debug, Hash, EnumIter)]
+enum ScrollType {
+    MovementSpeed,
+    Zoom,
+    Sensitivity,
+    Lerp,
+    CamFwd,
+}
+#[derive(Clone, Eq, PartialEq, Debug, Hash, EnumIter)]
+pub enum CameraState {
+    //Look at player and other targets if set
+    LookAt,
+    //Follow the player only
+    FollowStatic,
+    //Camera is moved above and pointed down, rotation bound to one axis
+    TopDown,
+    TopDownDirection,
+    //Follows behind the player a certain distance
+    FollowBehind,
+    //Camera at same position as player, enables to use the mouse to look (WIP)
+    Fps,
+    //Use the mouse to look and move the camera freely
+    Free,
+}
+
+pub struct PlayerKeyMap {
+    pub forward: &'static [KeyCode],
+    pub backward: &'static [KeyCode],
+    pub left: &'static [KeyCode],
+    pub right: &'static [KeyCode],
+    pub up: &'static [KeyCode],
+    pub down: &'static [KeyCode],
+    pub rot_left: &'static [KeyCode],
+    pub rot_right: &'static [KeyCode],
+}
+
+pub struct PlayerSettings {
+    pub player_asset: &'static str,
+    pub speed: f32,
+    pub map: PlayerKeyMap,
+    pub pos: Vec3,
+    pub cam_fwd: bool,
+}
+
+impl Default for PlayerKeyMap {
+    fn default() -> Self {
+        Self {
+            forward: &[KeyCode::Up],
+            backward: &[KeyCode::Down],
+            left: &[KeyCode::Comma],
+            right: &[KeyCode::Period],
+            up: &[KeyCode::RShift],
+            down: &[KeyCode::Minus],
+            rot_left: &[KeyCode::Left],
+            rot_right: &[KeyCode::Right],
+        }
+    }
+}
+
+impl Default for PlayerSettings {
+    fn default() -> Self {
+        Self {
+            player_asset: "",
+            speed: 12.0,
+            map: PlayerKeyMap::default(),
+            pos: Default::default(),
+            cam_fwd: false,
+        }
+    }
+}
+
+#[derive(Debug, Hash, PartialEq, Eq, Clone, SystemLabel)]
+struct MovementUpdate;
+
+pub struct ConfigCam;
+impl Plugin for ConfigCam {
+    fn build(&self, app: &mut App) {
+        app.init_resource::<CamLogic>()
+            .add_plugin(NoCameraPlayerPlugin)
+            .init_resource::<PlayerSettings>()
+            .add_state(PluginState::Enabled)
+            .add_state(CameraState::FollowBehind)
+            .add_state(ScrollType::MovementSpeed)
+            .add_system(toggle_camera_parent.after(MovementUpdate))
+            .add_system(switch_scroll_type.after(MovementUpdate))
+            .add_system(scroll.after(MovementUpdate))
+            .add_system(cycle_cam_state.after(MovementUpdate))
+            .add_system_set(SystemSet::on_enter(PluginState::Enabled).with_system(setup))
+            .add_system_set(
+                SystemSet::on_update(PluginState::Enabled)
+                    .with_system(move_player.after(MovementUpdate))
+                    .with_system(move_camera.label(MovementUpdate)),
+            );
+    }
+}
+
+#[derive(Default)]
+pub struct Player {
+    entity: Option<Entity>,
+}
+
+#[derive(Default)]
+pub struct CamLogic {
+    player: Player,
+    camera_should_focus: Vec3,
+    camera_is_focus: Vec3,
+    pub target: Option<Entity>,
+}
+
+const RESET_FOCUS: [f32; 3] = [0., 0., 0.];
+
+#[allow(unused_must_use)]
+fn cycle_cam_state(
+    mut cam_state: ResMut<State<CameraState>>,
+    settings: Res<MovementSettings>,
+    keyboard_input: Res<Input<KeyCode>>,
+) {
+    if keyboard_input
+        .get_just_pressed()
+        .any(|m| settings.map.next_cam.iter().any(|nc| m == nc))
+    {
+        let result = next_enum!(CameraState, cam_state);
+
+        println!("Camera: {:?}", result);
+        cam_state.set(result);
+    }
+}
+
+fn setup(
+    mut commands: Commands,
+    asset_server: Res<AssetServer>,
+    mut _cl: ResMut<CamLogic>,
+    settings: Res<PlayerSettings>,
+    mut meshes: ResMut<Assets<Mesh>>,
+    mut materials: ResMut<Assets<StandardMaterial>>,
+) {
+    let mut a = if settings.player_asset.is_empty() {
+        commands.spawn_bundle(PbrBundle {
+            mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
+            material: materials.add(Color::rgb(0.7, 0.3, 0.3).into()),
+            transform: Transform::from_xyz(0.0, 0.5, 0.0),
+            ..Default::default()
+        })
+    } else {
+        commands.spawn_bundle((
+            Transform {
+                translation: settings.pos,
+                rotation: Quat::from_rotation_y(-std::f32::consts::FRAC_PI_2),
+                ..Default::default()
+            },
+            GlobalTransform::identity(),
+        ))
+    };
+
+    let b = if settings.player_asset.is_empty() {
+        a.with_children(|_| {})
+    } else {
+        a.with_children(|cell| {
+            cell.spawn_scene(asset_server.load(settings.player_asset));
+        })
+    };
+
+    _cl.player.entity = Some(
+        b.insert(PlayerMove)
+            .with_children(|parent| {
+                parent
+                    .spawn_bundle(PerspectiveCameraBundle {
+                        transform: Transform::from_xyz(-2.0, 5.0, 5.0)
+                            .looking_at(Vec3::ZERO, Vec3::Y),
+                        ..Default::default()
+                    })
+                    .insert(PlayerCam);
+            })
+            .id(),
+    );
+
+    // camera
+    commands
+        .spawn_bundle(PerspectiveCameraBundle {
+            camera: Camera {
+                ..Default::default()
+            },
+            transform: Transform::from_xyz(-2.0, 5.0, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
+            ..Default::default()
+        })
+        .insert(FlyCam);
+}
+
+// control the cam logic character
+fn move_player(
+    keys: Res<Input<KeyCode>>,
+    time: Res<Time>,
+    settings: Res<PlayerSettings>,
+    mut transforms: Query<(&PlayerMove, &mut Transform)>,
+) {
+    for (_player, mut transform) in transforms.iter_mut() {
+        let (_, mut rotation) = transform.rotation.to_axis_angle();
+        let mut velocity = Vec3::ZERO;
+        let local_z = transform.local_z();
+        //Forward should be togglable either xyz or cam direction xyz
+        let forward = if settings.cam_fwd {
+            Vec3::new(local_z.x, 0., local_z.z)
+        } else {
+            -Vec3::new(local_z.x, 0., local_z.z)
+        };
+
+        let right = Vec3::new(local_z.z, 0., -local_z.x);
+
+        for key in keys.get_pressed() {
+            if validate_key(settings.map.forward, key) {
+                velocity += forward
+            }
+            if validate_key(settings.map.backward, key) {
+                velocity -= forward
+            }
+            if validate_key(settings.map.left, key) {
+                velocity -= right
+            }
+            if validate_key(settings.map.right, key) {
+                velocity += right
+            }
+            if validate_key(settings.map.up, key) {
+                velocity += Vec3::Y
+            }
+            if validate_key(settings.map.down, key) {
+                velocity -= Vec3::Y
+            }
+            if validate_key(settings.map.rot_left, key) {
+                //Wrapping around
+                if rotation > std::f32::consts::FRAC_PI_2 * 4.0 - 0.05 {
+                    rotation = 0.0;
+                }
+                rotation += 0.1
+            }
+            if validate_key(settings.map.rot_right, key) {
+                //Wrapping around
+                if rotation < 0.05 {
+                    rotation = std::f32::consts::FRAC_PI_2 * 4.0;
+                }
+                rotation -= 0.1
+            }
+        }
+
+        velocity = velocity.normalize();
+
+        transform.rotation = Quat::from_rotation_y(rotation);
+
+        if !velocity.is_nan() {
+            transform.translation += velocity * time.delta_seconds() * 4.0;
+        }
+    }
+}
+
+// change the focus of the camera
+#[allow(clippy::type_complexity)]
+fn move_camera(
+    time: Res<Time>,
+    state: Res<State<CameraState>>,
+    mut cl: ResMut<CamLogic>,
+    mut settings: ResMut<MovementSettings>,
+    mut transforms: ParamSet<(Query<&mut Transform, With<Camera3d>>, Query<&Transform>)>,
+) {
+    let mut delta_trans = Transform::identity();
+    settings.disable_look = true;
+    settings.disable_move = false;
+    settings.locked_to_player = false;
+
+    match *state.current() {
+        CameraState::Free => {
+            settings.disable_look = false;
+            return;
+        }
+        CameraState::LookAt => {
+            // if there is both a player and a bonus, target the mid-point of them
+            if let (Some(player_entity), Some(bonus_entity)) = (cl.player.entity, cl.target) {
+                let transform_query = transforms.p1();
+                if let (Ok(player_transform), Ok(bonus_transform)) = (
+                    transform_query.get(player_entity),
+                    transform_query.get(bonus_entity),
+                ) {
+                    cl.camera_should_focus = player_transform
+                        .translation
+                        .lerp(bonus_transform.translation, settings.lerp);
+                }
+            // otherwise, if there is only a player, target the player
+            } else if let Some(player_entity) = cl.player.entity {
+                if let Ok(player_transform) = transforms.p1().get(player_entity) {
+                    cl.camera_should_focus = player_transform.translation;
+                }
+            // otherwise, target the middle
+            } else {
+                cl.camera_should_focus = Vec3::from(RESET_FOCUS);
+            }
+        }
+        _ => {
+            if let Some(player_entity) = cl.player.entity {
+                if let Ok(player_transform) = transforms.p1().get(player_entity) {
+                    match *state.current() {
+                        CameraState::Fps => {
+                            delta_trans.translation = player_transform.translation;
+                            settings.disable_move = true;
+
+                            settings.disable_look = false;
+                            delta_trans.rotation = player_transform.rotation;
+                            delta_trans.translation += Vec3::new(/*-4.*/ 0., 1., 0.);
+                        }
+                        CameraState::TopDown => {
+                            delta_trans.translation = player_transform.translation;
+                            settings.disable_move = true;
+
+                            delta_trans.translation +=
+                                Vec3::new(/*-4.*/ 0., settings.dist, 0.);
+                            delta_trans.rotation =
+                                Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)
+                        }
+                        CameraState::TopDownDirection => {
+                            settings.disable_move = true;
+                            settings.locked_to_player = true;
+
+                            delta_trans.translation +=
+                                Vec3::new(/*-4.*/ 0., settings.dist, 0.);
+                            delta_trans.rotation =
+                                Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2);
+                        }
+                        CameraState::FollowBehind => {
+                            settings.disable_move = true;
+
+                            settings.locked_to_player = true;
+
+                            delta_trans.translation += Vec3::new(/*-4.*/ 0., 1., 4.);
+                        }
+                        _ => {}
+                    }
+                    cl.camera_should_focus = player_transform.translation;
+                }
+            // otherwise, target the middle
+            } else {
+                cl.camera_should_focus = Vec3::from(RESET_FOCUS);
+            }
+        }
+    }
+
+    const SPEED: f32 = 2.0;
+
+    // calculate the camera motion based on the difference between where the camera is looking
+    // and where it should be looking; the greater the distance, the faster the motion;
+    // smooth out the camera movement using the frame time
+    let mut camera_motion = cl.camera_should_focus - cl.camera_is_focus;
+    if camera_motion.length() > 0.2 {
+        camera_motion *= SPEED * time.delta_seconds();
+        // set the new camera's actual focus
+        cl.camera_is_focus += camera_motion;
+    }
+    // look at that new camera's actual focus
+    for mut transform in transforms.p0().iter_mut() {
+        if delta_trans.translation != Vec3::ZERO {
+            *transform = delta_trans
+        } else {
+            *transform = transform.looking_at(cl.camera_is_focus, Vec3::Y)
+        }
+    }
+}
+
+#[allow(clippy::type_complexity)]
+fn toggle_camera_parent(
+    mut act_cams: ResMut<ActiveCamera<Camera3d>>,
+    mut settings: ResMut<MovementSettings>,
+    mut query: ParamSet<(Query<(&FlyCam, Entity)>, Query<(&PlayerCam, Entity)>)>,
+) {
+    if settings.locked_to_player && !settings.ltp {
+        let p1 = query.p1();
+        let (_, b) = p1.single();
+        act_cams.set(b);
+
+        settings.ltp = true;
+    } else if !settings.locked_to_player && settings.ltp {
+        let pr = query.p0();
+        let (_, b) = pr.single();
+        act_cams.set(b);
+        settings.ltp = false;
+    }
+}
+
+// Listens for Z key being pressed and toggles between the scroll-type states
+#[allow(unused_must_use)]
+fn switch_scroll_type(
+    mut scroll_type: ResMut<State<ScrollType>>,
+    keyboard_input: Res<Input<KeyCode>>,
+) {
+    if keyboard_input.just_pressed(KeyCode::E) {
+        let result = next_enum!(ScrollType, scroll_type);
+
+        println!("{:?}", result);
+        scroll_type.set(result);
+    }
+}
+
+// Depending on the state, the mouse-scroll changes either the movement speed or the field-of-view of the camera
+fn scroll(
+    mut settings: ResMut<MovementSettings>,
+    mut p_settings: ResMut<PlayerSettings>,
+    scroll_type: Res<State<ScrollType>>,
+    mut mouse_wheel_events: EventReader<MouseWheel>,
+    windows: Res<Windows>,
+    mut query: Query<(&FlyCam, &mut Camera, &mut PerspectiveProjection)>,
+) {
+    for event in mouse_wheel_events.iter() {
+        match *scroll_type.current() {
+            ScrollType::MovementSpeed => {
+                settings.speed = (settings.speed + event.y * 0.1).abs();
+                println!("Speed: {:?}", settings.speed);
+            }
+            ScrollType::Sensitivity => {
+                settings.sensitivity = (settings.sensitivity + event.y * 0.000001).abs();
+                println!("Sensitivity: {:?}", settings.sensitivity);
+            }
+            ScrollType::Zoom => {
+                for (_camera, mut camera, mut project) in query.iter_mut() {
+                    project.fov = (project.fov - event.y * 0.01).abs();
+                    let prim = windows.get_primary().unwrap();
+
+                    //Calculate projection with new fov
+                    project.update(prim.width(), prim.height());
+
+                    //Update camera with the new fov
+                    camera.projection_matrix = project.get_projection_matrix();
+                    camera.depth_calculation = project.depth_calculation();
+
+                    println!("FOV: {:?}", project.fov);
+                }
+            }
+            ScrollType::Lerp => {
+                settings.lerp = (settings.lerp + event.y * 0.01).abs();
+                println!("Lerp: {:?}", settings.lerp);
+            }
+            ScrollType::CamFwd => {
+                if event.y > 0.01 {
+                    p_settings.cam_fwd = !p_settings.cam_fwd;
+                }
+                println!("CamFwd: {:?}", p_settings.cam_fwd);
+            }
+        }
+    }
+}
+
+//bevy_flycam by sburris0 - https://github.com/sburris0/bevy_flycam
+
+/// Keeps track of mouse motion events, pitch, and yaw
+#[derive(Default)]
+struct InputState {
+    reader_motion: ManualEventReader<MouseMotion>,
+    pitch: f32,
+    yaw: f32,
+}
+
+pub struct CamKeyMap {
+    pub forward: &'static [KeyCode],
+    pub backward: &'static [KeyCode],
+    pub left: &'static [KeyCode],
+    pub right: &'static [KeyCode],
+    pub up: &'static [KeyCode],
+    pub down: &'static [KeyCode],
+    pub next_cam: &'static [KeyCode],
+    pub next_setting: &'static [KeyCode],
+}
+
+impl Default for CamKeyMap {
+    fn default() -> Self {
+        Self {
+            forward: &[KeyCode::W],
+            backward: &[KeyCode::S],
+            left: &[KeyCode::A],
+            right: &[KeyCode::D],
+            up: &[KeyCode::Space],
+            down: &[KeyCode::LShift],
+            next_cam: &[KeyCode::C],
+            next_setting: &[KeyCode::E],
+        }
+    }
+}
+
+/// Mouse sensitivity and movement speed
+pub struct MovementSettings {
+    pub sensitivity: f32,
+    pub speed: f32,
+    pub dist: f32,
+    pub map: CamKeyMap,
+    //pub force_cam: &'static[CameraState],
+    pub disable_move: bool,
+    pub disable_look: bool,
+    pub locked_to_player: bool,
+    pub lerp: f32,
+
+    pub ltp: bool,
+}
+
+impl Default for MovementSettings {
+    fn default() -> Self {
+        Self {
+            sensitivity: 0.00012,
+            speed: 12.,
+            dist: 10.,
+            map: CamKeyMap::default(),
+            disable_move: false,
+            disable_look: false,
+            locked_to_player: false,
+            lerp: 0.5,
+            ltp: false,
+        }
+    }
+}
+
+/// Used in queries when you want flycams and not other cameras
+
+#[derive(Component)]
+struct FlyCam;
+#[derive(Component)]
+struct PlayerCam;
+
+/// Grabs/ungrabs mouse cursor
+fn toggle_grab_cursor(window: &mut Window) {
+    window.set_cursor_lock_mode(!window.cursor_locked());
+    window.set_cursor_visibility(!window.cursor_visible());
+}
+
+/// Grabs the cursor when game first starts
+fn initial_grab_cursor(mut windows: ResMut<Windows>) {
+    toggle_grab_cursor(windows.get_primary_mut().unwrap());
+}
+
+/// Spawns the `Camera3dBundle` to be controlled
+fn setup_player(mut commands: Commands) {
+    commands
+        .spawn_bundle(PerspectiveCameraBundle {
+            transform: Transform::from_xyz(-2.0, 5.0, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
+            ..Default::default()
+        })
+        .insert(FlyCam);
+}
+
+/// Handles keyboard input and movement
+fn player_move(
+    keys: Res<Input<KeyCode>>,
+    time: Res<Time>,
+    windows: Res<Windows>,
+    settings: Res<MovementSettings>,
+    mut query: Query<(&FlyCam, &mut Transform)>,
+) {
+    if settings.disable_move {
+        return;
+    }
+    let window = windows.get_primary().unwrap();
+    for (_camera, mut transform) in query.iter_mut() {
+        let mut velocity = Vec3::ZERO;
+        let local_z = transform.local_z();
+        let forward = -Vec3::new(local_z.x, 0., local_z.z);
+        let right = Vec3::new(local_z.z, 0., -local_z.x);
+
+        for key in keys.get_pressed() {
+            if window.cursor_locked() {
+                if validate_key(settings.map.forward, key) {
+                    velocity += forward
+                }
+                if validate_key(settings.map.backward, key) {
+                    velocity -= forward
+                }
+                if validate_key(settings.map.left, key) {
+                    velocity -= right
+                }
+                if validate_key(settings.map.right, key) {
+                    velocity += right
+                }
+                if validate_key(settings.map.up, key) {
+                    velocity += Vec3::Y
+                }
+                if validate_key(settings.map.down, key) {
+                    velocity -= Vec3::Y
+                }
+            }
+        }
+
+        velocity = velocity.normalize();
+
+        if !velocity.is_nan() {
+            transform.translation += velocity * time.delta_seconds() * settings.speed
+        }
+    }
+}
+
+pub fn validate_key<T>(codes: &'static [T], key: &T) -> bool
+where
+    T: PartialEq<T>,
+{
+    codes.iter().any(|m| m == key)
+}
+
+/// Handles looking around if cursor is locked
+fn player_look(
+    settings: Res<MovementSettings>,
+    windows: Res<Windows>,
+    mut state: ResMut<InputState>,
+    motion: Res<Events<MouseMotion>>,
+    mut query: Query<(&FlyCam, &mut Transform)>,
+) {
+    if settings.disable_look {
+        return;
+    }
+    let window = windows.get_primary().unwrap();
+    let mut state_delta = state.as_mut();
+    for (_camera, mut transform) in query.iter_mut() {
+        for ev in state_delta.reader_motion.iter(&motion) {
+            if window.cursor_locked() {
+                state_delta.pitch -=
+                    (settings.sensitivity * ev.delta.y * window.height()).to_radians();
+                state_delta.yaw -=
+                    (settings.sensitivity * ev.delta.x * window.width()).to_radians();
+            }
+
+            state_delta.pitch = state_delta.pitch.clamp(-1.54, 1.54);
+
+            // Order is important to prevent unintended roll
+            transform.rotation = Quat::from_axis_angle(Vec3::Y, state_delta.yaw)
+                * Quat::from_axis_angle(Vec3::X, state_delta.pitch);
+        }
+    }
+}
+
+fn cursor_grab(keys: Res<Input<KeyCode>>, mut windows: ResMut<Windows>) {
+    let window = windows.get_primary_mut().unwrap();
+    if keys.just_pressed(KeyCode::Escape) {
+        toggle_grab_cursor(window);
+    }
+}
+
+/// Contains everything needed to add first-person fly camera behavior to your game
+pub struct PlayerPlugin;
+impl Plugin for PlayerPlugin {
+    fn build(&self, app: &mut App) {
+        app.init_resource::<InputState>()
+            .init_resource::<MovementSettings>()
+            .add_startup_system(setup_player)
+            .add_startup_system(initial_grab_cursor)
+            .add_system(player_move.before(MovementUpdate))
+            .add_system(player_look.after(MovementUpdate))
+            .add_system(cursor_grab.after(MovementUpdate));
+    }
+}
+
+/// Same as `PlayerPlugin` but does not spawn a camera
+pub struct NoCameraPlayerPlugin;
+impl Plugin for NoCameraPlayerPlugin {
+    fn build(&self, app: &mut App) {
+        app.init_resource::<InputState>()
+            .init_resource::<MovementSettings>()
+            .add_startup_system(initial_grab_cursor)
+            .add_system(player_move.before(MovementUpdate))
+            .add_system(player_look.after(MovementUpdate))
+            .add_system(cursor_grab.after(MovementUpdate));
+    }
+}

From 4c2c931c925879b81bd9f6d24c5492dc120052de Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Sun, 31 Jul 2022 17:17:57 +0200
Subject: [PATCH 06/63] Delete Cargo.lock

---
 Cargo.lock | 2836 ----------------------------------------------------
 1 file changed, 2836 deletions(-)
 delete mode 100644 Cargo.lock

diff --git a/Cargo.lock b/Cargo.lock
deleted file mode 100644
index e41890d..0000000
--- a/Cargo.lock
+++ /dev/null
@@ -1,2836 +0,0 @@
-# This file is automatically @generated by Cargo.
-# It is not intended for manual editing.
-version = 3
-
-[[package]]
-name = "ab_glyph"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24606928a235e73cdef55a0c909719cadd72fce573e5713d58cb2952d8f5794c"
-dependencies = [
- "ab_glyph_rasterizer",
- "owned_ttf_parser",
-]
-
-[[package]]
-name = "ab_glyph_rasterizer"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a13739d7177fbd22bb0ed28badfff9f372f8bef46c863db4e1c6248f6b223b6e"
-
-[[package]]
-name = "ahash"
-version = "0.7.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47"
-dependencies = [
- "getrandom",
- "once_cell",
- "version_check",
-]
-
-[[package]]
-name = "aho-corasick"
-version = "0.7.18"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1e37cfd5e7657ada45f742d6e99ca5788580b5c529dc78faf11ece6dc702656f"
-dependencies = [
- "memchr",
-]
-
-[[package]]
-name = "android_log-sys"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "85965b6739a430150bdd138e2374a98af0c3ee0d030b3bb7fc3bddff58d0102e"
-
-[[package]]
-name = "android_logger"
-version = "0.10.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9ed09b18365ed295d722d0b5ed59c01b79a826ff2d2a8f73d5ecca8e6fb2f66"
-dependencies = [
- "android_log-sys",
- "env_logger",
- "lazy_static",
- "log",
-]
-
-[[package]]
-name = "android_system_properties"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7ed72e1635e121ca3e79420540282af22da58be50de153d36f81ddc6b83aa9e"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "ansi_term"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "anyhow"
-version = "1.0.58"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb07d2053ccdbe10e2af2995a2f116c1330396493dc1269f6a91d0ae82e19704"
-
-[[package]]
-name = "approx"
-version = "0.5.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cab112f0a86d568ea0e627cc1d6be74a1e9cd55214684db5561995f6dad897c6"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "arrayvec"
-version = "0.7.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6"
-
-[[package]]
-name = "ash"
-version = "0.37.0+1.3.209"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "006ca68e0f2b03f22d6fa9f2860f85aed430d257fec20f8879b2145e7c7ae1a6"
-dependencies = [
- "libloading",
-]
-
-[[package]]
-name = "async-channel"
-version = "1.6.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2114d64672151c0c5eaa5e131ec84a74f06e1e559830dabba01ca30605d66319"
-dependencies = [
- "concurrent-queue",
- "event-listener",
- "futures-core",
-]
-
-[[package]]
-name = "async-executor"
-version = "1.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "871f9bb5e0a22eeb7e8cf16641feb87c9dc67032ccf8ff49e772eb9941d3a965"
-dependencies = [
- "async-task",
- "concurrent-queue",
- "fastrand",
- "futures-lite",
- "once_cell",
- "slab",
-]
-
-[[package]]
-name = "async-task"
-version = "4.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a40729d2133846d9ed0ea60a8b9541bccddab49cd30f0715a1da672fe9a2524"
-
-[[package]]
-name = "autocfg"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
-
-[[package]]
-name = "base64"
-version = "0.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd"
-
-[[package]]
-name = "bevy"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "55f08528a4e59d607460513a823b40f602d013c1a00f57b824f1075d5d48c3cd"
-dependencies = [
- "bevy_internal",
-]
-
-[[package]]
-name = "bevy_app"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53d26d6ffdf493609d2fedc1018a2ef0cb4d8e48f6d3bcea56fa2df81867e464"
-dependencies = [
- "bevy_derive",
- "bevy_ecs",
- "bevy_reflect",
- "bevy_tasks",
- "bevy_utils",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "bevy_asset"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d8fb95306d5f18fa70df40632cd984993aeb71e91ce059ae99699098a4f9ce9"
-dependencies = [
- "anyhow",
- "bevy_app",
- "bevy_diagnostic",
- "bevy_ecs",
- "bevy_log",
- "bevy_reflect",
- "bevy_tasks",
- "bevy_utils",
- "crossbeam-channel",
- "downcast-rs",
- "fastrand",
- "js-sys",
- "ndk-glue",
- "parking_lot 0.12.1",
- "serde",
- "thiserror",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
-]
-
-[[package]]
-name = "bevy_config_cam"
-version = "0.4.0"
-dependencies = [
- "bevy",
- "bevy_dolly",
- "rand",
- "strum",
- "strum_macros",
-]
-
-[[package]]
-name = "bevy_core"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c6712146d54fff9e1865362e9f39a7b63c7b037ddb72a3d7bb05b959213fb61e"
-dependencies = [
- "bevy_app",
- "bevy_ecs",
- "bevy_math",
- "bevy_reflect",
- "bevy_tasks",
- "bevy_utils",
- "bytemuck",
-]
-
-[[package]]
-name = "bevy_core_pipeline"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "080bb00399b6d7697e505f871d67c6de8b52eb06b47b0cda2be80c2396805983"
-dependencies = [
- "bevy_app",
- "bevy_asset",
- "bevy_derive",
- "bevy_ecs",
- "bevy_reflect",
- "bevy_render",
- "bevy_transform",
- "bevy_utils",
- "radsort",
- "serde",
-]
-
-[[package]]
-name = "bevy_derive"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a4b8f0786d1fc7e0d35297917be463db3d0886f7bd8d4221ca3d565502579ffb"
-dependencies = [
- "bevy_macro_utils",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "bevy_diagnostic"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "adab74ee5375fbf5d2b1d3da41de8d1491a8a706d17441b5e31214b65349d692"
-dependencies = [
- "bevy_app",
- "bevy_ecs",
- "bevy_log",
- "bevy_time",
- "bevy_utils",
-]
-
-[[package]]
-name = "bevy_dolly"
-version = "0.0.1"
-dependencies = [
- "bevy",
- "dolly",
-]
-
-[[package]]
-name = "bevy_ecs"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5643dc27b7d6778e3a66c8e0f6ad1fd33309aa2fa61d935f360ccc85b7be6a2"
-dependencies = [
- "async-channel",
- "bevy_ecs_macros",
- "bevy_ptr",
- "bevy_reflect",
- "bevy_tasks",
- "bevy_utils",
- "downcast-rs",
- "fixedbitset",
- "fxhash",
- "serde",
- "thread_local",
-]
-
-[[package]]
-name = "bevy_ecs_macros"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5f2f12677f8725d40930d0a19652f007fe0ef5ac38e23817cfc4930c61f5680"
-dependencies = [
- "bevy_macro_utils",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "bevy_encase_derive"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "76a767adc36ce1fc917a736843b026d4de7069d90ed5e669c852481ef69fd5aa"
-dependencies = [
- "bevy_macro_utils",
- "encase_derive_impl",
-]
-
-[[package]]
-name = "bevy_gltf"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "150cc6782c4472600c2ade5d78c6ce481c992690f0499e63765aba752d7e0f04"
-dependencies = [
- "anyhow",
- "base64",
- "bevy_app",
- "bevy_asset",
- "bevy_core",
- "bevy_core_pipeline",
- "bevy_ecs",
- "bevy_hierarchy",
- "bevy_log",
- "bevy_math",
- "bevy_pbr",
- "bevy_reflect",
- "bevy_render",
- "bevy_scene",
- "bevy_tasks",
- "bevy_transform",
- "bevy_utils",
- "gltf",
- "percent-encoding",
- "thiserror",
-]
-
-[[package]]
-name = "bevy_hierarchy"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8e2e4c20d7c843cd26ef3c5d7b4c20e3e32c275943e2437ecaca1cfd6cfe3b30"
-dependencies = [
- "bevy_app",
- "bevy_ecs",
- "bevy_reflect",
- "bevy_utils",
- "smallvec",
-]
-
-[[package]]
-name = "bevy_input"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a11c70573fb4d4c056ba32cfa553daa7e6e1245cb876ccfbe322640928b7ee1c"
-dependencies = [
- "bevy_app",
- "bevy_ecs",
- "bevy_math",
- "bevy_utils",
-]
-
-[[package]]
-name = "bevy_internal"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d603b597772130782eab6e604706cbb764fb037f9cf0a1904b6f342845b6f44"
-dependencies = [
- "bevy_app",
- "bevy_asset",
- "bevy_core",
- "bevy_core_pipeline",
- "bevy_derive",
- "bevy_diagnostic",
- "bevy_ecs",
- "bevy_gltf",
- "bevy_hierarchy",
- "bevy_input",
- "bevy_log",
- "bevy_math",
- "bevy_pbr",
- "bevy_ptr",
- "bevy_reflect",
- "bevy_render",
- "bevy_scene",
- "bevy_sprite",
- "bevy_tasks",
- "bevy_text",
- "bevy_time",
- "bevy_transform",
- "bevy_ui",
- "bevy_utils",
- "bevy_window",
- "bevy_winit",
- "ndk-glue",
-]
-
-[[package]]
-name = "bevy_log"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8cafb12fc84734236e36f407ab62c72d5d4279fa4777e40a95d7cc973cbabcd1"
-dependencies = [
- "android_log-sys",
- "bevy_app",
- "bevy_utils",
- "console_error_panic_hook",
- "tracing-log",
- "tracing-subscriber",
- "tracing-wasm",
-]
-
-[[package]]
-name = "bevy_macro_utils"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4d081af83b701e16cad209255ba6b383744dfa49efa99eb6505989f293305ab3"
-dependencies = [
- "quote",
- "syn",
- "toml",
-]
-
-[[package]]
-name = "bevy_math"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "db5394e86c5708d3aa506c6e98ec4ed2a4083a7a018c6693d9ac0e77ebfabfc2"
-dependencies = [
- "glam",
-]
-
-[[package]]
-name = "bevy_mikktspace"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40b299a61175a6f7e7398f83cd5b50920fd8bad4df674e614ad94f25f8426509"
-dependencies = [
- "glam",
-]
-
-[[package]]
-name = "bevy_pbr"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed9a81bbd02f5e0a57899a41aec37d9cb14965e1e4d510547f3f680323d05c0f"
-dependencies = [
- "bevy_app",
- "bevy_asset",
- "bevy_core_pipeline",
- "bevy_ecs",
- "bevy_math",
- "bevy_reflect",
- "bevy_render",
- "bevy_transform",
- "bevy_utils",
- "bevy_window",
- "bitflags",
- "bytemuck",
- "radsort",
-]
-
-[[package]]
-name = "bevy_ptr"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d92d5679e89602a18682a37846573dcd1979410179e14204280460ba9fb8713a"
-
-[[package]]
-name = "bevy_reflect"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08798e67f2d4e6898ef117d8c99cf3b50a8eebc8da4159e6dad2657a0fbe9a4e"
-dependencies = [
- "bevy_ptr",
- "bevy_reflect_derive",
- "bevy_utils",
- "downcast-rs",
- "erased-serde",
- "glam",
- "once_cell",
- "parking_lot 0.12.1",
- "serde",
- "smallvec",
- "thiserror",
-]
-
-[[package]]
-name = "bevy_reflect_derive"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19209a7f0238053802b7de04e6724bd90d4ed7d90e87101dbd1b64cca64ff694"
-dependencies = [
- "bevy_macro_utils",
- "proc-macro2",
- "quote",
- "syn",
- "uuid",
-]
-
-[[package]]
-name = "bevy_render"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb49530388ef17cff3fb8bd5e47372fb3cfeb4befc73e3036f6462ac20f049ef"
-dependencies = [
- "anyhow",
- "bevy_app",
- "bevy_asset",
- "bevy_core",
- "bevy_derive",
- "bevy_ecs",
- "bevy_encase_derive",
- "bevy_hierarchy",
- "bevy_log",
- "bevy_math",
- "bevy_mikktspace",
- "bevy_reflect",
- "bevy_render_macros",
- "bevy_time",
- "bevy_transform",
- "bevy_utils",
- "bevy_window",
- "bitflags",
- "codespan-reporting",
- "copyless",
- "downcast-rs",
- "encase",
- "futures-lite",
- "hex",
- "hexasphere",
- "image",
- "naga",
- "once_cell",
- "parking_lot 0.12.1",
- "regex",
- "serde",
- "smallvec",
- "thiserror",
- "thread_local",
- "wgpu",
-]
-
-[[package]]
-name = "bevy_render_macros"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e7d0b7a51fa819c20c64f43856c5aaea40f853050bbb09b9ba3672e5ff2688a5"
-dependencies = [
- "bevy_macro_utils",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "bevy_scene"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0064d73ebb0de39901478b493604a1a6d448fd337b66803004c60f41f1fa6c37"
-dependencies = [
- "anyhow",
- "bevy_app",
- "bevy_asset",
- "bevy_derive",
- "bevy_ecs",
- "bevy_hierarchy",
- "bevy_reflect",
- "bevy_render",
- "bevy_transform",
- "bevy_utils",
- "ron",
- "serde",
- "thiserror",
- "uuid",
-]
-
-[[package]]
-name = "bevy_sprite"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f83dfe8897d6c0d9d5ce3818d49a13e58ae2b9b9ecf4f4bb85aa31bb0678f68"
-dependencies = [
- "bevy_app",
- "bevy_asset",
- "bevy_core_pipeline",
- "bevy_ecs",
- "bevy_log",
- "bevy_math",
- "bevy_reflect",
- "bevy_render",
- "bevy_transform",
- "bevy_utils",
- "bitflags",
- "bytemuck",
- "copyless",
- "fixedbitset",
- "guillotiere",
- "rectangle-pack",
- "serde",
- "thiserror",
-]
-
-[[package]]
-name = "bevy_tasks"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ff874c91a36eaac3ef957c6f3b590fb71332d9d136671cc858847d56fe9f80a3"
-dependencies = [
- "async-channel",
- "async-executor",
- "event-listener",
- "futures-lite",
- "num_cpus",
- "once_cell",
- "wasm-bindgen-futures",
-]
-
-[[package]]
-name = "bevy_text"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ef05a788c2c04aaa5db95b22a8f0fff0d3a0b08a7bcd1a71f050a628b38eec6e"
-dependencies = [
- "ab_glyph",
- "anyhow",
- "bevy_app",
- "bevy_asset",
- "bevy_ecs",
- "bevy_math",
- "bevy_reflect",
- "bevy_render",
- "bevy_sprite",
- "bevy_transform",
- "bevy_utils",
- "bevy_window",
- "glyph_brush_layout",
- "serde",
- "thiserror",
-]
-
-[[package]]
-name = "bevy_time"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "74ec681d641371df81d7bfbcb0eea725ed873f38a094f34b5f7b436f0889e77c"
-dependencies = [
- "bevy_app",
- "bevy_ecs",
- "bevy_reflect",
- "bevy_utils",
- "crossbeam-channel",
-]
-
-[[package]]
-name = "bevy_transform"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "42e1528e35f30bede46a50ee4134f150efc01f5c1002c340b3b2e6a0bfcb8aa5"
-dependencies = [
- "bevy_app",
- "bevy_ecs",
- "bevy_hierarchy",
- "bevy_math",
- "bevy_reflect",
-]
-
-[[package]]
-name = "bevy_ui"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac181a7b637da61fad72981ff9d2e5b899283ca7d54b2b7ea49c431121331c53"
-dependencies = [
- "bevy_app",
- "bevy_asset",
- "bevy_core_pipeline",
- "bevy_derive",
- "bevy_ecs",
- "bevy_hierarchy",
- "bevy_input",
- "bevy_log",
- "bevy_math",
- "bevy_reflect",
- "bevy_render",
- "bevy_sprite",
- "bevy_text",
- "bevy_transform",
- "bevy_utils",
- "bevy_window",
- "bytemuck",
- "serde",
- "smallvec",
- "taffy",
-]
-
-[[package]]
-name = "bevy_utils"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8bda6dada53e546845887ae7357eec57b8d547ef71627b716b33839b4a98b687"
-dependencies = [
- "ahash",
- "getrandom",
- "hashbrown 0.12.3",
- "instant",
- "tracing",
- "uuid",
-]
-
-[[package]]
-name = "bevy_window"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3bdc3a220a9bb2fad9bd30d5f44c6645725398fe1bc588fc87abf09f092696e"
-dependencies = [
- "bevy_app",
- "bevy_ecs",
- "bevy_input",
- "bevy_math",
- "bevy_utils",
- "raw-window-handle",
- "web-sys",
-]
-
-[[package]]
-name = "bevy_winit"
-version = "0.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57537a56ac4f4e1ffcad95227bcab37cd17b51770dacff82374a2d88be376322"
-dependencies = [
- "approx",
- "bevy_app",
- "bevy_ecs",
- "bevy_input",
- "bevy_math",
- "bevy_utils",
- "bevy_window",
- "crossbeam-channel",
- "raw-window-handle",
- "wasm-bindgen",
- "web-sys",
- "winit",
-]
-
-[[package]]
-name = "bit-set"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1"
-dependencies = [
- "bit-vec",
-]
-
-[[package]]
-name = "bit-vec"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb"
-
-[[package]]
-name = "bitflags"
-version = "1.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a"
-
-[[package]]
-name = "block"
-version = "0.1.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0d8c1fef690941d3e7788d328517591fecc684c084084702d6ff1641e993699a"
-
-[[package]]
-name = "bumpalo"
-version = "3.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37ccbd214614c6783386c1af30caf03192f17891059cecc394b4fb119e363de3"
-
-[[package]]
-name = "bytemuck"
-version = "1.11.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a5377c8865e74a160d21f29c2d40669f53286db6eab59b88540cbb12ffc8b835"
-dependencies = [
- "bytemuck_derive",
-]
-
-[[package]]
-name = "bytemuck_derive"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cfd2f4180c5721da6335cc9e9061cce522b87a35e51cc57636d28d22a9863c80"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "byteorder"
-version = "1.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610"
-
-[[package]]
-name = "cache-padded"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c1db59621ec70f09c5e9b597b220c7a2b43611f4710dc03ceb8748637775692c"
-
-[[package]]
-name = "calloop"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bf2eec61efe56aa1e813f5126959296933cf0700030e4314786c48779a66ab82"
-dependencies = [
- "log",
- "nix",
-]
-
-[[package]]
-name = "cc"
-version = "1.0.73"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11"
-
-[[package]]
-name = "cfg-if"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822"
-
-[[package]]
-name = "cfg-if"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd"
-
-[[package]]
-name = "cfg_aliases"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fd16c4719339c4530435d38e511904438d07cce7950afa3718a84ac36c10e89e"
-
-[[package]]
-name = "cocoa"
-version = "0.24.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f63902e9223530efb4e26ccd0cf55ec30d592d3b42e21a28defc42a9586e832"
-dependencies = [
- "bitflags",
- "block",
- "cocoa-foundation",
- "core-foundation 0.9.3",
- "core-graphics 0.22.3",
- "foreign-types",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "cocoa-foundation"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7ade49b65d560ca58c403a479bb396592b155c0185eada742ee323d1d68d6318"
-dependencies = [
- "bitflags",
- "block",
- "core-foundation 0.9.3",
- "core-graphics-types",
- "foreign-types",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "codespan-reporting"
-version = "0.11.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e"
-dependencies = [
- "termcolor",
- "unicode-width",
-]
-
-[[package]]
-name = "color_quant"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3d7b894f5411737b7867f4827955924d7c254fc9f4d91a6aad6b097804b1018b"
-
-[[package]]
-name = "concurrent-queue"
-version = "1.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "af4780a44ab5696ea9e28294517f1fffb421a83a25af521333c838635509db9c"
-dependencies = [
- "cache-padded",
-]
-
-[[package]]
-name = "console_error_panic_hook"
-version = "0.1.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a06aeb73f470f66dcdbf7223caeebb85984942f22f1adb2a088cf9668146bbbc"
-dependencies = [
- "cfg-if 1.0.0",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "const_panic"
-version = "0.2.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c0358e41e90e443c69b2b2811f6ec9892c228b93620634cf4344fe89967fa9f"
-
-[[package]]
-name = "copyless"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a2df960f5d869b2dd8532793fde43eb5427cceb126c929747a26823ab0eeb536"
-
-[[package]]
-name = "core-foundation"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
-dependencies = [
- "core-foundation-sys 0.7.0",
- "libc",
-]
-
-[[package]]
-name = "core-foundation"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146"
-dependencies = [
- "core-foundation-sys 0.8.3",
- "libc",
-]
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.7.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
-
-[[package]]
-name = "core-foundation-sys"
-version = "0.8.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5827cebf4670468b8772dd191856768aedcb1b0278a04f989f7766351917b9dc"
-
-[[package]]
-name = "core-graphics"
-version = "0.19.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b3889374e6ea6ab25dba90bb5d96202f61108058361f6dc72e8b03e6f8bbe923"
-dependencies = [
- "bitflags",
- "core-foundation 0.7.0",
- "foreign-types",
- "libc",
-]
-
-[[package]]
-name = "core-graphics"
-version = "0.22.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2581bbab3b8ffc6fcbd550bf46c355135d16e9ff2a6ea032ad6b9bf1d7efe4fb"
-dependencies = [
- "bitflags",
- "core-foundation 0.9.3",
- "core-graphics-types",
- "foreign-types",
- "libc",
-]
-
-[[package]]
-name = "core-graphics-types"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3a68b68b3446082644c91ac778bf50cd4104bfb002b5a6a7c44cca5a2c70788b"
-dependencies = [
- "bitflags",
- "core-foundation 0.9.3",
- "foreign-types",
- "libc",
-]
-
-[[package]]
-name = "core-video-sys"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34ecad23610ad9757664d644e369246edde1803fcb43ed72876565098a5d3828"
-dependencies = [
- "cfg-if 0.1.10",
- "core-foundation-sys 0.7.0",
- "core-graphics 0.19.2",
- "libc",
- "objc",
-]
-
-[[package]]
-name = "crossbeam-channel"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2dd04ddaf88237dc3b8d8f9a3c1004b506b54b3313403944054d23c0870c521"
-dependencies = [
- "cfg-if 1.0.0",
- "crossbeam-utils",
-]
-
-[[package]]
-name = "crossbeam-utils"
-version = "0.8.11"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "51887d4adc7b564537b15adcfb307936f8075dfcd5f00dde9a9f1d29383682bc"
-dependencies = [
- "cfg-if 1.0.0",
- "once_cell",
-]
-
-[[package]]
-name = "cty"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b365fabc795046672053e29c954733ec3b05e4be654ab130fe8f1f94d7051f35"
-
-[[package]]
-name = "d3d12"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "827914e1f53b1e0e025ecd3d967a7836b7bcb54520f90e21ef8df7b4d88a2759"
-dependencies = [
- "bitflags",
- "libloading",
- "winapi",
-]
-
-[[package]]
-name = "darling"
-version = "0.13.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a01d95850c592940db9b8194bc39f4bc0e89dee5c4265e4b1807c34a9aba453c"
-dependencies = [
- "darling_core",
- "darling_macro",
-]
-
-[[package]]
-name = "darling_core"
-version = "0.13.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "859d65a907b6852c9361e3185c862aae7fafd2887876799fa55f5f99dc40d610"
-dependencies = [
- "fnv",
- "ident_case",
- "proc-macro2",
- "quote",
- "strsim",
- "syn",
-]
-
-[[package]]
-name = "darling_macro"
-version = "0.13.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c972679f83bdf9c42bd905396b6c3588a843a17f0f16dfcfa3e2c5d57441835"
-dependencies = [
- "darling_core",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "dispatch"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b"
-
-[[package]]
-name = "dlib"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac1b7517328c04c2aa68422fc60a41b92208182142ed04a25879c26c8f878794"
-dependencies = [
- "libloading",
-]
-
-[[package]]
-name = "dolly"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2ae35fe7c2f8550eb2e84dd8251cbaba660d167315daff50c800aee4013da32"
-dependencies = [
- "glam",
-]
-
-[[package]]
-name = "downcast-rs"
-version = "1.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650"
-
-[[package]]
-name = "encase"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0a516181e9a36e8982cb37933c5e7dba638c42938cacde46ee4e5b4156f881b9"
-dependencies = [
- "const_panic",
- "encase_derive",
- "glam",
- "thiserror",
-]
-
-[[package]]
-name = "encase_derive"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f5b802412eea315f29f2bb2da3a5963cd6121f56eaa06aebcdc0c54eea578f22"
-dependencies = [
- "encase_derive_impl",
-]
-
-[[package]]
-name = "encase_derive_impl"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f2f4de457d974f548d2c2a16f709ebd81013579e543bd1a9b19ced88132c2cf"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "env_logger"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a19187fea3ac7e84da7dacf48de0c45d63c6a76f9490dae389aead16c243fce3"
-dependencies = [
- "log",
- "regex",
-]
-
-[[package]]
-name = "erased-serde"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "81d013529d5574a60caeda29e179e695125448e5de52e3874f7b4c1d7360e18e"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "euclid"
-version = "0.22.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b52c2ef4a78da0ba68fbe1fd920627411096d2ac478f7f4c9f3a54ba6705bade"
-dependencies = [
- "num-traits",
-]
-
-[[package]]
-name = "event-listener"
-version = "2.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0"
-
-[[package]]
-name = "fastrand"
-version = "1.8.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a7a407cfaa3385c4ae6b23e84623d48c2798d06e3e6a1878f7f59f17b3f86499"
-dependencies = [
- "instant",
-]
-
-[[package]]
-name = "fixedbitset"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80"
-
-[[package]]
-name = "fnv"
-version = "1.0.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-
-[[package]]
-name = "foreign-types"
-version = "0.3.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-dependencies = [
- "foreign-types-shared",
-]
-
-[[package]]
-name = "foreign-types-shared"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-
-[[package]]
-name = "futures-core"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c09fd04b7e4073ac7156a9539b57a484a8ea920f79c7c675d05d289ab6110d3"
-
-[[package]]
-name = "futures-io"
-version = "0.3.21"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc4045962a5a5e935ee2fdedaa4e08284547402885ab326734432bed5d12966b"
-
-[[package]]
-name = "futures-lite"
-version = "1.12.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7694489acd39452c77daa48516b894c153f192c3578d5a839b62c58099fcbf48"
-dependencies = [
- "fastrand",
- "futures-core",
- "futures-io",
- "memchr",
- "parking",
- "pin-project-lite",
- "waker-fn",
-]
-
-[[package]]
-name = "fxhash"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c31b6d751ae2c7f11320402d34e41349dd1016f8d5d45e48c4312bc8625af50c"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "getrandom"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6"
-dependencies = [
- "cfg-if 1.0.0",
- "js-sys",
- "libc",
- "wasi",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "glam"
-version = "0.21.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "781aa11be58ef14b0cd7326618afcbd9cdb5ba686bdab7193d87cdc322cd7033"
-dependencies = [
- "bytemuck",
- "serde",
-]
-
-[[package]]
-name = "glow"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d8bd5877156a19b8ac83a29b2306fe20537429d318f3ff0a1a2119f8d9c61919"
-dependencies = [
- "js-sys",
- "slotmap",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "gltf"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00e0a0eace786193fc83644907097285396360e9e82e30f81a21e9b1ba836a3e"
-dependencies = [
- "byteorder",
- "gltf-json",
- "lazy_static",
-]
-
-[[package]]
-name = "gltf-derive"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bdd53d6e284bb2bf02a6926e4cc4984978c1990914d6cd9deae4e31cf37cd113"
-dependencies = [
- "inflections",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "gltf-json"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9949836a9ec5e7f83f76fb9bbcbc77f254a577ebbdb0820867bc11979ef97cad"
-dependencies = [
- "gltf-derive",
- "serde",
- "serde_derive",
- "serde_json",
-]
-
-[[package]]
-name = "glyph_brush_layout"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc32c2334f00ca5ac3695c5009ae35da21da8c62d255b5b96d56e2597a637a38"
-dependencies = [
- "ab_glyph",
- "approx",
- "xi-unicode",
-]
-
-[[package]]
-name = "gpu-alloc"
-version = "0.5.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7fc59e5f710e310e76e6707f86c561dd646f69a8876da9131703b2f717de818d"
-dependencies = [
- "bitflags",
- "gpu-alloc-types",
-]
-
-[[package]]
-name = "gpu-alloc-types"
-version = "0.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "54804d0d6bc9d7f26db4eaec1ad10def69b599315f487d32c334a80d1efe67a5"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "gpu-descriptor"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a538f217be4d405ff4719a283ca68323cc2384003eca5baaa87501e821c81dda"
-dependencies = [
- "bitflags",
- "gpu-descriptor-types",
- "hashbrown 0.11.2",
-]
-
-[[package]]
-name = "gpu-descriptor-types"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "363e3677e55ad168fef68cf9de3a4a310b53124c5e784c53a1d70e92d23f2126"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "guillotiere"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b62d5865c036cb1393e23c50693df631d3f5d7bcca4c04fe4cc0fd592e74a782"
-dependencies = [
- "euclid",
- "svg_fmt",
-]
-
-[[package]]
-name = "hash32"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b0c35f58762feb77d74ebe43bdbc3210f09be9fe6742234d573bacc26ed92b67"
-dependencies = [
- "byteorder",
-]
-
-[[package]]
-name = "hash32-derive"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "59d2aba832b60be25c1b169146b27c64115470981b128ed84c8db18c1b03c6ff"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e"
-dependencies = [
- "ahash",
-]
-
-[[package]]
-name = "hashbrown"
-version = "0.12.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888"
-dependencies = [
- "ahash",
- "serde",
-]
-
-[[package]]
-name = "heck"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2540771e65fc8cb83cd6e8a237f70c319bd5c29f78ed1084ba5d50eeac86f7f9"
-
-[[package]]
-name = "hermit-abi"
-version = "0.1.19"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "hex"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70"
-
-[[package]]
-name = "hexasphere"
-version = "7.2.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9652f2ed7ee9c6374a061039f60fc6e25d7adac7fa10f83365669af3b24b0bf0"
-dependencies = [
- "glam",
- "once_cell",
-]
-
-[[package]]
-name = "hexf-parse"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dfa686283ad6dd069f105e5ab091b04c62850d3e4cf5d67debad1933f55023df"
-
-[[package]]
-name = "ident_case"
-version = "1.0.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39"
-
-[[package]]
-name = "image"
-version = "0.24.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7e30ca2ecf7666107ff827a8e481de6a132a9b687ed3bb20bb1c144a36c00964"
-dependencies = [
- "bytemuck",
- "byteorder",
- "color_quant",
- "num-rational",
- "num-traits",
-]
-
-[[package]]
-name = "indexmap"
-version = "1.9.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "10a35a97730320ffe8e2d410b5d3b69279b98d2c14bdb8b70ea89ecf7888d41e"
-dependencies = [
- "autocfg",
- "hashbrown 0.12.3",
-]
-
-[[package]]
-name = "inflections"
-version = "1.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a257582fdcde896fd96463bf2d40eefea0580021c0712a0e2b028b60b47a837a"
-
-[[package]]
-name = "inplace_it"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "67f0347836f3f6362c1e7efdadde2b1c4b4556d211310b70631bae7eb692070b"
-
-[[package]]
-name = "instant"
-version = "0.1.12"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c"
-dependencies = [
- "cfg-if 1.0.0",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "itoa"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "112c678d4050afce233f4f2852bb2eb519230b3cf12f33585275537d7e41578d"
-
-[[package]]
-name = "jni-sys"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130"
-
-[[package]]
-name = "js-sys"
-version = "0.3.59"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "258451ab10b34f8af53416d1fdab72c22e805f0c92a1136d59470ec0b11138b2"
-dependencies = [
- "wasm-bindgen",
-]
-
-[[package]]
-name = "khronos-egl"
-version = "4.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c2352bd1d0bceb871cb9d40f24360c8133c11d7486b68b5381c1dd1a32015e3"
-dependencies = [
- "libc",
- "libloading",
- "pkg-config",
-]
-
-[[package]]
-name = "lazy_static"
-version = "1.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-
-[[package]]
-name = "libc"
-version = "0.2.126"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836"
-
-[[package]]
-name = "libloading"
-version = "0.7.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "efbc0f03f9a775e9f6aed295c6a1ba2253c5757a9e03d55c6caa46a681abcddd"
-dependencies = [
- "cfg-if 1.0.0",
- "winapi",
-]
-
-[[package]]
-name = "lock_api"
-version = "0.4.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "327fa5b6a6940e4699ec49a9beae1ea4845c6bab9314e4f84ac68742139d8c53"
-dependencies = [
- "autocfg",
- "scopeguard",
-]
-
-[[package]]
-name = "log"
-version = "0.4.17"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e"
-dependencies = [
- "cfg-if 1.0.0",
-]
-
-[[package]]
-name = "malloc_buf"
-version = "0.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "62bb907fe88d54d8d9ce32a3cceab4218ed2f6b7d35617cafe9adf84e43919cb"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "matchers"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558"
-dependencies = [
- "regex-automata",
-]
-
-[[package]]
-name = "memchr"
-version = "2.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d"
-
-[[package]]
-name = "memmap2"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "00b6c2ebff6180198788f5db08d7ce3bc1d0b617176678831a7510825973e357"
-dependencies = [
- "libc",
-]
-
-[[package]]
-name = "memoffset"
-version = "0.6.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "metal"
-version = "0.24.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "de11355d1f6781482d027a3b4d4de7825dcedb197bf573e0596d00008402d060"
-dependencies = [
- "bitflags",
- "block",
- "core-graphics-types",
- "foreign-types",
- "log",
- "objc",
-]
-
-[[package]]
-name = "minimal-lexical"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a"
-
-[[package]]
-name = "mio"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "57ee1c23c7c63b0c9250c339ffdc69255f110b298b901b9f6c82547b7b87caaf"
-dependencies = [
- "libc",
- "log",
- "wasi",
- "windows-sys",
-]
-
-[[package]]
-name = "naga"
-version = "0.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5f50357e1167a3ab92d6b3c7f4bf5f7fd13fde3f4b28bf0d5ea07b5100fdb6c0"
-dependencies = [
- "bit-set",
- "bitflags",
- "codespan-reporting",
- "hexf-parse",
- "indexmap",
- "log",
- "num-traits",
- "petgraph",
- "pp-rs",
- "rustc-hash",
- "spirv",
- "termcolor",
- "thiserror",
- "unicode-xid",
-]
-
-[[package]]
-name = "ndk"
-version = "0.5.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "96d868f654c72e75f8687572699cdabe755f03effbb62542768e995d5b8d699d"
-dependencies = [
- "bitflags",
- "jni-sys",
- "ndk-sys",
- "num_enum",
- "thiserror",
-]
-
-[[package]]
-name = "ndk-context"
-version = "0.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "27b02d87554356db9e9a873add8782d4ea6e3e58ea071a9adb9a2e8ddb884a8b"
-
-[[package]]
-name = "ndk-glue"
-version = "0.5.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c71bee8ea72d685477e28bd004cfe1bf99c754d688cd78cad139eae4089484d4"
-dependencies = [
- "android_logger",
- "lazy_static",
- "libc",
- "log",
- "ndk",
- "ndk-context",
- "ndk-macro",
- "ndk-sys",
-]
-
-[[package]]
-name = "ndk-macro"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0df7ac00c4672f9d5aece54ee3347520b7e20f158656c7db2e6de01902eb7a6c"
-dependencies = [
- "darling",
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "ndk-sys"
-version = "0.2.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1bcdd74c20ad5d95aacd60ef9ba40fdf77f767051040541df557b7a9b2a2121"
-
-[[package]]
-name = "nix"
-version = "0.22.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e4916f159ed8e5de0082076562152a76b7a1f64a01fd9d1e0fea002c37624faf"
-dependencies = [
- "bitflags",
- "cc",
- "cfg-if 1.0.0",
- "libc",
- "memoffset",
-]
-
-[[package]]
-name = "nom"
-version = "7.1.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a8903e5a29a317527874d0402f867152a3d21c908bb0b933e416c65e301d4c36"
-dependencies = [
- "memchr",
- "minimal-lexical",
-]
-
-[[package]]
-name = "num-integer"
-version = "0.1.45"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9"
-dependencies = [
- "autocfg",
- "num-traits",
-]
-
-[[package]]
-name = "num-rational"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0"
-dependencies = [
- "autocfg",
- "num-integer",
- "num-traits",
-]
-
-[[package]]
-name = "num-traits"
-version = "0.2.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "num_cpus"
-version = "1.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "19e64526ebdee182341572e50e9ad03965aa510cd94427a4549448f285e957a1"
-dependencies = [
- "hermit-abi",
- "libc",
-]
-
-[[package]]
-name = "num_enum"
-version = "0.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cf5395665662ef45796a4ff5486c5d41d29e0c09640af4c5f17fd94ee2c119c9"
-dependencies = [
- "num_enum_derive",
-]
-
-[[package]]
-name = "num_enum_derive"
-version = "0.5.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3b0498641e53dd6ac1a4f22547548caa6864cc4933784319cd1775271c5a46ce"
-dependencies = [
- "proc-macro-crate",
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "objc"
-version = "0.2.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "915b1b472bc21c53464d6c8461c9d3af805ba1ef837e1cac254428f4a77177b1"
-dependencies = [
- "malloc_buf",
- "objc_exception",
-]
-
-[[package]]
-name = "objc_exception"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ad970fb455818ad6cba4c122ad012fae53ae8b4795f86378bce65e4f6bab2ca4"
-dependencies = [
- "cc",
-]
-
-[[package]]
-name = "once_cell"
-version = "1.13.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "18a6dbe30758c9f83eb00cbea4ac95966305f5a7772f3f42ebfc7fc7eddbd8e1"
-
-[[package]]
-name = "owned_ttf_parser"
-version = "0.15.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07ef1a404ae479dd6906f4fa2c88b3c94028f1284beb42a47c183a7c27ee9a3e"
-dependencies = [
- "ttf-parser",
-]
-
-[[package]]
-name = "parking"
-version = "2.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "427c3892f9e783d91cc128285287e70a59e206ca452770ece88a76f7a3eddd72"
-
-[[package]]
-name = "parking_lot"
-version = "0.11.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99"
-dependencies = [
- "instant",
- "lock_api",
- "parking_lot_core 0.8.5",
-]
-
-[[package]]
-name = "parking_lot"
-version = "0.12.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f"
-dependencies = [
- "lock_api",
- "parking_lot_core 0.9.3",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216"
-dependencies = [
- "cfg-if 1.0.0",
- "instant",
- "libc",
- "redox_syscall",
- "smallvec",
- "winapi",
-]
-
-[[package]]
-name = "parking_lot_core"
-version = "0.9.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "09a279cbf25cb0757810394fbc1e359949b59e348145c643a939a525692e6929"
-dependencies = [
- "cfg-if 1.0.0",
- "libc",
- "redox_syscall",
- "smallvec",
- "windows-sys",
-]
-
-[[package]]
-name = "percent-encoding"
-version = "2.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
-
-[[package]]
-name = "petgraph"
-version = "0.6.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6d5014253a1331579ce62aa67443b4a658c5e7dd03d4bc6d302b94474888143"
-dependencies = [
- "fixedbitset",
- "indexmap",
-]
-
-[[package]]
-name = "pin-project-lite"
-version = "0.2.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116"
-
-[[package]]
-name = "pkg-config"
-version = "0.3.25"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1df8c4ec4b0627e53bdf214615ad287367e482558cf84b109250b37464dc03ae"
-
-[[package]]
-name = "pp-rs"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb458bb7f6e250e6eb79d5026badc10a3ebb8f9a15d1fff0f13d17c71f4d6dee"
-dependencies = [
- "unicode-xid",
-]
-
-[[package]]
-name = "ppv-lite86"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872"
-
-[[package]]
-name = "proc-macro-crate"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a"
-dependencies = [
- "thiserror",
- "toml",
-]
-
-[[package]]
-name = "proc-macro2"
-version = "1.0.42"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c278e965f1d8cf32d6e0e96de3d3e79712178ae67986d9cf9151f51e95aac89b"
-dependencies = [
- "unicode-ident",
-]
-
-[[package]]
-name = "profiling"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2f61dcf0b917cd75d4521d7343d1ffff3d1583054133c9b5cbea3375c703c40d"
-
-[[package]]
-name = "quote"
-version = "1.0.20"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3bcdf212e9776fbcb2d23ab029360416bb1706b1aea2d1a5ba002727cbcab804"
-dependencies = [
- "proc-macro2",
-]
-
-[[package]]
-name = "radsort"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "17fd96390ed3feda12e1dfe2645ed587e0bea749e319333f104a33ff62f77a0b"
-
-[[package]]
-name = "rand"
-version = "0.8.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404"
-dependencies = [
- "libc",
- "rand_chacha",
- "rand_core",
-]
-
-[[package]]
-name = "rand_chacha"
-version = "0.3.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88"
-dependencies = [
- "ppv-lite86",
- "rand_core",
-]
-
-[[package]]
-name = "rand_core"
-version = "0.6.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7"
-dependencies = [
- "getrandom",
-]
-
-[[package]]
-name = "range-alloc"
-version = "0.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "63e935c45e09cc6dcf00d2f0b2d630a58f4095320223d47fc68918722f0538b6"
-
-[[package]]
-name = "raw-window-handle"
-version = "0.4.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b800beb9b6e7d2df1fe337c9e3d04e3af22a124460fb4c30fcc22c9117cefb41"
-dependencies = [
- "cty",
-]
-
-[[package]]
-name = "rectangle-pack"
-version = "0.4.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a0d463f2884048e7153449a55166f91028d5b0ea53c79377099ce4e8cf0cf9bb"
-
-[[package]]
-name = "redox_syscall"
-version = "0.2.16"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "regex"
-version = "1.6.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b"
-dependencies = [
- "aho-corasick",
- "memchr",
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-automata"
-version = "0.1.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132"
-dependencies = [
- "regex-syntax",
-]
-
-[[package]]
-name = "regex-syntax"
-version = "0.6.27"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244"
-
-[[package]]
-name = "renderdoc-sys"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f1382d1f0a252c4bf97dc20d979a2fdd05b024acd7c2ed0f7595d7817666a157"
-
-[[package]]
-name = "ron"
-version = "0.7.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "88073939a61e5b7680558e6be56b419e208420c2adb92be54921fa6b72283f1a"
-dependencies = [
- "base64",
- "bitflags",
- "serde",
-]
-
-[[package]]
-name = "rustc-hash"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
-
-[[package]]
-name = "rustversion"
-version = "1.0.8"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "24c8ad4f0c00e1eb5bc7614d236a7f1300e3dbd76b68cac8e06fb00b015ad8d8"
-
-[[package]]
-name = "ryu"
-version = "1.0.10"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f3f6f92acf49d1b98f7a81226834412ada05458b7364277387724a237f062695"
-
-[[package]]
-name = "scoped-tls"
-version = "1.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea6a9290e3c9cf0f18145ef7ffa62d68ee0bf5fcd651017e586dc7fd5da448c2"
-
-[[package]]
-name = "scopeguard"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-
-[[package]]
-name = "serde"
-version = "1.0.140"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc855a42c7967b7c369eb5860f7164ef1f6f81c20c7cc1141f2a604e18723b03"
-dependencies = [
- "serde_derive",
-]
-
-[[package]]
-name = "serde_derive"
-version = "1.0.140"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6f2122636b9fe3b81f1cb25099fcf2d3f542cdb1d45940d56c713158884a05da"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "serde_json"
-version = "1.0.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "82c2c1fdcd807d1098552c5b9a36e425e42e9fbd7c6a37a8425f390f781f7fa7"
-dependencies = [
- "itoa",
- "ryu",
- "serde",
-]
-
-[[package]]
-name = "sharded-slab"
-version = "0.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31"
-dependencies = [
- "lazy_static",
-]
-
-[[package]]
-name = "slab"
-version = "0.4.7"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4614a76b2a8be0058caa9dbbaf66d988527d86d003c11a94fbd335d7661edcef"
-dependencies = [
- "autocfg",
-]
-
-[[package]]
-name = "slotmap"
-version = "1.0.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e1e08e261d0e8f5c43123b7adf3e4ca1690d655377ac93a03b2c9d3e98de1342"
-dependencies = [
- "version_check",
-]
-
-[[package]]
-name = "smallvec"
-version = "1.9.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "smithay-client-toolkit"
-version = "0.15.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8a28f16a97fa0e8ce563b2774d1e732dd5d4025d2772c5dba0a41a0f90a29da3"
-dependencies = [
- "bitflags",
- "calloop",
- "dlib",
- "lazy_static",
- "log",
- "memmap2",
- "nix",
- "pkg-config",
- "wayland-client",
- "wayland-cursor",
- "wayland-protocols",
-]
-
-[[package]]
-name = "spirv"
-version = "0.2.0+1.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "246bfa38fe3db3f1dfc8ca5a2cdeb7348c78be2112740cc0ec8ef18b6d94f830"
-dependencies = [
- "bitflags",
- "num-traits",
-]
-
-[[package]]
-name = "strsim"
-version = "0.10.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623"
-
-[[package]]
-name = "strum"
-version = "0.24.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f"
-
-[[package]]
-name = "strum_macros"
-version = "0.24.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4faebde00e8ff94316c01800f9054fd2ba77d30d9e922541913051d1d978918b"
-dependencies = [
- "heck",
- "proc-macro2",
- "quote",
- "rustversion",
- "syn",
-]
-
-[[package]]
-name = "svg_fmt"
-version = "0.4.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8fb1df15f412ee2e9dfc1c504260fa695c1c3f10fe9f4a6ee2d2184d7d6450e2"
-
-[[package]]
-name = "syn"
-version = "1.0.98"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c50aef8a904de4c23c788f104b7dddc7d6f79c647c7c8ce4cc8f73eb0ca773dd"
-dependencies = [
- "proc-macro2",
- "quote",
- "unicode-ident",
-]
-
-[[package]]
-name = "taffy"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ec27dea659b100d489dffa57cf0efc6d7bfefb119af817b92cc14006c0b214e3"
-dependencies = [
- "arrayvec",
- "hash32",
- "hash32-derive",
- "num-traits",
- "typenum",
-]
-
-[[package]]
-name = "termcolor"
-version = "1.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755"
-dependencies = [
- "winapi-util",
-]
-
-[[package]]
-name = "thiserror"
-version = "1.0.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bd829fe32373d27f76265620b5309d0340cb8550f523c1dda251d6298069069a"
-dependencies = [
- "thiserror-impl",
-]
-
-[[package]]
-name = "thiserror-impl"
-version = "1.0.31"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0396bc89e626244658bef819e22d0cc459e795a5ebe878e6ec336d1674a8d79a"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "thread_local"
-version = "1.1.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5516c27b78311c50bf42c071425c560ac799b11c30b31f87e3081965fe5e0180"
-dependencies = [
- "once_cell",
-]
-
-[[package]]
-name = "toml"
-version = "0.5.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7"
-dependencies = [
- "serde",
-]
-
-[[package]]
-name = "tracing"
-version = "0.1.36"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2fce9567bd60a67d08a16488756721ba392f24f29006402881e43b19aac64307"
-dependencies = [
- "cfg-if 1.0.0",
- "pin-project-lite",
- "tracing-attributes",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-attributes"
-version = "0.1.22"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "11c75893af559bc8e10716548bdef5cb2b983f8e637db9d0e15126b61b484ee2"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
-]
-
-[[package]]
-name = "tracing-core"
-version = "0.1.29"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5aeea4303076558a00714b823f9ad67d58a3bbda1df83d8827d21193156e22f7"
-dependencies = [
- "once_cell",
- "valuable",
-]
-
-[[package]]
-name = "tracing-log"
-version = "0.1.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922"
-dependencies = [
- "lazy_static",
- "log",
- "tracing-core",
-]
-
-[[package]]
-name = "tracing-subscriber"
-version = "0.3.15"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60db860322da191b40952ad9affe65ea23e7dd6a5c442c2c42865810c6ab8e6b"
-dependencies = [
- "ansi_term",
- "matchers",
- "once_cell",
- "regex",
- "sharded-slab",
- "smallvec",
- "thread_local",
- "tracing",
- "tracing-core",
- "tracing-log",
-]
-
-[[package]]
-name = "tracing-wasm"
-version = "0.2.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4575c663a174420fa2d78f4108ff68f65bf2fbb7dd89f33749b6e826b3626e07"
-dependencies = [
- "tracing",
- "tracing-subscriber",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "ttf-parser"
-version = "0.15.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7b3e06c9b9d80ed6b745c7159c40b311ad2916abb34a49e9be2653b90db0d8dd"
-
-[[package]]
-name = "typenum"
-version = "1.15.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987"
-
-[[package]]
-name = "unicode-ident"
-version = "1.0.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "15c61ba63f9235225a22310255a29b806b907c9b8c964bcbd0a2c70f3f2deea7"
-
-[[package]]
-name = "unicode-width"
-version = "0.1.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "3ed742d4ea2bd1176e236172c8429aaf54486e7ac098db29ffe6529e0ce50973"
-
-[[package]]
-name = "unicode-xid"
-version = "0.2.3"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "957e51f3646910546462e67d5f7599b9e4fb8acdd304b087a6494730f9eebf04"
-
-[[package]]
-name = "uuid"
-version = "1.1.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dd6469f4314d5f1ffec476e05f17cc9a78bc7a27a6a857842170bdf8d6f98d2f"
-dependencies = [
- "getrandom",
- "serde",
-]
-
-[[package]]
-name = "valuable"
-version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d"
-
-[[package]]
-name = "version_check"
-version = "0.9.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f"
-
-[[package]]
-name = "waker-fn"
-version = "1.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca"
-
-[[package]]
-name = "wasi"
-version = "0.11.0+wasi-snapshot-preview1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423"
-
-[[package]]
-name = "wasm-bindgen"
-version = "0.2.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fc7652e3f6c4706c8d9cd54832c4a4ccb9b5336e2c3bd154d5cccfbf1c1f5f7d"
-dependencies = [
- "cfg-if 1.0.0",
- "wasm-bindgen-macro",
-]
-
-[[package]]
-name = "wasm-bindgen-backend"
-version = "0.2.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "662cd44805586bd52971b9586b1df85cdbbd9112e4ef4d8f41559c334dc6ac3f"
-dependencies = [
- "bumpalo",
- "log",
- "once_cell",
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-futures"
-version = "0.4.32"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "fa76fb221a1f8acddf5b54ace85912606980ad661ac7a503b4570ffd3a624dad"
-dependencies = [
- "cfg-if 1.0.0",
- "js-sys",
- "wasm-bindgen",
- "web-sys",
-]
-
-[[package]]
-name = "wasm-bindgen-macro"
-version = "0.2.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b260f13d3012071dfb1512849c033b1925038373aea48ced3012c09df952c602"
-dependencies = [
- "quote",
- "wasm-bindgen-macro-support",
-]
-
-[[package]]
-name = "wasm-bindgen-macro-support"
-version = "0.2.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5be8e654bdd9b79216c2929ab90721aa82faf65c48cdf08bdc4e7f51357b80da"
-dependencies = [
- "proc-macro2",
- "quote",
- "syn",
- "wasm-bindgen-backend",
- "wasm-bindgen-shared",
-]
-
-[[package]]
-name = "wasm-bindgen-shared"
-version = "0.2.82"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6598dd0bd3c7d51095ff6531a5b23e02acdc81804e30d8f07afb77b7215a140a"
-
-[[package]]
-name = "wayland-client"
-version = "0.29.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "91223460e73257f697d9e23d401279123d36039a3f7a449e983f123292d4458f"
-dependencies = [
- "bitflags",
- "downcast-rs",
- "libc",
- "nix",
- "scoped-tls",
- "wayland-commons",
- "wayland-scanner",
- "wayland-sys",
-]
-
-[[package]]
-name = "wayland-commons"
-version = "0.29.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "94f6e5e340d7c13490eca867898c4cec5af56c27a5ffe5c80c6fc4708e22d33e"
-dependencies = [
- "nix",
- "once_cell",
- "smallvec",
- "wayland-sys",
-]
-
-[[package]]
-name = "wayland-cursor"
-version = "0.29.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c52758f13d5e7861fc83d942d3d99bf270c83269575e52ac29e5b73cb956a6bd"
-dependencies = [
- "nix",
- "wayland-client",
- "xcursor",
-]
-
-[[package]]
-name = "wayland-protocols"
-version = "0.29.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60147ae23303402e41fe034f74fb2c35ad0780ee88a1c40ac09a3be1e7465741"
-dependencies = [
- "bitflags",
- "wayland-client",
- "wayland-commons",
- "wayland-scanner",
-]
-
-[[package]]
-name = "wayland-scanner"
-version = "0.29.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "39a1ed3143f7a143187156a2ab52742e89dac33245ba505c17224df48939f9e0"
-dependencies = [
- "proc-macro2",
- "quote",
- "xml-rs",
-]
-
-[[package]]
-name = "wayland-sys"
-version = "0.29.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d9341df79a8975679188e37dab3889bfa57c44ac2cb6da166f519a81cbe452d4"
-dependencies = [
- "dlib",
- "pkg-config",
-]
-
-[[package]]
-name = "web-sys"
-version = "0.3.59"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ed055ab27f941423197eb86b2035720b1a3ce40504df082cac2ecc6ed73335a1"
-dependencies = [
- "js-sys",
- "wasm-bindgen",
-]
-
-[[package]]
-name = "wgpu"
-version = "0.13.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "277e967bf8b7820a76852645a6bce8bbd31c32fda2042e82d8e3ea75fda8892d"
-dependencies = [
- "arrayvec",
- "js-sys",
- "log",
- "naga",
- "parking_lot 0.12.1",
- "raw-window-handle",
- "smallvec",
- "wasm-bindgen",
- "wasm-bindgen-futures",
- "web-sys",
- "wgpu-core",
- "wgpu-hal",
- "wgpu-types",
-]
-
-[[package]]
-name = "wgpu-core"
-version = "0.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "89b92788dec9d0c1bed849a1b83f01b2ee12819bf04a79c90f68e4173f7b5ba2"
-dependencies = [
- "arrayvec",
- "bit-vec",
- "bitflags",
- "cfg_aliases",
- "codespan-reporting",
- "copyless",
- "fxhash",
- "log",
- "naga",
- "parking_lot 0.12.1",
- "profiling",
- "raw-window-handle",
- "smallvec",
- "thiserror",
- "web-sys",
- "wgpu-hal",
- "wgpu-types",
-]
-
-[[package]]
-name = "wgpu-hal"
-version = "0.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "20cbdfc3d0637dba3d5536b93adef3d26023a0b96f0e1ee5ee9560a401d9f646"
-dependencies = [
- "android_system_properties",
- "arrayvec",
- "ash",
- "bit-set",
- "bitflags",
- "block",
- "core-graphics-types",
- "d3d12",
- "foreign-types",
- "fxhash",
- "glow",
- "gpu-alloc",
- "gpu-descriptor",
- "inplace_it",
- "js-sys",
- "khronos-egl",
- "libloading",
- "log",
- "metal",
- "naga",
- "objc",
- "parking_lot 0.12.1",
- "profiling",
- "range-alloc",
- "raw-window-handle",
- "renderdoc-sys",
- "thiserror",
- "wasm-bindgen",
- "web-sys",
- "wgpu-types",
- "winapi",
-]
-
-[[package]]
-name = "wgpu-types"
-version = "0.13.2"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "1f762cbc08e1a51389859cf9c199c7aef544789cf3510889aab12c607f701604"
-dependencies = [
- "bitflags",
-]
-
-[[package]]
-name = "winapi"
-version = "0.3.9"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419"
-dependencies = [
- "winapi-i686-pc-windows-gnu",
- "winapi-x86_64-pc-windows-gnu",
-]
-
-[[package]]
-name = "winapi-i686-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6"
-
-[[package]]
-name = "winapi-util"
-version = "0.1.5"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178"
-dependencies = [
- "winapi",
-]
-
-[[package]]
-name = "winapi-x86_64-pc-windows-gnu"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f"
-
-[[package]]
-name = "windows-sys"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea04155a16a59f9eab786fe12a4a450e75cdb175f9e0d80da1e17db09f55b8d2"
-dependencies = [
- "windows_aarch64_msvc",
- "windows_i686_gnu",
- "windows_i686_msvc",
- "windows_x86_64_gnu",
- "windows_x86_64_msvc",
-]
-
-[[package]]
-name = "windows_aarch64_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9bb8c3fd39ade2d67e9874ac4f3db21f0d710bee00fe7cab16949ec184eeaa47"
-
-[[package]]
-name = "windows_i686_gnu"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "180e6ccf01daf4c426b846dfc66db1fc518f074baa793aa7d9b9aaeffad6a3b6"
-
-[[package]]
-name = "windows_i686_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e2e7917148b2812d1eeafaeb22a97e4813dfa60a3f8f78ebe204bcc88f12f024"
-
-[[package]]
-name = "windows_x86_64_gnu"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "4dcd171b8776c41b97521e5da127a2d86ad280114807d0b2ab1e462bc764d9e1"
-
-[[package]]
-name = "windows_x86_64_msvc"
-version = "0.36.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c811ca4a8c853ef420abd8592ba53ddbbac90410fab6903b3e79972a631f7680"
-
-[[package]]
-name = "winit"
-version = "0.26.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9b43cc931d58b99461188607efd7acb2a093e65fc621f54cad78517a6063e73a"
-dependencies = [
- "bitflags",
- "cocoa",
- "core-foundation 0.9.3",
- "core-graphics 0.22.3",
- "core-video-sys",
- "dispatch",
- "instant",
- "lazy_static",
- "libc",
- "log",
- "mio",
- "ndk",
- "ndk-glue",
- "ndk-sys",
- "objc",
- "parking_lot 0.11.2",
- "percent-encoding",
- "raw-window-handle",
- "smithay-client-toolkit",
- "wasm-bindgen",
- "wayland-client",
- "wayland-protocols",
- "web-sys",
- "winapi",
- "x11-dl",
-]
-
-[[package]]
-name = "x11-dl"
-version = "2.19.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ea26926b4ce81a6f5d9d0f3a0bc401e5a37c6ae14a1bfaa8ff6099ca80038c59"
-dependencies = [
- "lazy_static",
- "libc",
- "pkg-config",
-]
-
-[[package]]
-name = "xcursor"
-version = "0.3.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "463705a63313cd4301184381c5e8042f0a7e9b4bb63653f216311d4ae74690b7"
-dependencies = [
- "nom",
-]
-
-[[package]]
-name = "xi-unicode"
-version = "0.3.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a67300977d3dc3f8034dae89778f502b6ba20b269527b3223ba59c0cf393bb8a"
-
-[[package]]
-name = "xml-rs"
-version = "0.8.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d2d7d3948613f75c98fd9328cfdcc45acc4d360655289d0a7d4ec931392200a3"

From a8ed595ca3e9366d198a2c761e867d5febb9f8bd Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Sun, 31 Jul 2022 17:29:41 +0200
Subject: [PATCH 07/63] Temp fix compile errors, fmt & clippy fix

---
 examples/minimal.rs          |  1 -
 examples/multiple_targets.rs |  7 +++--
 examples/simple.rs           | 53 ++++++++++++++++++------------------
 examples/switch.rs           |  3 ++
 src/lib.rs                   |  5 +---
 5 files changed, 36 insertions(+), 33 deletions(-)

diff --git a/examples/minimal.rs b/examples/minimal.rs
index d9454ee..e6bf744 100644
--- a/examples/minimal.rs
+++ b/examples/minimal.rs
@@ -70,7 +70,6 @@ fn setup(
         },
         ..Default::default()
     });
-    //.insert(FlyCam);
 }
 
 fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut query: Query<&mut Rig>) {
diff --git a/examples/multiple_targets.rs b/examples/multiple_targets.rs
index c5ecf57..9f36c63 100644
--- a/examples/multiple_targets.rs
+++ b/examples/multiple_targets.rs
@@ -1,7 +1,8 @@
-//Base
+fn main() {}
+
+/*
 use bevy::prelude::*;
 use bevy_config_cam::*;
-
 fn main() {
     App::new()
         .insert_resource(Msaa { samples: 4 })
@@ -97,3 +98,5 @@ fn set_closest_target(
         cl.target = None;
     }
 }
+
+*/
diff --git a/examples/simple.rs b/examples/simple.rs
index 878574f..d4b2eee 100644
--- a/examples/simple.rs
+++ b/examples/simple.rs
@@ -1,7 +1,7 @@
-//Base
+fn main() {}
+/*
 use bevy::prelude::*;
 use bevy_config_cam::*;
-
 fn main() {
     App::new()
         .insert_resource(Msaa { samples: 4 })
@@ -19,25 +19,25 @@ fn main() {
         })
         .add_startup_system(setup)
         .run();
-}
+    }
 
-/// set up a simple 3D scene
-fn setup(
-    mut commands: Commands,
-    mut meshes: ResMut<Assets<Mesh>>,
-    mut materials: ResMut<Assets<StandardMaterial>>,
-    mut cl: ResMut<CamLogic>,
-) {
-    // plane
-    commands.spawn_bundle(PbrBundle {
-        mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
-        material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
-        ..Default::default()
-    });
+    /// set up a simple 3D scene
+    fn setup(
+        mut commands: Commands,
+        mut meshes: ResMut<Assets<Mesh>>,
+        mut materials: ResMut<Assets<StandardMaterial>>,
+        mut cl: ResMut<CamLogic>,
+    ) {
+        // plane
+        commands.spawn_bundle(PbrBundle {
+            mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
+            material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
+            ..Default::default()
+        });
 
-    // cube, set as target
-    cl.target = Some(
-        commands
+        // cube, set as target
+        cl.target = Some(
+            commands
             .spawn_bundle(PbrBundle {
                 mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
                 material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
@@ -45,11 +45,12 @@ fn setup(
                 ..Default::default()
             })
             .id(),
-    );
+        );
 
-    // light
-    commands.spawn_bundle(PointLightBundle {
-        transform: Transform::from_xyz(4.0, 8.0, 4.0),
-        ..Default::default()
-    });
-}
+        // light
+        commands.spawn_bundle(PointLightBundle {
+            transform: Transform::from_xyz(4.0, 8.0, 4.0),
+            ..Default::default()
+        });
+    }
+*/
diff --git a/examples/switch.rs b/examples/switch.rs
index 44c460b..8d309ed 100644
--- a/examples/switch.rs
+++ b/examples/switch.rs
@@ -1,3 +1,5 @@
+fn main() {}
+/*
 use bevy::{
     prelude::*,
     render::camera::{ActiveCamera, Camera3d},
@@ -93,3 +95,4 @@ fn cycle_camera_state(
         keys.reset(KeyCode::E);
     }
 }
+*/
diff --git a/src/lib.rs b/src/lib.rs
index f43b3d2..b969039 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,7 +1,4 @@
-use bevy::{
-    math::Vec3,
-    prelude::{App, Camera, Changed, Entity, Plugin, Query, Res, Time, Transform},
-};
+use bevy::prelude::{App, Camera, Changed, Entity, Plugin, Query, Res, Time, Transform};
 use bevy_dolly::prelude::*;
 
 pub struct ConfigCam;

From c4275906a28cbc1fef14363b569e68877668e2a9 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Sun, 31 Jul 2022 17:33:55 +0200
Subject: [PATCH 08/63] CI Update

---
 .github/workflows/master.yml | 26 +++++++++++++-------------
 1 file changed, 13 insertions(+), 13 deletions(-)

diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml
index 938fafc..83fb843 100644
--- a/.github/workflows/master.yml
+++ b/.github/workflows/master.yml
@@ -3,19 +3,19 @@ on: [push, pull_request]
 name: CI
 
 jobs:
-  update:
-    name: Update
-    runs-on: ubuntu-latest
-    steps:
-      - uses: actions/checkout@v2
-      - uses: actions-rs/toolchain@v1
-        with:
-          profile: minimal
-          toolchain: stable
-          override: true
-      - uses: actions-rs/cargo@v1
-        with:
-          command: update
+  #update:
+  #  name: Update
+  #  runs-on: ubuntu-latest
+  #  steps:
+  #    - uses: actions/checkout@v2
+  #    - uses: actions-rs/toolchain@v1
+  #      with:
+  #        profile: minimal
+  #        toolchain: stable
+  #        override: true
+  #    - uses: actions-rs/cargo@v1
+  #      with:
+  #        command: update
 
   check:
     name: Check

From 14c4fed239d6fa26a54a2e21157e5fc2b4533f58 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Sun, 31 Jul 2022 17:34:59 +0200
Subject: [PATCH 09/63] Removed update CI

---
 .github/workflows/master.yml | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml
index 83fb843..7edcedf 100644
--- a/.github/workflows/master.yml
+++ b/.github/workflows/master.yml
@@ -20,7 +20,7 @@ jobs:
   check:
     name: Check
     runs-on: ubuntu-latest
-    needs: update
+    #needs: update
     steps:
       - uses: actions/checkout@v2
       - uses: actions-rs/toolchain@v1
@@ -35,7 +35,7 @@ jobs:
   test:
     name: Test Suite
     runs-on: ubuntu-latest
-    needs: update
+    #needs: update
     steps:
       - uses: actions/checkout@v2
       - name: Update apt
@@ -74,7 +74,7 @@ jobs:
   clippy:
     name: Clippy
     runs-on: ubuntu-latest
-    needs: update
+    #needs: update
     steps:
       - uses: actions/checkout@v2
       - uses: actions-rs/toolchain@v1

From 18c07a79c5c4a0adfaa186b9c18428baf72aeec7 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Sun, 31 Jul 2022 17:44:26 +0200
Subject: [PATCH 10/63] Added clean ci

---
 .github/workflows/master.yml | 41 ++++++++++++++++++++++--------------
 1 file changed, 25 insertions(+), 16 deletions(-)

diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml
index 7edcedf..9e56e71 100644
--- a/.github/workflows/master.yml
+++ b/.github/workflows/master.yml
@@ -3,24 +3,33 @@ on: [push, pull_request]
 name: CI
 
 jobs:
-  #update:
-  #  name: Update
-  #  runs-on: ubuntu-latest
-  #  steps:
-  #    - uses: actions/checkout@v2
-  #    - uses: actions-rs/toolchain@v1
-  #      with:
-  #        profile: minimal
-  #        toolchain: stable
-  #        override: true
-  #    - uses: actions-rs/cargo@v1
-  #      with:
-  #        command: update
+  clean:
+    name: Clean
+    runs-on: ubuntu-latest
+    steps:
+    - name: Remove cargo registry
+      run: |
+        rm ~/.cargo/registry/index
+
+  update:
+    name: Update
+    runs-on: ubuntu-latest
+    needs: clean
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions-rs/toolchain@v1
+        with:
+          profile: minimal
+          toolchain: stable
+          override: true
+      - uses: actions-rs/cargo@v1
+        with:
+          command: update
 
   check:
     name: Check
     runs-on: ubuntu-latest
-    #needs: update
+    needs: update
     steps:
       - uses: actions/checkout@v2
       - uses: actions-rs/toolchain@v1
@@ -35,7 +44,7 @@ jobs:
   test:
     name: Test Suite
     runs-on: ubuntu-latest
-    #needs: update
+    needs: update
     steps:
       - uses: actions/checkout@v2
       - name: Update apt
@@ -74,7 +83,7 @@ jobs:
   clippy:
     name: Clippy
     runs-on: ubuntu-latest
-    #needs: update
+    needs: update
     steps:
       - uses: actions/checkout@v2
       - uses: actions-rs/toolchain@v1

From 5c24fbc2591b1bf032aa99c247815a9ee974b2e0 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Sun, 31 Jul 2022 17:46:13 +0200
Subject: [PATCH 11/63] ...

---
 .github/workflows/master.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml
index 9e56e71..17289bf 100644
--- a/.github/workflows/master.yml
+++ b/.github/workflows/master.yml
@@ -6,6 +6,7 @@ jobs:
   clean:
     name: Clean
     runs-on: ubuntu-latest
+    continue-on-error: true
     steps:
     - name: Remove cargo registry
       run: |

From efa8b3081d4721f2e9766398034c6e29e01a453e Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Sun, 31 Jul 2022 17:47:50 +0200
Subject: [PATCH 12/63] ..

---
 .github/workflows/master.yml | 11 +----------
 1 file changed, 1 insertion(+), 10 deletions(-)

diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml
index 17289bf..20499ee 100644
--- a/.github/workflows/master.yml
+++ b/.github/workflows/master.yml
@@ -3,19 +3,10 @@ on: [push, pull_request]
 name: CI
 
 jobs:
-  clean:
-    name: Clean
-    runs-on: ubuntu-latest
-    continue-on-error: true
-    steps:
-    - name: Remove cargo registry
-      run: |
-        rm ~/.cargo/registry/index
-
   update:
     name: Update
     runs-on: ubuntu-latest
-    needs: clean
+    continue-on-error: true
     steps:
       - uses: actions/checkout@v2
       - uses: actions-rs/toolchain@v1

From 3b28c46137e5a083602b8855861c468d9364c360 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 2 Aug 2022 01:35:17 +0200
Subject: [PATCH 13/63] Mad camera science

---
 Cargo.toml                      |  1 +
 driver_marker_derive/Cargo.toml | 13 +++++
 driver_marker_derive/src/lib.rs | 40 ++++++++++++++
 examples/minimal.rs             | 31 ++++++++---
 src/lib.rs                      | 96 ++++++++++++++++++++++++++++-----
 5 files changed, 159 insertions(+), 22 deletions(-)
 create mode 100644 driver_marker_derive/Cargo.toml
 create mode 100644 driver_marker_derive/src/lib.rs

diff --git a/Cargo.toml b/Cargo.toml
index 647cf3e..4d0bea7 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -26,6 +26,7 @@ rand = "0.8"
 strum = "0.24"
 strum_macros = "0.24"
 bevy_dolly = { path="../bevy_dolly" }
+driver_marker_derive = { path = "driver_marker_derive" }
 
 [dependencies.bevy]
 version = "0.8.0"
diff --git a/driver_marker_derive/Cargo.toml b/driver_marker_derive/Cargo.toml
new file mode 100644
index 0000000..f341d4f
--- /dev/null
+++ b/driver_marker_derive/Cargo.toml
@@ -0,0 +1,13 @@
+[package]
+name = "driver_marker_derive"
+version = "0.1.0"
+edition = "2021"
+
+# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
+
+[lib]
+proc-macro = true
+
+[dependencies]
+syn = "1.0"
+quote = "1.0"
\ No newline at end of file
diff --git a/driver_marker_derive/src/lib.rs b/driver_marker_derive/src/lib.rs
new file mode 100644
index 0000000..747277a
--- /dev/null
+++ b/driver_marker_derive/src/lib.rs
@@ -0,0 +1,40 @@
+extern crate proc_macro;
+
+use proc_macro::TokenStream;
+use quote::quote;
+use syn;
+
+#[proc_macro_derive(DriverMarker)]
+pub fn driver_marker_derive(input: TokenStream) -> TokenStream {
+    // Construct a representation of Rust code as a syntax tree
+    // that we can manipulate
+    let ast = syn::parse(input).unwrap();
+
+    // Build the trait implementation
+    impl_driver_marker_macro(&ast)
+}
+
+fn impl_driver_marker_macro(ast: &syn::DeriveInput) -> TokenStream {
+    let name = &ast.ident;
+    let f = format!("{}", name);
+    let gen = quote! {
+        impl DriverMarker for #name {
+            fn get_component(&self) -> &str {
+                #f
+            }
+
+            fn add_component(&self, commands: &mut Commands, entity: Entity){
+                commands
+                    .entity(entity)
+                    .insert(#name);
+            }
+
+            fn remove_component(&self, commands: &mut Commands, entity: Entity){
+                commands
+                    .entity(entity)
+                    .remove::<#name>();
+            }
+        }
+    };
+    gen.into()
+}
\ No newline at end of file
diff --git a/examples/minimal.rs b/examples/minimal.rs
index e6bf744..df102a8 100644
--- a/examples/minimal.rs
+++ b/examples/minimal.rs
@@ -39,16 +39,29 @@ fn setup(
         ..Default::default()
     });
 
-    commands.spawn().insert(
-        Rig::builder()
-            .with(YawPitch::new().yaw_degrees(45.0).pitch_degrees(-30.0))
-            .with(Smooth::new_rotation(1.5))
-            .with(Arm::new(glam::Vec3::Z * 4.0))
-            .build(),
-    );
+    commands
+        .spawn()
+        .insert(
+            Rig::builder()
+                .with(YawPitch::new().yaw_degrees(45.0).pitch_degrees(-45.0))
+                .with(Smooth::new_rotation(1.5))
+                .with(Arm::new(glam::Vec3::Z * 4.0))
+                .build(),
+        )
+        .insert(FPV);
+
+    commands
+        .spawn()
+        .insert(
+            Rig::builder()
+                .with(YawPitch::new().yaw_degrees(0.0).pitch_degrees(-90.0))
+                .with(Smooth::new_rotation(1.5))
+                .with(Arm::new(glam::Vec3::Z * 4.0))
+                .build(),
+        )
+        .insert(FPV2);
 
     commands.spawn_bundle(Camera3dBundle {
-        transform: Transform::from_xyz(0.0, 5.0, 0.01).looking_at(Vec3::ZERO, Vec3::Y),
         camera: Camera {
             is_active: true,
             ..Default::default()
@@ -62,6 +75,7 @@ fn setup(
         ..Default::default()
     });
 
+    /*
     commands.spawn_bundle(Camera3dBundle {
         transform: Transform::from_xyz(5., 2.0, 0.).looking_at(Vec3::ZERO, Vec3::Y),
         camera: Camera {
@@ -70,6 +84,7 @@ fn setup(
         },
         ..Default::default()
     });
+    */
 }
 
 fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut query: Query<&mut Rig>) {
diff --git a/src/lib.rs b/src/lib.rs
index b969039..a942fa5 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,28 +1,96 @@
-use bevy::prelude::{App, Camera, Changed, Entity, Plugin, Query, Res, Time, Transform};
+use bevy::{
+    ecs::component::TableStorage,
+    input::Input,
+    prelude::{
+        App, Camera, Commands, Component, Entity, KeyCode, Plugin, Query, ReflectComponent, Res,
+        ResMut,
+    },
+    reflect::{reflect_trait, Reflect, TypeRegistry},
+    render::camera,
+};
 use bevy_dolly::prelude::*;
+use driver_marker_derive::DriverMarker;
 
 pub struct ConfigCam;
 impl Plugin for ConfigCam {
     fn build(&self, app: &mut App) {
-        app.add_system(config_cam_change_detection);
+        app.init_resource::<DriverIndex>()
+            .init_resource::<Drivers>()
+            .add_dolly_component(FPV)
+            .add_dolly_component(FPV2)
+            .add_system(change_driver_system)
+            .add_system(update_driver_system); //.add_dolly_component(FPV)
     }
 }
 
-fn config_cam_change_detection(
-    mut cameras: Query<(&mut Transform, &Camera)>,
-    time: Res<Time>,
-    mut query: Query<(Entity, &mut Rig), Changed<Rig>>,
+#[derive(Component, DriverMarker, Clone, Copy, Debug)]
+pub struct FPV;
+
+#[derive(Component, DriverMarker, Clone, Copy, Debug)]
+pub struct FPV2;
+
+pub struct Drivers(Vec<Box<dyn DriverMarker>>);
+
+impl Default for Drivers {
+    fn default() -> Self {
+        Self(vec![Box::new(FPV), Box::new(FPV2)])
+    }
+}
+
+pub trait DriverMarker: Sync + Send + 'static {
+    fn get_component(&self) -> &str;
+    fn add_component(&self, commands: &mut Commands, entity: Entity);
+    fn remove_component(&self, commands: &mut Commands, entity: Entity);
+}
+
+#[derive(Default)]
+pub struct DriverIndex(usize);
+
+//Use collection with and keeping an index component or the like
+fn change_driver_system(
+    mut index: ResMut<DriverIndex>,
+    drivers: Res<Drivers>,
+    keys: Res<Input<KeyCode>>,
 ) {
-    for (_entity, mut rig) in &mut query {
-        //let d = rig.drivers.iter().map(|f| format!("{:?}", f)).collect::<Vec<String>>().join(", ");
-        //info!("{:?} changed: {:?}", entity, d);
+    if keys.just_pressed(KeyCode::T) {
+        if index.0 >= drivers.0.len() - 1 {
+            index.0 = 0;
+        } else {
+            index.0 += 1;
+        }
+    }
+}
 
-        let transform = rig.update(time.delta_seconds());
+fn update_driver_system(
+    q: Query<(Entity, &Camera)>,
+    mut commands: Commands,
+    index: Res<DriverIndex>,
+    drivers: Res<Drivers>,
+) {
+    if index.is_changed() {
+        for component in &drivers.0 {
+            let a = component.as_ref();
+            let b = a.get_component();
 
-        cameras.for_each_mut(|(mut t, camera)| {
-            if camera.is_active {
-                t.transform_2_bevy(transform);
+            if let Some(h) = drivers.0.get(index.0) {
+                if b.eq(h.get_component()) {
+                    //Add new driver component
+                    //Remove old driver component
+                    for (entity, camera) in q.iter() {
+                        if camera.is_active {
+                            a.add_component(&mut commands, entity);
+                            println!("Adding {:?} to Camera {:?}", b, entity);
+                        }
+                    }
+                } else {
+                    for (entity, camera) in q.iter() {
+                        if camera.is_active {
+                            a.remove_component(&mut commands, entity);
+                            println!("Remove {:?} from Camera {:?}", b, entity);
+                        }
+                    }
+                }
             }
-        });
+        }
     }
 }

From 5da8e9f4d5195f624e500b5cdc5b6d99214fa407 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 2 Aug 2022 02:10:50 +0200
Subject: [PATCH 14/63] Made ergonomic

---
 driver_marker_derive/src/lib.rs |  6 +--
 examples/minimal.rs             | 35 +-------------
 examples/orbit.rs               | 84 +++++++++++++++++++++++++++++++++
 src/lib.rs                      | 76 +++++++++++++++++------------
 4 files changed, 134 insertions(+), 67 deletions(-)
 create mode 100644 examples/orbit.rs

diff --git a/driver_marker_derive/src/lib.rs b/driver_marker_derive/src/lib.rs
index 747277a..e554d46 100644
--- a/driver_marker_derive/src/lib.rs
+++ b/driver_marker_derive/src/lib.rs
@@ -19,17 +19,17 @@ fn impl_driver_marker_macro(ast: &syn::DeriveInput) -> TokenStream {
     let f = format!("{}", name);
     let gen = quote! {
         impl DriverMarker for #name {
-            fn get_component(&self) -> &str {
+            fn get_name(&self) -> &str {
                 #f
             }
 
-            fn add_component(&self, commands: &mut Commands, entity: Entity){
+            fn add_to(&self, commands: &mut Commands, entity: Entity){
                 commands
                     .entity(entity)
                     .insert(#name);
             }
 
-            fn remove_component(&self, commands: &mut Commands, entity: Entity){
+            fn remove_from(&self, commands: &mut Commands, entity: Entity){
                 commands
                     .entity(entity)
                     .remove::<#name>();
diff --git a/examples/minimal.rs b/examples/minimal.rs
index df102a8..9fbe95d 100644
--- a/examples/minimal.rs
+++ b/examples/minimal.rs
@@ -1,7 +1,7 @@
 //Base
 use bevy::{prelude::*, render::camera::ScalingMode};
 use bevy_config_cam::*;
-use bevy_dolly::{dolly::glam, prelude::*};
+use bevy_dolly::prelude::*;
 
 fn main() {
     App::new()
@@ -39,28 +39,6 @@ fn setup(
         ..Default::default()
     });
 
-    commands
-        .spawn()
-        .insert(
-            Rig::builder()
-                .with(YawPitch::new().yaw_degrees(45.0).pitch_degrees(-45.0))
-                .with(Smooth::new_rotation(1.5))
-                .with(Arm::new(glam::Vec3::Z * 4.0))
-                .build(),
-        )
-        .insert(FPV);
-
-    commands
-        .spawn()
-        .insert(
-            Rig::builder()
-                .with(YawPitch::new().yaw_degrees(0.0).pitch_degrees(-90.0))
-                .with(Smooth::new_rotation(1.5))
-                .with(Arm::new(glam::Vec3::Z * 4.0))
-                .build(),
-        )
-        .insert(FPV2);
-
     commands.spawn_bundle(Camera3dBundle {
         camera: Camera {
             is_active: true,
@@ -74,17 +52,6 @@ fn setup(
         .into(),
         ..Default::default()
     });
-
-    /*
-    commands.spawn_bundle(Camera3dBundle {
-        transform: Transform::from_xyz(5., 2.0, 0.).looking_at(Vec3::ZERO, Vec3::Y),
-        camera: Camera {
-            is_active: false,
-            ..Default::default()
-        },
-        ..Default::default()
-    });
-    */
 }
 
 fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut query: Query<&mut Rig>) {
diff --git a/examples/orbit.rs b/examples/orbit.rs
new file mode 100644
index 0000000..b9f89d4
--- /dev/null
+++ b/examples/orbit.rs
@@ -0,0 +1,84 @@
+use bevy::{prelude::*, render::camera::ScalingMode};
+use bevy_config_cam::*;
+use bevy_dolly::{dolly::glam, prelude::*};
+use driver_marker_derive::DriverMarker;
+
+fn main() {
+    App::new()
+        .add_plugins(DefaultPlugins)
+        .add_plugin(ConfigCam)
+        .add_dolly_component(OrbitTopDown)
+        .insert_resource(Drivers::new(vec![Box::new(Orbit), Box::new(OrbitTopDown)]))
+        .add_startup_system(setup)
+        .add_system(update_yaw_driver)
+        .run();
+}
+
+#[derive(Component, DriverMarker, Clone, Copy, Debug)]
+pub struct OrbitTopDown;
+
+/// set up a simple 3D scene
+fn setup(
+    mut commands: Commands,
+    mut meshes: ResMut<Assets<Mesh>>,
+    mut materials: ResMut<Assets<StandardMaterial>>,
+) {
+    // plane
+    commands.spawn_bundle(PbrBundle {
+        mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
+        material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
+        ..Default::default()
+    });
+
+    // cube
+    commands.spawn_bundle(PbrBundle {
+        mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
+        material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
+        transform: Transform::from_xyz(0.0, 0.5, 0.0),
+        ..Default::default()
+    });
+
+    // light
+    commands.spawn_bundle(PointLightBundle {
+        transform: Transform::from_xyz(4.0, 8.0, 4.0),
+        ..Default::default()
+    });
+
+    commands
+        .spawn()
+        .insert(
+            Rig::builder()
+                .with(YawPitch::new().yaw_degrees(0.0).pitch_degrees(-90.0))
+                .with(Smooth::new_rotation(1.5))
+                .with(Arm::new(glam::Vec3::Z * 4.0))
+                .build(),
+        )
+        .insert(OrbitTopDown);
+
+    commands.spawn_bundle(Camera3dBundle {
+        camera: Camera {
+            is_active: true,
+            ..Default::default()
+        },
+        projection: OrthographicProjection {
+            scale: 3.0,
+            scaling_mode: ScalingMode::FixedVertical(1.0),
+            ..default()
+        }
+        .into(),
+        ..Default::default()
+    });
+}
+
+fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut query: Query<&mut Rig>) {
+    for mut rig in &mut query {
+        if let Some(camera_driver) = rig.try_driver_mut::<YawPitch>() {
+            if keys.just_pressed(KeyCode::Z) {
+                camera_driver.rotate_yaw_pitch(-90.0, 0.0);
+            }
+            if keys.just_pressed(KeyCode::X) {
+                camera_driver.rotate_yaw_pitch(90.0, 0.0);
+            }
+        }
+    }
+}
diff --git a/src/lib.rs b/src/lib.rs
index a942fa5..2c56cf8 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,14 +1,8 @@
 use bevy::{
-    ecs::component::TableStorage,
     input::Input,
-    prelude::{
-        App, Camera, Commands, Component, Entity, KeyCode, Plugin, Query, ReflectComponent, Res,
-        ResMut,
-    },
-    reflect::{reflect_trait, Reflect, TypeRegistry},
-    render::camera,
+    prelude::{App, Camera, Commands, Component, Entity, KeyCode, Plugin, Query, Res, ResMut},
 };
-use bevy_dolly::prelude::*;
+use bevy_dolly::{dolly::glam, prelude::*};
 use driver_marker_derive::DriverMarker;
 
 pub struct ConfigCam;
@@ -16,36 +10,62 @@ impl Plugin for ConfigCam {
     fn build(&self, app: &mut App) {
         app.init_resource::<DriverIndex>()
             .init_resource::<Drivers>()
-            .add_dolly_component(FPV)
-            .add_dolly_component(FPV2)
+            .add_dolly_component(Orbit)
+            .add_startup_system(default_setup)
             .add_system(change_driver_system)
             .add_system(update_driver_system); //.add_dolly_component(FPV)
     }
 }
 
 #[derive(Component, DriverMarker, Clone, Copy, Debug)]
-pub struct FPV;
+pub struct Orbit;
 
-#[derive(Component, DriverMarker, Clone, Copy, Debug)]
-pub struct FPV2;
+fn default_setup(mut commands: Commands) {
+    commands
+        .spawn()
+        .insert(
+            Rig::builder()
+                .with(YawPitch::new().yaw_degrees(45.0).pitch_degrees(-45.0))
+                .with(Smooth::new_rotation(1.5))
+                .with(Arm::new(glam::Vec3::Z * 4.0))
+                .build(),
+        )
+        .insert(Orbit);
+}
 
 pub struct Drivers(Vec<Box<dyn DriverMarker>>);
 
 impl Default for Drivers {
     fn default() -> Self {
-        Self(vec![Box::new(FPV), Box::new(FPV2)])
+        Self(vec![Box::new(Orbit)])
+    }
+}
+
+impl Drivers {
+    pub fn new(driver_markers: Vec<Box<dyn DriverMarker>>) -> Self {
+        Self(driver_markers)
     }
 }
 
 pub trait DriverMarker: Sync + Send + 'static {
-    fn get_component(&self) -> &str;
-    fn add_component(&self, commands: &mut Commands, entity: Entity);
-    fn remove_component(&self, commands: &mut Commands, entity: Entity);
+    fn get_name(&self) -> &str;
+    fn add_to(&self, commands: &mut Commands, entity: Entity);
+    fn remove_from(&self, commands: &mut Commands, entity: Entity);
 }
 
 #[derive(Default)]
 pub struct DriverIndex(usize);
 
+impl DriverIndex {
+    pub fn next(&mut self, len: usize) {
+        if self.0 >= len - 1 {
+            self.0 = 0;
+        } else {
+            self.0 += 1;
+        }
+    }
+}
+
 //Use collection with and keeping an index component or the like
 fn change_driver_system(
     mut index: ResMut<DriverIndex>,
@@ -53,11 +73,7 @@ fn change_driver_system(
     keys: Res<Input<KeyCode>>,
 ) {
     if keys.just_pressed(KeyCode::T) {
-        if index.0 >= drivers.0.len() - 1 {
-            index.0 = 0;
-        } else {
-            index.0 += 1;
-        }
+        index.next(drivers.0.len());
     }
 }
 
@@ -68,25 +84,25 @@ fn update_driver_system(
     drivers: Res<Drivers>,
 ) {
     if index.is_changed() {
-        for component in &drivers.0 {
-            let a = component.as_ref();
-            let b = a.get_component();
+        for box_component in &drivers.0 {
+            let component = box_component.as_ref();
+            let component_name = component.get_name();
 
             if let Some(h) = drivers.0.get(index.0) {
-                if b.eq(h.get_component()) {
+                if component_name.eq(h.get_name()) {
                     //Add new driver component
                     //Remove old driver component
                     for (entity, camera) in q.iter() {
                         if camera.is_active {
-                            a.add_component(&mut commands, entity);
-                            println!("Adding {:?} to Camera {:?}", b, entity);
+                            component.add_to(&mut commands, entity);
+                            println!("Adding {:?} to Camera {:?}", component_name, entity);
                         }
                     }
                 } else {
                     for (entity, camera) in q.iter() {
                         if camera.is_active {
-                            a.remove_component(&mut commands, entity);
-                            println!("Remove {:?} from Camera {:?}", b, entity);
+                            component.remove_from(&mut commands, entity);
+                            println!("Remove {:?} from Camera {:?}", component_name, entity);
                         }
                     }
                 }

From ef8eeffe4fe93bad6bade1b503afb689018bd2d7 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 2 Aug 2022 02:17:36 +0200
Subject: [PATCH 15/63] fmt

---
 driver_marker_derive/src/lib.rs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/driver_marker_derive/src/lib.rs b/driver_marker_derive/src/lib.rs
index e554d46..1ebef03 100644
--- a/driver_marker_derive/src/lib.rs
+++ b/driver_marker_derive/src/lib.rs
@@ -37,4 +37,4 @@ fn impl_driver_marker_macro(ast: &syn::DeriveInput) -> TokenStream {
         }
     };
     gen.into()
-}
\ No newline at end of file
+}

From bfb59c0d150cc7b2b0bb581d95d82fd698b18157 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 2 Aug 2022 03:02:39 +0200
Subject: [PATCH 16/63] Updated examples

---
 Cargo.toml          |  2 +-
 examples/minimal.rs | 15 ---------------
 examples/orbit.rs   | 13 -------------
 src/lib.rs          | 34 ++++++++++++++++++++++++++++++++--
 4 files changed, 33 insertions(+), 31 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index 4d0bea7..9f5e100 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -25,7 +25,7 @@ name = "bevy_config_cam"
 rand = "0.8"
 strum = "0.24"
 strum_macros = "0.24"
-bevy_dolly = { path="../bevy_dolly" }
+bevy_dolly = { git = "https://github.com/BlackPhlox/bevy_dolly", branch = "0.8" }
 driver_marker_derive = { path = "driver_marker_derive" }
 
 [dependencies.bevy]
diff --git a/examples/minimal.rs b/examples/minimal.rs
index 9fbe95d..4df5154 100644
--- a/examples/minimal.rs
+++ b/examples/minimal.rs
@@ -1,14 +1,12 @@
 //Base
 use bevy::{prelude::*, render::camera::ScalingMode};
 use bevy_config_cam::*;
-use bevy_dolly::prelude::*;
 
 fn main() {
     App::new()
         .add_plugins(DefaultPlugins)
         .add_plugin(ConfigCam)
         .add_startup_system(setup)
-        .add_system(update_yaw_driver)
         .run();
 }
 
@@ -53,16 +51,3 @@ fn setup(
         ..Default::default()
     });
 }
-
-fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut query: Query<&mut Rig>) {
-    for mut rig in &mut query {
-        if let Some(camera_driver) = rig.try_driver_mut::<YawPitch>() {
-            if keys.just_pressed(KeyCode::Z) {
-                camera_driver.rotate_yaw_pitch(-90.0, 0.0);
-            }
-            if keys.just_pressed(KeyCode::X) {
-                camera_driver.rotate_yaw_pitch(90.0, 0.0);
-            }
-        }
-    }
-}
diff --git a/examples/orbit.rs b/examples/orbit.rs
index b9f89d4..471d41e 100644
--- a/examples/orbit.rs
+++ b/examples/orbit.rs
@@ -69,16 +69,3 @@ fn setup(
         ..Default::default()
     });
 }
-
-fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut query: Query<&mut Rig>) {
-    for mut rig in &mut query {
-        if let Some(camera_driver) = rig.try_driver_mut::<YawPitch>() {
-            if keys.just_pressed(KeyCode::Z) {
-                camera_driver.rotate_yaw_pitch(-90.0, 0.0);
-            }
-            if keys.just_pressed(KeyCode::X) {
-                camera_driver.rotate_yaw_pitch(90.0, 0.0);
-            }
-        }
-    }
-}
diff --git a/src/lib.rs b/src/lib.rs
index 2c56cf8..8fa0ff5 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -10,17 +10,47 @@ impl Plugin for ConfigCam {
     fn build(&self, app: &mut App) {
         app.init_resource::<DriverIndex>()
             .init_resource::<Drivers>()
+            .add_dolly_component(LookAt)
             .add_dolly_component(Orbit)
             .add_startup_system(default_setup)
             .add_system(change_driver_system)
-            .add_system(update_driver_system); //.add_dolly_component(FPV)
+            .add_system(update_driver_system)
+            .add_system(update_yaw_driver);
     }
 }
 
+fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut query: Query<&mut Rig>) {
+    for mut rig in &mut query {
+        if let Some(camera_driver) = rig.try_driver_mut::<YawPitch>() {
+            if keys.just_pressed(KeyCode::Z) {
+                camera_driver.rotate_yaw_pitch(-90.0, 0.0);
+            }
+            if keys.just_pressed(KeyCode::X) {
+                camera_driver.rotate_yaw_pitch(90.0, 0.0);
+            }
+        }
+    }
+}
+
+#[derive(Component, DriverMarker, Clone, Copy, Debug)]
+pub struct LookAt;
+
 #[derive(Component, DriverMarker, Clone, Copy, Debug)]
 pub struct Orbit;
 
 fn default_setup(mut commands: Commands) {
+    commands
+        .spawn()
+        .insert(
+            Rig::builder()
+                .with(Position::new(glam::Vec3::new(1., 1., 1.) * 3.0))
+                .with(bevy_dolly::prelude::LookAt::new(
+                    glam::Vec3::new(
+                    0., 0., 0.,)))
+                .build(),
+        )
+        .insert(LookAt);
+
     commands
         .spawn()
         .insert(
@@ -37,7 +67,7 @@ pub struct Drivers(Vec<Box<dyn DriverMarker>>);
 
 impl Default for Drivers {
     fn default() -> Self {
-        Self(vec![Box::new(Orbit)])
+        Self(vec![Box::new(LookAt), Box::new(Orbit)])
     }
 }
 

From 8fb3358d2b3bdf9598b3e94ebaba4cd86b9ed9b6 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 2 Aug 2022 03:12:27 +0200
Subject: [PATCH 17/63] Impl. TypeId for check

---
 driver_marker_derive/src/lib.rs |  4 ++++
 src/lib.rs                      | 11 +++++++----
 2 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/driver_marker_derive/src/lib.rs b/driver_marker_derive/src/lib.rs
index 1ebef03..aa7f32a 100644
--- a/driver_marker_derive/src/lib.rs
+++ b/driver_marker_derive/src/lib.rs
@@ -19,6 +19,10 @@ fn impl_driver_marker_macro(ast: &syn::DeriveInput) -> TokenStream {
     let f = format!("{}", name);
     let gen = quote! {
         impl DriverMarker for #name {
+            fn get_id(&self) -> TypeId {
+                TypeId::of::<#name>()
+            }
+
             fn get_name(&self) -> &str {
                 #f
             }
diff --git a/src/lib.rs b/src/lib.rs
index 8fa0ff5..d541ed4 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,3 +1,5 @@
+use std::any::TypeId;
+
 use bevy::{
     input::Input,
     prelude::{App, Camera, Commands, Component, Entity, KeyCode, Plugin, Query, Res, ResMut},
@@ -78,6 +80,7 @@ impl Drivers {
 }
 
 pub trait DriverMarker: Sync + Send + 'static {
+    fn get_id(&self) -> TypeId;
     fn get_name(&self) -> &str;
     fn add_to(&self, commands: &mut Commands, entity: Entity);
     fn remove_from(&self, commands: &mut Commands, entity: Entity);
@@ -116,23 +119,23 @@ fn update_driver_system(
     if index.is_changed() {
         for box_component in &drivers.0 {
             let component = box_component.as_ref();
-            let component_name = component.get_name();
+            let component_id = component.get_id();
 
             if let Some(h) = drivers.0.get(index.0) {
-                if component_name.eq(h.get_name()) {
+                if component_id.eq(&h.get_id()) {
                     //Add new driver component
                     //Remove old driver component
                     for (entity, camera) in q.iter() {
                         if camera.is_active {
                             component.add_to(&mut commands, entity);
-                            println!("Adding {:?} to Camera {:?}", component_name, entity);
+                            println!("Adding {:?} to Camera {:?}", component.get_name(), entity);
                         }
                     }
                 } else {
                     for (entity, camera) in q.iter() {
                         if camera.is_active {
                             component.remove_from(&mut commands, entity);
-                            println!("Remove {:?} from Camera {:?}", component_name, entity);
+                            println!("Remove {:?} from Camera {:?}", component.get_name(), entity);
                         }
                     }
                 }

From bd0a0ef2afc06f6e5d53fcc1cef82f0718604a59 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 2 Aug 2022 03:12:48 +0200
Subject: [PATCH 18/63] fmt

---
 src/lib.rs | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/lib.rs b/src/lib.rs
index d541ed4..c80269c 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -46,9 +46,9 @@ fn default_setup(mut commands: Commands) {
         .insert(
             Rig::builder()
                 .with(Position::new(glam::Vec3::new(1., 1., 1.) * 3.0))
-                .with(bevy_dolly::prelude::LookAt::new(
-                    glam::Vec3::new(
-                    0., 0., 0.,)))
+                .with(bevy_dolly::prelude::LookAt::new(glam::Vec3::new(
+                    0., 0., 0.,
+                )))
                 .build(),
         )
         .insert(LookAt);

From 6817c4ef0f52e0cc0fff3cadb04cd5666ed2bb5f Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 2 Aug 2022 03:40:56 +0200
Subject: [PATCH 19/63] Added FPV

---
 examples/minimal.rs |  1 -
 examples/orbit.rs   |  2 +-
 src/lib.rs          | 51 ++++++++++++++++++++++++++++++++++++++++++---
 3 files changed, 49 insertions(+), 5 deletions(-)

diff --git a/examples/minimal.rs b/examples/minimal.rs
index 4df5154..30dfdaa 100644
--- a/examples/minimal.rs
+++ b/examples/minimal.rs
@@ -1,4 +1,3 @@
-//Base
 use bevy::{prelude::*, render::camera::ScalingMode};
 use bevy_config_cam::*;
 
diff --git a/examples/orbit.rs b/examples/orbit.rs
index 471d41e..5477ce9 100644
--- a/examples/orbit.rs
+++ b/examples/orbit.rs
@@ -2,6 +2,7 @@ use bevy::{prelude::*, render::camera::ScalingMode};
 use bevy_config_cam::*;
 use bevy_dolly::{dolly::glam, prelude::*};
 use driver_marker_derive::DriverMarker;
+use std::any::TypeId;
 
 fn main() {
     App::new()
@@ -10,7 +11,6 @@ fn main() {
         .add_dolly_component(OrbitTopDown)
         .insert_resource(Drivers::new(vec![Box::new(Orbit), Box::new(OrbitTopDown)]))
         .add_startup_system(setup)
-        .add_system(update_yaw_driver)
         .run();
 }
 
diff --git a/src/lib.rs b/src/lib.rs
index c80269c..91ff351 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -2,7 +2,10 @@ use std::any::TypeId;
 
 use bevy::{
     input::Input,
-    prelude::{App, Camera, Commands, Component, Entity, KeyCode, Plugin, Query, Res, ResMut},
+    prelude::{
+        App, Camera, Commands, Component, Entity, KeyCode, Plugin, Query, Res, ResMut, Transform,
+        With,
+    },
 };
 use bevy_dolly::{dolly::glam, prelude::*};
 use driver_marker_derive::DriverMarker;
@@ -13,15 +16,37 @@ impl Plugin for ConfigCam {
         app.init_resource::<DriverIndex>()
             .init_resource::<Drivers>()
             .add_dolly_component(LookAt)
+            .add_dolly_component(Follow)
             .add_dolly_component(Orbit)
+            .add_dolly_component(FPV)
             .add_startup_system(default_setup)
             .add_system(change_driver_system)
             .add_system(update_driver_system)
+            .add_system(update_look_at)
             .add_system(update_yaw_driver);
     }
 }
 
-fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut query: Query<&mut Rig>) {
+#[derive(Component)]
+pub struct Target;
+
+pub(crate) fn update_look_at(
+    mut targets: Query<(&mut Transform, With<Target>)>,
+    mut query: Query<&mut Rig, With<LookAt>>,
+) {
+    for mut rig in &mut query {
+        if let Some(camera_driver) = rig.try_driver_mut::<bevy_dolly::prelude::LookAt>() {
+            for (t, _b) in &mut targets {
+                camera_driver.target = t.translation;
+            }
+        }
+    }
+}
+
+pub(crate) fn update_yaw_driver(
+    keys: Res<Input<KeyCode>>,
+    mut query: Query<&mut Rig, With<Orbit>>,
+) {
     for mut rig in &mut query {
         if let Some(camera_driver) = rig.try_driver_mut::<YawPitch>() {
             if keys.just_pressed(KeyCode::Z) {
@@ -37,10 +62,19 @@ fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut query: Query<&mut Rig>) {
 #[derive(Component, DriverMarker, Clone, Copy, Debug)]
 pub struct LookAt;
 
+#[derive(Component, DriverMarker, Clone, Copy, Debug)]
+pub struct Follow;
+
 #[derive(Component, DriverMarker, Clone, Copy, Debug)]
 pub struct Orbit;
 
+#[derive(Component, DriverMarker, Clone, Copy, Debug)]
+pub struct FPV;
+
 fn default_setup(mut commands: Commands) {
+    //Should be default player entity
+    commands.spawn().insert(Target);
+
     commands
         .spawn()
         .insert(
@@ -53,6 +87,9 @@ fn default_setup(mut commands: Commands) {
         )
         .insert(LookAt);
 
+    //Missing Follow
+    commands.spawn().insert(Follow);
+
     commands
         .spawn()
         .insert(
@@ -63,13 +100,21 @@ fn default_setup(mut commands: Commands) {
                 .build(),
         )
         .insert(Orbit);
+
+    //Missing FPV
+    commands.spawn().insert(FPV);
 }
 
 pub struct Drivers(Vec<Box<dyn DriverMarker>>);
 
 impl Default for Drivers {
     fn default() -> Self {
-        Self(vec![Box::new(LookAt), Box::new(Orbit)])
+        Self(vec![
+            Box::new(LookAt),
+            Box::new(Follow),
+            Box::new(Orbit),
+            Box::new(FPV),
+        ])
     }
 }
 

From 487a65be74f3ddd6af92d00690cf8faa83b0f94c Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 2 Aug 2022 21:00:50 +0200
Subject: [PATCH 20/63] Changed to from 0.8.0 to 0.8

---
 Cargo.toml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index 9f5e100..0035131 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -29,11 +29,11 @@ bevy_dolly = { git = "https://github.com/BlackPhlox/bevy_dolly", branch = "0.8"
 driver_marker_derive = { path = "driver_marker_derive" }
 
 [dependencies.bevy]
-version = "0.8.0"
+version = "0.8"
 features = ["bevy_render","bevy_pbr"]
 default-features = false
 
 [dev-dependencies.bevy]
-version = "0.8.0"
+version = "0.8"
 features = ["bevy_core_pipeline", "bevy_asset", "bevy_scene", "bevy_pbr", "bevy_gltf", "x11", "wayland"]
 default-features = false
\ No newline at end of file

From d005ba131d86e2d33fddcd93efbb48c959c5803c Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Wed, 3 Aug 2022 00:54:21 +0200
Subject: [PATCH 21/63] Mad generic 1.63 science

---
 examples/orbit.rs      |  71 ----------------------
 examples/simple.rs     | 132 ++++++++++++++++++++++++++++-------------
 examples/simple_old.rs |  56 +++++++++++++++++
 src/lib.rs             | 105 ++++++++++++++++----------------
 4 files changed, 202 insertions(+), 162 deletions(-)
 delete mode 100644 examples/orbit.rs
 create mode 100644 examples/simple_old.rs

diff --git a/examples/orbit.rs b/examples/orbit.rs
deleted file mode 100644
index 5477ce9..0000000
--- a/examples/orbit.rs
+++ /dev/null
@@ -1,71 +0,0 @@
-use bevy::{prelude::*, render::camera::ScalingMode};
-use bevy_config_cam::*;
-use bevy_dolly::{dolly::glam, prelude::*};
-use driver_marker_derive::DriverMarker;
-use std::any::TypeId;
-
-fn main() {
-    App::new()
-        .add_plugins(DefaultPlugins)
-        .add_plugin(ConfigCam)
-        .add_dolly_component(OrbitTopDown)
-        .insert_resource(Drivers::new(vec![Box::new(Orbit), Box::new(OrbitTopDown)]))
-        .add_startup_system(setup)
-        .run();
-}
-
-#[derive(Component, DriverMarker, Clone, Copy, Debug)]
-pub struct OrbitTopDown;
-
-/// set up a simple 3D scene
-fn setup(
-    mut commands: Commands,
-    mut meshes: ResMut<Assets<Mesh>>,
-    mut materials: ResMut<Assets<StandardMaterial>>,
-) {
-    // plane
-    commands.spawn_bundle(PbrBundle {
-        mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
-        material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
-        ..Default::default()
-    });
-
-    // cube
-    commands.spawn_bundle(PbrBundle {
-        mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
-        material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
-        transform: Transform::from_xyz(0.0, 0.5, 0.0),
-        ..Default::default()
-    });
-
-    // light
-    commands.spawn_bundle(PointLightBundle {
-        transform: Transform::from_xyz(4.0, 8.0, 4.0),
-        ..Default::default()
-    });
-
-    commands
-        .spawn()
-        .insert(
-            Rig::builder()
-                .with(YawPitch::new().yaw_degrees(0.0).pitch_degrees(-90.0))
-                .with(Smooth::new_rotation(1.5))
-                .with(Arm::new(glam::Vec3::Z * 4.0))
-                .build(),
-        )
-        .insert(OrbitTopDown);
-
-    commands.spawn_bundle(Camera3dBundle {
-        camera: Camera {
-            is_active: true,
-            ..Default::default()
-        },
-        projection: OrthographicProjection {
-            scale: 3.0,
-            scaling_mode: ScalingMode::FixedVertical(1.0),
-            ..default()
-        }
-        .into(),
-        ..Default::default()
-    });
-}
diff --git a/examples/simple.rs b/examples/simple.rs
index d4b2eee..e7c7479 100644
--- a/examples/simple.rs
+++ b/examples/simple.rs
@@ -1,56 +1,108 @@
-fn main() {}
-/*
-use bevy::prelude::*;
+use std::f32::consts::PI;
+
+use bevy::{prelude::*, render::camera::ScalingMode};
 use bevy_config_cam::*;
+use bevy_dolly::prelude::Rig;
+
 fn main() {
     App::new()
-        .insert_resource(Msaa { samples: 4 })
         .add_plugins(DefaultPlugins)
         .add_plugin(ConfigCam)
-        .insert_resource(MovementSettings {
-            sensitivity: 0.00015, // default: 0.00012
-            speed: 12.0,          // default: 12.0
-            ..Default::default()
-        })
-        .insert_resource(PlayerSettings {
-            pos: Vec3::new(2., 0., 0.),
-            player_asset: "models/craft_speederA.glb#Scene0",
-            ..Default::default()
-        })
         .add_startup_system(setup)
+        .add_system(rotator_system)
+        .add_system(add_target_system)
+        .add_system(remove_target_system)
         .run();
-    }
+}
 
-    /// set up a simple 3D scene
-    fn setup(
-        mut commands: Commands,
-        mut meshes: ResMut<Assets<Mesh>>,
-        mut materials: ResMut<Assets<StandardMaterial>>,
-        mut cl: ResMut<CamLogic>,
-    ) {
-        // plane
-        commands.spawn_bundle(PbrBundle {
-            mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
-            material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
-            ..Default::default()
-        });
+/// set up a simple 3D scene
+fn setup(
+    mut commands: Commands,
+    mut meshes: ResMut<Assets<Mesh>>,
+    mut materials: ResMut<Assets<StandardMaterial>>,
+) {
+    // plane
+    commands.spawn_bundle(PbrBundle {
+        mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
+        material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
+        ..Default::default()
+    });
 
-        // cube, set as target
-        cl.target = Some(
-            commands
-            .spawn_bundle(PbrBundle {
+    // cube
+
+    commands
+        .spawn_bundle(SpatialBundle::from_transform(Transform {
+            rotation: Quat::IDENTITY,
+            translation: Vec3::new(2.,0.,0.),
+            ..default()
+        }))
+        .with_children(|cell| {
+            cell.spawn_bundle(PbrBundle {
                 mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
                 material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
                 transform: Transform::from_xyz(0.0, 0.5, 0.0),
                 ..Default::default()
-            })
-            .id(),
-        );
+            });
+        })
+        .insert(Rotates).insert(Target);
 
-        // light
-        commands.spawn_bundle(PointLightBundle {
-            transform: Transform::from_xyz(4.0, 8.0, 4.0),
+    // light
+    commands.spawn_bundle(PointLightBundle {
+        transform: Transform::from_xyz(4.0, 8.0, 4.0),
+        ..Default::default()
+    });
+
+    commands.spawn_bundle(Camera3dBundle {
+        camera: Camera {
+            is_active: true,
             ..Default::default()
-        });
+        },
+        projection: OrthographicProjection {
+            scale: 3.0,
+            scaling_mode: ScalingMode::FixedVertical(1.0),
+            ..default()
+        }
+        .into(),
+        ..Default::default()
+    });
+}
+
+
+#[derive(Component)]
+struct Rotates;
+
+fn rotator_system(time: Res<Time>, mut query: Query<&mut Transform, With<Rotates>>) {
+    for mut transform in query.iter_mut() {
+        *transform = Transform::from_rotation(Quat::from_rotation_y(
+            (4.0 * PI / 20.0) * time.delta_seconds(),
+        )) * *transform;
+    }
+}
+
+fn remove_target_system(
+    keys: Res<Input<KeyCode>>,
+    mut commands: Commands,
+    q: Query<Entity, (With<Rotates>, With<Target>)>
+) {
+    if keys.just_pressed(KeyCode::G) {
+        for e in &q {
+            commands
+                .entity(e)
+                .remove::<Target>();
+        }
+    }
+}
+
+fn add_target_system(
+    keys: Res<Input<KeyCode>>,
+    mut commands: Commands,
+    q: Query<Entity, (With<Rotates>, Without<Target>)>
+) {
+    if keys.just_pressed(KeyCode::G) {
+        for e in &q {
+            commands
+                .entity(e)
+                .insert(Target);
+        }
     }
-*/
+}
diff --git a/examples/simple_old.rs b/examples/simple_old.rs
new file mode 100644
index 0000000..d4b2eee
--- /dev/null
+++ b/examples/simple_old.rs
@@ -0,0 +1,56 @@
+fn main() {}
+/*
+use bevy::prelude::*;
+use bevy_config_cam::*;
+fn main() {
+    App::new()
+        .insert_resource(Msaa { samples: 4 })
+        .add_plugins(DefaultPlugins)
+        .add_plugin(ConfigCam)
+        .insert_resource(MovementSettings {
+            sensitivity: 0.00015, // default: 0.00012
+            speed: 12.0,          // default: 12.0
+            ..Default::default()
+        })
+        .insert_resource(PlayerSettings {
+            pos: Vec3::new(2., 0., 0.),
+            player_asset: "models/craft_speederA.glb#Scene0",
+            ..Default::default()
+        })
+        .add_startup_system(setup)
+        .run();
+    }
+
+    /// set up a simple 3D scene
+    fn setup(
+        mut commands: Commands,
+        mut meshes: ResMut<Assets<Mesh>>,
+        mut materials: ResMut<Assets<StandardMaterial>>,
+        mut cl: ResMut<CamLogic>,
+    ) {
+        // plane
+        commands.spawn_bundle(PbrBundle {
+            mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
+            material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
+            ..Default::default()
+        });
+
+        // cube, set as target
+        cl.target = Some(
+            commands
+            .spawn_bundle(PbrBundle {
+                mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
+                material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
+                transform: Transform::from_xyz(0.0, 0.5, 0.0),
+                ..Default::default()
+            })
+            .id(),
+        );
+
+        // light
+        commands.spawn_bundle(PointLightBundle {
+            transform: Transform::from_xyz(4.0, 8.0, 4.0),
+            ..Default::default()
+        });
+    }
+*/
diff --git a/src/lib.rs b/src/lib.rs
index 91ff351..89d5e56 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -4,8 +4,8 @@ use bevy::{
     input::Input,
     prelude::{
         App, Camera, Commands, Component, Entity, KeyCode, Plugin, Query, Res, ResMut, Transform,
-        With,
-    },
+        With, Vec3,
+    }, ecs::system::SystemParam,
 };
 use bevy_dolly::{dolly::glam, prelude::*};
 use driver_marker_derive::DriverMarker;
@@ -15,9 +15,7 @@ impl Plugin for ConfigCam {
     fn build(&self, app: &mut App) {
         app.init_resource::<DriverIndex>()
             .init_resource::<Drivers>()
-            .add_dolly_component(LookAt)
-            .add_dolly_component(Follow)
-            .add_dolly_component(Orbit)
+            .add_dolly_component(Pinned)
             .add_dolly_component(FPV)
             .add_startup_system(default_setup)
             .add_system(change_driver_system)
@@ -27,68 +25,57 @@ impl Plugin for ConfigCam {
     }
 }
 
-#[derive(Component)]
-pub struct Target;
-
 pub(crate) fn update_look_at(
     mut targets: Query<(&mut Transform, With<Target>)>,
-    mut query: Query<&mut Rig, With<LookAt>>,
+    mut rigs: DriverRigs
 ) {
-    for mut rig in &mut query {
-        if let Some(camera_driver) = rig.try_driver_mut::<bevy_dolly::prelude::LookAt>() {
-            for (t, _b) in &mut targets {
-                camera_driver.target = t.translation;
-            }
-        }
+    let mut avg = Vec3::ONE;
+    
+    for (t, _b) in &mut targets {
+        avg = t.translation;
     }
+
+    rigs.try_for_each_driver_mut::<bevy_dolly::prelude::LookAt>(|la |
+    {
+        la.target = avg;
+    });
 }
 
 pub(crate) fn update_yaw_driver(
     keys: Res<Input<KeyCode>>,
-    mut query: Query<&mut Rig, With<Orbit>>,
+    mut rigs: DriverRigs
 ) {
-    for mut rig in &mut query {
-        if let Some(camera_driver) = rig.try_driver_mut::<YawPitch>() {
-            if keys.just_pressed(KeyCode::Z) {
-                camera_driver.rotate_yaw_pitch(-90.0, 0.0);
-            }
-            if keys.just_pressed(KeyCode::X) {
-                camera_driver.rotate_yaw_pitch(90.0, 0.0);
-            }
+    //Waiting for 1.63 for stable
+    //https://github.com/rust-lang/rust/issues/83701
+    rigs.try_for_each_driver_mut::<YawPitch>(|yp|
+    {
+        if keys.just_pressed(KeyCode::Z) {
+            yp.rotate_yaw_pitch(-90.0, 0.0);
         }
-    }
+        if keys.just_pressed(KeyCode::X) {
+            yp.rotate_yaw_pitch(90.0, 0.0);
+        }
+    });
 }
 
-#[derive(Component, DriverMarker, Clone, Copy, Debug)]
-pub struct LookAt;
-
-#[derive(Component, DriverMarker, Clone, Copy, Debug)]
-pub struct Follow;
+// Target at is just a valid option for Follow, Orbit and FPV
+// Have the camera point at one or the summed vector direction
+// of all entities with the Target Component
+#[derive(Component)]
+pub struct Target;
 
 #[derive(Component, DriverMarker, Clone, Copy, Debug)]
-pub struct Orbit;
+pub struct Pinned;
+//Substates:
+//Locked Rotation
+//Free
 
 #[derive(Component, DriverMarker, Clone, Copy, Debug)]
 pub struct FPV;
 
 fn default_setup(mut commands: Commands) {
     //Should be default player entity
-    commands.spawn().insert(Target);
-
-    commands
-        .spawn()
-        .insert(
-            Rig::builder()
-                .with(Position::new(glam::Vec3::new(1., 1., 1.) * 3.0))
-                .with(bevy_dolly::prelude::LookAt::new(glam::Vec3::new(
-                    0., 0., 0.,
-                )))
-                .build(),
-        )
-        .insert(LookAt);
-
-    //Missing Follow
-    commands.spawn().insert(Follow);
+    //commands.spawn().insert(Target);
 
     commands
         .spawn()
@@ -97,22 +84,38 @@ fn default_setup(mut commands: Commands) {
                 .with(YawPitch::new().yaw_degrees(45.0).pitch_degrees(-45.0))
                 .with(Smooth::new_rotation(1.5))
                 .with(Arm::new(glam::Vec3::Z * 4.0))
+                .with(bevy_dolly::prelude::LookAt::new(glam::Vec3::new(
+                    0., 0., 0.,
+                )))
                 .build(),
         )
-        .insert(Orbit);
+        .insert(Pinned);
 
     //Missing FPV
     commands.spawn().insert(FPV);
 }
 
+#[derive(SystemParam)]
+struct DriverRigs<'w, 's> {
+    rigs: Query<'w, 's, &'static mut Rig>,
+}
+
+impl<'w, 's> DriverRigs<'w, 's> {
+    fn try_for_each_driver_mut<T>(&mut self, f: impl FnOnce(&mut T) -> () + std::marker::Copy) where T: bevy_dolly::prelude::RigDriver<bevy_dolly::prelude::RightHanded> {
+        for mut rig in &mut self.rigs {
+            if let Some(camera_driver) = rig.try_driver_mut::<T>() {
+                f(camera_driver);
+            }
+        }
+    }
+}
+
 pub struct Drivers(Vec<Box<dyn DriverMarker>>);
 
 impl Default for Drivers {
     fn default() -> Self {
         Self(vec![
-            Box::new(LookAt),
-            Box::new(Follow),
-            Box::new(Orbit),
+            Box::new(Pinned),
             Box::new(FPV),
         ])
     }

From c80ebaa9d2db22a08aaa6d34f50a5f18a3357066 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Wed, 3 Aug 2022 00:54:52 +0200
Subject: [PATCH 22/63] Removed old simple example

---
 examples/simple_old.rs | 56 ------------------------------------------
 1 file changed, 56 deletions(-)
 delete mode 100644 examples/simple_old.rs

diff --git a/examples/simple_old.rs b/examples/simple_old.rs
deleted file mode 100644
index d4b2eee..0000000
--- a/examples/simple_old.rs
+++ /dev/null
@@ -1,56 +0,0 @@
-fn main() {}
-/*
-use bevy::prelude::*;
-use bevy_config_cam::*;
-fn main() {
-    App::new()
-        .insert_resource(Msaa { samples: 4 })
-        .add_plugins(DefaultPlugins)
-        .add_plugin(ConfigCam)
-        .insert_resource(MovementSettings {
-            sensitivity: 0.00015, // default: 0.00012
-            speed: 12.0,          // default: 12.0
-            ..Default::default()
-        })
-        .insert_resource(PlayerSettings {
-            pos: Vec3::new(2., 0., 0.),
-            player_asset: "models/craft_speederA.glb#Scene0",
-            ..Default::default()
-        })
-        .add_startup_system(setup)
-        .run();
-    }
-
-    /// set up a simple 3D scene
-    fn setup(
-        mut commands: Commands,
-        mut meshes: ResMut<Assets<Mesh>>,
-        mut materials: ResMut<Assets<StandardMaterial>>,
-        mut cl: ResMut<CamLogic>,
-    ) {
-        // plane
-        commands.spawn_bundle(PbrBundle {
-            mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
-            material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
-            ..Default::default()
-        });
-
-        // cube, set as target
-        cl.target = Some(
-            commands
-            .spawn_bundle(PbrBundle {
-                mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
-                material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
-                transform: Transform::from_xyz(0.0, 0.5, 0.0),
-                ..Default::default()
-            })
-            .id(),
-        );
-
-        // light
-        commands.spawn_bundle(PointLightBundle {
-            transform: Transform::from_xyz(4.0, 8.0, 4.0),
-            ..Default::default()
-        });
-    }
-*/

From d7cdc6ddf7df4e9e8f74e71e0f334dcdacea7a69 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Wed, 3 Aug 2022 00:58:26 +0200
Subject: [PATCH 23/63] fmt & clippy

---
 examples/simple.rs | 19 +++++++------------
 src/lib.rs         | 30 +++++++++++++-----------------
 2 files changed, 20 insertions(+), 29 deletions(-)

diff --git a/examples/simple.rs b/examples/simple.rs
index e7c7479..8044871 100644
--- a/examples/simple.rs
+++ b/examples/simple.rs
@@ -2,7 +2,6 @@ use std::f32::consts::PI;
 
 use bevy::{prelude::*, render::camera::ScalingMode};
 use bevy_config_cam::*;
-use bevy_dolly::prelude::Rig;
 
 fn main() {
     App::new()
@@ -33,7 +32,7 @@ fn setup(
     commands
         .spawn_bundle(SpatialBundle::from_transform(Transform {
             rotation: Quat::IDENTITY,
-            translation: Vec3::new(2.,0.,0.),
+            translation: Vec3::new(2., 0., 0.),
             ..default()
         }))
         .with_children(|cell| {
@@ -44,7 +43,8 @@ fn setup(
                 ..Default::default()
             });
         })
-        .insert(Rotates).insert(Target);
+        .insert(Rotates)
+        .insert(Target);
 
     // light
     commands.spawn_bundle(PointLightBundle {
@@ -67,7 +67,6 @@ fn setup(
     });
 }
 
-
 #[derive(Component)]
 struct Rotates;
 
@@ -82,13 +81,11 @@ fn rotator_system(time: Res<Time>, mut query: Query<&mut Transform, With<Rotates
 fn remove_target_system(
     keys: Res<Input<KeyCode>>,
     mut commands: Commands,
-    q: Query<Entity, (With<Rotates>, With<Target>)>
+    q: Query<Entity, (With<Rotates>, With<Target>)>,
 ) {
     if keys.just_pressed(KeyCode::G) {
         for e in &q {
-            commands
-                .entity(e)
-                .remove::<Target>();
+            commands.entity(e).remove::<Target>();
         }
     }
 }
@@ -96,13 +93,11 @@ fn remove_target_system(
 fn add_target_system(
     keys: Res<Input<KeyCode>>,
     mut commands: Commands,
-    q: Query<Entity, (With<Rotates>, Without<Target>)>
+    q: Query<Entity, (With<Rotates>, Without<Target>)>,
 ) {
     if keys.just_pressed(KeyCode::G) {
         for e in &q {
-            commands
-                .entity(e)
-                .insert(Target);
+            commands.entity(e).insert(Target);
         }
     }
 }
diff --git a/src/lib.rs b/src/lib.rs
index 89d5e56..9f0ad5d 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,11 +1,12 @@
 use std::any::TypeId;
 
 use bevy::{
+    ecs::system::SystemParam,
     input::Input,
     prelude::{
         App, Camera, Commands, Component, Entity, KeyCode, Plugin, Query, Res, ResMut, Transform,
-        With, Vec3,
-    }, ecs::system::SystemParam,
+        Vec3, With,
+    },
 };
 use bevy_dolly::{dolly::glam, prelude::*};
 use driver_marker_derive::DriverMarker;
@@ -27,28 +28,23 @@ impl Plugin for ConfigCam {
 
 pub(crate) fn update_look_at(
     mut targets: Query<(&mut Transform, With<Target>)>,
-    mut rigs: DriverRigs
+    mut rigs: DriverRigs,
 ) {
     let mut avg = Vec3::ONE;
-    
+
     for (t, _b) in &mut targets {
         avg = t.translation;
     }
 
-    rigs.try_for_each_driver_mut::<bevy_dolly::prelude::LookAt>(|la |
-    {
+    rigs.try_for_each_driver_mut::<bevy_dolly::prelude::LookAt>(|la| {
         la.target = avg;
     });
 }
 
-pub(crate) fn update_yaw_driver(
-    keys: Res<Input<KeyCode>>,
-    mut rigs: DriverRigs
-) {
+pub(crate) fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut rigs: DriverRigs) {
     //Waiting for 1.63 for stable
     //https://github.com/rust-lang/rust/issues/83701
-    rigs.try_for_each_driver_mut::<YawPitch>(|yp|
-    {
+    rigs.try_for_each_driver_mut::<YawPitch>(|yp| {
         if keys.just_pressed(KeyCode::Z) {
             yp.rotate_yaw_pitch(-90.0, 0.0);
         }
@@ -101,7 +97,10 @@ struct DriverRigs<'w, 's> {
 }
 
 impl<'w, 's> DriverRigs<'w, 's> {
-    fn try_for_each_driver_mut<T>(&mut self, f: impl FnOnce(&mut T) -> () + std::marker::Copy) where T: bevy_dolly::prelude::RigDriver<bevy_dolly::prelude::RightHanded> {
+    fn try_for_each_driver_mut<T>(&mut self, f: impl FnOnce(&mut T) + std::marker::Copy)
+    where
+        T: bevy_dolly::prelude::RigDriver<bevy_dolly::prelude::RightHanded>,
+    {
         for mut rig in &mut self.rigs {
             if let Some(camera_driver) = rig.try_driver_mut::<T>() {
                 f(camera_driver);
@@ -114,10 +113,7 @@ pub struct Drivers(Vec<Box<dyn DriverMarker>>);
 
 impl Default for Drivers {
     fn default() -> Self {
-        Self(vec![
-            Box::new(Pinned),
-            Box::new(FPV),
-        ])
+        Self(vec![Box::new(Pinned), Box::new(FPV)])
     }
 }
 

From 39889103e5869f0a582ec6a483153177eeecd21e Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Wed, 3 Aug 2022 01:11:02 +0200
Subject: [PATCH 24/63] Avg the look_at dir vector

---
 src/lib.rs | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/lib.rs b/src/lib.rs
index 9f0ad5d..60fb982 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -30,11 +30,15 @@ pub(crate) fn update_look_at(
     mut targets: Query<(&mut Transform, With<Target>)>,
     mut rigs: DriverRigs,
 ) {
-    let mut avg = Vec3::ONE;
+    let mut avg = Vec3::ZERO;
 
     for (t, _b) in &mut targets {
-        avg = t.translation;
+        avg += t.translation;
     }
+    
+    //https://math.stackexchange.com/questions/80923/average-of-multiple-vectors
+    let total_targets = targets.iter().count();
+    avg = avg / total_targets as f32; 
 
     rigs.try_for_each_driver_mut::<bevy_dolly::prelude::LookAt>(|la| {
         la.target = avg;

From 154896a3011908ea21adbb201eff11a905730042 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Wed, 3 Aug 2022 01:13:27 +0200
Subject: [PATCH 25/63] clippy & CI

---
 .github/workflows/master.yml | 4 ++--
 src/lib.rs                   | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/.github/workflows/master.yml b/.github/workflows/master.yml
index 20499ee..d81eaf2 100644
--- a/.github/workflows/master.yml
+++ b/.github/workflows/master.yml
@@ -12,7 +12,7 @@ jobs:
       - uses: actions-rs/toolchain@v1
         with:
           profile: minimal
-          toolchain: stable
+          toolchain: nightly
           override: true
       - uses: actions-rs/cargo@v1
         with:
@@ -27,7 +27,7 @@ jobs:
       - uses: actions-rs/toolchain@v1
         with:
           profile: minimal
-          toolchain: stable
+          toolchain: nightly
           override: true
       - uses: actions-rs/cargo@v1
         with:
diff --git a/src/lib.rs b/src/lib.rs
index 60fb982..3fd8285 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -35,10 +35,10 @@ pub(crate) fn update_look_at(
     for (t, _b) in &mut targets {
         avg += t.translation;
     }
-    
+
     //https://math.stackexchange.com/questions/80923/average-of-multiple-vectors
     let total_targets = targets.iter().count();
-    avg = avg / total_targets as f32; 
+    avg /= total_targets as f32;
 
     rigs.try_for_each_driver_mut::<bevy_dolly::prelude::LookAt>(|la| {
         la.target = avg;

From d387f18aab13415cef181594f99fca0cd9a538a0 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Thu, 4 Aug 2022 02:33:12 +0200
Subject: [PATCH 26/63] Added derive_alias

---
 Cargo.toml                      |  1 +
 driver_marker_derive/Cargo.toml |  5 ++++-
 driver_marker_derive/src/lib.rs |  1 +
 examples/simple.rs              | 14 ++++++++++++++
 src/lib.rs                      | 21 +++++++++++++++------
 5 files changed, 35 insertions(+), 7 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index 0035131..9c4d822 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -25,6 +25,7 @@ name = "bevy_config_cam"
 rand = "0.8"
 strum = "0.24"
 strum_macros = "0.24"
+macro_rules_attribute = "0.1.2"
 bevy_dolly = { git = "https://github.com/BlackPhlox/bevy_dolly", branch = "0.8" }
 driver_marker_derive = { path = "driver_marker_derive" }
 
diff --git a/driver_marker_derive/Cargo.toml b/driver_marker_derive/Cargo.toml
index f341d4f..c3d72ed 100644
--- a/driver_marker_derive/Cargo.toml
+++ b/driver_marker_derive/Cargo.toml
@@ -10,4 +10,7 @@ proc-macro = true
 
 [dependencies]
 syn = "1.0"
-quote = "1.0"
\ No newline at end of file
+quote = "1.0"
+#bevy_ecs = "0.8"
+#bevy_ecs_macros = "0.8"
+#macro_rules_attribute = "0.1.2"
\ No newline at end of file
diff --git a/driver_marker_derive/src/lib.rs b/driver_marker_derive/src/lib.rs
index aa7f32a..78e9a27 100644
--- a/driver_marker_derive/src/lib.rs
+++ b/driver_marker_derive/src/lib.rs
@@ -6,6 +6,7 @@ use syn;
 
 #[proc_macro_derive(DriverMarker)]
 pub fn driver_marker_derive(input: TokenStream) -> TokenStream {
+    
     // Construct a representation of Rust code as a syntax tree
     // that we can manipulate
     let ast = syn::parse(input).unwrap();
diff --git a/examples/simple.rs b/examples/simple.rs
index 8044871..5a3297c 100644
--- a/examples/simple.rs
+++ b/examples/simple.rs
@@ -3,6 +3,9 @@ use std::f32::consts::PI;
 use bevy::{prelude::*, render::camera::ScalingMode};
 use bevy_config_cam::*;
 
+use std::any::TypeId;
+use driver_marker_derive::DriverMarker;
+
 fn main() {
     App::new()
         .add_plugins(DefaultPlugins)
@@ -14,6 +17,17 @@ fn main() {
         .run();
 }
 
+#[macro_use]
+extern crate macro_rules_attribute;
+
+derive_alias! {
+    #[derive(ConfigMarker!)] = #[derive(Component, DriverMarker)];
+}
+
+#[derive(ConfigMarker!, Clone, Copy, Debug)]
+pub struct Pinned2;
+
+
 /// set up a simple 3D scene
 fn setup(
     mut commands: Commands,
diff --git a/src/lib.rs b/src/lib.rs
index 3fd8285..744e5c5 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,7 +1,7 @@
 use std::any::TypeId;
 
 use bevy::{
-    ecs::system::SystemParam,
+    ecs::{system::SystemParam, component::TableStorage},
     input::Input,
     prelude::{
         App, Camera, Commands, Component, Entity, KeyCode, Plugin, Query, Res, ResMut, Transform,
@@ -58,25 +58,34 @@ pub(crate) fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut rigs: DriverRigs)
     });
 }
 
+#[macro_use]
+extern crate macro_rules_attribute;
+
+derive_alias! {
+    #[derive(ConfigMarker!)] = #[derive(Component, DriverMarker)];
+}
+
 // Target at is just a valid option for Follow, Orbit and FPV
 // Have the camera point at one or the summed vector direction
 // of all entities with the Target Component
 #[derive(Component)]
 pub struct Target;
 
-#[derive(Component, DriverMarker, Clone, Copy, Debug)]
+#[derive(ConfigMarker!, Clone, Copy, Debug)]
 pub struct Pinned;
 //Substates:
 //Locked Rotation
 //Free
 
-#[derive(Component, DriverMarker, Clone, Copy, Debug)]
+#[derive(ConfigMarker!, Clone, Copy, Debug)]
 pub struct FPV;
 
 fn default_setup(mut commands: Commands) {
     //Should be default player entity
+    //Default player entity : Cone
     //commands.spawn().insert(Target);
 
+
     commands
         .spawn()
         .insert(
@@ -113,7 +122,7 @@ impl<'w, 's> DriverRigs<'w, 's> {
     }
 }
 
-pub struct Drivers(Vec<Box<dyn DriverMarker>>);
+pub struct Drivers(Vec<Box<dyn DriverMarker<Storage=TableStorage>>>);
 
 impl Default for Drivers {
     fn default() -> Self {
@@ -122,12 +131,12 @@ impl Default for Drivers {
 }
 
 impl Drivers {
-    pub fn new(driver_markers: Vec<Box<dyn DriverMarker>>) -> Self {
+    pub fn new(driver_markers: Vec<Box<dyn DriverMarker<Storage=TableStorage>>>) -> Self {
         Self(driver_markers)
     }
 }
 
-pub trait DriverMarker: Sync + Send + 'static {
+pub trait DriverMarker: Component + Sync + Send + 'static {
     fn get_id(&self) -> TypeId;
     fn get_name(&self) -> &str;
     fn add_to(&self, commands: &mut Commands, entity: Entity);

From dc5854a7f86b7aa25884eb5bbb477b0f1b7339ae Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Thu, 4 Aug 2022 02:38:48 +0200
Subject: [PATCH 27/63] Removed traits from DriverMarker

---
 examples/simple.rs | 3 +--
 src/lib.rs         | 9 ++++-----
 2 files changed, 5 insertions(+), 7 deletions(-)

diff --git a/examples/simple.rs b/examples/simple.rs
index 5a3297c..d4718d8 100644
--- a/examples/simple.rs
+++ b/examples/simple.rs
@@ -3,8 +3,8 @@ use std::f32::consts::PI;
 use bevy::{prelude::*, render::camera::ScalingMode};
 use bevy_config_cam::*;
 
-use std::any::TypeId;
 use driver_marker_derive::DriverMarker;
+use std::any::TypeId;
 
 fn main() {
     App::new()
@@ -27,7 +27,6 @@ derive_alias! {
 #[derive(ConfigMarker!, Clone, Copy, Debug)]
 pub struct Pinned2;
 
-
 /// set up a simple 3D scene
 fn setup(
     mut commands: Commands,
diff --git a/src/lib.rs b/src/lib.rs
index 744e5c5..0339499 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,7 +1,7 @@
 use std::any::TypeId;
 
 use bevy::{
-    ecs::{system::SystemParam, component::TableStorage},
+    ecs::system::SystemParam,
     input::Input,
     prelude::{
         App, Camera, Commands, Component, Entity, KeyCode, Plugin, Query, Res, ResMut, Transform,
@@ -85,7 +85,6 @@ fn default_setup(mut commands: Commands) {
     //Default player entity : Cone
     //commands.spawn().insert(Target);
 
-
     commands
         .spawn()
         .insert(
@@ -122,7 +121,7 @@ impl<'w, 's> DriverRigs<'w, 's> {
     }
 }
 
-pub struct Drivers(Vec<Box<dyn DriverMarker<Storage=TableStorage>>>);
+pub struct Drivers(Vec<Box<dyn DriverMarker>>);
 
 impl Default for Drivers {
     fn default() -> Self {
@@ -131,12 +130,12 @@ impl Default for Drivers {
 }
 
 impl Drivers {
-    pub fn new(driver_markers: Vec<Box<dyn DriverMarker<Storage=TableStorage>>>) -> Self {
+    pub fn new(driver_markers: Vec<Box<dyn DriverMarker>>) -> Self {
         Self(driver_markers)
     }
 }
 
-pub trait DriverMarker: Component + Sync + Send + 'static {
+pub trait DriverMarker: Sync + Send + 'static {
     fn get_id(&self) -> TypeId;
     fn get_name(&self) -> &str;
     fn add_to(&self, commands: &mut Commands, entity: Entity);

From 135346161bce1a69b1cf25bcdc178bd553d713b4 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Thu, 4 Aug 2022 21:39:19 +0200
Subject: [PATCH 28/63] fixed fmt

---
 driver_marker_derive/src/lib.rs | 1 -
 1 file changed, 1 deletion(-)

diff --git a/driver_marker_derive/src/lib.rs b/driver_marker_derive/src/lib.rs
index 78e9a27..aa7f32a 100644
--- a/driver_marker_derive/src/lib.rs
+++ b/driver_marker_derive/src/lib.rs
@@ -6,7 +6,6 @@ use syn;
 
 #[proc_macro_derive(DriverMarker)]
 pub fn driver_marker_derive(input: TokenStream) -> TokenStream {
-    
     // Construct a representation of Rust code as a syntax tree
     // that we can manipulate
     let ast = syn::parse(input).unwrap();

From 7b80041c227700b5d35e8ef3cc2cbb6410609baf Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Thu, 4 Aug 2022 23:12:44 +0200
Subject: [PATCH 29/63] Reverted to using traits instead of alias derive

---
 Cargo.toml         |  2 +-
 examples/simple.rs | 10 +---------
 src/lib.rs         | 24 +++++++++---------------
 3 files changed, 11 insertions(+), 25 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index 9c4d822..ec1ed84 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -25,7 +25,7 @@ name = "bevy_config_cam"
 rand = "0.8"
 strum = "0.24"
 strum_macros = "0.24"
-macro_rules_attribute = "0.1.2"
+macro_rules_attribute = { path = "../macro_rules_attribute-rs" }
 bevy_dolly = { git = "https://github.com/BlackPhlox/bevy_dolly", branch = "0.8" }
 driver_marker_derive = { path = "driver_marker_derive" }
 
diff --git a/examples/simple.rs b/examples/simple.rs
index d4718d8..4a22bbb 100644
--- a/examples/simple.rs
+++ b/examples/simple.rs
@@ -4,7 +4,6 @@ use bevy::{prelude::*, render::camera::ScalingMode};
 use bevy_config_cam::*;
 
 use driver_marker_derive::DriverMarker;
-use std::any::TypeId;
 
 fn main() {
     App::new()
@@ -17,14 +16,7 @@ fn main() {
         .run();
 }
 
-#[macro_use]
-extern crate macro_rules_attribute;
-
-derive_alias! {
-    #[derive(ConfigMarker!)] = #[derive(Component, DriverMarker)];
-}
-
-#[derive(ConfigMarker!, Clone, Copy, Debug)]
+#[derive(DriverMarker, Component, Clone, Copy, Debug)]
 pub struct Pinned2;
 
 /// set up a simple 3D scene
diff --git a/src/lib.rs b/src/lib.rs
index 0339499..37d911c 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,7 +1,5 @@
-use std::any::TypeId;
-
 use bevy::{
-    ecs::system::SystemParam,
+    ecs::{component::TableStorage, system::SystemParam},
     input::Input,
     prelude::{
         App, Camera, Commands, Component, Entity, KeyCode, Plugin, Query, Res, ResMut, Transform,
@@ -11,6 +9,8 @@ use bevy::{
 use bevy_dolly::{dolly::glam, prelude::*};
 use driver_marker_derive::DriverMarker;
 
+pub use std::any::TypeId;
+
 pub struct ConfigCam;
 impl Plugin for ConfigCam {
     fn build(&self, app: &mut App) {
@@ -46,8 +46,9 @@ pub(crate) fn update_look_at(
 }
 
 pub(crate) fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut rigs: DriverRigs) {
-    //Waiting for 1.63 for stable
-    //https://github.com/rust-lang/rust/issues/83701
+    // Waiting for 1.63 for stable, use nightly until August 11 2022
+    // https://forge.rust-lang.org/#current-release-versions
+    // https://github.com/rust-lang/rust/issues/83701
     rigs.try_for_each_driver_mut::<YawPitch>(|yp| {
         if keys.just_pressed(KeyCode::Z) {
             yp.rotate_yaw_pitch(-90.0, 0.0);
@@ -58,26 +59,19 @@ pub(crate) fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut rigs: DriverRigs)
     });
 }
 
-#[macro_use]
-extern crate macro_rules_attribute;
-
-derive_alias! {
-    #[derive(ConfigMarker!)] = #[derive(Component, DriverMarker)];
-}
-
 // Target at is just a valid option for Follow, Orbit and FPV
 // Have the camera point at one or the summed vector direction
 // of all entities with the Target Component
 #[derive(Component)]
 pub struct Target;
 
-#[derive(ConfigMarker!, Clone, Copy, Debug)]
+#[derive(DriverMarker, Component, Clone, Copy, Debug)]
 pub struct Pinned;
 //Substates:
 //Locked Rotation
 //Free
 
-#[derive(ConfigMarker!, Clone, Copy, Debug)]
+#[derive(DriverMarker, Component, Clone, Copy, Debug)]
 pub struct FPV;
 
 fn default_setup(mut commands: Commands) {
@@ -135,7 +129,7 @@ impl Drivers {
     }
 }
 
-pub trait DriverMarker: Sync + Send + 'static {
+pub trait DriverMarker: Component<Storage = TableStorage> + Sync + Send + 'static {
     fn get_id(&self) -> TypeId;
     fn get_name(&self) -> &str;
     fn add_to(&self, commands: &mut Commands, entity: Entity);

From e590a8ec0c3a1a1b301ee843f218e6c2de8b3c9d Mon Sep 17 00:00:00 2001
From: hellzbellz <31550512+Hellzbellz123@users.noreply.github.com>
Date: Wed, 24 Aug 2022 19:34:07 -0700
Subject: [PATCH 30/63] Update Cargo.toml

change bevy_dolly branch cuz 0.8 doesnt exist on github
---
 Cargo.toml | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index ec1ed84..24e63e2 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -26,7 +26,7 @@ rand = "0.8"
 strum = "0.24"
 strum_macros = "0.24"
 macro_rules_attribute = { path = "../macro_rules_attribute-rs" }
-bevy_dolly = { git = "https://github.com/BlackPhlox/bevy_dolly", branch = "0.8" }
+bevy_dolly = { git = "https://github.com/BlackPhlox/bevy_dolly"}
 driver_marker_derive = { path = "driver_marker_derive" }
 
 [dependencies.bevy]
@@ -37,4 +37,4 @@ default-features = false
 [dev-dependencies.bevy]
 version = "0.8"
 features = ["bevy_core_pipeline", "bevy_asset", "bevy_scene", "bevy_pbr", "bevy_gltf", "x11", "wayland"]
-default-features = false
\ No newline at end of file
+default-features = false

From 18618f4b31bfa76e09f03f6438ebfcfe3f7cddb9 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Mon, 29 Aug 2022 23:56:00 +0200
Subject: [PATCH 31/63] Update

---
 assets/models/cam.blend  | Bin 0 -> 795204 bytes
 assets/models/cam.blend1 | Bin 0 -> 795204 bytes
 assets/models/cam.gltf   | 122 +++++++++++++++++++++++++++++++++++++++
 examples/simple.rs       |  85 ++++++++++++++++++++++++++-
 src/lib.rs               |   6 +-
 5 files changed, 209 insertions(+), 4 deletions(-)
 create mode 100644 assets/models/cam.blend
 create mode 100644 assets/models/cam.blend1
 create mode 100644 assets/models/cam.gltf

diff --git a/assets/models/cam.blend b/assets/models/cam.blend
new file mode 100644
index 0000000000000000000000000000000000000000..3ae275dfd668ff788f7ef429f475db166fd6bf0f
GIT binary patch
literal 795204
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%0AOtC(uF}A-7sQl`Dj8gxL<%
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
SC4cJ$7Ase@FgO4D_kRF3FWj>L

literal 0
HcmV?d00001

diff --git a/assets/models/cam.blend1 b/assets/models/cam.blend1
new file mode 100644
index 0000000000000000000000000000000000000000..4fc2cdf8cba6ba557ee674c9e3078e8d396e4021
GIT binary patch
literal 795204
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

literal 0
HcmV?d00001

diff --git a/assets/models/cam.gltf b/assets/models/cam.gltf
new file mode 100644
index 0000000..9171742
--- /dev/null
+++ b/assets/models/cam.gltf
@@ -0,0 +1,122 @@
+{
+    "asset" : {
+        "generator" : "Khronos glTF Blender I/O v3.2.43",
+        "version" : "2.0"
+    },
+    "scene" : 0,
+    "scenes" : [
+        {
+            "name" : "Scene",
+            "nodes" : [
+                0
+            ]
+        }
+    ],
+    "nodes" : [
+        {
+            "mesh" : 0,
+            "name" : "Camera",
+            "scale" : [
+                0.5,
+                0.5,
+                0.5
+            ]
+        }
+    ],
+    "materials" : [
+        {
+            "doubleSided" : true,
+            "name" : "Material",
+            "pbrMetallicRoughness" : {
+                "baseColorFactor" : [
+                    0.800000011920929,
+                    0.800000011920929,
+                    0.800000011920929,
+                    1
+                ],
+                "metallicFactor" : 0,
+                "roughnessFactor" : 0.4000000059604645
+            }
+        }
+    ],
+    "meshes" : [
+        {
+            "name" : "Cube",
+            "primitives" : [
+                {
+                    "attributes" : {
+                        "POSITION" : 0,
+                        "NORMAL" : 1,
+                        "TEXCOORD_0" : 2
+                    },
+                    "indices" : 3,
+                    "material" : 0
+                }
+            ]
+        }
+    ],
+    "accessors" : [
+        {
+            "bufferView" : 0,
+            "componentType" : 5126,
+            "count" : 19,
+            "max" : [
+                1,
+                2,
+                1.7000000476837158
+            ],
+            "min" : [
+                -1,
+                -1,
+                -1.7000000476837158
+            ],
+            "type" : "VEC3"
+        },
+        {
+            "bufferView" : 1,
+            "componentType" : 5126,
+            "count" : 19,
+            "type" : "VEC3"
+        },
+        {
+            "bufferView" : 2,
+            "componentType" : 5126,
+            "count" : 19,
+            "type" : "VEC2"
+        },
+        {
+            "bufferView" : 3,
+            "componentType" : 5123,
+            "count" : 21,
+            "type" : "SCALAR"
+        }
+    ],
+    "bufferViews" : [
+        {
+            "buffer" : 0,
+            "byteLength" : 228,
+            "byteOffset" : 0
+        },
+        {
+            "buffer" : 0,
+            "byteLength" : 228,
+            "byteOffset" : 228
+        },
+        {
+            "buffer" : 0,
+            "byteLength" : 152,
+            "byteOffset" : 456
+        },
+        {
+            "buffer" : 0,
+            "byteLength" : 42,
+            "byteOffset" : 608
+        }
+    ],
+    "buffers" : [
+        {
+            "byteLength" : 652,
+            "uri" : "data:application/octet-stream;base64,AACAvwAAgD+amdm/AACAvwAAgD+amdm/AACAvwAAgD+amdm/AACAvwAAgL+amdm/AACAvwAAgL+amdm/AACAvwAAgL+amdm/AACAvwAAgD+amdk/AACAvwAAgD+amdk/AACAvwAAgD+amdk/AACAvwAAgL+amdk/AACAvwAAgL+amdk/AACAvwAAgL+amdk/AACAPwAAAAAAAACAAACAPwAAAAAAAACAAACAPwAAAAAAAACAAACAPwAAAAAAAACAAACAv2Zmpj+amVm/AACAv2Zmpj+amVk/AACAvwAAAEAAAACA//9/vwAAAAAAAACAMPnkPi/5ZD8AAACAScwlPwAAAAB0DkO///9/vwAAAAAAAACAMPnkPi/5ZL8AAACAScwlPwAAAAB0DkO///9/vwAAAAAAAACAMPnkPi/5ZD8AAACAScwlPwAAAAB0DkM///9/vwAAAAAAAACAMPnkPi/5ZL8AAACAScwlPwAAAAB0DkM/MPnkPi/5ZL8AAACAMPnkPi/5ZD8AAACAScwlPwAAAAB0DkO/ScwlPwAAAAB0DkM/AACAPwAAAAAAAACAAACAPwAAAAAAAACAAACAPwAAAAAAAACAAAAgPwAAQD8AACA/AABAPwAAID8AAEA/AADAPgAAQD8AAMA+AABAPwAAwD4AAEA/AAAgPwAAgD8AACA/AACAPwAAID8AAIA/AADAPgAAgD8AAMA+AACAPwAAwD4AAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AACA/AABAPwAAID8AAIA/AAAgPwAAYD8JAAYAAAAJAAAAAwAFAAIADgAKAAQADAAIAAsADwABAAcADQASABEAEAAAAA=="
+        }
+    ]
+}
diff --git a/examples/simple.rs b/examples/simple.rs
index 4a22bbb..72ae648 100644
--- a/examples/simple.rs
+++ b/examples/simple.rs
@@ -1,18 +1,31 @@
 use std::f32::consts::PI;
 
-use bevy::{prelude::*, render::camera::ScalingMode};
+use bevy::{
+    pbr::wireframe::{Wireframe, WireframePlugin},
+    prelude::*,
+    render::{
+        camera::ScalingMode,
+        settings::{WgpuFeatures, WgpuSettings},
+    },
+};
 use bevy_config_cam::*;
 
 use driver_marker_derive::DriverMarker;
 
 fn main() {
     App::new()
+        .insert_resource(WgpuSettings {
+            features: WgpuFeatures::POLYGON_MODE_LINE,
+            ..default()
+        })
         .add_plugins(DefaultPlugins)
+        .add_plugin(WireframePlugin)
         .add_plugin(ConfigCam)
         .add_startup_system(setup)
         .add_system(rotator_system)
         .add_system(add_target_system)
         .add_system(remove_target_system)
+        .add_system(switch_camera)
         .run();
 }
 
@@ -24,6 +37,7 @@ fn setup(
     mut commands: Commands,
     mut meshes: ResMut<Assets<Mesh>>,
     mut materials: ResMut<Assets<StandardMaterial>>,
+    asset_server: Res<AssetServer>,
 ) {
     // plane
     commands.spawn_bundle(PbrBundle {
@@ -57,6 +71,35 @@ fn setup(
         ..Default::default()
     });
 
+    let cam: Handle<Mesh> = asset_server.load("models/cam.gltf#Mesh0/Primitive0");
+
+    /*commands.spawn_bundle(SceneBundle {
+        scene: asset_server.load("models/cam.gltf#Scene0"),
+        ..default()
+    }).insert(Wireframe);*/
+
+    commands
+        .spawn_bundle(PbrBundle {
+            mesh: cam.clone(),
+            material: materials
+                .add(
+                    Color::Rgba {
+                        red: 0.,
+                        green: 0.,
+                        blue: 0.,
+                        alpha: 0.,
+                    }
+                    .into(),
+                )
+                .clone(),
+            transform: Transform {
+                scale: Vec3::new(0.5, 0.5, 0.5),
+                ..Default::default()
+            },
+            ..Default::default()
+        })
+        .insert(Wireframe);
+
     commands.spawn_bundle(Camera3dBundle {
         camera: Camera {
             is_active: true,
@@ -70,6 +113,28 @@ fn setup(
         .into(),
         ..Default::default()
     });
+
+    commands.spawn_bundle(Camera3dBundle {
+        camera: Camera {
+            is_active: false,
+            ..Default::default()
+        },
+        projection: OrthographicProjection {
+            scale: 3.0,
+            scaling_mode: ScalingMode::FixedVertical(1.0),
+            ..default()
+        }
+        .into(),
+        ..Default::default()
+    });
+
+    commands.spawn().insert(CameraCount { total: 2, index: 0 });
+}
+
+#[derive(Component)]
+struct CameraCount {
+    total: u16,
+    index: usize,
 }
 
 #[derive(Component)]
@@ -106,3 +171,21 @@ fn add_target_system(
         }
     }
 }
+
+fn switch_camera(
+    keys: Res<Input<KeyCode>>,
+    mut commands: Commands,
+    mut q: Query<&Camera>,
+    mut q2: Query<&CameraCount>,
+) {
+    let mut cc = q2.single_mut();
+    if keys.just_pressed(KeyCode::V) {
+        for (i, c) in &mut q.iter_mut().enumerate() {
+            if i + 1 > (cc.total - 1).into() {
+                //cc.index = 0;
+                //c.is_active = true;
+            }
+            if i.eq(&(cc.index + 1 as usize)) {}
+        }
+    }
+}
diff --git a/src/lib.rs b/src/lib.rs
index 37d911c..7f5411b 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -16,8 +16,8 @@ impl Plugin for ConfigCam {
     fn build(&self, app: &mut App) {
         app.init_resource::<DriverIndex>()
             .init_resource::<Drivers>()
-            .add_dolly_component(Pinned)
-            .add_dolly_component(FPV)
+            .add_rig_component(Pinned)
+            .add_rig_component(FPV)
             .add_startup_system(default_setup)
             .add_system(change_driver_system)
             .add_system(update_driver_system)
@@ -38,7 +38,7 @@ pub(crate) fn update_look_at(
 
     //https://math.stackexchange.com/questions/80923/average-of-multiple-vectors
     let total_targets = targets.iter().count();
-    avg /= total_targets as f32;
+    //avg /= total_targets as f32;
 
     rigs.try_for_each_driver_mut::<bevy_dolly::prelude::LookAt>(|la| {
         la.target = avg;

From 6d1cb2aadea692b7c1dc8fbc996e887df981c6d1 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 30 Aug 2022 00:13:51 +0200
Subject: [PATCH 32/63] Update README.md

---
 README.md | 61 +++++++++++++++++++++++++++++++++++++++----------------
 1 file changed, 43 insertions(+), 18 deletions(-)

diff --git a/README.md b/README.md
index 027bf7e..252bc18 100644
--- a/README.md
+++ b/README.md
@@ -1,7 +1,6 @@
 <div align="left">
 <a href="https://github.com/BlackPhlox/bevy_config_cam"><img src="https://raw.githubusercontent.com/BlackPhlox/BlackPhlox/master/config_cam.svg" width="970" height="200" alt="bevy config cam"></a>
 </div>
-</br>
 <div align="center">
 <a href="https://crates.io/crates/bevy_config_cam"><img src="https://img.shields.io/crates/v/bevy_config_cam" alt="link to crates.io"></a>
 <a href="https://docs.rs/bevy_config_cam"><img src="https://docs.rs/bevy_config_cam/badge.svg" alt="link to docs.rs"></a>
@@ -19,29 +18,55 @@ your player asset or the default red player entity.
 
 Inspired and extended on [bevy_flycam](https://github.com/sburris0/bevy_flycam), this plugin is fairly simple but should be a neat help for developers looking for a camera implementation without going the hassle of reinventing the wheel.
 
-# Future Plans
+# Backend
 
-The main goal of this plugin is to first and foremost provide the user with a configurable, extendable and easy-to-use API. [`dolly`](https://github.com/h3r2tic/dolly) by @h3r2tic is a crate that provides an framework for which to create, combine and modify camera positioning, exactly what `bevy_config_cam` is looking for. So a migration to `dolly` is in the works in order to improve this plugin main goal. 
+The main goal of this plugin is to first and foremost provide the user with a configurable, extendable and easy-to-use API. [`dolly`](https://github.com/h3r2tic/dolly) by @h3r2tic is a crate that provides an framework for which to create, combine and modify camera positioning, exactly what `bevy_config_cam` is looking for. 
+[bevy_dolly](https://github.com/BlackPhlox/bevy_dolly) is the backend for `bevy_config_cam`. 
 
 # Showcase
 
 ## Camera Modes
 
-LookAt | FollowStatic
-:-------------------------:|:-------------------------:
-<img src="https://user-images.githubusercontent.com/25123512/119991088-5fb59700-bfc9-11eb-88d1-44a2b2a47cfa.png" style="width:700px;height:300px;" alt="LookAt">  |  <img src="https://user-images.githubusercontent.com/25123512/119991121-6cd28600-bfc9-11eb-9fcd-89fa9d591d4b.png" style="width:700px;height:300px;" alt="FollowStatic">
-
-TopDown | TopDownDirection
-:-------------------------:|:-------------------------:
-<img src="https://user-images.githubusercontent.com/25123512/119991141-71973a00-bfc9-11eb-90ee-377ffe656ae2.png" style="width:700px;height:300px;" alt="TopDown"> |  <img src="https://user-images.githubusercontent.com/25123512/119991151-7360fd80-bfc9-11eb-9d41-1947c997b98a.png" style="width:700px;height:300px;" alt="TopDownDirection">
-
-FollowBehind | Fps
-:-------------------------:|:-------------------------:
-<img src="https://user-images.githubusercontent.com/25123512/119991175-7956de80-bfc9-11eb-901c-0164152dd97d.png" style="width:600px;height:300px;" alt="FollowBehind">  |  <img src="https://user-images.githubusercontent.com/25123512/119991187-7bb93880-bfc9-11eb-9739-598e01ba214f.png" style="width:700px;height:300px;" alt="Fps">
-
-Free | ?
-:-------------------------:|:-------------------------:
-<img src="https://user-images.githubusercontent.com/25123512/119991199-7fe55600-bfc9-11eb-9ae6-b29cec3a3cd7.png" alt="Free" >  |  Any suggestions on other camera modes you want? Let me know by creating an issue :)
+<div align="center">
+<table>
+  <tr>
+    <th><h2>Static</h2></th>
+    <th><h2>Pinned</h2></th>
+  </tr>
+    <tr>
+    <th>LookAt</th>
+    <th>FollowStatic</th>
+  </tr>
+  <tr>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991088-5fb59700-bfc9-11eb-88d1-44a2b2a47cfa.png" style="height:400px;" alt="LookAt"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991121-6cd28600-bfc9-11eb-9fcd-89fa9d591d4b.png" style="height:400px;" alt="FollowStatic"></td>
+  </tr>
+  <tr>
+    <td align="center">TopDown</td>
+    <td align="center">TopDownDirection</td>
+  </tr>
+  <tr>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991141-71973a00-bfc9-11eb-90ee-377ffe656ae2.png" style="height:400px;" alt="TopDown"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991151-7360fd80-bfc9-11eb-9d41-1947c997b98a.png" style="height:400px;" alt="TopDownDirection"></td>
+</tr>
+  <tr>
+    <td align="center">FollowBehind</td>
+    <td align="center">Fps</td>
+  </tr>
+  <tr>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991175-7956de80-bfc9-11eb-901c-0164152dd97d.png" style="height:400px;" alt="FollowBehind"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991187-7bb93880-bfc9-11eb-9739-598e01ba214f.png" style="height:400px;" alt="Fps"></td>
+</tr>
+  <tr>
+    <td align="center">Free</td>
+    <td align="center">?</td>
+  </tr>
+  <tr>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991199-7fe55600-bfc9-11eb-9ae6-b29cec3a3cd7.png" style="height:400px;" alt="Free" ></td>
+    <td>Any suggestions on other camera modes you want?</br>Let me know by creating an issue :)</td>
+</tr>
+</table>
+</div>
 
 ## Settings
 

From 7bc0f05ceb5056a86c623091fe1d6298f2944394 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 30 Aug 2022 00:54:23 +0200
Subject: [PATCH 33/63] Update README.md

---
 README.md | 30 +++++++++++++++---------------
 1 file changed, 15 insertions(+), 15 deletions(-)

diff --git a/README.md b/README.md
index 252bc18..104c038 100644
--- a/README.md
+++ b/README.md
@@ -33,38 +33,38 @@ The main goal of this plugin is to first and foremost provide the user with a co
     <th><h2>Static</h2></th>
     <th><h2>Pinned</h2></th>
   </tr>
-    <tr>
-    <th>LookAt</th>
+    <tr>    
     <th>FollowStatic</th>
+    <th>Fps</th>
   </tr>
   <tr>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991088-5fb59700-bfc9-11eb-88d1-44a2b2a47cfa.png" style="height:400px;" alt="LookAt"></td>
     <td><img src="https://user-images.githubusercontent.com/25123512/119991121-6cd28600-bfc9-11eb-9fcd-89fa9d591d4b.png" style="height:400px;" alt="FollowStatic"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991187-7bb93880-bfc9-11eb-9739-598e01ba214f.png" style="height:400px;" alt="Fps"></td>    
   </tr>
   <tr>
-    <td align="center">TopDown</td>
-    <td align="center">TopDownDirection</td>
+    <th>LookAt</th>
+    <th>FollowBehind</th>
   </tr>
   <tr>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991141-71973a00-bfc9-11eb-90ee-377ffe656ae2.png" style="height:400px;" alt="TopDown"></td>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991151-7360fd80-bfc9-11eb-9d41-1947c997b98a.png" style="height:400px;" alt="TopDownDirection"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991088-5fb59700-bfc9-11eb-88d1-44a2b2a47cfa.png" style="height:400px;" alt="LookAt"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991175-7956de80-bfc9-11eb-901c-0164152dd97d.png" style="height:400px;" alt="FollowBehind"></td></td>
+    </td>
 </tr>
   <tr>
-    <td align="center">FollowBehind</td>
-    <td align="center">Fps</td>
+    <th>Free</th>
+    <th>TopDown</th>
   </tr>
   <tr>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991175-7956de80-bfc9-11eb-901c-0164152dd97d.png" style="height:400px;" alt="FollowBehind"></td>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991187-7bb93880-bfc9-11eb-9739-598e01ba214f.png" style="height:400px;" alt="Fps"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991199-7fe55600-bfc9-11eb-9ae6-b29cec3a3cd7.png" style="height:400px;" alt="Free" ></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991141-71973a00-bfc9-11eb-90ee-377ffe656ae2.png" style="height:400px;" alt="TopDown"></td>
 </tr>
   <tr>
-    <td align="center">Free</td>
-    <td align="center">?</td>
+    <th>?</th>
+    <th>TopDownDirection</th>
   </tr>
   <tr>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991199-7fe55600-bfc9-11eb-9ae6-b29cec3a3cd7.png" style="height:400px;" alt="Free" ></td>
     <td>Any suggestions on other camera modes you want?</br>Let me know by creating an issue :)</td>
-</tr>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991151-7360fd80-bfc9-11eb-9d41-1947c997b98a.png" style="height:400px;" alt="TopDownDirection"></td>
 </table>
 </div>
 

From 4b610831187eeb9314da8c797642b599f85c801e Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 30 Aug 2022 00:59:19 +0200
Subject: [PATCH 34/63] Update README.md

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index 104c038..095c4cb 100644
--- a/README.md
+++ b/README.md
@@ -63,7 +63,7 @@ The main goal of this plugin is to first and foremost provide the user with a co
     <th>TopDownDirection</th>
   </tr>
   <tr>
-    <td>Any suggestions on other camera modes you want?</br>Let me know by creating an issue :)</td>
+    <td>Any suggestions on other camera modes you want?</br>Let me know by creating an issue or </br>by creating your own using <a href="/examples/simple.rs">this example</a>.</td>
     <td><img src="https://user-images.githubusercontent.com/25123512/119991151-7360fd80-bfc9-11eb-9d41-1947c997b98a.png" style="height:400px;" alt="TopDownDirection"></td>
 </table>
 </div>

From 114e1c46d2b5121e5880d095b1e3b29c703bb2f4 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 30 Aug 2022 19:27:47 +0200
Subject: [PATCH 35/63] Update README.md

---
 README.md | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/README.md b/README.md
index 095c4cb..679fddb 100644
--- a/README.md
+++ b/README.md
@@ -38,16 +38,16 @@ The main goal of this plugin is to first and foremost provide the user with a co
     <th>Fps</th>
   </tr>
   <tr>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991121-6cd28600-bfc9-11eb-9fcd-89fa9d591d4b.png" style="height:400px;" alt="FollowStatic"></td>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991187-7bb93880-bfc9-11eb-9739-598e01ba214f.png" style="height:400px;" alt="Fps"></td>    
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991121-6cd28600-bfc9-11eb-9fcd-89fa9d591d4b.png" style="height:380px;" alt="FollowStatic"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991187-7bb93880-bfc9-11eb-9739-598e01ba214f.png" style="height:380px;" alt="Fps"></td>    
   </tr>
   <tr>
     <th>LookAt</th>
     <th>FollowBehind</th>
   </tr>
   <tr>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991088-5fb59700-bfc9-11eb-88d1-44a2b2a47cfa.png" style="height:400px;" alt="LookAt"></td>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991175-7956de80-bfc9-11eb-901c-0164152dd97d.png" style="height:400px;" alt="FollowBehind"></td></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991088-5fb59700-bfc9-11eb-88d1-44a2b2a47cfa.png" style="height:380px;" alt="LookAt"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991175-7956de80-bfc9-11eb-901c-0164152dd97d.png" style="height:380px;" alt="FollowBehind"></td></td>
     </td>
 </tr>
   <tr>
@@ -55,8 +55,8 @@ The main goal of this plugin is to first and foremost provide the user with a co
     <th>TopDown</th>
   </tr>
   <tr>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991199-7fe55600-bfc9-11eb-9ae6-b29cec3a3cd7.png" style="height:400px;" alt="Free" ></td>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991141-71973a00-bfc9-11eb-90ee-377ffe656ae2.png" style="height:400px;" alt="TopDown"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991199-7fe55600-bfc9-11eb-9ae6-b29cec3a3cd7.png" style="height:380px;" alt="Free" ></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991141-71973a00-bfc9-11eb-90ee-377ffe656ae2.png" style="height:380px;" alt="TopDown"></td>
 </tr>
   <tr>
     <th>?</th>
@@ -64,7 +64,7 @@ The main goal of this plugin is to first and foremost provide the user with a co
   </tr>
   <tr>
     <td>Any suggestions on other camera modes you want?</br>Let me know by creating an issue or </br>by creating your own using <a href="/examples/simple.rs">this example</a>.</td>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991151-7360fd80-bfc9-11eb-9d41-1947c997b98a.png" style="height:400px;" alt="TopDownDirection"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991151-7360fd80-bfc9-11eb-9d41-1947c997b98a.png" style="height:380px;" alt="TopDownDirection"></td>
 </table>
 </div>
 

From 7b4cd5c4ed9daa036bb5cd80aa20bb1701fb23b1 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 30 Aug 2022 19:28:47 +0200
Subject: [PATCH 36/63] Updated readme.md [skip ci]

---
 README.md | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)

diff --git a/README.md b/README.md
index 679fddb..e5ce5a3 100644
--- a/README.md
+++ b/README.md
@@ -38,16 +38,16 @@ The main goal of this plugin is to first and foremost provide the user with a co
     <th>Fps</th>
   </tr>
   <tr>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991121-6cd28600-bfc9-11eb-9fcd-89fa9d591d4b.png" style="height:380px;" alt="FollowStatic"></td>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991187-7bb93880-bfc9-11eb-9739-598e01ba214f.png" style="height:380px;" alt="Fps"></td>    
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991121-6cd28600-bfc9-11eb-9fcd-89fa9d591d4b.png" style="height:350px;" alt="FollowStatic"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991187-7bb93880-bfc9-11eb-9739-598e01ba214f.png" style="height:350px;" alt="Fps"></td>    
   </tr>
   <tr>
     <th>LookAt</th>
     <th>FollowBehind</th>
   </tr>
   <tr>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991088-5fb59700-bfc9-11eb-88d1-44a2b2a47cfa.png" style="height:380px;" alt="LookAt"></td>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991175-7956de80-bfc9-11eb-901c-0164152dd97d.png" style="height:380px;" alt="FollowBehind"></td></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991088-5fb59700-bfc9-11eb-88d1-44a2b2a47cfa.png" style="height:350px;" alt="LookAt"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991175-7956de80-bfc9-11eb-901c-0164152dd97d.png" style="height:350px;" alt="FollowBehind"></td></td>
     </td>
 </tr>
   <tr>
@@ -55,8 +55,8 @@ The main goal of this plugin is to first and foremost provide the user with a co
     <th>TopDown</th>
   </tr>
   <tr>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991199-7fe55600-bfc9-11eb-9ae6-b29cec3a3cd7.png" style="height:380px;" alt="Free" ></td>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991141-71973a00-bfc9-11eb-90ee-377ffe656ae2.png" style="height:380px;" alt="TopDown"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991199-7fe55600-bfc9-11eb-9ae6-b29cec3a3cd7.png" style="height:350px;" alt="Free" ></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991141-71973a00-bfc9-11eb-90ee-377ffe656ae2.png" style="height:350px;" alt="TopDown"></td>
 </tr>
   <tr>
     <th>?</th>
@@ -64,7 +64,7 @@ The main goal of this plugin is to first and foremost provide the user with a co
   </tr>
   <tr>
     <td>Any suggestions on other camera modes you want?</br>Let me know by creating an issue or </br>by creating your own using <a href="/examples/simple.rs">this example</a>.</td>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991151-7360fd80-bfc9-11eb-9d41-1947c997b98a.png" style="height:380px;" alt="TopDownDirection"></td>
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991151-7360fd80-bfc9-11eb-9d41-1947c997b98a.png" style="height:350px;" alt="TopDownDirection"></td>
 </table>
 </div>
 

From 3fa60f74f6453ecd262681c824033a297a592b59 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Wed, 28 Sep 2022 22:25:04 +0200
Subject: [PATCH 37/63] Removed unused resource

---
 assets/models/cam.blend  | Bin 795204 -> 800384 bytes
 assets/models/cam.blend1 | Bin 795204 -> 0 bytes
 assets/models/cam.gltf   |  28 ++++++++++++++--------------
 examples/simple.rs       |   9 +++++----
 src/lib.rs               |   2 +-
 5 files changed, 20 insertions(+), 19 deletions(-)
 delete mode 100644 assets/models/cam.blend1

diff --git a/assets/models/cam.blend b/assets/models/cam.blend
index 3ae275dfd668ff788f7ef429f475db166fd6bf0f..20ea36da2eac40d1b3df15c74ca950c23424e17c 100644
GIT binary patch
delta 103514
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
XMwgY9^xN~teWT0L`$jiT{`LO=p`}9i

delta 100838
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

diff --git a/assets/models/cam.blend1 b/assets/models/cam.blend1
deleted file mode 100644
index 4fc2cdf8cba6ba557ee674c9e3078e8d396e4021..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 795204
zcmeEv31C&lx&KLmaulgpD<X@=4I?0iHGz=aY{1pJARy4Xuq7H431v~#E}?3@)w;Yc
ziq?f<msne?KDB6RK%n*ZsnzbhF4k82N?oe$YyYKvZSVj4otfXgb0%}{l0?Cf11I14
zX1?#6neR8-IcLt?`ZK1V)i{0jDVI+uA3s|z<DTce^ys}Ov<Ssfq|bi{owKxgMKc1s
zc+8zXXRe>{y!h&)zrPcP<p61uvr*1bqei95%F0qFpL}xalv7Sg9ewoCsSzVa<UEf*
z{`l0`v10>0=;DN}T)M{{cU-ExygYT%NhbyJ&>1skOzPNUkIku@%XVLUZrtc2-~|jv
zjvSe)si{eyu~;m{6XCoDwfWlG+N|-mJbCJoH`CZ#*LGgsZa!N%kv7jMQ>FxMWBBml
z0Y!W1sS|aew6rvZHi`4ZlTS^ZdTM#lKG8-`J@wS!`kkOm1L>M+zui33eWz$XWkY{R
zOhAu0=9r*wJmG{B(%8^1-JvKm@JFAIv*N6ksqu{$24M(CK0tY5eBd?uYm-MlO?mV!
zqeqWU%cGxReS-~@1!Dm1VGP1a9(5c#<YCLyN4zPIyqNMR8`7XY{ABaUBjQn(2@@uy
zWg%yl<-`+D4E#=8;ORSrAs?nMP%cv+@yIXrQ4W)bu2~l7A`Rm5cH$2oATKEM_}X(*
zr%ru;FfJe*c>+b8DF+@W^~j@Kye8fz4}0X{Bb-q@WX*WkHub>+1Ed2R<HwH=c=!_Y
z65xq=@UVlt!lz6R^@%(vc*en|&6{OKyvfr(^}*8@urqGlxFCPX3;2l>CkA2QaUve|
zlRU~|^6)*zZP@Qld$)DrpX%!B)T&jhg8X63nK5HVYWno)f&V5=nv|-ms|&)Qi?Jvk
zj|Xw5pMH93=FFKX$k=w@DSp|qWvPmaiXiWoU3OWjwY4?X($bRp(1$*hTE2XF>dGsx
zOhKlqs%o$05&k;ooO4q1=g$x5```cm)OqKf7w{KecwuVs;>AJuym|9dvu4c-&gSOk
z6!=Ap7NtJ;!4C%Id%N&QokKm~3G8^CjpmZ;N*zEuh&m@uE{}|h(&=t^zGXl<rmX2V
zGaT1;o=n-OYxH|>7yjsL&>!(cd&WuLq>Rf(Cr_T7D&$1_&G)RTnUuF|zBcof%T^}X
z$Q4f++jpjaqpmR@c&G439#9t60Xx4gK3m!CxP1NXlB<eM?u373Wo62BLLcEKb=mA{
z7|UhbXI>Z&>hhT#7KJ^+P5jYbd+J1gWVe6j1Ld;wX!B+nvt4)9$Mh|IIxQxcPI2Q+
zneNbR`Lyj~E@XyfD?j6G|G9Yj-=rq~cy4goX{V*;%$XC+8!%_UTw(6qxxu^*^SOLZ
zJcB{{F8rCVs5-#%WTV-9>54ObneBR7?c|W(v&nWf4%iZ3^V*efgdrWqW%CK+=-+HK
z3je87r>397VZJ_X+O*J#xo$ou^pFPblbDvBA3ML~vr+mXAKDdsrqwEccSYCMA-16K
zD^B8W%aV7M3p#dqHXkw0_P5Ow7rXuAzU$00&kWjsK5gA4gZnz<gZSHNlZOn-#ym$+
zyZli+{a6S!ahevZ6r5E1G{du96I+{_I)&tivMeL)@Y<$P{xZYqYZpZwF!2YLz#siT
z`h3&_T%UdR*`a>G?iXwx;|S6N{;qTxhJ2#DW`50UySy%*{>q1%m_%Jy*Hr}V)Q-3D
zML)<kZOi83^T{h^V9Ql*GtBgv>ze*{QQV_*{*N-5{XTF+ov`uEhiCuqN)usbK2cVa
zH_H}vP5<Pgxv;R~tLxAQsQ%g<>loHm%<XhcK3f?e$M`5;Fx>Q^>)M5di9hhhv$u24
zJvX&r!GgTzdanK-^FO5TYX7c$Aq-_?Iie{2kc*nW&2~*pO`NM^Q&Lsa6#k4alx9ma
zSDaZk$eKK_qx{40C?6x-t^+3i@B`{VV`F2gzP>)y(9n<qmZpF5y|&wbwmcDkl#gXF
zDa##2bNQ6`*?DKUO>62ieSjU;9X?k+UGY(6j`Ef1w`@LVJuvY{TSoiGb7b5Ho^{q)
zL0!nFzc*#r{!s_)zTVE0nO~NbVdSHz?JpY};%$fL;%n+NbM{=a-HEsJZ}YH?u&DAg
zoc?lA+utS+Y)t&k{vUHbyjyVf@43Qw{}24l^z3U_e)B0WWK6#kXP5s>xqPpyYo?^8
z)l3cgJ?PLrsLeAjU)xb~cHUV=Gn{z4sLPiOv;A)Jz&}2ATx#OzF+thPcHEt7)U9mz
zGjBFU+2A8kv+TCt%sBJfmdnKxKbyv+53s|!!sklgj<?HV^1OE8&oJAcCU4@-YrN0q
z{GaU~&-`%Thv$E}+PW*=?EjgLNzFX*+Qb_^fv-_sGo0mjQQMDEe7+dg)Q8)BzIwUj
zqVi>jqm1-{tGvY9Md?!)HF3Z-@Q;m_bq!@F2kBwXhw&fJ0q`6rS9x6Vs1s=WuJ&){
zm*q0Ucx}e<I*Qu9bMdZxW(%v1$-QuGRbKbL+3aMCbLG<vgKkur5l&yZs0(|9x$r-s
z^w?m%3i^A@{eeB!X`nyo$`}CrIln}j%pdaX$`|8pN?%0zfbmfj{zF_g3>fDsXKlmO
zE|s6QXge3pmH(*n_e32)`yV=SZ0h*Ys{P}>4|6|^0et?4=K)x|<Lc|9!tC+ig}Yfd
zZ0y0KeDIyC{82t*crKq4qii(RkYD@HW`l9L@`HHhozxC<`JuaY0QetwqO4Dob!td2
z3eQ5r+5Xwz6pFuDR^*F3eG^3?o9!eX`B01jvAUkC157hp{>*Yg&g5}TKiJgOei#<z
zdyfBQW2dCbMvaZcA9Dh<f4mdmxp3ja)TNhRn&uIXc>~s@VeByRk4m5Uv#DJ+@Gf82
zzRBiS`o0i~I$zt^xlPc9*(MlP2#v}w%9X9WF8?6R_M^#1VSx63;>qJ>{2v*KKj!nm
z6!!!?vCgomsVU7P9M6m}cfcHi_(!E{=8e};<s$x3K8f-p!gJwaV(7Yd;qQ{m7M3j!
zQF(_>RC%-Y1KH|<3k%?X><MM5k!7Pg;g5Ggz!YsCm=b$X;J;+al291hKk5me|DX=I
z(j?wCjl!SpoW3H@cEWI*X7hVCyv(?o*tAq_{j?q#7qjKZm3M@hWwo!P{1sIPTv!C{
zf7FCj*~zDL!XG%IKgWrAA)XEM#IpgcJ0=f`dV;Y6vQh2d#+-b%vY6$D56Rm;Gx;cA
zo7m=iUFR4B^3}EFqVk1sJO9L=l;t*Ql;7xAo7!~%_#aa$-)BY4|8Nh0djXUKdBigT
zV2riKSUb!U-z*?4$eH86ot~W^@=@h5%gSrpSEk=^9pz&ii+uUo#-3^aW_nS1WLfMo
zvg|gE@*BeG+i8MJta6GvE94rd<|pDimPs?E{g3I?{+VC&1Dpc@TbyX?ye386K-<T-
zQAqpGRtCGg;E6GPWzs0WvMgPpHL>bcozwx83n$9h6+5<0R9>UX=kf)@VpFE3YOS-*
z;Hv~{)&)?rO``oz9w*;vjP2b2GrzzU7@Oli`u-1m-~*vBjQ^M?M9u%qJeb!}_(zqO
z{;}Igls{RHLMX8&t(&g!KSTOMd^^K%(n4&TvaUR{d;yjItiEbmaMn$&O7X0hYo1kt
zb(9ZHKl9qeAK!(X(@>F`IDTB#_V2<U-w&B}!gc>=riE+f!K6`n&xSvJWYz(fFBxX~
zJli$#v?=gMy}t75t5ZvtE=|=`XTGDhWwY659P<^EF|}b@wRK8b2-CPvlRAL%M)@Pk
zf2NPkYZDW+|KsI5Q+xbJ9|vqP_G29Y`g`8{gJOLU?g7j&;E($S)D>6%Z|1?gj>>;j
zdEpD5@TXZ9=vR}{=eekjqsil0_{z1HrPg0_O>o~^Bk7v)=CzqloyavxUCEpVFBsR!
zY39|uW*JGN{DE+n4^1DN*EarBPad5bBXc>VW9FUL82d2>0AHSGoN-19CwWk`4|Duy
zduMuP9?WZ3-Vqj6UiyO+`854zU$Y!G1!iWLiJ^VHMB4oN^=+x^K5>2U{bx+$-zYYw
z*TlkSweW&D&N?~GG|X!|pX4FKve`7sCoUhFJ~pq32Ppb~tO3S69%-5R<F#x2N83OD
z{PR2Y|MvKgd?9Vt1v4MKcICYg{NXp`mHx9S%VE=8_{TK1^XHzM`qa%gr#^S{jj6kC
z-;ny$O*aSa8Mw#fwCjp#*SxmVxARFJayIVd-wyootrqG)6#kt1n`1rjzu<xkI^l0W
z|0V9M2gKZ@-NoO`H+^VQ+wbIS1>a1++_@b$2KY)FmcFlb<;v8Z8}3Mb{_}UG?!4>n
z)LGK^<ueBC%lO0Z82{lv+`pTCL_dykAMgHL<3F&+H|DPK-!=aS-l)4K?zoP^9^p}S
z9r?6R;0;_&+|}5N@s?*8?|Q3mcC}+OZ1(IqLE8uZ7o2}VB>t>l`BF2_EQeh_@=-pC
z@}uo<n+N{bUnN`rk8;2dXb0I&%#m2;sQDlAY33m+-}&HQC-s2$Mh$u%jrPp>bWG+}
z%ul}5#M^b<FrzlLYR#(DC6`><Blz3czZ3YQPlkU%fj^$zVhjL&xW>9qw0q3y^7Wf3
zhw%dM7EuR~22bKn%x#|GpjC3#8uz=Q`(Eq5h;4(uL|)8mGjF-BU6|WpxEDO*j5C90
zVrE<}+pc)#)1;7NnQZE6|EAyUYx>wli9es=;(J|uvjJ-FB~d7kd1Vy-$jdZ&W`So^
zcn)bkyFyqHE@OqOtO&DxLf-Zvd6(aFg#lN{nE3KqJqrxS<+A6BXZ~E2Win}$KWxm&
zyD&!>;@KwA{(%!PN1I0(v5ydBAlucw6R}Uxv`LdwHS(;PXMi>EmUEh%NCRbJeqA)G
z%%)$=Yx<J@wt0qkhsNZ6Af5?##|HCdQ<Mc^W|?^H@`cN140GX+IAYKC&-K4-;}{FN
zd!qeg{U^TxGt;#5m8}lA%FHnO#isNr@Zq&dP23P}^7&k&ji3+6N0u^X`cc;`2jY3n
zvPMy2ZByIF<X!k9J>ZS!+DI2`IB){9uG9mh0qju+#!r#&0H&#Rr>q0ai%D5NyBy#d
z=c4qJP3dF!pVu}u<A_tfw9t2gcG@=2{3D##psq4A%;hVD!LP13=rNwY2fmp9qrb)&
zfU_%@+d4sCBDSg;YEt7SP6+0M#2=LDn-qCt9_{?I%r0vB%e<zKO`I8K(|mEKT&z~c
z06EFKsGUX>Z|B+M&GJTtn=-hzF=l-LH8H?7aN_qKHiqOeN5B|ipQtmGu_?YQLfE29
zno~9P>VCjZ+r*yNU9AHsx9K1A8h!^pQT{i>T{zldl#f~)#`vyKGoNM|aBbpjw-564
zqfHTS`yV{|XgvFgI=MF{?-6Vor3X3KUa;uA)F_!x+V=uT+s-5TuGRtDUnUPMOy3rQ
zO(gzV)`#0VHqZ3UJmMPRpeEM#HL<oS{TD@T{Be&CjDT@ZpTHmOf8vzMsZ&msH3pKF
zoqj%b0A;t!Y5T+EZGW14SMeuSHiog<YFQud9s{UjQZp~vuFdk8*R~&QJ_>i(aQUA2
zN44SZgrh#8ZefkU*z(TL0+^quJR=<CWBKi}GCYb#`4<?Pam2^Q*2PoSq`AHkGSkX-
z&2m77*Cw^gZ}U-pgdBZsQecl0ZL~W$N9h88%q1~*z!}y4k*BD<=c)rJo9QE7yZmfo
z25iaOvJB6c#_GfC4Q+ebc;?rnkT-c7XPeLFJNVXxKd}cz8@0#up5QSzgl+7Xj67oe
z&sGPr)dS*e`-Xn9eavu^nli-J4D0Ikv}$}O8a?-nvTNqeyoNk^8*7`-g+1cUHjis!
z4_kQ0hxU)>eLa1mUjY8d11Pa4jl$b5BYD`tHT}bIlhSXwC^11j;B|Lsw!H$F7v`IM
z6os5wrl{*&*weoz{=}Xb;N2~->FK#2>~a2&J=5_F5NQ%a=H1MjdChnig+J)KDBqYe
zly%W4{2^ONeTdpCz?Eh`VcE*%@`)=9HtcZI$G`*YcYuG?7~Y+5&i{}mp8>P}F<-2Q
zX1>g8%DE^p&gLu1Wb--dK(_dN;;O2qrmAZ*^)eqF%9!~_m@ChwOw=`eMBmY0;OTRl
zqTE=+fw@_CaE{U?{#Y-7XTco*&3u^oWZqqrayF%}qI}{Cr{7JQZ{KX{*w;12zJZLh
z`w)glQRajBw##etE?*%Ga-gQK?Q6v2_bY&ZPt5mh8<_vWHr|!s8KY}25ah|sFRr6b
zyX+<pf6`}#Qer{hleejjrOnsWg~tq2Ki@n-2eM|_T-Q-PGJR>|ZSs8Ii*?$-sHf+C
zu!nwu^FLg(4{-GZ$Q#R<t!ykGWlc&SGmN}VO<c@t;%SEEdmW@9`vznGU^~5hdE^_i
z%zqTk$3G_4_BH%Z3|7jT#<#ouV=W-CH}PlscHY3}Dj(zNAKSmc%nY+JG~?`RTi1@y
z#ZRj(41bn^6!v*-Q<gi5(swSOB8<3`VorwpKj0rVhIc0%<3FDNR0#Iy|Cz2ynO9et
zviSnOF?DQT<<iZDBl>}C@!8_?Y5#U!P2QDnvz$@a#NPG`<mqG5`ZLF+&RJ8Hnp`<G
zh<iJq|DkTx%lJQKVy4ewKJuX~FJyV0jpp*D8E;>kxOS%>!0(8-aJ18N@krMd?h3R0
z02$k-W?RE`wXDago<1&hW^-B49?z?+PK^_c?73S{@R<KisG5<gJ7Y<z=8VOuNflFq
z@5V76;2SYetTp9+A^5(G*LFEr)_m&$<%y}wf7!yiqDP&4`T)v;+WBDKqp0m0@{s4X
zjXU{IOsq|vF<I8%)yn=XlP9LmnmjdCF8BX$*Zi;Q?B%ITuYV{t=kl+nDyr%O+<`ex
z>>q)3#@Jr~;}A~FN4a*GWg(?M$b&L08>N3C!)u$Gcy#reHmj;J2gv?ALQ(mJji@-Y
z-1aqe5JsG{QOv_mUDlqODr*=ahyK4O+PiH7?Z0yR{M4C?Kbo4k@ERF!rls+pJ$rT<
zf3*3i{MzLNPyaBEyh(`#DKRCVFYT&cRZV{T+1q(Gd0exM*(l|re28$)zc~k=7&|jv
zU-<kFaWmyz_Gyi^!MicELxf=tc+%wYdCw8CHwZ9=?=Z)Njj6TrP4ETl<z3LK0C)T@
zCBG|1{!qSb`KOHO2l~p^HD&B;`pORPX}&_%Ja*M)E<f1uNXHJ##sd#LlLNkx<NP0M
zzh|8$V{&6Gop;2Kub7+~SpfdP9N42?AuZULQq!1fICo|Gdog@Rh&}*gK4f?@-{ft|
zc#{@dep{Y6(I(?b5zcE{mT`<v^A*rhb6$plnkQ{#qo%xhO}{XV{6v}GO_aHIz)zAr
z9kg#Dr@|y&WH8S}y0|aHIz9B=7hQBwP%nTVPU_&=?%Q+mxc5W<5BtCxX=A@Yq>H`*
zbr17D_7SL$_?8@LV((GR579^CyF=(;j(~8qUzYjpqR1E0M%~0Sa*U72C)*6Zd&N8j
z_qJ#==<nc5`t0q>SCn1&7JD%u{Y7mLrKUE{NsXU8Ep_e2XHw%QR0Q)Xyn}=PultWp
zshjWodTPar6~T$J;k#dy7ybv2J>AfDfiW<I&+T=e;PG9ESr33Y`~qFPSHd-Z%Nlh6
zdrRPiJ@cBsuZ?inq71I_d(<c!zDdJ9IqYMeiu#HZ@fe%Xe}RWCWDtfjK^8K+MjWn@
zChXgGXd8K<ZG=GwJoKT1@*o^?phzDS>6$hvk1*)7thny!lfR=ra@6?L2_u#7P8u^Y
zNC$pFc>^Dh5?n{C`5x*EutL6YLJsS|VG9%|%7FIA@<JZ*Ob<3qd0b;{4f_n#C$u5d
zUBm%T<OM!Nn}KhU2I?Q`8R`^d;4{=QP>$Km56gmh))(Xhzh_S#Hjy5}AWt9Q8ozf>
zIh31raE*B60ci#P5*`#X#1L`_gB_$nImFv}BaeI_9(MMX6a5z27V0g0jCzcGnkT~W
zju2Qu4tqX<a{PcE%5UnRe}r9NF!PMF>u2@zyobJV?+GoQ=S?Z{Jo)dHmX4eF9&b$1
zXt~DWw?FXQPKk(@-XBo^2F0sb`8&uf#`R;%{;&je$<m9OmW-2;th~7beBaUMfj$rH
zzaE%>rsuUEApOV#YdX-6TrRx@`k8!>`De~ww&KjiEAo}kC0F8=rbVt!Ulo3l_?GGi
zqiBgXnK<>dXHo9tn%bcMv{P!IHZh3bRjz2M2%tj^I#pY^0N!s|75F=Gk)q_|7l*?W
zpT6k7kUyIyfB3~ve&esShxigH;GhXb1z}l0_WMNpJn(MvK<v3^&q$w{jJL%y*Xb*S
z$%(i&=v4D$SRwsm+G@@VXI|1;)pB+4&yJtwc~>=>={MHRt(%4ZLHBo8MD*Wn>s0^l
zKR7t(cW9XNM)LEPHD7VY;wzh1F`z)YVC1Brzua)5rlS>&k5Y8kDT*fktorBVpA_Xh
zR+Vj}6!wAxyrL56zf@0Mqzm10*TNwG@#jAjDu@3k#giuPYzp$>e@XR=Ef%$lm3VH?
z_t4MUhrfPP(67SJr4q^VN!EhCHF59Pg7{?1j37N*A9}t7(*C#Q+DwLa>95feiTFzG
zKii(?)yrt@dDNpE_2SyUw3pF8Kcq)F>Q#<axX>Q;QU`_gC`Y|@<r-g|ZbmPhPs&lR
zeVR^Br%OFjmXC7OON>!^v`2Z*dtY!#J<3sUgRY0PN4?ZRVLi%Gk8-p}K6Q|~LV9I#
z$@)D;<G1c4l~2mkuQo2!r#$tCoS^-x+YR-J8|_k`^3;!OecGiS@w4?QPyKaTpLUt=
zD1FLPzf9vqyTr@(Kl4v{>JOQqan|{u|D*INPkr_?v`buR$1XqRsn2-Yr9R8Sc;tVx
zFznAJYy8=-Q7-L2-L9kXfIRBfG-<79c}E-}0S6x&m`SB%o_^g?LBF^A`Rbs**`w`|
z#+T^+=t4yU#XSC?&%uH693qtVC+hMH_3%#}kZG52rd6qB5{n#ZzVy{btyUk<mEQCa
zubC)vAUaPuj=`UYW{GaHE=~0qji_R;q(mN<^gGz=@0SLr_)+{7b--@5_OUGk3z#_v
zKJi&<@%=T*_x_<Xf<B+r)-RNge^HH5iTlEH_$WK=v9p|GO_V&tD>th#iue&P;+NEQ
zhPW!dJq=o4;n()hFi+zVbWh+!ji2{ju_5@SshVR!HG|*Zi%LD5(fIWj?9fJ{@Pjtc
zJHhMceYVJf-)N1Wrjk^*j^rkVo3CjuV`ZbdhTnpR!}t*|;>UD}tKv6`zj1JWS*qI~
zc@-P=m*ZRz|JFRw6+KdC`|}PK$Z=+Ef9&JX&viOP8~VZF%Y;@R{<W(8k?$!Q|ANA=
zY-4`yFWyD`m|wI%%o*5cA1H-QmzP2gilG1p^fBgejNzCQM9LqIMI5U*W^(M~SVnnJ
z;ygsI2M?A%2Oovt07L(J<@cl>b2jTaKB<3!>i0<l#XSD7%qS1W9NOoY^FHwkP8{sB
zn1)^F1EKVv7Cq*muff4OPhN#a{WX1|>iUMdG>xe9;;q1A*~XlZT|05nPS<*0%}F8R
ze?pHrQ(|h&(bQHilyA9L)%Es!@~iXhqr28;ZGJM-XQ9rs&h!^piGQ}dqblN<KSxj$
zh4_7{uBD_~$VXpkL%(jtvdb2)S=PG3lm9(>e7GCdc3-6YL%R7?HSZ<O$8@b0I?xb?
zZ&Grg-7Ju6+W%LC-~1=leRyN@MT^%iUt?G*>=Nk(IO}rY_T7aO@1vP7$`EINQ&(|r
zXuWJ@>*{4|maVwh8(UsJuCV-Plm1Ay$Q*ILem+22sqaTgbEt=+W%`poY@BI766Z&I
z7Uy*SbKuN;**GURb`|HD&8?R;uUU0v=~=B!&8yQ6>4A%ncEd*d#i~7%?$Y<Kq=lH4
zDQ^0(ai;w!oD*N`S)9}P&w(@ZW#i1}WQF(J@-(t_?Hcdmo^8u;?8nmHE&L*>+cT+O
zruuDC+oG?ZbH?9NxY+UJZJcR83THky?Wuk{o&Ov-Ghf6xn4d`@Sk8ayamFt1lC{g0
zOV>Phb@TG(rE3;0X<f&X=SjP(uScW!e<{2YYhMkX`!fH`FZ0h_v0VE?{@){+YDwz)
zc2y?-2?=Mp2FW$CVHrR%N0@)+!Zod}%U55ydQJ0X3s*H?v~cCB)|Jhx)+}pYy|8)3
z>b0wy7cOf;Snh7M{d+1Oq)f|B8~#Q9D3>jN4j(ryym(dX+Lg4PKlOF~NU0f>Kgwmx
z-@MbN&!5n^@a(w@jauBr{4qbdDE&v=v*oWR@l8Ih@FitFqx?s?Z29X+e9LtHNOR?n
za@q2?H}K`WH-1l7=R;@8G-x>{y*+-kb;Dwd9w$kYdfrQ#k7?F5Qt05?yuYFSsBtoJ
zU(e2m()rIZPBLH2J8|~!?kdi+n^!b7uL96LJtbP74;T?LiDhcuOS(?Kw<3*Da|ZV}
zLT#LBKN9DSJ&SWX|2c4GzHFS6pYJNpbC#}JwlcVj?a6ysxc1|Qe+#`V(>RkZ(C_(3
z3$b^wA#CGJ`;j=`-Lp8S^PdA}=F7%8ac9?YUc3D5!TB1)zlC1LFH!B8v|YcCCC$g4
z+yVp#DHt1P+K<Hf_MXK#o&Ov-Gha5&@jJSVbIanUo_{6<pI(bUT|9Q{_Dt&Q^%$gu
zm^EMJ*f`UEB+j4hS)9}P&w(@ZW#jB`=qk>0o7b(8JE+oGi<hnF`g2s5->-88<{4JD
zT(xJ?7X7?}G#@jVGvko=?CHbCnf9Y__HXT3oYVQwfiv@E<D9&$t2m!KuXK8odd%E|
z&zRxZPo%wD_(k$kg)`}H{jQEQAB*&nxHNs(IMaS4&NuZe&guN;z?u1C8Rnejd9}ju
z{l+M{W?Z^(SuW<x&b&98m_@EDQP+1xN$c!BUfq`uIabl#rHYn~P&DzT@_+I*MYAPk
zzBkGyXU5@qM5zQYA6zfDS?9}?Ro90HgnE>tUP9~99`#!XhV>{%y#-p2_NeE1b-{4N
z^e9KYGOb5@)N36W)}tKt_8h1DOMBECHURl7O0UbL9QBe~kM=TpNH3#DIqGfDdbF3(
zn<w3HMvrpTYteeNN4?g8(95hJr5yDtwI1zJ&-4BxXg2gG<*4UtJ=&w*umRA^<dbsL
z+okI-?NQJ3#)?)ZpOm9syVj#U>J1wJy-a$Pqux5LM|;$J=73?rCCf)S>czDl?Pc^D
zg6S>wC`Y{^T95Xq_hw1hpOm8><!F!mn<bh0iTA8*_guHQS@#2!XMMBV2l5Mj%2Pj~
z^=WsH#?`Lx)Tcc47ifLjO=^ASgZZL9<*8q$^=X&-%!jQ{dFt;uMz>FGXG4zsQ=a-s
ztxvnukMbYoslP$%(=PQ{4m<ypr+$mpr`;Bv|Af`A(tnhvex=r@-Ab*$M^ig}%2VIh
z`m{@Z=EK&fJoR@St^7~BzD{>{ME)sH{dTQSyVQ?LpYqgSr}b%fmu`P7hn;`QQ$Mct
zX_xv@^_TM0AENbXm-;M+oj&EMzgv&rw9ED%Res7-f3w!7UFt`bpYqgCXnopczZ6yf
zC{O(bTAy~QA65S-PyI5jPrKA-Ic)z?p8AZZUE=1de^^7uc@o#qCI1+nFHt|K>+uFn
z?fzi+0MBb3sJ=otS4P-=a?UNT?}stWwI<AeWrF%XMbr3s>OLenUs0ALUyA-9Sd*>o
zaD80j11@{Z8<gD_>J&YqG0bOAb&h_Z6RZ$yyH0G$x;oNM>*EfQHQ95EhX$wH7f6l%
zn<jpP|Lg-6Fpq#gd*ea;h!^o=ePI1iW#29Ser-p_55jxb?ac7muZHXBlN^4QsF<9!
zZSoMl$m?J7Ua86ldLz8DemJw^S1D}(D;KLAc9r%)vK)+05p*Vc2_b&Oi}<m4#5Lfz
z4Q%wb9h$)lyvFY=so?W<B_AR8x;U^_631bRc$0Pe%ZA^_6@H$=ucElDAI@m}rWpN~
z3qPf;GtdhO@Y^HhV!!;FTx+*yEv=)fXO(~FBTJ;s;XBIkk-DtJ+ZYZCaqtJmM~;Ua
zAALPOa@^#&$nl-`2^=SBl>PgBaagU~@#6dRxy7#r`EreqiOp&pCiUm3aV$R9HJ&k*
zXv+3UJ8Yj$du=z%n1-VV#z(J0Y{~eTrugnceS4w4c`0msJV|^9|Jld>GCmS7;zvIa
zSH-u8&tKfmIQfcB`qx=Iz`r5qzvYyE(Ysqt9GuT^y(RhQRkZb2;diI>ufWgq4w3P3
zZt)Aj8Qs5{^?#%jzZa}@dKZiK7ne?m?fG>np4}(8N-Pe3R~?C)z7c$<;jL~iowF2g
zc6%oKi@Za{P`cs>BOU1xGiTE}{EL|t)4x!h3;&`{<GfYp3v#y_`~@O}csvWj!TkV6
zDmL`DMCKj-6Y6_-M8JOHuU}B*)x3Xg=Kcxs=1~Zbd}93Jc*F50{)V#8af$cEyg!Y)
zUqn9sD3$5ck_q&m*iYcil5a>zk^BDaP&Ll@nkHr|KJotUjX$)*{wq1lW$#q!uW;z`
zXWP|bUPVU!MLBT<_h*YfExI!PkUH<r-Ygj^-oPD}Yb*|o$sgE_8h?~_@4r7IUc}Eo
zTh|L+Ka{VQHYnNy__YCh!H={Pe)#4&fBXhY-FJ;Y3co`_eX`wNSr6Wg6#WUFj}R~7
z7e7<sM_g6e7S(&+gF7<i6n@)<JHg{s?^GRem2PMEXrA|H+*ptCI+`T7zc%jAWKDLZ
zcXbKQ?ClQ*(0?709tLO<y%^9sAT-nOjrb8S;>Z4&xGIlKZ15J{6X2!z;}zd_^N#x@
z;87Lm{Y2xpN%O>yJmYmVNr2zM;#_$?63inH6pKGCxlhh${LpuD{E5b|pN#4m)G}90
z`rS*}{)iXxV~L0>`MpJRjelr=?*8+0x;E{toEMg^|3a*wJtTnNMkyinek;kLe%^7%
zQMGo;zx-NRr?5Ng+P2Dlubk?L7oFLGtB-CtH8$jTU+TE-*^y{hZK?Rw*fERls+m4@
zgqCd^|K-Z&*xmnlxd!onIksraC!SwhJ^84KPYD}?K6K=IJmO*NXwip`@E+_oimkhp
zzBk~*uhkyD@mJff`072i(Er!tKa6d@>w{a1k2`6r$Zmb+hF{0#A9hyk=QoUqNgiTS
zz6pQne`M|2)>k?t4;?rD_0BD$|KG7SAFUf#CwZtFJNMHycTf9#&FPizdF+w?k3MqS
z)BpGF|C{?p_4$APdd&r8r%$-M|KZy&Ty$`~cieZMO8)fTZBKu5Q2pZZ{`O6O+g|rr
z*~Z#Gp7`0=t3P=&w&K(;eEWwF{JNv@%^%cEc=)-F&G(!W<bTE$%VM{jKBMONF;4{k
z+BEkATfTg3b8J-gEAU79IQECFfj=Jq-eIwdi<fU*b^keA#m3fw$8L%}{JWQH?w<4n
zY}DNJ`fXd150upIioen!HUgV4a?AtE>%>M~+F&ogxc2b}1OJ-E%r^}6#?&kPx-Itj
zb2DQHfBJ777e9V($I7d|)?xbo>^B#1iV>K;<c){xxc?c`LO*qWO+~Eo$(K6bc;>Sm
zC9l8Qf%a%0Xt%iE;eE{SMZhIz>t$r@vX<7#et0#-MsJ64(0x#s)GbwLXeMvaEb{t!
zzTPn*F7vjw828Bw*_DmtN=gnGG|0oM^Gtq<<tYvh?D2Q!9Y@vRiOyl;WHu$i-TkIA
zF#In5v%i<WylL^$@+IYy7B^3v*i_zBIeGGgrR5W+ENyCPo>IPK{L<#8isp+ZO`5WB
z+`>ua<?G}ed&$a+-^GA;&U$*!OlcoRpBJ<rgAWunkGOYk-^@~3yjU9>B<=TE*&_3$
zTFHr#FO?V7-fM$=sUjjAZT?w|p$tcuK2<zqq7L+{cs|AFQG7m?cwIf8;&UrsuNUBR
zs!Gl8((6)8`$Od&+^G_9t8{RO$c8w>1}q7>I@g@k|E5ky)8uLTIYguDd6Jom`<nA}
z+Tr}%k2~ybJ4K#J;Ly)E9vU}2#49H9FUpA{cs{l5`|9}yY0x(-|7Z3D8#Z95cq7;I
zDcHS2JO=;Shtlr-&!>nN@r%#U&o^}aP=1Lwc;3qG+DG!Z0{j<u*ghlww7%f`5%Mz~
zepYR*E#`}kdOuPu??;keya;FX{V|e&UDW@}9d?zrScG6NJlOt-7x7Ez_Do#&cF|pZ
z5%Pq#$NtNOpK5vG=No&wEIpY%@grWuk7*EB*_Hh%`2y2uf8<sBJ6)!ybL7N+Xl!4z
zF=dqlVK~S$9$_z~K6Y9v^|6nsxo^DwbOcHhl%M~QrD$^wM%%*?g<n$Qvf-Dp5SZz8
ze}EtM(dM}NA-UEr%UV`ql2vFQh~#^{w<{}rb{eujtE8m(W1*1r-i4eeP1b(qcPgAu
zalIzzPn<7tJ*H_D^%m>SPLWg1n=n&w*Y(6>YTiVetk?6Ve||On9y3tR^AFoS?XcbZ
zb*_2Slzn#IME}{v-f!kj8ZY7(|F^0S#8vqP^CX}1CJDm)_k4p7doP&ZN)YEw<R^#4
zG>18_J#QN7RmiT(c%Ky2Z_^aMJ_3gJp~hXzoAT++Z0&uYXZs^w#4n-Sv$GxUg<?hF
z$9YqB{Pu%+lg5kq5hCK6nKw1+_QrXWw+*uIl`&wLoEVQ;)8Shj9HYrI9&y>{O~VEh
zLr9J&{16AbQTSynK(hB8oHubi?VC3hhB4<&W}WnA9T+)p;yj7-CZ@*u6u*<<Iw-Eo
z<#Q*>za=-)sJD2Z$@Ng9`(r(nyRQ4bn$M6X|Dngn|Lx|yN!ww&_y6v)H#a<QTJ*ax
z&q77eQT<g!{_CMe_aExvbo&C<=)b7-P)d70c;2M(B7X6|>3X4YRi3xjLv;tgT3|2h
zp-7$23-iY>YCV*~ulKKqB3{HV@mGakxE=0$>!Hy8aH9W;UQg5e*FzC6;+NF@F>zJx
zZ{J%Fg|Ua@Pc(kvd2eWpR0Vt2{^flO@gjaK5OF2Hw`kP7m*XGWpKCqT=>G4r^-#}t
zaXpmQ`>g<k`Z@gRhw%<EbiDEFakZfUVcLVWP?_~mm;da(Es*K%`kxuHekd+$h8~f1
zLSn9MlB^}VRn`x+%bFqZPs+NY6J#yX7`1+=Ew-?+Zo;~+Z(H-iPipb}0qciWzIOB0
zXYS3cA4+}qpxEG3GV6yPns`j@yqfU(p_S`fgY`pgC*5B2@X)f@+1Cx<@<jdfk6hxv
zuj8>tZ?1m*H(#uIqW<j1{<Zw5ou?+QZ@7QpS9UBciEqDf%2AECeen7ntAFz4hUR{1
z{RZ+Oc@2*4`lD|>6g`=XW_+HJ>`oZ1*fv~zTg+a|WUhxg@|$Od)<eOvYdsWG%tq1g
z2J4~p{mk!SE1QCj%gEUI-#6DosjsZFtcSuUm?Z}sS;%^*JlxbL(u+ONw;syd=hs7_
z`gLzT6#BQIkHZ+OPrJ|ST*=e>?CIZ^86_QNrqApwZ->m8ZT@bL9os!V(GB%I!}Wf8
zL-oE=q(>^=*Zb@FyVZNesHEVF?(DP2d~koTq|R68^zbBF=8-bal?tUC^)_fd+7prB
zu=m-c9Q9hX9_>-j-e-?;)T`8bv`0OApFPS^&)0giM?JOAUZ#AMqu#DzdjBb{pV7<g
zn^r1;l%rm|)}y_Q9(F9qq(?dGt<!q6N4?g8VLi%GFRt}yk9tx|f@VYfC`Y{^T95Xq
z_qhRKJ<3sUx30IeM?HI=J<3sUv(}?M>ZyJ9GJc^P^%7c-_NeE1cZSMGIqFf4_Q($#
zkkP}p$_uo8?)y}xdCIdsC9Qe@ze1n#)ZcSdxP7x8v_$Arp883xPrJJ`PRs}M#q=pp
z{S8{5cB#*N*!q;Gev8(pUDm6p{8OI#m0F*6sh^A}Kjo?KYkk_KKFeX}pYqh-HAJ^t
zZHM)3Pel5Zr+&NEr`_GUK1BJS^3-3a^=X&-%!i$S%2PkC^=X&sM&+OK)E}btX_vTf
zh$uhhslQu~N3_fK6P16;Q-8D8r(NntrB8Y4C$v88Cba)q4%>f}r~U%1PrKA74z@n!
zsn2-Yr9R8Sc(lJ@UjaRC^F3Pp)$sUD{8)ckpY8U*eLb-D0z0d!ecu|Q_kDX=@B2pj
zXZ5^2@kiHtFXlR$qCCNO&Dsv1BgWry*<0SAEMeUW4(yA9gS_IR{&HWG;5{1mdn4`i
z9;UE;ZK}n0YG>MT>if;UHX1MD$NJ!FT$NXLhxUCd@`NufeBU?h1Lim|*YC9N+sU%;
z+sPsy^&A-WpZmUH?>_rb+P#0@H{wP7=!Z}{4EA{&x|4Apc#Yq1nH8NF%#38wZtxa9
zdf&Hf_!;{O$h!NA;*(|Hw`};C`@XsGQ`+eq_qq%8pL?WKzV44-lWPq_*0MUPdRF<p
z6=|0x-+kXW9&&t4{6T+jq{mH;iyYru^gM;*B+JY3ae+7t&t36-<=o;w1U`24DTzn)
z`dm$uuj}{GueruErV>p#KGF``r|+`Yx9?lDBll7a@grWukJ%xvig)e%cJ>a$6|(Q!
z_h~#t)pId>-?!(bHa{<NuDT3$v;Mo@lPc{{LcNLse)#r;?fP{oo!uw73ap1fSJXZk
z7T?SJzA=4!-?v%TzHj8i`@R)f`@V${Dk(0q_I)d|_I;E1(7tbBeR~yLHXii__h%e$
zIQ}H{^Hq*Zyszf{E$<U~-)2@4tTW;F4Y|G#@gLUXoTl+V=<(;3?u|dR!~QGrdxyPk
zecy+exa|wq9Dj%x@k{<r;YVCmUi-ce*%vS~^FaKF7xD9TdnT@?&fd6=nm=%zT-5gk
zsxJ+%liM5lf4kBoe#DFTF+Jki_k9RGvTsq~7kpQ%$J4&=Lkh#E;O|59Jc;urzL(~F
ziqFIOT%Y&vd|qzm4t>w(Wh#gJcG);dzOVXnFfDiWRf%ut`*uy^zt!`mUpeMEW+D;S
zZ1=RocAt33VXy6^MrB4n$KHqbBZ>MxWPkatmUt1r<coUVr0a*mt+v7Qo;1FrJzw~x
z!E@3diNG&)9l0^$rtlZp<Adkg#&c0whw)4AQzbZ~@7rUt=K|}$>%LuSW8CeX2iqU<
zB7VMZ&%{-g9^Z!?u!Ei`^1v(n#z`O-Z${zA{c<DX9r#rWb~vN)V_wjIx$sl-rr!U3
z2=O9*^b2wIywW;pVGZ(2f`VDHVd5vQ+d1vK-){WT$t!lOIQ@ji$<hwc7Vr%_@u?9W
z2fu44uj18nGSB<R44l|k@8F*uUaM3Duwdi**ukGF!I>RD*p0$ZX~SIaJkb6YN!{hR
ziuKO&Kj)#={pJ+gYXbH@B)Tf;{N!F|$W?-^tIld|YM#5Qxw(5qvG-zt--Go5);x--
z@HrHpJ8?e6`4gW*Q63cI2==wQLjY9IpDqocbj_pu2lewOP2;~%<E8&o$Gpc(B;uO=
zIPI_>Nc^|M-afpqTbp<c{<Dw$W*(*SB7VuADg215@(Z3nS^K)RwePTfMxOh)u^%Uo
z`?b!8>eqdVF!yykNA`6)N90{~nKob-_5WiIyGpzF@9Rdqh#%XtvmMfL?;wrBkI$c?
z@Y`>mKk5FL_z@c7ntA@j_BZIMV4pYL{>**d*uJ=r8}}z6&v>MfeSeZU2czxbh{7)^
zaU6eK?Jr{?Fw^V)VEhZ7Kk4zb@A*?<5cBy{NXxOW8^8ZZd`-<?3jh9NW^?Oh&1+U&
zS&E6>>QH*!WIovq{W7kLJwmNd-u*sBHy@^G{P(K7@mCa$N(#-iJKujWA6zHDXRu1Y
zb9&+LKPX4Nq}HQ7>f7IcP>y;Vv>xqI&;I^{a@1?ldbCG9`}+^dQLj?#(H`}N4hWZz
za@6y+9_?lH!ry;Tj(WQ^zO+X@&-<jj{Vqy>PeVECwQD`vqu$T~VLi%GZ=KeoJ?h=j
zFRVv7>czDl?Pc`B<)a++hG;$7qu$T~-wkfc(NC62Amyk>Ioc!NIxwS$?<v?WxE_16
zZYPu{9(KJ$y3nUQ^%Gj3cB#Kd<4e2Lr#$r+u$^j3TsK7MQ=a-|T90;#Z&dy%PyIcI
ztM*B|)K5mFPkHJmwLb0c()h6)cKIn!{S8{5cBxN4+WM5Iev8(pUFx$Owm#*lU#azJ
zm-RJDpYqiAwLa}qpZT!Ur#$s{y;u34cGqeDMfsod)Nj}Nv`hUc|5Kj&>$E=YQlI6p
z^G|u|$F)A~vi(KjM|tWG(fYJY{iys?p8C5vzG*u{wEv>o59O)P@sW0^zbB&pQ=a<t
z5A9N)<zPJ8Kc3fc9Oiqk#Q%iHWBQHyv}flBdkD4;RO^MlBRwO&=Qy|ckrIsGt~s{<
zTm3zUrtu%E`|{)qj^``PbQX&8;Cl|*;r&M9hc0{8_Z+o_ea|tsSY;&t?>Wvb9xC3*
zwl5m}_ciey{AV9ZTirF<alL^je#DFTu|5!2Ro3wL95Ra5dEQ0Ad#`+aF<cAX?(nlj
zIlt%FP%^^XAo8xd40FJ*LQbrgd%$5=Y4`r`IfxhWgKuyU*MJGW=h(14xRyWvN)2rM
zzf^O8Uq0V+ROt4X4L{?(rF_p(S-hbHXEc8J7Ki<p3qPgJ9Cx3#|JT=peY2C_Q?&aQ
zyJrFIZ<m;0zQ##kioQE4e`ijg6JL1l84EAJcvb7#m8%zaC-syZ&?oJVt$cM^UY3vL
zr9S;Yp5<NLvUp|l!b_X4>_(B_$#OFPDDNI&IPShC*T6T|vG2d9KUjX5?BGsi$@hC5
z&UZNfN&Zehm(b5Ac;CYL_bxr3<Gjf9-%+~%Pe}iSbw5J~tPOf9*O=iypwdax=k@&O
zd#?G4nTq?G<EO9fu>Xxe=df4nH!3T7-Ot9teuoI<#1YJYUiyyMO4fO#oxW$q?<^0M
z-yp&n-Twym&<Bgh;6M9N+P#1NL%fJz;u(b>aaDf7I-f_kXM6<yH#;(X_A9RYdCJ`Z
zIM$8)(%W8yGa5hC3D*A=4*d3)_Z`HG_$76FCaxO4dUM@RDz#94Cwp)(|H+P=isibW
z4?6rT5)S+-z4MB3M&rkHF@KH5ulKL}Azs9fej%=&_f=_UUzPTD^LE5Nc*Ey*%GvnR
zk3X_Q&W6LJ9pJqY-VGBU_LqELOkTyS_ruxO{R|y&UNO$>_+@K<N}HwWeH7#0BI%zv
zp7xe?KQ>Z)=c&R`cd{RRJCt7a^ER#f;k=3SC|}Q`IKOJw^QLv0@_8EPQ!K@uGT}r$
zzCr3b_t$Sb@SDPUMb3Ftk=|dQG^xkSryTPhCX$7w=TX`Y`+@j(UG}W~^}QFu^QtWA
zAnIfK#a1wn^3GH9s5E82pw^9uTVx*9cHq$9jP3{Mzo_-ouz;Drd+5)R;dena@grWu
zFR@eC3yrHPinYIfckpYwSm8(NoCoKRU)28k3cudJzdrFIe#z|$KjNzJ3-7NVte@Ui
zx)X8c`st6O_i!AXM@7Ut=TX<lJnEV(<1pIa59CDu<=UTJX=5IhIeJrDWcwpt#Lw6L
zF>%e5e(zkl#uDTNV-Lq47k;k$nBIsV@gjaiiMW#ATQmwkj(=!>uJ0Gx4!k>}H`rSx
z$)2vC?Bf3VTJN`F9`)0;zy5cQyr9-jJ!*gbYS|xuyzGg;MfSmm&S|n&{*|&n{&BJ=
zKKL=RZ~pzVSN?Hoe|*m?pEXH#(SQ7^S8jO<`{GuK{tVH1ZjRbt{}izW{jV7N>mMz)
zw0_%1zI18b4^Dnz+b>V^>Y)Fy?5}^=mmc2wyzH+pdDwdBv72I#){c%HA^Yn~9%`yy
zzirF8FHf&MOZL|n8y&+xbL*rJZX5p1x-GZVNgnF{I_mbCWk;38ZfhC7W%;mwOc*ux
zkKZ13S9A3*zjAHO|85!i*kMB}cYg2-n;K$kk~?;J@$DP_r=s!Y)th!qo|bI*RZ+Yi
zc~B=x+js0Q9yqV2B3AX}OC4`M^VyCAUw^fu^z~b%KC0s%KVLGn?YBRx_8zVIws**-
z)d<CXr+r-g+(R|>FU32i9JRY+Q~Zpr4v}D;RItCkzK<z<e|<Yu&y#P6YWAJZuE>*V
zk$-EDP1T;%Z!TZe*g5B3Ui<40l9x6vUpnmd1@(ELH+vx4{`z*ggYlc=8NM^*$*{Mp
zP1Wj@Wp#dSI8z*3K_La|kxD=IYz^~<@QW_G2=RFxxE~3=OViJz_<V}%j``e*@Ar~=
zofV%`@wt_m*am%nhyMD=Bjx+5ep#MR#p|BkDGv2Djo0Y+ixuH@R;K-I*Sx=?9nQ}a
z(_Hp$ljqbp^n1S2&*;8Z^C~j(FUpA{cs^BIF1qrbkJOkC;kzagmFH7;^cxzS(a)z~
z4|b!TPr<_e@O+AR5x?YAT`zR~fS<fJ_#DT+hac{*?sH5o6n+EbTeseMu>BD);^$9M
z_z_oC`g5fHUAQCT3E}ngDSTh_1050Z{K<PEYdreMwiwnqsqYH$ox~61*%Z#~?GJXp
zC^D}5W2GH_KBcqKD+uu;Uc@i1`(xs|w+kEfd;@(a&M5p`&!_fwS$Z;k;zzuQAJZVN
zia%Z2-(;ixt!iZZ+g9Rv-;)#XWG|DpFj#0(cpQ9B`?TiW?NhZse21^wpR6-XmRwVe
zGrIku&1b_;X(JcC^8kJ=QZ&wo-Xn9PeCC@n%?gf$USChDgVSVzjwcl;LI={vcQe#K
zC?frJ&+Yjh=55l{f+O*Kbuf>EzAqt+_qBez5s!DY<e`l6t!!PrY|XOP72b>YJO~?*
zq0LS*vOo|rr4qq%42Z}lbaD7kYzo$sLN8d?ufMC~d{;?{9M`v5?_v3U!Vn!!d9F)G
zTflr5`%s@-d=-l1TnnAJUyp;NlN6tvpeXI;OHm%I>rZGqZ0}BcZ8tY4yL!IVopt@*
zm&KOMchgk0ci7L&ck^G@A2r|IU)J>#FXBi1iL2tReW(Nc9@>GpMyUg52DMJ=pr*7z
z%I`83I^z|7H>BrFhe&^YZt<cbobI{|yJr1&&6kumbI|)J+F!5_wQkR^OA(#!wTdp?
z#JlS7xes*@=X#NMs92PaQys#{h;qct*$jYxWvQ^o^tlhUd`jiv9AxZ6jd?qH>_d%s
zjAcNC`vZ;Cd_eS{cXA(U%$-m_I38hsWb(*Ti8Uyj^@-oZ`|WDH7$uQrJoK|2b7r5h
z_{!F`YrL`L<>Rvnb|LPDF6dCDOwUW!9jd>7*L2q*ich?(${YVpu5q#`^gVpysIYu#
z$Ef4~-^ZA0hN7O83d?-(JLNrtRQef7UJVH@s7E>KCAA*yQ7d&&SdVhl+o1Jmk9wXr
zEodZ6k8;#&(R#E;z0^TrJ<3t9QtQzk^&0#kQm-=Kr&Er4zSg6?jNY^ZOg+j`Z<ofE
z_A+{(m0>HB9_6UluJve-dZ~jx8+4`g3+1TC`b2xw^SqA)m(-&i^(aSs<Qx2tr2T@v
zC9d<u?@Nbhp7QjMT@R2h^eIpM-R}w4f9mhi{-#~(Q=a;pwLb0A&&ddV%2Pj~^=X&-
z8zS^6PyGd2pLU5C%VFoA^3*TW`m{@Z=EK&fJoWbsRQ{vgT^f(5{8OI#Nv%)2)ZY_P
ze#%pSgVv{A>a!en{wYuW7OhXatbbAUhw{{~)cUkb{bWS`DNlW0>(lN!?Y}7hQ=a<l
zuW6V1QTS7y`t%R&QlI5uJnBF0<2WwxJ}&v&aDUHq>3`zU2~W9cP08SlXZfFz9tGcL
zZz;Mu{e8AyG@=9dyFC2g=<l;h$E$P`W5elFKKZ2?!Ts@quPDlJnnZbUALna3ybp+%
zyX<|gLF?Bm`l7|tx|@DWCwdH``8#{0o!(pE_x83Fl?G?@eL$o3-x~29{AVAqfc_mx
zFD=4540ZS&M+JWMN5_Kub5h24mF~W~U41`#m!i4sl$~@|fKM(tJAT(@g(vYNUc`^}
zfw(IDLGnGzfjcv{z|S-IOpNR5cpdmbho2=1@BXac+dIKKuLNgy{4N#@QU6yv>_WRp
zp8S<~gS-*mH_|gy|JxeB6EuFBCO)Uuos;S;=S_T#+wME_!*6#N@!Rmt41TDb%<rjk
zt(!?G&wkyU|1$f5S+mccHGTHn)27c^IBV|06^k!lcJX37$6B~#@v4ww1anqeqqIIh
zjn0OC_pemy1PLA{sE|Sm_dkUmzQ&Jwtk<l^tk;ZZeOLUm4YIO0U61>F&o=nFUQZEc
z)@z5ptZPqy&2ulX+clr9UWdP1-%xa32~J5p#T<oci_x#U>NT`=vfhj$qh4=S^*V8s
zs@I9q89{#%|E#Ll@ejMccaWVHlInYPU(;}I<o-g}XaA1;>UB#=*ZQR)PloF?^UZqg
ze@2yq`SWL~@{$kN>!qzL)-<nM!^k{nL%|xIjs8fU^KKAuPLU{5NQJ-g>8$4pA%2WQ
zy+#A4ALy6le`tI)&i?ufLhb$R`qQU3%tc$*K3Ukh<dWv4g}8=U=ra9s4!=m1&-?I4
zsCrEW`h|X=U*fkYztCTPb(CM$tXjNc^+m0#E~Cl3=-e)8WlZBa%8Y-fQr8NmF*!j?
z<;21I!uM7POWdl;Ly9o-@O`&mC{MqbI=J?yM){?wdHI^f3k&s5BeY7p?j6%F$RGTo
zj(*<2^eE1-+%$2L+b^si^oxJ9@-OR=UlHY(Rn5zT5wozZ8E1D%D^ouB<wRXy5Ni76
z5bYPp<a_vo-F~4T=$GWDbpOKkG%?CAOIw#OmySi|5`}oCp-WnsQliZLa`;6)0m=JF
z^mF@#exP3xH|qXH*BgIalwX#uSiNTPilxg|T%30%MDVmOX=PG?UtX4Z7V8Nqo>#NJ
zu%F3jMPDWQsd)t@*zeL0^h^8(-Hvp<@kdAb<+9db-nnw|nwA18%$b2!>8!%Em}^gV
z7V*68Is8({Jk%fW_6z+$zxbb2exbko<D&d>`Lfl^mMmMoY|WLKT<5-;*CnltUHIh-
zIsEdTjCjtg#7S<y&=2%W@_OCB=z8Oy80D9yWvf>%UtEw=B$xA+HD9r^b=8{E#xAJ`
z^`$L`U+_jK-y<>B?HBrieo1^n_b<BM_{T)~W%;rd&5KtRI-xs5v`Xs=R!bKX^<`lW
zzu-MszDHu3+b{G3{Sv=U_b<BM_`{?8vUKh0HLaH|T)C=sWdZ$5L!ebUOSGC-tyxy^
z2F&nFO@v=Kf8qUOKEC1o9A(+>(hu~Df35CcbiJWG>70h?XHCa#!0M&VE1DUaKb_Mx
zwR8gT%S^csz&LcNT$82+<RU%QGXo>8{ib=Jy3Uvn(l7J_{gV8+?q77hvCXCZvUbI?
zLfa5*ohxbuR4+UEpnn;u{ennyoR)<t!C@3r1!Vc_uX6i^exP3x>vjL4>y2$P?U$7;
zSFT>RwBRDnTqO^R3LC;gSwMX`z~Ps}@xEO<#PQfKWW!_<7rXsJKhQ79kE-V+^p|M^
z*J;1VmT@wrTe!NpF!<jesFltsP%WJe_~n&|`7Zq;9?JVj%y#>QexP3xA5ngxzw89k
zep$S>X<4fso13renp)a0{IVm5U(%~K(pu3M{-6Kv->&|JexP6YT#f#+EvEglYT3oh
zniei;ZMt&d6|Jk5H`#&_{A{R|){9!{`~uX{*5H>-Is8({e*AvY?HBrieqjdaFY=^m
zzjSSw_IhHRUZ2A+va~GkBeAoyUv`N$pRaO1%Bbh8+>i3zzW*l6$MVvF^aFX8_g%mL
zrhcFLniMRb`AZ>vGkx{W(h_-RR+27D%c*mM_l&8_ioA_RMk-(XU9g^d_kHmo9`i4}
z-{$*lzTfus`)$7W=6h|vpWmS0^YcA7li>T=&&eQPB^@``DQ_wIO7J;0zNPSw4!_?{
zd|AKG)-*Xr@&0Jn`)FCut>0@`-k<&bHtp~|lG9$>e>UiR*DKnM_uF2D*upwxQhS|p
zVehwxi|^n+`-ptMJzV)U@m_U5Mr!L9%EvdT_eY7_^Lvlf-qrU=U&y>i3f3oR{D~j)
zO<V)M?RxR~hqp7%^8~-P9Xr6kA?Ls4e6O5$%ZX!-o`3TBJl7|D!r1{R{O$~`Q{GZ^
zeGyJ&&-K@=|HGX4U7y~XU}+KFR;t4vq44uZDEvqn-&NXjS5wf={oC@xZ+E}0y$3AY
zn87btr>xs^Z&{~YHhpBUeuOmf!WV=0wBG9G(m6}lE??P|n@|U+YMpXALLS}8$Rq2N
zlamxK=&$j7hUs&iGR7yIx9WUBuGZkOP8soKa$>~eI^}?qUkKtlVHI2CCI0#aRlY!4
z;;&WxF~<vz4;(MJUY6qs*O75O71vjBofOjHQLop7d{_eT`=SkgQ!tJN<HaN4_r?B~
z^!T7@{AA6a;2tj$dYst&K=$#1cG%w}PIB2>)~NHW#*6ZP(?dK96hTo=9Km|1m$r&6
z881jXt%t&Q+zozda7M4Efj!v0Kq&lYAF#mnP<I7;4k`)%A-(RPRF4;$+WLj^@z1G#
zrtGtM_BRJ~t-nd!o9S;bUJx(hmpoD7M_g4o@cW|Xe$C(~8skT}v`=f6;|2LKVKL3A
z@d6O5?+}ae9ipr$z!|x0By9=nq0UcpnG3a&O)Tn}9S02m8{u}5(Rg=Vp+5nB#Eba(
zx;+!uy<MuP?|{+v*ndUi*H8Lhg<KlH2YVNO#EbY5FXEc{ebL)=dmHpr@cW`(BH$~;
zj}3C-os2Zf;9!5r_cY`g525V8FWSHj_Omv?Z1}+fF}v%)$tq*=*MIo!!7r)jYi0l8
z?mv^C35T~I)V2PT1ws1@eqU6Nryr8Svb>aW(L&xqyY%0wFms;scBIL7LLr~cKCq<t
zW8u^|Z{j?O^Cn7hKE?S`Qr}<mew*_r%7dcbepD##6LC|~;CEn(7kuUB4-4OC`%kFn
zz@+ix)c9zBw*-A0{@2v_y6Ztj<8LW>mXrN9?XcY^N*(j2+G~4m-n8h`YTiWJY2JkU
z?EL3VQTN%A^QOW2KJ8F_pQfquTG#)!+^X93?wiByJIZ3Ri|u~HJ=VNQ<3;?EN9%c$
zt{*}A>F>F{?$3LJ-#C$ZFKH+I3Y+)-Q);~HK3n0Z_Gjk27j@S^QsY;o@zXTQ&-sRz
zY24aBl^=eIBf8dax8EJck9ZM3e}rz=p?3J`dav!rJ2GVve%mcO!B3Mjt|M+2U*fn&
z5s!Tv<3FO~bu>v#E^5Q;rBCxd+7GA1$TPpF19s7W{hz}ww2P!CE0OrA!7sk4amgQ|
z@$)r)q*v?yP1C3}qr!LJsBlZ(kRN`@W4nf*Z{UZ4*4O#9-@h=Qe%<`gy5M=IO`kuZ
z5eov=w6-o^y>PLt+`GJ)(z)qeXyq2mDluQ)znmr#_e=gsp-{;BD<<G;{K#`$VLfKO
zjt^7yn)O}D2lrfCsq3k}B;fy_yo2Ug#rRG7g7uo=5j3dRH(+e_`r|pG+|Q{yY1^);
zk1?6!va4RJ`?>J_0POikg~w~tW_Par52*g4?1PGS$5uYN#E*CpKh86VtFkpyrt-U=
zqTN&q{96IPMFNvLVgv;&%KPz%_yE6fzm)Wj7OO|YPRcTtCkt(P8YVSjptsRe-&hCu
z9pT0=d8J;LplP1Tq{Vihqi~CVGQWN)enPlk+OSjYpOZEiaS?wcGp?XtV!k8$rDI~>
z-id<i179cA%{_ZIdZty)O$Dzcn7(e!s<lncrL&tamX*k*i&r$2p4loL8_s->-$<Kh
zogl?iPp;p}*AC?T!L6b1Fj=ozk6Ev2ll7ha-l9>@DUcubOYZs7Ju=>^<E{fA!LS<~
z{!n+lW_(xa?z`1{iLwEI58g-Gc6KMi^}WTa*Z$7%e(ab_pnN!jd55}8{{?;<rBu}W
zt;C?buKn0A8+c4@T2Ws_?Z@7K`Bht2Kl7LBsXsoY1ESxZJ-1`~T|>A2zIZzNAFuyc
z#%y`)$<tyt-8LfN5r$*&t5ddNyebj>ouV^P<Pg3>Y;6<$M@0vGrP%!+v2}~mZ#&@X
ze|D@p{LtF6S6-3$w%Fyr|N7PmM{cM&`X{H<NFHh~T=kibKOMbo>#HTxk%z6He5Q5F
z;0OK@JOB0(TO|)$VH3xf@2jkpJk;(!bK=(3zaG-@@7wo$>-8U<GVy+Idi6~|U)NE+
zU{ej`z8L#X-OD%qdi#%l@W}S-Q!}^!`;{F}6(8_o{jIk@Tz`w#c|Z22N50fi`r??H
zg)fx{{&;x$6&)X*x3S~4_PYXmL;w5UZ(a18|ExLVxW@w?Y2ctgM&3Vc>wCWc)0&yT
zDTj@kkAL%lj@Y!BTbu5`3pP4_S^VO+esS%>Sk>{5cZiK34d}BxxZWR*Yaf3ws2^ro
z^9@t;BvZ4{>$cdGvETak?yJwLj{V<@9oM|lv=w!UR*t`V{8V0(reAvM0Q6Jm%bxC)
zvZwnSvZs5A?CH+_hdQ8Wx7hED&n<p0VJ<mS2iF-H%n{9_v@Y0>J>A2p`JE||xuz~@
zCZ;=AnY_UY_G9;bwdOkOe(WVBB?siSANyh0kG)uY*L>09waa_x#bkF1yq9$M_wtuF
zEnZr_q<qri=7|%V%9|=DPoA)}eBzX)O-;>H%9o5^+T2vpe9@#yQx=X}IH|mRot$GY
zS$XkZ0_*KbHrsyeR=?nB9&No1dhg(V?1QkkdbQq<-N={9i|VgygM2ABAsoLe5#Eno
zf)H-VLCSq_f3L)S>b|=0{k_g?l`l;T{5sB^7d!MuJD>o*UGL+yV1U}6r%coML5fej
zq{{36TG4E#vA#CkS7(z}aTu>k<&yc}K2Pg(zLb>t_wazB9_6SP*Lt)^&DMcoJ<3sU
zh}NS$>UmzBjHYT_Efq>R>g}e#to*hP4C_&jdYiQ#?I8^u!v-8KKFsX5MLFsvv>xp#
zE$G#S_V=P3^@uO+W%TCBeM}}j%2AJUv`4;m;Jn}|BycE`z%rdL?iaM@U{!x8&-~iB
zP@nSDPilSIrM`_1^(jyN4O*XeS#ILad{LkB)Nj%Hv`c*(FX~gC`juLrb`ue}QJ?bE
z_q9IlQlI&-^G|u|@6zp;c8P0L{wYuWcCAml)Q|E%<*C0;>(egvSq?k@l&3!XAKE2u
zQT2!N)Te#grQcYO7!Usk`&H?Fj_(<hR)0r5=AY%U{V`lV!furZyYG_(&XpE|{i@~`
z*9XrET+bT(m-K#BnkJ7_{cQYwx%*p|!K5fpus%fF;d2*%u*=?Zd47n4zpHUXW0+T5
z)L*U-#af*F_N$s(JXE}aU8Y>VfEoI4n)nU=vk#@Mo(kJ>y@4lw#EbZ`KCphMvhJ?)
z+Wvb-rrg4N*X_*k*{_D{=#w0NmMF}Pto^D+cxC-?X2-8m+5qZ*mBX&mR{K@y<a-q%
ze#DFTv5>?y;M)c^$__f)8JF5Ruu;Ao-3dOQeVHc9Ju8lE_=TV6R}`1^!x@d=6r=xg
z;it4!y1nr)@Y^E=W54{GT<0^VbyW3z%smIoH@F9PD$CZ(O60vv^Z|ba-@EAXkmDoo
z2Y7$LagpOJ=NTL)nF9Ow`Qk7<r^5FxbBkXM^5q&6{7q`yB2Bzk@yS81@r<cNQ?^gq
zVf%F2ORwYTf$=f@olCawUGg6vqxR+BU&cq`Mf`|3aaFvvFTaQR&8%R&bbasge%;Wy
zewp)|=V?4d@l2sD7XIF4Zt)9Jo3Y=yt1d&`tpBck`IUAkp<czH{o#8Tw&&jRy^9S}
z;#1#v8^3o69!VfcS?VhtsbgP$rqAzPP^WR;s`CXLZZ&v(?}B*T%VWgjI?%nnFF(g0
zjyD{Cf^5nk-ly@tkoSokhj`ycdC;MHev0u2?^%WoI7ObFxZAA%fL<p>dZ-$A;s<tb
z{PDFN_FwUV4ts4}2dc-PhsI4;<=}XvxTwD<CywC$jO#y1rSDSDN%^}lSO+?6z|i1y
z`$Ab${)-xaU;*_9{_Kqh=MTh-_$3A?{D^B%_O|=N_t)LQ&-<>7U9t`|O>O+J4m5xK
z21?y`jXw%MwGNc{^(HKdAMql7$%Aye4z<HY^<Hh=PWr*~gfG1};KxZIU)t`GE*Qr>
zilo<pR%o8_nk5PDuZ{aN`F)H^@9+I^W^aG6i~H+C(!&5v%KC>uJN!F{y%9g+Mf`kU
z;YVDRM}ju8HRGKOf1d<Csv~|P_aHbnDU!xdvr#0#55LQ#*E<S+==W6L7d8JwpUm;c
zg`d*Stan7>y%9g+Mf^CP5?AH)Pf7o|bVmjN@J#{#H(9&JaJfuhGYs@d?YNiCz|3`k
zpV9tgz3PynSAsLT{Z)!S&ZzdM@Kfs@nN)AYk9ZM3mX)}Y-&@pOBUEnK{@ml=;f`K)
zZ<Qi<y8b`!Pk(owTUx!x4A%8&z2Axw>Zfa6-~YRzzE+|_N7TB$#y5XZGvVRqIyT>P
z4%(GB<BDamTTY)*bNrYmf;DHG=6+zymyd0ZjjDbnw2tlSS8jO<^UxWh9~YfRL{8M(
zCW)<EMZaBiz&|N=PY_#Ulzv;=moBaQ`N=PAd+9W<4*HLO@37cgXWzB;nS0OKDtXvC
z@YqeU;~yFv8+^(W$V1Iduiv)irDMj{&Z~K)L-LSb2Uox4mO9Bp-ABr9ueo}7S?q6D
z58twN{kO+Y`e6T#*wr7euHAlH&DQnRk6k#Ta_8w^+|=-^E0Q}}`^C5a{tp$6KfZj^
zjvvR84QmhRysodi{^)LbfWiK7<hzE?C5L*`Js-8j>@|6)OSD<~bU#iJ85G=arWv`&
z)=!yon70P&`t*Hh-?~2R_?E%1SauP>fptiC-f>h7o-6mQ>kC}6->+-zTi56Ht?N@w
zq0`^=y1tF-{;}|NeY2ZaG&Qfn!oDe;tamTqQ{7M>qSxOf`>S<W8#LW~fa2pXs`4g(
zsc2MEm>U+dZzk<vyebuj`QUo8-F|po809@LygrX|)Z47}XpegKx<1NLFQN5lk9zjH
zKFU#Vf!3ov>e=i1C`Y|Atw(#*!@52k^b6&vw@2ecdl|j(Izq}(kNDCa^*rzL;7J72
zqa5`pM|<Rl4an%>T>$G1*HyLXd{UnI-L1>baHI=;%2U76s*lWfB0`_?)c3VM?NXol
zu+yhJ^>-bp>L2Yg-Q5xCQ=a<mTAy~A{^kgM%2R)x)~8+O+pgF2ALXeZ*ZQ=(NBbj6
zpYqfnqV;K)`ce6(JoR_8|Il`lI(_=V_CMvR&;EyYsZT%H`jn?W<7t=rEC=J^Kdf6|
zKgah*iC=~LJEqJ0Cp3<`Ej;<&7SDY!4_E8@vb;C?wO-e!X`-J>*DngE&-~`1C{M6&
zm$t*_F3Dn-y?u9GU(|b}{bt>Q#*6r|KCphMdVqC(uLaLJ)BK`M#(RkDwT0{Y-s^sn
z6+HKBQ_rnS)OY$Lyu%N`8GS#B`p<QJuIFY-yZ5i_BVNRhNQBzqHmvI#n!yXa#&5Vx
zs7}PBN{+9~Jt_|S_ZGRXFB^X0=hhX)haZ458b5Pgp9?>wt@6_w|DylgBL(wyfBc$U
zYZ$T?S6;=vD-OFXsXW*9aXjSs$om0~o19m0eC2q{anp1TpR2ExK<rC8Y`~Hr+Vzaf
zzgLfkn#ODNI*Tcans)QK=J-fEY@dl~4tv|CNc+Um1M4cdA1P_@OiDeM!oHSLe+qgp
zf4<}j{<Dw$WnBgFB7VuK3P0ki{DOT*GwY^hmM8o>v@dDOMkdT-et2FuDB#q4!OXs-
z4v}|t5ZfQ|B7VMZ&%||a7t+-iAy4Le`DpyY@8$P)S$Z;k;zzuQAJZVNnSDuDZdY-G
zo>Kdg-Wu@lm3iVYIkDg6Osx#x;y@S<@{C7V_I*i*4TwWXjwt*P$MMI7U&aC?d*1>4
zf_+K#c-prwX<-<1kF(G`YF6~Vq?{*l-o(^6pW=Lp&sF$*f%7NIgQDJEAr#LQ4wQ$j
z!v_3UFzs~J_4xET-^V^uX<DJj$8yI!$4n&Rn(aQW?XcY^Cb{el>$!Q;w(pBAS<gt?
z&3RMQbA|n8-lXv&e#r^CUT9n+;D5)0U3Hm>qyFQb)OBB~=1o|Sx}M^B-M6KM_wft1
zKjKCF{P7CEa67D(dG0P5Z+V<A{B1kI{YcJV>fmn#y@zHD@{8>8!E+(wxq`g+`K9+z
zKb+CyZcJXov;T78r?fF|${e9SHWU1=ydr+Yi}=NLe@t9e;bi@=_mG}9Aq2d_&s<L&
zg&)@wN5nhus}$^TM&n1PWBhU9r`jLZ6K7D%Tv7YoONk%xB7Q6paaH_Vjf!61c-UcA
zZ~bKAU$Lh@G<@qTmEVW&a~_x%;{YCo9=ZC@DEx*E=t^pZ=5FuF1HY9gXXZoykgViW
zKlx7Ee_&H+{baG|H$@g_LK?Znfy`TVAa~wzM@{@USH+-*YtU<kUQ^S4)8yFtHZOFR
zKp~$DLavt|H`UIbcK#=>tsd4kWXc^!7Ek%;zlO>ZiniE?&pNqcK;wT_ES^|j`O#y3
zT2XfD(-rsLzOi!Tg+nVBPuyNHW9Tm`eps`)LgXrO{rqJ&1~QPnaOvj){+lQKpyI8Q
zpRM@Gq0JQ|FT69jhAw15A-nW|){22gycF<|Z#eD2K(=n(`ZUEgbUu96{S|L4xHpi6
zy}ETpm54)nh=cx<fBjbwe|yWI$~&ffyJEEWmx{X%ezgL8!)aqB@AZ`z6(y#ezHIK)
zmmk<Z^?iRjwCXSM)2eQJa%R<>t!Gq~&759UcI0VQJAYGK_54>FgLA|=)2m+GQdf24
zr)#S=zSK~)^LzDGV?J72b;z^Rsy_U5yy}owrdAEPs=n&qpJ=GM^VnEb$8poD{<poZ
z>W!kRst??DcGc{*i>fv~ys~QCSFWmR`^zV)-nj4Ds&PNNyz0Hf7gk-dYi5=Bv}(?E
zhgTi?!}nHw{gA;`KYR43s;~d$$g1znKd$PH1;<p?|3_KXi-(V_diDNOs(!a=Y}MdD
zS60papNUmV&Kp(r`o^QGp1-?))k7oyXX-aU^Pf}aR4$*o^nf?9JihPf^FU4y^tJ!K
z_Mfwo^a=D@5A?PFzV_d1D|cVPa(bYz{r9#1oRy?cpw9z+9_aHxukrxDTWpKrQDF4*
z#^^$~{R~ekW&b?<5hFi8{-&C~v(E>8b)c^f^wojBI?z`K`szSm9q6kAeRZI(4)oQ5
zzB<rX2YPoMP<tWaxkBIB=YzgFuz%J8JPa)Od17eoYI<p+YzzP&g2##7)?7#M{81v(
z`zYP5zUwV~AEh}<S1nt)2Ky*sEp$&FH+92ULhpC7xmfKRlh8DIz4|?FU+<rk_?c@T
zj!eSvA=jK{LUUhXeQT+RF(2H&XMxUFXA9wdhA2n9GOb5@)VKFhq8#=1^i$=hJ?h!}
zC{d1jNv%hF)U)?dq8#-$Xg%7ap1qF}<*3)9^=L1n7v4vSa@4ETdbF3(!!MC#_HCjZ
z^?a>Id(>+k7}ld4^>&r$eTcL^^@a^NCTLQ`opRJ`*Lt)^z1D$YJ<3sUoz|m0>iw}K
zTwf?hy|~t+y^LPipOmBC5Uodh)bqSIgG-i=a@5<c+ZXLo?~f&6J<3s!?UVMXCp*!K
zKQq5?Njd6Kj`qm^u_U91eXQ8-xew6-olnXqHI8=sKsljLdFq#0{R!*c9;-f3pYqh-
zQ>5FYw!`{IJIojLDNp^R)~8+8>!|c8PyG#ApLVIweAwwzp873XpLUsV`q9>>JoPKJ
zKJEJ2Z&CV`r@pWCX_xvf5&ow<^>=x?{c1bAbbY5E?EF)n`t4eucBvm#e<)A=U2SUo
zp<U{;9G%kF^3<<fuk>k`?b{v~Sbr!_{S8{5`JjH3|0z%XvX86uX?LCWpFK`6eacfm
zq4jB(`m9HG`6*BR-CCb^sn2rQ`jn@B{2G;i+GT$g<v+?(zg_Fo?vRLnmgT2B^;>RI
z>C-OtnGZYvl&5~>wHklsBck7B`jn@B`=^vX?e5n4QTS1w`f;sKyX=>VgPniMQ=juM
z+ND1IVCz$!`i!St>a!e-NBOaj9Orrb-aGz_@O+Q;p6zd!#?x-k=00*q%gChmksDBg
z`Jw9@FaJfokDR87vFf`}f3)lSZ00(eqCCMqa@r2RcT0|O+1q#bkvl+q2mjf}ezT99
z#*6r|KCpf$zc}`htDUyf_E{9qedOL!OHFLC;CoYhAGtpjkMRB^@~*lJ1Li(*{T%oy
z?fqaMIo*DVADtU&hmL*ZQZa>}xsTk@8lR|r<g(#seD5v4e^OEWr(&GZ_?i32x$slk
zEKTpD=s$yf<aB@hniLUzcdjG2iOeOm55(JL$#)+)j)xo{6F=AcyXog6EqY$f`Pm-L
z+w*0PkJaKZ?1!R$AGRNUrq9`@_;=}aG>xCE_f0s-HJ;^mFvmyQVf#$D?DhRVY;K3X
z!xF@gco9ElgSaZ*_4}}w>_D9B_hI>au=t%!9OVC?SnIEP25<j9?5n}A9lPr?44C!b
zwI2h1E4eoxz%TfHSlymqm%`e8lB@iVsf0^xp9%B#^6$ekef#%e2U))lOMYMfeOQh+
z9DkDkt;Pk8OS~`V{W0$o?fZRHkT;|<VIRjo%GqD`N&aKWFM>Mgn$yO$zetlOs&U6Z
zp?l*G?XdrH+bgX{e$)GydLtUcyyBw%uGaI$;P+v-4HsSP$E9idJu-hE7W<g4DIOY}
z(ft?Fg8$$<oc5vilfmD7TD7gc@ADjgh!^o=&WUTl*IuphI!e(t^5-@D4nEYK+Rv$M
zQTQ2$J6?@HfVfCzQ9=bj)MT8w@nijmee+P-W=QY427cvIB(`Uaw)xal=_Z1spQf;b
z=SJ*@*f06IUt)j7=S7?!b3V-HN7`I^UQjBSS4kpjUW~gyH<pPzRsTmCKTgk!OS{)E
z(GKf%!f6k`(}{z>Q+<T4=j2sv)L+i4f_|y(8nGq)5~;Ia!c!mh<j2)VBOT7GjuYR(
zfA+DzJU1d<#E*U;u8N=D;I(~e2jk=i<^{j?0snsKNapHsBe*FOA>w7viy5D>gDcf9
z-5~dN*dJSVg_Y+HbBl|MaJuU<w1^+-|FKT|pxt{9&WqWed+WS7dE+-i`*HOYqKiEA
z&{FBtai|Q3QmtpsW&r#<NEoKidGQw{4Cf0vUxAz~h9Qr6G2(GxPGjyT20n3}>W9<u
z*M|AT`md+U8|Yte#sBpSq4*#n{l}g|xp@DH%>HJ9eJlN3_7VlA-}0Ssc@hI24CUW1
z3iF9c?cw;*VLnkB=KaB8J~1H7`$b_svGyxr`<I6K#G)|o&kOU3_lJ4EF3cw$3-kU1
zVLq`j%=@>6`NWN3-d`W)6O+QcKRV1OO2fQAILs#ogn7Rx%qJfEa@ao)g!#nAFz??M
z<`XxDd4GMFPfQB){^&5DC=K)e;4q&U5a#`&FrRqrOIH5Fd}3pm_iqdHi5tVbzdp<-
zCWU!_beK<+hIxN*m`@A{^L|m7PdxTTEB|3Wu`$g1w}tt{jbYwjALbL2!n{8^%qL32
zygxY1CkBLhzbMQn*4`J+|D|C*u_(;@^TK@M{bAm(3-gJ;TK(5+VLtIvnD>7g<`d6^
zdH<;}A1_tEpN&;e=pV`B{>S7`vUv2HL4VrC{#CZD4B4l>Li=0)$?$mLKWg#qVLox6
z#p~a_OsB8cZ>IU%E&0!edH+_6zbVYe@B3P~eryW!iF?C*{GKrH-yP<YpAYkiJHveZ
zjxg_U2=mF?!o2^$nhxxz&hq-!_~={Xv63|8E&L0`&$egtc776H3;Q>@(JD`l{Mh#F
z^z!9T2n4m`<QhEMgL#;|9pBSD(tRh>%awoL|MPyI_y6%-3O_y<;Pc0Idc6qWk0q^j
zXm84W4}aeR@5K(1o2@bZPYEWpu6thp+N+;My(Uc_t?&Pj>fZf7?ePB5AK|dq_KOBp
z5A^+h+wU4fyka8%j@A!T)N{#vekWi||DocIp<>bH3nWDUMg2~I(l%>QWcJ>b5vY$?
z_d~phUwoLtkGQJBwbd!w1NhYfdwG6C>U@5aKYkdOPjMii@Eah{6nf`D{D>FvOX&7Y
zT=#bAquL+(E}UZ}gRb|Qs^#_m-&Z1D#E*Cp*MJXx6Gg7%{lHysUDxoP8Q*VQIr+)D
zGghqC{V28El>O(Pex2hF{@L-<JnyQ&j=UFufV>wN)Bo@NaOUnmqwrJOozv?rA!vUa
zq;uhT`cElXc(&s%DW8eDV-LYoC^_6uO5Hkrp}o}uvwE;#oPTn@$@wS0Q{%jp>z%o7
zoAXevhc>f>_l+~<#QYOA_Kzk12%3Pa&-cHm<`tyLBlSFEkYm1RCK7SY@sD=cfBJ)6
z_RbCZxAgm`^n2C(-aqlZYB2v?^l7mr^B2-i^Or+{_o_q18`<WcC>HES%|Dg)elY*k
zcoDz&`*gj~^+Unm)SxKmpL{Rg1^fc+@%|7tgm%JDy%*0HzkyQsUGo=(AAYAQbC}ne
z(0At*+aK{Feu?)g{KD-Jziag14wkei_?@Gd1K#|dqwi=3-J=Eh8+`noBgWH?rop;%
zW8JcRS6k_Qw+LtS{Dn5qe;pFsH8Vs})$)4(?;H^?;+NF@F>zJinAqSgx@Tv`L&qz=
z?dBc#N#LV8;wR!u9GevJh#z^z>u8byzk>y<B6%l=&&&@Li$5*7PtIuk(06kDiN-H{
z|Ii!TAMql7bSiNrzqhDsF2KAHKX?E6(z^;Se~)@^z_R6{=s!0~9j4xIMF9mK{`AA4
z{TE>8=kK3d3u+$iUfWg~yW~{I<v+V`3$7a9{6Woxho9@%e9t+7of%gwi`{bijGE)e
zJkf#pO>;l6<;%x5$3|7ZQUl)GHem9l-}&FISG{t}Qy2?ph<;pj9uYZ-ZJQ*vZWaA@
z(E<OY*gZjPjZyk-U$}T--S+c$Zu`+K!|I^_`1cNrJ^YQ&ZGGn6bGAwzwhlaYQ|yg1
z2E_)S@&xiwbJOd$ZJFOOvUXn0D;<)Dj+ckjPyTB2!`te%+)^ibs2fvud(GToWwBE}
zHasZLcjpc4xW6`0U4Pl#H6ML>`eX4M$L?Hz$sG-UJN$ole62XXedqkKjj3sO>^Sk4
ze{T5ClDLdB-0K8|>w-U&ns@9ETLXWfJQWu&-@5AlOnDyu-ODw1Ps)@h`9MkSuDB|X
zR`-s1V0oR`5TEQH$F+|?7}PhjwE2c9%uLNfuiIkh*HpwRpM0s~jb}dFQS$n$9al?T
zqLqpFd~538f7KAX?gv{s?mqSBL7TDfu(S13v;&HEi~Akk$NXNxicEos>x>NQr+Jjt
zJ@@PxHN|@DL=473_d#7!w^X5_nY=->$m{3%{;h!#)t<~}M278>l9B_C92D#XlgUr9
ze&Q-+s=o7%qiV3C>#%V$n<_Rm`!4rO50p18URu7SeA43Pi4&X3n<^(yp0Koh;*_OL
zP0drvmyBQ9+*Hwg(WFUJ7LHpusl0rhoMSIpd2z3DRZQAN`plFpXg^lJ;AtLlZP2Oa
z$uTb6ZZp=pdsQ17<URN7v(=vWQmxoB@}=^k(ytBjrPBKU?7a(s9YvKs-g$t{`=QHA
zcA1E-vx*Q1(X7ba$%AlNd|-lri%N!M!ptUQvNMT*x^nT^!cXyugk2Dc>yG030MWo=
zCL|FqLKIykxU4Sg;xZ~Ce_d8!mHg{eov*vPy8GU~eW$}P_jGcns=H5}Q~iC_Ri~?}
ztLeB$X_QX^8IO+f&zv{1>3^wSrTNk5k3#<xq|tAM_chQ@g?=f#zX5p)$-jJDg{P?S
zVD(_}*o?DuEtFQ*`y0$SY#1J3o@1-~rS&J-R?_2mKK5A;{PT2uhb=T(CZK;qjS-mf
zwTbE9I7VSd__<rB^iP2=@CO{gtKQd`Q|u4Q|5VScm!f~_fJOFu8z*J7fmBXuOFwV!
zCrWC+xAB_kkIi_EI+#|LwKDYw<^ScW{88$uyV3ne>nv42VAds}+2CpQC5{d3c=B${
z`yo^){Y(|w$01ASE>=6JD`>F}oTIc^n_faso!mb|0C`2&)6>(HA=(j#*Iu%2U}#PD
zrM^jlPQP%iL7toTvYdQC^U@_tm#<%K)*3tk2PY`}NE>?Umz%OXeuW92<TZY-=HvDI
zO`BEyQ8WiE%UnBa4I&>{BW-}~CvC;oj)NT1ofDYrfIg&m*BXQz(v5z|q=P=BbJrS#
z9MWCP>7Wnk+_eTFhjjD!`k)W#+_eTFhjg2mC+LgP#n;Az9MXYb=!?>wMOBcli@H<@
zIi#a=v_YTQ^Sq(`qI6UTqTFDuqfH+(ctRfeb@4?V3VEcje>7emfs>nmq=!7x2Olx%
zp%?bu>p*(QBmKo!n)J{MyIJWWkMvLST367E`~zR$0{f6h`gy$8C-efhtn`padY{un
zFY=w09`Z>4B&Ua7lyCRG3iHqMNWY2iL+Azmz|p;a$RqvLe19Mxu%DG4@<<Q;&<p!%
z`Pc7Eay^G<0-yJx2kBiL!3*T@&KS)Zdy~4e%vxIuW>VXo=12KI;kC9n4EEu%Ex)~I
z0_cHHS>G#7-{f6ui&iov{M@Zm-kAhn;Lqps0A39)<7$lgSKA_t)V}xr?a_YY*pYnt
zr71Y8Q}kTjTT|VHs;_W{@+;LllYi=U&!k^^StfN<{^zM5mH)JNUQOx_SZj;<0)K=J
zZQxb!=(V<vi}=#}hCh3)tw;DNDr>E+M*LZ0)_Se2?wPNe-iSYYt*tcvOlqC`Dfx%m
zvnSP+p<e!#ic{U)Y)ij|nx)#E=l567g!?D1CGT2WXb;go;&}ki2WS`3K4<wmXdlm3
zfYBHS_1)9@LYeL3RorLBVRcW_js-K*+Oy_(62CMj9eQwors|WmwweRFn<c;>_yT{(
z26#35X=`nrq1(%}wYE;@8y)j!vBtpnpgb0uJ~MZ%t@~7IzE8=e`FfPxF8^tB5=`ot
zp((XP{OPr}_<o+MYYGHdQ(&aO%k=zA42{b?wTyrlPA1D-Qvmj{rT~>``hC<|Q-H=_
zu|L_@+CqDS_D5x1Z)lhBT<1O~;<*j-6x#2!(HQ*;_tEdPO-s9H{cBA-gRnlG_b+K}
zE)MLY{(>IVU;ea|_N?}2i%dEmv-#@rr^NQ5G$W+zq%HrP;ur37ghHd)oMO_OHK*95
z?tnSP%oq5pzT1=s@T!5YT{Ut1d3P#Z_4!^Hn)Zk6(3&>Nol<kc^YfQAr`Yh<0dtC(
zFYp(<%kUS!57nIFuC3cOm--Lwe@5>gr}pRZ3B2=^HK!QoBRx8%pReDes`6+~>OAkM
zne@x{A1EcwRi@|bv^l9JHO(oGHg;>G1JB_Y>QC?m{_5{A{NX+{m#FWNvFLK6{f+8i
zvpL04y40BF?{d>W!gGqL-ZOPyT3bR|sP07jlg6J(-2roonJ@6?b9)M24dU|_s*#5~
zBJ{h|{uaIe`&|*jD!MC@iDIAO=%LXeJEr-2kGfI#{!{%U*L#QQU-tb+_dNZw?mxqy
zuV&Zn7uuSN_aFEIf4ErOhuD9%!t@eha)bLX?fFZMzo{DexwHBI)0!Vj^{1W_&gp)p
zE|tn>+MMwJy?jBhIu+Zp=7c|R^II$9@142%my3U|=X|SMvgd!_-{13_mz*_53jU{Z
z_RYUqd{O0B?|q*>{|~eGI^l``dj6c%UwUK<&F7-@lt#sGR^qislrBn7X=tDHKCW~<
zYSPy}bk}*k7u|cumQOwK8+E=`x$B7ymAfyvd-HMC-%}nozwoZ(D=%DqY{h@+SrwIs
z$_?-M)Xh)+;-uaU?|a{7m50rrxxD9u{qB5d&bRk^q*vvkch+Z*s%%-ZsprnxAvf=N
z_!YPO<osj5_0S%lKKZblZ|M2s=|360`A5fYd&A(T7ykM3f7$v1H7ERuzdm;1^j%kN
zyXrq~TX00mobYz>pzFE$rVnlY_|oWl_O3nF^Yhu!^(?!@>%IB%=z4DY(uO(TeB*!W
z>rt3>#FlsdcbXiPoAyAeRX+KOMU`d2A!9E)d)DSRE?lyi$`W*T-8J*o$_AC^6V<Oq
z$J?G0&d;NdkS<c#WQ%0nYn_a9!uR#f<usiWeqf$C;RhZ+UC#+$)W5QC{pxj1kea%u
zJN^34?;9Che%|rkMQe`jzj)Z|$T{JruG7yyR-LEo1Z!X41A70O4I3)-!+dZGp(CnO
zChneDpuDbUV@`NDuaDQ5D=@Ebpl=0zL3sA;ITHtm)^ueX`p)5bVpYs*<M}z`pEUED
zf*<m{zV9`j*GF8pGp`T%z<jc9XI@xziSc=TkVCq0p3en+NaxP$gB;TNJdX_ekj|ag
z2RWqce!sy9`jF0@*9SSIJBQOjAJVz=`XGmN0jGn$C|!JBALNj3fajS(Uz9GIpVy@h
zLJsM!#{4w4i*)w9K1v5Uq^ol}=tDZsJ3~!>j=p&dIi%afcAyXGKDEzwJ-dOPOS;rS
z$RXW0r-MGE+jn}ryg)8Y$MesiFG?53bDZUn4)+W6Md{+#2RWpJ9Q0xTh5MWlULVbq
z9B}5zJ-~CvA>WO1;M^yK52c4Z=DA(W>7f_pz%74B4|$}Y$Mb!m7xn|ETp&H<k>3A=
zxlf=M_OsGM9_hQeK7wA9tE~J(9_a&454}k5-tWji<dOayu2-NJ>9g_=d8FUO>7f_p
z&8??kAM!|l7|%0>Uf>TsC>KZ%d8F^gJXa3KnK!rILVCy}eVzG-UhoG!u6@Xd>6w4%
z#r>Ui{dJZ{`T^dDUZl^;Kje|V`f;A8%X*M+_ddk+Lmue^zR#c+xM!t@Jkk$v`vSdT
z{<&Up@q;|lk23$z3;a>PxalE}^y6Iqp%>*RD?Q|q9{Qmd*PWJrlM;sCfN|LRzsCIs
z*blfI;(l`PN6dque$-s^WdEJ#$#Ph|h{xMTTI>J9^-_7z^MF_n`Z0s`Y5HWIEO47F
zA@~Dd;IGc*0p-KwSLVr17T%B#@CUxYAI^hUy-)LEYu9bVxtVHzCeL%W=gCe}V>z_R
zJXwQ7nSY7DCzS!8>*J|2PnK4fQ2mA)yaPiB^Ujk+dx-YY=k^ipCfY@`^YC-gPQoDC
z$K3N|Kf&{45e}PnthzR>J%g3(5cj9gdT@WH>XUi0*+4!^XTTr$0)NO3cs2VnPZqdL
zmXP?<^JMvco~rX?tIzU0S=e{y$)4fNlg0jIpC^m<2JKJv2c}&>yM*U*_c;~My>|KE
zNA+CM^Vu6zxTop_-gi2!=P)gGZhLj{nct<g4G;!vOuG|Y&|dokJ*dCxt5fvVwySwT
zv|+8*8H?ikW-se6T_<hk+mH7vU22|XjYB;~Y{pKbd6xUCZ$Hv6d!7*KBfYOwKf=%5
zOlmV*$UQd|_R;=;FYxED;&Q>|!(8iE=bLaM`1=_1$6=fN9jUmRo5|nQpC=2xz+ZLH
z@CRO>?XsFR&x`Io)L$=5;jdHXS%NR{hx!=28vbbQ<gadxxTO8*dY-ercJlL5aHKR?
zJ2~S#jVJe7@1d&k#Ce`Soqmn$Ptr~8Pd0xYuy!)HpWu%$p$)v6y&AWF6z)0ZdD|4`
zdyILt@9MF9Ba{7iU*`2i8T@9aY|J0-zx4XEh_yyJnOx_n{agDNkw5gb%AV;{Xq?Zi
zv3B)JfVUzu=^Q$3ZIA2rRL$Seb1f+y#k12}NhK->2m*qDARq_`0)l`bAP5Kof`A|(
z2nYg#fFK|U2m(_c0qU!i{=z9wvs|DcAP5Kof`A|(2nYg#fFK|U2m*qDARq_`0)l`b
zFkuL^)}I((uP&TBd2p}FPpv}x^xIqg(zY3Vkmh01x&?R-2Jgkx@8kC+`Tb11|KhHH
zfb|SuV?Q-V7VC%7dmU;aI&c5I%y&-H=As85Gj<Tx`}zHcWhw8mz(|8Ie6ND_U|z7l
zB2C}9i;OCMui~KtPl@d}utTTz;}2oz_hKHpTIo{n#UM<5uVVkbj!<YcdM^g}WxW?;
zQcwN&V!#*ptDevARWPrHnlGyP++W-l(R8BPf5O_2&ZNa?;Yr$l5#BszpZ}V9`7`J~
zdLFM|{dMn`)99ByuiIX~I&EHe+Itl-tIzQr+<)K;`~`eJgI9Bz^d7|?7GG+==5MES
z_InkxGUnamy^4(UhQHYQ<MX^1srM>qW_?;+M0V-^qaVFjk<DKRyjQ_|fj`2AHt_0s
zUGqKf-_`wgv*Pcnh1b6O;_YW#`t?QMxc<^@=brJIg?p&FaewurDiZvlzT|2%tUt|p
ztiAa3V$XYeF|DV#_s-|{n)XZGgzEbZr13@5>DQP)v_EP5nbf3iYHoD@EmQRq+EZFj
zSN(6gMJqWp6@69&{P(dxa_bE{=sntfW4WkRg732*f$(G_7jU>#twPy9{Q994{bvsM
z_s0?!+IgjuO4obp81k`8#nW&{e)jkiqhL?3Pu)X*nE$%Ib^XJGeXAX{xp&)5Px&W5
z5Pl#0z$&kQ3I8yBFWOyC%~{WjGEVO|y;1$>J9c}h-@elyS9@OicZA??a#(*G`+;vx
z^V>*!;|=W)^q?N|-<qcH5XAv)6YzfRL%(4^ki%3zF#r3}S>F-rl=q{-7x=55%YGo2
z55t>oJH||${zm&xszvkD?!!p7Y0UT$s{BTNAbD}dlgsiWpq0vh+IJL8>bM_)G*cnO
z{Rh6lU%>Y>cs18b>k(YOHM(xv|9^UahQbf;U!D>P#9~y>&}PnmSl!Eu7I+>)&-Mf9
zJH6`t+I^=l*1v2&g7lHz|5RQ_8h@mLT#{+zmQ2A7{DCj<hf4*oys!AWcN@;Bua>I)
z7jLJ1o4+fWr>j{Iejxb6`A84Nj9*AeX?+P5s_)S3JN={6>DQb;y8j+Zp~$3;TbfFH
z#NYMmf_!dIX)Urm^`NTecr()eAz#-17LHDIsH$hRMOrD}-Rdg`u=|8MMLAj8_xAp-
z`6FEmR`;(_j$GH`!PWgys`g_GU;UOhjr0$Xyk*@$|LXN`Sv0hK{e}H&){S`D+;QHq
z^JX9C4Xs%@c)@Yr2z}g4HbFoT5CkFwhK5&-tnFLgKXUB(R7piABqj(50>uze&cPUY
z2-u*dS4Di!SKV7P^tU_@<S!$U|DeaSxZeW(7)Xcy4UA)r^E%vEZ`57a8{;wP$DsbS
z{rA%S7^!{8{#9Sp{u09a+5EhEMq0lEa+Mvz4~HK3;r>}^`p#TrG)=&G*0PT)U1~fF
zVWJ;nU-doR{Nq_!{TLlHp2d8Dzv`J>F1UOc-j>Jvq1qXbT=rS!kHZ9i^gZPK{AGO)
z+3+{@*Lee9;4fHW_>13%G@kWk>p7VAkK0b%+T&UOqMk`<yUqmOK^$T{3+MST0=plB
z$0O%?x2y52+m$~1843v~#CR6fU)kT&jrT+4c}}!#Oy)T1Pw)l)>Rca#S91+&{CL@Q
znlH0|wArtHWZOn{;Ol&$Kbm18H}F3A!#>XQX#|?Ty%o4oKjPQD`)6!azij?6p4^zf
z4)`82^9B9@DtN{IvlTYF|A<54FRdSO|Gn;4XP!Ho|9G0;k)40K|Md5CIo;2cDAg}%
z-_z}X<iowLrmXMj{_fXa<))oCZocR{r_+7q-TN1Bt$g9Ht39_|^XtvDf7P_PbGsj2
zRoUwocj`6X*53K?%_p35!`SBjkKI9iij@9tmFAgUmAOj1_En{8RHc8ZN<-=2uJqod
zbonNI?eIUIKmR=cnJwOzX3VGbS06N|GXFiB$KG?#>0>GnW54{=hRT6|_O{Be|NhsM
zhn_q7-#PbZcf6-}|6ks@S><8#H~;OP%{M%K^Og^u{IU5e5A&b=+^s!_{pC@Weg5x-
zukx-t?ZnSMbIrGQ-E!i|XKX){@>_fOjmK~A8NPGj>6><J`{Mtdy7k|VI)2elUv=lU
z&wg;n!ms|})CH6W^P}9V9`E0Lzh}<Zc5L2s-5YiO7hg13x$>_T_Z)r9ts0LT&V2Lj
zpP$uVdD+PiYdlOUH8%f)A&tj3?mnpUstZ<+4S(T{V@k)^ezR_<eC_A|)pPCKTS-UH
zhabJ__WF%8dLO7hyjkhcI!VV-H?E$qbSO+ZV@vx^Zr)=yU&YX>RrdScyvmGsJhAy@
zdw+QI9v}SS=661PWr+PZfBd3XpY+W=dtUPw-`_m=+v~>220gFXTUI?~%TS!|TN<~;
zbIerzp01hq(Ej&yXR0>*pySo3o~q69J=y+a|7Pt4F0dW2zjA1}e`KBhmTX5}|Lhfg
z%V(cIdv0I<i6^d@y`m$(r>o{~(YJB+&lLHvz0&QIbsO-$IZyMx@IxEtRAE-q;?e3%
zH7})dpts}Rd)0S)AL><_tb8G_6!xkgg|wMarBQ7t#q~a&<DWUNMKk{3d%FHd&3vVo
zsf%mn`j##^v;X3C>xcWh&gdIlvo6C*vBMuNmQ1Ir@^|{?@plHV=J1^N@b`4TYp%C?
zuL&EOqBVY7!Gv^Cd)1{v<OAOweSq_&PB~lr`>2pZx_S6+p_AVIo-X8&?rKg4eUZ`l
zcU2*WbWd_R=tDa9d%BQAx^wvZjL?U4^gUggV**?thjind4*H^W^Y^gRK@RCI=I=>D
zUzF~wnRYtJA>9L<4*HPJ{hlu5kPhVu`jBpLk2rsjLpsPoANB|Lh<Kpy#iE?zdyh|Y
zxrID<ba5hFDLv$o{v7_^B=mw87cZoTJkoFC^w0~tE^bH<d89w=Q|5kyUf9h_4|${?
z<@C^t{JZ$WKID;p-c`mv^a8)E^pHpT!?>J4FY=w09`Z;(S~K>c7xlqBzQ4e0n17Z>
zdjB%cKj#DZ14lPK<dJ@W(<2|S{{ZWA(?cHV>zp2XVLvN9<dObKP7l4f?s-nR#`QxU
z=}})pFRnW)J>-!d*9X1GcUpQHrwO=Sz&K5PN4$N&^}FQ&<qG!jJvf@TpX+<65Ayd?
z5x&9nYXqma*1rM!geQG3)n`5Er>ed#O`m)(6}U~75d48J@Q3mMUQK?-=X<qZZHw}*
z_W668(Xs5<k$mc<$_Gu^$d~M`nfF#`zM`7%_NQL=O!{T_6I1!0r+!raPfF2iQtze4
zN+<hF{}e=W90Gsf3;ZD|c-8y#z0@s(+i}jLedh02_5A)S^`i~^$oEnW9%cR|{%DS(
z&-L-t`CjV&9{qElXL5fpmD@wKk3R3C-9)>HcKT}eb1ruL4YZGWzn2<(#I(Z*>!+D^
z%&(@kXU$6n?oa5!{h6vyzL(k@(A_Kn{=gUbLpH#x*_ZF70+-1W5`Xl)RNT)~^?RxQ
zv;4hO*mu8|dZ6>YRP0as@1;8J5Bl%$oQCIH_c;^KeRlaDP~%DDpVGJzeJ^!zk5{O^
zrgWdSey90fD#Gew)9zF^x7Yqa59+UAQHs9W&lj3}^E|q)e^&k>ZFoP>>}CC>>!eMu
z3$f)$m9{?LLm2fNd(rn&2lqHaq0wkv2+~J-v*yv6)YJnvH8-?B;0yfK7jU`Y@}aN3
z>(g<*+TyR5`Qxxn{<7xL8UCjJJUZ|N{`~odKk#Zw?_1RUw{~k(lGT3i1>0%=U)As5
z`NTh{G1s*1!N%wH^L6}toB!@zJA;1dbrGqfdk^(j_B^_&KMxChfj`v8;MG7+^BzC2
zjcHJU+VA>|=Fgr7`Q*$<!j54cWXAav{^og4&7@y8f25!EQu~v}pGi&gAfs(6)upIE
z!58?$)q+>EZ+$Pdt80tb_3B=4nYYDTwx}2Kjlw~0|DMlbBU$%cqxmVg|I+5ssqvr!
z)?Dk8cc1v9@1?>YlJBKXUall(f`A|(2nYg#fFK|U2m*qDARq_`0)l`bAP5Kof<UJs
zKz->eI_;w6dIbSNKoAfF1OY)n5D)|e0YN|z5CjAPK|l}?1Ox#=pfCdY`V+5K^T=yk
zuyzj_qrS*+ZtuapYOlceQh6O4yqBqz=nd~@;{6w_dw};dv7Q0s|3=MP#rNvyy%<`r
z?Q8127&@Oe7uLU$*O%rnxZTX3uiu>V9t(^#2r(}hdN41zep`yZ+A|A{D!do-jYYBj
z26pJwS9yl6elG^=N+V3XS3&Dbe@(p;L%(z^NGI^idN0PLp8D^_fG_ap-^%Y*aQPst
zysn$#e08<K-<H2py6C+o4io&*`qKIN%X%-y@Hh3}iveHYulh~CuVeRNYwuNDr%6}q
z5^`9^dlhv5eOCQC{=Ew33;YGQ82-Skp+K)0H^y|RAll!k_P)+1uzvInybu0(H!INZ
z#atfy-YwO8rtV8?OGpvcm(JqPq@MckHGwbihxQcrp#goKYX3If5fRX(_P6N$->VN)
z;5dD&0&zS14DTFjAB^IfzxT`_-$Z|JTCMwXy?2=YWw(DfsC$oojrsGH#{EJ|q3;tO
zdG1Ewzko0BhbscF*nhUd^b!&IFT`Kkdre<^j=k69Kbqn<HUORYyIz%fr2CnYrSh4!
zKKQLG@1lDowvBqVF;$PMpV{8NbK~t4E4m)`T|Yim-OshkVzr)jRjr|YlUg@hsjJOZ
zYioa0t*1Sz*3hQ?+tfPSFIH=7A7j?juHEvvqv!AZ$Vaz);}tjcQhHiXyZWlGv3ouf
zt*8Bgk!yMmc}29I_TiV@R5`0BzMl4f2B*$fd6>WSrJwFO_weq@@^>G3`)U6%@8&!A
ze&6O3KlRMXr~JwDE2sU(rduBQ>aK0y`Dx$6i|1Ui?F+k3-Fm@kyB41N-o9-|{omya
zzv7woj42-~uX-zrhpZ0{1oMS?*8)$Iv-!$r&6TQE-qQ1`%Dmei+WhN#KDl|uqrcot
zWeHNhzWlORBaX1`^}+c$bZV{-?)zr7w5IEWA9|oiU#gGpx9Mti2ij;Y<7+k?-ZMje
zrpjF(TnlvIAFPkwftRi?S=I;l!nMI^jqs=(==;ao*JpTNKPyqX-LgJ7S$<a62mi2H
zf9++;86tlu@3wTwo6hPwWyRpS!8H^9>4A^s%|wdaCaeQ~g;`&B^aCb*@{gnXdwIb<
z=6b7l$Jc*#RS_0@x(9RYlb_k8<d6@n6MfiwO+Jz;;_FL84(TrDbkK+N?)u=6L%Ihz
z9rPic=SAyMcd3JrLpuL`CZEuUbng1#kVCo${+~$)eMsl74-Pq`yZVDB9rQ)%;_HJ$
z4(Tq2Jr1LE&ided9_bF_edt3vcYSckAzi@b33ie0T4#N5$RQo%pbz`kI_ra@oML_B
z!#)%*FW}L|iOL(T4-R>x_b)f;p%=V7;NXSykVpClcA5JHdSTba4e23|^rM^}dXX;6
zKID=9Vonde$iIs}>_Z;utDGKsfnQd7$Rqt>oF00S|E%<oNBZ$+41Umy`}bm}9zgyf
zkMx^3J@f+qEc_sk^Z}=bUf4e@gMY{){W+W-dSO2+J>-$To6|!tt{e9U?gLyu<dGir
zHS{7~*7ZXk>7gHbkv=W|dVO$i7ckCN|4zJp!1cT30Obnyu>L9av*cPI{NH$eaD+GU
zc*>Vs>)(KV!c(sg&U(;KRsCw3K3N|exJ{N2{DCj<7jSv-nOBovwH|ow$J?U3t9@A?
zJc8p{h=D)w1^$o~@T&J|J@DTBw&R?=KKTEtgS+^|AI&4aHx<_h@4oAwwO?Mn(}W=w
z&r*c=dqCMnzSO7I^m9>G{$6*=(&~9{dhK~{zhHQ1{o0Z9+Q~M?a}c(pD{op{FRl;Q
zi}b(&`?%hbfxfl<=dJ3$q>W47o!5!{)Aj20-?_b=I_tmF*y+r~GyK?vGt|gl_C|P+
z{{w#q{*TZ851yCd_rU*pfc@Bu9e)!3Pww^KuP}aAz+wGM#!vBYO!HT=uLEc3ddUBQ
z9@M|7`eglgz&2?@@CUxYA2JAD&AzPv4qPTnNc`#b-}!!?s_VbkFaL`6TfC9}uBFS@
zuU@-uVi;KF9iSAci56y4J2O4+PflHe1B5S)6~Vr{{`-BLFOvJHlEeO_U;mxk8?-;@
zpGCWb{tLGs!F`@5oc@95sbKy0Ya6WpUOn|q-`%d-i!l6xX?LnOwAcPrSr6*3;Ga_T
zZ8<MKPxAVk<NI_m4K}(?+Vniv+Ur$XHBS<u9wRj4gwgu%*Qz<L^vj;-L;6T>);w2}
z+RWA>*{Qan{Q+O#ul|o*E|^zy-M?L6LY}AG4u4+N@E3+=9E$W8;V)~RtKo0z&vOM|
z;Lrb@;SanT-e~>zFK#t)`m6S9@7x~kH;!Tb_g|}dMJXGNC-%DQzdxqde}7ELXU)^1
zdk^(j+WO(0GEWkGfj`v8;ML%*<|)_y)$0F}_1{y<;ch*I`V)MCKV$;Dntf~i_v@d(
z#k+oKuearyF>l!^y^wDdUd!!Ykrmmq?mx1J`!8*tq#EyItBrE@+&xG9(faT3huU5L
zosd|O3CEn7@l%hh{%g;>X2S;c-E)(U;@Rm*N;W}25D)|e0YN|z5CjAPK|l}?1Ox#=
zKoAfF1OY)n5a<*H)KG4N{>Dy0L9SB}5CjAPK|l}?1Ox#=KoAfF1OY)n5D)|e0YN|z
z5Crlf(AxY%^Uek7rfK2SAE~#4dsR?i{dZoc2=B!hWojKueqRRfzhHd}yq}5nDj<KI
znzib#|NeK4)_)Ip{dW$7>v{hChLrbMV5C8adBM<wdBOGTQuNi{x5%i%dlg@a?>DeR
zr{2Xgbn~zO{&(t~82V+;%Ljg0@5PwZQ~$jf@CE+-Yq?x-`OwtVHZIhmHv#<B7Ao%P
zy(SJ*-)qXxU)FmuhQF!*UJUpGf7QP?{DD`)n|hC;cm8%0r@xKgtJoduztjEqBlXK#
ze|nzx)J%GBlImP+Vcm-Z&*2dDC-?$?0oTXi)m-9<3%zC6S^OPs_G=&6wowUuopH!o
z|NRE%JntgV?=|hMz~%MB)jD}!_wJvuQT?*(Pg(!ntV;mCz#l*buh@UK!mRgV(Eic=
zm-b%F-#y3Pi}A-({Eh~o)BUH{59f40Q?gXQq^%$RAJr{%kHof#UOyb`Ww*M1c;&oB
z^XFXr&s)~r_oH6&M```=kxP$=tsnl@$3GccKm6@Sd?~Sh_}a^c=Bqr+f2UeM{1b<E
zSH3xT<n6V)4><9J$AZn<y_r2Hyzj8eS>GJH<z0Vs`1YsY|G|a7+54Zi9qCoK{`8fH
zFIsla2e;k!gU>H~(X?{b4{zssVx&#sowRkq^B$ve(;hU*^~0$wLFXIJ`oP4mAI{G)
zvVM5e^}{`^9}Yew>`Vk?{cu@7Jgej{RZsX`s>7t(W&EiBRD$FW<=vJpT)Mn}O~1FU
z?}C1>Z*WcCbPeUEo3kHRL2&2Xdud&lb~pcn@pWKZ)7Pw>jLsvg6e4ch@~4^g5&ehb
ze(R2V@73$n|HWGlIGKKP=FI8Aw;(7yXnL3T*9R~#w!)0~>xUF6ZEQ=|^{rXaH@u<^
z6)I_j3-pXEIduWzlPTPyGE@5(TBC)wc)n?ULuzdsZQz^Uv$r<_(11u1T5koibiDRF
z&zm<>Eij_u^gB#{eebVT%=6x;ek6Ms?dT2pLWtuC={SB{v>mfQ%~NYlkt)3n9sFMH
zmmRn6!nJR~K?wx`L7<}$I7;=y?%PpUEEg*XBoUx*3gO3Xv?WyQQQhHc+mpW|gZ9;o
z0h9cK*PinFMW-w|@03%{I^`5Ar5!c?n|-8lT>Q6me2zOV{kR+z1O$N&KtO#c@xbU&
zMy<c7M!Kd=H&t}X<yXIL`VU68$NLe|zmbjSs$@7r+YHyatNd=}+%fw75C5*_?~<it
zp#u*^ZDjO33QXg0Ecz1d*D5PNf1~P&s#VPMw>cJ<%-+*wz&hRPzLhjH+WnQqP5PmX
zKQJS^C~Do?o;dQ3@Il<NrjB*duFqk33Lgg53rL4Yb4RovvApXQT?_iu3fBvV)~p-u
z8);#U>&1hsFC1Ln?yI=9O7#Qr{;qcWf!a;)0_b0E`UepPLF4|ySMPX!1wZP$BYnz;
zRO=nqDzvWmG({wB>N~Eg?<I|Kb6)-m0v&`v_?$)0TTQN;&!a6#N|$k0o$nuH=ANmB
zs7sl|y{&p@dua_*+Nb-wSN&AiEw6D}qjgT{+Ip0Xstda2n{@RBR1Ng1AFh|uqMlH7
zg-Un5I$d8t^#-L=(pDdCP2;7KP^k3Yr(|^-q4Q>4ze-bIp!cUM0o9-EZm%EeT0MBd
zz`CyGeai>>y9U>Ets58|=^D|4H?DB%esAyIJCA;i$*1ShJeoksVSGl{c`50Ne0w!T
zP0NQUe>GM2Vw~m2N(13@^{Ml9JKoLVIQxe%uxYV5U*+(DQ_TJVhma#2bU*sEnQFG;
zG>`k#r_J)bS!vEF%29BIX$R{cinoW6-o~+D*+%pITmC+Ti?1KV^(tSeM%S&&MvCgg
zQ~@RKsL)LJ&Y%GhDnYw#d!9m1bwhe5=<lJ2qb!y9e$CnU+TM>YP~W>DKDc;{hx)hP
zV7?C$Ca6`+eV`?0c)hh=eaZoNni|JBTAjG}+m}#1rt<4~&%f%Ex}Ly2q|-TnRQXZc
zxr@9l`z~@$rS9IVeU8*qe30g5VWT<*x)GXl({%pXY0-5N(x{d7`~HEhfoSp`Jm55n
z>w1xrY~6Iz$#m?&1MXJ8(|YNgy#=2$eslMCPuBMx-IoJO0QcedRh;w$xBQdFdEk3S
z&b^1~pKh&OAEGV=)gbA|PuE*&2l|dwG~%2R(;MxZjqsu^8EW>`WOkf)p9iaa9p-$e
z|0Vp=eo0)29~$ojen%*v4c4|SbeVRD<WX+6t2mXNV4p9Wda{eZ7e3d7D1WH`-SX#W
zlt2Hfc=@Z>8`rCcs`7`s3FV7Ilt1VztNe9K`BP|PLwRvSoR313Kj4?Q{Gr_BDSv@7
z2fyPxDo*7hxZ-oByk2bH*P0b&Nyn<6jF-P%D^`$uqtouCCG2Zc?^me8NB2#QClA<V
z&{Hpk=p_12Z?AqYhYz59!d_YBbDZ0QC?B01v$?b5NlZ{afnT2T=_~RBE>~1O?Xne?
zyDlz&`~0IWhyGQcH{p#Y4CZop3y1rd`qZCh+HL<TPJe|-ADqs9>OOq@dK3DW@&4(Y
z?&Z+K_4Gch|9W#ixPs-TvEExaoXdLF^ZBzlyphApj2sa34`Kb+o8$gfCL}zUDIxg%
zJ5-$R760Yt{3w@G_#*?~HuJZFkH_yvl_cRu&@pUBP-8%fdBc4MJ!Rczb-B*~xeD!j
z%Z^(j7C%&V0>3=>8Ofu(pdCOt3idJOGMH;Zlsi0UepjW{<?ep-ym8KsC-0_tk0>%I
zclD39R_<O%<&J*5q1-`FS>-N}atFv&XqPoRZi!g@P&opAdCDEpi}FI{&MrqNXXwZH
z9?l<P>d&fE&eUnW`B%19&W@x^SdKc%8T6D@&IY8MF=G_iWy_9RA{-@tsGI@6yyXn#
zB`jxLj!@3fPj;Wut;^w6roNk(QO>F#ZmpdCDV4LCd=V-@IfI_E%2`#)Sp<54at8eJ
zmNS%>u$*x@0^jII1>dcX=TqOkx?eK;Zw6L18}GH?nDSA(F0tdu3nzZgREL2d@oliy
zeTHiM!1Gl9Y0uxDyf^iQdh0)Nb<d-3+@#}bm-~r4Prd(8!SR##KDz>Ws^e5&y4HiT
zfWGviWue*Jj=Ie4AgXw?`M2XZABDuvi`6dhqq2bKC~&Awhn&0IR@F)LANwjHwI^^f
zMlUq?r+?Wyb-%JYr8km^#zZK8v?W8zn;Px#pyzo?ztIiZY15`X^|i_#58t)<nf;EW
zP?u5UN2}F(r%j`CEVG%?&^gGF9eUTko7;~ERGjii8{HRVlfD#AxS%{^3<u>I@=7F3
zn|4ifo{sZ%EX2OsH|<MXW}wl3iSM+ZCBjkShkPdBm!~b8t>gn9tE0Az$|lC}{At`L
z@^TJWao@!u{H(}*A!PS@HBle$jxAONg33e}zf0E3p*oantMa|m{RPt}f<(t1ckHpz
z|3&>HtJV#zmHD=SM?yhB5D)|e0YN|z5CjAPL7+ns=$dcl95lXsdTu#KiQsu-5kI%o
z*TnnQ77p~SS<}C|i=LI**<cU)Vb5oK$Or5lU(gty$6*ipVJ}#1t`GTuJ(>epWJ8|^
z>_I>5jk7)E1NP<=F{aW`Uj%Ki2mP?uJ!GyA`GCC>O|q8%qB|e<pda?e*&gx%dvja1
zWD@9!j4BFy&<}g{zctr~e8Ao-3)(|}6zoAi><zFz<OB9zRnQ*#TVW6SVQ+kx%O~4~
zy?F)g(U1&num}CH7qC6#1NQ#XBy0IE>K@pGe%KowG1rHDz~1o%D;Ug5hCS$qy(-&7
zK0<p1E0}#45!i!%*z0CIk&n<`!3qXzK)@dK!=As+;E8;M_6k-o`#IMK{jk@)p6@@t
z&d^@L3TA)D9`wUrov#o12<;WDV5mQrHsA^UuvdM!NB3DHAECX170iLgTxbvaVQ>7u
zj6LKdv{$f#!B`uv5Bg!x|GBY;e1!H2Rxk%U*9ZNuH_CV-AECX170mM;d(aPib-q62
z1NKfRSijKt0Byh%`eAQ??I9nby@K`2pBQtYJ?MwM;J>-Nu-(vJ!TRM8#~$><UN_rA
zK0<p1>z6|vd(aPi)kn<rAs?Z=g7piH3D5@qpda?e`TCHL&|bm%MSl;$vIqUJ=a2LK
z$JZI!D_Fm%<pK4E>w|vS8)ZAlM`*8L{qjP`9`wUrov#o12<;WDUygL_K|kybus!4>
zv{$fx`BTRp^uu283%>u@F6_-ISik(4V-Naaubb^5AECX1^~+I?J?MwM>M!~JW4ocf
zg7r(6V-NaaZ=CHQAECX1^~)^B9`wVW|0}-#_&P&-1?!g=Irg9*_D0zb@)6oASic<Y
z*n@u9tMm0CAECX1^$X1rpbhm4^uyi&+e1D=dj;#4ml$)QJ?MwM@kjaoW4ocfg7wRv
zJNBR-_5!wte1!H2)-Nx0>_I>5jsDtPAMycvCl;(<x*dDa4|`R%hkS(g3f3=w;n;(I
z*c*7vTp#ig+ACPUyv(r&{jle=J>(;_SFnD0xnmFdVXyl)=K7G2&|bm%<rv2v^uu1A
zuMhbM?G>zFUg6k-e%Kr5>q9<5dj;#4V;y_Y4|@UILq0-#1?v|~nLvF8{jfLsINyJ4
zH?&u<e!*=Ed(aPiRknwGg!T&7FSu=C5Bgzm;Q!<MkL|+VTx68_$Q$6cg+1tpJ)i9%
zAE7;DG_N6+!)*(D&<}gvzvcUn?S}S{(H8CDwuL?DhrK%6K|Vrz$Y_i9aNEKj^uyjb
zUmx-j+CxTLw1?Xk_Mjj30=9>Ig!Yip7VY7-g+1tpz0u$C{l|7gd&p>u_Hf(69`wUr
zmF*!Pp*>`@MSHkyVGsIY&;K93|JZJ54;gLIo?a|krGY)@hrMq0UyzT`9x~dZy^~lT
z_Mjj3{6CuOLq1^dl?Ce;J(<|PKGqL=qkk~=kdM$_!TLon7G>Fke%Kqp^>G;5D_Fl^
zay9UTe%Pz-;_|}R8QLpYzwo5nu)IJ&?2SKT>>(eay@K^iuTx&2ANB&ahkS(g3f3?4
z9edCZd!vje@)6oASidZA>_LBMZ;an<<?9UX6|7%);&8~{DC>v4D(@p7p}m6j%OdCc
zpda?eH=FB2K0<p1>z7j;d(aPi0oy}9VDD80>zBojJ?MwMZnlSfg!T&7FQ+>8pda??
z-{SJZc0+pw>ld1*PaEnN=!d-lwugL#_6pW7rx|mhJ?Mu$pY0(Zp}m6j%U?P6pda=|
zZ#Q@%AECX1^~>pwJ?MwMD%(RoLVE@4m)AP>pda?e|Ap^Awj0_jSiii^u?PLI7qC6#
zBeYkretErP5Bg!Ro9!VVp}m6j%Nrbf&<}g{+xY%tyRbK}VEuB2V-NaaZ-DI~AECX1
z^~)O_d(aPiKHEb+LVE@4mnDup=!d=0TlxNDyP>^;^~+Mn9`wUrmF*!Pp}m6j%bAWn
z=!d=WO?>~c-Oyga`sGcIJ?MwMfbAh4p}m6j%UO;+=!d;-wugL#_6pW7XFK+wANK0s
z<ol29hV}~9FXuS+pda=I*dFo`+ACPUyxFk_{jle=J>&!S{<2{GV!lQcweQdmd!ygr
z`;YC0_6pW7=Q`I1{jgVMd&oy<uVDT17RMg+!`}EUeE+fC&|bm%<*klA=!d<4?I9nb
zy@K`2+Z=n)4}0Bg5BUh~6|7&*bL>Gs?A5={_aEC0?G>zFmO1vIANB^=9`X^|D_Fnu
zIrg9*_I$R7e1!H2)-UHf_Mjj3MsMc(kL`x`3f3>n9edCZdsViFe8ArEvx`+QD;#^!
z4}0S`@%_hkBYVXvn106|^uu1j_K=UrUa<;hrDG5JVXvF*As>;wVin8<jy>pyz53Vq
z{$sn5y<!#2fMXB(VQ+x#As>;wVinAwV-Naa&u4qcM`W*91@kwKJ?MwM(XaCT$95xo
z#VVLpjy>pyy(-&7J|cU?Dwx%dJ?MwM@vrdx$95xo#VVK!9edCZdjZ=+K0<p1C-AOu
z>_I>5b+bL>BeGYlei?G?K|k!(zs&a^+l}lMt6$bS_Mjj32G}0*5!owNzx=IZ5Bg!x
zXM4y;WUpBLGVIuce%KrRXTJZ~Ze*`m{W9X%gMQenvOVM@vRABrS?Ab;e%KrT65oGp
zH?mi(ep&C>gMQcx*dFo`*(+ARyxp+}{jk@~_K=UrUa|V+BF7%|!(RPHzW>;6Xs_S|
z-isZ3&<}e9Y!CT}>=mnDE^+KZKkWHz5BZ4f6{}y~;n;(I*c<&K-+yd3vRABrd8cC!
z`eCoi_K=UrUa|V+U5-8IhrMxLCj<G2>=mnD{?4%n{je9XJ>(;@SFC<{w_^|bVXvF*
zAs>;wV)e_Vjy>pyJwELrACbLc^-ImNceRS+n_su9IK8Xqe*0^6|4LN3oU*mxJam}1
zmMkGn<0X_|<PZ6UAg*JWKHPzW1;X=|6iAekgz_6GK=CantWR{1lEpiN2pg|YM66_Q
z<2%eZ0J0^_nd#PQNNKY53DPs#lAi1}<$|1g;@6V4HWAjSic1ndhp9urFVFf!BoCbO
z$^(zQ^0@9i@-!D1-_j%bWO?$`^a5NzurYm;RaLC;{jR4~+O$%3)?oidukE{}A3kLq
z!RC8-cXS?q*8(9@Vt;%izk}$6yHw@K`KtKVN@YmzJKrh9adkQ2hHuIIvip$U?ycs#
zh6qEU35uL^gSieWTQts#>-${>zW00g+gbIJ-%m-;n66vYDO~@7DxSt4y-OQ%*mc^X
zuC>EMYx{@S4fexpPuHJybYPpo4<Y1S+sGf}8s%^KCCgVA%nr<lVV(I!h!a`)gIrer
zDBb#z{_|G!uNfK~8C-+DBIs>5bn^v$gkMeVpqy^cC_k?qT+_d_zj$j$^##2@i+oVu
z;`7wc-Ga-^I_{LOUUd@p>k}FIN`4QJTD|0^zDBAy(o6Lb(w(p3$Wt;^^2n)6meQxW
z)E669ukK&IZg2>l7)jBrBQvv3d?M>aj^hK|h9S(6M2mFA1c6fQU`soMFST9B$FdB3
zQU5GZKF~b%;yAtw^O6jnvof(@$@~>7yn$n9&o1`Nru4?@Mcd9N?Va}Hs(n<~`98C*
z^0bypU4G-~pWH=zY}#k_O{iYdXxebM&9-IrckXzaV*Gge+KhQ+$hvD6$Do7uX~Vt=
z%fu~N57@Tp8(YsdZpcp(mpD#o=joVif`A|(2sB4vnzt_rRgPAFX0peUtRK~y;p+V9
z>bG*`N?QM0O`%5}g;1T$z11o&$dFavGpwZ9x5Rb(YVWK3V2ZtUINRT&%WPsJrYFzN
zEG2}Wit7Bp;rQ4)AC2Kf7}`3`KJ{BP`q?SW^EUMb!OuWn5UvZhO)BDuwq$51kNQmZ
z-}&ybSAJ{j$rK)|!YZ$wY|?l7UzBw>OyWZR@oaS%_)%X<^gs~u&~w!LS1~ue>bs^J
zRXL#z=RFU8vp>yzPqBdCJUD#*@cI!<5-<i@`5P}vR?1IV@d=1(9O~~eesfvhY$v}N
z_ehjyo6pJQ|JnJ<7Z=>};biVHTQ({U5)%Xj0YRV%0;(CQRgO`AXR_m*Y*&om+^rPB
zZ+`HpXOwSPs~~J*!#SPpH<MtReM<qgukKHurgRw7paWTY^7+m9K6_WM=k>C0Lt4|f
zS?Vx;kbuLnLw{RcUGtak>Y*QDh&W-G?l(h=3H=|>iG81j{4(;J;b)}z&C&H!`#@VV
zbp7Usc3nDl%z3+RqwvtaUAOt-Hyh|e{0Kw$XNhnWelzgP@|$;VT+7__R<7K-KH)c$
zo^hoU{2#3fRm7_<?=3wuQub(EgPw!!ZO)vVLp{&yGWU6Oog|6x0hv^G9?TJwFaI**
z_g0_bZ_oU}g!QNSn>0_Eu=;yG{{)}^9iRU#AAkRi`n$m>=g^CCo<3@lEZ-(?@w_9y
zc33SmrfzGPN^!S*V?TL~#1D<106!|{sP`i2C_VT@`6!FeZs9Y6KT%&rd{{y{3O<2f
zUOof9&&%S|7d|bjz@HmhA{+&uz%MVKsISZ7bNt?XbF-3HG!>7yJYqk2t>6>*<>k}o
zcDF1(>%yl+7Wi{RON67~6Zqxj6aG_Ke2xmA7FjNj*tbL+K7n6eJ_GiH%i=Q-J}t7q
zpBq{t4xhj;FQ0XOo+*pZ0pZgk%jFUKmWabA@XO1m&(Ec0@mUo<EwaF$8(Ja`pTMsf
zpBRS>=9+hn3XDU(y??mx0=)a3%u&-L$;V?(a#ho$EeYs;rRw9RKSjpV+_IE!UvSHZ
zQ`A=o`IgG62nzy&Ku04$^Y>~zf6t6crHwJ{uK9aJ#WZhvW?QXJ^SBL3>doE9@z{7x
zcu+<1jYHZgn#X4;5&R&Hi<pRUNa#dJ{TDP22|ok=F}Ne!h?_QoQc@cc51Wlc)<5(W
zJsxDzb^2elv2K{eh4`WQd%%zUV}muxhCK8%8;6A7?7zII-@IV;(D_~)uf3!UEAi!i
zn!^bSblD6Z6TjJ%54Viv+ZVq%A5KY(C#V#Q8bLr1=l}%B!)n)W_A-6fbO5vG@6mfN
z>2q^JO=K(f!+S5}CuYpwi{)=O_|38RUX0(Y^RM!O`Fietqjz5LUW!hm|G;mCpONM_
z`=L0sCA1~OW`1)ZezSot#E&p^f0hVG;Wq=ncKzm{tGM61e%Mp*i=UXxWWFPK{7Xn*
zojB6g0bNGxj~c(Z%=ey?xwQG54DY>A4()r@jbk5jQU1%sEqV?If{|T1BJYa>7YPLc
zL11blFd5$$pO&nmBNEsL3=h!z>*1XJ@TiJpDcRkAbD8gp!_P?bn<FgH&L%_GZ%(`~
zE`D<aW5QpC-(ZPw6n=A+@yqg?bH6WsNMXNuX#JWMeZyGfHks9CM>7594b4)vc3$7t
z{;#CJIr&_Ma@IVQ{^sTwrQ_RLVHIgXKoIC;1fu?CppfQoHlC;9xxOq^WrW%N&6MEJ
zGE(tjvgQ8tDe7O%=x^qvCdlVEPyGAhbLNcDS~@53`{5O5-&toVmgU3_`kUcrr1{O!
z`li&D(3T8czd7-~xcJQmx)49Y(EV8=9EIQPH}RYE&eI6?De5;bT-|p`IrB8GNnUn4
zM|2sj{zClbWchN-TlT*A&Dq#A#<iWID`^D*L7=k`i2UY#8?3WLYg}iqPwJ_)g8rO+
zvpnc!`^_{@Bbr|TT{XKuS=s3&Tj3A=&E)TA_|37r<@1|iJ6||UiQ%WByKSBZ{ERfe
zIl__J655hsGrzeW$oyu59q=Oz-Crbu82o17m(|~#*KhWxwc|H;EnPP}xOT)Vw77p}
zfAintVkailWi)t1{N`l&a?4xxzWB}A*fhp<VhXWn5d;K*PC&r&n_q0MH?6;!zNePu
zH(#^i@R(m}qxR?<=h;3lpK9zkA8ac~#+8qLC)o>s@SD|VgC>RFeEmhQ*Lc9;D0O}_
z`x$9|GvQ%2YD;KKhRyuuK>TI{U5H;=yKISY6n-=CYu9fM)*FAa_4PEUzq#wof%O-j
zpUh>hBPhlR;eSXRY3qP4qxGMQ-`v>0ODliTG4Y!tELy{{t+FeL1pz^zqY$wCX5&Pq
z&I_jR;AZ*F>J)s~oXBPS&7|P)##)pusvAR_y1k_&4f>m78tF3Ao(*C`%EsP1kA98k
zb@finy8c?b&byhX;qJTd1;%sZ?qQw={ERfec_QX%RK;($pwDWPEfJ2wZw7wt`py2T
z;(qhcn*MesYGnG&*CsE!og?}__8&Ia+1c;65sbQy<Is&`A97K->}=eCLlT#`51n?N
zj>#qn2m*pY9s~{~p-J~0S(+D;v4wszpYQ1R0^w(*`OOi2XlIk5+u!WI7wC)M9Koo4
z8MMuIXo+wXelzgP@|*L%7Z@yS%WtNM8bhm!E#jQ%H(!^$>~@am`?~rw>2Hqvcy>8!
z9+&>+<`|{p+fLDyw1R*j&|wIucCl8WKHhS_BO9;JUeEw!^aV%rb7R8PzPdjxFuD7i
zRUdmh-;sSF{X4SoGt&HK;Aq+jf`~YXhpyl3z86^kpv-SJm;twVIgT)mq$mcz8Te)S
z&CTXFlb&&<&u9MK@5pA^kGPNLi}qfaJQO=ZV@t^``W7qczAq`D$8ds&jNe=TsR{j`
zn6Ubw34<T=`JH_Jem?(0KK}y~LOoqSty2!YDCg;GRVK@~(G%qzdfl*FzT;y-l2*on
zttF<S#1DN(7Wh#)Pd;ctpOM$!zvl8$7N5TGX%Pkd-Ov)@DEI_^dHKYBUKXF@_sDlg
zBeq-~u^&kw20npbUOrJ@m&IpY_yk2N1b=R5iEtEr0>8X`qTMZv&r#viBFp6w`<95q
zC-BS5XPy10viJ;yPm3(@=Z2Pu!zb{|%cswNa9Ml~2%i>NE|1u^L>xYWUtT_|{5(?@
zpH<=0A`ASvp(Wz*3H<W%8SryyS$uX2pB7mzkJz_F96o_xGd{!bVV!0A8H&93GPG_W
znUVZQl8?un_A~i)<dM{Uef9gyb;@`e%1~>e;MN*m(X&jRA}TV1fFK|U5CYUJn(tw$
zfk+KW+8D;}T%Ys^or}yr?ieJGtxfj#UZ_6zXs+SOSfA9{FSI@>{0#WV;Eq_Gi1%Is
z8HcnAVpf}MiExzq3+X$uz>oZ6b9a$|E(;Xq{*G*LdSSnLxW8|tofls+{pRcGQYLQG
z_p$#y@taNg$SP}%kBi^j7@urxC$1oiCP6?DnCb{be)G&di~7y6^+R(2mi@jstxu}o
z#L3o@@SCyD68VgswmvERj5NQQo^{L?`f2=(5$!jdzgHE%86c`Kt4+2<I10ZR__gad
z`}2$X&5QbmSM{&)X1_9-$$UpL{pQc+OP^Otm(A)9bDd?r_ngd-&Ff_N9xCN9x<`|7
zoP%7H|1xpIGkJtxWS5S~cVr`EBqj(50#g@(J-o^I9odF>v+ozmboBe;@H5i<<`AJ+
z8%#&h?$#=<-<)_~T>Rz;#sYq`&-i8e&AHzfzooF>JluDYckJv!OZw|e&-9ybu#lO6
zsJ^d*d&>8lC%^wkXh!#FGLCbQi~Lvdn}JP)iNVj_PvS;LWD^7g0YM-i0+HYB&Ghsu
z+R1js^BT|7KwXv3BGqGA?~7A^bDDii^K;g3ZtZ>X#_N?*f2Mwqmi>%0zd2f~3j8EP
z*Kelx#g9F2*KHII_wBl^{sDPkJSuy3+iS-o3B=If4E(bE=4S7Uhx40nY{zfzTHLq1
zziVm#x)J2Bg)q}^-q?bY9HRQZuHS90Q|24k<tu+&aLbQX+@H=-LPbOn5CjAPjQ}-^
zJinO{N%LD9`^}!~%QnF_+i#|XP1b=STkcQWqkLz~)6nPfhkV7fYs7gIPV~C|y(-V<
zXXZD%`;GnNc;2k_O4!dx^P4ARezW+^7W6g6VcO3U;VAs(fbnbBZw{_+%Wqyf&^Np`
znaf;9GX3Vy<w~Agi0*06uZ!QDUdGbOUGkXt%}Gr1;hDRfil87M2y{FGk>A{CesiPm
z$SMeRo0lKT#(r~FUo`6{TkcPvqIDG~uivb*sPbJ?-@#o8ysZ6Velz@xvi#<%_|2L)
z^CzoKwnR7zzZv+o>o@yXwdFUT-9LE2z`A5M^Bl?aoBuIS>ijbLo~Yg_esexQFTE^^
z-<*z1b4>FWRFM<}1c8o6Ky|-P&UO7Wn4$L7{b|w3-QTR971~+Xe`m(J{_JO@`OQ(E
zI<+OVCBw9N8prTFjYHKu4PX3b16_z;TDxqCa1?$s@GI&!lODaUKlAUd>%ZgP*D|;9
zJVe~bkJH|f$wRRt(Kv;DI9eN@bRUyqfDQ%Qjo(|}YC``G6IP%3{EqEPAozm`>rb1|
zf69c_-}Ct=ObE+#{dztU>qR-A=ym;lSyvH|t1zvMqwcW8RFwFkb^U=KmGk6-7W7%;
zWL!SV;&c2vvJQO26!3S$NCGkN3H<W%iTk`PKI_6KC{m%zBlay3j)G6%mzPh}*JbfJ
zDtuaGfj>92L>xYWUtT`Z?v}-8AbeV6xjbUu5^?whetG$X|5O&A1Hz|87Wi{ROT^(5
z_~qpjesEcQR)tTCESE>@TOtmhz%MVKc%CVX&u-z<A`ASvp(Wz*3H<W%8SryyS$z7!
zr$v^_Blay3hfm<wj8DAx5?o>WC0bwC|CH5zBkKm2cP;8)IW&A>GDl61Bp;7C$>*CU
zZAn1)3)O#T`cq^)4P~gcP;hGvujtvdrLro*f`A~<(FjnpIJw??`IE+cxMPsvI1G)0
zxbyeu>eR6wTjjI!-b<}AXU<4v@0}Y@!n*#>ezA4^+0TG~jNu`=?r1!T+7jB5VY6|_
z`upX5af2Q3OKX=S3B;)Xm)7+Me&in;tf5DTx!3jgFDvXf536PUhr6nM!z+-v)<P;u
zsoOuL9xZ%Omr?(>;x|XWTv}Ocd`$f2#`t7oTe#dxLP0<f=sX0Jt5vJ~nY!+oO}>ZK
ztz^jOBj5DFr=C&1Xsv><Ic)LztkJtI#`nu?u0ubWZHD{s8Ic!vAIJ0g&5+I)&QfCd
zAqB2L&9Ty0wKae5{`C2K@H5i<=IHtfd)ks=Gru_yzu7<+;ukN+5vG=yio$OOentIe
z(xd0^G5_)Td&o=NHtj{+C(rGbJj6%p3p}s7pi37D=#I(^$}<V?lcIxcRv+hic#oN|
z{-_E4UzxD_3qJn{pZ__Zf0)nz%!E)+*H82Jpcm!5_4#{^5b?b6yJfx?FgIn|<{$A$
z0x{x;=I;T&X5%N|GvM-37N2$D6BMZs{JEhe!cp)E{POaN`@AeZM}<#|ESE>@TOtmh
zz%MVKsIQCjnaqoQBoIC=IKZD9S|S|9{R#Z?@`-l0EItQ>Pm3&<N9<c74xhj;FP{PX
zPi6606+SJpz@HmhA`YLxFE5{U_Jhmfvs?JI$Z~naz9r)D3H<W%>GShUS$z7!r$rX{
zb3;qS;S>1f<+IAqrDgFsUYF<3h%J{#>_-xa!5;#C&G-!G@6By<9P*5z!8OGe60y5c
za2YxrjqSC)qx<}VhfIHpjHjUtwH69)t>G2*HMCuRMS&n72y_kts)K$~jzdnLp59`I
z<Bm*GxbKcMxci{=IXMpbqx5k|_!;nzam@rB;-+n&tEV<49yS|?tjai~fh@!=tzEW6
zI7<F8&EErl<R2TXNg(8*>HIy?qsJkc|A`)ljF%G{hwPgF5`7K!b(%brEH?d>DC}@Z
z<*oix9#{Mck1IZC!r;dytncLW_w)H5^7$X|`TI-=)pY$d4hg*|=My~+S(oQPK(0cY
zdpmB4a1_shz^~bJAo%pTe3ZrKsPJi#Wpil9EfI%L;Fp)rD&Oa2@fir87FjljcH9zi
z_ym4=`9ytPoX=!l>>~rhrv-=2p&hqGIEwlf_~qpj?QU6oR)tTCESp0+ZizU20>8X`
z`s_cI#b>whX^~}fXvZxPhfm;_m(MEu!DaF33!fHQHivfH5^?whetG!}_<5!*KF9Bp
zajS?en?pMuNg#&y6Zqxjv(C?@W${@TK0%QRZ4T|YCBjkg3H+MziE&8(<!z2bE*)A~
zY#1_SnN7ZyFC;Ioog=!h&;Oq3Pm%F7yBy_@3vT(bir=^G6kSOx2nYflhJfnjmvP8;
zIiIBz;0Ik8x0#UlA%B=Y4hcU4{;?ucZ}IUZYD;KKhRwzyeHn)|(1rM=wab<WN69~?
zaY*1t{&8F5kj#H_9MTKN;q6?Y9N5PY_YqMc%BVSH#vxy-GiqNaosGU{KzsB(ZFeJ^
z)g3&pcn^;&-fcp^Zo=xFe11Eh-^%Cj;PdY`A#@Xt`h7^&i*i2E<B+5B90<r&XmfAJ
zEfJ35IS}|YdkzGj0hf=m_zZ+ki!7T%J8p?Md;-6`eAf9sFN@Cs;nO0^=FpB?A`YLx
zFE5{{uZ#1U%!_@bDtuaS*c{q%ON67SZ-HN4KGE)$#b>whX^~}fXvZxPhfm;_m(PIx
zr?U9;g-?qtn?pNpi8y=$zr1|b*$*y@&+$8D+$v(r=FpBu5{RL`1%7$?^!a(FEI#YP
zCn!>(&7mE)L^ujQfnQ!etNdJA7N4WSr$v^{p&hqG96o_xGd?j68FaNf4!Lf4XjOkQ
zL(PxGyId^!FIw>li0Xc!;9aIaMaI+Ya+E(VxaG$xUJp+|2^JNCfFRH*2&mx$8Ha3_
z>{&_ye$WMnV?xFu|22Ia5`G5!V;T#hjcg-s+6OvHZAv_BHV#>TpM1~2U<TaM+T}<B
zF?!z7-!owR$Ukmt9FqA@jzfY|ST<qAef&7>*<*-QPEbzOTZaqsz7M%yQmrm;^>^^N
z;w3z;c##Q%^(L&3@cCgrzn0Ih;q$9a2=#=cejk$cqMT3kIAkEtfq-0vX=OaUoZ-11
z_%(YD1fM>akFxk25I)=D6Zqxjv&#2*S$tN7&$jpketG#seO;VSE4wMtZsF5HrS<w2
z_~qpj?QU6o`od>hd;-6`eERG^mBr`yw`JTaBDD4U6Zqxjv&w#OS$x)o&xp<f{w?s!
z%V)sPGiC8PDtxxZC-BS5XPuu*%i=Q-KHK6G_%-7b<B<L#MaLl*53XKqWwrHa)ZOBw
zz0uikb65BE`KwHSij1eB|01g`Pd_iXrQ;IsBchV(;@W2EmE?keAkaYw9H_3<d{@2M
z_aRSLlK4Jkd-YDOlJ$Mat($JD&=^WIW|N@8egDhd4-;gK#gOi-b7A5ZBeRq|en<+3
z<74l9^kl-To$o_JC&I8lpZyH@$G9%Cjkw{8Qrc~b*>5%u8OS&!0mYl!)?y#$qmcNa
zaY*1t{&7^MLmry0%L>0a*ry%8xoiG#e_xcj)?z5eiBw-o9BJ!-zK^Se;y0W76lJTm
zQ2gfB@QSc*tL#c*K|m1bECiH$RjcfwuDO}t+^uBbH{*Ni2wQ_J+ixa4#^0N!wp6XI
zpB(PH;_g1Q?QXw$Lgw%NAbtKG{EV{v=BoJ3C^jn0YLhJyj>2ySentIe(xbm;!2DzW
z-i~|k)z4xkPf7dJ_%0&38GIV|!}Bb09J3C2bM=mWt#qKKpJySL_HB036<omc@cK>Y
zuP|Ztd=m!C`25@W{9F0_xqSZ3CWIY4A3`t6`9#m(8<6o6K(0cYdpmB4aFqC=@2Ug8
zX5%N|v(DwCEIzBkr$v^{p&hqG96o_xUOsW3m&Iqd@M)1{b7;pc5r<FUmzPh}*Twlv
z=EXkZ3!fGoHivfH65%N7Ti}<MPqe#b@j1R-=6gkK*&N#ONCGkN3H<W%S!e&LEI#YP
zCn!>(&7mE)L^ujQfnQ!eefERP;&W8^w8*kKwBweD!zb{|%V(9JXUgI;5I!xkY!2<X
zCF1Z2{POY{@N;Qdd=3bo7FjljcH9zi_ym5<_{2D*Kdqf{$m16E_pj|=<ISFZd@@VT
zj%1EQ{&TaGt)18XqV=;)e~OH!+2tsITyV>eRoqW%t+0x;ARq{IG6K{rn)!QszSzt#
zN*kM?v5TzvdvoT@3C9BSA(=f6N%Qy8#yBj!WGnVlV=X;&p7L$RXJ`-OnK~NF-)<O(
z)cJwKLF14Izjs+>WZ<Blo38!M$uySh?kf%!HvZ}B2>*or`Rr%FKL&SXJ6gA%+7jB5
zp<$eCoAVFtx^(QA^LE`v;h}xIZu4av(m=!b7!2LE*%IL>@uR<I(B?WK@SB5Mj6eAj
zMJzZ@T1_5Vuw?P-zIE&R*BrNSXwACezL9k;JI^S_3FTi-9BJ!-E~EZg;y0(4F}KX6
z?~C7@j!Sb)+bX+~SP&2dItl@57TbOA#f$l+&Eae8H{0`zQgo56*sqiQX80Lp`OWqB
z%KCdz8O&;vBMHRdHv>QFS2oWmBtd#~nESmK|Hh(z^Qpsq=eO)Do9vmtnSS$EY^nC+
z8k6do;x{+<@v_Qcts;JNHa3lMZNC7E20=g&=oAEKR(!2OeaYC;`m<=Q+pPX(_^n9a
zJZ$VY(>pi~wwTYX<SMW~nfsdw<2iFiDtqtTcoOwDr|cK%Z-$>ymfswR-)t4dtTx#a
z;VArO;McC-99-Xy-`usd@Yi1KWv!jd{Hn9x=C1aegC*iOH}>zc%Ah$eesg1dvaxNm
z^h$C;KoIC81XO=gt#Y`!;&R^?kJo2e>nsuQ@Y~6wPuUWFGh`b0%@EOHzIhro<>Max
z8qe$M^}Jr)rpJ^xJG0b2emI4Wx(Rt-{QK$ei^I=I^P7RAX)7pK#6di4Hcz7}ezSor
z#4TQqBTOwZ6@}jn{EGU`q({Fm&ivzjaag-%!v;Mk2>S>l?r|gv4~?R!u{~3d)+#8^
zr2C!}89H7+!}z`a8%$Vzoe6`}O;|sT&sX{UVm`l!&o3|`)YJ9r@4c{Il=If#7l+35
zuqyNQEnw2hIO+~dOht(wdS4v)HJh&wK2bi(;<H=$w1{e*PvDoAPu%Ba@#zbnZSe{G
z^74uLx-34&x5@j(5uvT$pTI9KpJ;c>;<GM%Ms#XFJB?FIgrjIbfnQ!eefFQq;&W8^
zw8%>1l8z-e@Cp3#@>yj+xGX*c;nO0kbv}V#UOoeUo+*pZ0pYVPK7n6eKI{BkS{9#G
z;j=A1fnPH|@!pGnmFZ__{k@md)~r--zVxeC#&y{GR6ca0Sl4T!UrQWm>ws>b{Q2fO
zWjrmb&To8NaBGZ@>HkcVX{+o?VnIL<=qLoJS)5$&y+rQ^q!K~xYwY*jn7^m5MdiCz
zG4uD_{bKKn!_R<!jPWO8bwb`3mvKl<l=+j^-qNw;M*R``eR0N*{Nt!xBTX&$doRHi
z#r@`0U1z8@mI`l~e)CO*Ri-A?I98we#~s^MAr}8HtE@FXF1R(uNBrj0druAu0)jwm
z2&h)7R#6kxN}j)GXDa)>7m|YSXQ!~@uAdU_yXoA0=*TyJ57PO<SxO8)q=3UQA@ld{
zOP{|7KO@a=j;=rS(-^C0zuEk~`g`Pkaq!tnn+v}g_!ae=Nspet$NXddo_bbn^1YWR
z*KUmF#nO9h_BLnE&EY)2m*@ws$p08Rc*aR|?I_Qb&W=M5mABvz#_z2^Z9@Mk6IOq3
z!r%!$|2sbaTR#6dpMT7R&`H-%^Y@?^<-FDTdoy&c60Ik;@#zc4-hA`zn~%Bdw#`ci
z*NhGPaa8;3u-n;T#C^QXCs84OUaSrSKPu<$yzA<PFH-f+7A{}VZRY;zxtUy6igG)>
zNsG}fV`CO^z~2om5snhKG&d9YH5(hly^4FjEIxhV(;~~|5&M>i!zb{|%O~pY;(R9a
zVjmgbDs%ZFJiwnDMiPkO{sew``9vFB7N2$D6BMb?<q`Xq2uHyu@XO0*oqegY_#72J
zEwaF$8(Ja`pTI9KpFaD<W$_sZpB7mzkJz_F96o_xUOub*Y*QAW1Hz|87Wi{ROT^(5
z_~qp@;Ahmb_^b+_7FjNj*tbL+K7n5|KEt_um$f-2*|lV7{RIQb3^hNJ){UZ5-P}BF
zD-ycjul}g%TamFfl%du_!L2pCBHy=_qAIe2fFRJ}2&f)^8Ix?c49rpr@PjTm91}7o
z`MvZpN%$G?j}@7EBio3Zwt)^)n-UM3jY$SFCTSoGaZ78LEfJ1V{}RpR1AgQm8>~qn
z<e}+YKGLJdB$<DVNg6ZAi`k>U*K9akbBwYVorz+UkA`EC2a+swhk1>SNxI`sl!D5e
z|0^D2`~{COK4QZ9&rRq*%;$f`=O5zpKjrg3F(K)rjjo@@t)Lg>yxlR$TVHw3*!c(T
zHFn4RZ*4yJrx%XRlQBsHxc+N%Z^tbWjuJmKCJFqgoV#UX$G!Wi`OE*U$0V=W@Mcv$
zO_>6>RW2(<xotWoDbM&8aW<cJ+!C?4)nk&3U$bX?@EPzuUlyOf@M)1{b7;pc5r<FU
zmzPh}-NpG#=EXiTeus=nMtIm9+VMyNF}mOA{sew``9vFB7N2$D6BMb?=FpB?A{+&u
zz%MVKRraOI;&W8^w8*kKwBweD!zb{|%V)qoaanu@!ly-+&7mE)L>xYWUtT`z{A^Pe
zp98|DMV8H>9k)arK7n6eK7D>hEsM{p@M)1{b7;pc5r<FU*Njh$Nd|L^j!C|@?~?xE
z)>jpYvYy#Z^Yut(B4WBvsQRGkTamFfyBy_@3vT(biu=72QG`W@ARq{I1_IP9Vto;F
z#nD(+gg~S3gHd|>J*y~HRxJBH$*r4is-&;89_pg@HTF|ue(IeuGbUo*A2YJnb?7$P
z95rJ@);Sz*E1acL<ENs!{~Zp88I#oNRX!$meG&K>@Q-m_WLv-Prp;1YLR&IyHYQn>
zF-Zemh+kT}Y>9A``j==-68MpSTx3iVezX7b!hZAM1q18U`XY0anap<t#W*2-OX5gd
z2Xq+?er){aY1W8(TUwpO)26#4W+Y&9>Uj?yaCa{qHInu{W6PO%bZ;lm#r3vwo~)BR
zLN|_m`@GR#CT^%(Ouk&(lL0q_fyp1@X`!2Ul95di5CjB)d<e|+_9el}(dy4kZrGFc
zqnZ1Y^<CYlj?ZV4<g>mHMt*aeeM_@j$A#b3wPbWOOAlRU);U*4-u+oh5I+@-`OP1D
z=cCqI5HY`5tLN|RE>yTQ_{DP)&YNIABh7D)QlMQ(hOXbd|IT-hz4BXIPp0r#75d^g
zM=-|xE4w|mL^uk+8Te)S%}2d|6_@8;`sT8J{<H5V_{~9AQNQ_heZ#Bzhr1RGtzMDL
zW}YLNe)Bi-q|Ps+aj5T<{$|6!UB2?irN22pR&kv37gUiH1O$POM?krdwaQfrhH}5F
zYvY{lH<MHopElt)L$jOC-G|(6@SC+MI2;r54$OBm-hp91Bh7D)uAkZx+LEE`H$SxN
z(y?RC+jSd-hxYBdt$vxT%V)3yerfG;B!L+GX5g3QH}BlIHuRgX+`2yDH<KRy4h-{;
zcVMtCUy<+X(s)jzcVJ$u2P&fLOk0=Flp9>F38}pK_Zz>r`a=^2KQLkaJ`?)i<MTWC
z{5^dBZa!Z(AvELp5PDJ0TYU#+rmj_@b@@)6F*LS(<u^B<yz;eU|2ON1u|Uc>AXj0;
zeLQZ7a1`Yn_{Gb)5qis&TYJ8IYM<^)Sh@1gEAM>4u~vO#>Ll=ta#NJ&rtibZ{4$Hg
z)_B(M!!UltGupREA@oJ>uHpVKi%(zpjNotaz9l|^UtT^@j~D0D%5F+@e2csf6TyP}
z$qge3#Hjw%@53;DdHF<pTo#{o;S&_8(B%>PmIz0|C-BS5XO;b`viKYoJ}t7qpBq{t
z4xhj;FP{PX$7S&u2%i>NE|1u^L>xYWUtT`z{G3x3pQGPB{af@sAlV23@aKj}bWq;{
zzr1|<{JdHgpWVWzMV8AW_AL>Pf=}Srj8BYD`iHbRKDlsUaHM~AGDFReBp;_Z%{QB;
zZAC&qdspu?{VX!hhBDMzD7dwTS5z0bQdC7&5D)}990BFc%J^ivWnh+4fFE?h;h2!|
z$sOtAlkhX(ALG%4Y$I;k2Few+De<t`_+(YaZ46`~ZfWhZCBjkikM;X7j34>O(U@My
zL;f}Tn175<8Z*d?=Y6s7NaB|HwYg8`jb`$?<CFF{=Sy>pPwtUatIJ!koyQxu@_6GN
zCak{Ogu%P`{5$ykC4BxOKEK|CP)|7O?}o8nl=D`{C*ALco$&qt*nDNr%CUdC_3W|#
z{?T4zzO2y)$W@4P<%X6BM~R;ot2pqZa&F!uvSn*M_$GR!I~v2Pb6F|MtvmMomht|v
z%TM^v%`dp_(y_HaJnvh+)L|AGE~nVHL^z5%4EV+CFe9{N({<t4^Z#}qSyAKARvSaQ
zBc6S(3ySjGZ0tF>SNi6dIu(FdH;g0@Bc5q&3-~qb%R!xtI=wib$U%D8Eqq$QxIALt
z65%NL1b%t>MB7{zpY^-s{*2fHe{L8_AO=2xUtT`z>|>S1=eY0*id5+Gh<!_hqu>+x
z<>k|7U%4zkt1=d1kp=$T&=PU@1b%t>tnxEYS$qx%pB7mzkJz_F96o_xUOoeUb}frf
zU--1h0)K93i8y=$zh-=5tTNcA_*mu0s$@P|ID)RjM3PO3BW)ef&u8@!)8`^%Zf;r1
zw=cNm!zt+_wN-W{u^=D_bQA&ytE<J@eP%Qz8smz9XuNix7mkrcDH_GH-=(BANS?2f
zrj3QLMzZDp^eM{sBw4#p=LZgl8LRA7c{V?@=7_uBX#Ekq1E$sLKj<%np8@|E+>!0)
zh2k~lCmA*ytE|`LUCI!~7W*S;tP=Q<e_Uj&5`MEkt+3xbc(FGST|(<I6yrq7TN6jx
zI-tv_KWzNwGS{F>=92CU{3gR1bd*E;UUlQxhaB==Q|mXO21s6IJ4a~E!=&cOF6n;u
z*E~diC^v|wg=y#Mm~4W8ARq|jK|t2-%Y#xgnORBzKNa0=Yxlv=Nb{ScJX702TQYS0
zW_RtrK>TI{U5H;+J8X%mC_UGZ-wgb+{N~(i_uXRr$(JZEHtD~_ZQFYbmb`BL>UD#!
zSi8D!O@G(Y<->hz`|a~N;+cN)Z8;LRAfn4?b*=O_H}?6`%3pL$`kNyxTEnr0k}9Ht
zfFRJ}2vD;a^*7VJ=CpR1`hT<5yq+^>4*O+!q0H`YCJl!+R-?X4qwSGR{B#P+cSe76
zOe6V<Y1bGNQkd+$^XS)jURST_Cyt*rdutcq=qwe%569qeP=E8m?_E|I891otrfYw5
zGW9pR`-%f+y=!Pm57FNYKO@a=o{;|LU7y<_YXN|RtTq|vqY!>`o$<@^o13lO7xp*b
z*p}bCcJ(Du-dc>I7$=hbOX5gd2Xq}0tdag^gCdnR+EC`~IL^7pq`%qVmBb~&5!eA&
zgp@`$K|l}?1ezl-L%tQ$9Hbl)@R=!8+ivS`hM$q<H=C@`U%Rb{?>Fsl7QZ=yG4x^3
z)*`e-I10ZxXyP~L?r*-nEx&oVf23>C;E3vVUfzFU|C)7OrwsRvs85#X*)sj++w-K(
zFQfg$`fBNKj{A5hWBEeqZ_bBP665>@RU`!gL7>wSpk^`ZZzeRRr9jenelyiot!$0^
zn~!R&ifp+*onkNbclY);M;UeeW_<z<N3r?Mk?yn@`kUcrr1{Mg(cfGZzuAI6t4+2<
zI10ZR__f{NeAUGI%}X!r@5|>lr+gBEukl;S%Wmh0u0#A);x{LKx~y`SJT8875|ey*
zwo`N^tso!>bQS`U-|X>=OKE;{qj?%sFSRyTqp{!I)tCU+XV&d4CFw-J8Gc4tezPxr
zvsD_i+GI<Fqwt%7U%P&Da79tS`St5pT+r{$o_%~WllhL|@h>60IdP<|1NuI$4vOEL
z&(BLQi{dw@<I)_{w#u#~76b%=jzS>vo11-`JZpZlf-Cf0^Ff#GH`96=`!rUP@SCx&
zH2M1({mrrb<(uE!I1}z!r@uKiPXlZJ&zUo#=1gxq$*iYA&l<6PXMS_z`OfHXhM$q<
zH|r(bbw;Tzp)DD@^E49QCVxieHyiALUs}5yNgxKlxz6~t>o@zC74@6X=o?(K4%sRa
zX8O%zMYLt7(PcEaK>X(BK3-ZGG{?km&c>!OuGs}s&Ikg6fFKY@!1kNXnY8}qM)NeT
z*>HHp_^woEVM84C7>-kz?KjieBk51}MmF4^mTurT$F$}1oAbOE7^!vqW_<z<N15|9
z;Af=y%@Z+CBM`qiB3VCopgh~5CBjko&A_i+zd4v&*l+G%<8_^({uJF%j1%d%B#yLo
zK-V4he({?d`*(J^OUA`-PGXV|&$i00Bo+h&fzCoextq1h;p&>3^*47b8R{#gKHUeO
zdPeoB)+z{FgRHUNoaVP%`YqpF9}V~2bnZTM<nx;$oiCiF#PCB3I2`D2e!-XT>Y*QD
zh&W-${m)K+Gqjk{zc>9`v+y(0{O0KTsV$)`88+*0u8QAmpbPO!YnLq%j>2ySentIe
z(lf4fg8!^<&AK^gw2m*8OZQu|bLQNv$4E%ei}gT7be%&7&p3(74$3ph>`8x|jmn$9
z!uY+_^Gz5mGhzL0CiLIR=g;NyZ|3u7^ZBz(2-S4`^sQOwMLBQvTeD5SQz_r^0pu!-
zxR1vz5snf+`a6}3AC+^voES0ai@rOG@=+F_<2&TLh7nu9-wh)P#K0%;%gZP3^RoCH
zknfIyA{DwkV&4+sDEI_^dHF<rU7XKkUhE@P;nRWx{JEhe!cp)E{POaNcDF1(N2R{C
z$Z~naz9r)D3H<W%S!MsJEIzyI(tbv4fj>8lBoM>>3H<W%8L%H*7N5bL!Y4Q?(tZNJ
zynNRAd8RBrN98-u5uFA6A>fynPoJMl%i_})KHK6G_%-7*T%Yvirk|npb^X;4<nqDQ
zp8jKHIe#?yc+6?<$gd-hr0(;po@uUA#?#!kJKw(GmJg?7o0_MHii{v22nYfi0oBWI
z#sy^@vUrJ@rIO+YEpRv{WE}FI^l?b|8Ssx4nR+AJh?_Qo4pW;F51Wlc`Z5k_APaFz
zYnLq%j#7UFeGd!xk$-HkCV`NLo@VR%lO8<|$^5(HkTiFeO~!(V``BT<L+2WeL%uY}
zIHVSFRFmFdiSc{uXPD4`g9)pzGhuK#pFfSySNZ&6KEKF>P)*lQ<B-scaz4@Hklpee
z2*_2KR>o0gEin}h``sA7X3v4(6Xl~UKF7C9zgxsq>wE&gynNz5FN@Cs;WMJM!2JpQ
z^74uLx;UR!c2lC=!l#8w>-Q({%gZO)-Lm+se_QI?h|t#g1b%t>th4`A7N5S1TSash
zsBeK^UOs*HgUjNxF7<6&d;-6`d{+5+rYt^3h0nJ51b%t>4EVXUEIxhVvn@V>Uo$>2
z4jFWreukpskX=iMRu)`M1l@wx^_u9`#F4fR=zgL40&|@*o|fg4H9ju5HO8lvzM{5D
zvm_P-1c9lHfa>M1RnAaX_#7ICq&C+6X?|!NBxC(OeI9@Ey$?Cj>xiha-ge%H{7(8f
zB>W8c$AkfG6EzN5|D&wGXAq^oS#5G8ff$Xq&^RRUBmcOqaY*JrJ`SnNd-xtBY*UDG
zU>`%A&NUi`d|o%{eXY8`aJ`f={yt>1Mh&zYoBn*`_g3F+%1!Vt6V~5hLjMvIRxjf7
z>-qc$pC9Jq@4r!h*B;|m(2H{3`Z#2i&$QV1Ht9!=Z~^ab7)c<8aY*3T>^Ts8qI{Ia
zXH}l-L6Hhw9<gtUa1?w3zr1|nJ}-;UK<-bAEb!-smWabA@XO05>g%%j91uP&vRodq
zZ;3d30>8X`qTMZv&#Lfgkp=$T&=PU@1b%t>g#T0)pQFO3MV8AW_AL>IPvDoA&w%~l
zviR&4J}t7qpBq{t4xhj;FQ0XOo+*pZ@vZW_60zm-i2X<cG5EK@FE5`yKbMxpXI=ON
zMJfb;ZfJ>c6np}|W_)5C(m$l|IOO1(<pW(y*9{M?>QCk;$C1o&$Za_iw;-a&A**Xm
ze~OH!xn(KezTlP*r{q1`LP-@-K|m1bbOcnpSgV|%P$+jCGG3p(paJR_LrGivQ6;m-
z9}(BuDBYADhrBy|91?y8{9|A@QR9$-j6+%_HC~3Jw$~EjDEY@U4hj6oKW=LrlKFSX
zA(aX3Z@M`^IdG5D{t;;htz&6pjC8GVph@?4EqO%gc(8`Y6<71P;wlqX2Td4Uz~}q<
z{0csQKA&G^Lg*wM_4|;l7v+4S#~}ygIS`Pmu(fhd>#_pBX3v4(v(DwCEIxhdcWaAJ
z;Fp(ApYQXs_^itP*%qI`FE5{{ugl`o7e3qK6Zqxj6YXwUe2(8C{o)a!t+$`RFE5{U
z_Mgh))0cIVBRUKCL%=UDpFaD+W$_uv{n-|uz%MVKReqi+i_g07*%qI`FE5_~KbMxp
zr!RcA#V7D<#wW%hgMHc>hdl0eeHW}5TzQE%d-m~GzH>#<jgk=Fo;cFh0o^ZDf1Bw~
zk@2)FpRDn5!L2bqt@IVORhlKSARq`#VFajItW}Oyf18a%o~~r@eaLwI<E4&;WP_Id
zeaNkwZmP`4PDp1k_85ldo9^a)tc-EUSpM?857{^q?%7%D0DdZ}-%*3ZfpuBu%o(Zd
zy>sJ9{5{Buv+sN#vgYi^Er$L1>}S9~rm-N}$ab`LCbcEBB||edMz+lPhjv{$cFcLZ
zZlmzfzFoIfWgOB#!}!F@J>dyVEio0vI3(~R|G3CFB>ZN7T4BF=Xr$P@JzNlqG4{jo
z+hJ@%BD#$FZxz2ey^Nu(H4epZZj4Vhwi8l@MTsCF2y_Gj)GQjmnJ#x<^@Hz4``BpR
zf!*OZlf6S=G(DvD)%|Hn%6Ep}9MhD~Z=U#dL>xc4iQgQ{a$*O5GyIG+zd4$RMQsUf
z$*`H<?2F%QpbPO!YnLq%j>2ySe(n0r!7aw0EU^CG`jNI?drA3BHechN$;)o%h%Tem
zbH#7Y_U+QjUi_H&&2c>PW7$s8m9&C@Akbk5D95>0Ib2<Iv;JnaELYgy{NPj1s6N$N
z1z~f{;`Ldc_g<p@xtMm>XJ((UVSjT>!L#Kzx3&IWJ>$I>_A}D_=IHr{u%|5<HuIb7
ze=vTGN#E&z<7GH%lasi>Zw7uv{btfLuGIU?zx&?HH5)dxy#5}&r_gANp0{kN_<Jw+
z+NU^9<t=!#DKGW2P3WIx!s?kO43_ZuGx+=)`26em{OKlydOROOFUt8uzxPt#BJ*~E
zc~q|5@*YVbM*L8D0)EZr9f41jkFxk26+S_c3SAztZ;5aed;-6`eBwSYjn99V`!iw-
z{JCKyfmp~V<Cm9D)YoP4>HkFd1V=^gPvDoAPqe#b@mZJqGorIVeGB~Z@>ys9sWd+2
zz0vmgWc>2->9ZeP7N5S{pKb98{POZy<>#5Q`0U;x?Po-&>jz;!l0Xdp5b(>(XTZ;;
zW${@RK0%QR!JiviA{+&uz^@sf;rzWDO+Q2H<B&`G)~p!1aPS@dMc3fVoWFNh^77g_
zqWk>nr<v=N@iezA<=YqB^5K-cXWJ>dl2#B91Ud|XNjnaiJ|5zA<~ZbC>En>_GvFU%
z?2()u#7!GPrJCB5c-U+lGLUgd16hb$TDxqCaFqOGz5X8KNB(g%t{(ExvvcEG=A^fB
z<<|8lo8&le-k;Iqkj%e34yoiheLN2l_wnPj*JOUImww;H$05I$RIAIIUp0Pjb+HM9
zMJB8-Frh!6&p)$Kf9EUsg9+<To6vvCgiud7()xSQi*i2U<B)gCb3HIm`jja1kpyCR
z4y-eN&7K3nC(1`@e9Ch@C{iK#b3;pnqamM+UtT_OpO?m`tOsS0<?@JqOT^`q@yp96
z>g%%jtllH_ZNwJ%bHhjiG2EZPFE5{Hcgx~)RPIkuq(YZR>{}un1)sn#FP~NRpUUDh
zkoMCe3;emECF1Z2{POY%Ke#MD2ZT?HESE>@TOtmhz%MVKc%CVX&v9u#EwaF$8(Ja`
zpTI9KpLi}Ui_hRL@rNR|TpqC>Ng#&y6Zkdb6XTG<^`;-9z&Pa4y1sS&UhC`bA<LQL
zkab8*OsM;Xs=qh=DKeghGSpfqxV45?<oixcAr>uyfFRHb2vD=w?)rOFSGBS=UVm@@
z#;V9x?AOWb@4?T2e~j@bV$~0E1V72J**IiX#vwx#qc)asw11WeN69~?aY*1t{&A6U
zNcheERYm>grOSu=*7hHFMt|R`ks`}hXRjl2ck;5^Iil;3;0f`Y<7LY(XU*f{H#f&9
z9p83}uA~(N1cA;%Ao82{e6eZS;d|LQ(43yE_4nq?nWNi0TfT9;vENK<{WaKPKC_am
zJQw`tgWtQXGBR*b&rR3<=44v8+TB-mxwB5SyB|k{{4)JrQT8*+@|%6}n=Rn8+GI<F
zqwt%7U%P&Da7A&ydHw3O>lO|7U6jmat|L@Iq;B6yJzDsnu0!g-6Tdm#ugfZX@#Eq*
z$MMLIW#Muw2?YT`pyLpT{N`rs?`8ST3bG0Ho74Pui<U|6H(!6z>op#5IL!B6^cAS%
zwTk)Pi@Wdo$?m>|fQrIzhM$q<H%HGO)Rxee44d^g*Z<G>YbJfC|IKQXleoZd27c}O
z&HiPD{pP_7*RG~dBo^IJj1%eaNgQeGfG(r{Z^duU@9QPYqxj89O!DE`R@s%rf`A~<
zQ3y;fznP#vpfUc`zPdl1g8c2t`@NT5m1pxaezUvZ*iUvLf!_>2Bh7D)-uta-pQMQ2
z9Ejg+K~FfQ{VWlV!fytC?fT8Z+`@kI>cJKLT}%2`_g$RKW}YLNeskK|)p-<V$mlX!
zeO&zJ^fH!K?vlsEZ%$&856_HJDTf6CK|l~lATSYrGu2hCY}xZPNK2FNQIIY7r;Sf;
zzq#gq7t!5!=4t3l%KQVr8Gc4tesfj)W{ZQYHrW#4DEwyN*RJ2}zr3*Dd|`jzaG{CK
zd?}fJ^N!?Yw{t|-A;DwDZ=PnY64s7VH|@0PGg36$yn5b)2i)CD>1OD}sM~CrC?1U^
zMaS~_X^rH`Fr7!}#<6doH~KmoH-kYOHypFWByJ{+{1pTQ0YM-S0tb>%<!JS1Ccn6p
zHcx`uknDLHR428vW&6!rH{Dbr`<ab(a!yD%zuC<}+I5f&U1rufS4ZCcSxOK;71iIa
z!!>;DosX(@C!>1Xnx~=Fn|-&x+1-!l1b#F8j5NPFN&$Y7p*v4w|DEq1d*!#bo=oAf
zD)hx~j$pJnwE46I!YKS^;Fsk$ANBrKeDCyD_TITMu|6r@3k<r7`^`f`>jv6zoKcL!
zYeVF_h)hhVai~8k{mt>R71bMgj!S=YYj{PNPD~*dErNg`&<O}ovxxOH%=M=ElzXUC
zS$^|GzZaO<P@C*g`x^W0=Jx`%ZGOZsIZ}V&GgGLxnBPo&Qto?z?!Mx{>2G%Tjbi+T
z-wZz^&2OHF^)%{F8-ERUJ3Gv3lar{xZw7u@esi;R{oyzJhqUK67yTHPy0XmMF>P)C
zBoeugXusM2mH5q(FPBx`vX6`3oQ+LmTyvLG5flUj0YN~ui?zz(3WsLz1$HYL>Kmmw
z#1B68jPea@6@<-UjMrx`XpkVyZ@0u_KC?Qm+gmzM=_c>|X4S|3<-2<5M;Ibb7^e3(
z(-lRVe`oslu;6E;`OOiIggtG^(Cu%2XxF7<$DFt8HVO~z+jUzYezSot#4lcsBTOwZ
z6@}jn{EGU`q-R{|1OM*#u&&v#K|iC#tv4P|dA=*`>__wB?GxsESQx9R+ow2A<*oV)
z<M#%Sn6UnH6Z#LEu=+DT{}7-5DWCrdpMTJVP><(B=tVi7=<i{5|3ua!2j-?s=P&0p
zuMYT8IZr-lL09xXGs;I<e2&X^=p#CHy$=rT&=TP&-EYJv@XO05?(?$v41`aMESp0+
zZizU20>8X`qP{MR&+!MPzKz(jIke-E1Y+U+$@t~v6YXwUd{)0Le1fAQ?I-Zd%V)s;
zQ(1hD%lAPeI*YWQEq))g&VF!Nd=AL{*%qI`FYo>7^Yctue2xmAZSe{G^72{b=hCwH
ztV(^`7N5Yc8J`%34E8BJ4!NdpRex7?XlPZzIef{-W4`kHECePXs{8zcADjLZ8BeqQ
z>iluREk9Oqzjp#ku&59O1c44ffa(}(7BPR%j7ml0R}loX)@9cGJyZWgvdv?S-+S4w
zu>xveW53-ze=jw6v(!=iR5USvk1(1uXN2BuIElv{-TgxI_uyy1KL&Ti>O{=ntI9Z}
z#dlVlY>9A``U~~<uoyq`kE1!Cq=&XzPwx49(+c~|Lo3(yuPNg@vfnosF;RatCiR`h
zZ|>~(o^{zk8Bt+aUO0|@$VKI{vvC6sNn8wujm}S0F%~_7fFLmS5y<zx`0n(Z$@hc*
zmx4dHC*hfneqS7ZMw;IoA{1+P=_uOWTE(5emv~=X{N@NojT_otJG4YN3cuNJ;y34h
zUwpmsCtsrc?*{iqA|nfyEL}I;zvhB<1BKswp+~UP?FXqx3m???wST|#H^+TEyPP$T
zOMi27jMDKfTy7<yARq{I9s;UeoSg5yWHi{+zPdln8u=6dKYQ;1C)rV*i(ircjmg0v
zf_ZC!%`!HyK}bu`&IU=$f)d)bkhDOn<4kLMx?3G4tN|?`U`(*cNFoW5mLw64z@Q8a
zAR#g`<{8;0EH)2;ZLrMqbN|2ZgnMuI^z8IZPusA2cYi&%s&2(|PMtb+&Z)YG?YWoF
zFLCb0<cwZ&b0lAJE#be#&u+Q7``pXIe<bI{6?P84Uh8s{!$U4NJN#CwZ)QDm?#1xG
z7Uy1m-#fX)v!8P>U+Pho^fvY_m3!yEq0fb{=`(e!KF4mc_g}I1U$XZL_Wld{^y)c&
zelOYUbvj?`b1w%IKQae7p1o+?c}FZ8g2a!UlQ8%#=Xd1zbov+;J{P`{_+dwwS~)%)
ze*NOp=lQVkIhLGDi_p1>`RVZM7oX0rhlS77Ey?_h5W4dD>G10ppT6!63!euPzugF(
ztC*h-zkcyKZ}QWy@Okj&WPU~nUHSZU`1Om=1(Sn^h0pm!9*WSpiuvjA>ldFX+s_OO
zpX-zT%0T#Z`1Om=G25383!f7Q6Mh>Zbmjck;kO(<{oG4xQuPe0utT=8&3Y!+jC#Am
z&=P9RAo%7AD_SPI==|ny(s2&c4{dQj;`mFx_p%s1uzla<ci}rZjz^Bb!@Zup-uD`H
zl9oUqfj|O*#SpklaBn6q`@NU{ZvVZ-Jq=ULrWVEh+)J2ZfyfTm`G&T)rQUVs>_7I0
z$m%}?JI=if^?NTSXSjUq<LVT4xOVX0;%B!VvfF=eKCwe8=tB4{wGPL!AxL`*&%HSO
zC?6}VnJ>h{*1rAs&RebAyr(dGVm&j%W>@#Glayk0d@B}SgP_pp!VSZhn|+Q%eU9Ta
zk((p9M4?1(j$o055(p#^IMN}|aqdNq7%yH|f*_Hb4^1a7GxLdm%gW8m-&@`1_g+lS
z=p{Gv+m`w-l+zZ;&)sr!xBuQ)A~!n_@r=t?@o+4Q1zm1-_$?(j_kCXctX0d+6Q$f_
zrO;@s_TbBsa`U$r4||Xlq0Q9wI?m+$Mx4I-4<~TzA6A|7c@WY~$|ev<AaI010PEs!
z=ed_&@;h+D^|kvaC}aM^_T0-&OPqT#Iir`{9Knxk3I8pAE+;pq61iDH7s8J)?Eb~F
zSkUEWhu>=DX4WI;UJU=;=U&j9;kL665$-$F89UUsmiYcq=U(`pb$^+Gu76A)yGG^S
z`OoTe;WPS7eOjMmpR)I#wD%vk_aC$OAJL~*&GE~*7pvFle67#DOeB804stxZ>D%M6
zEEXhwc<#mFx18UR<J0M5X!yK6@gs|{<@oD<Mmanb;?v;QFFt*q4-KC`PVnhCTGjkC
z`1OlV=hwr+=fXcF_#6bE4!?f!>Fe&W@Hu}|g3m$l>G10ppYtX^4Go`(UwwqmRmem0
zD?A6hU~=%V@Oj`z$^48E+ARlpJj&rAmxmmF{m##n?PrFC&-tGw_;ehtMjmqb^^4Cj
z+m{Xtp9d3pC_?8d_^rclIehxLm-%O^o?+$ZUiM71rn0O2)Qb#pNjv0sVh~t^py-9>
zuhelS_B7}5D|;qzTN%6}Uc3eroK%rOAc4RU0s$_I`$zdL7ysAGhH+^By`ZNp#Oqu9
zJoNWo<Rs4GLY~65I(~lch5cT_4%yK^+TMDN(HmIJ^AAzTe+YK?@7;3qDToj0doLzu
zxP0v6B39SpdoK%jCim|}^sv;L9Odv3_pdzn;_#z<-0R#+-~M~sS1mV}Dyu&$&fzR6
zH-Fa$yEadmqYEEO<mO10TZ-P6PEX|KrD1buxULNmC$%IHNFZ=TKmelFe~15G9F|MV
z&CI2;Uvz3CUJ~IBnc3o!h2@rzo8`U#=}&Ink8c`2`e{M1Zd(v+>yW#>p7`?*5%Hg=
zyTIXcv!8Y0cM?5J*xPp#yS|g?wdgZ-V{iXGmos|F%?d}B=UUSHxt#yrd?Gh1=tB7Q
zT9;#4Ea-Bx!*8{6GwTumJ;Q&u{~l<oCv8T!U);B4zC*gK{~l|+@8W7@-ljgNa_`vt
z^*R4OeJ;F5pQ(4-`z!4I<@WyV_Wo`9^y)c&`tNzYPUmawzqkHpi9O6=zO;N9<?s;k
zL;pR8-*Wa7$EVZBu<$wmlLViRqt)Qk;ny!deVz{sp9lXj!RH|Obolj)Pv_Ue!skTd
zPZFV1<g@<e3h|dV`1OlVUw4Ov&#`2F4unsKU%&VqGx=#~_)P9m9SolazkcyKZ*uUk
z@Oj`LlJzq}XfIytd*mn=LoVMs{QAY`g6(I9hR?)*FNUa9;M3sOFFsSYFC7*>#}a%F
zginXxa`+7W_kMN7EjK~0unPaZnNp*<+B-xzMpp~Q#;d{G7Nrc7AbO#(x2QfPv8OG?
zBMzOO!0piRS&438AZktuClE*=a5zH%>*D^=O&H<b?xt3$UN#K+@2$s=HZ$7#{`Noq
zOMKG&xjcY6`PrfFGVu2A-n&w+uiZb%$#RFS9rA|Wc1V{qTt0T#QP}aYt`!6kanSi(
z&JH=2*dY~UA>2CYID%;`8-m=w(tpq4NBLM`&3qvqwl3$t$9lvLY54E9Ltb|2rQ$2f
zTI2sB+{aTj{IJDI9Vz|XBXUbe35~GL`Af~N_-3;!zDb{BZ_wxb>+Jn&?ES^|{?+#W
zmHPDR-EQUeI-Rez9dazWcfvuAXD=FenvG>c(DgJ9zvcFUj?V?7k742S;NK^Dw+K@!
z$EU-uUwo!)o(~J3sbqde=v>A8bolj)Pv_Ue!sq(rUYLRK>G10ppT6!63!euQJI6ry
zbolj)&jpj8hK0`q|D3F!5kgnKemea6#b?Uo;Gy9&SwACmu44T>u)=%Q#%w<`EPSSt
z`8g0i9e(}J&w1OI4h^4)-^XD1?9=bV?U1Q|UacMStU|q6m|eGhx=_!I7h;|6H@Ku7
z@^AXBp}%~h>s$B>)u$x(w58VYL#HQjJ2ZS&qATi;Y?E9G1QG}wfe^rT6Tgk;A(!+U
z>b60eZB6ZNhpip*`rdX(mor>GcKg#>*&$Pj9WuremRgfzSu99<3+<2&Kkj!1vO^mF
zyX}yxIS(mc{#)GTFl9MABr_Jn+);qEmzp=b;>*mgc#%FAUaZg5i|qYYd;c_h{}g-w
zWPN(AZnyG!ozB<V4tX%y2Rg{{Tp6A7e2&Af-+ld<(Z{gxc_6Vv4unsKU%&XAw|PD+
ze5MkA@qzH^@aq?!&aa1s&-Fh{>>Lq7SI%!8e*NOp*WF>^b3U<iMCe?_`swiN7oTG$
zKMf0?2b1|Z5I!A#{o-@p<ltf9b0U$42EwPquU~vF*nVbM_&k`{AqT>z!>?a_rfgq2
zEPT!<_#6nI4!`B_>2}EZ+Xu8m?kKnFu^z7=xTGEOdn>4<kF25>9Xnq2DTzI8DH;3F
z=?UBp4WE_hiu$10BufH;1Oi7U1b$oXkZw}z#>$athb$d;Gw+e`e{P>~Im6{+&$3o_
z$c2ATzGvVtU&)&5c1VXG<>P_ukcR)YutVN28c@$rKX%Aoj)0`S`6roOakJSKH|cY1
zgFfe<VDJCb-v5ccf1JI4tUkSCPUl{))A?H4AybLo%|VXmQnF_(iv@`v+94f&%k2Xl
zp9@AG!@}o$qIZiSYvuTK`1Om=l+E*@;WN4SaWH%u{QAYG^Xp;Zb0Wd#K=^d{^@~qm
zcZY`0<UHhH_%!(Si_Zm<pN56c^$9))!l%QpUwo!a4jvXhQ^|J+2EwPquU~wQ*?wkN
z_&kt&hkGD=I{f;@=e+GphlS6vWdAu3J{^9`;nVGqsqYMEhdi;KnThpy1;Hilkbk>^
zO8UqucF2W4QhiEdPg`maeCYH9Zij}?N_0hi&}@<=fj|O*BNGC@t#-(zuyJJCA$Rn)
zL%N*d^6^^RA?Fi2WQ-1%T9ad0Ea-MfhactRf$Wfm|Fy6~_WHJCd<6a2A@lJ97AEbb
z9%FXJW6Z9&PM-^p(r4-q?ENF`{lo12L+$-T^y$^R-OB5AI$vu$<bh-#=pe^)WpqwE
zq{DByeW2rW%;;lS_?$@aIS@V_e*NNe-sbtR@VW4V<osNO(3Q_mhhM+=bbdW7d`={K
z)Circ;I|IHe(~w+?y&H=KEdZe_;mR7i_bBWpN56c`DFbZ2%iqWe(^bPa`3S5xjy+`
z_CWY_`1Om=1>4UI3!e*#AJ0Jebolj)&y?*;hlS7e$$cLK;nU%_96sF+IscUb?T}{{
zYUNC>mpgWB96f_e+9AK+GyAF&^*rQ*RiBdB)0WyZ9XdUM+o9pJ5?#@%DLE;aKp=s@
z;SPb{Ry*VppN9;NOgrTE-gd|_lQUdCUTZt#SYn5a&Hts=<X9F9x*gKtNBMXlJEY-%
zE$omFT-@D`lz!}x6CEWqBIh9=Xm-W>n_cmK`W(BDKIiXc@9$~vQ}+HI_Wo}A^y=Mi
zHE;Dgov*naGSSmG$njhmor@jP;J4g9(DAuo^f4@auK#6Xw~7$Da(p`c`o(9;=J~Mj
zIg#jTB6O}|emea6#i#S@Vc|2CoVOYXpANr%@#*XCu<$vSte*qn)8W@IJ{L@W8Wuhm
zlKTV(!l%QpUwo!a4jvXh4<vT0f$-_@>ldG6wx1amKG!Gnb0B;={QAY`yzNVeh0jzn
zKL^66!*4l!x*alg{eX7J-BX3k>Mmwo(hm8*V-Q$_pq_`ki|SJnd)iWa;6tY;a62@7
zR-!9f1DZ~%NFb0v;P8aNZ>t?LGTU^*{m8UKKBKoCa>3*bmyg%l4w*{qkTL38YE6!1
zv7p-_9e$LLBZ6i<{I`GWci&aB@V3#5Z)lxh>6R7*tmhySQ-=SwutWB?;c3hK+m9V`
zJjx!1<UHh2W><Wn%K7up*XP1MeWvF0IW}YOTlT(T@9X;XO5JXivU;7)dygT6tHU>Z
zE-Cz5L-Wb^Asys+u8huUhjjQYw-0oDjv0Ln3!f9oJ!Avn)8W@IK7F1K3!e*#-D)6w
zI{f;@r}OJ!;d6b$ZwJDs!>?a_`no$Td>;65;`b3Dbmi-(!>?a_y8JXOe9kB5TO)L?
zMjkTw^^4DWlY@ta&xPdsa|7Yi;ny!d7i>Q>EPSSt`8g0i9e(}dGiCeIq2V*JD-VWG
zgWq!aJmZugxD72$eE!3?@H<EAp%`$TS*!y~2G2O<j7+)EY_8@Yq*c14D&p^!Y<2k;
zxBce<8PEKW_30(J-(H7^zkjTa_kiX1e4TrK)jP4A=ks#2R?h4Dw|}XR`j2&ad!EnB
zjafOb@8FM%qyCGR^L$?JXe;OS{q5hJGwQ#1InU?i4*p+-gV*=fn@<__U%Z^>^Kw^P
zIj`@!Yez@@7cb}eyxhE%^ZGviu}!1?i<k3!UhZrw=k>ksy?;FFzj!&%=jGO0Ij`@s
zOCL7szj!&%=jHDFjl#w2d-bdCJ?g)BInU?i7Ob4t_oDs5sQ=>SJfD}l#L9Vn2Y>wI
zt^SLb^L$=z!peDlU%mO}t^SLb^L$=zi<R^GKK`+fZS`Ngoagg$DJ$poU3$qSTm2U=
z=lQ(cZU3S0^!i@3fB#nh#mjj<FL%Jod3~Twj8A{@a-Pr2&00CH@6t<-MnClzFX#EZ
z+?bW~`o8hCubtq(csbAK<&L&;ULW(u|M`6Pd|vM0oi_ihJbA=_{pa&XU;CQ-Z)JHe
z=lQ(c)mF~yBVYR2Kb_y94_}A!p3lq8TRE>UXuoju!22FM`WN%_qEq+wJfD|4+sb);
zEcdEc-fI-F>FB5D^K$F0oY(jN{_mfU{`_ZU;68X-e0-kI%ia0!Hvg<V+xyP9_H2FW
zMR)6H&+~b?1uN(EedB9qgfNM>=lQ(cC05Ssd;fv;qrbWH&J%w9Z_SSOJfD}FuyS7C
zzx?7Cr0b{s#eAxxoagg$TdbVd_u&uyspMxL`Oop-`Mg}p%6WbN`pXMOfA|mC(Jy}f
zBpIid^L$?JwqM))v+{)JkAIjS{lv#Nca-ydUhaUE^ZHos``<fv^s|5c)Q)nV&&$nP
zIj@i9Zn|N|=*53|-;Q#g&&!QjIj`?~x1Bxunv3r@dexOzcEHo~dAXyloY!~F=S~=1
z_`(;2$Hd|3`Mli0U)lV#^6$Fh81U=;TOA(`PtWJ&uC{VsAKM~*e)1E?cJ$NpdAWHj
z=k?w8o$qXY=jH2!r^Wl}`MliOR?h1KU2lEuYhH804cBe!n75wK%dNL^Uf)lDGCq3C
zSDq;_jko9dyxg7tX7kU=fAj0l5?bM$kC*d&UT(q4d3`rtzkT#$AKf?_wEwFEE}qZJ
zU1H_DzQ6hIvq!<NM?d<J4ISh2d|qzC%6Wa{gVG*5iGPki&*$Z~SUInc^yy=Zm-BpH
zE@kDsKDPIrZ+$DAyWXDX^K!TStIa<vfAy!1AAQM-U%aTC=ksz0ten?(?KRhI{mq@T
zTmR|c!49~1J})<G<-9)fT*xnr+Vgx~Zp_MgeT2)+Uw($n`8ZrWpO-t@%6WZS?#o+A
zYw>cP&&wVB7n^@pp5-7<obdYBJ+Pyk=ksz`TRE@q2mkxIqnHa@zi`t{9dzdTyxhE%
z^ZHO`^o?(L!`APA?|U8PJfD|4+sb);ulS35f;K;L0{DDKKRut9TW{sOzPDU<naCk5
zABT(Q^Ky6o(&nF)$NIeW{Ra-5uxS0Wd|qzB;$9!-&sMJO;PoBj^L$?J5-aEJQvP`7
z<(G4O9pyZqmz%J1UZ3xe{_{7#=_u#<yxbNm=k<9x!i4{P9(g`5m$GtRpOiD+5-;cZ
zyxeWSu=!`@S&n_|?x*MTatExO*XQN5zfnIupO>4pa$cY3Cw<5J>G{0en3ePTqH>-5
z)AM<`qph6R7nWmV_~-ESd|vM09X9{0yz^--6_xXRUhZlu=k;L?JAuFMa-Pr2&09II
z@6KOOkGB8c3jh=KN$`GpJ}-B+mGk=k`KP7P|M>TrMddu7ms@Y;yuPpBdb;eVyYb-p
zyxg5XxA|w~Klp)>(Jy`R=~%})@#p!x+=7+!`hM~ApKlcztE-&n^KzG1Ij;|L<O$&M
zTNO4D9z36yo3L_TAL0M%SG{U0`^&Jy)AM<`EmqF!``l-rMn19i=Rf;d$Gr7?UM^+j
zygs%;zWbhczq_NH=ks#6{U4iuR{kGuKko$o-uQ+Gca-ydUhaUE^ZI`A^UCPI|Ee|m
zFTYTKARnLS^K!FR&g;AFJ7<ml<VS_k+yCx)9dPk{UT)0Fd3}%rM=67T=F?B^DChaS
z+|gFf>-*kqw{5-h!;gmydU8iO&*$Y1{><i|m4E3)7j6B(`yV&@k*l8AQO@&uxvQ<5
z*GD|a-0hOHJfD}Fw{l+J>tFY}tzY}<SGRup>Z?2O;Q74V*;dZ$`}EaYw!ZDHZ<QaL
zc071KFSp*xd3}^yzPvEDwR=7Cd|vL(f42E&<$-U|%k7KTKg;Lk7A)@d5qIP**vECi
z)AM<`ORSu?i}6Vr(pr3cp3looSUIonsw<x$`m?|K<dZtec|I?<#maeooOj&AasL=^
z&+~b?l$G=PxaXLE`Tw_Qf8_bR+-?74^Uun2kMq{IJYv!Q-Sc_516I!KBX41Q-TQve
z=jCRtoY%*_^t-OOV$r_J^Le>3E9doLAHEg1-}-moe@+KnJfD|4+RAx-+#8WbyX9oh
z=j9Im)aIX+|K%N3p_i|GX;%mSJfD}l+RAx-)Y1OxUmK$@d+FUf%6UF7H*e*<KJZ=P
zXQb^o-aVg}JKM^6eZc!DU;>%<x{h+5&&#d1a$es{UVN9)Z+~+)^gW$&o#*p%cOJC)
zXXS-I^pLYWpO;&(a$X;Gif?%RgGRge)1J@EU1H_DzW2QQF<axZi1QcE=jA4>oYzMf
zzWik`!@fW0pcl{Q<+fNkuaEGjUa=c4p3lprten@!_C$8+;=7*D%iZ=9n}1e5ET@5x
ze|kPIcfiVdeJZc2?8>4J7tiPAX04pp=jFQPEYIiV#;lyz7xlAKKJ$ED?r1CL^+mFE
zXF1R3<qn!1#_Nl4-dWD`dAX~toY!Yy#G|vE=ks!I_wo9mYZW^2b{(Fc&&zrJUZ2Ok
z-03@D1G+o>k3X$`xmO~?O6+B)@7S4{D%3MUp<W2<UZcPd)~KFd)vRQUy~+<OZT?s9
z6gywMe)jbqmca0D@cTXcS@Qq*<LF!N{F2yP?a6)~3dXnGeDewZ>+C$|f&V(+L@}K!
zOUL;po+lm-0=65K)lk1_OZTm_4Xt&lw58I!d$m-)b=#41zvbo=zm7D%il-qg|M1*D
zO1yl*tkg#Z61eMk#BSU+oZTH+*mk^qkNZ<A9Q1E$SLeBxLF+rx%9HQofLGx2kK>Qe
zJHF?+l=U_*<L~+I7f5g%e8kIM$6Ve2;&_kKMR&gC<2vt8+4_6meV5qMmM;<I7>j~y
z5W0LDD>?O~AUF?)Vx0HxLRuV#%yX!Jr=GO4l`RCdi6N|kw;!tERlZ9(ul~^m*N|sV
z{JlPBUwiV+jF0^vjgzkKg&)_R2jMsW@EzgW)IN;<VQ7MH;{5)Mbp1>HfsQ*qWM+xS
ze;30X1INtYy&38HmpW$gxQ8`PHa%$F97jKOur027{Pn{3{Qv52+^pwN?e*Iq_Ty0X
ztkpaA*T=n%krn<+o%dwn4~Hs-twgVXB1>F$>EGaa-RNC|;OnpZy?Y=G2pvTzCI6O!
zKwK_8+#uz$i?2t70mqoS=!3G(@O=$&Uw8fl#QWa?gY~v9vOoOCe(cB7)1Qej*G9<4
z*D6iBJQT*SmDl<n;g0u=`}<MN=YLuLoY7+Oy_PQVYvXatxs6YUkFQS-AIz_z{&RW3
z8(}{#Ld4VIf-7<Zaix7ZMxNw7L2!)xRXiS}yAMleUdpP>!@M45iicUw!#u~V{N@;u
zQS@B%F_NbH<zoa!w<DkPbi#;rlkfLh^N=k6{_Lz%Go-!M{_EzI4@X5jN4wO&)1F?f
ztUDPWV0rvmg?h6vyHviV(p_fr_r%E$5%GSUgD_<{@L$y%NqAk1{uthG@0h1oIG#r;
zus`uS<7MM{;%&wAcjxhT<N3Su1lG@Zo~Ume`z0viFgXojj-B*H`XT;(jxemW7`;Q1
z&=cv5H061jk8!5+=VhI4nda*s)A*iorjs67_MR4|{)X?!N7&!n88&&#Y4l-8JJi3B
zW)79<5bs>x_bej_9BNK@zSTYtobj}9|G+vpZtmy2AEzR$^Va9MJ{|sXTo8VqexF#F
z^V-u{Kj&P$UE*-5-?L8-g0t~5^>ST*K4p3F=<DCJPk(l`Ue5QGccq#Bex(IgkiVWg
z;{^X<-uv1!x~`*+%eMu=!gfufuF3PoGXZ$`H})>wN2V^)GZ^t4@i6g|!X)v0Z$WXb
zA)agL@M(K?Ph|3i`nuDq`9iZ^C@h_IsW+UOJ^%ef&(xJArhf7`*<Wif*~vYt>g0hN
zd&6<8c7@ER`HDUle*JEV`!n8K@}i;syZ++8U+elwA6J7Qe4LjUefW60+uJ`9JmJ?D
z20;Yx(_772tGUuyDf!oF+3q&_iSGmzzW~4gx?hz0AK&wcQU9g#iqBNGH(sMs{f6GO
zGYI&*H+~B{AgSW_+w<?>)E~+`AU=Nq9Qyd*Z1`LX4!c|R;_5z0r(++qyhHG=!HK};
zQNjGj9wX!6Ox|71O%|F;X`XNOPXOX~;9oDk(pR_NvrgdVc|$rd`gc0;_f8)kKdV}9
zO|62tuT^=k=dQuFgbo}St9ibAF&&V<J3n{+?o~VA_jv6a-TZw=CO0`=ueK^H61rAb
z%6q}R#8JVE@oO)|-_JAt{v3Or+xd)Y>NiAr>$jJ`Ph8l=-);OpuT#(Kz0U2dmaD6~
z>Q~`5XnBYJU3^}DvYWpT*1~*vXUgvee|LDS`1$x_7V&rP!+iXgWB7!C?=kq~{vlik
zj6Ono@p)r(<o($V8NV{#obdQcpM#c<+Ou`w!8d(|_OeJGIJsQSG^1=Q3>^%=^>LWf
z%b)h97a#xIj9wIcw$FS_b5}?&MjuWu4(4t?^Xx)td}8(J2nH?h{lX3g^bh%Qjp=3V
zNV!wuPkPgfkH3>%XiK{gCbJ7K4C%$z-)?$|@S~wY<$^)Wdw;m!Xy5NHNBn-n;j!Z9
z$YOfgf=Yb<a#;s|iE4K_)aA~U%Wbw_zl&uhU2Q|y^<31`_Tt!_^ZeiMzf*R@Mu0}<
zU!?NV9SHYdItWhLeM+fP*xj5f53pHUqO<?FMEdHJ$=A1Sv+<4IWxbA-@w-Z;)MLc{
zZF}U&)cMB$F|U^IrHj;@R)4(M?`-(a6Ss@~-JhgG3PT>heF=KmotdhYOO^4}4xDxh
z%4>=jhQ-$~ICXmv)Bxc5m#V&;PL(Tx_o>@YtTr3#AeL1p*P3E~$ZoE|zguvxjQ>>U
zO<MC`*nsHFVXIfW)JlL5RuKlIu0sLxz-h-vei&$rbU=HTr#}_p<-5>5XM9YtXH<#y
zDePjefR_udjovQoh^mNEoo?LDzjC@cHPbBAOPO+1=URn+v<4M%%uX|WM)cw^;#2;~
zJEt3Wg_%D=_4$@3xbq6Nr+8eSVI7^xy#U^sLu1HCx}p8W+xu;@zx=pYpDpdW3qB#f
z=7-24uhz=`GJjL2{^A}%W@ixm=k|rN;wd$0b{Mn2%-b{GKY)2?|L*?#kVU@qy$`N+
z1Ede?=X{*5pY!o{x3~YX-TFDTp{#Vadj8d#U}%4NK7LEuU(Pmt+?kzt?H*76@&76N
z3)}rZeow-W;kV%TUHm%#%~!hgb2fh852eoP4TnMPCxe#vQLMfFg|Mo{;M6bE^d9}s
zJbUq#zIt+CvEE(maEAAg4))l*F#7Pi4`2HW>EPVoIXZB>toZr9CFsEL9@2sF#csZE
zVyRIp!yr3VsH{q>HfVVt?@_^Z;O<8SsiV5}uV)o<&DEF`NCzkGTp!+{{JX&q93Cru
z?tj0o2VRcrJpH76{O`c<mxe%0Z*O$sbmR4<jGjEcXQGswtP~mzPgvn|(DG4p3qm(*
zt%sfe(GhYt{(Bem53%#u_z$Irr5x#Uqsx(w7nd(R9?Txq<;Sz5kuRQ6FI94-TDj1-
ztv4#MZpZEuPY$c^H$Xe@_4qAm=RL#L%jf8s-PF0A&wks9^0}RtvdQrLc<vH<sd~$7
zcOTmP_>C$@UXFNNKGJ;iFX)mZZTvp}Q>XQoBX?vPg>?g%QU@*Xqg;DCFX8s&od<s4
z^B+WhIRE=!i}mW9|33c9F?>RxTlc~BMdVGRkC0wYvH4?k<e=N#$~FdZ{Tj5q_XGNA
zj0bYY{k!E1vGc-Pf2G0(>E+Qo7j8d7=;cwp>BYzI>qX3s2B4407e*f;y*$I{rHju*
z_+EErCSPi;RL&T*ywl53!M3}ttz1faxzEmp@LNipU5D?#{V!WgFO*At{GD>?e(L47
zM(5)ec7%M!=p>|@F{2x!Cx>7R@2gs!1}*RX7|y!%^BrTMTzYuZP4EYc>4xi)kAK;9
z$><}bmy?ZNjE)>nF?{bj{Y+2o|2b&+sHI`7OE>J859OGsrNc7x$lmng<BzXPn>T-a
z^vb8dXms=D#<q~Z7=48Fa-z|T(UHR}hVSi_QlknxXKl`3_VFCFeAL7+=;cj2QXzkd
zS~@I4kLXP=KK?kpMB|UiF-9LDz3ec0F*@=xrxu!-a=DcA_)4FHmXF#S2EFXrF&2Ka
z^)O$L9^RW?eEiGOi_u3&FE2E`g3*!VX?LxVYn3yrcA*}$y!T@``=mR!&xhZHJ<RFl
zVZG_a$KORS<~tDMFGe3By*%IO#puZK<oI5<r?e^s{-EW(AH$)S`)?mRQt0LA-t^+*
z@1hq2dyHO;K0<ogXY^up<aj!>+8Uo2KyN>2dGE(?=;e&-Q%B1AjEDB77axC|UfdU{
zLl0y05z@=7(TmZM<0%w!S1G~_THgCH9D2F;4GTvKy*#8hz4-X!^b)~5#$Sv+LVB4t
zdNDfkGBJFwJG0u%G)vWrzw75YX!)p(VaU7r8zznrdvfsmz3Iirzbw5NeT4MVG<q>Q
zay;#xC=^yiAYRa(gO-n~8wS0+{f5*pj}W`SgL~79kAGQuG5QGUrEc_MbmVvve6Lp6
zMJ0ol_kIj#J^Jzu2Sa_`VZJ|lP;Ywi@psY7;{B1)M@TO<qZgwi$J5SoAydz-{siZs
z<-H%np_gCZaPV3kcOX{UsI|i`^uQ(P#m3)7FE;#`{9^PG(o4nY#puZ472+Gx%W8H?
zgO>Mx42NDGaO1*}LN5>KO)ozFIK5na!>{bl>KMHkeT4K<HhM8Say+fdXyk?Q9JG8?
zmC7$`=LbhS^<!^5aHP=7{d?1kkKgHq@V@NQPuqI5@5Io4Wb_fz%lSqxMn{gPJ@rhb
zF;!|bR=6)(tMXpYaQMp!H_jg^^m4!6^y1@pdRfvB#^@uYmkFa6qa(*toL*M5Bn?{L
z`!O7P*?r^0kwP!`?M*K}{$=UK=p&?;qS1@dk>ly40eB1R7__|iV>tdVr5ndWdhwPH
z)8~D9(~FPa{a-pqACq5<K0<oQ8@(7Ec{#^7Pi(K|BA!9Zdq14NtgZZV;f?E$6neRL
zZ+h|ZJAYAl+d1R-{X0e<A-!acUW|?$Put72iHt{9@f@^#)Z`HKb^Bj&W9mqumwWZ5
z7azaVi^?y4E<MIyj6OnoInU_D=*aPOTD3kk$eI2@%X>f8{(KqsNBiG+<H2im+=sjV
z<+>LyrWgA0`uIEjcpd6|^1BEzx-mKl>E?MxH%3ohGSZ{0jsgZP@BJ7K-CTa-!Vy9@
z`(M<XZhZWG(~Z$dNH=~y%jn7RwI@><U*%C&sbbLb-jCtX%?EEhaD>p!b=UMh&+6mv
zn{JFwoNgRHDWfNk4|*@)pyj<E!@5^+KBSwdrNc7xdyDyvoM*N1yIkXAUwp5iu1DSU
z;`#l#s>7#V7|%h=dsS<HuOQBh?!O4<M*ZJmZil?*VtUzvq5HiYOWiBz=brtXb9heJ
z?%D9Wfv6wehWh-zC%;#49n$!3o&2TrcvSEd{7*fkzi+3qUViW>p8t0hQ}?^y{Wd({
z0T0;r(1$+sJpK^hcCUNgYs1~{b~jGlq5ON$gC4ZusZV|C#m{-pbMAQVbD!JZy?b~2
zS<iY_d)KaA?UPSFxji~M+CKjH<A3nj$3FHQ4}S22&seKYJnB)8+IHS~=iS<Bwc3qF
zqg}05+vRe(Jw86(W<Sn8`)ujUGoJAb>Bsi%+uQtY*|OyagY@HJ4|~{#6Hh#G|I1$X
zvi8eg{_^%k7hTkT(TiTxe&GvW*#7fB|MPaeUT>d&{`u`(E+_ps>#Vavc<kJ{Q~JPu
zJpS>IziOp;dEf&dxDMmJ_4TiRefte>ctiU&uX&C9UiGS1wdd#Or7ss=cwu{PZmwOc
z)!L;}sh!Pc+k5x!l|DEucI?>EW?z7}AEZ*Lb^YR`*=%0>j(5DHefi~=x8L%Xx3n+4
z^wRd5-t?w6`@_DlAA}3xF*`dec$u1-YUlI$5EjpT<}=%4V`FW=P=4FCZM)+>_qor8
z<@x|P-};{Syr=!%_rABy=R4o|PU**6-}=_DAMC@cU;XO#OJDj@+;FRKAZ@S@q>FSq
z-6lRxJ@wS~)1UtI_DLt5BtPKej(gtoo=d_3FueFfANo-H!yo=|`-30+VEY3f_(1!8
z?|WbS-S2+4^n-o4?6S++Z+zn$+pm4?Yum4U<tv3Y_V3@{-nVaGn>0%LoS2x9K9Dxq
z2cILHCy##gqxbiM0p{^Kv~|ZPKl#b_M?d<}_D4SQ5$Q*~4_91qMf+`Udt2Cti!Z*o
z{fbw-Lg;~XNqPY8qz{Ax=1u$A&wh6Mw9`(Lxj|U)_mGD?WYPQtU0r+i)mOLu_wkQ^
zy#29{eXM=ul~)QZ4jecj_;}a5-X(pw<dRE-HrWT#<cnYY;t&^{8<UfhLJ!Y--t*df
z_Uvhs9@sW%V*UE{7sp`$-gSSB_l|3>xu*TO&wZ}_*MI%j(htI-S06|dgaiBVy4Sr<
z=+XP|f)~7?Ju@@YF)z+N_uTdwXPhB;Fq*vM?sva?$SXH&*s$&T>#uL$aKjC4KG~1Y
ze)hA{hfjRs6M~PcuDVL-;r;J_ztDrv4bF==Ef5au18E@+gFpMTKWlSdvVGFSBOdXH
z^Be}CyZxX4{O8*@-E>p?#v5;xeq4L)wH<wMdLVsrUN|jqZjwhhEpT3PPISZIoO8|z
zX_4(e;R#Q8hqn*dUG>E;ezDEp7ryWX=?CF(-F4RqE<W|CPqj%8gaPLUVZixGJaA4B
z4}<~xKwkNhm%K!HB<Cb~HF;#5H?e)J70`3&Ka{`rD_{9a`^#Vca{EhP`jYg6uwWm$
z;lMr+2Ar3q#karx?ZOv0C&?E$9~=hcO_fTeT`U&cqyes3r<`(%!2fAad)lquKHz!l
zSHJqzHv7OI`#?Al7wiLR@-v_LOgm1GoR^LV@`N|P`OU%~|MD;YGMo>bj~85Uf$(SY
zB+i3g?PG39``!n_fw&+|kS2T4Bk|xc;9MXb5C&|Ye2MGT^Pm5Gp+n*zlgS8A<UH(#
zKX7>M*T4St_Se4lwf3#I-rBzT=9@e4KssO_2!p@+tG^0q!C~NYfiNH)aD5<e_IW@Y
zaD5^#a(*~6G7|Ct(91i%@r`e^`C}h$x#bq2g@uI$p~W~1NQ=%R2?O#a=ShTt^8=>=
z&VzXSgg@uuAN|oE?RWfRjXdL9-}+Yjo8SCqn{bH3fOJ4S5C)`!Pk;K;Aq>bHITuI=
zTras+Iu3k&oSvQ*UgYEV_V0V&`-W>F*2VjS=I;3Rx4$hgVEb_xbkiYuH2D&F0&&2(
z==^~Eh%n$h;QGw=Iey~b`7mie&i@Dp;OiZ1pD-W}oEAA3IDVgt<jsUZ90!C!d@hn7
zkp{>IxGu7N@&L}iZr<ZKfUI%`@O=mI5XXVf1@Z&pfPA@|4oL%Cqn#Ic`{c!JpX(9V
z!ZXi2lXAcv-e&g`aJ$N35XXVf#W)Nc2c!YwfbEk8oCYbM_#C86z;%%8@M9kHnEl=D
zdi>!JfA~7U`i|~-;Cz{MKz>L%Wc$Q{(_kF_l+(xqoDXvyBL92JQ=W3|a<VA<09fDQ
z^N{?|$Ip4_^T5YXe(d;nKE(D(e}q5R!9t<X-nw<`wTF_u90q*;@gM*32GI8p;&UKQ
zgFb$)Nj`qZzpq7<2PhMf_AuXX<(?_t#&Y3%-}~P8#~7|659(eEI0t-9^!1QDkZU35
zA9*lg&#^!8iBH_$J=d0NJO2KJ6HYh-JQZkHyvJoD%89-fvVHPju7Tt|!1uL~^HwzG
zc)Q(UjAI+*imNcUZYA8=HtC*g5a}Lcz60aE74vvM_iWwe*D6j~k-v58)@{HVvJJB2
zwnsklksJ5}eT6bzzwPb92UoY<1A2iE>ixwVQE(-CfnBGbS*Y;)n`agpt@5g_gj}+#
zKUwlk@*;si0)Yeqzr7GxIB-C|!@K^y`jnog0^GW|<mZNa4(34o-hURwuQz|D&xQM4
z^sH({iDReh_a*$<U3lT<JLUfUtL@qS-u2kt|E2WUKAO}~E7W7h^7n>EcaM^I0)Yeq
z2?P=dBoIg-kU$`TKmvgT0to~X2qX|lAn>~m0qPr|UI|<;@i~O!dI7$lN1E$1p4jys
z(N+KZ>0MV{G%U#eosF35js6s2_J6|kNS<+bx!PPuCH;W^ygjeq+e=w{-VbSS(}0bk
zxVPu^dwU1or}{DPhqSkO?b`GDy}dDO&-)?m9lLhzdHvqrLDT<vKcu}UtzCOwzqdDU
z?Rh_>z2nxdJ+I%}TW{@oKcv0m*RDOU-`n$=y&uvZ9dHNycj9T=H$LX`M+N)8vEgyQ
zzECUU{M(Her)@v=r1XP=V5Cx*Z3ZK?dSN;k$!D6GV5C^8H;`1$;O}fO7wijWr%Dz4
z$soqi977khGR?imJ~wFcG6x14xlFl$Kp0NX6iVY0s3~7)<m#oGT!UAyWYUdRwmDZT
z1nF8P&)ivjM~AtJ8CcuWnR-1l7j(qZW!#U(mf3KlT5P5n(EwALg<4o(I#X^H0*ohD
zlKUmXdiBLft%^%x3-w^UUTxI^B=WZ@kPdmrisj6BP{~Xc_8!N9Wv20MCV>t6(Zr2@
zWd=rCrL?40YlXUA^4CN;j%vf+P0tNRP+h56m`c|R#R3i%=L%`o8Ksx20GXyO&RT*6
z5<{~pG^?hK5Qeo(b0P>EZYV6#sJz2{>}eU$NZ2$W!raYLp%IKsl+fXNZelK7uU3Je
z2EO-_8As3RtxB_mE^-X%je<#BUx*KnG$u>6S|QJ&<f_O7fOt~A1Xwr2DEg=g^}<x9
zM*5m5<v~rQY%r2(Gzv|HnL_ut=LV>}l&e<K$b@<_<(xgzEsUX>ZdLNtbgk8x@Z?Mp
z*o!4M@clL1Ba&{l*i3ws)#*aLUdk8JXdA<w3r4E-(l{F$sm-NJl}0lIoJiOB8swUp
zjBph=ESSGo!sod-Ii%YgH*5k~FpXG9XR?jGnlw_&0MDFGncQR{&m0QM4SO+CkU|a3
z60PVNJ1rT2;&{|LoA&ChYELfZg<$p`hYDv%WfS~Eg5@(e!J}XKG?9qmP1S@Bi604!
z*IG?X_g1|i(P}oxg0LoqR5E#75tc952sdp3{bqr_Y++xM)2<E_gYx;9&eWv@qUd-t
zDAlR~YOMp?p!cavV=`!z33r*K8p15iwd$O0Bl&s>#Uxtb-=Hy3otZ4m1ykr8>#9|i
zoHw$Q^+Fj_Yr4S33+2L8Kr~Ow<kiW^`s-m!IA}WyI?DqGAXV1NLXBp9?`Bjc;nKc>
z4m%iOYa_*ab&9n!GwFU)kdrxphH#3G<WT{U6nTcXDH%3!UX18e&Q+&sqz%D9BVb<4
zFN_KUZ4}C74loxWlnbV$)&`qz6bh3;v6^c&()p5+VG)zC#ze3LaF=mR??$20z*isZ
zeubzonV`~|N@vR%Fx6lJ{51_mTrM@|0%2>Y6BnmPwPI!g*cb<xPuNsEaf&#vm8QW4
zYSl7u#@uO85yAqQMX61|tTdGg@I4}+aU@qR)i6qitHmPbH?bybL6DJi@{KA$AQ0qu
ztJ(9(Ei&Xqpu@BdJB)^7jZ(;2qx?4Ve0?UJtJW)+M`#ZSVXI7R;`8ZDv1q<fYsw7a
zJApW`$m~ENlPYpFJC@d*4Qgaln8{%CJm=2=0!Q+MTSx%pG=gfqIZ;jPF!S}yjG>kI
zN`q?);?i><?NSjn%404#=j3$0S|l1U3#vuHBEXDfTEJfxylDz-7~EFN7fVWTdyfZ1
z!SxD&d?Qx?ITq_!NGf%GqBjEgpn>EdH<v48DwQ#5N`;wpVGiiUfPyBOk)%5h!t0=%
znIjT2mC{tm(43ipm0@a0L0Oa2nwfJXmKY(OEoeqUgBWN)uqS>bdm4nBMSbN=wosP2
zJCe)fCO~pzO5~YXok0Ap8aQnMjCdS?V&}SE7}>FCFcRZvn~8Kb#=&3`)-iKr1kwu&
zrx`&P8cj67;YA4oQzFEH%OC{-;z&TqfWm+wf>#*^i7DdvXqwWLLbrj%6Wjq45M;r>
zbMjaCC!^W`0z#<rE>|sA>#Q=<sLk@vTp&peG*L)nf;CH(@rF*Wv`k;(nC&${;licx
z0XMKrtOA(Cy5KO_&`ezJNlTmao*m%NRl($InA-BUQWyt|1bkG8usJ(IG_|I6<>rv<
z)$=i1@OMuB?qlH^Iu~T?Sg_NGY5z2;JViQOEjIRU26>Q7@WiAKAVub@Q_6UByv$h+
zWP;XY?7<Aaw>puowwhSR0!VN{HkhQ`m&S_3GQ~`eixVFx#s}tFjnA1(U7pC)z{e$+
zG*zlg7MbLl7e3{9;TZ~3r6%JOnR=d2NTpszWL{}5GnM5#)a%(1#L6Qt5tN+Fk;jzg
z6D*?%@Jof3jq3vA%Jmt_m0MHN-#nIZCQOzplm4_Mh_B-lOv7}vy2tC8X{-cHESHK>
zCqc|O$U(YPEEUQ!n&u2<7vD4{GWqHZL;DJqmb8Wdk}6CSDqtYPC6Y_Mkc2(c6A-mA
zN-#aaD_O(djo_>hm1My!LQ)2UP+`;~l-uR@{kneCPAjlwqM8L?XN49=t0J*Cf?8uv
z|D=^|C`~ZGa1o7CASukI0pofp3%+8)5~x)Lf2<D$unnow1kq}#foa8MxgtTGi5f0d
zir7t1O4K-ZDkT?AAb@G2K(SVU*rn@1IL=twNUoaY*2>^PS;*>?ma!COTV>1}*)U;!
z2HjwlXh8P1orO@$xS)i8ARU5=r0mpqdMv;ne8IX^$<!$dAXd#av2AHcP*(>ej%ToK
z;`)=$Oi_vtDp-(PP3`t{B|Wn-;NMO1ceDIGmVc)Tv)C$uNulTz1Eg&3-~<3MfJKQ4
zDS0o!O##+6;dTwll*4vJwv`OXu2NGdC`t+fz@&~d$P_8p&DIOG0)((RdqU_0rK(H@
z(YFAZyDqD1B?B=*(q#`bQUNOw#Df`Q$*1T9xz|_^ACUk6Nm3JL`4Fth98jucnnr;H
zek4;PG9sA)jfwmWCEEPVxctq^U#^%~w(H~A*8+rKF<2K#aSTWm0VsAO|3Lbz7BFK#
z1IVahNR<|XtcTqQsK*G&)*mc-*-{2_17;SxRLDzILPTA*Rn+FdI~c)sv|%J9U1t(k
zIy@zgT?}^V6Oh3I4YIFcXf6uwvmh2cbga>;7y}3903YEk6Pa>VHt4l_8p#y;q}RuB
ziOXd`d)z5xW`(%I1oXOE;a19X6p<~A$QBeJsWj1w6|{&9+}|{`Umk6S-|Nno0AkLg
z=_*()q)-IO_ay)<Xq^;uAq=a)p$i{Gr4H6Y<pDM%B70-E)SzID-9~j10?c?e!!d${
z%VA`yG#iF>WwzXy6_C#)uLhaZhzxu^Uji@;xM9@zXBd}xObIATq5LTVm_j~6j|ksk
z0YgkWCd^rZDx?mw6wgsB%?c@nO(^Z7vo;XxGr%%lfs6`O4R;t(G?egVX_O6fZVm*1
zT_a{8_!bsFQQQz8m`eDIsf52-uE5w+*6WyeObEt7Sq-K@g7ABar~F%EBsa1sJcYKo
zHRB{EN+evXm!J>8(58`^R$0FW1_>~$_#~pDrsT??MimvYAW6U_u;xU)fE{d^>I+DY
zq(|;Kj5DA+6V<#$bg8w7bcze+X0Di&t)wYw6yhadQNUIP+sN@6Kuh9auOTBdFBA#2
zA~xq)Y`h^P;tw{uv$cHy5&FSBETm9WAv?9E?t4WT3PuWf=%lzO4n`yg`vLV=wFxK)
z$0Z}EfQ3Ms1STe^gaL)mK&c~$H<_9oL5HrILfM;-WHU`jXtE$f$3YHDj+uez5tuS?
zVq-9|DJX6Xiuk)3J6I4$0jnydMkq}Ja476%Tildl`~Y31g$_Wik%ufR2o)g%wX%NT
zlF^L>A*lyjqFSZdXvyDcV5EWht&eH!*&y$?^f4_P_LlsG;&ZYBhTO8}G`A~F2+qJj
zjnKqS*JDtyK&3PrV5O-9Gr<IQ<8>&u2viMa3)2vnfg^5UHH4W|t>}tBLL~!qDv-v~
z5S%gHl^Jf}7EeSnoh}+|OhG#bH2^LTE9Ww`hRGLHIzd(pP>l=_xXB|Mn%T%dn{3$J
z;MmY52-2*y0{j)F4V7cXa&-nX3EPTjj$(tN-IF94McP213mo|YkVRtDwQK@J8R+^l
z0}!hm)+$qr(<)D>3V0UV+d2GLN_z{H2sYKAW(2s1<4<~q(B<|7e+bbcczRIGOqI%W
zx?h}@lo5FV>hdhvGmAhoOG3_8v2Du9gLOfMt5OXkPmB!=Y9q&p=O%k@<X%O0E}9<3
zNnM+$ypsU}ju~vMslyd~rVG?)v8y6WiozsKC1a_Abe-Hl?1-wg^^u-|zJ#NtD44@6
z1^3W;Mp&EghE*{E?xve#+pJnFY!PBiwT2;LGH0iK;*B&WFxbf%DCAVc&E<u^ra>G~
z5Kt|hFHNU&<f~y2)4U1269|(#Dr_Sm&Q>dBsFffh`iNL1$Xe%NJOXVcMogZ-+WC?5
zw5d<E2O}~|srJMi6_pD$Ur-}b=``1sw0<O>?{VuN7p#ZC9%W-n*bJ};%@+C&)jN5f
z5I2Ad-5p{qh6kZU%8*n%B^ggipBBZgs&}b+$OL8iJCc{W_y;=*(KyO(0^8_#5-5#(
zZC%Vm;h^D*h^A{7THrL&7qVKRa7fnBY>!NF5~zaJLa3FiKgNK@p=4w>nG)pA$``oo
z1VF7UB#pT#EH%(^L+eh0(zz<wH6&xrRLlqy9hu_hkJamAO1d;9k)jMA;E|YBI9;6u
z&$1Ojn$VO?9%=)qnt)1Xr+%WLvND3yi*_ZNT_+HV*o5|LG(5DX!OAJ8pc`cBDjNi?
z3W*GfB6r&gGL20Nq-0D*SdEB5<s;Jp7NmNKIR(ANpcFv&^rR<2&mi_ADhjYZjO1rX
z3Rao2HWoq`w0%{+APd+VXDX+}`VmGNLU~xSu;C7-u|GN%I1!~eEJ0kqD~62`7#<*`
z00|{*xY4FbPrx+hBvu6?o53u^3Sn)nX;Cai+f`3!LSjd0=TACe_fW8ro;84Qs<BRC
zH^FeH)3#{1Ryd1&UY^zsOCKpr?Nrs7J;5PW+f2;Nf|DpX!J(*vR<(?5Rfx?IY_~IY
zsLMm42OJh$97{f=U-U!+${eBI98rOinobif0cn*w5l~&TtRhf#Dp#=rLZm9@V@#1)
zDm`pM+k%dPe6!fQW2Qvi;RX+SVOl)Ewy58OX-L{3Y^?GecAP}^hzgVJU4v4GNyp&A
zP-|d%QMi}s1-*kV*4oE%Y08qZbHIeeE*qj2nTti0=$ob$fgTC{C{?flgw}~+?70!1
z)|sjjVg{QsjzmRPl?-$t7QGodC|fKbX}n&G$OP*U>;_YzFaf>t6gT-JvbK+4Cy81?
zin3^_VUCyXPn94}k+5~OCU@o{NAnqJvkI;H#tqPKz|;^WQ5T7qqLaiE+HG2Vq21;K
zoV)-vKNf6`5Nim41ogG^rL-VUhhk#@kk~VUm0}t}fL*ruAT)M_6{0qwF*HO{n+r^)
zfUcu1@(T%*iZWCs+9nw+Q4MjUSkRHnk|vx|RN$D<Wa1zdN-P*-VVZLrvkOg(!-he-
zuk1~rY!%*wI6Fg5F(N!2k_vc)vUjYP<fYgpG$&5i+0CsWz*?uA4W<ThPs6HtQVF@%
zlqYgbWJ-16x(r~gftAk`5wV1fs3f8UP$;_-CFEdm5)M5Au@~cmxFY9QN1$Dwh2Vw1
z+^0}>!JKcVH7$%qFR)I5l?JkyQf*Jhs!zy1P-GLPS{l*;u+qeb5h;MEa*eB;tW7jW
zpfn+EPyk9ve)(z(x{27d)&2%qomaNNDtui5N1*87vH*Ihm_x;k>&&)D4ogZ7;wSLK
zAlnDqpR2G63B*eyT{~zQqz!}#Ov8c2RB&Z$nC@J!Koioqt|i_$8eT8S#a1OJD~4z;
zRnQYTN#PTTRa|RSaFLKpDS2IvAxM|hbwX9--SKck4GIGy09RA)g>eNAloT*Ms{tco
zAj0gr6QQTf!2)J>Rx-aPFc*}k!7yN8tTh?Zg@+;ZT3(f~cf&L&!rFxW59bj?-`4CN
z4XV*LYI(9ysGTU<FcDW}O;gGB^cv_zgQrq?Ko)e0uoH&1%Oa(+j4gX&*az1$mLjZ&
z3?7^Y!lv?`#sm<Gy?H19tYemTr`ak&ZWIO6)8ih?mC0->)yfnsO-0NoUspuvil>K*
zue?!_#TEjK=t^J_bVhX`U|rnJ!c3BuG_lFXRz0$A@GcN8W;T~(UAGH07Y8sY8G+jk
zOn|6H_9A;B3XN2Ag$$Mlc_<eGlfWifD2zs=8cdsH9G-?1Ld<e9FJ?ePX*6CHoseuy
z;b)MZfvOq6rrLu+Y;8>WqtR&Hk+-s5Kwk?d6{FN*H8X|rU>;H!lvSn<t^?)`ZNmA`
zgw8;`fcB(b!@ddY!(^D4%}mnK0TY}dZX{(;+#;J9lXZ)1722(^lxF5SlcW&Mbda<m
zMXUI%OA*+e1t8(FpQ4Gh^+`?S9)bCc0-Yqv3L>#)Rl=_NSBX<MjVe5V{>1UgMADHQ
zB|{ORf=nL19HFcQQ9Kr-%8W#S;bYa6ST`k0B6lw$7D0(p!IBRd6a`}vsm8eFrD&=(
zu~3JA>V?9cahTweY6#z0FVYzqdpsrUDX}r9Gn}gNge*i9^nkOU0qiP-gvF0W_L3s!
z*Q>K+3x+Q+2a76PDa}{{=7=#Quyj@KhAL-Rp)1o+o{xx`64C{{NoY6%0me2xv3(Al
zi7KE=6{x8Ti3vFn8mXg)$SHci%D9N15@yR>X-YYoA7D7lW2Y$(Yy&8&a+gskH#4%$
z08iCrNt;o@5YrOMNA;)BHO3?uE;C%1EGnIsx=a^G29bvHhmUCyWD0dMNEO8?3ah-8
zZopebs1^Z1l)uQs8X+$bkQX8Y2!d*uONuIRTUc82%8%f`C48v}{|OBN$7IJ+NQ~^1
z9WZq*OffPL9f%}oP{cP)RC$rGhk39=3I?zssVlrhuoHu}xfj4}2!*L_7(<^#P=o=J
za+iP?@;*skx<}tN4VA-CEeuJ(Oct^aVFI<&Hn~fUGS+I5E6od0*bQVQ+2<3=WX7F|
z1S}Fs?kYQ5|3yh?=!x+)ZU<z$0clD3v8e~)_yk)CogetH-6rNt$Prca1+{?Y2{VI9
z14|meQ=ro$6p>WK!Ap2=NEsFZcc2y&^jd4c5>SH<L!pmcqSG*BAgU@D8r@Wf0)?M>
zFu1p&Xus0s>NvXW%Z|d{R19jX6x)c}Yt-HX^?f?aJ$I=8q{g@-jh1n$CPdq?IoyXk
zucJ_7j8KvU^<e^paM>i0)p%lq`f1p9)N(C?ddT;vd7gn!rYNB00iClZl4Wg@da%E1
ziL)uR%m~kjrV?8hsG^~ho(b};AU_>IM?t?;Y^kAJgaaI$?x5}7BHDCuUJ;@t3szqi
z>gz+!%<YB>+DNKkMWq?Wb~8k-%vaUvu}emiv|>Ri$H^em4GsX<S8+}D=?&XCTzz3X
z)M+bDhUg|sur>>_FpL(yk^<YN-IU#~u>j4)!AYt#NKst}ENNL9_L(wXgMcOVGo&SL
zI%FDH$6yPQ?S^wIPt+CE6tybqV4i@!BltAZa9E_co~vi}&B<Pv(jb`>40%mq#Jyf(
zb3u+9D@D5389-ETCR|$$cHcz1Xc4Ek7-0q#riju+jPCj~^^J^d;-Ag@LxmkY7r7V3
zevH-;S<*nxT-oMqK3PPZ^+u?T#0CrcQlOPCw+sjjgUmGM`xN<rPKOONprU@7ymqQ=
z&<Ipvz|~lsvN0h<gVlgZk@_~sU%3)=)L}C0@{}{-LjtlWQdFWZF$}s~xoKY#0Hap`
zdXNYF2^rbPX@ERmLfB%+6RW4Vl_S0#tChd=Fq7$<2<JTyRkP7{Ohy##*oj2jsDX&7
zT$Ju89aEDEIC5triUEPJgy01uMzFFvEQq{;i3t@EoOi%rrr}whEz#*x88AT=3n`UR
zmR9mYvxX{$WYVHpfskwv1p9bZ7Ke2R1JKw>8oXFR-Drh0BPmf-x2fW<1Mm6_*$5d1
z9z=<F0>~hUkb236C?<XAK;<c~BN70ICuf15KKx3n)k)~QY(HrW=tvElXYnu?0W6&O
zus!F#d}_CI^;!-~11OC)gM7A{pR*Mxo)Wc6uMlofL>;Fdr8-8WL!H(Q>G(U{Z^Tn%
zM8wt>+3H{uGSO5wfA9jVUDz#ge#l;>C<=E>^;|)Gq7)|N^Gdt)xDvN36<zjW4-*u@
z_)J+^1gE6N32287s)!{B>yT|fk&Oz|V!BqH!8!~<Q&gOg|5Vkf>1la`g#;^pg^wEW
zr?pB5`XDqQL1@;dG*l!iHCT^@8xSfd#ia_q=+(NOw2-0=NSR(uBMWB$E!@b`Q$*a%
z*lP=+zdGb%y>Nksgi;I+951}5(%fYcPU>ZY(+J}jt9bfgR%T|fQi<1%g*Q=6VqvtU
z{$Log&TPpZC98^S1Q1jqSH_Ujk&Y-Tb(gevBWi{HKMQ^i0YvN%>eZ#39ulEw+Nhhr
zeveW*+}U~b15ZnsYQSj<?(YEus`RCpf(eSb0RP(jSx--&iij{^HUfopzLe44)F)L)
zt4+)`N;yb&boL6ys~I>LN^=ZqRt%OA5`sK|XL)kH&@p*yyMYzHk`{}tef#DFsW_^j
zbwVf;0toX<a{8H)U)T;NJ~e-w37CU4H;WofMo!x^)a6wOep(&*ArOMCa~UQtpqByA
zQn45`vN@dx8CbDJA%#(hv4z9X0OasV?ABG)xa-6Kas>&Is%nfFI@NL&WQ}DGE^IlN
zv1usQ+DjEV(E&pxoQkNB44I$8Bh*`mqG=g6Fj7nzoD)w8>gL5F^yt-X1H@sz9w|<N
zOtE*)fE)3MK{}J4rm&ue#T08KRV6NM&d%+_QXoFNNMsDfRFyj3DnUs_k?B+}X{z*!
zr+`I49Kc#|mY5B~sALagC%Hcp>4@E<lk#ra{V;SArW6$zn!*rMWIU&<_ue?SN`(EH
z;8*YfFI7rs70R>rr1wAL`=G+Ei~a75NZ!w8rCPR%AXpPaTux3FDp8BUX^`}C@JKd~
zs9lv(bC1{}un6qN4o*jh3_R*o*aK;VK4cz0!<PzaAMbXH>w;{K>8yqXu|-CU%C1V0
zT?rQ%#J7vPeKAu%nNF(mR+Od~7xhg%xs<Cl_CWWnV6q4yh2XR77z9nQTm{M5cRRa|
zC!VRYJIF+|Se+R=QY|ORdc0cAD|r!JX95IZ+v>@P-Dn*vW__H0#382&Bw!~C$2$nj
zkO7es%5-E04&`a<K?4qHK?brE_STuIIS8u!NMlU7b}~0);8^7v01Qh)E^8^dtR@t5
zIl&U1W7rA7EQYPaGYfMk^L)TbU<7bDoN>tHXLigr3ym`h_1(e+@X9D)W*5yY@ZO)c
zLSU%0YvyEcvyq2^BnoGoe5ncn8n56?o-b4>;gBHgO=k>S+1NXtO@jUjep6D3?c~Ox
z1(f9yq@B*{6vjYJt%Z#iR58A;7N=^3aT;r=4yuDeL8BrKFpT0JRu4z3wlxcg!ZQ?#
z6Vlrh;*!rhC+0HY-jGAM?tq-YBCyMYKnp^GiHZm!=MavF^Mc|tDAH}3`y*HtV2#D@
zf1hp0=3orQ+N!A{l<@dK7)Z~ePTfdyKEQ=doX=vaJ&N?Y*ox=ZPM#E_vqrI4niXD8
z;Zo{D*CO=`H+$u|8eFzGbH#rNPQm6jRhp7i<mM42o?8MOA@I-E4WDr9DL`8#)mj)1
z_du;h;8KgV(jw!TDR?@bU)!Yl8BnU=>S4j|V+P>z5T0XOQW31_`6RM(s2A`tg$e5T
zhFVcxH)-K3T4HsQOu@=PKUs>6baYWCLM01G(1t>VH&h8UE1JHeF;m*NPq!hSLZ7I>
zG=@C>scWG&q0ohL1`X*x6jlzKFS4;K;)o<Bh=l19NVB5yj+&g%sY#*;xbVWoOqGKd
zk^@$ExCaWybgdZAwkjlL$B+m6gH8kU!{z~jcpSy&*#;KbIsV~c4;txcl||czdFp^E
z?x-spd9tWfkLPNDQ$<pHu}&Qoy#2|FC56>*pnIL^C_(3B{FoTrQO&|69L({Lm4reD
z`_1u83#4WE9>>DW?G!fq(5*`As+8d}r+}4^WYUnLN5Vc&G_&AX5x|Z;nMP}QL$_bz
zSY!0qb!WL!&I|#V!w_-gFK7nlPiQ<?$!1Z6@@2Y3ob5gSIPkmTIJF!&KnXb$2eZO(
zqi}(ki?tJsQ6z|BG747vB!MeUVx=OyFVtRzBQKo^QW~TfrjP3uJ4y(5VLg%-l~&fI
z=Mce9Y*(N_ZedA>W)b#@@CBUGF=rqTfPApY;BE$pB0vQ)TU;ng!|T_*e>k>diGNO7
zH9iYt5i>M~3D>e<iZl!d@)nP}m?=Y+5^2a}1sHO8G*SUW{>?2|9=zLhY)r{i)9Om2
z^9Pd-z8pM?f{nCUHKE8ALLHGrJ?j+(#q$Rz$jaEBLLrfpor3iU$>5QU@RVgdLRLe>
zQ>#N+6>A4bfhVX!RX-u6hw7{&M7Pwz6`uaA>iO0vz+@zj_|9(3p96{^7_%S_LJ>`w
zj7oUSbLv;nPx>2k+Kak{y+Q3dfxzKtuJ9cah9ps8C)`bgE0O%c{<**4{-<7`<WC)W
zKF^TYIRs}CA_G=X7$kU-33!v~q{=}7Ftv43ikmr12=FDE!hFf5FkcHfBE5FG8WIi)
zDr|9ix{m;q!N5-&nj~414XA(u_%vO2sKT;cov*>6M1YeVC<qOelqU^QyNS)AqSiPv
znH@xTEWr#lD(2n^7i~L<uX{nkg}mm05S}!ZeQ9)T-Z{K5PBCY6dmK^0=o?t^pa6TI
zQHp8??ScE~@U(HOf~B3FEzs8zA~^kya{|IDL?)xBmL-Uuw~o0;(g-8wqa<-?BY4mN
zTUW3$tWva|QbobUOfJ_FKzF6<>3tkrkt2H8P066UqPhl%p@pZKC^xAhxaQ~(8c-6$
z1}<z<l`EtVHPhf7j_-%-H%U@_`=$GFh)V*b4eX0(-a)I_(1_g`%KwIdKzWb>&EIw;
zf=R=g(V0Y|5=n=Ljdhc+Iv%T)L`q{Qn24otH)?VQ-G+INlH!!8o0QdXk43pkWGS54
zz!?WM_X)3x$#L3Q%Bk)~PNrt5>RT;+?o7gZ0=B447?abZ&W3xU0<!eDYNo;%TZtlQ
zCuH-|fmp2LopUx$cbfiLO&CT_?$M!PN2-OGhWTWmU`SRCClKKkl7Y2QY}VuD(0YmX
zWm=i!$c#N()20XKK?h4ih|G&Fl~RUBAVgUn#Z?VtaX}MUqAJwQ(ZtN@;%g+%Bf^vD
zN)ed(K>Dpdrr;xR5QH`wM}W8n!dcLtF&0SoN~+rCJg*6zthoeZJl4PpML1i;jq`bI
z8YgbWGa`IHy~$IsHR4nRiH4cNq!4pqxu{ENa^+s>28$4K$fJTE>~Y+$VWm*u$zMgL
ziyBmm(+vdNkQ|%SUt2WNmNOYxNfbmJJR^d51Z1h!IU~My*k(}tq06~UB=M896$Si?
zA#eyxGxPSveiBwD+F;~b0;8KKRq!GNCPu}G-hiDb!d!CHPl;8ckk&Nj*p*sb%qJyB
ztw^_|sSaQWxS3)Qivvoj3R}8(qHGB}QXo2Ued|ao3I%fwnuH`&$LSJolX37xHzdS>
z&KH&7!%Hy)z=}sDcknPcmWmdQk`?yJPJJ<&(YZw$S1O@<g&rzL66*#xRECBF9h17_
z5|K*qXJwRb!jc`S5H+Dxx0R#kn;z?6&wP3;%j@fEQ@L|jB6to&)6kd=trplC7g%40
z)vFfZr(xZ-3An7|0y*f5!wnQJW8;GCNGVb-<WN@vHHhHu99ul~E$A0h5%`9u1w-N>
zp&=M4s5avgBnc+0uvZtfz)#dmLuINa48F47DV=cfm!!1%!ZNOJVhLjDh-4=bC*)W+
zWN_;IDOf`RD)(QYhwzF7Lv28~4q0?O5y~>01XsBrp6)9J1%L4p%VbO+nns9iP~SI>
zOOc=h03nJci_R`c%C)lMQUPY*j%7#%p4^bu`2vUhC@xax61mx+fSmZ7OREPS;<}L!
zuRw`4q(Uku4iaP4Md{59&bXRb&#<a?!z6s@t|NTD2*t6*z0s(L4KpmNhVUFBQzFLA
zm~NmUKtU*F9M^2&0st^k*k5$tMnfHl076VWf#N{yJ-7ABlVgcKjzvj=VL1v<o)dem
zB%^?gB^#x9edEnIkx0yRViJb2R<54OVgbO#4B#u=_(4^`DB&S%hejg{xW+3y83vfh
z&QFuztsy7y2@zaO1h;k(#YoN?jnyHqVe^u^e2|mcE>kPWE0Ytg8u8eig1a^pT)H<k
z#K+Spo5kbY;=mCzRw{J8jVIbRw<Dtpi|XiTAT^F^G0q2DS#@suIcI?w?i_;Y(tNk#
z5#3Y9-eTNE^)Dp!(O?Bm?<^aE3SOG<Zwj3V#SV)3$YTS+2pBv)!nsi3@MZ&?g)%Sq
z!%*)q1`iZCAAlu>98r8}j)elVh+PJ~0#u<3zM|_^w1&#c!Mk#Jcv<*~o}A^@8kS^e
zTCo7}I-3#dFnRpb4thp!>#b~*M$b>^6CnFS(+%@h5l139{+J&UUgA^~bri?56>>^Q
z7LZE7nmEWXgtIba(xLgzS3nuv7G7us_)r}L`h=HFSDdRqEPBzR5$zeGr6XnnS1^m3
z(-dg*!W895=&ZwYw9u_#MT#zJ<3OHFahw1O3h?^{KNC+3Xir2p5TXSZXfSIGn&W0m
zow3L%0!tA{!gDefy<<7(SRi@ls+fhbs;XJ5+KPv9UXKJd9J4Y=0fh!k^^Ru>4k?dF
z;xs79n5^oZfMy<#a1TdlHgTpR*6${^k@Q%^=7T&SjH;D5ih^(QXaw`nBa4F&2)Hi^
zMg(Uy{>3R3JHL+DK5!WNJaI&@w98*Xku+KdVx$%dWqui)T>2vk%*X(j0JurPQ=2ha
zt!KE#i0CMGSh&q2ulJ>_?MRxw(J@MMME4ddTOnH5W=}%q2;%|=+XU@Yz|9EuFuBlz
z(SlG2Q#g{&1aY1T-;2DA?XijGVF>;VuwV&MtI#e?1)9O!BxOric$zv*#6p%(eyt^N
z^AT-DQV_@Rpr{33p3I}ESdxkt`r0^S#K@^c!&(=v0a~N7H;f<+W2dyCDN)}#l4I4y
zGjo};T_9ZWMJpP%1EbZPnq+X}hzAWKs$_y50lIb9g%}h-dDza_@)-3d>OaL*6#_f5
zM#-Jk+EkI7r!v*)=->qRAiDL^-GLl$q<HGlP*+C(e<&Gs6$b7EM}DJ&%FRNjwzrTl
z=DrB3`dYR@UPAW`x=Gi4o4?V`N3S;~)k{6(q-ie_e*vIjHRQ=re;Wfly^huOSh}w}
z0?|Bbkg2xk3>Ud5%`5b6P>tvE!)82H967tQN*ltH!%b8N1U$d4N0hXLON;Ri+6&mL
zA<WsunqUsxN@EqI-@!O$t{6&Wg_P+75}Z_|W-+~7#IrCNisT9dM!QUOW25jU%H>Yj
z9WQnJC#OZYk-+RW`ZBu?)aaTHIn~ajYM+H8%H^6G$22kTQtWeh8Dmt^BnMg3$qlJ<
z5So&MSG>Fe8e`nsRoXXIwHFc;?+hK0y;Oe<8oy~t*8-9z?q2Z(nf&ntFm{><*ksr?
z=Qmv#;h3fd3d5sgkSnoXh(_H{7_+LPc<eGoo9E#>m7$GogsGT`XbN5upl_vCRg>Y;
z5h~}Q>EwnH9!OZ>u(5*#Dvwe{)+R*diD}HmNFV7|2~rHs+Tc1aJ|zbOJm#b7C5QsE
zxD=u?7vOM`MD)pvd&IsiT@e+VTKdxL2;9b0)`3<^&xM8;_0mR;6B+!=8{+T~Jp-2u
zuC>NNVe!GSIocAyi}*+2PZ^3AydoV+TMCnfSt$(~gyhG+oF!B-@k(0E5qb}amD^I9
zuqav++}OjdH8i^m&70PTl}L+LjA0sVD%ex0+dYg6Jf^PJMcX=ZN}_H02Vo1!9hmY~
zzaI%!LS4_sCvc6CT8<#I(5Z+D8fuVCVy0t?1<!(PC>rhN1ia=eG;~l>ri6z&j8Q;8
z626vmTOeGj5a}cVv6kM7R3Yfv#0`uI?XVlrsl>Od+~Tqnhfu*CZaAG12u&EJY42s*
zE6~wNN-~4rQVr9>uqZI4lo>Yaq)Mq|lURv_R;4Q8M&5!*5zMujewV7icrq4zz#F#L
zC*vS7RV}*8quUr~cU-vvr9%P%RAShnho6>nbP18Df1KcvnN7-PrE(>z3Iq}b=DE>^
zVVEI;A8K*OiE1{<G1Z#H8*fN6FhOAt#J!>(lIGBkCB($h7h2K`#8&8e;8Wt)@`Cg%
z1y&^7cm;>TP`3feQ<KnDn188c7w~0qd>L92fgX<$LI9;Y3daB}B3E<Ey%sk0%^H9i
zCS9=mls(1)b5|6vDvU{8`YJsks(!f%8g3>ge_Ip8J}xXUqJV$B#z7dEf`kkf4|ot~
zA<J>YM`vPDiiH8JAK@##K+Akx04vy@*|r=&f<TU{a917mzcOs_2a4x3G>7&DSw`~B
zG_KB&znGys6iD5rGjCCd$N~-tvL>oCI~1>p%JG#vAuWp#BD+SroF<J6lyY)}gdqci
zuF<~r>`b(!RE7f!G43?=DUIhi4;0AeK-L^9S%VW2vayJ_z%4^f*gbAU&S2Li_nA`q
zf~l7GPC#$x*XJ}dS#2ob4Lfot23(ZNEg0|Bw~-ZBpfe^D0LN=WlcCVo<&hJ026tWY
z4k>JhMTxDm8hZ`66XNI*j)PG~$5BVR425wua8QPAO_7DGFS-P<8KvPBNw{bcHymkD
zXu1wz2d<@%0Qg$nbo2CF<^&X(hfu(c@akVC*J*1496YombQ?tmxZGA+psf+K0S1jF
z4%Cizxuq8{$F!hg4v-poV#2s=BsPz5`c<GG*Mqfm=;q?12O<a(S&;Y#JSD7#aha{a
zj2yAxHU+K{yfj*oE92BDCHJ7hV_$~=Ppk13OtRu$LH47nJ%*^$Gma*eYgpJCoNIHF
zye`R}y3%4bbtN>?g?oc2qHR2s8K^y$0992Jnglavxtz=6eag)UA!;|IdAZ#LQ(S-r
z$2L3OVbKt-+z^5cz#yqi7WONydL&xZidEmnBnwS=1c<(7kST#QX^g&@dN-%tRbjHM
z90JniSlfwECw5z^_;AdOUbZGA@O}<N;DQe)$yj(3;S-C?aU6}KX1(7<qggma+6D~(
zY2h@t`UQ!t5*O2hZ^NNE3yx|!ba|+!3U7C&T3zKj4NLVPQ7qxI3_|9_R|e$9W8Tt*
z6Y=q|W>irRhC|+qjFlYI7~-Jj)~JD9ozfry(}1V52v=QMK&GICXK{@q=c7bGk?f3S
zk|5YP7`(|-R3FI2Bw>KEl0<N@icjL!pZ-p!fI_4|UZru0A0l3w&pJGXp~EOiEz*X>
zybevlERI@6r1P!Z6fY_c&8_jyJY;Q<>!CW1DvHuN^HNO0?f6kfOYmH9)4{xin>r>q
zGjV3~iA@9i+B7@^WPlNk^P2TQB2<n>p)77+2cw;`6tZ(I0((YPgX(|oMaFrWNwR>&
zhXJ`j-y6teHJ!XrL$ww>_6cw)$aLvoEE?+r`q#vrW0IA3qe(z{mxjS7pj3p%p1i>^
zB>2XKL#UM?qJ$0W{8Zvh7pAhffRPZA9_SPhdqzAiORJoBhq6CLccLdYZf=*iLJojk
zx-K-)>$RR<I8+8o!}2)^os|-d-J)w97lvhmFnT{LYBB`oJh0CLy7inWagZ90b<y^v
z?zj`>kv+5Q#iBI13sg%`m8!jzt#TLxY1!5~Oj6$16%{K$nC9F%OduY(h4MyJ>I<W0
zhl&(q!WLl7gx*1>E=iq^X);k{XB4K$;<14mMV0c=guqe(q%#L1BQ2PC<#A&nu_(kq
zX26PN_oR6Y*T{*=-s3*)m@`H@%HfzvLs6R^w>D!@Ym?;7f<oqDS2bpZ!iW{AK<hWI
z_6tmJ7B0+Ui=fsdT%XJo0iv*fN@3t2`t=ls<OI|N&kG7vD3!8=5Q%M}7^lw4pCY0$
zqOvAK+yP38T0s~TWe5YRs9-39o~%4fl0Y2H?q9)|R6`VIqYzmkEatI<s7B437W;WD
z1H?1;s*`cizk{#E&m*eNq8V8aG(yj!Fei0@w)V(dJvbY_4qIhDrkc*sdn-|=7KuPa
z!+lMj6ITREUAzJj(1oTJ%)ToHtAi3Q=m5E-mY!+Y%d@EJTNyIYL<!J!<CZRZrps!o
zS1MHDr^nn9<H6jHNDM`if$|@81gctPPHHEV1Q>{63J2t{ZDtnk)+icxCO{1rPvapz
zIai=?;5LqBqhuMlCu5;#WpVO<Tviy>{)bI5lkIDIrCA?!$>sg1=@z#o%qp>IkAcW=
zg3e>|4z$pfn<-%l*-0QlBsErOT3C)E7Nw3R7Ns{xEE=+CD=aQIViVUcTQVE&s+UP!
zbxZd;>z7>Ef(fC;D(h|sS4B`1fuP3DAqI(~GXcJ%4jrJ9a&!kuJ&lBm<NmD0ld>Sz
zNy-ZGM0I9}r%Ztp@fPEFniEZo)Vx+}sK=YIy&mt(hXP<RIC*v6dS@A3sjNq~Y(-^t
zAA_Zc<_><k2I~V{wVB;h#CN+h0oL+Z265PoCqzPl*AX>nlU%e$wiemd6V)tr8KMWs
z2xH=fq>`_Kb7Qn&!SsVEBr0fCDmAeE!abd~d5|r;AYXUy`av~G6=6YB1%(>qopjV~
zVy7=wS`7;JG$_jyNrrd9Kt&-n5@g45_2!libPgAn2xw87?MBf;lxBWZ9cf(pp`T}0
zqKvZmN$asR*~@q4!+w!A%+5qrGj*o<KC&}4+(j}O<WrJvNI)#oOoe8hZ^bE|fl%6#
z6KG7)>kb$aaZ~PDV+_t3!r?`@3Hh!p@3Qw4HmoaS6jw^2+nY0L!uxpIbEBCA&4?HY
zMIe@oE}{k2I7GB2cO=B-MpwG1fMIFp4aV+fv{`7u_;XBh(iD!7JU5D=^RXC|C$Sh;
zqFB@oRKA>X=MSj>E}Mb_iON^n*owr$;dkW<)5Gj4$%rz6rLl6wXI&WWdKdB&*JZmP
z;Bk2E@+vVdY|<$;TmVs$OmUz`GF$GEtcCD}iC$$|xKV?3F7Z0THJvX-eZUrI2A^Oc
zBq4s;OLTV~snKr0XfH~j0t=)UB~V9$%c?QOpe>MEa2P|r_s0k~<}raoqPV%PJIUcE
zCI^;-mLiS2b2B{H(Gi#HF~SsHRuYTQG0U74qykEyl0usHd_L!xgW>o)aTfB7<~d|~
z3i$un%<!FkEJ3b0V>v2(^(awitTO{Hud3L<q=3acGx1GWiDV;}2vhQfY)kiEY*J#K
z<;}mx6d%ar37y&W+m5QNl2$w+%%&E4E-g@?^9ye5Lp)L01XBr5s{69iGmm+{v3jat
z+JtSfi7gWjHo*@)XksD2F-V?UfqO9gtoXT&pa}#8u*qFOX%is~o(HnvD%T{(5BSBa
zItZs2;L;aanGpbY3ZRs#VgH1(u(`Dw42oU~k{@K0Jnjd8gBH9Wr}l1w$tc<kn}QC9
z@`SNk^vS;2ffWrRj~dvp7lsdv=uydd^eCS;BDzO(NCr&>F;yJ!0>j0o6rMc=H#Wu9
zztx%*!RPzp>6R)xaphK`J|`-XO*<fAvExZ!^b?Wl>}30B4hdK43Wj+6#BPy*N^x>g
z&^=3J+h|wdo{#Ib(iY}N9n`jjJ%C*0B-T!-Ok|&`3?tNv3pC*7XF6GcqQ*N+L}-EC
zF&@QX2lNce0XXv%#xuD&EcTHBRzz7Sk7)U2K7M`<jt@fj*a(ve=|?{~E!0~N#WhWg
zoD_?8Z$E9<o?Yjjl-_>wo|Dc@kDYYpNm3c^tTl_Ps*c$J(?sZp7jU&@##z27LMNt&
z(Lf>4ID^B$s?9g%Y9d~Y&=i!Lk_x(ox(_^4JEPV(Eno^nocwWZD^5z1rKiOO4}Ad5
z$7@EM&fPNk<b@bX^{6wnpgDMX<2Bb&-XkRHan2Amd-8xWH*OGPSZ4uF{b1SY&1P4j
zfl#jzr#Nve#R+zc##KG33YrchY86()D?d`IarGn(GjR&QIm^n|=5ReBKiX=ug?gYc
zR@%5FdL@FCs3yRcl$>SZpxX;Hri)T&)}zxUkGVjl4V{u*;mgtTj5HQte%J&Ht(<5M
z@>$%@1&upSWC=XrFreOXLatEH(>+5Un;;vs6n+HD7M=vgAwNyw91*p;n_!?(pXJF?
zN=hR9!4D1hFltz?1CUfZN-kmBe+h?BM_#ZB5vWz6nXi=s{6yUe2g<aE#eyjfO=AMW
zL0S)_iG)lciigxi*n}Dwnto_jL*LwuozYD)ASXfLDZ=X5B^oOD6aXRsmdg#H+{Wb*
z@F-jxKqSyJB%cQ}7M}$wuY_k=IrgE`o=wv*YSRk9bfs-_064aQ&oeZI1LL?|!asy4
zoCj`+;tmcm4WvII=LjH4@(fD4&;nxfxO+BCz!%P7h`_7Rg_VfhxS8BgE%;*Cj-t3L
zla9pPznJEg=!}A3<f5mOLsWXfYTOAi^gnFWa1I@`$I{bTxOYz#ARsenYmN{ECyBj5
zF#ZNZ7i+Cu07UH<#5Ym7&^(EQouT)pj7ao<*#Aj`c-mLq)Rs;=8lY`Huq0euus)7Y
z2*Lt@Q>0u5p*F8!P5{F)4TR%{ry|G?`B^@B0%yABHzX>piyl%I4Rey?Va8b8WpK4x
z8v|8EyIvc7Jg1f^&c$aMbH0I7#Z`35tbkPH;)HcNgE_%D&-+gzmvayUKND%m;n)9o
zX*X~$lAzq*Bnh}e1>TK|l0iB7eRKqrOu`4M<NR0(OdEb!LD`dXUOm1vUY7l}NFU@>
zs>7AiM6VtBz-3RNeiyvfpd&uAppvMAY4CV#xG_?NU#}b#eC19hemTxB8|^sRWEx*e
zF+$1a$IWF;*r>d~6u>yf<1pmf(4DAY?@HxvI0k)qlfb4a+pt#2cyv4o%S)wd>0CGY
z(M08rN^UrshGpCK8>+6LNeHJ`g-LVfFzyF(ea<i~0(m@DY(v6Yc&nLNm;5kv7!R2u
zKXP7Cw>??c**}>Fr0(OWZNV}hI$+2fTlCxmK+-tPY>Ds89Qp7gzn{e7`e*W5crGmV
z+HX(6o(5YsKR6c4z^RVKf)lvsdm+K-4a7!V=LkNCFVY*Qq4$x0q8uUtZvhnkA#^Ln
zWp>Ne92^_jyv%ADZ75;udME;AMCB%Sb3;IjJ&2s9Wj$MhGq<=!6*z+FTh!X(r^+3&
z1n9;l0SJrmr@%pN_^znmlt?8I(dkbIS&=XJ1bf8PpYWtKzHcl}ot6cofF(-RZebqM
zzI;$#9dIZjhH7Z|-szzZb<sf-6Pxq}ClQm%^}q_q6V6STSJM~=+!FEKm=Sz9#yorA
zeuMjK%~41^A@Cg~xS5EIHX=Y2lTNrf;CRA_l*S+U007hQ2f$xktiZyW5C-R9xPe_C
zdBZaVihRi4dh4@|N3fBDnJ5qP4PqWBVvVvrh3dzY{w3YaxDtkV1-~I$Z>b!oeIpiA
zpq1Q1BRdz41r$KlrECVIYYr7DLP->t*kX$mL5rNp)9`HsB^>&q=ot*BMC&tfi)CUK
zg0}5c2q8UCE&(hKa=?gt7K-Sc2f);3{Eme;8>D&~`GiCTE%8X`p{lk;d2a|dDgmA1
zatOI7P|054tgEEnV}qH-l?9%2@Y5@dQ>qc)J<JQ<Md7#p&w79#a1)Iffr7OSmUUd<
zh>WBVKCQG-n)FEw4V+YdkAi%7j$;D?;i3;oPANw1h!i8}wE?+Zdt`bUWCK@$3l#$f
z=0$liT=A-A&)`u>Uvrxt>>xH3{QM_AIU;Tj5biva00xY9ngSmdAO=-1r$0(87<&Oy
z!J#u5fd=I?7cnlpNES3<F(fQ_U<)4brSlfZoZK7?QdSXg4PHMe$vnZecOzsDvL>NY
z<-`({T{dq6cFjA3Mpu%IGhwi=LDeu7;MGJkz^CUL{PrAVEYZEv#g95zI7jn}QuVu5
zaRE2=sC3E8tz>ZqZ{icT%D}M@0lCqWfpCM=gnN*5Tc}!xsR>Q>y+U{7y}t4T0T9OF
z3CN?K&=-Qju@lvRe6dbHLxx+4>7FT@1@279-zW@1zL0AbM)++gse_|K4SY<&kC0x5
zTpc#+TdsqAEl)T@@GJ1D0Hjb>C`=+7*gB9*pJNfJpoaAeW+*)ADxzJ3zbK3y*yw}$
z;cBcJbnJrQGecztrn!cBq8c0*e>cfrbf$2DEFIy_O3wg#g?jZ`joMR^KRZ>;g6n7t
zLY-vw*fRoZ9IC`@*bvHaC`qI@4Z3%zf(%ZyFp|T|#6|)`7rO%JBILF=Z~*K$&`Z&h
zsGBuC$-=YY*uYmOu|zY$iW8=!@>nI*uAz@~egqE!H@iSo?IN8<a)rF|t+o=lN&!(8
zlM1j*z==>82XD&N08PFc5|&M&(lq~IJEDW3)Qu^I-4~sC{ZkrQj?JYUvIX=MRK)fD
z+42=h5E`%W2T!Z1-(&Gqtn@)~ryQXz?x?cH{E6Jv<)7upe^0CKgyb0P=ER!ah3pcV
zV@RSBg1F2C`kmC}5(-LB*iewPp`t-i%08T2BeGLD75qyX#%{S=Rf&sBJWfOC5*VX5
zE_ZT7KO#Zf%b4e^%uijZG50A(?S0ZlVpk<9R4a)%9$bV5Ps1!@UVaqIRT&ExswhHV
zTw_H{xBb16pxvcy4#&JjO4b626ZE`65V!z==qJWCincqaxyEE#*6=k$Fjt88VD9q0
zO1Ys=@3kT1u$jZ<YrL8-a_^BZSLkVe`!X5<AG_iR&X~AqUQQ0AHO$Yn2wF6Xi6WnP
zi6yBy(6Wp3D;$P!3Y%5&R8SgRPj8E&HUf5EvLZ4e-b001hEI<J?GWB^e29Nx5zx=l
z!^_s9{CF2OFSy@{BV&Vt4v;k^8(gA`B)%bJR7p@2JBP?nOi=GwVv<WC;KrQn2d;3T
zA|t>JRX{p0fh@|q7~q83R4I&$^sCM@kRT->OAs~1Q8Ya*$`QS37c7*$hrcpLotHn*
z%7SsLydl!4Tt=Da+Q!d)L-nGlK~eoYJEv{<op#~#>h-TGu@OfNm=Fj+q}6dX`sfYi
zWD$f4HB|sJ?gAt8@R%+_9+Ro)3S!ctpBz(Xbgfo(hv8lX_f(4mHkf5>i5Hj)bC;7!
zlr7i^UeU#;__IU;VyOZJ40rjm5DU|W)*s8bmSWgTGOTzcMj4X^W>p8bPakkqlft}4
zNlL;GwOrmPfAOVAPMBSlvpsN*22O7^EeWA>_zmI$KA(%fn^Zv9g%wEp2gE?kXAl`J
z4ZB`X1Y|fw&5Lx26vip+Vd+;_A8gHZ?rWUt<9J+Hcr0ryE?Fgxk3B<X5UCFWsDwog
z&5%HTgdsWpjx+l>rzNWo(=^01gjL5N<f%cdGQ0vG<eHg<;y%3MKyTBA)WqdhSt;kQ
zg_Ii_ok2|j{gn6)TB$UYY3QYV4Vu*EVe_k&L-rsf*o}oHN=T-pgv8pYuSsJve0jl}
z38Pq}sCi&%(ziK%Vg`aca8=1u{mR4AhKPpa#Q+HLhc<8^%ApIVtd0b$D4r**6#n6p
z(whuFMx)XbmZye(PC!k$@}6?H1O#mo5@bQ3<9-j-@RR{Ik@~d#SGeDTLeTc9LS!A0
zG%l+q#aRZC6=6L9hmWO-q6$e+!rB3G1mr#VQfzwBB`p@EY||Z;OZTD)DJ6W~O2j9w
zC_li|*o=nt)IOx#Vv(f67o|x`o)q{>ljx+~*j2*S>J<xPb%tOeCuDS+DW7^v*C<2E
zu{R}sMwRpdQjAGIxQxo7a*o~4NWln7OJ%6+05Avte29{&Qji#XC3l+RLywapcH$|j
zXx;}2t069qZA}TaVto3{%*wL}@t3X#SbAo0leB!55<z)Vajsa}34ie%Bj8Isl^XAX
zI%Ht`U&p7v?Fv|~niQ3>5<)c6-8v`^@-z=jVvw=|=?fvQC`fe&7p+|)+Vjw&$b8hq
zn>=g+EH6;RH|>yh?`9ZZ;Vvc{Zkl5?faQidB3o)Sf{h^F`{yzXun@D0BnMIf7ahC3
z6S%byzYEBPnKw4*RTX%5x_tc#Zva=eh#GnJf>$PiYI)p*AN2+o;o2BRz-pj#Ms<94
zc7-Y8xM_Ef7%@Ra@eTv`Xw29VNJj5%o87mYeEw7_f#;%NwpGR&Dt|?9VId$^LuS+E
zW(p|HW8tyTra)$#eu-8$kK9XR7|H}dc5>&JVhw9nRrv%C6U(ZItp!GntHn*Yg_Zwo
zs7$BN;h%HCu+PTt9Q@8@wWm<uNM$|h55rh$>Y0=GK_0}%ttcmP9hK8d_*xz0BF+Nn
z{Hl^h%Z0#PcT%{2EZ%>9nTp+_9g_w%ji5*rQ3l28{n8E%+l?JnPesk>B-{49Y&wby
zo+Zwlpd)*$<vbRam1a9ihbdORBaYg`I4a(bOEQ9eXa#@7Qla0N+^y$rsL_`kfFqn*
zDE+A+1!ChwmB-(Cou>+cdhHKBCrl<pZ%*EK3v)Lb(aRc*Bk^<r=RcrH)+0+S1Dxr2
zkUw$zi&;uhS9TNVojf67*sFLOETISY*&;Zhcs??K{MdQOSua^?8}usv{~0?E_^hkz
z|KIPECj&vDxTveBsECR(RNN54QX-MCoG~E*A|o*&EUk5m1I1Cb?rK}9+Yalft+mTK
zD%v{QYTd21!(Fv@{NJB*?)UpVPZIe5;PuIK@40)Qd+xdS>zq0AHhl@1=4YtsgY~3`
zs7PO|w&K{dO~;XrAloF)jZ6uI*5`I%8+ribo1<D^_}pws#3@DkO&m4p-C5mdCKu>D
z@~s+O>(lzAn$$<G?6ZHFI-lP;WB!Tp(te(RfBr++=Nh#>&ceh%aI_eGny@<Oc8~Ay
z?Soi4=rlpdNZm`0S?~%Wtc!nCZ0$(((xIZY%U7+=SNb}U3jVk~FYyDrVPvbS1GB<z
zuLxZd*y!@N9t|21f5myqJ}Ul>R#h-tbu7~#7uK(^Elq0UOCszyk?MFEGy_I?g?hRv
z*B~kNUs1d=xP-1su??cvGol-N@IF?Ym5+T%JU3Bzdm);#vYha#1w#3=xCq)YldOD`
zZN1hlnGik2iYP(6f?G37<1BjsEgrd~C%|(TbWxQmP2r}5&1mB13ZjbansK@SM`vwg
zy`7K<Gnu!|U+E7!4O4WsCJ)s!8+L0+U*a07&ye$ch&U~`b3<-vgXto>-J2-$Fl=cP
zpTTPH;7?~Wf4cZ%R{}MQxPk8J2A9tG%|n;w`%#Q@6Rv#9uA31m0V0zsya2K=)9zDu
zYNpMo@l2&J^3<6FqdqgU62K?eT^v=mZjN(rjH3yzAu<<q`g?x%(Ex86GiLiz<}Z_p
zXgP3$f3sU{$;y;|qnqPce>a&k3%%7A-;HLdd&l>aRIE|58nv6@Lzy6GK8C(7YuiQS
z&er*S!pZgnaIi8v!(f6MJBNtp*d4kMn3Ze+pI8^~hMY3{Frj#Mcy(q#-BR``jGan6
zrcEFE7e$>gwcGprJc#XG&^I{7#4H^VmW~WdM}>LJr7j)f`$IfzFENR2Cl?{@=T&+>
z4(aoCSTQ237#UWM2rEbGWU&Fe{kRRfY`8Tov>||~Wp0}$_*Ig7Q2GA+ou6GYJL$^v
zFdMI$;u}WqtEn61NhW_=;k9rQCESK_D<<9}GePnay7x(lz_arQD$5?fSggDvH=_lR
z8#71SQiiNSb_pKzi<XT2Hu?H$t>f)t(=L;050aihjzT4OOKqJC{cTqsAnDS#Q*|g3
z_ZJ-GHMKGgAat^ZMd7rG@9UUH8~qBQ3B_OLlZ_RPN010_o>&;&f~IOKI!ROn-#=#=
z(g$@AXfTFTOPda9GMi_mlP_19NZh-es?0NIwdY1XzRt3$MUGfW*JpM1v3d=b2@5U!
zA~W()w(hQuG_S?qpRqJF92a-#YnM7*mlB12%-Br&3MG?IS~Z+J@Y-CF-F%Wellm|)
zkk)ET%^5{%ff;k9w#es8L}uUe_SY5oYM1ltD3=so(9}qP@lD@~c2zv)3$%HRSs@px
zLa-KFKd8x$4_F1%RZ_je)S8|y*c~a9PGDow!}(%T;cL`(KoCC;qO$`3Xh?IbDY3x|
z_#4owOMU*K2O)kE4DN>IhLtcHBxbfk6x1_K)@rPi@x^+q7xp8Y`*fGvl*+UbbnYT0
z>9{8L25T>ruf_VRQd|g<MdH;jslQ(SiflK}_b}feV<KWHQfZCgnhipCnV1rJ;E=VH
zxr@V6<hSfBeD-3}Z??tWcVy0Ku%0=OZCSC~MjU+GXJ~jjLmL<KH=i}crL0QC&R*z&
zlsP_*>|Nd_N$ZYjBl-SG<IK(*NjVD3?d5l8><gio$l-cohh}2YWfjX;!3z=V`zf&k
zosCLU%&N!^IQdkz=^=X}D1Yj?9abXOnPGZ#gQQ=6?j{rKydARG3I&^K`ZZz<#L$?<
z&HAWI3|2&lp`qy1SW}}|z{0@>v3A(Ig#5Leht^S5qt;DjXj)E6GPoX*Oj@u5Tg}2y
z6VK7W;|GoYw1ZjWlNn}?uU42jzF1@C=zne-WmGZSIBes<g<7_Q?PyjLNC-i0rC)0@
zUI{+wb(zIiuGDEI3sL42S7~~SJ?RrK6=l}wOheEF6i@lEXIL^}asvl-7PEwA9M@&$
zQAl}Xte%=Y=;bM$gxUBpA#m0!eb`x3W~)iM9dM;0^I-?kzH3%FtdC-lzOFl^>$TbZ
z)|k8auHMMLWEKb0Ap$#3bq2N?I_!>=Z2kAx?b~FFmLZ>!A7)VACYMCS^5GMLRlV5@
zJ>Q2?_Qst1W;JJK<{?rWHAb^<xvW(D9)S|E_<T&I>S}sx+cF$KzF-j`^N=d1d5?Th
zlrG?+i$%uAG|UUKW@1<Dy00zm$YP^?RWtjt%se~LV406qrbWoUdqByfhMLJCN*?Bu
z!mST3FQ9)m!s^ZP7%N!ZTw2#!GksBy6yu`3E^HOH4`nhX+XCV0vXXVepmG+bm7msN
z;z&tpUx@bD8=_4~c!TSqxME^jS0zNA5i0hhY!};$UJ58CdjT}Rb8NwektLvkuOoGF
zWXPauUCeYJR|+phYO#;F=rL983AjNe6B{_a_`ueri^XJ^Jy6iP*iPWmCe$%BlcsCF
z`#S-2BzvePDy8|w;#9p*-v~(?)jF5feQQcf)`o*>C)S+*H0VpAi%_PE8Y%vmKU)(U
z9O`Lo4AM2Flo<PuX~}Yh+aC?E@1QP62UIMre%WEbu)=h)ll1Z^OA<ixsr2lv0oja!
zW$myFk=AwGm=2UwebR(szVtf}SLpOw48@?ORhZ`A`e;V9;b<gjN9-e^K>9&amsO-T
zpJigY_P&R%YuVQ&OhqY<Brle^yM(cbU|XmnyETP*P2b`vvBbexLMu)%4dm%~Cakk@
zSGXu&D%S{=OT1ugwb)#`_fRx}_-vc)u8aGS-@HfXm`|~!{VMi2O)_1m`*~<71I8|r
zlC0&e_m+B1Ikr{=yi5Yp4~}b}zTD;8Qya&u;w%`j#Y<q=Sjtm=QS!p{SjSl$E2FAa
z-Q7N#tdHl2N7XZG=zqi~8zh-WJw`fl$o}Jjj!(9wwD^RhO?P^!)ix<hG`RFV<dTqf
z)KMIj5n``2bFBO#DYlXMN=SAH<zY+-DNe2$7Aiz>%vs6O&S_cCs4-3M!f=>Y9L^~w
zlBaR}v%4159at80&4e=A%_+}-J5i^!h(`#oqH&dliAt>ndyG2zpxu}`to^0uZJ&S6
zCgNBn#hFaEF6jhgpO7kTfcPPt=z~7b61X(p3S|%JpULT2+a?b4UdO&iU#5zKdNHRa
zB^6~)?UYc`9-69ZJL_d5xRgY0P@7C&PE0Rz+Xr(B`pdSlDcwjJ$=7(661JC;M!<(;
zMopVM8c7ckvu3j>)@*AkqGcy_i5^R6CBFH%jz^hYw(tcmn?5qSZFaL0F|&oH7W+P~
z>GeyB=@+o@MDAS-6?v5o7hp?#Ll=RGj&x;An!0UER_c<IHc9^4IqLyiX>G>#rA$O^
z?3Y9-Zh&Hf1P*&RHADQz5-d?QhZ)4EZ#6FreDIvV?e=$({k7-TsZ8<mIys<r*|p1N
zQe-l@9KIpGl`TPGT(PrVw-rjYED1cDI$KS3I_1g_{3y=l`ZKS~?&8mj1F<<}e(1&e
zT9D+zsDJR-97nzs8z#+kf3!zz_Io7k!4{-a4*QB;tWv$zhns{64V2F(D>x$x#wcrq
z`&enxTVFDZ+|w<*JEu0(QvE~44P4%t-zYWJXm8>ejZPL1W=X5aY_ImhP!|L-O<ip(
z(MypG(6VNyA#8tDJV})GL3qvKl6CWOY@2haeP<V2=n(#Jpm@m0fJ;tnETvWgorqf)
z#yMB>G%R8Y=7kQaGfiq11s<y{Ga=E_Ys=6~-6;-sH^XB3j+%<nJGX61P4v>l+e3Pr
z1Kj|gmqa?o-6feN*4M8Q;#slmc5#qjV>wfcx4L?YLQs%s<n-57QXtE02ckBZu-eyZ
zUGYd)sSyIvX_(aFx(0*B0xQi*Bo1^Od&W|!2DTY7K`sG0nSG<{nK2JVo>cwId#w7i
zqN20JAEcjLBVpa<3&}X}b~Cxtz>vll1ap@`>8YloF{3lSkWb@i!;&ql0@E_{<x>|d
zEG2nJxnMP@XUE#MVM!BhKnoUZX0rIql*Jxxh`tmDV~`y_d+_$ccj`rA{a;AYc^+48
zZe^aZ?UGi0cjv?{-EL(8l#uj<_0bk-3+cy2`)20wT%?i3B)^g44)%(pd66j|cX9jG
z^bq53^luZ3xN=poM0=RoIuy)0OC~!oT()rdaFAF){mHajBtb?hES(w2GquWcS<*Hk
zbbdG`Jvqeqvsy6L5FJ0|-_1rwZqDZmy*y3CqHM%U7^dCHu_L&VY&ZFx&(v_%nLal+
zQBpvl-PMjjQOYv*)80H%I&Rvn+Nq(YJ5Hj+gzl?+8&mB~zjV1YM&&X_lcp54Ov6D2
z-P6#o3$llq*H{1r*x%H0rN$a%qU1_vPaOK_Q69UGsxzKpcv!k1zN6}zHEzks?6Tqn
zV-9AezW7eO&Co1mJUpOXnawMRmZCL^)Kqdh99*R2&^oMel@vCpj5j^O6q=STD6(0%
zh2P`gg>|e8buCo_MsqNObdt^0NS@!ATsxv)`LWjJtYl&O=A))7*VH)PMKIPn$Btki
zF5{bLXfAee=n?g%`I2FrlbO&=F0D9e6lUp^Ans7g>O~}bmzyeYW-2%BFOHvL(KCK7
zs^Tb{<C*Wn_+_m+-{_hv0RWdayn|^i=XDUetPJk%MifQti}utIHz?*a1@WC-UsD)F
zuBjq*3^T>vp-IuZr1uut37mEwxLOnbHR#1oW;Xl6d;EkHYq=dOq|<C_&C0{{EX5ek
zT=fdLxPQ&u&5;G}TtMxyiD%TNMh0!FznpHeJ#$fsrNMU;CP1+(kqm#WKvvUqA<ItG
zB`pXs(t(*KysS-6BF}9>j%#zIRylpdeWLX^5;l!UD%a~yRp<Ik&eO-QAzBMWv(4er
z92+FHSs{Jk((fbz)k&0utIYZ)V@<QC^&CFT`W|zi+A=+1DZU=3Mo;N77rRBeRWXa8
zf00}}5*3|H7^g0yok`ob2)%nKqBzg?=7cyeUR;UUb5Dh6(hOyRixRiKnK`6Bm10IL
z_N_Y^T**<cbu%Z>Hmz{JC}*KZo^_<mkT$BEQ?I<aOaoi5Hoi$pztlWLkHy}S^O?TL
znASWIi6@Fyv{7WU)ct5-7|;4k)dB5}6>fmp(K;mgBa&R%I3v(}ZO2jsk1ymRA9O7}
zJ$PbzFY?Fi&31rZq0f0n?mr64qB@o47n{G+ZGto!jGdSM$gv|vvdGx>%qPuscdEHV
zGACc?OjhGYkIT*MW8i^Q9A+p!5QiwuCP@y1GFzsMDpd_*wyjJyWm@8r*Q&ghM!YCu
zRbsnp)8lu=#e&_HmAuMaGJx5{-b{-$zM_NTlai}`#=0p~s@F61XUkX73b(Io6u~yP
z>6<>bJDT4<&&%nx;vb4fTYRw&uYF|OjXmEhP%V5A+p0yJoy`m$m+f2%_3jtBq$jV2
zw4)zCG+~nE8fMz|>FpUw_pRl!1F|Tna>-WeZN72d_LudCw=w2hOq$b{i9d{1ImxO$
zns*4>XCm5R|3+W*n#6-82|3kQb9;#j+ptcSZ@b7A4O&{%eN5??^D=j~I`2-S4{1B4
zZ-SARrPO=syVI&GwZYpIIcb-IUMVk{SXVrjUhG!Zwt~gn@S%4tGUsTwfx$;^HF8*$
z=N61<icu<@Zq_3+qh^BlaZP-5RZQC`+I(=BE)Mf^`fbG`YC#ZDL@fE9aQr$tb<(QK
z7h0jbV`RO-dS!I-Ze_c<RZ-s!<uk-~l+HUI25$@JV$G|EqU+k$E)Ed8rs^HIw3DTh
z_Cl|lpBX(HYVA~|Lpd&-g-At11imYbW`?o5#zeR|?$W(O*{7A_+@;Cg*W;p76=uok
zoDsu<PV3Uf^J**3Y{@<p4OY{CH~k#-aU>z>UM<?_;HiU66Fw4ngrJ@ITFgBh0r~PH
zUV9zO8K1)4(WtbeuY6NTQyeivWEhtfSCaIeB^1}a@j_KW%}P?BbMaMI<8)vdbE4?!
z))u=q2>4Y7MK)`RTdY%w#yIm8bBQ-!9#S4B$~>78;eG5#Knto%<c2lFfJ^p|4pqBL
z{$q^Xvy1mAQiE1~7B{2DJF#(^wOtG9Qp}&sm58a?+PJn-YRd|q64KeruT@Hi!#*qF
zz1h}=bWVyZg}G!4htKu!gXuYpWFB5owv5|0%?6VCJc10<;P$E8c1?P_LMOrYkr6cV
zkc*_>2ynBQ=BW6cUbjrGQ4c${(hcLw(K<nw0<~sOKdp*(>+-gY$Be|8+&2$e-fcN!
zlSTWar$HJO+=w)8*r#c0Gnb9nF1BcTVb_FQ#?Oz6)I&s8Yq(Nbk$*n6or<6}?Mf}q
zX7G|(rKnc2N2g*{sS~QxNl(^pFk0Qh9;CGNYlCqqunYc;UGSq;LoB4+Yg418486}y
z&ga|fJSn5Eb9gBiMd`O0O%Ww(-=s|#3s3*oBpPkDHgZbA{&^l7AhwtG)4*=h4RghB
zv+tOfei~j~3{`NST(nM0b+BNYhn9^^s@#q&@)RdkU&EPmBxF`h9rK$^TFI*p4Vbe9
zIGSBgQ7-1o1w^nCNZD;P6?F@a{Z(7y!Fl1E-b#z{=%X8{Y&`-bev6`W0xwP`lPV9>
zCJl+7Yj<FwiX`3?nNOC$nls}u)2(8~W$5X2NcxJrrl!Y+m>Jvox&%9NjVJ%k6mhG|
zOEZPT;`DJm&H1jvjB09&PNgkZo#CXmCf$@L=PZM8PNpD0pJPcvoXR^%EXZu?rHm{)
z!fHL3<VHqohncK!c(l_sGU$aJW?5v0MD~G{$;J#_z~B3#5W^5E=oTJV?>qUTATnru
zN{W(WYG=31p|D<mv1`@-vWzcJ*^;NPw8qbH>m(}PiuH3FMCZ&Aeg&UX05ovgc$Fen
zt4W`=%6gemRpqOt(afo6Q#4XkdwNV7O>AA6IQ?8BeY(R0wqBn|?OIT}(lr{y@A?8v
z30;D~4UqjQ52`~?ym&~BH>px1-0nsr%W%nxo@$i@-2)iI;95#ltHhkPW)<bbi|Afx
z<Lt2!x*lA>B5_?_Hrk!4({#;Kgc{uKcFM0s(I&}^!r+uv@7$#w9Q<>Cw5^k%>Nds!
zpeqjx$?GiW1G3Yiaa}RYKcJva<R*O*+f2-IEXytMoc=U}nEvJJ)A6;8g^T%Ibu+Rp
z)WjCK>at9du}O`d>rf`^Dp<K>h)6f<D_$<+tKFy)OAXy>Dh^V6CZK~GdTs6YssK`y
z*0~z-gyYNGu7^&tE7?=%UcXHW{@4;y@{ACdX|K3wL6aFfTSWG=CK-ecp2s5MDlL)h
zj|4`CXpw%IS`SI0FXK!u%+DtBu<Kq0O+Q<x#?#2`X|3jcLhlq8u5*=WMSYu1A?lxq
z$XA$v#x`pD%n=7k?HwkIh(^<r;aw-L6f<S=W#LQ>nOZcqHu4#zuWxyEMJMfc?9F#E
zKw1Ed5bK40)ylSm*Octmmsw3z<<~kWxOC;=K^ck|xo*YD0M+JQ*>5YTbFz#SR%|nw
ze{#thYr7XWW{aStpQRTsMvmr&m+H;7g<AQ2GDg_SB&$~?u=`7|(y-Kg$2?1=Gf-vp
zT-e807-DHcc;lL$BroyyodTKetz}TQqVmaFU<Nz5m&g<znKy}j(j}Dh8Fl++Q#fmA
z)ZH>ZYRDImSm11e_YUI6c?i~!#A-#id((JcM1gDuQ4~rA`LEtO^pwbiv5V#a%Vd2?
z7L@Z=t&&b2T$xnZvnWtOG0xJLcJlz=C=CRz654G9A~YRl@r6+XAB|>lyQMZxPTZgP
zV5VK^JxgV#&Ba{0f1$)0?1@hgYW6}*nN?90EW~A&-XfC*1Ya4oYkF2D8qI}~l9xu~
zVw8edlALZmj4{Gi+jdpaj*m=!sRtC|KFEyAby*0KGZt>9W9q#Fk<EzzCO(JgAybpx
zMR8&#x|PBdfigR4VI}reZg>9CoY<def25O9)>lN@;ysP4g>$h_m$Z*i?`d{RCRY{B
zpPR5QC993!*x76qXqYE5yf=koQE;nOR6$meS{s(9(hIxhz~)?G`H=`YGrC+UI<j%5
zvnxjoSPq0zbr8Rl!GbNlIEqFWQ3QUv8K0bR3lT+ffzPJLh#Y0YGRCL$wP`TPrL7i>
zT(33Ubso$x;zZS6-dF}-$NB)9r4ggEeUl831u>??=(;=_1x-AWrwTXaFmGzc%0hH2
z)dLWSr!l#m;q5zJx2kj7h2Nr(g~Z}+KHbf_6?P{|-P|sg%#U!DFQcih(zBy@++`y-
zqp@c2LVm#y4J4($A_B~Q3Bi?{3Ldn1jCW^PEPPt=lRSM>LE^ng%O)o=@v0?03dI46
zIw)1l%tIAeQbqbX@uH#5!ba<QXW`)96%*yKueJ%PHcTqCE_hTIEDEO!pZXvh?~QW%
zff<ocSo6ehJ99=Ui48_d%5oUXZb5w><S>_J@Q@ir=TPp)#4l##L%6!stEDk5ug$rc
zEy_=qG-s5hja?cr4a?ajbtltXdL!dof{b2#_eRDy3J<+_E~PH)o)mA?mL{^09bIue
zXpEKE;o)?4RFsll+~?tuB1$`NF>nQwSs>POv163`_2QDw6eV$SO2KDaI2cxIb99`}
zg|5w%+H9<+76~BY$}5siA#B!4-Q(pHb+|F&lU#1(>=Ek;i4;>Lz9_c0H%jbbd}vRy
zjnrPetKalOPWuPzxj*Y9kvI8L3Ng1OE|Cj!&(;@N1(~#?CuK_OVu6w-P)hYVro^M`
zhx2M&)XnuziioT7#H@q65f&e^YVQEmo=sIY=ev>77mty>M&k+B+<7|Zk4%gCv=cz}
zCYvb~O{AoA2fH&WgXrw+kmt+%$Xa`7CLoEv3t~XmBk_R;`^(^r^QrVpwB6?O@|p!)
z#nOB`)uxLcR9}95fe>dYy$er2PGfEnot+i(i!2$J7N;w{SaIdWlzyxZBf(ep;+!(^
zq7<>XQEQ2=kQImIIW#ISet**5JH`sbVb8OARJLE|p^NxrY*uP3Lu4efO!_%25(>67
z){-NPrO+Ft%bKOXmmOlFs^VYdum?=#Xr0U@8R`QgM(CT$I$<eDNnC1by+u8weW@Ak
zu*$oT5{Mlu3WYMeiA`eHwD?EaH=E<K2=8qg@{;-?BJ<;M-_lWGi)`N_y*iAN@S+wY
z<J>kjfLcH2bzw{Oi+GYl)41Y`I<uLaH|k?%%Um{$Y##^f=BmFsOGz#1F49=bjH_(o
zDVt@jtQ4s?>jUXTWLt`uw&u{($OM}vZF6g8(F<r2Z0e0Mt~<FD6L}J?SVXYTOgbUP
z=w1kEdI7o((e1UrXpfKmnM5b%Sk;DnC)#``p<1w^ug#SBCB5!vCaM})D@SJt9#-&?
za+}X$)o4;Pf0T)nGB=7jrSGIybUlD`if)eAeh^McE*&2h@$`_L>FJP|x*gLIRT{A?
zoq8&S)ehS9jo3O!ScAo10JLQEZQdBSE7JPe2A$U?LZmdh9>>WFFP<nPVgL~gssVLO
z&G#WXBI9H?LD2Z)g9yBQ(gxQc?FvK^k~hw6<&;V_w{S#QI5I38MP#ryiV8}>JQ4u_
zhk(%hm#ezcNfRL&GRmlwGCCUCQ$Ot^B}KCVs4IOP=&H5p_OiaABx?M?JQHxS4OU)5
zwoz9g%)yLK^&09dR2ED&4FkWYgp5CBH=*uT^znM{1WdnnftuJXD=bm8++w7hSv5AM
z_n1A3xG*Tw2xnc08}ALUNb@*FNnuc%vXgvkZz{XULUvtfpPrQ1W;nKX6qeGGML9`{
z-Ex$Yd&^nsmX^;Zij){@ql9MNF0GZ+Bbm~}`l&UI%quIUS_Q}anmLv2(5Ir5M-S#O
z5)pAAm{kp%KV}aW!gvNF0dLx);n;a?$aBPmFN<^f(c)vk4{Hj73D*25PQi0DiN<kL
z5xrnzhV%6qg}%%Ox`GTHOFC6Iik;TQU#8r_cty(MkCVwjc>P#A#s@t4QMYs(x)hp^
z=my9T;-n+RpW-SJS1)n4--J}Y<AI!M&ZK7JYtovT*V@4pgk)ZIVDm|wkK6<4TaGs7
zVXov%ddkkU9^zu164M;GDu@&sxV6kOX)lzj&-3xkRXz|*mQ_@`_<jp=tR~$ZCo3vZ
zcD#mon0brk-M>yV%<sRs6a-No3j^cU)Ga6(FQQ8h>|;jDaa@gEdeXqhb#%<ZxYR4I
zMPA{u(}Q~*C`rGo$ftNlW>EshrNrIrj35*HHgjvlH|rj|>;(~kpQy#F#>!_ZUSkoF
z;-&5KJs?VC1yVf!a(9G#`WlyRO=6JHDHGsDj?s4}(V{z~usnW$#4H|-8I5PPePMKA
zK+U%srttvLHt2Eku@`LMXtH-ASd{geW>)wj`$!Ys4{PU0Iqrrt;Rbf5z9{n06}3_!
zfNxxxzZu?zp&GB^(ZU?FICF$aYqTb1gfV`zhEs97Bke_qwQEK5N@oOTGAzyoySStz
zVXkX1Xi>M;lvv)3nnW@){Si60_ZQeHdYqr)a$Tgz>PFK6@@2@nW}NDs?2A{Ib?~m`
z=#eZ>-$F2UDlQSu4x1-i3pmy=eHAz}b!T%B6UjM-?E}(Z$@_H7Z3E2R+?>Y3T>zMX
z2D_Vqtk{Pb{(WvywZkK+V@QV2%^}^X_kE3aGX6yh6Yob!R?*cen$=a5Qz3*umd3c!
zs}h>WrO}f0M!3JsEP5wmW5%xC?A1#gr36+>4Z*ljlW#6dw>624KteBBS7Dq*?NuAv
zwraC>FKIwm(Zndl6qmIWC|soP=4WM;#}xdm>fvWqi67;>G%cqTrzJ{hT2ATir!+13
zNz;mDEL;)M)2SN1bm;U3Np?4+Kw8z)m*uW^axW2B9#Y?NUg6ScOgklH0aHSjZb~Rg
zwV2o=sHX_Oz-+B{jO!}1fT<OW2g60adUsJ64g6L<s<8<9Tfu)Zb(k*6XkZk^0Zd@3
z&2e&TIJs5l4-7aA5~<iL9O_~^)<UfxF-;LkZ)4HzrGCcFTZ@vW7L>2;%V@f~v2w0%
zLXzu@Nuv_&i#SoT)V#2xA=OQdcR?v65n9yJ1a^%XHj2!Je)<Pzmzvm)xe!3KXo7~#
zv_gH~s2b2wShT5jGqp{*71?m}<YDF-V1m&uAYJm}3r3WZw9Q@0f+ICae@>Z~jbLQ-
zYGA4<tgFV+Gq)MIz@p6Qy?|KkXp2fi(UwLMAGYX<zv)94Xltd}7AGIIwlb2-ccpHs
zrzu#&$+M=$?82EUCFV(`P9;93N#h#7?p^9pBVtgrq*9~EBMaozDDtQR86&$ceIAMx
zo9_u&uBdSFDzFrqV@>U9gcPvYOj)EDN1AbzsH0dHjioZyg}!9>Jy=@xoRT(k(O#&H
z0xkW1Ymqlw%SZ2X0K)9Z8;b(dgRCfh4LdzojO>;6z$|InhO_$4ZP7hDHi%GRSnPFk
z9oP6X=PoL-O@p{`_z+uOCDHH;0rnZA%$D&He%6Y}r{uDIe7u>|rKCd-W1B{%=s4mg
z;2CXs(SFrGdcgOKSh$#(*u~3h{AeDp;gVU`(PiD&e!^P7Z?V{+etcNJC{}$}ttc6>
z;$8*%W?jm&qTVWt7T$O`ljdq}$I5n&{<U-TjZ87Y)OH94Zy{v|mUOMSx>94)hvp;H
zVnSmZij-;GSeOO)tb%dC1$u#&t?ZtwcorO2`$+S5bUe4Q{ap*Rdj-%Vn$<eSX4yAg
zC0C^};rMu4N4K)wLgV;GmpX~s6xs{4agY`hpg-y*O=&aOTX9@Mb#aSvRGbb=WY(~c
zG232|&b@g2I%U)s5;Hv<Q+$flm<1=PuH&2D8OsKbs3}e3O(GEO!1N2trZbray8&+o
z_>krz8w_iD$uI5?Sn#@2^!64_SlB}}a3)IBo~Z6DNlv025bUZRc~#OW+bXkyD@&>X
zX;7r|n8XsrrGcw0w$rO54iRS*6Dv>(nNcLpgm#b4ceF@$^ucmiZhH;1I6bR~g8NEE
z;M#!QT<ihlqC%!Mm=+rO6$@aI2V0b^y!&bb%+7m@1jTT;5-#yDL6a>YUdhbQtYh3j
zkU=d*K^c<s?APkgd2DMDd$yU-((kfp6fzoJ8OOYtk$Z<sO=8@+ZWv8^;80VML`n-{
zipcv+PsZNdGLy|JUYBO1_2R_h6OP$^48-^L<bfn?JFGe_1oLIqB<`BIOjiPxOeVP~
zhj+fh5|76{I>i)I;=8j0BmnbVyL2F{Q7T6hJg<bXh!+@UJ036*i{-O8TSh=$k>%5p
z(D-N4XA!XY+WZkO^q7k0uu^M-)Uxnk$!KV&QXTdyoVhyPQZpZsTC^ybuk2oT8Y<&6
zBEfhPJAZ(C<KRtt2O<8l9<(t2_!5Bhx|~h089%Zfsgk*7h-h}vZz_+oPGYJ<c8U<C
zbhg4d)r{#%%M9moc#@mjW(ldQA;^fYt(vw|>pZ>Q#VS}>7y0r4{%m`ht&W;By3<w_
zXv=vR%mg4lzZI;!5~@d_eLI;xd6u35#YNu4z){wnRd8I!lxke=3K`6@!lu~Akp61c
zLUc}Lng)C8VwcER7j+|DG#b$Tag#}$T2_#n3!mU)Ne~_a9WIs}mm?S_ff~FdJn^V8
zwb_W|Q;_i<h8^ayhx4O6wBX#ZfDf3W8jwvV^l<y)M?-XA0<kxvkr$>eibQWl>ZpI1
zMuflLCUvPcWLl_*w6WJ>Q-SojkW=*1kO!s;8v5Ri<XHTYZPWi_3&Ra##6rH*&N#Ym
z!VP6Xd?}Ac+FyIHjnSod+thC8T+xNQ?5_=61YuoFrgGbFbOTq%Qo}O6Y=C79#Ho6l
zSAS~M7*knbs!jQzW$s8mG09)OLp664vPg!a{>%$CJk!s&WR`{+)HD@Lp)yODQd8&r
z$;z2iEYj|TDde>~ZK7tH9@KhCZs+$PPpK&)bxQ)5X*3_bv1O{)V49n0b_%9dVuN0K
zx<KhkoX%5H5`0XlX^6&#>3S5Sh(JwR^M!HxoN_ILE7q@3XCsQ3o*i*bWYsX&I<`P9
z&9a6%KQ5ZWF=<PfR5x=*JP@4H-d1B;dtsUhKm&yF(oqc6b&~sp>XubA5cm-VF5!rl
zmDTF0GK6s)KwCPBj3#dhGAQ<%X%p*tWtzI~4C74<ThHM|OItT$^(4<v(chVjhfv$b
z(bjm@mV(LX9#zlC(^`vZ@%bTrhs<JC9_^)Ox6aZzmpK&G&2(d`>v{1exN$n~$)oCP
z{$@~nY5cL$%x4eBf_FEifkK^hT^bk7v};?_`5+rRu8vY_QK_ZQ5XNhtRol3P#%eaR
zDGg_}=ao6Cd7^79)RHe%eHdSD&0!&`nRkLUVNJZ)WX)O|-*|00k|}0}K086clo*rs
zPYX@e?jFZFiRP@xwT)z)l1!?zw`A%~%8(M({^OW9QhS&+QQuUuzm_ZY*$Mg@PPKO5
z)om++DAn+(;Yi+*4da=Krf7~M&82eoZa9G%+uhYG8GFVPiE8nir_NA2mDdmGrw#SU
zWLh#SNuc1A4lh}PLdsxys-87@yj6I;-TKfAqn117Nv}zpI%RB7m|DcMouS?y3>-gx
zl1y4@WBgvqS(1&`PC&vNYU@y;_PkIS_6I&%YHLiA>K>KvnX}vz)gP(}>KP2R^(F=i
zwKFD49n}BU%2TZoYHf~7XQNQdG+40sOjoe;;jTpm8(zm0Y@VOlE%v><TIH)A!6w;f
z+O_0r5F>SlNz8%P8B`5nV!BbZqGmSF+4L3(nHaq;7_geD_d6jonZ)TN*2mP`rGC6Z
zOK4Ns6rjISLi4U%9DB7svRC3qxhx@!lWKbjrM8v(oE;@3m8M=Ini6WY_@olbM7@^K
zlTu?3xn={^e9=tHODPkgI&DT(1uvqJOCp>(iw4l4R0*}FWo|1wtx~V`cI&Fd-*_6J
zgfJWVSP5aA)SXb`C?QT}Q(Z!+kMDSu5Xb9vu%47)^!nDtS;34zA6k@AY)bM$XO5H6
zeD<-XIP2}pD{=l+I6LDnNy$1WLp?BfZ33%zX1Bysbeo8n#zwumKc}-LeiVHa-)KnE
z8ROkV*~X)VYqN(Bj*@^jp>x_>&+A4li#OurlRQ4B*n>^o+IPZ=_C-v>CE;szDG;Wx
zglN48j;~i@R<ZPfg{6@dCbg1~v=7U9FXgIdE7QWlUh2CIzL>p2DUn_K@)F9lx!tSR
zD8c@EbI)$<XfFxlGtR6@Hsci!=G39Kbw#fM7#Dv2R^nQtZ`!ub^(m@2x?+d%jZ2m_
zc4n1U>{P8MIWrd+FwOYI@n}{oA<zriGwTv#X~j=%)M&=7w{a=043mAiV@(Us9LMp{
z&8Z}<nX`J-pL({1Eb*8n-b)M5PIqf1A!eg1UqaA$oPm_26Q!vVha<&sEb7r-%1C|7
z$vyL86yrb5G~Gm~p`M&ovkftWErW3g_mblpP9l(4w=W3ZDO#F658blG>*XmWYe8{1
z8PykO@;Rez7Q(c}r48n!UT0x<n$e~*rb$?2aa}ToLgvuq*`H)@B{gXwWSNU>b;g5C
zYT@;@r5!8DWoVjI*Q`yFt!7q1(Ra#A)!Wmaap4S2<4kxFn(7eYV1u)r)w(JxZd0vk
z;?yA+v3ZBwXnG5pz^mJuSBB|)?iRkQdF8aGf_XgKm#LXVx3)!^@LX<CzO@vD=|@fq
z>2l>Q00UI5MuXo>qi$g4;8WmmcFil}t^rfM9Sh>So(CAEv}E&`2c4B3qRnpWKo@b`
zvexmm)?BODi4$wvTjm$+<GT0+hPfDD?=1RMiN*^|2*r@Fy2wL;(|0b}B4EnT_-c8`
zDzDhVyMbEBH!#&)#In$ya*>gF$hgrNY~E@cJGie!&BHBct!=g$tUbm*+XUl2_{+nB
z+-$UMgn7%-ODC|FB8uM*um~*ubP3W>%)EJb@$S?aEi;!z!=!eLH%w~x7D#RGoZ7sJ
z-8L%{>l)lo!zAg1v%O30S;COuDC1{cTN*O@Oup{g+Tu)OMzpG~=Z;y6=hRZkTx}{r
z=r;@fV5Ss%ETF?`Fl~+!3n>)JU*{*OSzKvDHqK*b!lxa*dqiqb`;V%j=bEI>dd`Fi
zvnEXN;o!s3sFVEZ%-}O3GvKts?PzaT2{=4DhBAk3HYZ5XFljP}X@$Y&o!ufWVm`Db
zY+K^t;|6qs9S{XyA!0^tW3zm*`dUX!O@awdAEGVmb(TQAsV>D>t-6_27Mj<QHAOLx
ztnn?Ad9nSMnW}ZdVkYeZ{BWp{fLd>wo|~(lIt9&X^sCvGh#9lEY?o(Yr=>Tx(=C`$
zCuu$}jZCtIrWz8eU(mwLXx@%o)L7^OQGSt@xX?AIjzw%eGY4f2*OCOW7h<aCqgM#?
zv^}t7tjxZpVXN<ZE{0d*;?AIz%j7L3RHH<3OhM?<WE&fWn22_DOUGok`TCZ8fg-6^
ztWy!q#Ux$J7rQ8ljw1)AHqN)a4rK3EQ<C76l-8yY`nDCzl4ZeM?BTVSE)6dVo)PK9
zB%(PJ2-pH*wv=m?tjAk~Il3fiEwKfsEForNlys1nA%(Gkk>C~yJ7~^%(Wykt6H8%%
zX0)|eBb+p|dUIE&TXhg?>UfNyuEk5(PO{RJ(n=|=SY6`DNKxX|(;;2wdx@q{;-X+N
zkA+-hHBsbgdfReZQ=*@)R*5cLeA3mL{?2Y?>$%isM=mO~x>e<F$!K*tgpalv3t&)Z
zP6_sFb>v2|c;>~e7~>|Vh$!KJcJ_3*CJPTYq2~@@E#Mx;bH{+?JT$4HYB|j;n5O6q
zBcsdKFs;2Cp=XE&O(E{9c<jJFu(dGeBg}4GwD8ErWv%{ZcTmdkFIhFFb}OeXfGI@-
zq$icF6_P5QE21P2y@n=wdJ6}4<9xym%%x0QsD)T1YfNZm)USy&_|>W*9?t4L%Zzb2
zEgjR397i*`G_;8h4nstnO8R8p{qGDN>2$TmA?@u)i}Ky6m86Os6*mdH{U`Meg^fwC
z3l2WxRH%$jTEu0RMargCO3ZSW(<T*=DN0`D$@{6L5-TC|8tvw`eDS2#Rg2qH^5u&q
zldtxtwp7=iqAerNf>~cODXW=$?zjG>MmJivaJtnx9&$gsq-`FwpJR$qsBE6jCh$}t
zq^VwVLlYW$)iJAUG1Tmj?9fzx#SXFVb`Oh?Z6WWM62O;r%|80<?BN`b&*nq-v-rws
zpk&L<kY(3w)=4ePZk4XATAOoG55}FdPPTg0Jh$S(=?7-8Kx|<>Tr5U9wOD%<*F>p<
zy%JDDn%u>(wyk3cxtd4c7BFj&q3!}7itFrC4@ubU1sq1k7AT1=3o--6sl|<@+x01n
z=?8H$5KP|2#(-|#u{8bF4OWKovKA3Cc0khXI0wZUw?G(gA3&}qHKw2_k23DbNrf$q
z4NXoK^s8)OthP;s?S^9eXT2FAG`BjmPfB}6u_Zlb3Qbdvu$3Oe(ndZe7I#>_gR@!1
zw_I7gMYPm&mVnkc8Ugmd7gEp+5uIoF^FvK_D><@TQlN*XBk0P=<XYzz6D5sY(lX_U
zVp>{N#WcF@+=VmRib>OTe9khwkgk)a9-5}=@V^JOo~udSebzTFZt?wZad;aa-M!W#
z8fjcn?9HpLm_ot}Etkc_8jcxy5MiMhjlLKaGR_2{QQNJI>8|#09aj~{Jf17(?WLZr
zyG@%{?8{0c&E{faUF)*8lDNqFRB3z{d!lxG(7YDAd1S}Yi_h%Dp*T)2c#rysXJ{rI
zE%xr?$%UrH^g^L@x>4-nt&$G<v=jT(YfPWdt!|{fB&HD0Q*UNl9?TAJw~z%~9*{_<
zA7P!$p%YVp`S8CMLJ@4hmu3m`Ll(GlqeXS1-fn;^w+nmB=C-w*2U}kpd&-;I2Fub@
zOcV6Q*P{H+YDA<<_#QMr9`5clN{M^;o`oDmyi%beEaK^ts>k&psw$=V(amq1`MQ&x
zckfOu%#S_d5&N!-m)(Of<N0%MN_V346@p9_zpc);*2EQr?WV0i^3jcMp{kK2FYv6%
z3x{#GKazO@BKh`Cq#YaqWeGSZU|v}Tv#4vdCT6y3``{CLX(iNgoP3X4#5Z85w9G4O
zT|KAwS^Q!=3O19GZ-C@I()^BJfbhT3j5C(E%{jU=HCo%dO{+-@vld5?luhzGlqJjz
z$HWe)Mqluh(<FMhXCbbPMxDyZss^`NtRhpkMq!L#-&l<9_T5LL+B#y?8mpBF9r!nU
zR<TGi#@WY86&0;+S`^V-zi_2_hFoYREaUY!7aNQ;2=7>XE8#X_$+Fgtwk6_;Q+M{^
z_RX-=ex#nuOf9q8@ZHv$T5IE{FH^f#`P5w7IG@kcDp5&OS~|v|q}|%2Z%Y+u8baBu
zR759dC5P075Os_ru6^qADV{_}nxJo4%gC0L4nrfs&}ZGoiJ8@AQFwr2!jeu2>oZE7
zuDO{%wS9-5&la-aouD|ki2KtD^s+{2G^}zV*vwgCoeTD?mobMFs1$0-g!&?a7jN9O
zSx)O(Qr#jU#Q1^|?*zEKmBoa@z$@~VaVtuzh;GrM43M=lxty*7nFA)2;cZ?s`#8Qv
z$Scj%md(dTo1(9HYmzM3G`T7rbBgn1X1BgxaE?=>oKrFQ1k|>;!62!h`Ag|OU7Bd7
z*t>O=&Qye75`wfMli4#=dR$Zzpjfb9;^61|cJLU_B}$x?*YT|#Vs(qNX5^KyYEm)o
z;UEULl*l8U)hji5*fyxtt#bj(YaBg1Zh+{#*xil`oGZ*$*R<Z4HO$$UN;-dh>Z)h>
zmZk2;r@J(~$8CBC8+2x1!r-84KCZ(@eM#WVH7i2z&gd2Kl3cyN<=V4+Sv0*=wPiB%
zfaX|p&+r@}OCz(i)-50_2cq|$A!bmlUZ`!}=X$!p9Cwf3C%EntU|Rm^e)XnjOv+IS
zRefnjZwY5J>v(im#Re3&s|g>DWaV$pyp_1y5Z#Eo4^J3o+kBP;<&cukAf*K<b?Rb&
zq78+1{>+V~{i&YM7IOI0dr(`um<D^4L{jTGiY9g~u~V;9C}o*r;<8rp0|ZUBb~1uK
z0i(u@QD&bV1-QEv%nvg%7dw8iSi{nIC}Y#s<oa3cZS9c8r?G;^G;IXDwqp1!JTCpZ
zRaW~*CJSmm%yj<gDk(fjqN<IvHq0_tqd=M3&0;H5N<oMymeMvaDJ=^gcatf-M$O@;
zIGGoVtiEotoxc?o+|$np%0y<Vn_;372~@IpjH2wuqtBu>^N1R;-wmTsIg7>0Hrd)K
zsGI7zvu3VKPTEbiP=ro1W=mFqWZvN;Tq#|2UVzY%*<6=f76=}(+SZ>|FWAl0>8}c>
zG9gRBNakv)y(P)Jda%4Lvg<d-krk}P@t6li(<}|K)Ft*k6HmCjNmC)!;+CjA=jwn?
zA_h};jv>?CS!7dS%6fC~WvVxq8M=Vhs{`V)-sslBdvln^X$tp7dUG;us@@z-GSr(x
z>@~eQ*-hx)TxvK#>qbx4j9#3q#$2nbTOf1MiFR*v(}+RGr8l=}_Ud<UE`B=Kn@cL5
z>CMe{FYSwZO=|`cjNZb;IkGpWcwh^Mvtie9y1m((bL^KJaq=VYDE}?!6ZICN;Hs&>
z>YF_W=lt!xrtR$W#1-bT*piK-n(4DeXX<l-oc4{y9$iZou~i9iBKy-4g5<g-gt}Hf
zs8d3jj>ekpT#B;OEl@o-8%hId2UHSjx;-@=PxR*a#&`MRIUR9cu!7Ek<FTi)vx#>3
z;@R+wZOdKTw*!g0+c7ZJBD#@Y!%Td*U}pK^+RpjaY*IN(PR}o$hctDK<%=ii)no!s
zshwacS~M(?c65_kYPhLgLf}nExcZ_bB_hY39!wgeIWe7>!bD#%MQE6mJ?dxHbipnn
zkFRY=dxB-j{H2s&w(%=j2{~|8gf16#vkBND-M6Ra1qEmxD{SVD0BmSSTms#Kv|Xyi
zIu3}6?HmSm)UA}jvVp}(-}IR1D>w(t;(6GrEt0yEwA$<Og8mFOuk9slqGTsJ@|6C6
zn9@A1dFc#}yR|K{b$Ys9uGPXR!=yIOV(czNN--O=>mu7tWFB40H`TSF3V!W@lX`oM
zBPC8Wom|;ye$uQRcjSz59OKyIzy<AiKS0UU=F=fmr03tmtq|DPAoF0gAYP-y7FAnH
zXkK4NLfO}(%ZTqd8iD`pXe<ri8_jm!y+vHul9xu34VaQ_P%A}`yOcN;WlMK7O5CC}
zu7suvMlC>B57KIoLV}+(dxzSPYa1PeQ~7jZ>OGE7tZSHVEM57<6<BR-h})o-Y7EQh
z+dS*8GiP_F6xq#ad?-^AM~({XY-y(TWy&Y1rdCFs)|8Sm6>hBx>iVSwQ})kDj8i&%
zoSiIy+_U*1qZntAk{ib9E)hdc55i_%Ov<%!FUHX5xt5K4D@`ojTT2Hx_P`CKxiOzT
zlirx`4d)>Cxc@^Ay8GOC4!Zj;&4H$A)A4Q?RkNWQ@7+(&RD1VVnx0S58z^Kq$DS#4
z^H3V~c+RgoTa1<2U`cxO(leP}V=7H-hQwkF!3~t8hjY(FdUz>KAQRVbAcdapJ(K9^
zC*7cD!^C71n$NRjdU$a;jIZY#_Eq1yq)Vc1R=&Bm&EH6j2)A|LsatFINVpE&wbmu(
zYeZ4!+?YQU*EXERY8G(4_rd(4Q$pki8}>V+wH^I#P1_ssq}x05^&WfrcG!mFlV&8<
zEDxO<i4hLAMSJ<8j@6^MBWrxev5{y-ve}k$HUjI7_==mF^lJ)P=6iOe@r^Jjreuw9
zSqFwbsTe0@b{)3(YGPL8ehc8cTtFBmX|0gN#(cQuqAg{T0Jzn-M{{NrL@8}i5YxKM
zVvqnlvlLX5(NuC}mXx_EaKOYYg*muYz5RgHCF6|?Cgo^)`Wm9e3eVJ}WeD{NGdde&
zcHML;vYIiKQ`tx%z&z^2*~mE^5>C<cxPK+)aZX1(WaTm$ti6WcoDL}=b$2xmyvTRd
z+)cYgH*4HR#9Ftc5qNbq2Nz^#)#6qaA&TRj;DZ-kQPY0+eO<H!x=Q>KQ%L1Lx=x*1
z&<gi!r!%-#Y#Ll@P!qF<8B-@5nS><d_@9setAhRqr~|?vkjK`K-vOZ+1TZGlnakj?
zI_$&$G2s!T4+w8ptqwJL`56mkZCF>{9)^U;;q7pL7@8~yLqk<En6L}N*ovXy)jm~W
zaCkA)<pysv2>*5YLHRlS4kFIg{PllhNq<c8STZP7m8}b_ld9a>uus`N$<S~$F73&S
zq_=?olao2v2ZZ)qAVu;}rrbXgPOS8JhT6{n%F+*ipW@b!vIWe8$!$JtVdW2r>O=8(
z>1E4@6`~|phxPnlZGYE=(~0Az@Ltt=%D*5Pnye?S7sFb9S0pRKtHeAYnH<{7mF#-`
z!MEyUa-#ZePu7KXIfYuy{}=P86ZS>YSpa>3g$cR)led%mleOVQ{;wsy)!{Mn`e|5~
zyqbTJI3Edvlefd#suTMJ=mWw&Nq|;Gy{sdxSHtPp=kQ;t*HJ5K)xpVX{7w$<g;%Ms
ztJO~Unrx-TnScGloaBC5cra}?1|O4?oAA|M{^EeK)UxtErq3MmdNr;C!ad|lX(*5S
zuQsm3&rQTM81ok4^fJ{X?Ob+G+2G`K+y;=|*l<%n<!(i|sZ6N`!m7o`maAO@J>XOR
zP9|^abAzz8Qx2s*nEdSn^}R5(s;)}0jlsuFU>#5?+jn2P#n3G#hpTh%m5+t0o_!)Q
z4W(t;!%ft{Q2ti|<xBq;5N<8MZ$neukCd$-*9!Oc_&H%v8PfvsTus=z{8;=cA4Bo?
z>Zq~Fx+FkRxWP(Z|DaIg)RF$JAgspEI_gt-@PBpr$;qJ5FBw3n8DUU<bs6oJ3@zUW
z-)blQ>u33skE$>yN4aSKPm@m*-mjuJti^}&znav>68|9nuS*7FQ;n%S^akoSPns);
zp^k7Gsp|-RKe-)5N_F-hH_RwX@?T?f0WqwlF6M;oh<`hN2T{KRDF1+}$%Nl0yhkdk
z_51lP{-;rs;Cn!*%Bzn2e;&Ky-GaY^LJj%Zj<V^0UHP2y_VPWUR#Aq*_#4cB<%fPl
zOjUp~&=8N5tuOnu>@ohYkC=?_$MSi?jU`8?ha5eTS|xr_^0X5@nV5#sM{^caj@a^0
z$sH!mdiq=VEtoVPx?AaA^#~8)ak($Wrg$e)j<<<@z17=PYLtKZA=K0u%A+}PD5ZOh
z9Nu519#{CMlGhOf<3F5=`KGX*o}tl4zsafJ=-*JaO;VNAC69$c{H;qCfcF?Vj11<A
z0m*9YkKopxoQP?1vNmBPfkDXvLTiLPLY(WVk;j-Hn1P_aM<02+Y+ZR>vd&T&Y=7@3
zr|U7z0jHBMwVYb9%KmOac}@&-$`tni`uPIN`f8%GjiDTxCp5xOCu~Tn$~2-F2gz7s
zoJ@>EaT#m1bv5oQNC_Vm^d_}U@+$6Yp())#xxu8P*wyD(SWYw#u83w)ou2xUO+DD@
zZkAm>PdEC20fX{HZuK#i@~DrfoONMvGL%*7CTf2$uIrgUMOzRC=kSnIZK$0lSG>rt
zMoS3wGp3K<p)7<==`WjN-;|!PSttVmB%v?#{-7_kzVwj+m~){VRD>_^w-R$D=7G4U
z=1NSP<5%l$KJ)>bfWFjt9+xW62W$fRhAoZO5A&vAGtfV5MZ8-R-`2Pd;#Vz{C$&H-
zUnJZhi(Rp8X|y~c^3iu5ANjBi*p|P2&2N>Z?0zfFZ98(Y71$c6M|=@%%m1AD4`F-y
zzh;5WF)8OekgG3Y8Vq*CCQ1Mae|G{q6LJW@yWqYnVRqwpDA=7ih7ocT5P-(#9_BX}
z_Jpz*7!LNv?>=AzDO7?06!%Ed9fg1S9gX|Gq+Usi`$6BI-!b3-Qa=zkrGF5ARqqFb
zL%^ZnFmjbZAB*2D$aw$>=5ge-nw*Y@Qe%0_lTJQN029F^Fd0k%hf~%gNP8;bY6*WN
zrJF{)b;QvZ+EJ8rI`Pzl8PH}@>RGg$@;#gIbBO<Fa17zpp2vdYz-Vei{o{CW0`3jq
zM9htZY~pt!b}##0^s(V#F7{^70(Jr_^E_&AOQ2dzsKxozqGsw=a8i-~g_swC#b60g
z*uAJt?}z!&hPfS_3_5V>r1n+UM^V>HiK~k+N_!btZh0SNtrKXW1fMG`obnaIO8l$>
zYK>FCsnn8&;4a|H_&W`Jh0^!8`1cK`6UQ02or&MG_#KGL*`$9C?&m@~&*JjFwwkc#
zL%V=pPyqr^U%3!m1YNV_8hVGfO9&TZx&-=KqxTP&;{P&mIkYRlSLyp#(q3Amt^!wE
zUdKSK3||A+fNQ~Z;CgTaer^Oe(evcz>)>YccMJGN%;#um-vr;HXZ8aDB=pW(>6z>3
znct>o-iG__;0~a8@3gSFa2GwcinhKRn$o`q+zY-#n%~XhA8Yf@_n?0t+y{OD?x$CO
zF{@LruLmqlWq1(xhrkcP!{A5Y$KVn06YwbbDfpSy`|$8{M%ORM%P(n*$0)(Cz~hwp
z2}V*K<=B+b^CWqC3j7*84K%|(1D++#-(deOzt4f^!3$srqpi$F+<5AvhIL1yZ2}=C
zSR1N;{LV(-L`)N*X&i~B(Krdyr08#Q_`QwHeE0({FM*fA9~r3$^j8?I6(E2Fnr8Ze
zxWCHpYm8#e<*zf6-(V!aNxSTBb*Aw<Exg5u`x9mUGo$})e*Z$g-vNIm{1ATc0y|;;
z8~8ise}H$vd*FTI|G@IxKYYm8{s=!GgMWfgaQhT|hQEJN&!2;Tga44b|3d#CcnPS0
zNs<q_q<<&_`Q)fjo=nBpbZVS+Ct=kARiIBYJZzHGhrWdA2Q~$pf&O3s_yQOR)E_rb
zD#I3FORyERy@+dT;ur+J2yGj%E!Ylh4|V`w0)xShU?;FM7y@<yyMo=oP_R1~2KE4Z
zg1x|Sus7HTi~u9SC@>oA3-$y1gE8O$a3DAc91IQthl0bvSTGJ$gYlpSOh{(XzNLAd
z2z>?h+{Nr$N!cb*t}d!`GG(0t4hKgNZfY{iRywt1En$uX)9`y2epM%Rn2)0Vr(50T
zLp}BxU?$;bC4Iwe{LcYLLpuf>3y#C>cxWep25=(w56DMjGCMTUJ_iNOqnhU`!(7~(
zK?|4%=7R;G6`TYXTG-042=ijF1hj#6a5CrsonR^G0?WX1@~{G|1gpR);8gHsa2ilq
zwO)J$zo&yUz?tAI%6T?82S4Y6^T29wJ~XZ0g>hXOF2MhV<n5wFbJ(1)Cei$?IZfqM
zUuUkx{c%=0@iLd-e=XR8xU|-k_RW0Q2|t(Oei^u&x}MAG*oU~Tz+R{ug{=%<g?1(J
zTt)l?Sv|Fudwr(sAoDhUy7%F)LAwTA3$6p#gB!q&;3n{Oa5K0Cd;@%w_}8#ve~UV(
z#e6HYbk1Cd`P<+&a69gIfIGom;BNfh1MbEA9o)YQz6ZV!?gKx7em{7?>MR!?#H_k{
z2)7@Chry31-;eoy1pEX%3VsTH27V5H0e)%qthzsr{_pF_W5n|-@HpY008b{zvj!X#
zo=W6i8GcQ;r@?yCR6lrz-)F&Zp#2s+2c9SV2l#yf^NZkj;P>DU;3e=f@m>x7i1`(M
zU*-3;<OF(%udA;U{tYl14rW*=w2j(*CGi%wi^l1j;4Sbca3}76=J##z7w``FD{-lQ
z{zg7kSAPf3Bx#>hU#krNfc7qU54;aP03Q-YZT1oP81p~DC*V`?8FltA=F`uqpMR70
z|0E}}hAOX`_Zz7htu@2Kf0HKo-X^F`OvQ7<|A;r`wFZ)|^ZVlQD_Pqs*;iDC1mr*&
z$b)h)6t@a~D|5~8XK9`E4^_GTp%2(3r}5Je`sPAVJ@w161Hrr*7>&I@VKs)f02)UF
zuzvvz%#ptwyNTQg_5{r5(6$0wgK3m=F}WU;OTrhyHeg$@9dT|CcEHb<z+kW=_MO1a
zxqXa}83N7YQ8;)t^0PfO#W@g;b1M*lczD&vuIBDM-flVO3&IS9zB}|`U=Oe-*b59N
zp1r|7q~-i+E{uRal5nGP^XNsnFdF-=#G$&_IX53#p|1BO?0&fgtk{Km+&|YE#^i>F
z1HggcAgj;O;ozL=^rUbIVZ8p7U$56gN#ii+W5GDmuEstdY>HX)Obzr2U?Q}%9Fs6l
z#(fGnoctXDrh-~<B$x(XBL9~XzK*a*f$5+g%m6dNEHE3)0Y?*$)~RFoJr*1X#Iqis
zTNq9tu7=!+;Y82~n!sG@q8UFeU><cfA1olA^GUCj-;)Tl5G(?Vu`kIj3T>F%!O7N7
z7LyuJ!RPq;p{11%OLJ}P%-Ta2?#sY(up)PISQ-7V%5{WOa-HGS+|uynTvs@aa9<(5
z)4>_wOmJ3iSvVX2=U`q8&IRX@{%Yk7{}<%i;j+{AQeRKoW_h?Uw<27WTN&2mR)vf4
zyNDcK!tYveY3`J88Mqu=0lu0$HC)MfxeB+d!PjzM4%g&P3)kkp60Xag9<GOW1Gtg&
zZX#`Ob8qjj=gO>IZzgZIfN#*28e`uC-vYOSb-6Rbw{vHP+j3`x+jD1!J4o|R;=7Bu
z?gsZ@z88E4zZbFof0w$eW2aID5BWXZzmMB}xT)X%fcURYa>n=GpIc6;D#HWO?LmG=
z)AHp|A0o^Tu|EtRB+L+INzs1<{Zj1dIC#l+QLGElAEB(0@jsJj?bHq~AASP;(cC$V
zN!E(ox%}qC&vM!=h46F!{35p+8sk4XpTGTZyTHQzl6-GXy_T_ydW<-J1%|MLl04&a
zGk@94Pnh{MVhzmU0sb%$7o2%=5%E=qCv$6XV-JA8UlZrk{I1VkOuXX2MAMvb34T>S
zYvb?PxTbYLc?k1tEc0*hKZKp2;{HDEp>!t_xRCaxxT%bnQTvzSdYRe9k6(?yHKeLF
z?zhCFy~K05%i;d}virJ%7%vOY=jy`?%oQ)<{yXq{(*6T@Dfd;2?|Jg^GWa8S1*|2m
zSNVMnypI3T_<Dmr|7PyW7@zoWrNw%NAN2wGIVX2jH}_olQ*<9_?pL#ZD?hA#;B9lu
zg};!OcXHbG$!&P}D`~1F)TcB*{msVPHOPtF{qOks2Y45}M?CL?4=ldQ@F8)11U?39
zsh@vB|0H*9R?bf?&C2i@^nbBNd`?<Bn;-Ti#P=Ud>pI%f^Z8$k=XzvDZvP*47Cft?
zgx?$}19?ymDnKQu0)4<H2tN9PmncWSGUQ!gGwl7rMafB=_GoO~5X*jJ_(IuDVPM(U
z!{+$gqD*~W^?GwG`-a+4?SNd&;$=M}+}5P6b{SN5ODy~F@I~A|piZ_S?rp(#V0$1*
zp!W&&+iyhwteM0y7`Gk4PWaoI-~Rj#vAESf`LIjbHyOiTH@lj<_r=}Hz6D?F?X?N(
z_^yPT#_v_+secUbWxF-j?S{%WJPgg^RX=0jMO?$c9zbi?p8W0whJ(GqK41i4eBN3Y
z>y~wwbVot|06By5G}_|*HoM(4pCRlEP4y-|co6aI2lfYhmx({lhcVRc0oV`3-!9fR
zw=otK{&r>>{oWA{D!VfrTy|GDr0ni+Xj%VoSlK;cEMdlhYQm4_x2EjgFrn-_G417H
zV%hRA2}}l4z~SJCvhRke_^$;=5@s5xBi*CG<KcT@dYPmkO4GyFm+^FJ*?rLSVJ4VW
z_5<eYv~2f>*@T}%*gYuU(fq2M$COD@!kUcR*0~4GESbh}We>soq+z|yj<<GGA9*00
zK>Q7aIgwwjV~u4Gh9=^gi@h1Nfa7qV2j+tXpcR}%e_vSkL*#FY`{A&NJTC@I@ZSd7
z!O1ZlpHqI6wU6Y0+Lvms(>UIm_&Pu*kSu8_zg=J%Wm^tbkk&alNqdx5KCF!WZWVq`
z!Mz{r+BvyLV!MTKDzq<y)4*52=|J+c(WIxjP;=tz%on#NKZ*0hqu~ro<EPQC@hZ8@
z&tjaz!<l8n!&$_0Hff$i`sZRk53I(1KED@$3&Ch4PhKa(!$sKTe+{@8v*!3uN%s=W
zL#)sJBKEmoBB4~-d_Gx=`=x|=S|#T9a&Scq|5bjk1e%Agf_^pl8g;F@yoP*Ti~Txq
zec5AK-fzJDMsO1tjN8}2&fr7pL48Mgy4lMAE6S~WJRWW-dm?-T|K9}P0=MFS9njeP
zHn<Jk4(<SVg1f-oKy%$a{N4+`gZaDQd*t`~;6CsJa6fneDDBnc`$6*k5dPj_4$#W;
zL)-=;o!i{<vf=sUVcO(J`28_>#KyJHYi|+HPh$K&{?$L8BF?mqbKz0al>FqUg!>tJ
z{W<sr_$A>UBQL)ys}GM8{}b4s#Qqe&zXofp-F}_L^)$5ggnI@&i}^R;x8S+|LtHBV
z^JPzGarL*n<iiW3_abTk?*AJH`&|6|!O9}}&-yrrKNDUmdp5jGJUfxbK%|-8C$$E<
z%=VAu@iw45s9&l-y+T~Cmi;zc2VRTruk$+^NvN+6>TCJ%264X$-YR=uy_7z~ewgro
z#_vVMm#z)FmAzo+MQ`KxFSyIk9klsw<XLIIga5yRL1iz-{z@M4`}d9dRs1i6f0X?$
zuBRcqOC0Z6obVBZm2CP0ey?YZ_z<^`sLzl2{U<mZ{66>l*uT6ER8OBk{}g-%{sle<
zPtr%$@cVC|wf=G9{SWc}7yJ)|Jp1RoWW0Zfb2M9OPKC?BZn)?3eM5QP%Q~p+rMQ-Q
zKP?{L73N1{Snc(4#$SCH=LEHp>T5JoV(-VpLnUccfj(dp&=>S0KbwNhK!5Ue5t$nR
z{R`kX<mb26HsYzoue_4Ynf<AsGpRr4)sU}{53SLXu?!@x_sNI%{a0f-UkjTP{}y0N
zAl_@M{Oe(B%!Bf8kblndNOKl#X|gTi*cNP;f0H@(jj%m#JAg0c-$LG|{`03WIIlds
z8Fs|q-h|sJhToarwd6(ewzsT4G@kz)>&V;1>xZ?3d<@LJ&Ah5JufN1TJ0}duza4g=
zEp`Rx<lf2V#!aZ7-AL~h(i=+NcL&c?Ps5<?0rtfH0d=)k{;%Xf`Skf{IC<I|cg;2X
z@H-;^w`|@QPoi=5DsgJ86vsc((*HZTOZS$H1?J(QU{ve_qxszz>_^)BgE8O$a3E<O
zL|O-fL%^ZnFfbO3%kLAa^XWcSdrtA*>Aq8K_m421w71B;OP#z+PkNU+@_oh-eh<yP
z2mL)v?{%ZkrM=*DNL&8aa7wT(Cu$SO&qOc@=p1e`?o%*7Pro@lUloqXOZK!=n3~@y
z)aE}3N9K7H6x2aKD*s`a4(hSb$S(*p^B;v-ly^4RpR&vWM-$&M;Mn}fq>qdmH}!$z
z=_3oXy4xz8kpE|Bz)dop6Y<{&n!sH0(v07kjQ<vX=YjcPfz{C`p*8<WI4S>WSV)~9
zc?*m3pM}Nwe}yI3+w%QGJ2)A1fKIR!bb)2WEq-}<-eq4auuJ~3l00kgzKUPTyiVcw
zR3O>cm-&^f?KFPB0!{~KfHT2aK)mVM{GLNx=Ta7}<>&Fc8k`R<02hLbDAO8nG3HCa
zT5u`23|tQV3h-6T5716mV!nzvuLfU(Cb{V~{9X%PGRFJpZ`WbJ9^3%!M(`Q(#hWPO
z*TK!;mi*`88~J~SZ|3h0-^xE4ZiTik|DW*f{C~r3#Cv=G;BW`w?gV#%yTLtq$u~bn
zKKZ|JZ~lFqT_tEEsH-IjZK2Z*l~-fg`Em8ZlpjY<L4MSh-zEM7%Rc91RsAj(z6bsL
zU~lHA`}q9<xF0+K9>niM;D_L0@FViEhID?6`4R9F@F@5x_!;;)_yzbScntgsJPw`!
zPlBhwuffw`J$ME@3w{HB3!Ved=XGwCBrjlok#-aB@;l7G2Y(>_izweq{A!Q#GPFNp
zM!uMobISP&_E*7c<b4PgGn$h!$qa_%^0d<3;dScyu(E$6e`1{_?l<%0$y@n~<WIz*
zGqyhy?rp;V1^YYv{uTTU{2lxQybIm~?}HD(hxq>pzaR7aPwbz7PqBXnj;Ce*#qa0&
zvgF^S^&fB^dHFAX{s%%i>svYdV^9Y2pd3_yN>By*lvgI3;IA*}SDsHcEl<mEf7q;?
zlR)SLz!$*4@_g95yvoYEMfszY{U>2dXj_%5&b;lnCeA_Ni}>G$-)+Hmn78M52k<4#
zgTanqC&KOwhJam&L+1dyV%`n6p<s6~4Ei4Y?g{oP*BpsV7uw!nA7~@+Ka$^3U^M1^
zf#enYVc#E&A-@MeTLkSu><58^!6D#Ka2Obi`#659%ljmSxn1*<`l6qojK{qOOaK$X
zBrq9Fp-fu8B>y}d`w?I&s0BxYX}Axe-RolB)AN^s>;ONqvn-7@oegY~Y|2`7RC(Vp
zo&3~;8DJ)u1!jXe;An6RIF|AcB;Mo7`zF%((Vpjc=qG>%a3W{~P2^!Nzs;ZpNFFnf
z-}ztxXay&Mg<uhBpOfpCNH1hD;g*0l(2m>5u^i$nI!OBiPSrNEleJCh51I!WLMQ&t
zr4KIUw+k!-%fSk;l6Y2??+{KY-z+(`ynj+*C&m3^Sk^oIoM!QI=1iTd&c1^EbZ`dP
zIX58L3fh^N#rvMcul&5mT6s3+bHKUe@jS4aw9dzV0k{xc1XNcE=h<s8UkolO|3b31
zd|+~Ed0n`yeDehD!{l=4za#A$=GQ%#tFEvza|TF!SCYT0aK9RS4O|1R1=oR_;lHjg
z-y)f5acq*@K%3l%f9?O*Q<pap{_EIp2DgB3fNxsdImQmU8sJuF>!5ub+y*40xgFXa
z;7)KCxEuOe;7o82P}%P#{qNxRT_FDNd)U7Z?knFS{GhylxF3HHVAomLgQW8i_#t>0
z|3BjQ$GATNegYl^KLtO-|Icyz1^6ZA$ME|r=#OK50z3)*De!B|PlNT~8SpHAegl3B
zp2Pil@B(;|@W12t_xSk(xRrdqM4i73{g3#41-wdLHG{r}IpOzpe%~mc9o{V8lK!|Q
zU2IG1D{n#n6ZkWDo48c2zwrA3ngwvN_}dD9%<0gyHVt78|Eu-8trO|l{Ecvb$89v)
z2b@$TFPCjYKi2P{<R9ecUED58woTq6?e`fEA7K9wy2i~%{C-S1{t4{^G#KiTNN<LO
z_!HtZc?iFsfq#L|@q0Drp#LsEDEtS!#Jc%k!u}8XljL$Bnhs1a0Y;d8$w48hI5^}g
zc3@nn?Q`hLF=tmW=fj_9K6@+oC02M(Cl9?GRN%j|qHn0GK(CK@BoW`Fg1rRj2R5yc
zo{Z#d!^373gOg1xuU?k^xDO!Q7x*2>@8)0&uw}*YuvNv5)Q!ruQ~ceTx|3abQMrZ`
z*;STZy4iQ_X5WpnD!h-`ohj3RilO8ugssW<An--76Lzful5cE7UUa6lE&185V)sO6
z9#!O3>2HtQ4)`C)dHI(rW{1JVwPVFF@;W>0RIvwhxb&%r2Y))_)xKf~=3Oj2YYgVy
zFc0N-cYcTQy9d}4^IrT8C+@w$K41hG32hW^qxszz><9J-W55C6KyXmSp2@)#dohQH
za0p>EHyz6FVPGuKIo&w?RfF-M2221G!K8}e7Ea|~2_{3E0uBd9fT@J91>&!d#6Atw
zfukz+roZHgKNqHhdh$2}%mlM4_Mw07mdvi$Etx~xH{^Fpj;`1_Ii_Mra%{ye$#E6C
zCdbpxClF5qIFa}pK@->n%mvM$1<V8U@w0$5S}~sl7J@}UdX$TyFTvaf+G(qkX^W1E
z?UK%l?USVyUrM?Ny9_MH-wOP!1gpR);8gHsa2ogum<~<{XMlQeCO8Y64bB1Qg7d&?
za6Y&ITnH`#Yrw_e60jCr3N8begDb#S!Ik9UD(dHI^7A!t4gKX>+U+{p;Ck#g;O8OE
z1a72mZ>ku<+{4@r?PhQbVb!kR!2C_{EpRIsh=x%ff9r@>{qx(<)}V1D+HJ&nJGcYf
zSuvVEkGu`@-QXT@FZd4OzDt<zf$xJsW&0-gRqU7SOI(WY2e{u49>DK|;34os@G$rh
z^dEyqz)!G03VsTH27V5H0e%S{1HZ!0<KPL*PlBf~|C-;Y!FuovcozHy{1!Y1o(C_0
z7s2nq@4+9yON4zH{1LnYUWN7=cpdW_;7#yW#s0~kz@I78+qnG&yi+lT*&V(Y+Ca3g
z@{~`!%iplun8{Tao!x5g?vwnTdF&q*{gL?`n7qq;cTVo0<UQgSukk+NKCpSw^)@~;
zU5$g259t3N;`gJ9QOU;@TO`{g{gQtY$0y*^iUX3*aQhed9Q+&n2mH6<kmP^Fhj1n&
zmCUx4Ba*U8?JuP_NgG!p52{=mDnMmrfq$r~JT&Q3DSi&!ipu*#-^#<1*=0L~e)!+C
za&)p;<$g*3$}!1+%CU*|+h3@Jmj;`IEx?vwE3h>f1ilEishk_O#s7Ad<C5(wtCJln
z$0uKcJ{ar>b^<$tAz&9E-J)Ij-3<%{n`7UdEx<6a2Y8-h?aA+6U^v(t9D$#GD$$1k
zBMCDK+GwyZ*bnRvZ45Y|QrdBvi<#@N9|R5thY;>i{Hec6%Ubi-Vc5rlak!~Ht1*uU
zHDCgee#u0BCxOYtF$EkBjsR0ZEjSWP19jjiFdfu`8DJ)uMf=Pq{G3YhlahtiB!l8u
zIU4t4z_H*s{2dQYz}x^%1dX5x%mvM$g?O~zn}>NmSO8kVNnjyZMEJ${8HnZ|D{EMS
zUFEtcnV7UyPD&0mEx*aEJ;)vKcQWVzk|C$<(usX3=mMXy_CHHrml4l$>Szz}yzwZ*
z!-~o+!b;-Y4u7klpTe(r!1tMVPR0Hm_=+#{dm8u((A?0EwM{y;r<2z+z?ook(l`Q~
zMfkJ9IpADy9#{>|C+r2_Li}E2{W}-dK))Eg3XgIL^tIs9O3gzx$z_!jSWBiP+i=n`
zDUm+*=Hc?n&BGPotN6PTTm`NMUnAaYz_s8ya6PyIh(EfK-<!bK!Oh?n@D0-ZCioT@
zRCajm=aX62q&?YNy&eHCupu|*W8!%nP0KAe=x0i@j&#2bZUeW2JHVZU(;h)>dl%#O
zZrbM_aBt;K;XByBTUkq6ADL{u(RllZ?^RAqzE52DRn{dxAYPUGetsVS4?=$k3}XNC
zL*jlI^N+xfaeJilDB_<E-{g6Coc{Ea%6j%C8!D^HF(Y}Du;TlFN_^rIe?}Yp9JA_m
zAo10qJ=%AJaVVUR(}8H3K3b_bXAztCar6<3%ySambNof+A;~X^|1r|}Rprsib{mXa
zaizLPUe}M4))U~#nAfMsqvoYw^ZPVVf0drwdh3(NB+rnSXDeqXzk&WN{(f6Ihw>bY
z9Ok&>xfteoeqR7DRvu6PWdDZw_uvoUCDMAC-+|0bf20lf%7^d@_E#%639pfd*TEa$
zP4E_e|AgC0+DkGlwcDSeZ3gXaus>_f!`T0V`JKuWm@$q|{#x0P{0-XQp$#fKG5H7P
zcQG%{HPU~Z=)X<O3rJ<5sXgCkP5Gd5F8SP0o4Q}=zkNuaKB7z?lh!}g|8mXACxrhL
zd<Oni*^+$Dn(%M%pUQd3e@Xj)03|=JO(FBCnooaPkhR}Hw0w8mV7do|vMTA;o<yB5
zO!8G)^VAM$`@t(<F0Vqbu*%PzD*5FCW#Afa*aY+i{eb$N&MnjzH?7Kt%|L(X1FDWq
zzEHJ*xnvPM5PJ^jn^$cfwg6jV-U@6@{Db)YBL1Z}uuawCjnvitVO#ue2evo=t`D*U
z_Ag-{40Z%Nft|q+unX7~>;{H{-KnQx{60~>h<>$%d`Yg~H|$Z>H|z=a0>i=H#Hsz?
zKKLC0Mpm_LWK1ndMiH;{cShq^<=D5XojI$WuFy_@kS^)T$$q%0ukX+A7;r#U2X3mj
z&W)5=V``^xV3qEs__#fYuxn_mRLAcr`o_UkbHX8D4JjT<-VY-`W5GCU*ACi1JkwJ8
zhqSo6@YQ8$FJ)ggl>T}l`4E4#6B^!|ZLrU921MGrFH>FBKa9s*116B(L@=ppIlS|R
z`}rm81t;TwO4W*F@J9S;ZBEN}IQ`=Y@KoiYVQQ6lvX%5#)tS$M&y(+3+>Zph+ag^V
z)$ug!b>!(N>R>u)-b(*eKdpzpzEb^i)kfBvQ#Rsus*Uf9(RQx@>}0T?njBb_gc+oB
zD8q4P)oG-58g8dq9g9aAh&H^m<2Sdx`RUP&j(^n|nR#~Ane6vBRDb=$9P0dNa13c3
z3yuTFgA*v{kZ=}ldp2!%HtC*id2GOK4@CJ|-}a)OP9%Sgl)nk+ylXDM&7cK;^Qz8C
z`cbFz@gw=l0_v?5oCFqvMPM;*;$@c*rVaB4;oM{(fYY$_c0sehop??L9iS6`O9|Hn
zmVxD91y~7Ifm6V#;L8^8d5jur4D(mO>EH}-CO8Y64Wv(d4*t(2-t($flV5ln=;wnA
zz=hx<um)TVE&*%7rTD*$-!*pAfW0B+E5KKcc0n?Vn+R7{otIn%t_EKN*MMumb>Mn%
z1Go{~1ilV#2DgB3fNz3tfm^{k@NM#T8*$%Gx_6M@J2Bq{?gsaOd%-T$|95czF6Qrn
z?}Pim55WE40q`Jr2>cK{41NTD3?2bL0gr;8f}au3&%rM+f55GYH>ekt@0Z{)@GI~*
zP+dL&RQ@NyQ{dO&X|NtV1D*xH0lx*$f#<;s;6?B|@O$tF@KV+J$;<ry5xfFk1+RhE
z!5iRB@D}(J_%nDL`~|!N{tEsE{to^D-UaW0_rV9?L+}y!82l4_0zL(wfq#L|!N0+O
zz<<I200;Gf$tUDM8OVcjPys4I73c#t0ewL~uqoIK^algL7r;QUIoJYh3AO@TgF)bn
zU>mS4*bZzDb^u=jgTanqC$KXZ0(Jqrg5AJSusawA_5gc=y})p=H`oV^03*RDFdFO&
z_5=HaG2j4jAUFsd3=RQ@g2TYG@bF{#9S5qxcu)f-fQeudm<*<X!@&_?DyRiVf@z=*
z90jI>dN2db1hc?wFb5nBjseGl<G}IY1keCZ1dX7n4|5B@&7cL$1M|TG&<aih3&A3=
z7%Ty8pdFkHIzT5_3UuDp#qTn(9IOB<!76YHI2C*uoCdxEP6uazGr?KlY;X=Z7n}!H
zgY&@!;6iW_SOYEwmw>h4Qg9i#99#ju3a$iKfvdsSz%}4na2>cF+yHI_H-WE%o53yM
z8+|T<cV)kWS>xdy<^!LP*Vvr-WbWeldkH+iC6x9Ov%gh-LGrCW7bdrYb>Q3JHgG$*
z1KbJj0(XOZz`fu*;Je^^;QQb{@B?r^d3d1Dn&iPg7bg$(K^MHwTGpqvq_x)4dbp4F
z)R&UaOQBtAv>%aQ<@3<oWvp|TLBGuCKZdR~?vXz1Rr*{`n9Fgy+}s|;O>5nuxhstR
zQ|v#pxH(&}a9?GuyF3y77k#eG{QMI8W8~{s{I22FmEXL&%HrIG_#W?bHF<FU@(KJr
zN&mW!`SU4$hvdGN=w9rvF+UB~gJ;0A;5U7|uAeKrhIE<J2zzMmTH9|uhgs!&uI#!*
zXJ5~g{-5A0Uf}m_<1g~87QSbA5!&ziT+hCY`Hyga055@;!5_gZ;8pM%cpba}-UM%f
zKY>4kx50hoHze1S*3sY?D-SwW(BA=n1%Cs72mb)?g7?7t-~;d>_y~Lq{s}%IPoGl0
z&%nRH=iuMaHP`<KxBp`PA3(_^P>hfRWt*_e+aw>#K?SG;RiMu%+{@;-FX)GPQ?ME6
zk9`36f1RBLyj4ZmuU8yu$JzVrLw6%}Xpl|`>F!WU0To1%l929{?nXdLLPDflLP1FZ
zMGz4Yq(tC8|F!l$VBGJ!zYD+T%vuxgyfbUo%&e(h0huv`&q3J@AtM%&a-Yn@=>d=e
zQbH<74QU`Pq=WSM%Ygrkn7v4ICgf)3J_}@pY>-{DJ=4sWaLdWHz6o<-=7#V1zR821
zybuTZAU_m9uYypBFop3~1iPY83|@xfPy$NgRtic(87K?o2v?qP6}Ya5pGxowRK~6f
zRE28rDpbdB4cux%E$(Y$_F`<NC)6Q)U8skBeQ4lmXf(uZ1dXw80!^VAG=~<@5_zp~
zZ;hNb@EW`hZJ`~shYrvYzi)uXhu_5P1f2=n1>VB_ZFmPcU9s;5??QKY&okY8-!s$f
z;hANA;F)dq^vvKpXD(x9`pyX$y?7?Qp$~LTq`4x!BlN?N_aWi?L4Ozk1K}eW1cPA+
z42A0EJad?*qB-2-HAZ;mn<G6M2VKBBx`4W10q^YsbCf4&j7Fwp&$kxRqhE;ILdR{4
zXMs5uw@r*~=^bS4JMZL+x-F(|V2=)Qg;@PP-m}!4;8|vl@GNH}YB_S2Bj*!yqGtu)
zz|=nYn@qlZ3{zk#OoQn#gLr0!^_Ydfl+4f0M(;VKf39aSd9#wZS0ZzzQ{T+<tTJQR
zX~`-X?ms0C>T~2Q0FAvZ#9Rc6VF_+aF`Lu>UdHuu_{5`iY^%)`o;9RFyENB0a<yk;
zCGH`1Z6*Ni-sF$53f*$^&C=3bNB*(Dll#@M1~hi2{3*;1Pn#W{YYD#&%2*rBRP6So
z*NBV-rkkG&%=P5!XP&v{22U(!F}UNB8<DdK+%Y)%mV_V3y`IbGTo-1?=tR#ta|`*g
z)hQDJV;kmn&wBD^6S~sxMBWb4`6cZ1ls0#H<}vm=kND>izrIgnjotX!6CaOd?B#kN
z><`B^6>}O4fI)Bo4th2dcfdFVhv5hug|9$59P@l`9;ck0@N6+pqU+Z@w{JX~&}%E-
zIn>?AI1S&zcetmt=bC3c6^yf<ZRR=r4&mGOJUU<Sc#Mm<e-D>D+sVuA=)N7@btZsz
z!cuqR?+X0DJN2Vy2X^i_!&U6k@qB;sd`THjWL(4jI{XYbK<nRs!O!+YJDqmqCU(EV
zE%*&?gZ9b%jvu$I?^1Pa+~Lo;M2eqrAN1Ec_dhW2!F}8wzyf<WbA-FmbvL@YXN5dO
z&LjBK^M&~sKX*L4%nngI%)ij@iD#$z)T90Vd+@KlNPF2my_fKNx%V2+$dd}h?aq<A
zb1>R>eT{r#F{)vLD?7@txV9k*5_lN{f<&M>&BSaXO@h4#yx!fW&#N^$?!2?#t8a9T
z)#*$F+7ZG8ynD?c#6ZZ)oDL-Q?lY5ly+(4}-=*)G0y8C~!Y(y((?D8Chh2KF&&a^X
zq0TJ0LED@W`{P`bDAq6PyaM%KwC-;YWn(|@(SBU^;~X$D5m#p7%|e*0-UF291GpVf
zP$wU>zbz{}noV{zXY-a~y-C2xPM93%p>>7Q^(9B&y=G2y$OX9}5AyOt9OQ%i-lRqW
z?_u*QX)efpM(+``kT;1@*n1G2R2GjC6LZO=CkyLLijs%LykDU!^DWpFhZ0bdu%)21
z_n6bKDT7^EC<o=C0&W?o!zyA{@@khgbIRxwV#T1!XJ!0U!A)aVRk;p8HF(vlUD&i|
zT-We^?YuuVy={zI_^pjy9XLWct&3R?G@eo)vjMVIZs$_ZY7goH`y1pi-;CQB`xIsV
z6j^zS{Bz5b{HlC4LT+R7y@|Jl+0=WQckYyV+S+M0BV2Rux5&_aW21%lyBDs{g#AVK
z<ex>Z{GE%pZ|S7<yc4h1u(v{<)@8TGYy%z0h1W1&C;rTwn2?a&<ZZnd%y!ToIzUHw
z!#jzQ5s&ev_ac5Sl7@@K^?V$-6Y=C__jzKV=J*dcchB{4;}Y|Gm+*7xAAWTHf!6Uc
zeu6$-;4LV?vwIuehLJ~FgZK`1U7;Ji3*F&8(7ugPq~(3Cd%y=yx;b-#>t2+d-p~j7
z!iUfg`ojPi2-@HM5oQw1L4+L)LkK%0>asc1t2K>R=+9n3?<@bIH~lc;|F6AX!;m4}
z+`V3Pc%R%n8%|tmQ$~0-R`~<Z%RP%{q*o_g?4#XQ|3iD<weQ_)jPm9(MmzO}`~HtX
zuIhlXFb>8ePvfa~DR&_wu`z-7@hagaVru?&lJ`gA_!0eoM1P&<aFzS3++XEhd#*MU
z&h7I|=KY=PQ6Gi=J!R$Nu&#NKKZSgm3ezAZ?_~!3PKOyV)2lh%ZRRZRPiB5j51==X
zY}GYCvF<Bi%qEQ5^*QJ}7v{lyo~_=21-NPN!9wg7!D3hfnzPl~l%-r>$6SWF96o^+
zuo70mr?48<z*<-b>)|ul02^TwYzCcqq4RD&C(bRf6&<#b#_jM0y6=E5z1JA4Q-0`N
z5Wd~KwBzLE5cWFn#(j_Xy1AFI0p9V0&Uhm0`RIRW@1Eww_963I@^3%!9q|6lGu2*W
zrS(sq%FpIO+^=(g2=g$0j$j^ztemj$mG>9(7#t_Q6W&Mo=e!g+iGE+hH*gA06Ti;Q
z`Id0s!5KK~y-AL#ElXyc<Nmz&SMvf~gzvq{j7#2IW<^eC;HxS8Yy!r-C_NXqJYGhw
z)?{Bn_7CtQT!o)t4A1i#;Tsb6I?wxOxZ%~Ba@HVVf0K0l3b)`lxDD=pZ`yONwMJa)
z!v`W?>$$Z~@(%WQ;Sab6gK@u)`2ZfmBlr^@!(Z?O{{No)EuQNwo-1n@yuX>xxHfz@
zX=@&`$0lHyzS5@UyJgzGNFS2*k?0rYV@}5xFcSJ`jUchlYa{`WPwVM#lZUeVov~G!
z?EfGiy~yx!?T2Wtn^Gn;*Aw7A2r&@y-QhXi;W^wvhT3;Md**u>q|L^RNK)Se^2>c6
zlM%lO$>9NW4)T`*T~gv#WB1yxlgg*}wE^{SW+S!Zf3uMW_q6y+2kAlKGWhON79(R7
zf6#ZYiVpuZhpc|8_7OBNGoo*%aK30AZz8^LcT>+~Mt)24E_ry5c<<qIkF?w|v-s4%
z(H;ZE>9%kEJol;lbmGT-{J3kB<(Ad=fO=J@fIPrnB|Xxn5Dxj-iT4}!JLll~B~bm5
z6Mb?yaj+(h>pZ@PjD<f$#zSPp8F}$nggl8Oth>M1m6;E}DM);X6$Z>IF*l~V$<3Gi
z<XHh<B&<#%(KYY0lWz8|U>0`d#u-I0iz2I-Bai+FW^vp#C#t<bbIiw-2Zd+;m-ndz
zZY9HVN@11;?I$XOds!$4<$ZrSZGiGb^F;-GPiSW)gYg8Y2;&_$rR{0FoBUToA9p{K
z+@6{AvYc>w-W4334QiT*9sM82&cx0w2YRONnq|vM5bw{GnT7l+!p8B4E|t+$`)(C)
z5!z<X_Okp=7&rZY^32sgR@<GNXO$xCSNbW<2K!Q~IPoWl*J&hSsycQFU$9d?D2_zo
zxZQrsMB=PQ{<(Wb5?h{leL4SwJgSa<HQ?`gD>+H5Xvc4yah-Q9GrHBpUoEH&b)YWP
zgZj__8amHR?VN{`DkAx(^(5ZE<&)mQMvneIE2ZO4@v+~B@J+C93eBK7w1Ae-3R;8m
zqz!Ss2CqX~Xb0_~19XHp;7#ZRoqhgr+)m!`t;AfDqi3|GaXs<;{7U*zgn8R>S05)p
ze*JHL-15X)^8W{UI`KyN;_9NddO5X=`ZX$3A$F?i`FzB?I0t*}Db_yXchE_Diid;B
zQCGsB=hPflOYtqlcR0^cW%pg|yYo)|k|54_&zF>EAa}Ryg*aI!;ot7%SI<HIlT(f&
z`}ZPy_EMmW-u@KU^L{I1<%DUA-tEvYDer0z!nfswp5(xjcl^5PVLpz0?CI1yD#PyH
z{A*~fvfc|hy`c~E1?`R0{OX5X_ahzsVE}bZ_o!5s7yGP)bKeiQ&KrpAk6;iCh9NMN
zFd<I+$>^N;qtk*^UokF^z4r7MkFP6P&yW8RzBJZI+~)BOJ&Jfo(@v$s&ludsVm}UA
zGA215^D_B70dpdLu9Byd$n(j*)YiwowAK_~Dr>4Qoiz=+>G%n8GErX82}Q0B8N%_n
zb-VIMb>Bn2#lOPG48qKG!m3{rFlLeN*}n8vLwuEBtw3?)%)xFhI=XtY)|dRyISKQy
zn-2?MAuK}9Vn<)gSVB6MVz&&IV@E4#eBw)LtiXOHtb$LmA3@n$?aPS%-DnS@jAvF_
z%Cb&bN-O=XHR!UIw625o$X8kW%-6)ofqrg(FH<;unXL^zcb!Ku=8-p|^Cn*wYcpXo
z^EIULvD4H?pNC~kC;ly<F^8>~+h99xU%(FZ{F3l)USzd)qT4R)cl)wgdw2$WVITMV
zF%Q5&I0T2`h|{)br%baK$VpG+OxYY^JJ!s{m#3FVBj5g3&Um+@<d<94a^c3<zb`lM
zl4QAc>@i;+?Bk5%zPy+vG2<{dW9GxGkC`8{HKtC5a^LS0zJk1e?iqC2zcHNt;YsrT
zYbeaAQTk5r$a|&lOMPp8gAS)~3vrTELflXL3R&O6cW?%`vvAH=gt|@N`?M?EUx177
zy|1VvPi~T{F(mg)4aqC^Ke)Y&zEQ>{;=SxEZUxajGOpH(vD7O(pC3SHq5g<@mAJA~
z27ki5#=XvsyH42Fv==|~Y;O2USgKop!TlzTCtX^H|0~x=>HBA-KD&kg^PG02v5ViZ
zzl|K(>vSdUGu1kR-?6{rEA8Ch<yvD!85yNidtBey9~0RVQ<k(bkKqfN_lRHlJdgg$
zeJ3BwQKl{90rDSm{|K}<^-vP|W!@K-n&lmR9}~x4@C0=3)l<x8pu?6-u>2JqSvJ>E
zkN^_;86APdkOVw_oy0|77!vZfs*GhbUa^SA@Uoy^@7yXx(mb(`iF2F?qqA9~F$18w
za5jEf6N((K5%hbF7=IPoWS$LgW@b#~lh&h1miG39kQ+<bq>v1hcgZnRU_aWd>a<TU
zj%Vz~JtgjyDRZg(dPl2~r|c6!r!<h3aD_P~Ol{=zaYpvtVXrp)`8Z^C@}0eSgvo%s
zjF1U3Ll%Dx^rzh-Og4W_Cm-_JwVZNRopMscTidalX4b*3sgd2^%*f%d%U5F^OMB2>
zLPk!=1-T&)<b^oM2l=4@6of+37Y=b^8E3W=UhB`;zen1N;$93><618}`qw93`DwsA
z<i=GT_Y(Nicuz@xL(=q5849noH=-=MVKlPCo{{+bQjY8<@iI#xvowq+-ZK8C@&3wU
zSIXZk-d{QH%R>dI=x-kHPy5nBoT`RF`O!1deM_gV%FKNw{J-MF*^06uotS6hUgt|!
zAuY8{+5`Gl>epAKz1C<+U36~5xuI1FTMfT=IHgU`=vA(>SZ%^(^)<(=?th&!OCJ$g
zHK7(^YGc-cx=@e%`p^IxLL+GGZ|lgbj=U!RcFuKEu6uLpo8C{^Hv{!$E?}X)^yP#d
z$P4WQa{DW1aBGgA7XFT;oi*3U)wv|C{BIyn=OF3&O-IL8{!WhB+TYo6Q(x)~C&*!t
zXK!IgpAlVO^S@0TZzJVx+~_|dU-Q2qPMEXf?Pb@Md+l?huS2+Y{%*V}DoX*QJz-iy
z2lVNP8NzQJPNP%)y}|vPew|9EwOXdp$!{8+v0GrjM|`q-AAhb}7k>}O?k)cZn2g!^
zdpbJ3<L~8|N37nM^!5CGFirBMuVZ%ef9S}_5oH?h`um0L`a5QK{{Y9#5jD{9bBVhv
z)<=%rd;URTb8y%k;+WISp^o2awEXY;hdFjV{KFmd1OJGypOKEAo}_1*IqHS$(P8&7
zVRLNQ92Yjnhs_CLb7I(>6gDS^&5y(86!OkTKKYC;PF$J`)Jb{#_6uK#%F|xh_x4W<
z`=1^*XP{Fg+{_oQXW=e;ovLSY)}d+iA-rm#zWzCmzb<|sX`1W!>*AjmHs|9OsVf#Z
zb`26Qbacxdjz?vzy159uNFDFC^B?*b^S;ndGG?POjB1pjew3m9FaQSn7g-;{AQ;U3
z5E$xj%$XN%zv_L=VU(@m{-nkT7>T@5_!$jjU@VNIo*hrQN@;gy{)QFQ)GZURp9qs+
zGJFhEK<%%3%v#T_ew+FMQ~jM7tK(fGp6M_He={*>Va|p*T+hXvhdCc}fxol45OWbM
zh9$5Rw`ETGk6|n$@{Pe9C3c_SUWIhG_BJ+F&~B}_LX<9MK>c-i3VOemkZ)Qa%-9tA
zt->zE>4mBXRuT47SPg4nEv$p}@EPge02^TwY{u?$%q={_t;DNyvwcY3hHl%TGWTEL
zX9w3`!cMMt!EV^Yy`IlruJ^%yIDp+jI0T20djyVR{}mjA<8T7ElRU4l;Tt#wr{P=p
z4$i<?IOlI|ocAw78|DWIqqr^-{(FBavj??!UGm@({yy^8GcLmw?0@iIFn{!GT&kgQ
z)xX^Oi8Ng!%ysw~T_*A^@~h^ukgBuY^*oi{8_53!KQ}Rdg<DVu``@s;4ZlOygvw|7
zQC#1JKj0qZVJzW3<^y;L+3@#>@PEQ%?*GDkf*w!d88G<A0S=sph-pI<B!GmF2oggQ
z@PHS5;D>0!1Rw}85Q11p3dtZjsBET)W}J@eRG6tjdrH$_ro}EDW_rlLbw<ogkQuT-
zR>+2ZcFY{`66EAQ7vzRKkQd^x&xe^G3UFNzvk+!sC;~;H7`%+V_IeiQx&)Nu{&Vu9
z6lQ5C17)Ecl#gC&Rft|@RgC_G_QlO>eP0xX1hB(e!P8hl6S0E2B;uaNRBNs^6P1wv
z3V9Ubv`$u@7?qJ(C3-nw<i66<*mqU@REu84x3Fy8^Xc{c*Yo^d#jQHjfWFTAr8oXl
zt7i0S;xm|&?!!38DytUmwVik<A6(akdeODb`uJ-Q{T_W)kI^vNV>E)s&;*)Buc6J>
zSUk^4&j$_XlM=nF&7#*j>2=&Fm(9_;1thiCVIOC-j9zc$z~3_Ru@&)-;e=83>01+T
z8+a{x15!Cpfa|u<j<D^a19Wu!Z=@fm(?~ax4vjOo=a;+V3$8wIL~laICj4v)`_ca9
z@HZEU&ueU^PqfzR?^$cTNm@Fg^HA?Pt26NpLl>o~0CeGAdb|}MzkBxB+u{6rhl7k2
zZ`bJ0EuB-WGY`Arw>7*A-QhiWA9}zC&=Yz=Z|H+;J+HpV(HVUy?Jb<<spqTtlC9Q<
z$n6)cvoUl=hWx6}?v4{^T&zFgHgi7!a}sUKK+KPjISAQ<xgG*T(N+5vhjBd|Mu3lX
zL?bar!Dtu*V?pzFn$J_8a2)sJA##4o1g<B-B$$l+k6{W-g=sJyX248%KJVzxEzZJj
zHq3#!Fc0RVr{*L(!vd}sB6ktGYCqeH^OKA5y9AcPGFT3uzzSFitKd`6KJ3+)YhW#`
z1D(CU9@(EEH^}_b2Cg?^Ka+38O_-bEbJzkptA8t|&TfgE<FbwW?S%P)@LI#agZnRG
zC+vdVum|?SKG+Wj;2<1=!*B$S!dGw%jw9~`oQ$TufN!un1*fCy8Q(_h44r`S9p;(n
zIO8mwi`F>5&e(ZuoF|Vipvy(f?=e^KeqF-6O!$rHeFgIe_z}5RqrJvY(c9VMx}8$9
zoi=uhbuD_cb)EO?x_6uPGwwH{w_Cr!&FFyfE8L1+Vf+@|)wm766Zf6yFRZ(mns+R~
zM`||mcnI+{<Qe@zJoiY)4QizOm@3D5o)5Tw2#?@T(45<2^!*E-psUu_KIQruXyT7a
z0?K{lEEx8}2B;4>lq?Do1a?>n13LTiODj=;?`TL8(D_u`4NqVdZTU{?Dmv*58!v7?
zP`xsRdzA@4_d2IK8Z!Vvh=CBqLQ+TuI{zj)W(r6Nce#(8kCTe~)Q|?!LOMtf86YEM
zg3OSGv}7eM6&W|o#(j45&jDH!@e*cE+;c&0$OCyH4)Q^MC=k$l&RhxCg$Q35ia=2)
z1}{T#C;=s*6#hyRpY~0Z;l3=CgYwvoF+Qc;*lAVZz9LkDSD-RffvQl=(akbmMNW0X
zgq$;nETabZHMzfo+|IOZwF0}G`rI9}&}t9LG|zl0r!m`{Qd}E3b(}c&FozN8_qzV7
z@C<bJna+DuU#Bkd)`R-cz=>lw-${F^qxnt@?8E0i3dKIBeQJastqp06KC1Up+WTp9
z_T#=EceRgvug1F_U|hO@(S$H=oUC_6um6fO<eUV3z-oqj^KkgWoCwXZi_wDcEwOI}
zt)Wfeu=N_{ZM}8aN@pA<?!&~rhqiaG^*ZkLOxh@9v~%Pzw?&KEo^*A<Ejx8-N90BN
zl5cSRCUk<%&;{PY-`n`FpIB$HY2P4qU*MqCHE@W0@fzI%N62Hw@bT9@aMXGas7=u0
zsFMfpW8Whj_Xqf`!^m+$=S1qSoILEnyQlW4Cvk*0xmvO+lg<z)SoaDXx3Xfg3&WB1
z6*7B=W%WTfH}6^N9!}pS#_Dx0*N4bzM_bbd`r)rX48U$6x@g_hNBAEEgRvh1Lvb6;
zOFj(u;asa+X@B<!+;oofNX${#2NNGd{}ap^c#YA4U(7Kumi!-wtnn}bCgM-)c_$%j
zGU48Vk6{Y;Q(+oRcjDM(%?PA2X9iAMvjSgRvjg8)a{{Nx8`6c2I`eS_`JnxS6P*0G
zYh;XXclC|$)@O5(JrCvwIO`0iqVGcP7r|oUS^|C0>+k8MtqSPeH=V=I*b4RBGIV;2
zcV;>M^$qw5VODUx5~f+FtO1EmkoMDzGwO8L(>xEiKd0}>f1mgLtrf!0X?_FXJbmv~
z$o>>oBkL05n=11<OLh%9u7!259zMg5zVGzAX&dl+gLP0F1K;u9{8Ls$j?OlhU-dWi
z{+;0)_Md+L9`7dPwu22$T#b#*fwN)x($kGs?S#hCo>C`hT*n=cm2T($Lw-aT+G%8N
z0iEe0`J?&WnT>(-)H(mNPCA$Kc{tkmfWlp%zou}Se^Nf`>~J^lv~F@6`L!LsfE`X+
z+;;8~ZJ?Xqd^<Ynxo9Q*Tl~^j&qF%W2cWEJUCK_bBj=y%n|l{|x;x;`eeJ<*FLCU{
z+z$r=-%}I3s9Pk?zvs2i0N)V!!a5kZL|^vBJc#63SO;Vth9htkzJg=ur*>Oq!JT8I
zUxNJ!I2pK1|5|PR73*vKeFLYkSKoF3*P21eire4I&5LoeuK^j~;`ci^6ZpX?*U$4h
zlAagC==uK`F4vJ~qWRE>-{)y}%a(LtZ6NQ5&f(Nqf$lkhw2z#RyTrWuALSwvpWY95
z?8AK*+%-|fX{*M2e`1XJ#k~CYyQQ@_I<HZ6*Yh&s=I4gMwf`u?&vkd-&B!|#DZ^Tk
zr8wPnPlYsZ!*@;O%<|QNpZTo*r%sWy=o!0xjI%r=&86twI>+^SxDdF(e2v0B&(nX_
z7YeU;Qfn?$Z|FH^b@t@yJ!xoM4Ez#)SN`wy&G*Fh7F>eMa0QvFH*{W*<X+}Eg_wD8
z>kpOn=dxa`w|;QK(SJq8Rp<Tq_5U%<^E1M;*te{V;r#rG_v#v4N0*=B1~Pwvn}N;7
zujp_Kx8LA4tR_yK8#4fZ?YRFPuAuiFOsy|y8AZPkKYzeI^t=x`YxDu`58)Bv{-mwB
z$}bf>4%`mc3!1l&GyeL|^t$io6T&?u{4+3ui41M{;h`Be=uG;kApPLr@4V-C{#6d1
z=bc-ZW=GF<$~)fCgoM+x)$b34IK?{&u%qXHX<Pnq`g+<C7UEYG5(V#Bi6KewK9cWR
z9`y4fSLH?L>}f74#4j+^;a3+DJML~d^5M@9W1N0p#Lq*tk_<O|bWq_Q@qAsm0sIHy
zrc=MTa$@l7#-qMPM9!b+=*n?_cZ>eKBkM7Bl54*L{q(NIA}=X2)XuoFA~OEsJ(pj-
z7mUJ${U^hJMpBvyk`pck_wM=7{|x^moF8s@<%ixI&AFy@ba@)ikAKROUJ)Ih(H~*|
z67i&lG~l{bG}8w4s}rVO!m#XgLECnJ?=Z?vAB?gy1OrCKpk-u&%#a1LVwVlF2cKCv
zFkgb4kPC7L6WDnmFT`=5FIdscA53T$pnMes){EMOh_5iRS(i^~iL$kZtVqyn6veKg
zp*8jujAHnGIhfck9$aLW2+lQ2qObPvlp_Ap;LZuNPXvGK>Eqny-7kxMIVg`^1*iy>
z;1#G08~NU;f_v3q61y6_8uZxJ(Xj?-FGfwwT0yO~4;Z!4r%upo$2z~T;YCNS(a^pZ
z_Cq0~9%N=5J|iR}_v&-s02)FgXbkELH^J1J;KH;LO@lt3n2$93lxDjb@|y?!wx3__
zV1yDo?Kcb<EzoryX>Cc^R$R9Z%W4yhwqJwS(XDMTfGnN<9f;ShPl5z?Vty%v(a^9R
zeP`0tp1kYe$k13+dovo?wd#zAyJ-sA6WKS>5xKP-J)c=`5bn)jd$Ute`;Q{uL@^Av
z#vnfi`62rw#?^VrX}jGqBBfWq6Qg=0E%n!N-idj<x9)nHSX<w8ozbNWyanz&TT)y7
zWW5J(Q~uw9uDEG@F)KN%Fzz}Ceb+HBY%wovCC6U5jx5}}5ythCf;_Q|cS&n^cn{tW
zYQ=LgqmZ+1FqLg{)=LlMyJbJM6Su~4^xc>oImZb92_ZfRrg7r#>DWd3RtlGvJl2{R
z$}?&2MI60(MmjI*5MlLh_6erLPdf4`o%0;B5vDJGJ_N0~QC;yazl@TY=iLvx{^a|B
zU<P|2alMOMTE<h|^k+n0zH#F94cSS_ciw2^YRzVPyE`(vN9p%zGungjr{BvM?8tG;
z-*BGv5aLijb|_{+++U^c(09o&{0$FgvQs<1!jcJ@0b@i^>!bq4NS=T9D0d7-&vF!g
zuaQSDuABP%dMU>C$cr(=;hr_)HO7YZzJvU6q%m()X7W2T`ezQurTo<IFDafZw%1un
zkOen4f5#KP4>Bi!o|kkV%JoE;6wGS-__Y{ja2;8biFY1rdo-8&G1pTFJJksn@vm~3
zjc1yTFxdzbk*9SyMVR|?&)=R#x~B&-+cU_QnOx6;*};%KC!7}j9@|{x&LcnO2eVUB
zBIBnykevhBIglNBeyqbz@DgdxVK1QW*Vyqw!YxA9Vo2)E$@7()YriCzi!u@M>#oCI
zihqrNY3_a@{+0!EJMk>QemUqjqVf{!7=Ee7mF4!!J_)YpiSylwpEZ0Fu0-c)W?tT3
z`OfR)*(%cZDXb>HuJR397ya}+)(~cGypHbPg?#o_OY1_V!#dp8gXT&;!_=Mz#j^qQ
z9?fJNM{|xFx!(kv;d9smTVWe)hc93Ue2ES_gL63}d=BR>$Jza&<Lq6Om)*h5#vVAs
z_~hPT9%CQuhXZgB4#8nK0!QI1I0nbz1e_$#zYc1gi*Z)sIR&TTTlfynkQRM=o#px*
zXsl6ZpP%RY0&W-Kd$<Ib;R^OYz)JGrN6f3({RG#zzK;1b+<;#|eKnn%c$0kB_pHuQ
z*4)>xxZT44Z*ZII-!bpNUHAj;!F_lD58)B~iND9No<3WUapAwXegaS78SWgsXP97t
z4N)=l;bK@16vKQN_lYr+V0yrdn-9|u(GcK12r&>MOe}tNHd|8eli{8mQb0;b1*sto
zZfPMM*XbbxWQ0uEWri%s$O_p&<CEF3%Ypk#m^q0f7xuZi&I5TN4)Q^MC;$ba5M-ne
zRv5oUpePiBm!UW^N??|RQpnZ#YiZ0fP!^K$Ov@3zJXGMmB2<D`pmL0UTa|G;uB$>d
zcojL-p$621T2LG6KwYQ@^`QYYghtR9nh-WQb#+tBX52T27R1>SvxsN4(JCfjwC27I
zyoTND&^BfsD?(My^?OSCjiUNSJHofePb1!^4qSJHH{ebD>ztrGq)+vAC+s>y7kCTa
zCd_cYBj4e=D}L`#&d$<4b|Zh(&b*7M-&XF9*&IE`8}sR{MB;uP=Ud3pxUuGIR95x7
zyB!Gg9x|7j`S_KoNFAsBjLa_)Uk~^Idcqj&dSUj4KH%<kbnEPvW*I}{fJf0o=cM(G
z$xr=-uJmsrdqO`Xu6{AvHO2!6)6h9cd5r!s1)X|oKul>`?T8LM3*>zYH(?<0xxe|W
zeWr!%tIqEx6t+K#@fw4OYcOe3ou)mY+P5<#MtesK+I2W%N#_nvV@`W0eugP8VMI(3
zdt}T7a}<n5_84><3*&GbA5+wBA63Mjfc?anV$`=v7wa9kpJ2XhYb<dxem^GPG&eZ~
z`>8MuyXn|z?0g3IGhr6YhB+`7=D~be01IIeEQTep6rI#ZTE_Kq_yks<&r#yf%4kGt
z;0<xwv~2iWiTkQ}e;Ruvzwm#a5suZ^uYpP2D__=PuH*g)b8zd?Q)h#JhPeUzjo5FB
zao5tOp#It%Q=BwYm*eKfU4k}PzgAWv9CuNB3vOFUD`%h*mm6=^@H&fa+;5L5X(uD!
zzaWks$o~>^C+vdVum|?SKHPTGy6)#XFD2suVGqI~IE>pIlk=vzKFal1a4e=2pRjJ4
zj$?lUPQur?eZzA*#r0{fzlHBWYa7pCo`rL`ZBImh)L)viDH(45oX7qG&-r3Z8Qa6J
zt<lR1r_=SblK#^7yyKT*O52z5>*`q6@pC1n9Q~Pcgek|p%8l|w{S(Gy@vHHwA2F}O
zPjD@!JkPj1{>$T^eP-CX`^*%s0yTs5V_bp!$V$97h*xWFesS`;Fy9a*?QBsm+c&X)
zu2U)dSJFNsSi-)A{cp&;4Zp{fweQ4Ku<yoHwDa+can#bpso!U+M2>GZ{)kbV8JQ#F
zY;fXGAO9Y6z^Yg7qr(Gu2#=7bx}zKQ%b#37hRFW7zhdeePYC-IyJw(wj{{;26D+VH
z3KBp<NCb%?33$K@KJY^{ndjDTeDQD{gqY9?*0mltLLv4rhu8}M<H=*3Xd_PYO&~Yb
zv96BEkn`g2CaXP8j-A@i6qqSP4UJTg8aZj89QmCVVS1O-;hr8cK*mrD_U1<FBlcg1
zX!jrsxZ}$zAJXF$=ecE-JOA~~kPUg+k&y#l3RQOAr<`0DamFF4Q2sQpq_CXdjeG9U
zD|XxHsy1iN@tmsioZNaf4|4J%H!f7gKIoO7Dt5k5HR7v=ziRj+kCBldKRPpB`W)hy
z|Du6ambmMgGS5oh6%19i3n8a4daS};=ZHPTLq2>S;$C5AM^#7HNSWY!JyeG8NR<=q
zvyC%~hBh0;&`E1@Uk+8bpa0$lziCKbmVlDzqIWA<;0gZRvb2$Mqk5<m?xn+dt+`aq
zAC^I%$@JaIVwQvQPys4JCH#&yYY@*<(h+C85{fe_BSYmg5>FNUR0WNvRU^!+P#tPO
zO{fL6p$^oAdQcx4KtpH*jiCuNg=WwkT0l!^1+AeCyaumBTWA;Z8tp?h$?KZrV9jt|
zyJfHgI(9@S%`3e@e!K~tpfh%NoH@~2c9&3X%0X?y)+VgJT{)Ky_mp-t>)Zmy+xXYF
z^E;U8XLcpdZtyP8vU{iwWkA2=SSLPS?VHj!rQXwtiR<!?*RfBtv*W#xe$7$WS_39`
zJ-_<YLoeFV-XpsQ@pG1H*uTQk{zK1D!+-gA?d87_-!p%g<+{BnvoUFvAB|nUD7T4|
z4%a@SUnEY+Zpu3m3HML;7v(n#>qj32eS7nMKi9qazjSx~NPdfd=q|g64Ej09>Kkeq
z4)4m;I9^8H;~R{Dg!mQ9f9B(J_txPwyJLR}qi1u&YV)`J{g60L244G@9M@iPy#Aj$
zy6zDj+rIF;+x^G$ZvQX&ZrUWj!wdSjI`#{7{D%xqfegLzFBxu`k=vWp8+uO6-8yBc
zQ~doTr|s$-pBDp2uf~Cr^F11()^^K<Yo~9nflhgUD_kxZ7YX~<IH=r|@1xDP{}=an
z;^QCW=+ia+ez0@jE&krs@7?(OW6t}bUj$Wp-251V4ugn$C=7$)q4(nTj*OSMYZ=}T
zmsif#p&UidR?%LR5y%(`qn!AA#K-r@DMuf~%X6O#ZIzQhwd}m{ZP35lHO-5TM&=lF
zQvEs>a~w$D@enB^6S$s;{Uqw8$?!2ufvGSJrsFmPX5w!a_geoI`K=#~tj)%54$Osl
zFdr7+e_=@Li*#0Nz*t1Rv>2Aa(oj#**OU6Gr&B*I3-uy>y}0k?+@C>L>3iO|%zWYV
zHg-8-H`9)3P5vk3Q{?v$SD=^rayMuvhB)QPZ6Ea=vl4&WU$Y8*K84lX>$mIHV6F}I
zwny=~u`bldULPufmL+KMN-!o$|CcmqEOP_qM%aY^mi*R;#_n}C|7PqOGv-_@s)YGD
zb^Qr%U(%poc<oCXKD4)BSDbHwt)YJO8}*B?{jk@04Q0)3VcFV;rai;k<7M?HH(C3I
zp4H6($QwYo0ZyK%&!{}fYz!pt24X)jZ2v60mU$cJRc}N8ZO)jkdoF<5i-55sRN1@}
zqu&=$T>b1Xk?;O~5p^Mb{hh?Wi}Y!2Lazk+t)ukD?ohP3C)D2#aK6pn&;WZMdA~n2
z&_00KiZmY#l{OEB%F+iaOPpoHandh$(xx#^t%Fv7lk<*3pW*K_{CyT4Z)P<K{&X(I
z4$g3!#<@1tsrgIrOSY^eByEF8o5uUqKN(DV2V*xloZcbysZ}O8KM7rq!Erc&{^~EC
zByFlkzvlj%kj}6kO1-2VtV0R!Wj%?P{cy}L<9<4nnD~a+--ZU+--U+QXE4u(hK1)o
zv>wt;hx$I}@PD3ib^$Jeeg}FhWo{dM&;2F13~lI-UqOc-;77uYrp#OoX^r`2<0ss&
z!FB9^4(S(qDYM*5?k{i-4pWA2V*VN$!IRTBC4FXOX^!<b>~F*Ga0l+fA8-#Y5$-<b
z19%9JLL*6c9)1gsxjpjZPvUGqpYAbcVOA+dW2f@;7qT_Z`~>qUJOllJCI|Q$R_sXI
zhA2o7JKRnfJHk#BJBm6ivgXQt&$Qz<6?JyvSo-aR3vnu!Cl-j=8_Sth)I-DkqwLj*
zM%jZf_1&YmwYR_*o7C{fvi#1_dHnS837-Xdf!H`Bh`bmGVHXQYVJYJh$*@a~j*{X2
z*1%}Wh<??0v{Ob>#E#*e8^isWaGBvfh-Kc3aH-KJ4RX|<Ps@F}*s+AwuON?g{HBi`
z$N2g<?#IQ4Raw><=NSl>F*d!CDRzmO897-XD`bQ0xaC0JOOO+CVV4`b!<^TYCw4r~
zLcg9oJ}gsnJbcsQp3<J+<YydV@^Oene$rJSwvSN|3UOT+io{Oj-RMGoM(V-|cF}P9
zr?Vy}vhJrCeehzjTB|teh4C6UpR)0MUUuTpdLYK)68AAC(|%2dOT6<D8O`~f$)wg~
z^!?Z_P8>HF2P}b}C7~3Qj-5h(!(Fdm2KTa14yyBQSA%b;N|@}G;k{yf5cC_`nm=h4
zGtEvBufOVWosZ+z<K>a7zVH)5RY2AdWa!yejD4<Gv8btbCF16@z<34!&7C@2V{fj$
zb@;XE1o86K=17Lh;tcHd>$Nk;d$+7tCXe)s)QN!|&yKy)seIAz)@G%Ss6u(E8oSy^
z#rF;~_0+MhPFlZF4IN)qnxO{Ngj(pN`bRSKo0diRe#=Wp%|+D4tuOb7IH$4>e(Q3t
z^=b8DBWq&Ya4rOE%42P#0W{=CE*e2&Xc9Y%@;M7VXNAj74$8r7yD8<cx}kIV*~6y%
mfFNb`F5_!0D0?lr4;igZ{YI(EukyE5>?^e@Rp91d|Nakf@^9Jz

diff --git a/assets/models/cam.gltf b/assets/models/cam.gltf
index 9171742..558c28f 100644
--- a/assets/models/cam.gltf
+++ b/assets/models/cam.gltf
@@ -59,14 +59,14 @@
         {
             "bufferView" : 0,
             "componentType" : 5126,
-            "count" : 19,
+            "count" : 58,
             "max" : [
                 1,
                 2,
                 1.7000000476837158
             ],
             "min" : [
-                -1,
+                -1.0014973878860474,
                 -1,
                 -1.7000000476837158
             ],
@@ -75,48 +75,48 @@
         {
             "bufferView" : 1,
             "componentType" : 5126,
-            "count" : 19,
+            "count" : 58,
             "type" : "VEC3"
         },
         {
             "bufferView" : 2,
             "componentType" : 5126,
-            "count" : 19,
+            "count" : 58,
             "type" : "VEC2"
         },
         {
             "bufferView" : 3,
             "componentType" : 5123,
-            "count" : 21,
+            "count" : 72,
             "type" : "SCALAR"
         }
     ],
     "bufferViews" : [
         {
             "buffer" : 0,
-            "byteLength" : 228,
+            "byteLength" : 696,
             "byteOffset" : 0
         },
         {
             "buffer" : 0,
-            "byteLength" : 228,
-            "byteOffset" : 228
+            "byteLength" : 696,
+            "byteOffset" : 696
         },
         {
             "buffer" : 0,
-            "byteLength" : 152,
-            "byteOffset" : 456
+            "byteLength" : 464,
+            "byteOffset" : 1392
         },
         {
             "buffer" : 0,
-            "byteLength" : 42,
-            "byteOffset" : 608
+            "byteLength" : 144,
+            "byteOffset" : 1856
         }
     ],
     "buffers" : [
         {
-            "byteLength" : 652,
-            "uri" : "data:application/octet-stream;base64,AACAvwAAgD+amdm/AACAvwAAgD+amdm/AACAvwAAgD+amdm/AACAvwAAgL+amdm/AACAvwAAgL+amdm/AACAvwAAgL+amdm/AACAvwAAgD+amdk/AACAvwAAgD+amdk/AACAvwAAgD+amdk/AACAvwAAgL+amdk/AACAvwAAgL+amdk/AACAvwAAgL+amdk/AACAPwAAAAAAAACAAACAPwAAAAAAAACAAACAPwAAAAAAAACAAACAPwAAAAAAAACAAACAv2Zmpj+amVm/AACAv2Zmpj+amVk/AACAvwAAAEAAAACA//9/vwAAAAAAAACAMPnkPi/5ZD8AAACAScwlPwAAAAB0DkO///9/vwAAAAAAAACAMPnkPi/5ZL8AAACAScwlPwAAAAB0DkO///9/vwAAAAAAAACAMPnkPi/5ZD8AAACAScwlPwAAAAB0DkM///9/vwAAAAAAAACAMPnkPi/5ZL8AAACAScwlPwAAAAB0DkM/MPnkPi/5ZL8AAACAMPnkPi/5ZD8AAACAScwlPwAAAAB0DkO/ScwlPwAAAAB0DkM/AACAPwAAAAAAAACAAACAPwAAAAAAAACAAACAPwAAAAAAAACAAAAgPwAAQD8AACA/AABAPwAAID8AAEA/AADAPgAAQD8AAMA+AABAPwAAwD4AAEA/AAAgPwAAgD8AACA/AACAPwAAID8AAIA/AADAPgAAgD8AAMA+AACAPwAAwD4AAIA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AACA/AABAPwAAID8AAIA/AAAgPwAAYD8JAAYAAAAJAAAAAwAFAAIADgAKAAQADAAIAAsADwABAAcADQASABEAEAAAAA=="
+            "byteLength" : 2000,
+            "uri" : "data:application/octet-stream;base64,AACAvwAAgD+amdm/AACAvwAAgD+amdm/AACAvwAAgD+amdm/AACAvwAAgD+amdm/AACAvwAAgL+amdm/AACAvwAAgL+amdm/AACAvwAAgL+amdm/AACAvwAAgL+amdm/AACAvwAAgD+amdk/AACAvwAAgD+amdk/AACAvwAAgD+amdk/AACAvwAAgD+amdk/AACAvwAAgL+amdk/AACAvwAAgL+amdk/AACAvwAAgL+amdk/AACAvwAAgL+amdk/AACAPwAAAAAAAACAAACAPwAAAAAAAACAAACAPwAAAAAAAACAAACAPwAAAAAAAACA33x/v2Zmpj+amVm/33x/v2Zmpj+amVm/33x/v2Zmpj+amVm/33x/v2Zmpj+amVk/33x/v2Zmpj+amVk/33x/v2Zmpj+amVk/33x/vwAAAEAAAACA33x/vwAAAEAAAACA33x/vwAAAEAAAACAAACAvwAAAEAAAACAAACAvwAAAEAAAACAAACAvwAAAEAAAACAAACAv2Zmpj+amVm/AACAv2Zmpj+amVm/AACAv2Zmpj+amVm/AACAv2Zmpj+amVk/AACAv2Zmpj+amVk/AACAv2Zmpj+amVk/ETGAvwAAgL+amdm/ETGAvwAAgL+amdm/ETGAvwAAgL+amdm/ETGAvwAAgL+amdm/ETGAvwAAgL+amdk/ETGAvwAAgL+amdk/ETGAvwAAgL+amdk/ETGAvwAAgL+amdk/ETGAvwAAgD+amdk/ETGAvwAAgD+amdk/ETGAvwAAgD+amdk/ETGAvwAAgD+amdk/ETGAvwAAgD+amdm/ETGAvwAAgD+amdm/ETGAvwAAgD+amdm/ETGAvwAAgD+amdm/3p1/PwAAAAAAAACA3p1/PwAAAAAAAACA3p1/PwAAAAAAAACA3p1/PwAAAAAAAACAScwlvwAAAAB0DkM/MPnkvi/5ZL8AAACAAAAAAAAAgL8AAACAAAAAAAAAAAAAAIA/ScwlvwAAAAB0DkM/MPnkvi/5ZD8AAACAAAAAAAAAAAAAAIA/AAAAAAAAgD8AAACAScwlvwAAAAB0DkO/MPnkvi/5ZL8AAACAAAAAAAAAgL8AAACAAAAAAAAAAAAAAIC/ScwlvwAAAAB0DkO/MPnkvi/5ZD8AAACAAAAAAAAAAAAAAIC/AAAAAAAAgD8AAACAScwlvwAAAAB0DkO/ScwlvwAAAAB0DkM/MPnkvi/5ZL8AAACAMPnkvi/5ZD8AAACAAACAvwAAAAAAAACAAAAAAHudRb9lvSI/AAAAAP//fz8AAACAAACAvwAAAAAAAACAAAAAAHudRb9lvSK/AAAAAP//fz8AAACAAACAvwAAAAAAAACAAAAAAHudRb9lvSK/AAAAAHudRb9lvSI/AAAAAHudRb9lvSK/AAAAAHudRb9lvSI/AACAPwAAAAAAAACAAAAAAHudRb9lvSI/AAAAAP//fz8AAACAAACAPwAAAAAAAACAAAAAAHudRb9lvSK/AAAAAP//fz8AAACAAACAPwAAAAAAAACAAAAAAAAAAAAAAIA/AAAAAAAAgD8AAACAMPnkPi/5ZL8AAACASswlPwAAAAB0DkO/AAAAAAAAAAAAAIC/AAAAAAAAgD8AAACAMPnkPi/5ZL8AAACASswlPwAAAAB0DkM/AAAAAAAAgL8AAACAAAAAAAAAAAAAAIC/MPnkPi/5ZD8AAACASswlPwAAAAB0DkM/AAAAAAAAgL8AAACAAAAAAAAAAAAAAIA/MPnkPi/5ZD8AAACASswlPwAAAAB0DkO/MPnkPi/5ZL8AAACAMPnkPi/5ZD8AAACASswlPwAAAAB0DkO/SswlPwAAAAB0DkM/AAAgPwAAQD8AACA/AABAPwAAID8AAEA/AAAgPwAAQD8AAMA+AABAPwAAwD4AAEA/AADAPgAAQD8AAMA+AABAPwAAID8AAIA/AAAgPwAAgD8AACA/AACAPwAAID8AAIA/AADAPgAAgD8AAMA+AACAPwAAwD4AAIA/AADAPgAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8AAAAAAACAPwAAID8AAEA/AAAgPwAAQD8AACA/AABAPwAAID8AAIA/AAAgPwAAgD8AACA/AACAPwAAID8AAGA/AAAgPwAAYD8AACA/AABgPwAAID8AAGA/AAAgPwAAYD8AACA/AABgPwAAID8AAEA/AAAgPwAAQD8AACA/AABAPwAAID8AAIA/AAAgPwAAgD8AACA/AACAPwAAwD4AAEA/AADAPgAAQD8AAMA+AABAPwAAwD4AAEA/AADAPgAAgD8AAMA+AACAPwAAwD4AAIA/AADAPgAAgD8AACA/AACAPwAAID8AAIA/AAAgPwAAgD8AACA/AACAPwAAID8AAEA/AAAgPwAAQD8AACA/AABAPwAAID8AAEA/AAAAAAAAgD8AAAAAAACAPwAAAAAAAIA/AAAAAAAAgD8EABEAAAANABMABQAIABAADAABABIACQAaABQAFwAfACUAIgAZABYAIQAZACEAJAAbABgAIwAbACMAHQAVABwAHgAVAB4AIAApADUAOAAsACgANgAxAC0AOQA0ADAANwACAAoALgACAC4AMgALAA4AKgALACoALwAGAAMAMwAGADMAJgAPAAcAJwAPACcAKwA="
         }
     ]
 }
diff --git a/examples/simple.rs b/examples/simple.rs
index 72ae648..9941d48 100644
--- a/examples/simple.rs
+++ b/examples/simple.rs
@@ -14,10 +14,6 @@ use driver_marker_derive::DriverMarker;
 
 fn main() {
     App::new()
-        .insert_resource(WgpuSettings {
-            features: WgpuFeatures::POLYGON_MODE_LINE,
-            ..default()
-        })
         .add_plugins(DefaultPlugins)
         .add_plugin(WireframePlugin)
         .add_plugin(ConfigCam)
@@ -93,6 +89,11 @@ fn setup(
                 )
                 .clone(),
             transform: Transform {
+                translation: Vec3 {
+                    x: 0.0,
+                    y: 0.5,
+                    z: 0.0,
+                },
                 scale: Vec3::new(0.5, 0.5, 0.5),
                 ..Default::default()
             },
diff --git a/src/lib.rs b/src/lib.rs
index 7f5411b..0f65014 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -37,7 +37,7 @@ pub(crate) fn update_look_at(
     }
 
     //https://math.stackexchange.com/questions/80923/average-of-multiple-vectors
-    let total_targets = targets.iter().count();
+    //let total_targets = targets.iter().count();
     //avg /= total_targets as f32;
 
     rigs.try_for_each_driver_mut::<bevy_dolly::prelude::LookAt>(|la| {

From 6cbcc9e54f331472412006aa02575bee64f71161 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Wed, 28 Sep 2022 22:47:02 +0200
Subject: [PATCH 38/63] Removed notice

---
 src/lib.rs | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/src/lib.rs b/src/lib.rs
index 0f65014..85568d1 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -46,9 +46,6 @@ pub(crate) fn update_look_at(
 }
 
 pub(crate) fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut rigs: DriverRigs) {
-    // Waiting for 1.63 for stable, use nightly until August 11 2022
-    // https://forge.rust-lang.org/#current-release-versions
-    // https://github.com/rust-lang/rust/issues/83701
     rigs.try_for_each_driver_mut::<YawPitch>(|yp| {
         if keys.just_pressed(KeyCode::Z) {
             yp.rotate_yaw_pitch(-90.0, 0.0);

From bd5f6bfe7989bae328c3c325f02174a1c7e4434a Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Wed, 28 Sep 2022 22:51:46 +0200
Subject: [PATCH 39/63] Removed unused crate

---
 Cargo.toml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/Cargo.toml b/Cargo.toml
index 24e63e2..cffdd92 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -25,7 +25,6 @@ name = "bevy_config_cam"
 rand = "0.8"
 strum = "0.24"
 strum_macros = "0.24"
-macro_rules_attribute = { path = "../macro_rules_attribute-rs" }
 bevy_dolly = { git = "https://github.com/BlackPhlox/bevy_dolly"}
 driver_marker_derive = { path = "driver_marker_derive" }
 

From 06e42583f16f5afac68b37f64792e19c3dec4b61 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Wed, 28 Sep 2022 23:01:18 +0200
Subject: [PATCH 40/63] Updated CI

---
 .github/workflows/{master.yml => main.yml} | 49 +++++++++-------------
 1 file changed, 20 insertions(+), 29 deletions(-)
 rename .github/workflows/{master.yml => main.yml} (60%)

diff --git a/.github/workflows/master.yml b/.github/workflows/main.yml
similarity index 60%
rename from .github/workflows/master.yml
rename to .github/workflows/main.yml
index d81eaf2..868a79d 100644
--- a/.github/workflows/master.yml
+++ b/.github/workflows/main.yml
@@ -17,42 +17,32 @@ jobs:
       - uses: actions-rs/cargo@v1
         with:
           command: update
-
-  check:
-    name: Check
-    runs-on: ubuntu-latest
-    needs: update
-    steps:
-      - uses: actions/checkout@v2
-      - uses: actions-rs/toolchain@v1
-        with:
-          profile: minimal
-          toolchain: nightly
-          override: true
-      - uses: actions-rs/cargo@v1
-        with:
-          command: check
-
   test:
     name: Test Suite
     runs-on: ubuntu-latest
-    needs: update
     steps:
-      - uses: actions/checkout@v2
-      - name: Update apt
-        run: sudo apt update
-      - name: Install libudev
-        run: sudo apt install libudev-dev
-      - name: Install libxkbcommon
-        run: sudo apt install libxkbcommon-dev
-      - name: Install libwayland
-        run: sudo apt install libwayland-dev
-      - uses: actions-rs/toolchain@v1
+      - name: Checkout sources
+        uses: actions/checkout@v2
+      - name: Cache
+        uses: actions/cache@v2
+        with:
+          path: |
+            ~/.cargo/bin/
+            ~/.cargo/registry/index/
+            ~/.cargo/registry/cache/
+            ~/.cargo/git/db/
+            target/
+          key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.toml') }}
+      - name: Install stable toolchain
+        uses: actions-rs/toolchain@v1
         with:
           profile: minimal
           toolchain: stable
           override: true
-      - uses: actions-rs/cargo@v1
+      - name: Install Dependencies
+        run: sudo apt-get update; sudo apt-get install pkg-config libx11-dev libwayland-dev libxkbcommon-dev libasound2-dev libudev-dev libxcb-render0-dev libxcb-shape0-dev libxcb-xfixes0-dev
+      - name: Run cargo test
+        uses: actions-rs/cargo@v1
         with:
           command: test
 
@@ -75,7 +65,6 @@ jobs:
   clippy:
     name: Clippy
     runs-on: ubuntu-latest
-    needs: update
     steps:
       - uses: actions/checkout@v2
       - uses: actions-rs/toolchain@v1
@@ -83,6 +72,8 @@ jobs:
           profile: minimal
           toolchain: stable
           override: true
+      - name: Install Dependencies
+        run: sudo apt-get update; sudo apt-get install pkg-config libx11-dev libasound2-dev libudev-dev
       - run: rustup component add clippy
       - uses: actions-rs/cargo@v1
         with:

From 189605d96fa36d745615be3b0672656f76ab7b18 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 15 Nov 2022 23:51:25 +0100
Subject: [PATCH 41/63] Update to bevy 0.9

---
 Cargo.toml                   |  4 ++--
 examples/minimal.rs          |  8 ++++----
 examples/multiple_targets.rs | 19 ++++++-------------
 examples/simple.rs           | 26 ++++++++++++++------------
 src/lib.rs                   | 33 ++++++++++++++++-----------------
 5 files changed, 42 insertions(+), 48 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index cffdd92..67eae97 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -29,11 +29,11 @@ bevy_dolly = { git = "https://github.com/BlackPhlox/bevy_dolly"}
 driver_marker_derive = { path = "driver_marker_derive" }
 
 [dependencies.bevy]
-version = "0.8"
+version = "0.9"
 features = ["bevy_render","bevy_pbr"]
 default-features = false
 
 [dev-dependencies.bevy]
-version = "0.8"
+version = "0.9"
 features = ["bevy_core_pipeline", "bevy_asset", "bevy_scene", "bevy_pbr", "bevy_gltf", "x11", "wayland"]
 default-features = false
diff --git a/examples/minimal.rs b/examples/minimal.rs
index 30dfdaa..a635639 100644
--- a/examples/minimal.rs
+++ b/examples/minimal.rs
@@ -16,14 +16,14 @@ fn setup(
     mut materials: ResMut<Assets<StandardMaterial>>,
 ) {
     // plane
-    commands.spawn_bundle(PbrBundle {
+    commands.spawn(PbrBundle {
         mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
         material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
         ..Default::default()
     });
 
     // cube
-    commands.spawn_bundle(PbrBundle {
+    commands.spawn(PbrBundle {
         mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
         material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
         transform: Transform::from_xyz(0.0, 0.5, 0.0),
@@ -31,12 +31,12 @@ fn setup(
     });
 
     // light
-    commands.spawn_bundle(PointLightBundle {
+    commands.spawn(PointLightBundle {
         transform: Transform::from_xyz(4.0, 8.0, 4.0),
         ..Default::default()
     });
 
-    commands.spawn_bundle(Camera3dBundle {
+    commands.spawn(Camera3dBundle {
         camera: Camera {
             is_active: true,
             ..Default::default()
diff --git a/examples/multiple_targets.rs b/examples/multiple_targets.rs
index 9f36c63..32ce5a1 100644
--- a/examples/multiple_targets.rs
+++ b/examples/multiple_targets.rs
@@ -1,6 +1,3 @@
-fn main() {}
-
-/*
 use bevy::prelude::*;
 use bevy_config_cam::*;
 fn main() {
@@ -35,7 +32,7 @@ fn setup(
     mut materials: ResMut<Assets<StandardMaterial>>,
 ) {
     // plane
-    commands.spawn_bundle(PbrBundle {
+    commands.spawn(PbrBundle {
         mesh: meshes.add(Mesh::from(shape::Plane { size: 11.0 })),
         material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
         ..Default::default()
@@ -43,26 +40,24 @@ fn setup(
 
     //Target 1
     commands
-        .spawn_bundle(PbrBundle {
+        .spawn((PbrBundle {
             mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
             material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
             transform: Transform::from_xyz(-5.0, 0.5, 0.0),
             ..Default::default()
-        })
-        .insert(T1);
+        }, T1));
 
     //Target 2
     commands
-        .spawn_bundle(PbrBundle {
+        .spawn((PbrBundle {
             mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
             material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
             transform: Transform::from_xyz(5.0, 0.5, 0.0),
             ..Default::default()
-        })
-        .insert(T2);
+        }, T2));
 
     // light
-    commands.spawn_bundle(PointLightBundle {
+    commands.spawn(PointLightBundle {
         transform: Transform::from_xyz(4.0, 8.0, 4.0),
         ..Default::default()
     });
@@ -98,5 +93,3 @@ fn set_closest_target(
         cl.target = None;
     }
 }
-
-*/
diff --git a/examples/simple.rs b/examples/simple.rs
index 9941d48..b1c90bd 100644
--- a/examples/simple.rs
+++ b/examples/simple.rs
@@ -36,7 +36,7 @@ fn setup(
     asset_server: Res<AssetServer>,
 ) {
     // plane
-    commands.spawn_bundle(PbrBundle {
+    commands.spawn(PbrBundle {
         mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
         material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
         ..Default::default()
@@ -45,21 +45,23 @@ fn setup(
     // cube
 
     commands
-        .spawn_bundle(SpatialBundle::from_transform(Transform {
+        .spawn(SpatialBundle::from_transform(Transform {
             rotation: Quat::IDENTITY,
             translation: Vec3::new(2., 0., 0.),
             ..default()
         }))
         .with_children(|cell| {
-            cell.spawn_bundle(PbrBundle {
-                mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
-                material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
-                transform: Transform::from_xyz(0.0, 0.5, 0.0),
-                ..Default::default()
-            });
-        })
-        .insert(Rotates)
-        .insert(Target);
+            cell.spawn((
+                Rotates,
+                Target,
+                PbrBundle {
+                    mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
+                    material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
+                    transform: Transform::from_xyz(0.0, 0.5, 0.0),
+                    ..Default::default()
+                },
+            ));
+        });
 
     // light
     commands.spawn_bundle(PointLightBundle {
@@ -129,7 +131,7 @@ fn setup(
         ..Default::default()
     });
 
-    commands.spawn().insert(CameraCount { total: 2, index: 0 });
+    commands.spawn(CameraCount { total: 2, index: 0 });
 }
 
 #[derive(Component)]
diff --git a/src/lib.rs b/src/lib.rs
index 85568d1..6514fcb 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -2,8 +2,8 @@ use bevy::{
     ecs::{component::TableStorage, system::SystemParam},
     input::Input,
     prelude::{
-        App, Camera, Commands, Component, Entity, KeyCode, Plugin, Query, Res, ResMut, Transform,
-        Vec3, With,
+        App, Camera, Commands, Component, Entity, KeyCode, Plugin, Query, Res, ResMut, Resource,
+        Transform, Vec3, With,
     },
 };
 use bevy_dolly::{dolly::glam, prelude::*};
@@ -76,22 +76,20 @@ fn default_setup(mut commands: Commands) {
     //Default player entity : Cone
     //commands.spawn().insert(Target);
 
-    commands
-        .spawn()
-        .insert(
-            Rig::builder()
-                .with(YawPitch::new().yaw_degrees(45.0).pitch_degrees(-45.0))
-                .with(Smooth::new_rotation(1.5))
-                .with(Arm::new(glam::Vec3::Z * 4.0))
-                .with(bevy_dolly::prelude::LookAt::new(glam::Vec3::new(
-                    0., 0., 0.,
-                )))
-                .build(),
-        )
-        .insert(Pinned);
+    commands.spawn((
+        Pinned,
+        Rig::builder()
+            .with(YawPitch::new().yaw_degrees(45.0).pitch_degrees(-45.0))
+            .with(Smooth::new_rotation(1.5))
+            .with(Arm::new(glam::Vec3::Z * 4.0))
+            .with(bevy_dolly::prelude::LookAt::new(glam::Vec3::new(
+                0., 0., 0.,
+            )))
+            .build(),
+    ));
 
     //Missing FPV
-    commands.spawn().insert(FPV);
+    commands.spawn(FPV);
 }
 
 #[derive(SystemParam)]
@@ -112,6 +110,7 @@ impl<'w, 's> DriverRigs<'w, 's> {
     }
 }
 
+#[derive(Resource)]
 pub struct Drivers(Vec<Box<dyn DriverMarker>>);
 
 impl Default for Drivers {
@@ -133,7 +132,7 @@ pub trait DriverMarker: Component<Storage = TableStorage> + Sync + Send + 'stati
     fn remove_from(&self, commands: &mut Commands, entity: Entity);
 }
 
-#[derive(Default)]
+#[derive(Default, Resource)]
 pub struct DriverIndex(usize);
 
 impl DriverIndex {

From b26d1383c5f89c568e4abaa47bb5404c4eb7a51c Mon Sep 17 00:00:00 2001
From: Oliver Atkinson <oliveratkinsoneng@gmail.com>
Date: Sat, 10 Dec 2022 16:37:41 -0700
Subject: [PATCH 42/63] split up lib.rs into smaller, easier to look thru parts

---
 src/drive/driver_control.rs |  51 ++++++++++++++++
 src/drive/mod.rs            |   3 +
 src/drive/views.rs          |  18 ++++++
 src/lib.rs                  | 118 +++---------------------------------
 4 files changed, 79 insertions(+), 111 deletions(-)
 create mode 100644 src/drive/driver_control.rs
 create mode 100644 src/drive/mod.rs
 create mode 100644 src/drive/views.rs

diff --git a/src/drive/driver_control.rs b/src/drive/driver_control.rs
new file mode 100644
index 0000000..e330e8f
--- /dev/null
+++ b/src/drive/driver_control.rs
@@ -0,0 +1,51 @@
+use bevy::prelude::{ResMut, KeyCode, Input, Res, Camera, Query, Entity, Commands};
+
+use super::drivers::{DriverIndex, Drivers};
+
+// TODO documentation
+
+
+//Use collection with and keeping an index component or the like
+pub fn change_driver_system(
+    mut index: ResMut<DriverIndex>,
+    drivers: Res<Drivers>,
+    keys: Res<Input<KeyCode>>,
+) {
+    if keys.just_pressed(KeyCode::T) {
+        index.next(drivers.marker.len());
+    }
+}
+
+pub fn update_driver_system(
+    q: Query<(Entity, &Camera)>,
+    mut commands: Commands,
+    index: Res<DriverIndex>,
+    drivers: Res<Drivers>,
+) {
+    if index.is_changed() {
+        for box_component in &drivers.marker {
+            let component = box_component.as_ref();
+            let component_id = component.get_id();
+
+            if let Some(h) = drivers.marker.get(index.index) {
+                if component_id.eq(&h.get_id()) {
+                    //Add new driver component
+                    //Remove old driver component
+                    for (entity, camera) in q.iter() {
+                        if camera.is_active {
+                            component.add_to(&mut commands, entity);
+                            println!("Adding {:?} to Camera {:?}", component.get_name(), entity);
+                        }
+                    }
+                } else {
+                    for (entity, camera) in q.iter() {
+                        if camera.is_active {
+                            component.remove_from(&mut commands, entity);
+                            println!("Remove {:?} from Camera {:?}", component.get_name(), entity);
+                        }
+                    }
+                }
+            }
+        }
+    }
+}
diff --git a/src/drive/mod.rs b/src/drive/mod.rs
new file mode 100644
index 0000000..1063db7
--- /dev/null
+++ b/src/drive/mod.rs
@@ -0,0 +1,3 @@
+pub mod drivers;
+pub mod views;
+pub mod driver_control;
diff --git a/src/drive/views.rs b/src/drive/views.rs
new file mode 100644
index 0000000..642f582
--- /dev/null
+++ b/src/drive/views.rs
@@ -0,0 +1,18 @@
+use driver_marker_derive::DriverMarker;
+use super::drivers::DriverMarker;
+
+use std::any::TypeId;
+
+use bevy::{
+    prelude::Component,
+    ecs::{system::Commands, entity::Entity}
+};
+
+#[derive(DriverMarker, Component, Clone, Copy, Debug)]
+pub struct FPV;
+
+#[derive(DriverMarker, Component, Clone, Copy, Debug)]
+pub struct Pinned;
+//Substates:
+//Locked Rotation
+//Free
\ No newline at end of file
diff --git a/src/lib.rs b/src/lib.rs
index 6514fcb..8d98e82 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,16 +1,19 @@
+mod drive;
+// mod lib2;
+
 use bevy::{
-    ecs::{component::TableStorage, system::SystemParam},
     input::Input,
     prelude::{
-        App, Camera, Commands, Component, Entity, KeyCode, Plugin, Query, Res, ResMut, Resource,
+        App, Commands, Component, KeyCode, Plugin, Query, Res,
         Transform, Vec3, With,
     },
 };
 use bevy_dolly::{dolly::glam, prelude::*};
-use driver_marker_derive::DriverMarker;
-
+use drive::{drivers::{DriverIndex, Drivers, DriverRigs}, views::{FPV, Pinned}, driver_control::{change_driver_system, update_driver_system}};
 pub use std::any::TypeId;
 
+// TODO documentation
+
 pub struct ConfigCam;
 impl Plugin for ConfigCam {
     fn build(&self, app: &mut App) {
@@ -62,15 +65,6 @@ pub(crate) fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut rigs: DriverRigs)
 #[derive(Component)]
 pub struct Target;
 
-#[derive(DriverMarker, Component, Clone, Copy, Debug)]
-pub struct Pinned;
-//Substates:
-//Locked Rotation
-//Free
-
-#[derive(DriverMarker, Component, Clone, Copy, Debug)]
-pub struct FPV;
-
 fn default_setup(mut commands: Commands) {
     //Should be default player entity
     //Default player entity : Cone
@@ -91,101 +85,3 @@ fn default_setup(mut commands: Commands) {
     //Missing FPV
     commands.spawn(FPV);
 }
-
-#[derive(SystemParam)]
-struct DriverRigs<'w, 's> {
-    rigs: Query<'w, 's, &'static mut Rig>,
-}
-
-impl<'w, 's> DriverRigs<'w, 's> {
-    fn try_for_each_driver_mut<T>(&mut self, f: impl FnOnce(&mut T) + std::marker::Copy)
-    where
-        T: bevy_dolly::prelude::RigDriver<bevy_dolly::prelude::RightHanded>,
-    {
-        for mut rig in &mut self.rigs {
-            if let Some(camera_driver) = rig.try_driver_mut::<T>() {
-                f(camera_driver);
-            }
-        }
-    }
-}
-
-#[derive(Resource)]
-pub struct Drivers(Vec<Box<dyn DriverMarker>>);
-
-impl Default for Drivers {
-    fn default() -> Self {
-        Self(vec![Box::new(Pinned), Box::new(FPV)])
-    }
-}
-
-impl Drivers {
-    pub fn new(driver_markers: Vec<Box<dyn DriverMarker>>) -> Self {
-        Self(driver_markers)
-    }
-}
-
-pub trait DriverMarker: Component<Storage = TableStorage> + Sync + Send + 'static {
-    fn get_id(&self) -> TypeId;
-    fn get_name(&self) -> &str;
-    fn add_to(&self, commands: &mut Commands, entity: Entity);
-    fn remove_from(&self, commands: &mut Commands, entity: Entity);
-}
-
-#[derive(Default, Resource)]
-pub struct DriverIndex(usize);
-
-impl DriverIndex {
-    pub fn next(&mut self, len: usize) {
-        if self.0 >= len - 1 {
-            self.0 = 0;
-        } else {
-            self.0 += 1;
-        }
-    }
-}
-
-//Use collection with and keeping an index component or the like
-fn change_driver_system(
-    mut index: ResMut<DriverIndex>,
-    drivers: Res<Drivers>,
-    keys: Res<Input<KeyCode>>,
-) {
-    if keys.just_pressed(KeyCode::T) {
-        index.next(drivers.0.len());
-    }
-}
-
-fn update_driver_system(
-    q: Query<(Entity, &Camera)>,
-    mut commands: Commands,
-    index: Res<DriverIndex>,
-    drivers: Res<Drivers>,
-) {
-    if index.is_changed() {
-        for box_component in &drivers.0 {
-            let component = box_component.as_ref();
-            let component_id = component.get_id();
-
-            if let Some(h) = drivers.0.get(index.0) {
-                if component_id.eq(&h.get_id()) {
-                    //Add new driver component
-                    //Remove old driver component
-                    for (entity, camera) in q.iter() {
-                        if camera.is_active {
-                            component.add_to(&mut commands, entity);
-                            println!("Adding {:?} to Camera {:?}", component.get_name(), entity);
-                        }
-                    }
-                } else {
-                    for (entity, camera) in q.iter() {
-                        if camera.is_active {
-                            component.remove_from(&mut commands, entity);
-                            println!("Remove {:?} from Camera {:?}", component.get_name(), entity);
-                        }
-                    }
-                }
-            }
-        }
-    }
-}

From d9b43183a0515bb2bed6201cbe927cbbd7a896f8 Mon Sep 17 00:00:00 2001
From: Oliver Atkinson <oliveratkinsoneng@gmail.com>
Date: Sat, 10 Dec 2022 16:38:22 -0700
Subject: [PATCH 43/63] DriverIndex & Drivers, change from tupele struct to
 normal struct

---
 src/drive/drivers.rs | 71 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 71 insertions(+)
 create mode 100644 src/drive/drivers.rs

diff --git a/src/drive/drivers.rs b/src/drive/drivers.rs
new file mode 100644
index 0000000..f00ce24
--- /dev/null
+++ b/src/drive/drivers.rs
@@ -0,0 +1,71 @@
+use std::any::TypeId;
+
+use bevy::{prelude::{
+    Resource, Entity,
+    Commands, Component, Query}, ecs::{component::TableStorage, system::SystemParam}};
+use bevy_dolly::prelude::Rig;
+
+use crate::Pinned;
+
+use super::views::FPV;
+
+pub trait DriverMarker: Component<Storage = TableStorage> + Sync + Send + 'static {
+    fn get_id(&self) -> TypeId;
+    fn get_name(&self) -> &str;
+    fn add_to(&self, commands: &mut Commands, entity: Entity);
+    fn remove_from(&self, commands: &mut Commands, entity: Entity);
+}
+
+#[derive(Resource)]
+pub struct Drivers{
+    // access must happen in this folder or children
+    pub (super) marker: Vec<Box<dyn DriverMarker>>,
+} 
+
+impl Default for Drivers {
+    fn default() -> Self {
+        Self {
+            marker: vec![Box::new(Pinned), Box::new(FPV)]
+        }
+    }
+}
+
+impl Drivers {
+    pub fn new(marker: Vec<Box<dyn DriverMarker>>) -> Self {
+        Self{marker}
+    }
+}
+
+#[derive(Default, Resource)]
+pub struct DriverIndex {
+    // access must happen in this folder or children
+    pub (super) index: usize,
+} 
+
+impl DriverIndex {
+    pub fn next(&mut self, len: usize) {
+        if self.index >= len - 1 {
+            self.index = 0;
+        } else {
+            self.index += 1;
+        }
+    }
+}
+
+#[derive(SystemParam)]
+pub struct DriverRigs<'w, 's> {
+    rigs: Query<'w, 's, &'static mut Rig>,
+}
+
+impl<'w, 's> DriverRigs<'w, 's> {
+    pub fn try_for_each_driver_mut<T>(&mut self, f: impl FnOnce(&mut T) + std::marker::Copy)
+    where
+        T: bevy_dolly::prelude::RigDriver<bevy_dolly::prelude::RightHanded>,
+    {
+        for mut rig in &mut self.rigs {
+            if let Some(camera_driver) = rig.try_driver_mut::<T>() {
+                f(camera_driver);
+            }
+        }
+    }
+}

From f212268c6d27ca1e06a197eef3e4b52372f8c152 Mon Sep 17 00:00:00 2001
From: Rushmore75 <oliveratkinsoneng@gmail.com>
Date: Thu, 15 Dec 2022 22:21:50 -0700
Subject: [PATCH 44/63] changes, based on conversation

---
 src/drive/mod.rs                              |   3 -
 src/drive/views.rs                            |  18 -
 .../drivers.rs => driver/driver_core.rs}      |   7 +-
 .../driver_resources.rs}                      |   3 +-
 src/driver/mod.rs                             |   2 +
 src/drivers/first_person_view.rs              |  12 +
 src/drivers/mod.rs                            |   2 +
 src/drivers/pinned.rs                         |  11 +
 src/lib.rs                                    |  16 +-
 src/lib2.rs                                   | 709 ------------------
 10 files changed, 42 insertions(+), 741 deletions(-)
 delete mode 100644 src/drive/mod.rs
 delete mode 100644 src/drive/views.rs
 rename src/{drive/drivers.rs => driver/driver_core.rs} (93%)
 rename src/{drive/driver_control.rs => driver/driver_resources.rs} (97%)
 create mode 100644 src/driver/mod.rs
 create mode 100644 src/drivers/first_person_view.rs
 create mode 100644 src/drivers/mod.rs
 create mode 100644 src/drivers/pinned.rs
 delete mode 100644 src/lib2.rs

diff --git a/src/drive/mod.rs b/src/drive/mod.rs
deleted file mode 100644
index 1063db7..0000000
--- a/src/drive/mod.rs
+++ /dev/null
@@ -1,3 +0,0 @@
-pub mod drivers;
-pub mod views;
-pub mod driver_control;
diff --git a/src/drive/views.rs b/src/drive/views.rs
deleted file mode 100644
index 642f582..0000000
--- a/src/drive/views.rs
+++ /dev/null
@@ -1,18 +0,0 @@
-use driver_marker_derive::DriverMarker;
-use super::drivers::DriverMarker;
-
-use std::any::TypeId;
-
-use bevy::{
-    prelude::Component,
-    ecs::{system::Commands, entity::Entity}
-};
-
-#[derive(DriverMarker, Component, Clone, Copy, Debug)]
-pub struct FPV;
-
-#[derive(DriverMarker, Component, Clone, Copy, Debug)]
-pub struct Pinned;
-//Substates:
-//Locked Rotation
-//Free
\ No newline at end of file
diff --git a/src/drive/drivers.rs b/src/driver/driver_core.rs
similarity index 93%
rename from src/drive/drivers.rs
rename to src/driver/driver_core.rs
index f00ce24..ec8e557 100644
--- a/src/drive/drivers.rs
+++ b/src/driver/driver_core.rs
@@ -1,3 +1,5 @@
+
+use crate::{FPV, Pinned};
 use std::any::TypeId;
 
 use bevy::{prelude::{
@@ -5,9 +7,6 @@ use bevy::{prelude::{
     Commands, Component, Query}, ecs::{component::TableStorage, system::SystemParam}};
 use bevy_dolly::prelude::Rig;
 
-use crate::Pinned;
-
-use super::views::FPV;
 
 pub trait DriverMarker: Component<Storage = TableStorage> + Sync + Send + 'static {
     fn get_id(&self) -> TypeId;
@@ -43,6 +42,8 @@ pub struct DriverIndex {
 } 
 
 impl DriverIndex {
+
+    /// Goes to next index, loops back to index `0` if already at the last index.
     pub fn next(&mut self, len: usize) {
         if self.index >= len - 1 {
             self.index = 0;
diff --git a/src/drive/driver_control.rs b/src/driver/driver_resources.rs
similarity index 97%
rename from src/drive/driver_control.rs
rename to src/driver/driver_resources.rs
index e330e8f..29adf98 100644
--- a/src/drive/driver_control.rs
+++ b/src/driver/driver_resources.rs
@@ -1,6 +1,7 @@
 use bevy::prelude::{ResMut, KeyCode, Input, Res, Camera, Query, Entity, Commands};
 
-use super::drivers::{DriverIndex, Drivers};
+use super::driver_core::{DriverIndex, Drivers};
+
 
 // TODO documentation
 
diff --git a/src/driver/mod.rs b/src/driver/mod.rs
new file mode 100644
index 0000000..4246b72
--- /dev/null
+++ b/src/driver/mod.rs
@@ -0,0 +1,2 @@
+pub mod driver_core;
+pub mod driver_resources;
diff --git a/src/drivers/first_person_view.rs b/src/drivers/first_person_view.rs
new file mode 100644
index 0000000..30ce8e2
--- /dev/null
+++ b/src/drivers/first_person_view.rs
@@ -0,0 +1,12 @@
+use bevy::prelude::Component;
+use driver_marker_derive::DriverMarker;
+use std::any::TypeId;
+use crate::Commands;
+use bevy::ecs::entity::Entity;
+
+use crate::driver::driver_core::DriverMarker;
+
+#[derive(DriverMarker, Component, Clone, Copy, Debug)]
+pub struct FPV;
+
+// TODO impl
\ No newline at end of file
diff --git a/src/drivers/mod.rs b/src/drivers/mod.rs
new file mode 100644
index 0000000..ed1831f
--- /dev/null
+++ b/src/drivers/mod.rs
@@ -0,0 +1,2 @@
+pub mod pinned;
+pub mod first_person_view;
\ No newline at end of file
diff --git a/src/drivers/pinned.rs b/src/drivers/pinned.rs
new file mode 100644
index 0000000..d34adc3
--- /dev/null
+++ b/src/drivers/pinned.rs
@@ -0,0 +1,11 @@
+use crate::{Commands, driver::driver_core::DriverMarker};
+use bevy::{prelude::Component, ecs::entity::Entity};
+use driver_marker_derive::DriverMarker;
+use std::any::TypeId;
+
+
+#[derive(DriverMarker, Component, Clone, Copy, Debug)]
+pub struct Pinned;
+//Substates:
+//Locked Rotation
+//Free
\ No newline at end of file
diff --git a/src/lib.rs b/src/lib.rs
index 8d98e82..970db7b 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,15 +1,17 @@
-mod drive;
-// mod lib2;
+mod driver;
+mod drivers;
 
+use crate::drivers::first_person_view::FPV;
+use crate::drivers::pinned::Pinned;
 use bevy::{
     input::Input,
-    prelude::{
-        App, Commands, Component, KeyCode, Plugin, Query, Res,
-        Transform, Vec3, With,
-    },
+    prelude::{App, Commands, Component, KeyCode, Plugin, Query, Res, Transform, Vec3, With,}
+};
+use driver::{
+    driver_resources::{change_driver_system, update_driver_system},
+    driver_core::{DriverIndex, Drivers, DriverRigs},
 };
 use bevy_dolly::{dolly::glam, prelude::*};
-use drive::{drivers::{DriverIndex, Drivers, DriverRigs}, views::{FPV, Pinned}, driver_control::{change_driver_system, update_driver_system}};
 pub use std::any::TypeId;
 
 // TODO documentation
diff --git a/src/lib2.rs b/src/lib2.rs
deleted file mode 100644
index aeb0dde..0000000
--- a/src/lib2.rs
+++ /dev/null
@@ -1,709 +0,0 @@
-use bevy::{
-    ecs::{
-        event::{Events, ManualEventReader},
-        schedule::SystemSet,
-    },
-    input::mouse::{MouseMotion, MouseWheel},
-    prelude::*,
-    render::{
-        camera::Camera,
-        camera::CameraProjection,
-        camera::{ActiveCamera, Camera3d, PerspectiveProjection},
-    },
-    window::Windows,
-};
-
-use strum::IntoEnumIterator;
-use strum_macros::EnumIter;
-
-#[macro_export]
-macro_rules! next_enum {
-    ($l:ident, $k:expr) => {
-        $l::iter()
-            .enumerate()
-            .nth(
-                $l::iter()
-                    .enumerate()
-                    .find(|a| a.1 == *$k.current())
-                    .map(|(i, _)| {
-                        if i + 1 > $l::iter().count() - 1 {
-                            0usize
-                        } else {
-                            i + 1
-                        }
-                    })
-                    .unwrap(),
-            )
-            .unwrap()
-            .1
-    };
-}
-
-#[derive(Component)]
-pub struct PlayerMove;
-#[derive(Clone, Eq, PartialEq, Debug, Hash)]
-enum PluginState {
-    Enabled,
-    //Disabled,
-}
-
-#[derive(Clone, Eq, PartialEq, Debug, Hash, EnumIter)]
-enum ScrollType {
-    MovementSpeed,
-    Zoom,
-    Sensitivity,
-    Lerp,
-    CamFwd,
-}
-#[derive(Clone, Eq, PartialEq, Debug, Hash, EnumIter)]
-pub enum CameraState {
-    //Look at player and other targets if set
-    LookAt,
-    //Follow the player only
-    FollowStatic,
-    //Camera is moved above and pointed down, rotation bound to one axis
-    TopDown,
-    TopDownDirection,
-    //Follows behind the player a certain distance
-    FollowBehind,
-    //Camera at same position as player, enables to use the mouse to look (WIP)
-    Fps,
-    //Use the mouse to look and move the camera freely
-    Free,
-}
-
-pub struct PlayerKeyMap {
-    pub forward: &'static [KeyCode],
-    pub backward: &'static [KeyCode],
-    pub left: &'static [KeyCode],
-    pub right: &'static [KeyCode],
-    pub up: &'static [KeyCode],
-    pub down: &'static [KeyCode],
-    pub rot_left: &'static [KeyCode],
-    pub rot_right: &'static [KeyCode],
-}
-
-pub struct PlayerSettings {
-    pub player_asset: &'static str,
-    pub speed: f32,
-    pub map: PlayerKeyMap,
-    pub pos: Vec3,
-    pub cam_fwd: bool,
-}
-
-impl Default for PlayerKeyMap {
-    fn default() -> Self {
-        Self {
-            forward: &[KeyCode::Up],
-            backward: &[KeyCode::Down],
-            left: &[KeyCode::Comma],
-            right: &[KeyCode::Period],
-            up: &[KeyCode::RShift],
-            down: &[KeyCode::Minus],
-            rot_left: &[KeyCode::Left],
-            rot_right: &[KeyCode::Right],
-        }
-    }
-}
-
-impl Default for PlayerSettings {
-    fn default() -> Self {
-        Self {
-            player_asset: "",
-            speed: 12.0,
-            map: PlayerKeyMap::default(),
-            pos: Default::default(),
-            cam_fwd: false,
-        }
-    }
-}
-
-#[derive(Debug, Hash, PartialEq, Eq, Clone, SystemLabel)]
-struct MovementUpdate;
-
-pub struct ConfigCam;
-impl Plugin for ConfigCam {
-    fn build(&self, app: &mut App) {
-        app.init_resource::<CamLogic>()
-            .add_plugin(NoCameraPlayerPlugin)
-            .init_resource::<PlayerSettings>()
-            .add_state(PluginState::Enabled)
-            .add_state(CameraState::FollowBehind)
-            .add_state(ScrollType::MovementSpeed)
-            .add_system(toggle_camera_parent.after(MovementUpdate))
-            .add_system(switch_scroll_type.after(MovementUpdate))
-            .add_system(scroll.after(MovementUpdate))
-            .add_system(cycle_cam_state.after(MovementUpdate))
-            .add_system_set(SystemSet::on_enter(PluginState::Enabled).with_system(setup))
-            .add_system_set(
-                SystemSet::on_update(PluginState::Enabled)
-                    .with_system(move_player.after(MovementUpdate))
-                    .with_system(move_camera.label(MovementUpdate)),
-            );
-    }
-}
-
-#[derive(Default)]
-pub struct Player {
-    entity: Option<Entity>,
-}
-
-#[derive(Default)]
-pub struct CamLogic {
-    player: Player,
-    camera_should_focus: Vec3,
-    camera_is_focus: Vec3,
-    pub target: Option<Entity>,
-}
-
-const RESET_FOCUS: [f32; 3] = [0., 0., 0.];
-
-#[allow(unused_must_use)]
-fn cycle_cam_state(
-    mut cam_state: ResMut<State<CameraState>>,
-    settings: Res<MovementSettings>,
-    keyboard_input: Res<Input<KeyCode>>,
-) {
-    if keyboard_input
-        .get_just_pressed()
-        .any(|m| settings.map.next_cam.iter().any(|nc| m == nc))
-    {
-        let result = next_enum!(CameraState, cam_state);
-
-        println!("Camera: {:?}", result);
-        cam_state.set(result);
-    }
-}
-
-fn setup(
-    mut commands: Commands,
-    asset_server: Res<AssetServer>,
-    mut _cl: ResMut<CamLogic>,
-    settings: Res<PlayerSettings>,
-    mut meshes: ResMut<Assets<Mesh>>,
-    mut materials: ResMut<Assets<StandardMaterial>>,
-) {
-    let mut a = if settings.player_asset.is_empty() {
-        commands.spawn_bundle(PbrBundle {
-            mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
-            material: materials.add(Color::rgb(0.7, 0.3, 0.3).into()),
-            transform: Transform::from_xyz(0.0, 0.5, 0.0),
-            ..Default::default()
-        })
-    } else {
-        commands.spawn_bundle((
-            Transform {
-                translation: settings.pos,
-                rotation: Quat::from_rotation_y(-std::f32::consts::FRAC_PI_2),
-                ..Default::default()
-            },
-            GlobalTransform::identity(),
-        ))
-    };
-
-    let b = if settings.player_asset.is_empty() {
-        a.with_children(|_| {})
-    } else {
-        a.with_children(|cell| {
-            cell.spawn_scene(asset_server.load(settings.player_asset));
-        })
-    };
-
-    _cl.player.entity = Some(
-        b.insert(PlayerMove)
-            .with_children(|parent| {
-                parent
-                    .spawn_bundle(PerspectiveCameraBundle {
-                        transform: Transform::from_xyz(-2.0, 5.0, 5.0)
-                            .looking_at(Vec3::ZERO, Vec3::Y),
-                        ..Default::default()
-                    })
-                    .insert(PlayerCam);
-            })
-            .id(),
-    );
-
-    // camera
-    commands
-        .spawn_bundle(PerspectiveCameraBundle {
-            camera: Camera {
-                ..Default::default()
-            },
-            transform: Transform::from_xyz(-2.0, 5.0, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
-            ..Default::default()
-        })
-        .insert(FlyCam);
-}
-
-// control the cam logic character
-fn move_player(
-    keys: Res<Input<KeyCode>>,
-    time: Res<Time>,
-    settings: Res<PlayerSettings>,
-    mut transforms: Query<(&PlayerMove, &mut Transform)>,
-) {
-    for (_player, mut transform) in transforms.iter_mut() {
-        let (_, mut rotation) = transform.rotation.to_axis_angle();
-        let mut velocity = Vec3::ZERO;
-        let local_z = transform.local_z();
-        //Forward should be togglable either xyz or cam direction xyz
-        let forward = if settings.cam_fwd {
-            Vec3::new(local_z.x, 0., local_z.z)
-        } else {
-            -Vec3::new(local_z.x, 0., local_z.z)
-        };
-
-        let right = Vec3::new(local_z.z, 0., -local_z.x);
-
-        for key in keys.get_pressed() {
-            if validate_key(settings.map.forward, key) {
-                velocity += forward
-            }
-            if validate_key(settings.map.backward, key) {
-                velocity -= forward
-            }
-            if validate_key(settings.map.left, key) {
-                velocity -= right
-            }
-            if validate_key(settings.map.right, key) {
-                velocity += right
-            }
-            if validate_key(settings.map.up, key) {
-                velocity += Vec3::Y
-            }
-            if validate_key(settings.map.down, key) {
-                velocity -= Vec3::Y
-            }
-            if validate_key(settings.map.rot_left, key) {
-                //Wrapping around
-                if rotation > std::f32::consts::FRAC_PI_2 * 4.0 - 0.05 {
-                    rotation = 0.0;
-                }
-                rotation += 0.1
-            }
-            if validate_key(settings.map.rot_right, key) {
-                //Wrapping around
-                if rotation < 0.05 {
-                    rotation = std::f32::consts::FRAC_PI_2 * 4.0;
-                }
-                rotation -= 0.1
-            }
-        }
-
-        velocity = velocity.normalize();
-
-        transform.rotation = Quat::from_rotation_y(rotation);
-
-        if !velocity.is_nan() {
-            transform.translation += velocity * time.delta_seconds() * 4.0;
-        }
-    }
-}
-
-// change the focus of the camera
-#[allow(clippy::type_complexity)]
-fn move_camera(
-    time: Res<Time>,
-    state: Res<State<CameraState>>,
-    mut cl: ResMut<CamLogic>,
-    mut settings: ResMut<MovementSettings>,
-    mut transforms: ParamSet<(Query<&mut Transform, With<Camera3d>>, Query<&Transform>)>,
-) {
-    let mut delta_trans = Transform::identity();
-    settings.disable_look = true;
-    settings.disable_move = false;
-    settings.locked_to_player = false;
-
-    match *state.current() {
-        CameraState::Free => {
-            settings.disable_look = false;
-            return;
-        }
-        CameraState::LookAt => {
-            // if there is both a player and a bonus, target the mid-point of them
-            if let (Some(player_entity), Some(bonus_entity)) = (cl.player.entity, cl.target) {
-                let transform_query = transforms.p1();
-                if let (Ok(player_transform), Ok(bonus_transform)) = (
-                    transform_query.get(player_entity),
-                    transform_query.get(bonus_entity),
-                ) {
-                    cl.camera_should_focus = player_transform
-                        .translation
-                        .lerp(bonus_transform.translation, settings.lerp);
-                }
-            // otherwise, if there is only a player, target the player
-            } else if let Some(player_entity) = cl.player.entity {
-                if let Ok(player_transform) = transforms.p1().get(player_entity) {
-                    cl.camera_should_focus = player_transform.translation;
-                }
-            // otherwise, target the middle
-            } else {
-                cl.camera_should_focus = Vec3::from(RESET_FOCUS);
-            }
-        }
-        _ => {
-            if let Some(player_entity) = cl.player.entity {
-                if let Ok(player_transform) = transforms.p1().get(player_entity) {
-                    match *state.current() {
-                        CameraState::Fps => {
-                            delta_trans.translation = player_transform.translation;
-                            settings.disable_move = true;
-
-                            settings.disable_look = false;
-                            delta_trans.rotation = player_transform.rotation;
-                            delta_trans.translation += Vec3::new(/*-4.*/ 0., 1., 0.);
-                        }
-                        CameraState::TopDown => {
-                            delta_trans.translation = player_transform.translation;
-                            settings.disable_move = true;
-
-                            delta_trans.translation +=
-                                Vec3::new(/*-4.*/ 0., settings.dist, 0.);
-                            delta_trans.rotation =
-                                Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2)
-                        }
-                        CameraState::TopDownDirection => {
-                            settings.disable_move = true;
-                            settings.locked_to_player = true;
-
-                            delta_trans.translation +=
-                                Vec3::new(/*-4.*/ 0., settings.dist, 0.);
-                            delta_trans.rotation =
-                                Quat::from_rotation_x(-std::f32::consts::FRAC_PI_2);
-                        }
-                        CameraState::FollowBehind => {
-                            settings.disable_move = true;
-
-                            settings.locked_to_player = true;
-
-                            delta_trans.translation += Vec3::new(/*-4.*/ 0., 1., 4.);
-                        }
-                        _ => {}
-                    }
-                    cl.camera_should_focus = player_transform.translation;
-                }
-            // otherwise, target the middle
-            } else {
-                cl.camera_should_focus = Vec3::from(RESET_FOCUS);
-            }
-        }
-    }
-
-    const SPEED: f32 = 2.0;
-
-    // calculate the camera motion based on the difference between where the camera is looking
-    // and where it should be looking; the greater the distance, the faster the motion;
-    // smooth out the camera movement using the frame time
-    let mut camera_motion = cl.camera_should_focus - cl.camera_is_focus;
-    if camera_motion.length() > 0.2 {
-        camera_motion *= SPEED * time.delta_seconds();
-        // set the new camera's actual focus
-        cl.camera_is_focus += camera_motion;
-    }
-    // look at that new camera's actual focus
-    for mut transform in transforms.p0().iter_mut() {
-        if delta_trans.translation != Vec3::ZERO {
-            *transform = delta_trans
-        } else {
-            *transform = transform.looking_at(cl.camera_is_focus, Vec3::Y)
-        }
-    }
-}
-
-#[allow(clippy::type_complexity)]
-fn toggle_camera_parent(
-    mut act_cams: ResMut<ActiveCamera<Camera3d>>,
-    mut settings: ResMut<MovementSettings>,
-    mut query: ParamSet<(Query<(&FlyCam, Entity)>, Query<(&PlayerCam, Entity)>)>,
-) {
-    if settings.locked_to_player && !settings.ltp {
-        let p1 = query.p1();
-        let (_, b) = p1.single();
-        act_cams.set(b);
-
-        settings.ltp = true;
-    } else if !settings.locked_to_player && settings.ltp {
-        let pr = query.p0();
-        let (_, b) = pr.single();
-        act_cams.set(b);
-        settings.ltp = false;
-    }
-}
-
-// Listens for Z key being pressed and toggles between the scroll-type states
-#[allow(unused_must_use)]
-fn switch_scroll_type(
-    mut scroll_type: ResMut<State<ScrollType>>,
-    keyboard_input: Res<Input<KeyCode>>,
-) {
-    if keyboard_input.just_pressed(KeyCode::E) {
-        let result = next_enum!(ScrollType, scroll_type);
-
-        println!("{:?}", result);
-        scroll_type.set(result);
-    }
-}
-
-// Depending on the state, the mouse-scroll changes either the movement speed or the field-of-view of the camera
-fn scroll(
-    mut settings: ResMut<MovementSettings>,
-    mut p_settings: ResMut<PlayerSettings>,
-    scroll_type: Res<State<ScrollType>>,
-    mut mouse_wheel_events: EventReader<MouseWheel>,
-    windows: Res<Windows>,
-    mut query: Query<(&FlyCam, &mut Camera, &mut PerspectiveProjection)>,
-) {
-    for event in mouse_wheel_events.iter() {
-        match *scroll_type.current() {
-            ScrollType::MovementSpeed => {
-                settings.speed = (settings.speed + event.y * 0.1).abs();
-                println!("Speed: {:?}", settings.speed);
-            }
-            ScrollType::Sensitivity => {
-                settings.sensitivity = (settings.sensitivity + event.y * 0.000001).abs();
-                println!("Sensitivity: {:?}", settings.sensitivity);
-            }
-            ScrollType::Zoom => {
-                for (_camera, mut camera, mut project) in query.iter_mut() {
-                    project.fov = (project.fov - event.y * 0.01).abs();
-                    let prim = windows.get_primary().unwrap();
-
-                    //Calculate projection with new fov
-                    project.update(prim.width(), prim.height());
-
-                    //Update camera with the new fov
-                    camera.projection_matrix = project.get_projection_matrix();
-                    camera.depth_calculation = project.depth_calculation();
-
-                    println!("FOV: {:?}", project.fov);
-                }
-            }
-            ScrollType::Lerp => {
-                settings.lerp = (settings.lerp + event.y * 0.01).abs();
-                println!("Lerp: {:?}", settings.lerp);
-            }
-            ScrollType::CamFwd => {
-                if event.y > 0.01 {
-                    p_settings.cam_fwd = !p_settings.cam_fwd;
-                }
-                println!("CamFwd: {:?}", p_settings.cam_fwd);
-            }
-        }
-    }
-}
-
-//bevy_flycam by sburris0 - https://github.com/sburris0/bevy_flycam
-
-/// Keeps track of mouse motion events, pitch, and yaw
-#[derive(Default)]
-struct InputState {
-    reader_motion: ManualEventReader<MouseMotion>,
-    pitch: f32,
-    yaw: f32,
-}
-
-pub struct CamKeyMap {
-    pub forward: &'static [KeyCode],
-    pub backward: &'static [KeyCode],
-    pub left: &'static [KeyCode],
-    pub right: &'static [KeyCode],
-    pub up: &'static [KeyCode],
-    pub down: &'static [KeyCode],
-    pub next_cam: &'static [KeyCode],
-    pub next_setting: &'static [KeyCode],
-}
-
-impl Default for CamKeyMap {
-    fn default() -> Self {
-        Self {
-            forward: &[KeyCode::W],
-            backward: &[KeyCode::S],
-            left: &[KeyCode::A],
-            right: &[KeyCode::D],
-            up: &[KeyCode::Space],
-            down: &[KeyCode::LShift],
-            next_cam: &[KeyCode::C],
-            next_setting: &[KeyCode::E],
-        }
-    }
-}
-
-/// Mouse sensitivity and movement speed
-pub struct MovementSettings {
-    pub sensitivity: f32,
-    pub speed: f32,
-    pub dist: f32,
-    pub map: CamKeyMap,
-    //pub force_cam: &'static[CameraState],
-    pub disable_move: bool,
-    pub disable_look: bool,
-    pub locked_to_player: bool,
-    pub lerp: f32,
-
-    pub ltp: bool,
-}
-
-impl Default for MovementSettings {
-    fn default() -> Self {
-        Self {
-            sensitivity: 0.00012,
-            speed: 12.,
-            dist: 10.,
-            map: CamKeyMap::default(),
-            disable_move: false,
-            disable_look: false,
-            locked_to_player: false,
-            lerp: 0.5,
-            ltp: false,
-        }
-    }
-}
-
-/// Used in queries when you want flycams and not other cameras
-
-#[derive(Component)]
-struct FlyCam;
-#[derive(Component)]
-struct PlayerCam;
-
-/// Grabs/ungrabs mouse cursor
-fn toggle_grab_cursor(window: &mut Window) {
-    window.set_cursor_lock_mode(!window.cursor_locked());
-    window.set_cursor_visibility(!window.cursor_visible());
-}
-
-/// Grabs the cursor when game first starts
-fn initial_grab_cursor(mut windows: ResMut<Windows>) {
-    toggle_grab_cursor(windows.get_primary_mut().unwrap());
-}
-
-/// Spawns the `Camera3dBundle` to be controlled
-fn setup_player(mut commands: Commands) {
-    commands
-        .spawn_bundle(PerspectiveCameraBundle {
-            transform: Transform::from_xyz(-2.0, 5.0, 5.0).looking_at(Vec3::ZERO, Vec3::Y),
-            ..Default::default()
-        })
-        .insert(FlyCam);
-}
-
-/// Handles keyboard input and movement
-fn player_move(
-    keys: Res<Input<KeyCode>>,
-    time: Res<Time>,
-    windows: Res<Windows>,
-    settings: Res<MovementSettings>,
-    mut query: Query<(&FlyCam, &mut Transform)>,
-) {
-    if settings.disable_move {
-        return;
-    }
-    let window = windows.get_primary().unwrap();
-    for (_camera, mut transform) in query.iter_mut() {
-        let mut velocity = Vec3::ZERO;
-        let local_z = transform.local_z();
-        let forward = -Vec3::new(local_z.x, 0., local_z.z);
-        let right = Vec3::new(local_z.z, 0., -local_z.x);
-
-        for key in keys.get_pressed() {
-            if window.cursor_locked() {
-                if validate_key(settings.map.forward, key) {
-                    velocity += forward
-                }
-                if validate_key(settings.map.backward, key) {
-                    velocity -= forward
-                }
-                if validate_key(settings.map.left, key) {
-                    velocity -= right
-                }
-                if validate_key(settings.map.right, key) {
-                    velocity += right
-                }
-                if validate_key(settings.map.up, key) {
-                    velocity += Vec3::Y
-                }
-                if validate_key(settings.map.down, key) {
-                    velocity -= Vec3::Y
-                }
-            }
-        }
-
-        velocity = velocity.normalize();
-
-        if !velocity.is_nan() {
-            transform.translation += velocity * time.delta_seconds() * settings.speed
-        }
-    }
-}
-
-pub fn validate_key<T>(codes: &'static [T], key: &T) -> bool
-where
-    T: PartialEq<T>,
-{
-    codes.iter().any(|m| m == key)
-}
-
-/// Handles looking around if cursor is locked
-fn player_look(
-    settings: Res<MovementSettings>,
-    windows: Res<Windows>,
-    mut state: ResMut<InputState>,
-    motion: Res<Events<MouseMotion>>,
-    mut query: Query<(&FlyCam, &mut Transform)>,
-) {
-    if settings.disable_look {
-        return;
-    }
-    let window = windows.get_primary().unwrap();
-    let mut state_delta = state.as_mut();
-    for (_camera, mut transform) in query.iter_mut() {
-        for ev in state_delta.reader_motion.iter(&motion) {
-            if window.cursor_locked() {
-                state_delta.pitch -=
-                    (settings.sensitivity * ev.delta.y * window.height()).to_radians();
-                state_delta.yaw -=
-                    (settings.sensitivity * ev.delta.x * window.width()).to_radians();
-            }
-
-            state_delta.pitch = state_delta.pitch.clamp(-1.54, 1.54);
-
-            // Order is important to prevent unintended roll
-            transform.rotation = Quat::from_axis_angle(Vec3::Y, state_delta.yaw)
-                * Quat::from_axis_angle(Vec3::X, state_delta.pitch);
-        }
-    }
-}
-
-fn cursor_grab(keys: Res<Input<KeyCode>>, mut windows: ResMut<Windows>) {
-    let window = windows.get_primary_mut().unwrap();
-    if keys.just_pressed(KeyCode::Escape) {
-        toggle_grab_cursor(window);
-    }
-}
-
-/// Contains everything needed to add first-person fly camera behavior to your game
-pub struct PlayerPlugin;
-impl Plugin for PlayerPlugin {
-    fn build(&self, app: &mut App) {
-        app.init_resource::<InputState>()
-            .init_resource::<MovementSettings>()
-            .add_startup_system(setup_player)
-            .add_startup_system(initial_grab_cursor)
-            .add_system(player_move.before(MovementUpdate))
-            .add_system(player_look.after(MovementUpdate))
-            .add_system(cursor_grab.after(MovementUpdate));
-    }
-}
-
-/// Same as `PlayerPlugin` but does not spawn a camera
-pub struct NoCameraPlayerPlugin;
-impl Plugin for NoCameraPlayerPlugin {
-    fn build(&self, app: &mut App) {
-        app.init_resource::<InputState>()
-            .init_resource::<MovementSettings>()
-            .add_startup_system(initial_grab_cursor)
-            .add_system(player_move.before(MovementUpdate))
-            .add_system(player_look.after(MovementUpdate))
-            .add_system(cursor_grab.after(MovementUpdate));
-    }
-}

From ec68cd0e1cfd8a9791b7aa90e6a93e5159a6dd1b Mon Sep 17 00:00:00 2001
From: Rushmore75 <oliveratkinsoneng@gmail.com>
Date: Sun, 18 Dec 2022 16:03:23 -0700
Subject: [PATCH 45/63] formatting

---
 examples/multiple_targets.rs     | 16 ++++++++++------
 src/driver/driver_core.rs        | 26 ++++++++++++--------------
 src/driver/driver_resources.rs   |  4 +---
 src/drivers/first_person_view.rs |  6 +++---
 src/drivers/mod.rs               |  2 +-
 src/drivers/pinned.rs            |  7 +++----
 src/lib.rs                       |  6 +++---
 7 files changed, 33 insertions(+), 34 deletions(-)

diff --git a/examples/multiple_targets.rs b/examples/multiple_targets.rs
index 32ce5a1..700f576 100644
--- a/examples/multiple_targets.rs
+++ b/examples/multiple_targets.rs
@@ -39,22 +39,26 @@ fn setup(
     });
 
     //Target 1
-    commands
-        .spawn((PbrBundle {
+    commands.spawn((
+        PbrBundle {
             mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
             material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
             transform: Transform::from_xyz(-5.0, 0.5, 0.0),
             ..Default::default()
-        }, T1));
+        },
+        T1,
+    ));
 
     //Target 2
-    commands
-        .spawn((PbrBundle {
+    commands.spawn((
+        PbrBundle {
             mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
             material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
             transform: Transform::from_xyz(5.0, 0.5, 0.0),
             ..Default::default()
-        }, T2));
+        },
+        T2,
+    ));
 
     // light
     commands.spawn(PointLightBundle {
diff --git a/src/driver/driver_core.rs b/src/driver/driver_core.rs
index ec8e557..18a716d 100644
--- a/src/driver/driver_core.rs
+++ b/src/driver/driver_core.rs
@@ -1,13 +1,12 @@
-
-use crate::{FPV, Pinned};
+use crate::{Pinned, FPV};
 use std::any::TypeId;
 
-use bevy::{prelude::{
-    Resource, Entity,
-    Commands, Component, Query}, ecs::{component::TableStorage, system::SystemParam}};
+use bevy::{
+    ecs::{component::TableStorage, system::SystemParam},
+    prelude::{Commands, Component, Entity, Query, Resource},
+};
 use bevy_dolly::prelude::Rig;
 
-
 pub trait DriverMarker: Component<Storage = TableStorage> + Sync + Send + 'static {
     fn get_id(&self) -> TypeId;
     fn get_name(&self) -> &str;
@@ -16,33 +15,32 @@ pub trait DriverMarker: Component<Storage = TableStorage> + Sync + Send + 'stati
 }
 
 #[derive(Resource)]
-pub struct Drivers{
+pub struct Drivers {
     // access must happen in this folder or children
-    pub (super) marker: Vec<Box<dyn DriverMarker>>,
-} 
+    pub(super) marker: Vec<Box<dyn DriverMarker>>,
+}
 
 impl Default for Drivers {
     fn default() -> Self {
         Self {
-            marker: vec![Box::new(Pinned), Box::new(FPV)]
+            marker: vec![Box::new(Pinned), Box::new(FPV)],
         }
     }
 }
 
 impl Drivers {
     pub fn new(marker: Vec<Box<dyn DriverMarker>>) -> Self {
-        Self{marker}
+        Self { marker }
     }
 }
 
 #[derive(Default, Resource)]
 pub struct DriverIndex {
     // access must happen in this folder or children
-    pub (super) index: usize,
-} 
+    pub(super) index: usize,
+}
 
 impl DriverIndex {
-
     /// Goes to next index, loops back to index `0` if already at the last index.
     pub fn next(&mut self, len: usize) {
         if self.index >= len - 1 {
diff --git a/src/driver/driver_resources.rs b/src/driver/driver_resources.rs
index 29adf98..616f486 100644
--- a/src/driver/driver_resources.rs
+++ b/src/driver/driver_resources.rs
@@ -1,11 +1,9 @@
-use bevy::prelude::{ResMut, KeyCode, Input, Res, Camera, Query, Entity, Commands};
+use bevy::prelude::{Camera, Commands, Entity, Input, KeyCode, Query, Res, ResMut};
 
 use super::driver_core::{DriverIndex, Drivers};
 
-
 // TODO documentation
 
-
 //Use collection with and keeping an index component or the like
 pub fn change_driver_system(
     mut index: ResMut<DriverIndex>,
diff --git a/src/drivers/first_person_view.rs b/src/drivers/first_person_view.rs
index 30ce8e2..29959dc 100644
--- a/src/drivers/first_person_view.rs
+++ b/src/drivers/first_person_view.rs
@@ -1,12 +1,12 @@
+use crate::Commands;
+use bevy::ecs::entity::Entity;
 use bevy::prelude::Component;
 use driver_marker_derive::DriverMarker;
 use std::any::TypeId;
-use crate::Commands;
-use bevy::ecs::entity::Entity;
 
 use crate::driver::driver_core::DriverMarker;
 
 #[derive(DriverMarker, Component, Clone, Copy, Debug)]
 pub struct FPV;
 
-// TODO impl
\ No newline at end of file
+// TODO impl
diff --git a/src/drivers/mod.rs b/src/drivers/mod.rs
index ed1831f..475e252 100644
--- a/src/drivers/mod.rs
+++ b/src/drivers/mod.rs
@@ -1,2 +1,2 @@
+pub mod first_person_view;
 pub mod pinned;
-pub mod first_person_view;
\ No newline at end of file
diff --git a/src/drivers/pinned.rs b/src/drivers/pinned.rs
index d34adc3..efe9bcd 100644
--- a/src/drivers/pinned.rs
+++ b/src/drivers/pinned.rs
@@ -1,11 +1,10 @@
-use crate::{Commands, driver::driver_core::DriverMarker};
-use bevy::{prelude::Component, ecs::entity::Entity};
+use crate::{driver::driver_core::DriverMarker, Commands};
+use bevy::{ecs::entity::Entity, prelude::Component};
 use driver_marker_derive::DriverMarker;
 use std::any::TypeId;
 
-
 #[derive(DriverMarker, Component, Clone, Copy, Debug)]
 pub struct Pinned;
 //Substates:
 //Locked Rotation
-//Free
\ No newline at end of file
+//Free
diff --git a/src/lib.rs b/src/lib.rs
index 970db7b..89cd77a 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -5,13 +5,13 @@ use crate::drivers::first_person_view::FPV;
 use crate::drivers::pinned::Pinned;
 use bevy::{
     input::Input,
-    prelude::{App, Commands, Component, KeyCode, Plugin, Query, Res, Transform, Vec3, With,}
+    prelude::{App, Commands, Component, KeyCode, Plugin, Query, Res, Transform, Vec3, With},
 };
+use bevy_dolly::{dolly::glam, prelude::*};
 use driver::{
+    driver_core::{DriverIndex, DriverRigs, Drivers},
     driver_resources::{change_driver_system, update_driver_system},
-    driver_core::{DriverIndex, Drivers, DriverRigs},
 };
-use bevy_dolly::{dolly::glam, prelude::*};
 pub use std::any::TypeId;
 
 // TODO documentation

From 5eb94518813e058d42914446d3e1cef109cff621 Mon Sep 17 00:00:00 2001
From: Oliver A <76796612+Rushmore75@users.noreply.github.com>
Date: Sun, 18 Dec 2022 21:53:30 -0700
Subject: [PATCH 46/63] FPV -> Fpv

Co-authored-by: Mikkel Rasmussen <theluja@gmail.com>
---
 src/drivers/first_person_view.rs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/drivers/first_person_view.rs b/src/drivers/first_person_view.rs
index 29959dc..40dce78 100644
--- a/src/drivers/first_person_view.rs
+++ b/src/drivers/first_person_view.rs
@@ -7,6 +7,6 @@ use std::any::TypeId;
 use crate::driver::driver_core::DriverMarker;
 
 #[derive(DriverMarker, Component, Clone, Copy, Debug)]
-pub struct FPV;
+pub struct Fpv;
 
 // TODO impl

From c7a2857a2955d5cf3dd03cdef69e74bd5e061fcb Mon Sep 17 00:00:00 2001
From: Oliver A <76796612+Rushmore75@users.noreply.github.com>
Date: Sun, 18 Dec 2022 21:53:43 -0700
Subject: [PATCH 47/63] Update src/lib.rs

Co-authored-by: Mikkel Rasmussen <theluja@gmail.com>
---
 src/lib.rs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib.rs b/src/lib.rs
index 89cd77a..84a5021 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -85,5 +85,5 @@ fn default_setup(mut commands: Commands) {
     ));
 
     //Missing FPV
-    commands.spawn(FPV);
+    commands.spawn(Fpv);
 }

From 2cb647a437e7d2a76e383b23694bff3323f92311 Mon Sep 17 00:00:00 2001
From: Oliver A <76796612+Rushmore75@users.noreply.github.com>
Date: Sun, 18 Dec 2022 21:54:00 -0700
Subject: [PATCH 48/63] Update src/driver/driver_core.rs

Co-authored-by: Mikkel Rasmussen <theluja@gmail.com>
---
 src/driver/driver_core.rs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/driver/driver_core.rs b/src/driver/driver_core.rs
index 18a716d..aedb578 100644
--- a/src/driver/driver_core.rs
+++ b/src/driver/driver_core.rs
@@ -1,4 +1,4 @@
-use crate::{Pinned, FPV};
+use crate::{Pinned, Fpv};
 use std::any::TypeId;
 
 use bevy::{

From a2e66350b1d5ec684b1bf675bece0a68c7214e60 Mon Sep 17 00:00:00 2001
From: Oliver A <76796612+Rushmore75@users.noreply.github.com>
Date: Sun, 18 Dec 2022 21:54:10 -0700
Subject: [PATCH 49/63] Update src/driver/driver_core.rs

Co-authored-by: Mikkel Rasmussen <theluja@gmail.com>
---
 src/driver/driver_core.rs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/driver/driver_core.rs b/src/driver/driver_core.rs
index aedb578..856c8aa 100644
--- a/src/driver/driver_core.rs
+++ b/src/driver/driver_core.rs
@@ -23,7 +23,7 @@ pub struct Drivers {
 impl Default for Drivers {
     fn default() -> Self {
         Self {
-            marker: vec![Box::new(Pinned), Box::new(FPV)],
+            marker: vec![Box::new(Pinned), Box::new(Fpv)],
         }
     }
 }

From 40725c6aeae6eb4d8d2bbc787a192b83747244c8 Mon Sep 17 00:00:00 2001
From: Oliver A <76796612+Rushmore75@users.noreply.github.com>
Date: Sun, 18 Dec 2022 21:54:34 -0700
Subject: [PATCH 50/63] make `driver` & `drivers` pub

Co-authored-by: Mikkel Rasmussen <theluja@gmail.com>
---
 src/lib.rs | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/lib.rs b/src/lib.rs
index 84a5021..592ee24 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,5 +1,5 @@
-mod driver;
-mod drivers;
+pub mod driver;
+pub mod drivers;
 
 use crate::drivers::first_person_view::FPV;
 use crate::drivers::pinned::Pinned;

From 46413a4aeeaa964579bb0f92cfcb61cbd3f78d37 Mon Sep 17 00:00:00 2001
From: Oliver A <76796612+Rushmore75@users.noreply.github.com>
Date: Mon, 19 Dec 2022 08:41:04 -0700
Subject: [PATCH 51/63] Update src/lib.rs

Co-authored-by: Mikkel Rasmussen <theluja@gmail.com>
---
 src/lib.rs | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/lib.rs b/src/lib.rs
index 592ee24..f0d995f 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,7 +1,7 @@
 pub mod driver;
 pub mod drivers;
 
-use crate::drivers::first_person_view::FPV;
+use crate::drivers::first_person_view::Fpv;
 use crate::drivers::pinned::Pinned;
 use bevy::{
     input::Input,

From bd43cf78dab299dadd5f8a7492042af07dc25d6a Mon Sep 17 00:00:00 2001
From: Rushmore75 <oliveratkinsoneng@gmail.com>
Date: Tue, 20 Dec 2022 15:28:09 -0700
Subject: [PATCH 52/63] fixed renaming issue

---
 src/driver/driver_core.rs | 2 +-
 src/lib.rs                | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/src/driver/driver_core.rs b/src/driver/driver_core.rs
index 856c8aa..3350404 100644
--- a/src/driver/driver_core.rs
+++ b/src/driver/driver_core.rs
@@ -1,4 +1,4 @@
-use crate::{Pinned, Fpv};
+use crate::{Fpv, Pinned};
 use std::any::TypeId;
 
 use bevy::{
diff --git a/src/lib.rs b/src/lib.rs
index f0d995f..dffb6c3 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -22,7 +22,7 @@ impl Plugin for ConfigCam {
         app.init_resource::<DriverIndex>()
             .init_resource::<Drivers>()
             .add_rig_component(Pinned)
-            .add_rig_component(FPV)
+            .add_rig_component(Fpv)
             .add_startup_system(default_setup)
             .add_system(change_driver_system)
             .add_system(update_driver_system)

From d7a0beb8697056c9be6c887e9a36e178883b7a38 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Mon, 6 Mar 2023 00:26:23 +0100
Subject: [PATCH 53/63] Updated ergonomics for using bevy_dolly

---
 Cargo.toml                                    |   4 +-
 .../Cargo.toml                                |   2 +-
 .../src/driver_marker.rs                      |   3 +-
 config_cam_derive/src/lib.rs                  |  10 ++
 examples/minimal.rs                           |  16 +-
 examples/multiple_targets.rs                  |  28 +--
 examples/simple.rs                            |  76 +++++---
 examples/yp.rs                                |  81 +++++++++
 src/driver/driver_core.rs                     |  57 ++++--
 src/driver/driver_resources.rs                |  23 +--
 src/drivers/first_person_view.rs              |  12 --
 src/drivers/fpv.rs                            | 114 ++++++++++++
 src/drivers/mod.rs                            |   4 +-
 src/drivers/orbit.rs                          | 123 +++++++++++++
 src/drivers/pinned.rs                         |  10 --
 src/lib.rs                                    | 164 ++++++++++++------
 16 files changed, 566 insertions(+), 161 deletions(-)
 rename {driver_marker_derive => config_cam_derive}/Cargo.toml (90%)
 rename driver_marker_derive/src/lib.rs => config_cam_derive/src/driver_marker.rs (94%)
 create mode 100644 config_cam_derive/src/lib.rs
 create mode 100644 examples/yp.rs
 delete mode 100644 src/drivers/first_person_view.rs
 create mode 100644 src/drivers/fpv.rs
 create mode 100644 src/drivers/orbit.rs
 delete mode 100644 src/drivers/pinned.rs

diff --git a/Cargo.toml b/Cargo.toml
index 67eae97..028d5e9 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -25,8 +25,8 @@ name = "bevy_config_cam"
 rand = "0.8"
 strum = "0.24"
 strum_macros = "0.24"
-bevy_dolly = { git = "https://github.com/BlackPhlox/bevy_dolly"}
-driver_marker_derive = { path = "driver_marker_derive" }
+bevy_dolly = { path = "../bevy_dolly" }#{ git = "https://github.com/BlackPhlox/bevy_dolly", branch = "map_fork" }
+config_cam_derive = { path = "config_cam_derive" }
 
 [dependencies.bevy]
 version = "0.9"
diff --git a/driver_marker_derive/Cargo.toml b/config_cam_derive/Cargo.toml
similarity index 90%
rename from driver_marker_derive/Cargo.toml
rename to config_cam_derive/Cargo.toml
index c3d72ed..87adaa2 100644
--- a/driver_marker_derive/Cargo.toml
+++ b/config_cam_derive/Cargo.toml
@@ -1,5 +1,5 @@
 [package]
-name = "driver_marker_derive"
+name = "config_cam_derive"
 version = "0.1.0"
 edition = "2021"
 
diff --git a/driver_marker_derive/src/lib.rs b/config_cam_derive/src/driver_marker.rs
similarity index 94%
rename from driver_marker_derive/src/lib.rs
rename to config_cam_derive/src/driver_marker.rs
index aa7f32a..6caef6b 100644
--- a/driver_marker_derive/src/lib.rs
+++ b/config_cam_derive/src/driver_marker.rs
@@ -1,10 +1,9 @@
-extern crate proc_macro;
+
 
 use proc_macro::TokenStream;
 use quote::quote;
 use syn;
 
-#[proc_macro_derive(DriverMarker)]
 pub fn driver_marker_derive(input: TokenStream) -> TokenStream {
     // Construct a representation of Rust code as a syntax tree
     // that we can manipulate
diff --git a/config_cam_derive/src/lib.rs b/config_cam_derive/src/lib.rs
new file mode 100644
index 0000000..ea53f9a
--- /dev/null
+++ b/config_cam_derive/src/lib.rs
@@ -0,0 +1,10 @@
+use proc_macro::TokenStream;
+
+extern crate proc_macro;
+
+mod driver_marker;
+
+#[proc_macro_derive(DriverMarker)]
+pub fn driver_marker_derive(input: TokenStream) -> TokenStream {
+    driver_marker::driver_marker_derive(input)
+}
\ No newline at end of file
diff --git a/examples/minimal.rs b/examples/minimal.rs
index a635639..43491e2 100644
--- a/examples/minimal.rs
+++ b/examples/minimal.rs
@@ -1,4 +1,4 @@
-use bevy::{prelude::*, render::camera::ScalingMode};
+use bevy::prelude::*;
 use bevy_config_cam::*;
 
 fn main() {
@@ -35,18 +35,4 @@ fn setup(
         transform: Transform::from_xyz(4.0, 8.0, 4.0),
         ..Default::default()
     });
-
-    commands.spawn(Camera3dBundle {
-        camera: Camera {
-            is_active: true,
-            ..Default::default()
-        },
-        projection: OrthographicProjection {
-            scale: 3.0,
-            scaling_mode: ScalingMode::FixedVertical(1.0),
-            ..default()
-        }
-        .into(),
-        ..Default::default()
-    });
 }
diff --git a/examples/multiple_targets.rs b/examples/multiple_targets.rs
index 700f576..c5a7d87 100644
--- a/examples/multiple_targets.rs
+++ b/examples/multiple_targets.rs
@@ -1,29 +1,35 @@
 use bevy::prelude::*;
-use bevy_config_cam::*;
+use bevy_config_cam::{driver::driver_core::DriverMarker, *};
+use bevy_dolly::prelude::*;
+use config_cam_derive::DriverMarker;
+
 fn main() {
     App::new()
         .insert_resource(Msaa { samples: 4 })
         .add_plugins(DefaultPlugins)
         .add_plugin(ConfigCam)
-        .insert_resource(MovementSettings {
+        .add_rig_component(T1)
+        .add_dolly_component(MainCamera)
+        /*.insert_resource(MovementSettings {
             sensitivity: 0.00015, // default: 0.00012
             speed: 12.0,          // default: 12.0
             ..Default::default()
-        })
-        .insert_resource(PlayerSettings {
+        })*/
+        /*.insert_resource(PlayerSettings {
             pos: Vec3::new(2., 0., 0.),
             player_asset: "models/craft_speederA.glb#Scene0",
             ..Default::default()
-        })
+        })*/
         .add_startup_system(setup)
-        .add_system(set_closest_target)
+        //.add_system(set_closest_target)
         .run();
 }
 
 #[derive(Component)]
+struct MainCamera;
+
+#[derive(DriverMarker, Component, Clone, Copy, Debug)]
 struct T1;
-#[derive(Component)]
-struct T2;
 
 /// set up a simple 3D scene
 fn setup(
@@ -46,7 +52,7 @@ fn setup(
             transform: Transform::from_xyz(-5.0, 0.5, 0.0),
             ..Default::default()
         },
-        T1,
+        Target,
     ));
 
     //Target 2
@@ -57,7 +63,7 @@ fn setup(
             transform: Transform::from_xyz(5.0, 0.5, 0.0),
             ..Default::default()
         },
-        T2,
+        Target,
     ));
 
     // light
@@ -67,6 +73,7 @@ fn setup(
     });
 }
 
+/*
 fn set_closest_target(
     mut cl: ResMut<CamLogic>,
     mut transforms: Query<(&PlayerMove, &Transform)>,
@@ -97,3 +104,4 @@ fn set_closest_target(
         cl.target = None;
     }
 }
+*/
diff --git a/examples/simple.rs b/examples/simple.rs
index b1c90bd..95a9123 100644
--- a/examples/simple.rs
+++ b/examples/simple.rs
@@ -3,14 +3,11 @@ use std::f32::consts::PI;
 use bevy::{
     pbr::wireframe::{Wireframe, WireframePlugin},
     prelude::*,
-    render::{
-        camera::ScalingMode,
-        settings::{WgpuFeatures, WgpuSettings},
-    },
 };
 use bevy_config_cam::*;
-
-use driver_marker_derive::DriverMarker;
+use bevy_config_cam::{driver::driver_core::DriverMarker, drivers::fpv::CCFpv};
+use bevy_dolly::prelude::{Fpv, Rig};
+use config_cam_derive::DriverMarker;
 
 fn main() {
     App::new()
@@ -63,8 +60,26 @@ fn setup(
             ));
         });
 
+    commands
+        .spawn(SpatialBundle::from_transform(Transform {
+            rotation: Quat::IDENTITY,
+            translation: Vec3::new(-2., 0., 0.),
+            ..default()
+        }))
+        .with_children(|cell| {
+            cell.spawn((
+                Target,
+                PbrBundle {
+                    mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
+                    material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
+                    transform: Transform::from_xyz(0.0, 0.5, 0.0),
+                    ..Default::default()
+                },
+            ));
+        });
+
     // light
-    commands.spawn_bundle(PointLightBundle {
+    commands.spawn(PointLightBundle {
         transform: Transform::from_xyz(4.0, 8.0, 4.0),
         ..Default::default()
     });
@@ -77,7 +92,7 @@ fn setup(
     }).insert(Wireframe);*/
 
     commands
-        .spawn_bundle(PbrBundle {
+        .spawn(PbrBundle {
             mesh: cam.clone(),
             material: materials
                 .add(
@@ -103,21 +118,28 @@ fn setup(
         })
         .insert(Wireframe);
 
-    commands.spawn_bundle(Camera3dBundle {
-        camera: Camera {
-            is_active: true,
+    /*
+        commands.spawn((
+            Camera3dBundle {
+            camera: Camera {
+                is_active: true,
+                ..Default::default()
+            },
+            projection: OrthographicProjection {
+                scale: 3.0,
+                scaling_mode: ScalingMode::FixedVertical(1.0),
+                ..default()
+            }
+            .into(),
             ..Default::default()
         },
-        projection: OrthographicProjection {
-            scale: 3.0,
-            scaling_mode: ScalingMode::FixedVertical(1.0),
-            ..default()
-        }
-        .into(),
-        ..Default::default()
-    });
+        Rig::builder()
+        .with(Fpv::from_position_target(Transform::default()))
+        .build(),
+        CCFpv,
+    ));
 
-    commands.spawn_bundle(Camera3dBundle {
+    commands.spawn(Camera3dBundle {
         camera: Camera {
             is_active: false,
             ..Default::default()
@@ -130,6 +152,7 @@ fn setup(
         .into(),
         ..Default::default()
     });
+    */
 
     commands.spawn(CameraCount { total: 2, index: 0 });
 }
@@ -143,6 +166,9 @@ struct CameraCount {
 #[derive(Component)]
 struct Rotates;
 
+#[derive(Component)]
+struct Selected;
+
 fn rotator_system(time: Res<Time>, mut query: Query<&mut Transform, With<Rotates>>) {
     for mut transform in query.iter_mut() {
         *transform = Transform::from_rotation(Quat::from_rotation_y(
@@ -154,11 +180,13 @@ fn rotator_system(time: Res<Time>, mut query: Query<&mut Transform, With<Rotates
 fn remove_target_system(
     keys: Res<Input<KeyCode>>,
     mut commands: Commands,
-    q: Query<Entity, (With<Rotates>, With<Target>)>,
+    q: Query<Entity, (With<Selected>, Without<Target>)>,
 ) {
     if keys.just_pressed(KeyCode::G) {
         for e in &q {
             commands.entity(e).remove::<Target>();
+            commands.entity(e).remove::<Rotates>();
+            println!("Removed Target");
         }
     }
 }
@@ -166,11 +194,13 @@ fn remove_target_system(
 fn add_target_system(
     keys: Res<Input<KeyCode>>,
     mut commands: Commands,
-    q: Query<Entity, (With<Rotates>, Without<Target>)>,
+    q: Query<Entity, (Without<Selected>, With<Target>)>,
 ) {
-    if keys.just_pressed(KeyCode::G) {
+    if keys.just_pressed(KeyCode::H) {
         for e in &q {
             commands.entity(e).insert(Target);
+            commands.entity(e).insert(Rotates);
+            println!("Added Target");
         }
     }
 }
diff --git a/examples/yp.rs b/examples/yp.rs
new file mode 100644
index 0000000..a15b6e0
--- /dev/null
+++ b/examples/yp.rs
@@ -0,0 +1,81 @@
+use bevy::{input::Input, prelude::*, DefaultPlugins};
+use bevy_config_cam::driver::driver_core::DriverMarker;
+use bevy_config_cam::{
+    driver::driver_core::{DriverRigs, Drivers},
+    drivers::{fpv::CCFpv, orbit::CCOrbit},
+    ConfigCam,
+};
+use bevy_dolly::prelude::*;
+use config_cam_derive::DriverMarker;
+
+pub use std::any::TypeId;
+
+fn main() {
+    App::new()
+        .add_plugins(DefaultPlugins)
+        .add_plugin(ConfigCam)
+        .add_dolly_component(YP)
+        .insert_resource(Drivers::new(vec![
+            Box::new(CCOrbit),
+            Box::new(CCFpv),
+            Box::new(YP),
+        ]))
+        .add_startup_system(setup)
+        .add_system(update_yaw_driver)
+        .run();
+}
+
+#[derive(DriverMarker, Component, Clone, Copy, Debug)]
+pub struct YP;
+
+fn setup(
+    mut commands: Commands,
+    mut meshes: ResMut<Assets<Mesh>>,
+    mut materials: ResMut<Assets<StandardMaterial>>,
+) {
+    //Should be default player entity
+    //Default player entity : Cone
+    //commands.spawn().insert(Target);
+
+    commands.spawn((
+        Rig::builder()
+            .with(YawPitch::new().yaw_degrees(45.0).pitch_degrees(-45.0))
+            .with(Smooth::new_rotation(1.5))
+            .with(Arm::new(Vec3::Z * 4.0))
+            .with(LookAt::new(Vec3::new(0., 0., 0.)))
+            .build(),
+        YP,
+    ));
+
+    // plane
+    commands.spawn(PbrBundle {
+        mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
+        material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
+        ..Default::default()
+    });
+
+    // cube
+    commands.spawn(PbrBundle {
+        mesh: meshes.add(Mesh::from(shape::Cube { size: 1.0 })),
+        material: materials.add(Color::rgb(0.8, 0.7, 0.6).into()),
+        transform: Transform::from_xyz(0.0, 0.5, 0.0),
+        ..Default::default()
+    });
+
+    // light
+    commands.spawn(PointLightBundle {
+        transform: Transform::from_xyz(4.0, 8.0, 4.0),
+        ..Default::default()
+    });
+}
+
+pub(crate) fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut rigs: DriverRigs) {
+    rigs.try_for_each_driver_mut::<YawPitch>(|yp| {
+        if keys.just_pressed(KeyCode::Z) {
+            yp.rotate_yaw_pitch(-90.0, 0.0);
+        }
+        if keys.just_pressed(KeyCode::X) {
+            yp.rotate_yaw_pitch(90.0, 0.0);
+        }
+    });
+}
diff --git a/src/driver/driver_core.rs b/src/driver/driver_core.rs
index 3350404..9b3b1de 100644
--- a/src/driver/driver_core.rs
+++ b/src/driver/driver_core.rs
@@ -1,11 +1,15 @@
-use crate::{Fpv, Pinned};
 use std::any::TypeId;
 
 use bevy::{
     ecs::{component::TableStorage, system::SystemParam},
     prelude::{Commands, Component, Entity, Query, Resource},
 };
-use bevy_dolly::prelude::Rig;
+use bevy_dolly::prelude::*;
+
+use crate::{
+    drivers::{fpv::CCFpv, orbit::CCOrbit},
+    MainCamera,
+};
 
 pub trait DriverMarker: Component<Storage = TableStorage> + Sync + Send + 'static {
     fn get_id(&self) -> TypeId;
@@ -17,38 +21,45 @@ pub trait DriverMarker: Component<Storage = TableStorage> + Sync + Send + 'stati
 #[derive(Resource)]
 pub struct Drivers {
     // access must happen in this folder or children
-    pub(super) marker: Vec<Box<dyn DriverMarker>>,
+    pub enabled_drivers: Vec<Box<dyn DriverMarker>>,
+    pub current: TypeId,
+    index: usize,
 }
 
 impl Default for Drivers {
     fn default() -> Self {
         Self {
-            marker: vec![Box::new(Pinned), Box::new(Fpv)],
+            enabled_drivers: vec![Box::new(CCOrbit), Box::new(CCFpv)],
+            index: Default::default(),
+            current: TypeId::of::<MainCamera>(),
         }
     }
 }
 
 impl Drivers {
     pub fn new(marker: Vec<Box<dyn DriverMarker>>) -> Self {
-        Self { marker }
+        Self {
+            enabled_drivers: marker,
+            index: Default::default(),
+            current: TypeId::of::<MainCamera>(),
+        }
     }
-}
 
-#[derive(Default, Resource)]
-pub struct DriverIndex {
-    // access must happen in this folder or children
-    pub(super) index: usize,
-}
-
-impl DriverIndex {
-    /// Goes to next index, loops back to index `0` if already at the last index.
-    pub fn next(&mut self, len: usize) {
-        if self.index >= len - 1 {
+    pub fn next(&mut self) {
+        if self.index >= self.enabled_drivers.len() - 1 {
             self.index = 0;
         } else {
             self.index += 1;
         }
     }
+
+    pub fn change_camera<T: 'static>(&mut self) {
+        self.current = TypeId::of::<T>();
+    }
+
+    pub fn index(&self) -> usize {
+        self.index
+    }
 }
 
 #[derive(SystemParam)]
@@ -59,7 +70,7 @@ pub struct DriverRigs<'w, 's> {
 impl<'w, 's> DriverRigs<'w, 's> {
     pub fn try_for_each_driver_mut<T>(&mut self, f: impl FnOnce(&mut T) + std::marker::Copy)
     where
-        T: bevy_dolly::prelude::RigDriver<bevy_dolly::prelude::RightHanded>,
+        T: RigDriver,
     {
         for mut rig in &mut self.rigs {
             if let Some(camera_driver) = rig.try_driver_mut::<T>() {
@@ -67,4 +78,16 @@ impl<'w, 's> DriverRigs<'w, 's> {
             }
         }
     }
+
+    pub fn driver_exists<T>(self) -> bool
+    where
+        T: RigDriver,
+    {
+        for rig in &self.rigs {
+            if rig.try_driver::<T>().is_some() {
+                return true;
+            }
+        }
+        false
+    }
 }
diff --git a/src/driver/driver_resources.rs b/src/driver/driver_resources.rs
index 616f486..2cccf71 100644
--- a/src/driver/driver_resources.rs
+++ b/src/driver/driver_resources.rs
@@ -1,46 +1,41 @@
-use bevy::prelude::{Camera, Commands, Entity, Input, KeyCode, Query, Res, ResMut};
+use bevy::prelude::{Camera, Commands, Component, Entity, Input, KeyCode, Query, Res, ResMut};
 
-use super::driver_core::{DriverIndex, Drivers};
+use super::driver_core::Drivers;
 
 // TODO documentation
 
 //Use collection with and keeping an index component or the like
-pub fn change_driver_system(
-    mut index: ResMut<DriverIndex>,
-    drivers: Res<Drivers>,
-    keys: Res<Input<KeyCode>>,
-) {
+pub fn change_driver_system(mut drivers: ResMut<Drivers>, keys: Res<Input<KeyCode>>) {
     if keys.just_pressed(KeyCode::T) {
-        index.next(drivers.marker.len());
+        drivers.next();
     }
 }
 
 pub fn update_driver_system(
     q: Query<(Entity, &Camera)>,
     mut commands: Commands,
-    index: Res<DriverIndex>,
     drivers: Res<Drivers>,
 ) {
-    if index.is_changed() {
-        for box_component in &drivers.marker {
+    if drivers.is_changed() {
+        for box_component in &drivers.enabled_drivers {
             let component = box_component.as_ref();
             let component_id = component.get_id();
 
-            if let Some(h) = drivers.marker.get(index.index) {
+            if let Some(h) = drivers.enabled_drivers.get(drivers.index()) {
                 if component_id.eq(&h.get_id()) {
                     //Add new driver component
                     //Remove old driver component
                     for (entity, camera) in q.iter() {
                         if camera.is_active {
                             component.add_to(&mut commands, entity);
-                            println!("Adding {:?} to Camera {:?}", component.get_name(), entity);
+                            println!("Adding {} to Camera {:?}", component.get_name(), entity);
                         }
                     }
                 } else {
                     for (entity, camera) in q.iter() {
                         if camera.is_active {
                             component.remove_from(&mut commands, entity);
-                            println!("Remove {:?} from Camera {:?}", component.get_name(), entity);
+                            println!("Remove {} from Camera {:?}", component.get_name(), entity);
                         }
                     }
                 }
diff --git a/src/drivers/first_person_view.rs b/src/drivers/first_person_view.rs
deleted file mode 100644
index 40dce78..0000000
--- a/src/drivers/first_person_view.rs
+++ /dev/null
@@ -1,12 +0,0 @@
-use crate::Commands;
-use bevy::ecs::entity::Entity;
-use bevy::prelude::Component;
-use driver_marker_derive::DriverMarker;
-use std::any::TypeId;
-
-use crate::driver::driver_core::DriverMarker;
-
-#[derive(DriverMarker, Component, Clone, Copy, Debug)]
-pub struct Fpv;
-
-// TODO impl
diff --git a/src/drivers/fpv.rs b/src/drivers/fpv.rs
new file mode 100644
index 0000000..e8fe63c
--- /dev/null
+++ b/src/drivers/fpv.rs
@@ -0,0 +1,114 @@
+use crate::Commands;
+use bevy::ecs::entity::Entity;
+use bevy::prelude::Component;
+use config_cam_derive::DriverMarker;
+use std::any::TypeId;
+
+use crate::driver::driver_core::{DriverMarker, DriverRigs};
+use bevy::input::mouse::MouseMotion;
+use bevy::prelude::*;
+use bevy_dolly::prelude::*;
+
+#[derive(DriverMarker, Component, Clone, Copy, Debug)]
+pub struct CCFpv;
+impl Plugin for CCFpv {
+    fn build(&self, app: &mut App) {
+        app.add_rig_component(CCFpv)
+            .add_startup_system(setup_fpv)
+            .add_state(MovementType::FirstPerson)
+            .add_system(update_fpv_camera);
+    }
+}
+
+fn setup_fpv(mut commands: Commands) {
+    commands.spawn((
+        Rig::builder()
+            .with(Fpv::from_position_target(
+                Transform::from_xyz(2.0, 2.0, 2.0).looking_at(Vec3::ZERO, Vec3::Y),
+            ))
+            .build(),
+        CCFpv,
+    ));
+}
+
+#[derive(Clone, Debug, Eq, PartialEq, Hash)]
+pub enum MovementType {
+    FirstPerson,
+    Free,
+}
+
+/*
+Example :
+commands.spawn((
+    MainCamera,
+    Rig::builder()
+        .with(Fpv::from_position_target(transform))
+        .build(),
+    Camera3dBundle {
+        transform,
+        ..default()
+    },
+));
+*/
+
+pub fn update_fpv_camera(
+    time: Res<Time>,
+    keys: Res<Input<KeyCode>>,
+    windows: Res<Windows>,
+    fps_state: Res<State<MovementType>>,
+    mut mouse_motion_events: EventReader<MouseMotion>,
+    mut rigs: DriverRigs,
+) {
+    let time_delta_seconds: f32 = time.delta_seconds();
+    let boost_mult = 5.0f32;
+    let sensitivity = Vec2::splat(1.0);
+
+    let mut move_vec = Vec3::ZERO;
+
+    // Q: Is dolly left-handed so z is flipped?
+    if keys.pressed(KeyCode::W) {
+        move_vec.z -= 1.0;
+    }
+    if keys.pressed(KeyCode::S) {
+        move_vec.z += 1.0;
+    }
+    if keys.pressed(KeyCode::A) {
+        move_vec.x -= 1.0;
+    }
+    if keys.pressed(KeyCode::D) {
+        move_vec.x += 1.0;
+    }
+
+    if keys.pressed(KeyCode::E) || keys.pressed(KeyCode::Space) {
+        move_vec.y += 1.0;
+    }
+    if keys.pressed(KeyCode::Q) {
+        move_vec.y -= 1.0;
+    }
+
+    let boost: f32 = if keys.pressed(KeyCode::LShift) {
+        1.
+    } else {
+        0.
+    };
+
+    let mut delta = Vec2::ZERO;
+    for event in mouse_motion_events.iter() {
+        delta += event.delta;
+    }
+
+    rigs.try_for_each_driver_mut::<Fpv>(|r| {
+        let move_vec = r.set_position(
+            move_vec,
+            boost,
+            boost_mult,
+            fps_state.current().eq(&MovementType::FirstPerson),
+        );
+
+        let window = windows.get_primary();
+
+        if window.is_some() && !window.unwrap().cursor_visible() {
+            r.set_rotation(delta, sensitivity, move_vec, time_delta_seconds);
+        }
+    });
+}
diff --git a/src/drivers/mod.rs b/src/drivers/mod.rs
index 475e252..669eaf9 100644
--- a/src/drivers/mod.rs
+++ b/src/drivers/mod.rs
@@ -1,2 +1,2 @@
-pub mod first_person_view;
-pub mod pinned;
+pub mod fpv;
+pub mod orbit;
diff --git a/src/drivers/orbit.rs b/src/drivers/orbit.rs
new file mode 100644
index 0000000..7aa7f22
--- /dev/null
+++ b/src/drivers/orbit.rs
@@ -0,0 +1,123 @@
+use crate::{CCSetupLabel, Commands, MainCamera, PerspectiveCamera};
+use bevy::ecs::entity::Entity;
+use bevy::prelude::Component;
+use config_cam_derive::DriverMarker;
+use std::any::TypeId;
+
+use crate::driver::driver_core::DriverMarker;
+use bevy::input::mouse::{MouseMotion, MouseWheel};
+use bevy::prelude::*;
+use bevy_dolly::prelude::*;
+
+#[derive(DriverMarker, Component, Clone, Copy, Debug)]
+pub struct CCOrbit;
+impl Plugin for CCOrbit {
+    fn build(&self, app: &mut App) {
+        app.add_rig_component(CCOrbit)
+            .add_state(Pan::Mouse)
+            .add_startup_system(setup_orbit.after(CCSetupLabel))
+            .add_system(handle_mouse_scroll)
+            .add_system(update_orbit_camera);
+    }
+}
+
+fn setup_orbit(mut commands: Commands) {
+    commands.spawn((
+        Rig::builder()
+            .with(Position::new(Vec3::ZERO))
+            .with(YawPitch::new().yaw_degrees(45.0).pitch_degrees(-30.0))
+            .with(Smooth::new_position(0.3))
+            .with(Smooth::new_rotation(0.3))
+            .with(Arm::new(Vec3::Z * 4.0))
+            .build(),
+        CCOrbit,
+    ));
+}
+
+#[derive(PartialEq, Eq, Debug, Clone, Copy, Hash)]
+enum Pan {
+    Mouse,
+    Keys,
+}
+
+fn handle_mouse_scroll(
+    mut mouse_wheel_events: EventReader<MouseWheel>,
+    mut q_main: Query<&mut Projection, With<MainCamera>>,
+) {
+    for mouse_wheel_event in mouse_wheel_events.iter() {
+        for mut projection in &mut q_main.iter_mut() {
+            match &mut projection.as_mut() {
+                Projection::Perspective(pers) => {
+                    pers.fov = (pers.fov - mouse_wheel_event.y * 0.01).abs();
+                }
+                Projection::Orthographic(orth) => {
+                    orth.scale = (orth.scale - mouse_wheel_event.y * 0.1).abs();
+                }
+            }
+        }
+    }
+}
+
+#[allow(unused_must_use)]
+fn update_orbit_camera(
+    keys: Res<Input<KeyCode>>,
+    mut pan: ResMut<State<Pan>>,
+    mut mouse_motion_events: EventReader<MouseMotion>,
+    mut rig_q: Query<&mut Rig, With<CCOrbit>>,
+    transform: Query<Option<&Transform>, With<DollyPosCtrlMove>>,
+    mut config: ResMut<DollyPosCtrlConfig>,
+    grab_config: Res<DollyCursorGrabConfig>,
+) {
+    if let Ok(mut rig) = rig_q.get_single_mut() {
+        let camera_driver = rig.driver_mut::<YawPitch>();
+        let sensitivity = Vec2::splat(2.0);
+
+        let mut delta = Vec2::ZERO;
+        for event in mouse_motion_events.iter() {
+            delta += event.delta;
+        }
+
+        config.rotation = Quat::from_rotation_y(delta.x);
+
+        if pan.current().eq(&Pan::Keys) {
+            if keys.just_pressed(KeyCode::Z) {
+                camera_driver.rotate_yaw_pitch(-90.0, 0.0);
+            }
+            if keys.just_pressed(KeyCode::X) {
+                camera_driver.rotate_yaw_pitch(90.0, 0.0);
+            }
+        } else {
+            if !grab_config.visible {
+                camera_driver.rotate_yaw_pitch(
+                    -0.1 * delta.x * sensitivity.x,
+                    -0.1 * delta.y * sensitivity.y,
+                );
+            }
+        }
+
+        if keys.just_pressed(KeyCode::E) {
+            let result = if pan.current().eq(&Pan::Keys) {
+                Pan::Mouse
+            } else {
+                Pan::Keys
+            };
+            pan.overwrite_set(result);
+            println!("State:{result:?}");
+        }
+
+        if keys.just_pressed(KeyCode::P) {
+            config.pin = !config.pin;
+            println!("Pinned:{:?}", config.pin);
+        }
+
+        if config.pin {
+            let camera_driver_2 = rig.driver_mut::<Position>();
+
+            for opt_transform in transform.iter() {
+                if let Some(t) = opt_transform {
+                    camera_driver_2.position = t.translation;
+                }
+            }
+        }
+    }
+}
diff --git a/src/drivers/pinned.rs b/src/drivers/pinned.rs
deleted file mode 100644
index efe9bcd..0000000
--- a/src/drivers/pinned.rs
+++ /dev/null
@@ -1,10 +0,0 @@
-use crate::{driver::driver_core::DriverMarker, Commands};
-use bevy::{ecs::entity::Entity, prelude::Component};
-use driver_marker_derive::DriverMarker;
-use std::any::TypeId;
-
-#[derive(DriverMarker, Component, Clone, Copy, Debug)]
-pub struct Pinned;
-//Substates:
-//Locked Rotation
-//Free
diff --git a/src/lib.rs b/src/lib.rs
index dffb6c3..8c894fa 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,17 +1,23 @@
 pub mod driver;
 pub mod drivers;
 
-use crate::drivers::first_person_view::Fpv;
-use crate::drivers::pinned::Pinned;
 use bevy::{
+    ecs::component::TableStorage,
     input::Input,
-    prelude::{App, Commands, Component, KeyCode, Plugin, Query, Res, Transform, Vec3, With},
+    prelude::{
+        default, App, Bundle, Camera, Camera2dBundle, Camera3d, Camera3dBundle, Commands,
+        Component, IntoSystemDescriptor, KeyCode, OrthographicProjection, PerspectiveProjection,
+        Plugin, Query, Res, ResMut, Resource, SystemLabel, Transform, Vec3, With,
+    },
+    reflect::Reflect,
+    render::camera::{CameraProjection, CameraProjectionPlugin, ScalingMode},
 };
-use bevy_dolly::{dolly::glam, prelude::*};
+use bevy_dolly::prelude::*;
 use driver::{
-    driver_core::{DriverIndex, DriverRigs, Drivers},
+    driver_core::{DriverRigs, Drivers},
     driver_resources::{change_driver_system, update_driver_system},
 };
+use drivers::{fpv::CCFpv, orbit::CCOrbit};
 pub use std::any::TypeId;
 
 // TODO documentation
@@ -19,47 +25,94 @@ pub use std::any::TypeId;
 pub struct ConfigCam;
 impl Plugin for ConfigCam {
     fn build(&self, app: &mut App) {
-        app.init_resource::<DriverIndex>()
-            .init_resource::<Drivers>()
-            .add_rig_component(Pinned)
-            .add_rig_component(Fpv)
-            .add_startup_system(default_setup)
+        app.init_resource::<Drivers>()
+            .init_resource::<CCConfig>()
+            .add_plugin(DollyPosCtrl)
+            .add_plugin(DollyCursorGrab)
+            .insert_resource(DollyPosCtrlConfig {
+                default_player: false,
+                ..Default::default()
+            })
+            .add_startup_system(camera_setup.label(CCSetupLabel))
+            .add_plugin(CCFpv)
+            .add_plugin(CCOrbit)
             .add_system(change_driver_system)
             .add_system(update_driver_system)
-            .add_system(update_look_at)
-            .add_system(update_yaw_driver);
+            .add_system(update_look_at);
     }
 }
 
-pub(crate) fn update_look_at(
-    mut targets: Query<(&mut Transform, With<Target>)>,
-    mut rigs: DriverRigs,
-) {
-    let mut avg = Vec3::ZERO;
+#[derive(Resource)]
+pub struct CCConfig {
+    pub init_cameras: bool,
+    pub features: Vec<String>,
+}
 
-    for (t, _b) in &mut targets {
-        avg += t.translation;
+impl Default for CCConfig {
+    fn default() -> Self {
+        Self {
+            init_cameras: true,
+            features: vec![],
+        }
     }
+}
 
-    //https://math.stackexchange.com/questions/80923/average-of-multiple-vectors
-    //let total_targets = targets.iter().count();
-    //avg /= total_targets as f32;
+pub fn bind_perspective<T: Bundle>(bundle: T) {}
 
-    rigs.try_for_each_driver_mut::<bevy_dolly::prelude::LookAt>(|la| {
-        la.target = avg;
-    });
+fn camera_setup(mut commands: Commands, config: Res<CCConfig>) {
+    if !config.init_cameras {
+        return;
+    }
+    commands.spawn((
+        MainCamera,
+        PerspectiveCamera,
+        Camera3dBundle {
+            transform: Transform::from_xyz(2.0, 2.0, 2.0).looking_at(Vec3::ZERO, Vec3::Y),
+            ..Default::default()
+        },
+    ));
+    commands.spawn((
+        OrthographicCamera,
+        Camera3dBundle {
+            projection: OrthographicProjection {
+                scale: 3.0,
+                scaling_mode: ScalingMode::FixedVertical(2.0),
+                ..default()
+            }
+            .into(),
+            camera: Camera {
+                is_active: false,
+                ..Default::default()
+            },
+            ..Default::default()
+        },
+    ));
+    commands.spawn((
+        TwoDimensionalCamera,
+        Camera2dBundle {
+            camera: Camera {
+                is_active: false,
+                ..Default::default()
+            },
+            ..Default::default()
+        },
+    ));
 }
 
-pub(crate) fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut rigs: DriverRigs) {
-    rigs.try_for_each_driver_mut::<YawPitch>(|yp| {
-        if keys.just_pressed(KeyCode::Z) {
-            yp.rotate_yaw_pitch(-90.0, 0.0);
-        }
-        if keys.just_pressed(KeyCode::X) {
-            yp.rotate_yaw_pitch(90.0, 0.0);
-        }
-    });
-}
+#[derive(Debug, Clone, PartialEq, Eq, Hash, SystemLabel)]
+pub struct CCSetupLabel;
+
+#[derive(Component)]
+pub struct MainCamera;
+
+#[derive(Component)]
+pub struct PerspectiveCamera;
+
+#[derive(Component)]
+pub struct OrthographicCamera;
+
+#[derive(Component)]
+pub struct TwoDimensionalCamera;
 
 // Target at is just a valid option for Follow, Orbit and FPV
 // Have the camera point at one or the summed vector direction
@@ -67,23 +120,28 @@ pub(crate) fn update_yaw_driver(keys: Res<Input<KeyCode>>, mut rigs: DriverRigs)
 #[derive(Component)]
 pub struct Target;
 
-fn default_setup(mut commands: Commands) {
-    //Should be default player entity
-    //Default player entity : Cone
-    //commands.spawn().insert(Target);
-
-    commands.spawn((
-        Pinned,
-        Rig::builder()
-            .with(YawPitch::new().yaw_degrees(45.0).pitch_degrees(-45.0))
-            .with(Smooth::new_rotation(1.5))
-            .with(Arm::new(glam::Vec3::Z * 4.0))
-            .with(bevy_dolly::prelude::LookAt::new(glam::Vec3::new(
-                0., 0., 0.,
-            )))
-            .build(),
-    ));
+pub(crate) fn update_look_at(targets: Query<(&Transform, With<Target>)>, mut rigs: DriverRigs) {
+    rigs.try_for_each_driver_mut::<LookAt>(|la| {
+        let it = targets.iter();
+        if it.len().eq(&0) {
+        } else if it.len().eq(&1) {
+            la.target = it.last().unwrap().0.translation;
+        } else {
+            la.target = get_center_point(it.map(|f| f.0.translation).collect());
+        }
+    });
+}
 
-    //Missing FPV
-    commands.spawn(Fpv);
+fn get_center_point(targets: Vec<Vec3>) -> Vec3 {
+    if targets.len() == 0 {
+        Vec3::ONE
+    } else if targets.len() == 1 {
+        *targets.first().unwrap()
+    } else {
+        let mut a = Vec3::ONE;
+        for t in targets {
+            a += t
+        }
+        a * 0.5
+    }
 }

From e126e28b1f94fcb6df8c77f485755f083889d5c9 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Mon, 6 Mar 2023 00:31:20 +0100
Subject: [PATCH 54/63] clippy

---
 examples/simple.rs             | 34 ++++++++++++++++------------------
 src/driver/driver_resources.rs |  2 +-
 src/drivers/orbit.rs           | 20 ++++++++------------
 src/lib.rs                     | 15 +++++----------
 4 files changed, 30 insertions(+), 41 deletions(-)

diff --git a/examples/simple.rs b/examples/simple.rs
index 95a9123..2cbc1ce 100644
--- a/examples/simple.rs
+++ b/examples/simple.rs
@@ -4,9 +4,9 @@ use bevy::{
     pbr::wireframe::{Wireframe, WireframePlugin},
     prelude::*,
 };
+use bevy_config_cam::driver::driver_core::DriverMarker;
 use bevy_config_cam::*;
-use bevy_config_cam::{driver::driver_core::DriverMarker, drivers::fpv::CCFpv};
-use bevy_dolly::prelude::{Fpv, Rig};
+
 use config_cam_derive::DriverMarker;
 
 fn main() {
@@ -93,18 +93,16 @@ fn setup(
 
     commands
         .spawn(PbrBundle {
-            mesh: cam.clone(),
-            material: materials
-                .add(
-                    Color::Rgba {
-                        red: 0.,
-                        green: 0.,
-                        blue: 0.,
-                        alpha: 0.,
-                    }
-                    .into(),
-                )
-                .clone(),
+            mesh: cam,
+            material: materials.add(
+                Color::Rgba {
+                    red: 0.,
+                    green: 0.,
+                    blue: 0.,
+                    alpha: 0.,
+                }
+                .into(),
+            ),
             transform: Transform {
                 translation: Vec3 {
                     x: 0.0,
@@ -207,18 +205,18 @@ fn add_target_system(
 
 fn switch_camera(
     keys: Res<Input<KeyCode>>,
-    mut commands: Commands,
+    _commands: Commands,
     mut q: Query<&Camera>,
     mut q2: Query<&CameraCount>,
 ) {
-    let mut cc = q2.single_mut();
+    let cc = q2.single_mut();
     if keys.just_pressed(KeyCode::V) {
-        for (i, c) in &mut q.iter_mut().enumerate() {
+        for (i, _c) in &mut q.iter_mut().enumerate() {
             if i + 1 > (cc.total - 1).into() {
                 //cc.index = 0;
                 //c.is_active = true;
             }
-            if i.eq(&(cc.index + 1 as usize)) {}
+            if i.eq(&(cc.index + 1_usize)) {}
         }
     }
 }
diff --git a/src/driver/driver_resources.rs b/src/driver/driver_resources.rs
index 2cccf71..1713836 100644
--- a/src/driver/driver_resources.rs
+++ b/src/driver/driver_resources.rs
@@ -1,4 +1,4 @@
-use bevy::prelude::{Camera, Commands, Component, Entity, Input, KeyCode, Query, Res, ResMut};
+use bevy::prelude::{Camera, Commands, Entity, Input, KeyCode, Query, Res, ResMut};
 
 use super::driver_core::Drivers;
 
diff --git a/src/drivers/orbit.rs b/src/drivers/orbit.rs
index 7aa7f22..978ae61 100644
--- a/src/drivers/orbit.rs
+++ b/src/drivers/orbit.rs
@@ -1,4 +1,4 @@
-use crate::{CCSetupLabel, Commands, MainCamera, PerspectiveCamera};
+use crate::{CCSetupLabel, Commands, MainCamera};
 use bevy::ecs::entity::Entity;
 use bevy::prelude::Component;
 use config_cam_derive::DriverMarker;
@@ -86,13 +86,11 @@ fn update_orbit_camera(
             if keys.just_pressed(KeyCode::X) {
                 camera_driver.rotate_yaw_pitch(90.0, 0.0);
             }
-        } else {
-            if !grab_config.visible {
-                camera_driver.rotate_yaw_pitch(
-                    -0.1 * delta.x * sensitivity.x,
-                    -0.1 * delta.y * sensitivity.y,
-                );
-            }
+        } else if !grab_config.visible {
+            camera_driver.rotate_yaw_pitch(
+                -0.1 * delta.x * sensitivity.x,
+                -0.1 * delta.y * sensitivity.y,
+            );
         }
 
         if keys.just_pressed(KeyCode::E) {
@@ -113,10 +111,8 @@ fn update_orbit_camera(
         if config.pin {
             let camera_driver_2 = rig.driver_mut::<Position>();
 
-            for opt_transform in transform.iter() {
-                if let Some(t) = opt_transform {
-                    camera_driver_2.position = t.translation;
-                }
+            for opt_transform in transform.iter().flatten() {
+                camera_driver_2.position = opt_transform.translation;
             }
         }
     }
diff --git a/src/lib.rs b/src/lib.rs
index 8c894fa..f492dba 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -2,15 +2,12 @@ pub mod driver;
 pub mod drivers;
 
 use bevy::{
-    ecs::component::TableStorage,
-    input::Input,
     prelude::{
-        default, App, Bundle, Camera, Camera2dBundle, Camera3d, Camera3dBundle, Commands,
-        Component, IntoSystemDescriptor, KeyCode, OrthographicProjection, PerspectiveProjection,
-        Plugin, Query, Res, ResMut, Resource, SystemLabel, Transform, Vec3, With,
+        default, App, Camera, Camera2dBundle, Camera3dBundle, Commands, Component,
+        IntoSystemDescriptor, OrthographicProjection, Plugin, Query, Res, Resource, SystemLabel,
+        Transform, Vec3, With,
     },
-    reflect::Reflect,
-    render::camera::{CameraProjection, CameraProjectionPlugin, ScalingMode},
+    render::camera::ScalingMode,
 };
 use bevy_dolly::prelude::*;
 use driver::{
@@ -57,8 +54,6 @@ impl Default for CCConfig {
     }
 }
 
-pub fn bind_perspective<T: Bundle>(bundle: T) {}
-
 fn camera_setup(mut commands: Commands, config: Res<CCConfig>) {
     if !config.init_cameras {
         return;
@@ -133,7 +128,7 @@ pub(crate) fn update_look_at(targets: Query<(&Transform, With<Target>)>, mut rig
 }
 
 fn get_center_point(targets: Vec<Vec3>) -> Vec3 {
-    if targets.len() == 0 {
+    if targets.is_empty() {
         Vec3::ONE
     } else if targets.len() == 1 {
         *targets.first().unwrap()

From 7380352855199409f6cb505b41c469bdbde90c5e Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Mon, 6 Mar 2023 00:34:29 +0100
Subject: [PATCH 55/63] more fmt & clippy

---
 Cargo.toml                             | 2 +-
 config_cam_derive/src/driver_marker.rs | 2 --
 config_cam_derive/src/lib.rs           | 2 +-
 3 files changed, 2 insertions(+), 4 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index 028d5e9..9dcb05e 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -25,7 +25,7 @@ name = "bevy_config_cam"
 rand = "0.8"
 strum = "0.24"
 strum_macros = "0.24"
-bevy_dolly = { path = "../bevy_dolly" }#{ git = "https://github.com/BlackPhlox/bevy_dolly", branch = "map_fork" }
+bevy_dolly = { git = "https://github.com/BlackPhlox/bevy_dolly", branch = "map_fork_v2" }#{ path = "../bevy_dolly" }
 config_cam_derive = { path = "config_cam_derive" }
 
 [dependencies.bevy]
diff --git a/config_cam_derive/src/driver_marker.rs b/config_cam_derive/src/driver_marker.rs
index 6caef6b..f2fcbe3 100644
--- a/config_cam_derive/src/driver_marker.rs
+++ b/config_cam_derive/src/driver_marker.rs
@@ -1,5 +1,3 @@
-
-
 use proc_macro::TokenStream;
 use quote::quote;
 use syn;
diff --git a/config_cam_derive/src/lib.rs b/config_cam_derive/src/lib.rs
index ea53f9a..74bebda 100644
--- a/config_cam_derive/src/lib.rs
+++ b/config_cam_derive/src/lib.rs
@@ -7,4 +7,4 @@ mod driver_marker;
 #[proc_macro_derive(DriverMarker)]
 pub fn driver_marker_derive(input: TokenStream) -> TokenStream {
     driver_marker::driver_marker_derive(input)
-}
\ No newline at end of file
+}

From b9bace9813b6abc29d647436afe4232b59c79c43 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Mon, 6 Mar 2023 01:39:51 +0100
Subject: [PATCH 56/63] Added macro_rules!

---
 examples/yp.rs            | 10 +++++-----
 src/driver/driver_core.rs | 39 ++++++++++++++++++++++++++-------------
 src/lib.rs                | 26 ++++++++++++++++++++++++++
 3 files changed, 57 insertions(+), 18 deletions(-)

diff --git a/examples/yp.rs b/examples/yp.rs
index a15b6e0..9891557 100644
--- a/examples/yp.rs
+++ b/examples/yp.rs
@@ -5,6 +5,7 @@ use bevy_config_cam::{
     drivers::{fpv::CCFpv, orbit::CCOrbit},
     ConfigCam,
 };
+use bevy_config_cam::{driver_vec, type_vec, MainCamera};
 use bevy_dolly::prelude::*;
 use config_cam_derive::DriverMarker;
 
@@ -15,11 +16,10 @@ fn main() {
         .add_plugins(DefaultPlugins)
         .add_plugin(ConfigCam)
         .add_dolly_component(YP)
-        .insert_resource(Drivers::new(vec![
-            Box::new(CCOrbit),
-            Box::new(CCFpv),
-            Box::new(YP),
-        ]))
+        .insert_resource(Drivers::new(
+            driver_vec![CCOrbit, CCFpv, YP],
+            type_vec![MainCamera],
+        ))
         .add_startup_system(setup)
         .add_system(update_yaw_driver)
         .run();
diff --git a/src/driver/driver_core.rs b/src/driver/driver_core.rs
index 9b3b1de..1e641c0 100644
--- a/src/driver/driver_core.rs
+++ b/src/driver/driver_core.rs
@@ -22,43 +22,56 @@ pub trait DriverMarker: Component<Storage = TableStorage> + Sync + Send + 'stati
 pub struct Drivers {
     // access must happen in this folder or children
     pub enabled_drivers: Vec<Box<dyn DriverMarker>>,
-    pub current: TypeId,
-    index: usize,
+    driver_index: usize,
+    pub cameras: Vec<TypeId>,
+    camera_index: usize,
 }
 
 impl Default for Drivers {
     fn default() -> Self {
         Self {
             enabled_drivers: vec![Box::new(CCOrbit), Box::new(CCFpv)],
-            index: Default::default(),
-            current: TypeId::of::<MainCamera>(),
+            cameras: vec![TypeId::of::<MainCamera>()],
+            driver_index: Default::default(),
+            camera_index: Default::default(),
         }
     }
 }
 
 impl Drivers {
-    pub fn new(marker: Vec<Box<dyn DriverMarker>>) -> Self {
+    pub fn new(enabled_drivers: Vec<Box<dyn DriverMarker>>, cameras: Vec<TypeId>) -> Self {
         Self {
-            enabled_drivers: marker,
-            index: Default::default(),
-            current: TypeId::of::<MainCamera>(),
+            enabled_drivers,
+            driver_index: Default::default(),
+            cameras,
+            camera_index: Default::default(),
         }
     }
 
     pub fn next(&mut self) {
-        if self.index >= self.enabled_drivers.len() - 1 {
-            self.index = 0;
+        if self.driver_index >= self.enabled_drivers.len() - 1 {
+            self.driver_index = 0;
         } else {
-            self.index += 1;
+            self.driver_index += 1;
         }
     }
 
     pub fn change_camera<T: 'static>(&mut self) {
-        self.current = TypeId::of::<T>();
+        let type_id = TypeId::of::<T>();
+        self.cameras.push(type_id);
+        self.cameras.dedup();
+        if let Some((x, _)) = self
+            .cameras
+            .iter()
+            .enumerate()
+            .find(|(_, id)| (*id).clone().eq(&type_id))
+        {
+            self.camera_index = x;
+        }
     }
 
     pub fn index(&self) -> usize {
-        self.index
+        self.driver_index
     }
 }
 
diff --git a/src/lib.rs b/src/lib.rs
index f492dba..5108a8b 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -39,6 +39,32 @@ impl Plugin for ConfigCam {
     }
 }
 
+#[macro_export]
+macro_rules! type_vec {
+    ( $( $x:ident ),* ) => {
+        {
+            let mut temp_vec = Vec::new();
+            $(
+                temp_vec.push(TypeId::of::<$x>());
+            )*
+            temp_vec
+        }
+    };
+}
+
+#[macro_export]
+macro_rules! driver_vec {
+    ( $( $x:ident ),* ) => {
+        {
+            let mut temp_vec: Vec<Box<dyn DriverMarker>> = Vec::new();
+            $(
+                temp_vec.push(Box::new($x));
+            )*
+            temp_vec
+        }
+    };
+}
+
 #[derive(Resource)]
 pub struct CCConfig {
     pub init_cameras: bool,

From dde7a6bffb6055360e2e49b6d4b130a205dca737 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Tue, 7 Mar 2023 00:40:45 +0100
Subject: [PATCH 57/63] Updated to bevy 0.10

---
 Cargo.toml                     |  7 +++++--
 examples/minimal.rs            |  2 +-
 examples/multiple_targets.rs   |  4 ++--
 examples/simple.rs             |  2 +-
 examples/yp.rs                 |  2 +-
 src/driver/driver_resources.rs |  2 +-
 src/drivers/fpv.rs             | 19 +++++++++++--------
 src/drivers/orbit.rs           | 11 ++++++-----
 src/lib.rs                     |  8 ++++----
 9 files changed, 32 insertions(+), 25 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index 9dcb05e..1ceea8c 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -29,11 +29,14 @@ bevy_dolly = { git = "https://github.com/BlackPhlox/bevy_dolly", branch = "map_f
 config_cam_derive = { path = "config_cam_derive" }
 
 [dependencies.bevy]
-version = "0.9"
+version = "0.10"
 features = ["bevy_render","bevy_pbr"]
 default-features = false
 
 [dev-dependencies.bevy]
-version = "0.9"
+version = "0.10"
 features = ["bevy_core_pipeline", "bevy_asset", "bevy_scene", "bevy_pbr", "bevy_gltf", "x11", "wayland"]
 default-features = false
+
+[patch.crates-io]
+leafwing-input-manager = { git = "https://github.com/TimJentzsch/leafwing-input-manager", branch = "bevy-0.10" }
\ No newline at end of file
diff --git a/examples/minimal.rs b/examples/minimal.rs
index 43491e2..219bf18 100644
--- a/examples/minimal.rs
+++ b/examples/minimal.rs
@@ -17,7 +17,7 @@ fn setup(
 ) {
     // plane
     commands.spawn(PbrBundle {
-        mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
+        mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0, ..Default::default() })),
         material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
         ..Default::default()
     });
diff --git a/examples/multiple_targets.rs b/examples/multiple_targets.rs
index c5a7d87..3de4315 100644
--- a/examples/multiple_targets.rs
+++ b/examples/multiple_targets.rs
@@ -5,7 +5,7 @@ use config_cam_derive::DriverMarker;
 
 fn main() {
     App::new()
-        .insert_resource(Msaa { samples: 4 })
+        .insert_resource(Msaa::default())
         .add_plugins(DefaultPlugins)
         .add_plugin(ConfigCam)
         .add_rig_component(T1)
@@ -39,7 +39,7 @@ fn setup(
 ) {
     // plane
     commands.spawn(PbrBundle {
-        mesh: meshes.add(Mesh::from(shape::Plane { size: 11.0 })),
+        mesh: meshes.add(Mesh::from(shape::Plane { size: 11.0, ..Default::default() })),
         material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
         ..Default::default()
     });
diff --git a/examples/simple.rs b/examples/simple.rs
index 2cbc1ce..307d069 100644
--- a/examples/simple.rs
+++ b/examples/simple.rs
@@ -34,7 +34,7 @@ fn setup(
 ) {
     // plane
     commands.spawn(PbrBundle {
-        mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
+        mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0, ..Default::default() })),
         material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
         ..Default::default()
     });
diff --git a/examples/yp.rs b/examples/yp.rs
index 9891557..6a71b0c 100644
--- a/examples/yp.rs
+++ b/examples/yp.rs
@@ -49,7 +49,7 @@ fn setup(
 
     // plane
     commands.spawn(PbrBundle {
-        mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0 })),
+        mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0, ..Default::default() })),
         material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
         ..Default::default()
     });
diff --git a/src/driver/driver_resources.rs b/src/driver/driver_resources.rs
index 1713836..179da88 100644
--- a/src/driver/driver_resources.rs
+++ b/src/driver/driver_resources.rs
@@ -1,4 +1,4 @@
-use bevy::prelude::{Camera, Commands, Entity, Input, KeyCode, Query, Res, ResMut};
+use bevy::prelude::{Camera, Commands, Entity, Input, KeyCode, Query, Res, ResMut, DetectChanges};
 
 use super::driver_core::Drivers;
 
diff --git a/src/drivers/fpv.rs b/src/drivers/fpv.rs
index e8fe63c..6a1c2ff 100644
--- a/src/drivers/fpv.rs
+++ b/src/drivers/fpv.rs
@@ -1,6 +1,7 @@
 use crate::Commands;
 use bevy::ecs::entity::Entity;
 use bevy::prelude::Component;
+use bevy::window::PrimaryWindow;
 use config_cam_derive::DriverMarker;
 use std::any::TypeId;
 
@@ -15,7 +16,7 @@ impl Plugin for CCFpv {
     fn build(&self, app: &mut App) {
         app.add_rig_component(CCFpv)
             .add_startup_system(setup_fpv)
-            .add_state(MovementType::FirstPerson)
+            .add_state::<MovementType>()
             .add_system(update_fpv_camera);
     }
 }
@@ -31,8 +32,9 @@ fn setup_fpv(mut commands: Commands) {
     ));
 }
 
-#[derive(Clone, Debug, Eq, PartialEq, Hash)]
+#[derive(States, Default, Clone, Debug, Eq, PartialEq, Hash)]
 pub enum MovementType {
+    #[default]
     FirstPerson,
     Free,
 }
@@ -54,7 +56,7 @@ commands.spawn((
 pub fn update_fpv_camera(
     time: Res<Time>,
     keys: Res<Input<KeyCode>>,
-    windows: Res<Windows>,
+    windows: Query<&Window, With<PrimaryWindow>>,
     fps_state: Res<State<MovementType>>,
     mut mouse_motion_events: EventReader<MouseMotion>,
     mut rigs: DriverRigs,
@@ -102,13 +104,14 @@ pub fn update_fpv_camera(
             move_vec,
             boost,
             boost_mult,
-            fps_state.current().eq(&MovementType::FirstPerson),
+            fps_state.0.eq(&MovementType::FirstPerson),
         );
 
-        let window = windows.get_primary();
-
-        if window.is_some() && !window.unwrap().cursor_visible() {
-            r.set_rotation(delta, sensitivity, move_vec, time_delta_seconds);
+        if let Ok(window) = windows.get_single() {
+            if !window.cursor.visible {
+                r.driver_mut::<Fpv>()
+                    .set_rotation(delta, sensitivity, move_vec, time_delta_seconds);
+            }
         }
     });
 }
diff --git a/src/drivers/orbit.rs b/src/drivers/orbit.rs
index 978ae61..2c09b02 100644
--- a/src/drivers/orbit.rs
+++ b/src/drivers/orbit.rs
@@ -14,7 +14,7 @@ pub struct CCOrbit;
 impl Plugin for CCOrbit {
     fn build(&self, app: &mut App) {
         app.add_rig_component(CCOrbit)
-            .add_state(Pan::Mouse)
+            .add_state::<Pan>()
             .add_startup_system(setup_orbit.after(CCSetupLabel))
             .add_system(handle_mouse_scroll)
             .add_system(update_orbit_camera);
@@ -34,8 +34,9 @@ fn setup_orbit(mut commands: Commands) {
     ));
 }
 
-#[derive(PartialEq, Eq, Debug, Clone, Copy, Hash)]
+#[derive(States, Default, PartialEq, Eq, Debug, Clone, Copy, Hash)]
 enum Pan {
+    #[default]
     Mouse,
     Keys,
 }
@@ -79,7 +80,7 @@ fn update_orbit_camera(
 
         config.rotation = Quat::from_rotation_y(delta.x);
 
-        if pan.current().eq(&Pan::Keys) {
+        if pan.0.eq(&Pan::Keys) {
             if keys.just_pressed(KeyCode::Z) {
                 camera_driver.rotate_yaw_pitch(-90.0, 0.0);
             }
@@ -94,12 +95,12 @@ fn update_orbit_camera(
         }
 
         if keys.just_pressed(KeyCode::E) {
-            let result = if pan.current().eq(&Pan::Keys) {
+            let result = if pan.0.eq(&Pan::Keys) {
                 Pan::Mouse
             } else {
                 Pan::Keys
             };
-            pan.overwrite_set(result);
+            pan.0 = result;
             println!("State:{result:?}");
         }
 
diff --git a/src/lib.rs b/src/lib.rs
index 5108a8b..a67bb57 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -4,8 +4,8 @@ pub mod drivers;
 use bevy::{
     prelude::{
         default, App, Camera, Camera2dBundle, Camera3dBundle, Commands, Component,
-        IntoSystemDescriptor, OrthographicProjection, Plugin, Query, Res, Resource, SystemLabel,
-        Transform, Vec3, With,
+        OrthographicProjection, Plugin, Query, Res, Resource,
+        Transform, Vec3, With, SystemSet, IntoSystemConfig,
     },
     render::camera::ScalingMode,
 };
@@ -30,7 +30,7 @@ impl Plugin for ConfigCam {
                 default_player: false,
                 ..Default::default()
             })
-            .add_startup_system(camera_setup.label(CCSetupLabel))
+            .add_startup_system(camera_setup.in_set(CCSetupLabel))
             .add_plugin(CCFpv)
             .add_plugin(CCOrbit)
             .add_system(change_driver_system)
@@ -120,7 +120,7 @@ fn camera_setup(mut commands: Commands, config: Res<CCConfig>) {
     ));
 }
 
-#[derive(Debug, Clone, PartialEq, Eq, Hash, SystemLabel)]
+#[derive(Debug, Clone, PartialEq, Eq, Hash, SystemSet)]
 pub struct CCSetupLabel;
 
 #[derive(Component)]

From 2f4b3016e4adb75acf76ebb1e428d9a005088506 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Thu, 9 Mar 2023 02:25:30 +0100
Subject: [PATCH 58/63] Fixed a panic

---
 Cargo.toml         | 5 +----
 src/drivers/fpv.rs | 5 +++--
 2 files changed, 4 insertions(+), 6 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index 1ceea8c..19acb66 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -36,7 +36,4 @@ default-features = false
 [dev-dependencies.bevy]
 version = "0.10"
 features = ["bevy_core_pipeline", "bevy_asset", "bevy_scene", "bevy_pbr", "bevy_gltf", "x11", "wayland"]
-default-features = false
-
-[patch.crates-io]
-leafwing-input-manager = { git = "https://github.com/TimJentzsch/leafwing-input-manager", branch = "bevy-0.10" }
\ No newline at end of file
+default-features = false
\ No newline at end of file
diff --git a/src/drivers/fpv.rs b/src/drivers/fpv.rs
index 6a1c2ff..c93baad 100644
--- a/src/drivers/fpv.rs
+++ b/src/drivers/fpv.rs
@@ -109,8 +109,9 @@ pub fn update_fpv_camera(
 
         if let Ok(window) = windows.get_single() {
             if !window.cursor.visible {
-                r.driver_mut::<Fpv>()
-                    .set_rotation(delta, sensitivity, move_vec, time_delta_seconds);
+                if let Some(fpv) = r.try_driver_mut::<Fpv>() {
+                    fpv.set_rotation(delta, sensitivity, move_vec, time_delta_seconds);
+                }   
             }
         }
     });

From 9df6d010da374419a5bdd20c1add649cb25c1655 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Thu, 9 Mar 2023 02:30:32 +0100
Subject: [PATCH 59/63] fmt & clippy

---
 examples/minimal.rs            | 5 ++++-
 examples/multiple_targets.rs   | 5 ++++-
 examples/simple.rs             | 5 ++++-
 examples/yp.rs                 | 5 ++++-
 src/driver/driver_resources.rs | 2 +-
 src/drivers/fpv.rs             | 2 +-
 src/lib.rs                     | 6 +++---
 7 files changed, 21 insertions(+), 9 deletions(-)

diff --git a/examples/minimal.rs b/examples/minimal.rs
index 219bf18..2b8bc9e 100644
--- a/examples/minimal.rs
+++ b/examples/minimal.rs
@@ -17,7 +17,10 @@ fn setup(
 ) {
     // plane
     commands.spawn(PbrBundle {
-        mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0, ..Default::default() })),
+        mesh: meshes.add(Mesh::from(shape::Plane {
+            size: 5.0,
+            ..Default::default()
+        })),
         material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
         ..Default::default()
     });
diff --git a/examples/multiple_targets.rs b/examples/multiple_targets.rs
index 3de4315..e080f6b 100644
--- a/examples/multiple_targets.rs
+++ b/examples/multiple_targets.rs
@@ -39,7 +39,10 @@ fn setup(
 ) {
     // plane
     commands.spawn(PbrBundle {
-        mesh: meshes.add(Mesh::from(shape::Plane { size: 11.0, ..Default::default() })),
+        mesh: meshes.add(Mesh::from(shape::Plane {
+            size: 11.0,
+            ..Default::default()
+        })),
         material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
         ..Default::default()
     });
diff --git a/examples/simple.rs b/examples/simple.rs
index 307d069..cbf14cc 100644
--- a/examples/simple.rs
+++ b/examples/simple.rs
@@ -34,7 +34,10 @@ fn setup(
 ) {
     // plane
     commands.spawn(PbrBundle {
-        mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0, ..Default::default() })),
+        mesh: meshes.add(Mesh::from(shape::Plane {
+            size: 5.0,
+            ..Default::default()
+        })),
         material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
         ..Default::default()
     });
diff --git a/examples/yp.rs b/examples/yp.rs
index 6a71b0c..42325f7 100644
--- a/examples/yp.rs
+++ b/examples/yp.rs
@@ -49,7 +49,10 @@ fn setup(
 
     // plane
     commands.spawn(PbrBundle {
-        mesh: meshes.add(Mesh::from(shape::Plane { size: 5.0, ..Default::default() })),
+        mesh: meshes.add(Mesh::from(shape::Plane {
+            size: 5.0,
+            ..Default::default()
+        })),
         material: materials.add(Color::rgb(0.3, 0.5, 0.3).into()),
         ..Default::default()
     });
diff --git a/src/driver/driver_resources.rs b/src/driver/driver_resources.rs
index 179da88..44ce55d 100644
--- a/src/driver/driver_resources.rs
+++ b/src/driver/driver_resources.rs
@@ -1,4 +1,4 @@
-use bevy::prelude::{Camera, Commands, Entity, Input, KeyCode, Query, Res, ResMut, DetectChanges};
+use bevy::prelude::{Camera, Commands, DetectChanges, Entity, Input, KeyCode, Query, Res, ResMut};
 
 use super::driver_core::Drivers;
 
diff --git a/src/drivers/fpv.rs b/src/drivers/fpv.rs
index c93baad..56cc555 100644
--- a/src/drivers/fpv.rs
+++ b/src/drivers/fpv.rs
@@ -111,7 +111,7 @@ pub fn update_fpv_camera(
             if !window.cursor.visible {
                 if let Some(fpv) = r.try_driver_mut::<Fpv>() {
                     fpv.set_rotation(delta, sensitivity, move_vec, time_delta_seconds);
-                }   
+                }
             }
         }
     });
diff --git a/src/lib.rs b/src/lib.rs
index a67bb57..250d145 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -3,9 +3,9 @@ pub mod drivers;
 
 use bevy::{
     prelude::{
-        default, App, Camera, Camera2dBundle, Camera3dBundle, Commands, Component,
-        OrthographicProjection, Plugin, Query, Res, Resource,
-        Transform, Vec3, With, SystemSet, IntoSystemConfig,
+        default, App, Camera, Commands, Component,
+        IntoSystemConfig, OrthographicProjection, Plugin, Query, Res, Resource, SystemSet,
+        Transform, Vec3, With, Camera3dBundle, Camera2dBundle,
     },
     render::camera::ScalingMode,
 };

From 11bf9b6772947f433df381a9d89333d2cf8cea5d Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Sun, 17 Sep 2023 19:51:35 +0200
Subject: [PATCH 60/63] Updated to bevy_dolly crate and bevy 0.11

---
 Cargo.toml           | 10 +++++-----
 examples/minimal.rs  |  4 ++--
 src/drivers/fpv.rs   |  6 +++---
 src/drivers/orbit.rs |  8 ++++----
 src/lib.rs           | 29 +++++++++++++++--------------
 5 files changed, 29 insertions(+), 28 deletions(-)

diff --git a/Cargo.toml b/Cargo.toml
index 19acb66..9c9f0c7 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -23,17 +23,17 @@ name = "bevy_config_cam"
 
 [dependencies]
 rand = "0.8"
-strum = "0.24"
-strum_macros = "0.24"
-bevy_dolly = { git = "https://github.com/BlackPhlox/bevy_dolly", branch = "map_fork_v2" }#{ path = "../bevy_dolly" }
+strum = "0.25"
+strum_macros = "0.25"
+bevy_dolly = "0.0.1"
 config_cam_derive = { path = "config_cam_derive" }
 
 [dependencies.bevy]
-version = "0.10"
+version = "0.11"
 features = ["bevy_render","bevy_pbr"]
 default-features = false
 
 [dev-dependencies.bevy]
-version = "0.10"
+version = "0.11"
 features = ["bevy_core_pipeline", "bevy_asset", "bevy_scene", "bevy_pbr", "bevy_gltf", "x11", "wayland"]
 default-features = false
\ No newline at end of file
diff --git a/examples/minimal.rs b/examples/minimal.rs
index 2b8bc9e..132a808 100644
--- a/examples/minimal.rs
+++ b/examples/minimal.rs
@@ -4,8 +4,8 @@ use bevy_config_cam::*;
 fn main() {
     App::new()
         .add_plugins(DefaultPlugins)
-        .add_plugin(ConfigCam)
-        .add_startup_system(setup)
+        .add_plugins(ConfigCam)
+        .add_systems(Startup, setup)
         .run();
 }
 
diff --git a/src/drivers/fpv.rs b/src/drivers/fpv.rs
index 56cc555..f23b553 100644
--- a/src/drivers/fpv.rs
+++ b/src/drivers/fpv.rs
@@ -88,7 +88,7 @@ pub fn update_fpv_camera(
         move_vec.y -= 1.0;
     }
 
-    let boost: f32 = if keys.pressed(KeyCode::LShift) {
+    let boost: f32 = if keys.pressed(KeyCode::ShiftLeft) {
         1.
     } else {
         0.
@@ -104,13 +104,13 @@ pub fn update_fpv_camera(
             move_vec,
             boost,
             boost_mult,
-            fps_state.0.eq(&MovementType::FirstPerson),
+            fps_state.get().eq(&MovementType::FirstPerson),
         );
 
         if let Ok(window) = windows.get_single() {
             if !window.cursor.visible {
                 if let Some(fpv) = r.try_driver_mut::<Fpv>() {
-                    fpv.set_rotation(delta, sensitivity, move_vec, time_delta_seconds);
+                    fpv.set_rotation(delta, move_vec, time_delta_seconds);
                 }
             }
         }
diff --git a/src/drivers/orbit.rs b/src/drivers/orbit.rs
index 2c09b02..f36e54b 100644
--- a/src/drivers/orbit.rs
+++ b/src/drivers/orbit.rs
@@ -78,9 +78,9 @@ fn update_orbit_camera(
             delta += event.delta;
         }
 
-        config.rotation = Quat::from_rotation_y(delta.x);
+        config.transform.rotation = Quat::from_rotation_y(delta.x);
 
-        if pan.0.eq(&Pan::Keys) {
+        if pan.get().eq(&Pan::Keys) {
             if keys.just_pressed(KeyCode::Z) {
                 camera_driver.rotate_yaw_pitch(-90.0, 0.0);
             }
@@ -95,12 +95,12 @@ fn update_orbit_camera(
         }
 
         if keys.just_pressed(KeyCode::E) {
-            let result = if pan.0.eq(&Pan::Keys) {
+            let result = if pan.get().eq(&Pan::Keys) {
                 Pan::Mouse
             } else {
                 Pan::Keys
             };
-            pan.0 = result;
+            *pan = State::new(result);
             println!("State:{result:?}");
         }
 
diff --git a/src/lib.rs b/src/lib.rs
index 250d145..32153d1 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -4,8 +4,8 @@ pub mod drivers;
 use bevy::{
     prelude::{
         default, App, Camera, Commands, Component,
-        IntoSystemConfig, OrthographicProjection, Plugin, Query, Res, Resource, SystemSet,
-        Transform, Vec3, With, Camera3dBundle, Camera2dBundle,
+        OrthographicProjection, Plugin, Query, Res, Resource, SystemSet,
+        Transform, Vec3, With, Camera3dBundle, Camera2dBundle, Update, Startup, IntoSystemConfigs,
     },
     render::camera::ScalingMode,
 };
@@ -24,18 +24,18 @@ impl Plugin for ConfigCam {
     fn build(&self, app: &mut App) {
         app.init_resource::<Drivers>()
             .init_resource::<CCConfig>()
-            .add_plugin(DollyPosCtrl)
-            .add_plugin(DollyCursorGrab)
+            .add_plugins(DollyPosCtrl)
+            .add_plugins(DollyCursorGrab)
             .insert_resource(DollyPosCtrlConfig {
-                default_player: false,
+                player: Player::None,
                 ..Default::default()
             })
-            .add_startup_system(camera_setup.in_set(CCSetupLabel))
-            .add_plugin(CCFpv)
-            .add_plugin(CCOrbit)
-            .add_system(change_driver_system)
-            .add_system(update_driver_system)
-            .add_system(update_look_at);
+            .add_systems(Startup, camera_setup.run_if(is_init_cameras).in_set(CCSetupLabel))
+            .add_plugins(CCFpv)
+            .add_plugins(CCOrbit)
+            .add_systems(Update, change_driver_system)
+            .add_systems(Update, update_driver_system)
+            .add_systems(Update, update_look_at);
     }
 }
 
@@ -80,10 +80,11 @@ impl Default for CCConfig {
     }
 }
 
+fn is_init_cameras(config: Res<CCConfig>) -> bool {
+    config.init_cameras
+}
+
 fn camera_setup(mut commands: Commands, config: Res<CCConfig>) {
-    if !config.init_cameras {
-        return;
-    }
     commands.spawn((
         MainCamera,
         PerspectiveCamera,

From 469fe14a4cbf5336ffb226754f5590ca540d854d Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Sun, 17 Sep 2023 19:53:52 +0200
Subject: [PATCH 61/63] fmt & clippy

---
 src/drivers/fpv.rs   |  6 +++---
 src/drivers/orbit.rs |  6 +++---
 src/lib.rs           | 13 ++++++++-----
 3 files changed, 14 insertions(+), 11 deletions(-)

diff --git a/src/drivers/fpv.rs b/src/drivers/fpv.rs
index f23b553..fcc51c6 100644
--- a/src/drivers/fpv.rs
+++ b/src/drivers/fpv.rs
@@ -15,9 +15,9 @@ pub struct CCFpv;
 impl Plugin for CCFpv {
     fn build(&self, app: &mut App) {
         app.add_rig_component(CCFpv)
-            .add_startup_system(setup_fpv)
+            .add_systems(Startup, setup_fpv)
             .add_state::<MovementType>()
-            .add_system(update_fpv_camera);
+            .add_systems(Update, update_fpv_camera);
     }
 }
 
@@ -63,7 +63,7 @@ pub fn update_fpv_camera(
 ) {
     let time_delta_seconds: f32 = time.delta_seconds();
     let boost_mult = 5.0f32;
-    let sensitivity = Vec2::splat(1.0);
+    let _sensitivity = Vec2::splat(1.0);
 
     let mut move_vec = Vec3::ZERO;
 
diff --git a/src/drivers/orbit.rs b/src/drivers/orbit.rs
index f36e54b..e231990 100644
--- a/src/drivers/orbit.rs
+++ b/src/drivers/orbit.rs
@@ -15,9 +15,9 @@ impl Plugin for CCOrbit {
     fn build(&self, app: &mut App) {
         app.add_rig_component(CCOrbit)
             .add_state::<Pan>()
-            .add_startup_system(setup_orbit.after(CCSetupLabel))
-            .add_system(handle_mouse_scroll)
-            .add_system(update_orbit_camera);
+            .add_systems(Startup, setup_orbit.after(CCSetupLabel))
+            .add_systems(Update, handle_mouse_scroll)
+            .add_systems(Update, update_orbit_camera);
     }
 }
 
diff --git a/src/lib.rs b/src/lib.rs
index 32153d1..a6f60f8 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -3,9 +3,9 @@ pub mod drivers;
 
 use bevy::{
     prelude::{
-        default, App, Camera, Commands, Component,
-        OrthographicProjection, Plugin, Query, Res, Resource, SystemSet,
-        Transform, Vec3, With, Camera3dBundle, Camera2dBundle, Update, Startup, IntoSystemConfigs,
+        default, App, Camera, Camera2dBundle, Camera3dBundle, Commands, Component,
+        IntoSystemConfigs, OrthographicProjection, Plugin, Query, Res, Resource, Startup,
+        SystemSet, Transform, Update, Vec3, With,
     },
     render::camera::ScalingMode,
 };
@@ -30,7 +30,10 @@ impl Plugin for ConfigCam {
                 player: Player::None,
                 ..Default::default()
             })
-            .add_systems(Startup, camera_setup.run_if(is_init_cameras).in_set(CCSetupLabel))
+            .add_systems(
+                Startup,
+                camera_setup.run_if(is_init_cameras).in_set(CCSetupLabel),
+            )
             .add_plugins(CCFpv)
             .add_plugins(CCOrbit)
             .add_systems(Update, change_driver_system)
@@ -84,7 +87,7 @@ fn is_init_cameras(config: Res<CCConfig>) -> bool {
     config.init_cameras
 }
 
-fn camera_setup(mut commands: Commands, config: Res<CCConfig>) {
+fn camera_setup(mut commands: Commands, _config: Res<CCConfig>) {
     commands.spawn((
         MainCamera,
         PerspectiveCamera,

From f47b07806b931ba807dd88c316173ff75095f62b Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Sun, 17 Sep 2023 22:44:47 +0200
Subject: [PATCH 62/63] Updated readme

---
 README.md | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/README.md b/README.md
index e5ce5a3..0169f37 100644
--- a/README.md
+++ b/README.md
@@ -150,7 +150,7 @@ Note: That some of them are overwritten by accessing the settings or the changin
 |0.5|0.1.X|
 |0.6|0.2.X|
 |0.7|0.3.X|
-|0.8|0.4.X|
+|0.11|0.4.X|
 
 # Licensing
 The project is under dual license MIT and Apache-2.0, so yoink to your hearts content, just remember the license agreements.

From 06e96ea929699a666a04271efbaeabdc81cad5c1 Mon Sep 17 00:00:00 2001
From: Mikkel Rasmussen <theluja@gmail.com>
Date: Sun, 17 Sep 2023 22:51:25 +0200
Subject: [PATCH 63/63] Update examples

---
 README.md                    | 23 ++++++++++++++---------
 examples/multiple_targets.rs |  2 +-
 examples/simple.rs           | 19 ++++++++++++-------
 examples/yp.rs               |  6 +++---
 4 files changed, 30 insertions(+), 20 deletions(-)

diff --git a/README.md b/README.md
index 0169f37..fa069ea 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
 <a href="https://crates.io/crates/bevy_config_cam"><img src="https://img.shields.io/crates/v/bevy_config_cam" alt="link to crates.io"></a>
 <a href="https://docs.rs/bevy_config_cam"><img src="https://docs.rs/bevy_config_cam/badge.svg" alt="link to docs.rs"></a>
 <a href="https://github.com/BlackPhlox/bevy_config_cam/blob/master/credits/CREDITS.md"><img src="https://img.shields.io/crates/l/bevy_config_cam" alt="link to license"></a>
-<a href="https://crates.io/crates/bevy_config_cam"><img src="https://img.shields.io/crates/d/bevy_config_cam" alt="downloads/link to crates.io"></a>   
+<a href="https://crates.io/crates/bevy_config_cam"><img src="https://img.shields.io/crates/d/bevy_config_cam" alt="downloads/link to crates.io"></a>
 <a href="https://github.com/BlackPhlox/bevy_config_cam"><img src="https://img.shields.io/github/stars/BlackPhlox/bevy_config_cam" alt="stars/github repo"></a>
 <a href="https://github.com/BlackPhlox/bevy_config_cam/actions/workflows/master.yml"><img src="https://github.com/BlackPhlox/bevy_config_cam/actions/workflows/master.yml/badge.svg" alt="github actions"></a>
 <a href="https://github.com/bevyengine/bevy/blob/main/docs/plugins_guidelines.md#main-branch-tracking"><img src="https://img.shields.io/badge/Bevy%20tracking-released%20version-lightblue" alt="tracking bevy release branch"></a>
@@ -14,14 +14,14 @@
 An easy plug-n-play multifunctional camera controller that allows for easy setup of a camera and player for a scene.
 
 Add a few lines of code to your existing project allows you to test a wide variety of cameras by attaching it to
-your player asset or the default red player entity. 
+your player asset or the default red player entity.
 
 Inspired and extended on [bevy_flycam](https://github.com/sburris0/bevy_flycam), this plugin is fairly simple but should be a neat help for developers looking for a camera implementation without going the hassle of reinventing the wheel.
 
 # Backend
 
-The main goal of this plugin is to first and foremost provide the user with a configurable, extendable and easy-to-use API. [`dolly`](https://github.com/h3r2tic/dolly) by @h3r2tic is a crate that provides an framework for which to create, combine and modify camera positioning, exactly what `bevy_config_cam` is looking for. 
-[bevy_dolly](https://github.com/BlackPhlox/bevy_dolly) is the backend for `bevy_config_cam`. 
+The main goal of this plugin is to first and foremost provide the user with a configurable, extendable and easy-to-use API. [`dolly`](https://github.com/h3r2tic/dolly) by @h3r2tic is a crate that provides an framework for which to create, combine and modify camera positioning, exactly what `bevy_config_cam` is looking for.
+[bevy_dolly](https://github.com/BlackPhlox/bevy_dolly) is the backend for `bevy_config_cam`.
 
 # Showcase
 
@@ -33,13 +33,13 @@ The main goal of this plugin is to first and foremost provide the user with a co
     <th><h2>Static</h2></th>
     <th><h2>Pinned</h2></th>
   </tr>
-    <tr>    
+    <tr>
     <th>FollowStatic</th>
     <th>Fps</th>
   </tr>
   <tr>
     <td><img src="https://user-images.githubusercontent.com/25123512/119991121-6cd28600-bfc9-11eb-9fcd-89fa9d591d4b.png" style="height:350px;" alt="FollowStatic"></td>
-    <td><img src="https://user-images.githubusercontent.com/25123512/119991187-7bb93880-bfc9-11eb-9739-598e01ba214f.png" style="height:350px;" alt="Fps"></td>    
+    <td><img src="https://user-images.githubusercontent.com/25123512/119991187-7bb93880-bfc9-11eb-9739-598e01ba214f.png" style="height:350px;" alt="Fps"></td>
   </tr>
   <tr>
     <th>LookAt</th>
@@ -82,7 +82,7 @@ The main goal of this plugin is to first and foremost provide the user with a co
 
 ## Test the project
 
-Before I start using a plugin, I all ways like to run the examples prior to setting it up for my own project. Just to see if the plugin satisfy my needs. 
+Before I start using a plugin, I all ways like to run the examples prior to setting it up for my own project. Just to see if the plugin satisfy my needs.
 If you're like me then this is for you.
 
 1. Clone this repo to your local machine
@@ -96,11 +96,12 @@ Settings: <kbd>E</kbd> and use the mouse-scroll to change the selected settings
 
 ## Add to your own project
 
-Adding this plugin to your project is *very* simple, it only requires you to write 2 lines of code. 
+Adding this plugin to your project is *very* simple, it only requires you to write 2 lines of code.
 
 ### Step 1. - Setup
-    
+
 Add the correct version to your `Cargo.toml`, you can find the version you are looking for under the support section. The thing you should be adding should look like this (only add the line marked by `# <--`):
+
 ```toml
 [dependencies]
 bevy = { version = "0.8"}
@@ -140,9 +141,11 @@ Now, there is a reason for the name `bevy_config_cam`. It is most likely that yo
         ..Default::default()
     })
 ```
+
 Note: That some of them are overwritten by accessing the settings or the changing the camera type. Feedback on this is high appreciated, just create a new issue and I'll look into it when I have the time.
 
 # Support
+
 [![Bevy tracking](https://img.shields.io/badge/Bevy%20tracking-released%20version-lightblue)](https://github.com/bevyengine/bevy/blob/main/docs/plugins_guidelines.md#main-branch-tracking)
 
 |bevy|bevy_config_cam|
@@ -153,7 +156,9 @@ Note: That some of them are overwritten by accessing the settings or the changin
 |0.11|0.4.X|
 
 # Licensing
+
 The project is under dual license MIT and Apache-2.0, so yoink to your hearts content, just remember the license agreements.
 
 # Contributing
+
 Yes this project is still very much WIP, so PRs are very welcome
diff --git a/examples/multiple_targets.rs b/examples/multiple_targets.rs
index e080f6b..79682ac 100644
--- a/examples/multiple_targets.rs
+++ b/examples/multiple_targets.rs
@@ -7,7 +7,7 @@ fn main() {
     App::new()
         .insert_resource(Msaa::default())
         .add_plugins(DefaultPlugins)
-        .add_plugin(ConfigCam)
+        .add_plugins(ConfigCam)
         .add_rig_component(T1)
         .add_dolly_component(MainCamera)
         /*.insert_resource(MovementSettings {
diff --git a/examples/simple.rs b/examples/simple.rs
index cbf14cc..eccd348 100644
--- a/examples/simple.rs
+++ b/examples/simple.rs
@@ -12,13 +12,18 @@ use config_cam_derive::DriverMarker;
 fn main() {
     App::new()
         .add_plugins(DefaultPlugins)
-        .add_plugin(WireframePlugin)
-        .add_plugin(ConfigCam)
-        .add_startup_system(setup)
-        .add_system(rotator_system)
-        .add_system(add_target_system)
-        .add_system(remove_target_system)
-        .add_system(switch_camera)
+        .add_plugins(WireframePlugin)
+        .add_plugins(ConfigCam)
+        .add_systems(Startup, setup)
+        .add_systems(
+            Update,
+            (
+                rotator_system,
+                add_target_system,
+                remove_target_system,
+                switch_camera,
+            ),
+        )
         .run();
 }
 
diff --git a/examples/yp.rs b/examples/yp.rs
index 42325f7..e4427ed 100644
--- a/examples/yp.rs
+++ b/examples/yp.rs
@@ -14,14 +14,14 @@ pub use std::any::TypeId;
 fn main() {
     App::new()
         .add_plugins(DefaultPlugins)
-        .add_plugin(ConfigCam)
+        .add_plugins(ConfigCam)
         .add_dolly_component(YP)
         .insert_resource(Drivers::new(
             driver_vec![CCOrbit, CCFpv, YP],
             type_vec![MainCamera],
         ))
-        .add_startup_system(setup)
-        .add_system(update_yaw_driver)
+        .add_systems(Startup, setup)
+        .add_systems(Update, update_yaw_driver)
         .run();
 }