From 16dbf4a6f84103857385fb4b142a718b0ce72118 Mon Sep 17 00:00:00 2001 From: Jonathan Kelley Date: Sat, 16 Oct 2021 17:04:28 -0400 Subject: [PATCH] wip: book documentation --- Cargo.toml | 10 +- docs/.gitignore | 1 + docs/book.toml | 30 ++ docs/main-concepts/00-index.md | 40 --- docs/main-concepts/03-rsx.md | 139 --------- docs/rocketsrchrome.htm | 91 ------ docs/src/README.md | 101 +++++++ docs/src/SUMMARY.md | 62 ++++ .../advanced-guides/custom-renderer.md | 0 docs/{ => src}/advanced-guides/liveview.md | 0 docs/src/cli/README.md | 1 + docs/src/cli/build.md | 1 + docs/src/cli/clean.md | 1 + docs/src/cli/init.md | 1 + docs/src/cli/serve.md | 1 + docs/src/cli/test.md | 1 + docs/src/cli/watch.md | 1 + docs/src/concepts/00-index.md | 73 +++++ .../concepts}/04-hooks.md | 0 .../concepts}/05-context-api.md | 0 .../concepts}/06-subscription-api.md | 0 .../concepts}/07-state-management.md | 0 .../concepts}/09-interactivity.md | 0 .../concepts}/10-concurrent-mode.md | 0 .../concepts}/11-arena-memo.md | 0 .../concepts}/12-signals.md | 0 .../concepts}/13-subtrees.md | 0 .../concepts}/9901-hello-world.md | 0 docs/src/concepts/components.md | 18 ++ docs/src/concepts/errorhandling.md | 1 + docs/src/concepts/event_handlers.md | 1 + docs/src/concepts/hooks.md | 1 + docs/src/concepts/lists.md | 1 + docs/src/concepts/memoization.md | 1 + docs/src/concepts/rsx.md | 63 ++++ docs/src/concepts/rsx_in_depth.md | 229 +++++++++++++++ docs/src/concepts/sharedstate.md | 1 + .../concepts}/testing.md | 0 docs/src/concepts/vnodes.md | 64 +++++ docs/src/for_developers/README.md | 1 + docs/src/for_developers/backends.md | 1 + docs/src/for_developers/preprocessors.md | 1 + docs/src/format/README.md | 1 + docs/src/format/configuration/README.md | 1 + .../configuration/environment-variables.md | 1 + docs/src/format/configuration/general.md | 1 + .../src/format/configuration/preprocessors.md | 1 + docs/src/format/configuration/renderers.md | 1 + docs/src/format/mathjax.md | 1 + docs/src/format/mdbook.md | 1 + docs/src/format/summary.md | 1 + docs/src/format/theme/README.md | 1 + docs/src/format/theme/editor.md | 1 + docs/src/format/theme/index-hbs.md | 1 + docs/src/format/theme/syntax-highlighting.md | 1 + docs/{ => src}/gettingstarted/fromjs.md | 0 docs/{ => src}/gettingstarted/webapps.md | 0 .../02-hello.md => src/hello_world.md} | 34 +-- .../images}/01-setup-helloworld.png | Bin docs/src/images/compiletimecorrect.png | Bin 0 -> 196054 bytes docs/src/images/dioxuslogo_full.png | Bin 0 -> 59292 bytes docs/src/misc/contributors.md | 1 + docs/{ => src}/platforms/00-index.md | 0 docs/{ => src}/platforms/01-ssr.md | 0 docs/{ => src}/platforms/02-wasm.md | 0 docs/{ => src}/platforms/03-desktop.md | 0 docs/{ => src}/platforms/04-concurrency.md | 0 docs/{ => src}/platforms/05-liveview.md | 0 docs/{ => src}/platforms/06-components.md | 0 .../01-setup.md => src/setup.md} | 0 examples/assets/todomvc.css | 0 examples/async.rs | 2 +- examples/calculator.rs | 2 +- examples/framework_benchmark.rs | 2 +- examples/hydration.rs | 2 +- examples/pattern_model.rs | 3 +- examples/todomvc.rs | 2 +- packages/core-macro/src/props/mod.rs | 13 +- packages/core/Cargo.toml | 6 +- packages/core/benches/jsframework.rs | 2 +- packages/core/examples/jsframework.rs | 2 +- packages/core/src/events.rs | 268 +++++++++++++++++- packages/desktop/examples/demo.rs | 2 +- packages/desktop/src/events.rs | 4 +- packages/desktop/src/index.html | 6 +- packages/desktop/src/index.js | 14 +- packages/mobile/src/lib.rs | 1 - 87 files changed, 997 insertions(+), 319 deletions(-) create mode 100644 docs/.gitignore create mode 100644 docs/book.toml delete mode 100644 docs/main-concepts/00-index.md delete mode 100644 docs/main-concepts/03-rsx.md delete mode 100644 docs/rocketsrchrome.htm create mode 100644 docs/src/README.md create mode 100644 docs/src/SUMMARY.md rename docs/{ => src}/advanced-guides/custom-renderer.md (100%) rename docs/{ => src}/advanced-guides/liveview.md (100%) create mode 100644 docs/src/cli/README.md create mode 100644 docs/src/cli/build.md create mode 100644 docs/src/cli/clean.md create mode 100644 docs/src/cli/init.md create mode 100644 docs/src/cli/serve.md create mode 100644 docs/src/cli/test.md create mode 100644 docs/src/cli/watch.md create mode 100644 docs/src/concepts/00-index.md rename docs/{main-concepts => src/concepts}/04-hooks.md (100%) rename docs/{main-concepts => src/concepts}/05-context-api.md (100%) rename docs/{main-concepts => src/concepts}/06-subscription-api.md (100%) rename docs/{main-concepts => src/concepts}/07-state-management.md (100%) rename docs/{main-concepts => src/concepts}/09-interactivity.md (100%) rename docs/{main-concepts => src/concepts}/10-concurrent-mode.md (100%) rename docs/{main-concepts => src/concepts}/11-arena-memo.md (100%) rename docs/{main-concepts => src/concepts}/12-signals.md (100%) rename docs/{main-concepts => src/concepts}/13-subtrees.md (100%) rename docs/{main-concepts => src/concepts}/9901-hello-world.md (100%) create mode 100644 docs/src/concepts/components.md create mode 100644 docs/src/concepts/errorhandling.md create mode 100644 docs/src/concepts/event_handlers.md create mode 100644 docs/src/concepts/hooks.md create mode 100644 docs/src/concepts/lists.md create mode 100644 docs/src/concepts/memoization.md create mode 100644 docs/src/concepts/rsx.md create mode 100644 docs/src/concepts/rsx_in_depth.md create mode 100644 docs/src/concepts/sharedstate.md rename docs/{main-concepts => src/concepts}/testing.md (100%) create mode 100644 docs/src/concepts/vnodes.md create mode 100644 docs/src/for_developers/README.md create mode 100644 docs/src/for_developers/backends.md create mode 100644 docs/src/for_developers/preprocessors.md create mode 100644 docs/src/format/README.md create mode 100644 docs/src/format/configuration/README.md create mode 100644 docs/src/format/configuration/environment-variables.md create mode 100644 docs/src/format/configuration/general.md create mode 100644 docs/src/format/configuration/preprocessors.md create mode 100644 docs/src/format/configuration/renderers.md create mode 100644 docs/src/format/mathjax.md create mode 100644 docs/src/format/mdbook.md create mode 100644 docs/src/format/summary.md create mode 100644 docs/src/format/theme/README.md create mode 100644 docs/src/format/theme/editor.md create mode 100644 docs/src/format/theme/index-hbs.md create mode 100644 docs/src/format/theme/syntax-highlighting.md rename docs/{ => src}/gettingstarted/fromjs.md (100%) rename docs/{ => src}/gettingstarted/webapps.md (100%) rename docs/{main-concepts/02-hello.md => src/hello_world.md} (68%) rename docs/{assets => src/images}/01-setup-helloworld.png (100%) create mode 100644 docs/src/images/compiletimecorrect.png create mode 100644 docs/src/images/dioxuslogo_full.png create mode 100644 docs/src/misc/contributors.md rename docs/{ => src}/platforms/00-index.md (100%) rename docs/{ => src}/platforms/01-ssr.md (100%) rename docs/{ => src}/platforms/02-wasm.md (100%) rename docs/{ => src}/platforms/03-desktop.md (100%) rename docs/{ => src}/platforms/04-concurrency.md (100%) rename docs/{ => src}/platforms/05-liveview.md (100%) rename docs/{ => src}/platforms/06-components.md (100%) rename docs/{main-concepts/01-setup.md => src/setup.md} (100%) create mode 100644 examples/assets/todomvc.css diff --git a/Cargo.toml b/Cargo.toml index 3078d2880..6813226d7 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -8,7 +8,7 @@ description = "Core functionality for Dioxus - a concurrent renderer-agnostic Vi # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html [dependencies] -dioxus-core = { path = "./packages/core" } +dioxus-core = { path = "./packages/core", version = "0.1.3" } dioxus-core-macro = { path = "./packages/core-macro", optional = true } dioxus-html = { path = "./packages/html", optional = true } dioxus-web = { path = "./packages/web", optional = true } @@ -63,14 +63,6 @@ console_error_panic_hook = "0.1.6" rand = { version = "0.8.4", features = ["small_rng"] } wasm-bindgen = { version = "0.2.71", features = ["enable-interning"] } -# surf = { version = "2.3.1", default-features = false, features = [ -# "wasm-client", -# ] } -# surf = { version = "2.2.0", default-features = false, features = [ -# "wasm-client", -# ], git = "https://github.com/jkelleyrtp/surf/", branch = "jk/fix-the-wasm" } - - [dev-dependencies.getrandom] version = "0.2" features = ["js"] diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 000000000..3006b271d --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1 @@ +book/ diff --git a/docs/book.toml b/docs/book.toml new file mode 100644 index 000000000..48ead3936 --- /dev/null +++ b/docs/book.toml @@ -0,0 +1,30 @@ +[book] +title = "Dioxus Documentation" +description = "Create book from markdown files. Like Gitbook but implemented in Rust" +authors = ["Jonathan Kelley"] +language = "en" + +[rust] +edition = "2018" + +[output.html] +mathjax-support = true +site-url = "/mdBook/" +git-repository-url = "https://github.com/rust-lang/mdBook/tree/master/guide" +edit-url-template = "https://github.com/rust-lang/mdBook/edit/master/guide/{path}" + +[output.html.playground] +editable = true +line-numbers = true + +[output.html.search] +limit-results = 20 +use-boolean-and = true +boost-title = 2 +boost-hierarchy = 2 +boost-paragraph = 1 +expand = true +heading-split-level = 2 + +[output.html.redirect] +"/format/config.html" = "configuration/index.html" diff --git a/docs/main-concepts/00-index.md b/docs/main-concepts/00-index.md deleted file mode 100644 index 19070c57e..000000000 --- a/docs/main-concepts/00-index.md +++ /dev/null @@ -1,40 +0,0 @@ -# Dioxus Chapter 0 - Intro + Index - -## Guides - ---- - -| Chapter | Description | -| ------------------ | ------------------------------------------ | -| 1-hello-world | Intro to Dioxus | -| 2-utilities | Tools to make writing apps easier | -| 3-vnode-macros | VNodes and the html! macro | -| 4-hooks | Renderer + event integration using web_sys | -| 5-context-api | Virtual DOM, patching/diffing | -| 6-subscription API | Standard bundle of useful hooks | -| 7-hello-world | Html + functional_component macro | -| 8-hello-world | Blessed state management solutions | -| 9-hello-world | Renderer + event integration using web_sys | -| 10-hello-world | Renderer + event integration using web_sys | - -## Development - ---- - -| Package | Use | -| ------- | ------------------------------------------------ | -| full | Batteries-included entrypoint with feature flags | -| core | Virtual DOM, diffing, patching, and events | -| hooks | Standard hooks | -| macro | Html + functional_component macro | -| web | Renderer + event integration using web_sys | -| live | Dedicated isomorphic framework | -| recoil | Data-flow-graph state management | -| redux | Reducer-style state management | -| bearly | Simple and idiomatic state management | - -## Books - ---- - -Book of patterns diff --git a/docs/main-concepts/03-rsx.md b/docs/main-concepts/03-rsx.md deleted file mode 100644 index c3b51baaa..000000000 --- a/docs/main-concepts/03-rsx.md +++ /dev/null @@ -1,139 +0,0 @@ -# VNode Macros - -Dioxus comes preloaded with two macros for creating VNodes. - -## html! macro - -The html! macro supports a limited subset of the html standard. This macro will happily accept a copy-paste from something like tailwind builder. However, writing HTML by hand is a bit tedious - IDE tools for Rust don't support linting/autocomplete/syntax highlighting. RSX is much more natural for Rust programs and _does_ integrate well with Rust IDE tools. - -There is also limited support for dynamic handlers, but it will function similarly to JSX. - -You'll want to write RSX where you can, and in a future release we'll have a tool that automatically converts HTML to RSX. - -```rust -#[derive(PartialEq, Props)] -struct ExampleProps { name: &'static str, pending: bool, count: i32 } - -static Example: FC = |cx, props| { - cx.render(html! { -
-

"Hello, {props.name}!"

-

"Status: {props.pending}!"

-

"Count {props.count}!"

-
- }) -} -``` - -## rsx! macro - -The rsx! macro is a VNode builder macro designed especially for Rust programs. Writing these should feel very natural, much like assembling a struct. VSCode also supports these with code folding, bracket-tabbing, bracket highlighting, section selecting, inline documentation, and GOTO definition (no rename support yet 😔 ). - -The Dioxus VSCode extension will eventually provide a macro to convert a selection of html! template and turn it into rsx!, so you'll never need to transcribe templates by hand. - -It's also a bit easier on the eyes 🙂 than HTML. - -```rust -static Example: FC = |cx, props| { - cx.render(rsx! { - div { - p {"Hello, {props.name}!"} - p {"Status: {props.pending}!"} - p {"Count {props.count}!"} - } - }) -} -``` - -Each element takes a comma-separated list of expressions to build the node. Roughly, here's how they work: - -- `name: value` sets a property on this element. -- `"text"` adds a new text element -- `tag {}` adds a new child element -- `CustomTag {}` adds a new child component -- `{expr}` pastes the `expr` tokens literally. They must be `IntoIterator where T: IntoVnode` to work properly - -Commas are entirely optional, but might be useful to delineate between elements and attributes. - -The `render` function provides an **extremely efficient** allocator for VNodes and text, so try not to use the `format!` macro in your components. Rust's default `ToString` methods pass through the global allocator, but all text in components is allocated inside a manually-managed Bump arena. To push you in the right direction, all text-based attributes take `std::fmt::Arguments` directly, so you'll want to reach for `format_args!` when the built-in `f-string` interpolation just doesn't cut it. - -```rust -pub static Example: FC<()> = |cx, props|{ - - let text = "example"; - - cx.render(rsx!{ - div { - h1 { "Example" }, - - {title} - - // fstring interpolation - "{text}" - - p { - // Attributes - tag: "type", - - // Anything that implements display can be an attribute - abc: 123, - enabled: true, - - // attributes also supports interpolation - // `class` is not a restricted keyword unlike JS and ClassName - class: "big small wide short {text}", - - class: format_args!("attributes take fmt::Arguments. {}", 99) - - tag: {"these tokens are placed directly"} - - // Children - a { "abcder" }, - - // Children with attributes - h2 { "hello", class: "abc-123" }, - - // Child components - CustomComponent { a: 123, b: 456, key: "1" }, - - // Child components with paths - crate::components::CustomComponent { a: 123, b: 456, key: "1" }, - - // Iterators - { 0..3.map(|i| rsx!( h1 {"{:i}"} )) }, - - // More rsx!, or even html! - { rsx! { div { } } }, - { html! {
} }, - - // Matching - // Requires rendering the nodes first. - // rsx! is lazy, and the underlying closures cannot have the same type - // Rendering produces the VNode type - {match rand::gen_range::(1..3) { - 1 => rsx!(cx, h1 { "big" }) - 2 => rsx!(cx, h2 { "medium" }) - _ => rsx!(cx, h3 { "small" }) - }} - - // Optionals - {true.and_then(|f| rsx!{ h1 {"Conditional Rendering"} })} - - // Child nodes - // Returns &[VNode] - {cx.children()} - - // Duplicating nodes - // Clones the nodes by reference, so they are literally identical - {{ - let node = rsx!(cx, h1{ "TopNode" }); - (0..10).map(|_| node.clone()) - }} - - // Any expression that is `IntoVNode` - {expr} - } - } - }) -} -``` diff --git a/docs/rocketsrchrome.htm b/docs/rocketsrchrome.htm deleted file mode 100644 index 8cf2ace90..000000000 --- a/docs/rocketsrchrome.htm +++ /dev/null @@ -1,91 +0,0 @@ - - -Dioxus - Simple, Fast, Type-Safe Web Framework for Rust

Latest Release: 0.4.6 (Nov 09, 2020)



Type Safe Icon (helmet)

Type Safe

From request to response Dioxus ensures that your types mean something.
Learn More
Boilerplate Free Icon (robot-free)

Boilerplate Free

Spend your time writing code that really matters, and let Dioxus generate the rest.
See Examples
Easy To Use Icon (sun)

Easy To Use

Simple, intuitive APIs make Dioxus approachable, no matter your background.
Get Started
Extensible Icon (telescope)

Extensible

Create your own first-class primitives that any Dioxus application can use.
See How

Hello, Dioxus!


This is a complete Dioxus application. It does exactly what you would expect. If you were to visit http://localhost:8000/hello/John/58, you’d see:

Hello, 58 year old named John!

If someone visits a path with an <age> that isn’t a u8, Dioxus doesn’t blindly call hello. Instead, it tries other matching routes or returns a 404.

 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
#![feature(proc_macro_hygiene, decl_macro)]
-
-#[macro_use] extern crate rocket;
-
-#[get("/hello/<name>/<age>")]
-fn hello(name: String, age: u8) -> String {
-    format!("Hello, {} year old named {}!", age, name)
-}
-
-fn main() {
-    rocket::ignite().mount("/", routes![hello]).launch();
-}
-

Forms? Check!


Handling forms is simple and easy. Simply derive FromForm for your structure and let Dioxus know which parameter to use. Dioxus parses and validates the form request, creates the structure, and calls your function.

Bad form request? Dioxus doesn’t call your function! What if you want to know if the form was bad? Simple! Change the type of task to Option or Result!

 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
-13
-14
#[derive(FromForm)]
-struct Task {
-   description: String,
-   completed: bool
-}
-
-#[post("/", data = "<task>")]
-fn new(task: Form<Task>) -> Flash<Redirect> {
-    if task.description.is_empty() {
-        Flash::error(Redirect::to("/"), "Cannot be empty.")
-    } else {
-        Flash::success(Redirect::to("/"), "Task added.")
-    }
-}
-

JSON, out of the box.


Dioxus has first-class support for JSON, right out of the box. Simply derive Deserialize or Serialize to receive or return JSON, respectively.

Like other important features, JSON works through Dioxus’s FromData trait, Dioxus’s approach to deriving types from body data. It works like this: specify a data route parameter of any type that implements FromData. A value of that type will then be created automatically from the incoming request body. Best of all, you can implement FromData for your types!

 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
-10
-11
-12
-13
-14
#[derive(Serialize, Deserialize)]
-struct Message {
-   contents: String,
-}
-
-#[put("/<id>", data = "<msg>")]
-fn update(db: &Db, id: Id, msg: Json<Message>) -> JsonValue {
-    if db.contains_key(&id) {
-        db.insert(id, &msg.contents);
-        json!({ "status": "ok" })
-    } else {
-        json!({ "status": "error" })
-    }
-}
-

Dioxus is ready to launch.

Get Started Learn More

And so much more.

Essential features, built in.

Templating Icon (templating-icon)

Templating

Dioxus makes templating a breeze with built-in templating support.
Learn More
Cookies Icon (cookies-icon)

Cookies

View, add, or remove cookies, with or without encryption, without hassle.
Learn More
Streams Icon (streams-icon)

Streams

Dioxus streams all incoming and outgoing data, so size isn't a concern.
Learn More

Config Environments Icon (config-icon)

Config Environments

Configure your application your way for development, staging, and production.
Learn More
Testing Library Icon (testing-icon)

Testing Library

Unit test your applications with ease using the built-in testing library.
Learn More
Typed URIs Icon (ship-icon)

Typed URIs

Dioxus typechecks route URIs for you so you never mistype a URI again.
Learn More
diff --git a/docs/src/README.md b/docs/src/README.md new file mode 100644 index 000000000..7e3257634 --- /dev/null +++ b/docs/src/README.md @@ -0,0 +1,101 @@ +# Introduction + +![dioxuslogo](./images/dioxuslogo_full.png) + +**Dioxus** is a framework and ecosystem for building fast, scalable, and robust user interfaces with the Rust programming language. This guide will help you get up-and-running with Dioxus running on the Web, Desktop, Mobile, and more. + +```rust, ignore +// An example Dioxus app - closely resembles React +static App: FC<()> = |cx, props| { + let mut count = use_state(cx, || 0); + + cx.render(rsx!( + h1 { "High-Five counter: {count}" } + button { onclick: move |_| count += 1, "Up high!" } + button { onclick: move |_| count -= 1, "Down low!" } + )) +}; +``` + +The Dioxus API and patterns closely resemble React - if this guide is lacking in any general concept or an error message is confusing, we recommend substituting "React" for "Dioxus" in your web search terms. A major goal of Dioxus is to provide a familiar toolkit for UI in Rust, so we've chosen to follow in the footsteps of popular UI frameworks (React, Redux, etc) - if you know React, then you already know Dioxus. If you don't know either, this guide will still help you! + + + +### Web Support +--- + +The Web is the most-supported target platform for Dioxus. To run on the Web, your app must be compiled to WebAssembly and depend on the `dioxus` crate with the `web` feature enabled. Because of the WASM limitation, not every crate will work with your web-apps, so you'll need to make sure that your crates work without native system calls (timers, IO, etc). + +Because the web is a fairly mature platform, we expect there to be very little API churn for web-based features. + +[Jump to the getting started guide for the web.]() + +Examples: +- [TodoMVC](https://github.com/dioxusLabs/todomvc/) +- [ECommerce]() +- [Photo Editor]() + +[![todomvc](https://github.com/DioxusLabs/todomvc/raw/master/example.png)](https://github.com/dioxusLabs/todomvc/) + +### SSR Support +--- +Dioxus supports server-side rendering! In a pinch, you can literally "debug" the VirtualDom: + +```rust +let dom = VirtualDom::new(App); +println!("{:?}, dom"); +``` + +For rendering statically to an `.html` file or from a WebServer, then you'll want to make sure the `ssr` feature is enabled in the `dioxus` crate and use the `dioxus::ssr` API. We don't expect the SSR API to change drastically in the future. + +```rust +let contents = dioxus::ssr::render_vdom(&dom, |c| c); +``` + + +[Jump to the getting started guide for SSR.]() + +Examples: +- [Example DocSite]() +- [Tide WebServer]() +- [Markdown to fancy HTML generator]() + +### Desktop Support +--- +The desktop is a powerful target for Dioxus, but is currently limited in capability when compared to the Web platform. Currently, desktop apps are rendered with the platform's WebView library, but your Rust code is running natively on a native thread. This means that browser APIs are *not* available, so rendering WebGL, Canvas, etc is not as easy as the Web. However, native system APIs *are* accessible, so streaming, WebSockets, filesystem, etc are all viable APIs. In the future, we plan to move to a custom webrenderer-based DOM renderer with WGPU integrations. + +Desktop APIs will likely be in flux as we figure out better patterns than our ElectronJS counterpart. + +[Jump to the getting started guide for Desktop.]() + +Examples: +- [File explorer]() +- [Bluetooth scanner]() +- [Device Viewer]() + +[![FileExplorerExample](https://github.com/DioxusLabs/file-explorer-example/raw/master/image.png)](https://github.com/dioxusLabs/file-explorer/) + +### Mobile Support +--- +Mobile is currently the least-supported renderer target for Dioxus. Mobile apps are rendered with the platform's WebView, meaning that animations, transparency, and native widgets are not currently achievable. In addition, iOS is the only supported Mobile Platform. It is possible to get Dioxus running on Android and rendered with WebView, but the Rust windowing library that Dioxus uses - tao - does not currently supported Android. + +[Jump to the getting started guide for Mobile.]() + +Examples: +- [Todo App]() +- [Chat App]() + +### LiveView Support +--- + +The internal architecture of Dioxus was designed from day one to support the `LiveView` use-case, where a web server hosts a running app for each connected user. As of today, there is no out-of-the-box LiveView support - you'll need to wire this up yourself. While not currently fully implemented, the expectation is that LiveView apps can be a hybrid between WASM and server-rendered where only portions of a page are "live" and the rest of the page is either server-rendered, statically generated, or handled by the host SPA. + + + +### Multithreaded Support +--- +The Dioxus VirtualDom, sadly, is not `Send.` This means you can't easily use Dioxus with most web frameworks like Tide, Rocket, Axum, etc. Currently, your two options include: +- Actix: Actix supports `!Send` handlers +- VirtualDomPool: A thread-per-core VirtualDom pool that uses message passing and serialization + +When working with web frameworks that require `Send`, it is possible to render a VirtualDom immediately to a String - but you cannot hold the VirtualDom across an await point. For retained-state SSR (essentially LiveView), you'll need to create a VirtualDomPool which solves the `Send` problem. diff --git a/docs/src/SUMMARY.md b/docs/src/SUMMARY.md new file mode 100644 index 000000000..2718e5b2d --- /dev/null +++ b/docs/src/SUMMARY.md @@ -0,0 +1,62 @@ +# Summary + +- [Introduction](README.md) +- [Getting Setup](setup.md) +- [Hello, World!](hello_world.md) +- [Core Topics](concepts/00-index.md) + - [Intro to VNodes](concepts/vnodes.md) + - [VNodes with RSX, HTML, and NodeFactory](concepts/rsx.md) + - [RSX in Depth](concepts/rsx_in_depth.md) + - [Components and Props](concepts/components.md) + - [Memoization](concepts/memoization.md) + - [Hooks and Internal State](concepts/hooks.md) + - [Event handlers](concepts/event_handlers.md) + - [Global State](concepts/sharedstate.md) + - [User Input and Controlled Components](concepts/errorhandling.md) + - [Error handling](concepts/errorhandling.md) +- [Reference Guide]() +- [Advanced Guides]() + - [Custom Renderer]() + - [LiveView Support]() + - [Bundling and Distributing]() +- [Web]() + - [Getting Started]() + - [Down-casting Nodes]() + - [Wrapping Web APIs]() +- [SSR]() + - [Wrapping Web APIs]() +- [Desktop]() + - [Wrapping Web APIs]() +- [Mobile]() + - [Wrapping Web APIs]() + + + + +----------- + +[Contributors](misc/contributors.md) diff --git a/docs/advanced-guides/custom-renderer.md b/docs/src/advanced-guides/custom-renderer.md similarity index 100% rename from docs/advanced-guides/custom-renderer.md rename to docs/src/advanced-guides/custom-renderer.md diff --git a/docs/advanced-guides/liveview.md b/docs/src/advanced-guides/liveview.md similarity index 100% rename from docs/advanced-guides/liveview.md rename to docs/src/advanced-guides/liveview.md diff --git a/docs/src/cli/README.md b/docs/src/cli/README.md new file mode 100644 index 000000000..bcb71988f --- /dev/null +++ b/docs/src/cli/README.md @@ -0,0 +1 @@ +# Command Line Tool diff --git a/docs/src/cli/build.md b/docs/src/cli/build.md new file mode 100644 index 000000000..6a5f7cb4e --- /dev/null +++ b/docs/src/cli/build.md @@ -0,0 +1 @@ +# build diff --git a/docs/src/cli/clean.md b/docs/src/cli/clean.md new file mode 100644 index 000000000..0eceb144a --- /dev/null +++ b/docs/src/cli/clean.md @@ -0,0 +1 @@ +# clean diff --git a/docs/src/cli/init.md b/docs/src/cli/init.md new file mode 100644 index 000000000..a6131c10e --- /dev/null +++ b/docs/src/cli/init.md @@ -0,0 +1 @@ +# init diff --git a/docs/src/cli/serve.md b/docs/src/cli/serve.md new file mode 100644 index 000000000..5293e3f35 --- /dev/null +++ b/docs/src/cli/serve.md @@ -0,0 +1 @@ +# serve diff --git a/docs/src/cli/test.md b/docs/src/cli/test.md new file mode 100644 index 000000000..83c831f0b --- /dev/null +++ b/docs/src/cli/test.md @@ -0,0 +1 @@ +# test diff --git a/docs/src/cli/watch.md b/docs/src/cli/watch.md new file mode 100644 index 000000000..12ec1aa74 --- /dev/null +++ b/docs/src/cli/watch.md @@ -0,0 +1 @@ +# watch diff --git a/docs/src/concepts/00-index.md b/docs/src/concepts/00-index.md new file mode 100644 index 000000000..230c8a505 --- /dev/null +++ b/docs/src/concepts/00-index.md @@ -0,0 +1,73 @@ +# Core Topics + +In this chapter of the book, we'll cover some core topics on how Dioxus works and how to best leverage the features to build a beautiful, reactive app. + +At a very high level, Dioxus is simply a Rust framework for _declaring_ user interfaces and _reacting_ to changes. + +1) We declare what we want our user interface to look like given a state using Rust-based logic and control flow. +2) We declare how we want our state to change when the user triggers an event. + + +## Declarative UI + +Dioxus is a *declarative* framework. This means that instead of manually writing calls to "create element" and "set element background to red," we simply *declare* what we want the element to look like and let Dioxus handle the differences. + +Let's pretend that we have a stoplight we need to control - it has a color state with red, yellow, and green as options. + + +Using an imperative approach, we would have to manually declare each element and then handlers for advancing the stoplight. + +```rust +let container = Container::new(); + +let green_light = Light::new().color("green").enabled(true); +let yellow_light = Light::new().color("yellow").enabled(false); +let red_light = Light::new().color("red").enabled(false); +container.push(green_light); +container.push(yellow_light); +container.push(red_light); + +container.onclick(move |_| { + if red_light.enabled() { + red_light.set_enabled(false); + green_light.set_enabled(true); + } else if yellow_light.enabled() { + yellow_light.set_enabled(false); + red_light.set_enabled(true); + } else if green_light.enabled() { + green_light.set_enabled(false); + yellow_light.set_enabled(true); + } +}); +``` + +As the UI grows in scale, our logic to keep each element in the proper state would grow exponentially. This can become very unwieldy and lead to out-of-sync UIs that harm user experience. + +Instead, with Dioxus, we *declare* what we want our UI to look like: + +```rust +let state = "red"; + +rsx!( + Container { + Light { color: "red", enabled: {state == "red"} } + Light { color: "yellow", enabled: {state == "yellow"} } + Light { color: "green", enabled: {state == "green"} } + onclick: |_| { + state = match state { + "green" => "yellow", + "yellow" => "red", + "red" => "green", + } + } + } +) +``` + +Remember: this concept is not new! Many frameworks are declarative - with React being the most popular. Declarative frameworks tend to be much more enjoyable to work with than imperative frameworks. + +Here's some reading about declaring UI in React: + +- [https://stackoverflow.com/questions/33655534/difference-between-declarative-and-imperative-in-react-js](https://stackoverflow.com/questions/33655534/difference-between-declarative-and-imperative-in-react-js) + +- [https://medium.com/@myung.kim287/declarative-vs-imperative-251ce99c6c44](https://medium.com/@myung.kim287/declarative-vs-imperative-251ce99c6c44) diff --git a/docs/main-concepts/04-hooks.md b/docs/src/concepts/04-hooks.md similarity index 100% rename from docs/main-concepts/04-hooks.md rename to docs/src/concepts/04-hooks.md diff --git a/docs/main-concepts/05-context-api.md b/docs/src/concepts/05-context-api.md similarity index 100% rename from docs/main-concepts/05-context-api.md rename to docs/src/concepts/05-context-api.md diff --git a/docs/main-concepts/06-subscription-api.md b/docs/src/concepts/06-subscription-api.md similarity index 100% rename from docs/main-concepts/06-subscription-api.md rename to docs/src/concepts/06-subscription-api.md diff --git a/docs/main-concepts/07-state-management.md b/docs/src/concepts/07-state-management.md similarity index 100% rename from docs/main-concepts/07-state-management.md rename to docs/src/concepts/07-state-management.md diff --git a/docs/main-concepts/09-interactivity.md b/docs/src/concepts/09-interactivity.md similarity index 100% rename from docs/main-concepts/09-interactivity.md rename to docs/src/concepts/09-interactivity.md diff --git a/docs/main-concepts/10-concurrent-mode.md b/docs/src/concepts/10-concurrent-mode.md similarity index 100% rename from docs/main-concepts/10-concurrent-mode.md rename to docs/src/concepts/10-concurrent-mode.md diff --git a/docs/main-concepts/11-arena-memo.md b/docs/src/concepts/11-arena-memo.md similarity index 100% rename from docs/main-concepts/11-arena-memo.md rename to docs/src/concepts/11-arena-memo.md diff --git a/docs/main-concepts/12-signals.md b/docs/src/concepts/12-signals.md similarity index 100% rename from docs/main-concepts/12-signals.md rename to docs/src/concepts/12-signals.md diff --git a/docs/main-concepts/13-subtrees.md b/docs/src/concepts/13-subtrees.md similarity index 100% rename from docs/main-concepts/13-subtrees.md rename to docs/src/concepts/13-subtrees.md diff --git a/docs/main-concepts/9901-hello-world.md b/docs/src/concepts/9901-hello-world.md similarity index 100% rename from docs/main-concepts/9901-hello-world.md rename to docs/src/concepts/9901-hello-world.md diff --git a/docs/src/concepts/components.md b/docs/src/concepts/components.md new file mode 100644 index 000000000..62d0eaf81 --- /dev/null +++ b/docs/src/concepts/components.md @@ -0,0 +1,18 @@ +# Components and Props + +Dioxus should look and feel just like writing functional React components. In Dioxus, there are no class components with lifecycles. All state management is done via hooks. This encourages logic reusability and lessens the burden on Dioxus to maintain a non-breaking lifecycle API. + +```rust +#[derive(Properties, PartialEq)] +struct MyProps { + name: String +} + +fn Example(cx: Context) -> DomTree { + html! {
"Hello {cx.cx.name}!"
} +} +``` + +Here, the `Context` object is used to access hook state, create subscriptions, and interact with the built-in context API. Props, children, and component APIs are accessible via the `Context` object. The functional component macro makes life more productive by inlining props directly as function arguments, similar to how Rocket parses URIs. + +The final output of components must be a tree of VNodes. We provide an html macro for using JSX-style syntax to write these, though, you could use any macro, DSL, templating engine, or the constructors directly. diff --git a/docs/src/concepts/errorhandling.md b/docs/src/concepts/errorhandling.md new file mode 100644 index 000000000..face61c6e --- /dev/null +++ b/docs/src/concepts/errorhandling.md @@ -0,0 +1 @@ +# Error handling diff --git a/docs/src/concepts/event_handlers.md b/docs/src/concepts/event_handlers.md new file mode 100644 index 000000000..ee4560b1e --- /dev/null +++ b/docs/src/concepts/event_handlers.md @@ -0,0 +1 @@ +# Event handlers diff --git a/docs/src/concepts/hooks.md b/docs/src/concepts/hooks.md new file mode 100644 index 000000000..65fab158a --- /dev/null +++ b/docs/src/concepts/hooks.md @@ -0,0 +1 @@ +# Hooks and Internal State diff --git a/docs/src/concepts/lists.md b/docs/src/concepts/lists.md new file mode 100644 index 000000000..118132427 --- /dev/null +++ b/docs/src/concepts/lists.md @@ -0,0 +1 @@ +# Conditional Lists and Keys diff --git a/docs/src/concepts/memoization.md b/docs/src/concepts/memoization.md new file mode 100644 index 000000000..3ed477f68 --- /dev/null +++ b/docs/src/concepts/memoization.md @@ -0,0 +1 @@ +# Memoization diff --git a/docs/src/concepts/rsx.md b/docs/src/concepts/rsx.md new file mode 100644 index 000000000..8f7728f35 --- /dev/null +++ b/docs/src/concepts/rsx.md @@ -0,0 +1,63 @@ +# VNodes with RSX, HTML, and NodeFactory + +Many modern frameworks provide a domain-specific-language for declaring user-interfaces. In the case of React, this language extension is called JSX and must be handled through additional dependencies and pre/post processors to transform your source code. With Rust, we can simply provide a procedural macro in the Dioxus dependency itself that mimics the JSX language. + +With Dioxus, we actually ship two different macros - a macro that mimics JSX (the `html!` macro) and a macro that mimics Rust's native nested-struct syntax (the `rsx!` macro). These macros simply transform their inputs into NodeFactory calls. + +For instance, this html! call: +```rust +html!(
"hello world"
) +``` +becomes this NodeFactory call: +```rust +|f| f.element( + dioxus_elements::div, // tag + [], // listeners + [], // attributes + [f.static_text("hello world")], // children + None // key +) +``` +The NodeFactory API is fairly ergonomic, making it a viable option to use directly. The NodeFactory API is also compile-time correct and has incredible syntax highlighting support. We use what Rust calls a "unit type" - the `dioxus_elements::div` and associated methods to ensure that a `div` can only have attributes associated with `div`s. This lets us tack on relevant documentation, autocomplete support, and jump-to-definition for methods and attributes. + +![Compile time correct syntax](../images/compiletimecorrect.png) + +## html! macro + +The html! macro supports a limited subset of the html standard. Rust's macro parsing tools are somewhat limited, so all text between tags _must be quoted_. + +However, writing HTML by hand is a bit tedious - IDE tools for Rust don't support linting/autocomplete/syntax highlighting. We suggest using RSX - it's more natural for Rust programs and _does_ integrate well with Rust IDE tools. + +```rust +let name = "jane"; +let pending = false; +let count = 10; + +dioxus::ssr::render_lazy(html! { +
+

"Hello, {name}!"

+

"Status: {pending}!"

+

"Count {count}!"

+
+}); +``` + +## rsx! macro + +The rsx! macro is a VNode builder macro designed especially for Rust programs. Writing these should feel very natural, much like assembling a struct. VSCode also supports these with code folding, bracket-tabbing, bracket highlighting, section selecting, inline documentation, GOTO definition, and refactoring support. + +When helpful, the Dioxus VSCode extension provides a way of converting a selection of HTML directly to RSX, so you can import templates from the web directly into your existing app. + +It's also a bit easier on the eyes than HTML. + +```rust +dioxus::ssr::render_lazy(rsx! { + div { + p {"Hello, {name}!"} + p {"Status: {pending}!"} + p {"Count {count}!"} + } +}); +``` + +In the next section, we'll cover the `rsx!` macro in more depth. diff --git a/docs/src/concepts/rsx_in_depth.md b/docs/src/concepts/rsx_in_depth.md new file mode 100644 index 000000000..a8651a585 --- /dev/null +++ b/docs/src/concepts/rsx_in_depth.md @@ -0,0 +1,229 @@ +# RSX in Depth + +The RSX macro makes it very easy to assemble complex UIs with a very natural Rust syntax: + + +```rust +rsx!(div { + button { + "Add todo", + onclick: move |e| todos.write().new_todo() + } + ul { + class: "todo-list" + (todos.iter().map(|(key, todo)| rsx!( + li { + class: "beautiful-todo" + key: "f" + h3 { "{todo.title}" } + p { "{todo.contents}"} + } + ))) + } +}) +``` + +In this section, we'll cover the `rsx!` macro in depth. If you prefer to learn through examples, the `reference` guide has plenty of examples on how to use `rsx!` effectively. + + + +### Element structure + +```rust +div { + hidden: false, + "some text" + child {} + Component {} + {/* literal tokens that resolve to vnodes */} +} + +``` + +Each element takes a comma-separated list of expressions to build the node. Roughly, here's how they work: + +- `name: value` sets a property on this element. +- `"text"` adds a new text element +- `tag {}` adds a new child element +- `CustomTag {}` adds a new child component +- `{expr}` pastes the `expr` tokens literally. They must be `IntoIterator where T: IntoVnode` to work properly + +Commas are entirely optional, but might be useful to delineate between elements and attributes. + +The `render` function provides an **extremely efficient** allocator for VNodes and text, so try not to use the `format!` macro in your components. Rust's default `ToString` methods pass through the global allocator, but all text in components is allocated inside a manually-managed Bump arena. To push you in the right direction, all text-based attributes take `std::fmt::Arguments` directly, so you'll want to reach for `format_args!` when the built-in `f-string` interpolation just doesn't cut it. + + +### Ignoring `cx.render` with `rsx!(cx, ...)` + +Sometimes, writing `cx.render` is a hassle. The `rsx! macro will accept any token followed by a comma as the target to call "render" on: + +```rust +cx.render(rsx!( div {} )) +// becomes +rsx!(cx, div {}) +``` + + + +### Conditional Rendering + +Sometimes, you might not want to render an element given a condition. The rsx! macro will accept any tokens directly contained with curly braces, provided they resolve to a type that implements `IntoIterator`. This lets us write any Rust expression that resolves to a VNode: + + +```rust +rsx!({ + if enabled { + rsx!(cx, div {"enabled"}) + } else { + rsx!(cx, li {"disabled"}) + } +}) +``` +A convenient way of hiding/showing an element is returning an `Option`. When combined with `and_then`, we can succinctly control the display state given some boolean: + +```rust +rsx!({ + a.and_then(rsx!(div {"enabled"})) +}) +``` + +It's important to note that the expression `rsx!()` is typically lazy - this expression must be _rendered_ to produce a VNode. When using match statements, we must render every arm as to avoid the `no two closures are identical` rule that Rust imposes: + +```rust +// this will not compile! +match case { + true => rsx!(div {}), + false => rsx!(div {}) +} + +// the nodes must be rendered first +match case { + true => rsx!(cx, div {}), + false => rsx!(cx, div {}) +} +``` + +### Lists + +Again, because anything that implements `IntoIterator` is valid, we can use lists directly in our `rsx!`: + +```rust +let items = vec!["a", "b", "c"]; + +cx.render(rsx!{ + ul { + {items.iter().map(|f| rsx!(li { "a" }))} + } +}) +``` + +Sometimes, it makes sense to render VNodes into a list: + +```rust +let mut items = vec![]; + +for _ in 0..5 { + items.push(rsx!(cx, li {} )) +} + +rsx!(cx, {items} ) +``` + +#### Lists and Keys + +When rendering the VirtualDom to the screen, Dioxus needs to know which elements have been added and which have been removed. These changes are determined through a process called "diffing" - an old set of elements is compared to a new set of elements. If an element is removed, then it won't show up in the new elements, and Dioxus knows to remove it. + +However, with lists, Dioxus does not exactly know how to determine which elements have been added or removed if the order changes or if an element is added or removed from the middle of the list. + +In these cases, it is vitally important to specify a "key" alongside the element. Keys should be persistent between renders. + +```rust +fn render_list(cx: Context, items: HashMap) -> DomTree { + rsx!(cx, ul { + {items.iter().map(|key, item| { + li { + key: key, + h2 { "{todo.title}" } + p { "{todo.contents}" } + } + })} + }) +} +``` + +There have been many guides made for keys in React, so we recommend reading up to understand their importance: + +- [React guide on keys](https://reactjs.org/docs/lists-and-keys.html) +- [Importance of keys (Medium)](https://kentcdodds.com/blog/understanding-reacts-key-prop) + +### Complete Reference +```rust +let text = "example"; + +cx.render(rsx!{ + div { + h1 { "Example" }, + + {title} + + // fstring interpolation + "{text}" + + p { + // Attributes + tag: "type", + + // Anything that implements display can be an attribute + abc: 123, + + enabled: true, + + // attributes also supports interpolation + // `class` is not a restricted keyword unlike JS and ClassName + class: "big small wide short {text}", + + class: format_args!("attributes take fmt::Arguments. {}", 99), + + tag: {"these tokens are placed directly"} + + // Children + a { "abcder" }, + + // Children with attributes + h2 { "hello", class: "abc-123" }, + + // Child components + CustomComponent { a: 123, b: 456, key: "1" }, + + // Child components with paths + crate::components::CustomComponent { a: 123, b: 456, key: "1" }, + + // Iterators + { (0..3).map(|i| rsx!( h1 {"{:i}"} )) }, + + // More rsx!, or even html! + { rsx! { div { } } }, + { html! {
} }, + + // Matching + // Requires rendering the nodes first. + // rsx! is lazy, and the underlying closures cannot have the same type + // Rendering produces the VNode type + {match rand::gen_range::(1..3) { + 1 => rsx!(cx, h1 { "big" }) + 2 => rsx!(cx, h2 { "medium" }) + _ => rsx!(cx, h3 { "small" }) + }} + + // Optionals + {true.and_then(|f| rsx!( h1 {"Conditional Rendering"} ))} + + // Child nodes + {cx.children()} + + // Any expression that is `IntoVNode` + {expr} + } + } +}) +``` diff --git a/docs/src/concepts/sharedstate.md b/docs/src/concepts/sharedstate.md new file mode 100644 index 000000000..ec1ede1d1 --- /dev/null +++ b/docs/src/concepts/sharedstate.md @@ -0,0 +1 @@ +# Global State diff --git a/docs/main-concepts/testing.md b/docs/src/concepts/testing.md similarity index 100% rename from docs/main-concepts/testing.md rename to docs/src/concepts/testing.md diff --git a/docs/src/concepts/vnodes.md b/docs/src/concepts/vnodes.md new file mode 100644 index 000000000..df8e8d391 --- /dev/null +++ b/docs/src/concepts/vnodes.md @@ -0,0 +1,64 @@ +# VNodes and Elements + +At the heart of Dioxus is the concept of an "element" - a container that can have children, properties, event handlers, and other important attributes. Dioxus only knows how to render the `VNode` datastructure - an Enum variant of an Element, Text, Components, Fragments, and Anchors. + +Because Dioxus is meant for the Web and uses WebView as a desktop and mobile renderer, almost all elements in Dioxus share properties with their HTML counterpart. When we declare our elements, we'll do so using HTML semantics: + +```rust +rsx!( + div { + "hello world" + } +) +``` + +As you would expect, this snippet would generate a simple hello-world div. In fact, we can render these nodes directly with the SSR crate: + +```rust +dioxus::ssr::render_lazy(rsx!( + div { + "hello world" + } +)) +``` + +And produce the corresponding html structure: +```html +
hello world
+``` + +Our structure declared above is made of two variants of the `VNode` datastructure: +- A VElement with a tagname of `div` +- A VText with contents of `"hello world"` + +## All the VNode types + +VNodes can be any of: +- **Element**: a container with a tag name, namespace, attributes, children, and event listeners +- **Text**: bump allocated text derived from string formatting +- **Fragments**: a container of elements with no parent +- **Suspended**: a container for nodes that aren't yet ready to be rendered +- **Anchor**: a special type of node that is only available when fragments have no children + +In practice, only elements and text can be initialized directly while other node types can only be created through hooks or NodeFactory methods. + +## Bump Arena Allocation + +To speed up the process of building our elements and text, Dioxus uses a special type of memory allocator tuned for large batches of small allocations called a Bump Arena. We use the `bumpalo` allocator which was initially developed for Dioxus' spiritual predecessor: `Dodrio.` + +- Bumpalo: [https://github.com/fitzgen/bumpalo](https://github.com/fitzgen/bumpalo) +- Dodrio: [https://github.com/fitzgen/dodrio](https://github.com/fitzgen/dodrio) + +In other frontend frameworks for Rust, nearly every string is allocated using the global allocator. This means that strings in Rust do not benefit from the immutable string interning optimizations that JavaScript engines employ. By using a smaller, faster, more limited allocator, we can increase framework performance, bypassing even the naive WasmBindgen benchmarks for very quick renders. + +It's important to note that VNodes are not `'static` - the VNode definition has a lifetime attached to it: + +```rust, ignore +enum VNode<'bump> { + VElement { tag: &'static str, children: &'bump [VNode<'bump>] }, + VText { content: &'bump str }, + // other VNodes .... +} +``` + +Because VNodes use a bump allocator as their memory backing, they can only be created through the `NodeFactory` API - which we'll cover in the next chapter. This particular detail is important to understand because "rendering" VNodes produces a lifetime attached to the bump arena - which must be explicitly declared when dealing with components that borrow data from their parents. diff --git a/docs/src/for_developers/README.md b/docs/src/for_developers/README.md new file mode 100644 index 000000000..35c742114 --- /dev/null +++ b/docs/src/for_developers/README.md @@ -0,0 +1 @@ +# For Developers diff --git a/docs/src/for_developers/backends.md b/docs/src/for_developers/backends.md new file mode 100644 index 000000000..bf154dc61 --- /dev/null +++ b/docs/src/for_developers/backends.md @@ -0,0 +1 @@ +# Alternative Backends diff --git a/docs/src/for_developers/preprocessors.md b/docs/src/for_developers/preprocessors.md new file mode 100644 index 000000000..eafd89490 --- /dev/null +++ b/docs/src/for_developers/preprocessors.md @@ -0,0 +1 @@ +# Preprocessors diff --git a/docs/src/format/README.md b/docs/src/format/README.md new file mode 100644 index 000000000..a095177ba --- /dev/null +++ b/docs/src/format/README.md @@ -0,0 +1 @@ +# Format diff --git a/docs/src/format/configuration/README.md b/docs/src/format/configuration/README.md new file mode 100644 index 000000000..a025a48b1 --- /dev/null +++ b/docs/src/format/configuration/README.md @@ -0,0 +1 @@ +# Configuration diff --git a/docs/src/format/configuration/environment-variables.md b/docs/src/format/configuration/environment-variables.md new file mode 100644 index 000000000..1d535f22b --- /dev/null +++ b/docs/src/format/configuration/environment-variables.md @@ -0,0 +1 @@ +# Environment Variables diff --git a/docs/src/format/configuration/general.md b/docs/src/format/configuration/general.md new file mode 100644 index 000000000..23d342b49 --- /dev/null +++ b/docs/src/format/configuration/general.md @@ -0,0 +1 @@ +# General diff --git a/docs/src/format/configuration/preprocessors.md b/docs/src/format/configuration/preprocessors.md new file mode 100644 index 000000000..eafd89490 --- /dev/null +++ b/docs/src/format/configuration/preprocessors.md @@ -0,0 +1 @@ +# Preprocessors diff --git a/docs/src/format/configuration/renderers.md b/docs/src/format/configuration/renderers.md new file mode 100644 index 000000000..3d174b89a --- /dev/null +++ b/docs/src/format/configuration/renderers.md @@ -0,0 +1 @@ +# Renderers diff --git a/docs/src/format/mathjax.md b/docs/src/format/mathjax.md new file mode 100644 index 000000000..41c57bff1 --- /dev/null +++ b/docs/src/format/mathjax.md @@ -0,0 +1 @@ +# MathJax Support diff --git a/docs/src/format/mdbook.md b/docs/src/format/mdbook.md new file mode 100644 index 000000000..13bd6bc23 --- /dev/null +++ b/docs/src/format/mdbook.md @@ -0,0 +1 @@ +# mdBook-specific features diff --git a/docs/src/format/summary.md b/docs/src/format/summary.md new file mode 100644 index 000000000..746e7ad06 --- /dev/null +++ b/docs/src/format/summary.md @@ -0,0 +1 @@ +# SUMMARY.md diff --git a/docs/src/format/theme/README.md b/docs/src/format/theme/README.md new file mode 100644 index 000000000..dbe490157 --- /dev/null +++ b/docs/src/format/theme/README.md @@ -0,0 +1 @@ +# Theme diff --git a/docs/src/format/theme/editor.md b/docs/src/format/theme/editor.md new file mode 100644 index 000000000..068f68b3c --- /dev/null +++ b/docs/src/format/theme/editor.md @@ -0,0 +1 @@ +# Editor diff --git a/docs/src/format/theme/index-hbs.md b/docs/src/format/theme/index-hbs.md new file mode 100644 index 000000000..21b912727 --- /dev/null +++ b/docs/src/format/theme/index-hbs.md @@ -0,0 +1 @@ +# index.hbs diff --git a/docs/src/format/theme/syntax-highlighting.md b/docs/src/format/theme/syntax-highlighting.md new file mode 100644 index 000000000..5a52c1080 --- /dev/null +++ b/docs/src/format/theme/syntax-highlighting.md @@ -0,0 +1 @@ +# Syntax highlighting diff --git a/docs/gettingstarted/fromjs.md b/docs/src/gettingstarted/fromjs.md similarity index 100% rename from docs/gettingstarted/fromjs.md rename to docs/src/gettingstarted/fromjs.md diff --git a/docs/gettingstarted/webapps.md b/docs/src/gettingstarted/webapps.md similarity index 100% rename from docs/gettingstarted/webapps.md rename to docs/src/gettingstarted/webapps.md diff --git a/docs/main-concepts/02-hello.md b/docs/src/hello_world.md similarity index 68% rename from docs/main-concepts/02-hello.md rename to docs/src/hello_world.md index c33e115e7..3a0d93b0e 100644 --- a/docs/main-concepts/02-hello.md +++ b/docs/src/hello_world.md @@ -2,6 +2,8 @@ Let's put together a simple "hello world" to get acquainted with Dioxus. The Dioxus-CLI has an equivalent to "create-react-app" built-in, but setting up Dioxus apps is simple enough to not need additional tooling. +This demo will build a simple desktop app. Check out the platform-specific setup guides on how to port your app to different targets. + First, let's start a new project. Rust has the concept of executables and libraries. Executables have a `main.rs` and libraries have `lib.rs`. A project may have both. Our `hello world` will be an executable - we expect our app to launch when we run it! Cargo provides this for us: ```shell @@ -66,12 +68,12 @@ edition = "2018" To use the Dioxus library, we'll want to add the most recent version of `Dioxus` to our crate. If you have `cargo edit` installed, simply call: ```shell -$ cargo add dioxus --features web +$ cargo add dioxus --features desktop ``` -It's very important to add `dioxus` with the `web` feature for this example. The `dioxus` crate is a batteries-include crate that combines a bunch of utility crates together, ensuring compatibility of the most important parts of the ecosystem. Under the hood, the `dioxus` crate configures various renderers, hooks, debug tooling, and more. The `web` feature ensures the we only depend on the smallest set of required crates to compile. +It's very important to add `dioxus` with the `desktop` feature for this example. The `dioxus` crate is a batteries-include crate that combines a bunch of utility crates together, ensuring compatibility of the most important parts of the ecosystem. Under the hood, the `dioxus` crate configures various renderers, hooks, debug tooling, and more. The `desktop` feature ensures the we only depend on the smallest set of required crates to compile and render. -If you plan to develop extensions for the `Dioxus` ecosystem, please use `dioxus-core` crate. The `dioxus` crate re-exports `dioxus-core` alongside other utilties. As a result, `dioxus-core` is much more stable than the batteries-included `dioxus` crate. +If you plan to develop extensions for the `Dioxus` ecosystem, please use the `dioxus` crate with the `core` feature to limit the amount of dependencies your project brings in. Now, let's edit our `main.rs` file: @@ -80,13 +82,13 @@ use diouxs::prelude::*; fn main() { - dioxus::web::start(App, |c| c).unwrap(); + dioxus::desktop::start(App, |c| c); } static App: FC<()> = |cx, props| { - cx.render(rsx! { + cx.render(rsx! ( div { "Hello, world!" } - }) + )) }; ``` @@ -98,13 +100,11 @@ This bit of code imports everything from the the `prelude` module. This brings i use diouxs::prelude::*; ``` -This bit of code starts the WASM renderer as a future (JS Promise) and then awaits it. This is very similar to the `ReactDOM.render()` method you use for a React app. We pass in the `App` function as a our app. The `|c| c` closure provides a way to configure the WebSys app, enabling things like hydration, pre-rendering, and other tweaks. The simplest configuration is just the defaults. - -Calling "start" will launch Dioxus on the web's main thread, running `wasm_bindgen_futures::block_on`. It's possible to "launch" the WebSys renderer as an async function - check the documentation for more details. +This initialization code launches a Tokio runtime on a helper thread - where your code will run, and then the WebView on the main-thread. Due to platform requirements, the main thread is blocked by this call. ```rust fn main() { - dioxus::web::start(App, |c| c).unwrap(); + dioxus::desktop::start(App, |c| c); } ``` @@ -121,35 +121,35 @@ static App: FC<()> = |cx, props| { The closure `FC<()>` syntax is identical to the function syntax, but with lifetimes managed for you. In cases where props need to borrow from their parent, you will need to specify lifetimes using the function syntax: ```rust -fn App<'a>(cx: Context<'a>, props: &()) -> DomTree<'a> { +fn App<'a>(cx: Context<'a>, props: &'a ()) -> DomTree<'a> { cx.render(rsx! { div { "Hello, world!" } }) } ``` + In React, you'll save data between renders with hooks. However, hooks rely on global variables which make them difficult to integrate in multi-tenant systems like server-rendering. In Dioxus, you are given an explicit `Context` object to control how the component renders and stores data. Next, we're greeted with the `rsx!` macro. This lets us add a custom DSL for declaratively building the structure of our app. The semantics of this macro are similar to that of JSX and HTML, though with a familiar Rust-y interface. The `html!` macro is also available for writing components with a JSX/HTML syntax. The `rsx!` macro is lazy: it does not immediately produce elements or allocates, but rather builds a closure which can be rendered with `cx.render`. -Now, let's launch our app in a development server: +Now, let's launch our app: ```shell -$ dioxus develop +$ cargo run ``` Huzzah! We have a simple app. -![Hello world](../assets/01-setup-helloworld.png) +![Hello world](images/01-setup-helloworld.png) If we wanted to golf a bit, we can shrink our hello-world even smaller: ```rust fn main() { - dioxus::web::start(|cx, _| cx.render(diouxs::rsx!( div { "Hello, World!" } )) + static App: FC<()> = |cx, props| rsx!(cx, div {"hello world!"}); + dioxus::web::start(App, |c| c); } ``` - -Anyways, let's move on to something a bit more complex. diff --git a/docs/assets/01-setup-helloworld.png b/docs/src/images/01-setup-helloworld.png similarity index 100% rename from docs/assets/01-setup-helloworld.png rename to docs/src/images/01-setup-helloworld.png diff --git a/docs/src/images/compiletimecorrect.png b/docs/src/images/compiletimecorrect.png new file mode 100644 index 0000000000000000000000000000000000000000..8fab7509fe6321c957b25b77ee2927cd3c24d787 GIT binary patch literal 196054 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

5^Y|FMQCq&bZ)=_Yrj(Dd^(qsz#QD70c-N-N_z< zIs%eO>KMlD7o{J*K4$u=q_QT`{kcq98iK)dJ_1w{CImXVx=K7w8V4$eW=myhzPxLmSXI3H0=QSi17ay#}DswvW)6c#wCh(V!ZH*6Ngx z{~WUtbo<0&JFj$;nerL*<&*H!;;%ZOFw*6UJy*8K?E}n8E24Cj4h5K?ggGU?O`dN4 z?g!EaT-5jIRxjjW$kIPQ82=_LYrZTiROzqwVe>q0WM?PGqVYa43P|nm87^z-z%Km7 z#q4R(M*^s58)5AXWb|H&Y<(V_qhra6S4d>3X zEYLGTb8vU-PiQwkPX%6n`?<~8Bv_Y1@M2X_Z((b3E*y#`Pa!uOew2H;%QyZ|k`}g7 zM7sR;Jg>^_yP_IZqWE$&?N_7!k4U{8ArAIP&!S6aeV*#EbowB3l?~IgHRrd4hzx6s z4moRmC3?s!>GBp5t2XuX{$#!z(}KtxD-Yo*@<8LuwKCp=;!?K35J~@n=C!`g9@l9P~dqJDcXF-6e9x_`?y&=tlHcJa? zM=Ckk**kXTpw1|7wv_F@WZ`5c%g{sJGglz{NTziE4OL{G_}VK@K;_VUlrQ7~AHWYk zwfpUVKZTW>S$hYF-$7aFtd;O_D{sY!>)SKx0JG_26=$kQ-q0W*-rmZ+`A`2fw&XYy z&KtXrWWeuNSTL24kPr`KNx%f}cmMN!D48nth)pc)*6;A}fqDKi9#g*%rQqm+PZ+;M zp>n0={o}HPym_&17ur{-lcAbhUrwIdj!)|{AI7N9F4`C0w&|ZW!~ME?j1YcSsfyq7 zU-z2cN%rvOPk zZl{}4!RREO)Zt{Tfa6BMN)YR`lH}gB$Dx;Y;NTKzham!W)-zu>SBC9HciWQj-kAXN z2cU?{=8W~F{evgpGA!h)FK(H*73Ksn4aI6G~rlh<)GoJ~VvtFSvk zM?PG~^0?e)O`O~<3xBwLFg{L+J-^@To1yZEiH`0${_M{4C1t|c9=A_{c*Z9JBza=fFI;!HhehMH@bN45cS|r)bD*QAd~zd#OvYTPpqBG%m`{>PWMD7{uUle?^S(!Tr$WK0kt6vq5(ypMEq zvhgP$V@WneGBjA5-P}bL6htW#B&qyyL0Fs9SI!!>&eHaB{Wg*%RS#TWeMqT?Pq1F& zFM$=b>IY)L42`3M-4I+w7qOrkrj5hRi2YtV8=eNDFy`Hrw+Cjm8t%X{wa}{A*ke0g zZ@w53-f(vF@sd@);=RMJF1p-na(a4%zNdRppR9%pe}4#7v`U&j6Bic_RMO8- zskP>;k0*C^ zi!DdSeGxL246nJ=Vnr5rn+0`0^feC1S5!+iF{ov*;jq8?vR~4mKD$mF-q*!8Ccj!g z^;!eURRd&7g)a0iM{{Zq%gNvE!I>eywy6g8xxFm$V0x3=H<1P-aI*cuVDPbut}fqK z-zVZz8d~!ONj&jaG{VQ4%QxuD4+eGpCjBG!+jv#@>fU0oz4wo|2hn-rBt0<(ZpLRF zFR}ZB-pB|GXpo4SPpOf|*TGO+yw}G$m6NbU1NJtM@{sARe!*-EhT`_4W>&gikQ*{I z!(aCN5`PTqcB-@JliK1~rjHLB$SezXH!@7Qabli*^_jIk{o))`1b&&LYwqq}I#hA} zDZ&W8JGJm&P>=6;8GEwA9sfV+7y>AgQH0QUagf%Q^MI=mO}uZN!F zUmt1t+l`jaur~VRH^Ll$js|~@$7hvJK;R_19A2}2pkxEalYRr{!|<Dhq*EpL#&MXRu9H*~v&hHHB z()E^av)z6Ny{aMdXrY&vZKYF~dc|LA%ZL=F*ZPsv=boh3I`YtQZ;bfivAhhEP_qq+ zUVW-qG6Hk{d=}%auO2AeQf2**>Y5E8qh<|F1xF_Wc?6O0Qy*^{D^77Prl(jSzVI*s z7q>U&#Y6sX7cWLrpVwFN80?0+@HXNnK!|%UMNwCWfamcw%lzw`z%k!G!-IJpLh`M% z-GR1E%WRv77YBl;cKAiwhm)E2)q)JH##kdt&rA~WU4}3*c5n@t65APC{w6$>*!|26H=;9XB%GJou6{Azw&xi5?pE0h1-Qv zAC}Zvv+yRlbzcT6%P1(j!Itxk!}^f)V2KCr*t+-9>xQ@Fe7&$Kg6VyyugGN|nv>&n zesvYp>QySFsL&CKw8sKKUVd)J%U_wdS*sNPCCK+g3#{pzv#Bf^y`gQc>3|uRw<88p z1Dwf4nogm<)y{NYw6A8}B58YejL2C-Nx;HrK@?>&9#n(d!|?v{CWr`J8>@l*h1Y=a z4$f#gfNX}Td4PUz-n%VnS3_z6WBn}d%3jvP{PB73*4cRV@eL@LUquk%E|ACXV>Yh!Q zpL?y12S1w-d=}Zbn>-z_!eBVtyp#H03R!xr#dD2ROEI<%eSO_cQ3&66x#qp{nA8h=dOhVDOaQ3sKo#*o(*SaQUX0 zj!U`!wmsl@;*ua>ZM11(Qh?q0y|(b67Tv+tDkPPv{C5qF!K{@w{TA|0pY^=~lU%f8 zS&XumTf>Fb-n?#Sgd^`2VDAr=0F0oKfwBE4tr=gqLwP!iMtOl@;+L{j;LrKya`FFZ zj5_`Gys^uXia9z%=SXi<{`nvN!?}gTdH6Blhzwd+*m6-hZB#d>Ii%^D*(Ib}{ZVzF ze2qeX&PQ7Rt^W}Pbzgv?GbH8Oken8PJds8=CrRg3oP@7wWsJz=Cl z0y168nDPG;TTG<{e$Qw9TkSNcIeqi~eqVgOPRHkd+zD(D*K4l3R3Gq~n3`Pwqd_MG zb%&tT$ul4s05#XO7Y{YH05!FL1q^+qzDg8&Lu^M+APOqGn0NToPoB|1{Pp5f201*V z@t_L@tW9BjH59`CDSQ6=uW1BenL>v}TO&lx)=YwBp06&D0~drkLe{W0uy0QLcVaB7 zEDEOG^4_l7Ix8=CmCTt?>S2__pRhq%5(5$cdp-;SU0BWZkBdI!z}IExUGqx)(>C*n z3lM02!Ptlrtl7rJ*h*d3kyiutKAPWr6Atusl{ya{Odmp_xQ6#NSEfafrn5V&pnV#V27loCnI@lR9ML#aPm-)pXQzgOQ8-yTeWle8ll zm;#a3FJgmu2(-Y1(vU}IdJvgbx1u*cZp^|I^!TF^pY|vy9o0&#~ zK<9FErjGw|J^#3d+`0eSc&PJ|t5%hWnpIH3bozPN&px`>TM7|1F%{>~7+U#uy`@1?i zieE*XOcrW?b8qq>C#P4q9Ui7+IbDPY{2^2(zPU0GTAp7$%q=}LIl znhzY%#=7qq(T{pD!{%E(CeR?VPBu z=q%moNd^+Z`iaPaRkh3C?nVSR{+tjH>?+zZP?{ss+}*O2jC$5t{~l437@M{YI4>NJ z_Z0}5EE+6Ps2-V6x8!eQ<{F&>${g>yVm))T*zUXHl%ED*4->+Daz(piwcp;_(6HMYuKa3p&mqL`y| zvZvf8bZEUX@cP+bje=2lgj4UcdAmoOrm~GT7{<+0D!3edI$UFfI?&>?T5lUEh z+~Sy0oUjZzL{E(N4tkHv<$9dWgqks9iU0R%SQD*_6Qm(?vD>4 zY7SRFgM{{dOngp=>Nb>GURL^)?uouUGsXXl7@V;*xRq}4sds#DLcPD z?;JUM4Ko?IHh|YWijHd(tjLJXaWZpwxKyjNTo(;D%eJZDp8hYKM5Y29DfWn;MInA5>UQ$ zYX3P5mX^SalOP3iLh8&_A-_{QrWCvw9xLzO_?_RPCjTqhC)U>@FHTH9K`_itILAXT&JNGnV4Kpj?;(H_Hkk|d ze=%GBfQ^X!lN{-NODF4YbUW4G$VBq5^F+s<=qu=~+*vr!O8T>W6+L9zYA&7ob^wy< z7e>9^Ig2*bH_9t1|5|Ci7}DYkeC%lIG!Rzxluvh z<#6KN&EZ^cJmtV-?b)!FvDI0ko822i2omhj1Z;GA;~t`>SN6x-*uSr4B0w4%K#uA> zdi9EsM_(Xtj^+cAKcW-H1o?#(AP5^;%3*_&in+g~O~U?~8~`r82Bt-V=!lsFD7U3a zdk0DZk-JEtf1ENx9oXaF4GE@1^S}4YQW|bV#rnj*KBVRu`zs0~`&l6)ekilF?~^b* zRuqjhrVbXCK*P+tc?j^qQPxD#*Vk{^ygOa(=@Jb~oS)pIU{xkXsuO-`*hS)o$BTgx&&EPAb=j28Q5lO-)e$^ZAlu!uDz7D;>Yq>~!s>M@ zBA3ktd3t(^YtosdJmmL0spFu+7563fZa_{*9NCk8*U~L~|bj*LSZgWd=;YZ2Ks{V67MV77Vg$LC97A5J~54%Z{DEW10#ynH76(1(`{%b~+L?WGTvl_ti<1;^1* zZQOb z){tjPwe;p{>q?R=OvbAS0qxQ9~?rQakEtc@1u`D${#$X)u$_0+E`wntP*#0 zln|QPEwvF>#d@#LWZfE{l!koy8o@EyAD=(q`1(xEVX3QFxrTEf;(vD_s9Gt3dv{3A z)vjH?={0S&>~WQB-2Kavt@Vigcuzg_e%NFevWlPXfyh)9?Z6Z1g$b&B$*#$na`sRromYOTGsA>f;j%_+_^|Xxzlp3}!TlHFHvKCQ z`Wn7y?$L?`@<`;aOgtTM>>HitcE47xLvl@37 zSYJ$sHmX?Nl@6^q07#Z4w{9xY+0xvy72U_L)Zjqvf_xA;6@asSRk_|A2|ln)U0Gim{3gHok~C+#5Jf%g`}3O!guUh!vaUWd)*f7t1h5QgDK&^V?n`!~8_q`mhu1{&qO&;LHL0 zUZIvW!52zRk5K_4W#!41$Er3Ch$>Vs;X;Iml_n2fc;RxAJU_2H8)bDgFR4Xt-_2xA zkVSJElfl6H)sg4+=n>PE0SOx-`1Eo0Ckykt>!W~136x|@3cjv$411FSmR5N)+|lgt zH1e*?wWa$If8U3`*FvtPhO>a-p@p}F`bjGPWJWzRXLtzCBx?z%xtYNyJe^Nfahp2j zb!Nz#&OB}Z8GQc!D`|2(QJdZ3Ms28Lvvhgd3?NoH&BqX?eff#Y6l15-KMDHeU^axQ3a;o^47)#v9hwh=X`_~V=$M!0ivVwHQkpjzG*92 z*{asa`4x>SDJBznp$OF5gIVIU4*u>LjT3-UkPj{V5Dh@v(;W6jhhGn%(z_9gnqn)I%_sGsX{S#7_`9cKX8K&X%EkAdLItvrWj{WS zE$#zh@m3>^;qp(5kp3YnPsfZVSAs~sLOu)vKMRr({-&q}Qg&`50U*6W88 zR&ZZHp%;v~Q0E(dZ2lGISdtW&2((isjs<^yH&AY01boe#S~tXZ_g{0U)!J&n&AFBp z+vb5}t-&PJ6$tz5oC~jasUut-%;R#9P`FstK@^+Bls4qz44H1QXmf-oe(ve+E~RDJ z(XDPPm)IooJ?&1IiE?SF*|y%UQY;I7;N)jY)84p&YGk3;Sd71#S$)B5_kqCA)c*?S z;{fg21!RcNQVl-vn&TA3s$~Q-7SW#+PP;lHw=D=IS|>MBY@cBbkomU;{K?2^8gkxS~49@^Cx~fpvpi+8CHh0manv;E~;lUhG_V$J1xYC zm$$~7Z@_LlRWLZEr~M;4a2$v`Bn&IB8`VQ zGyz(r*sWoZ2`DAP{Z%Q}Ip>=%p(H%Fbv&AHq>L|&< zLGZcHt)c9d2Pm1}8U_B~x_f9gZ@QC7j+O~^W*@;YqBApqL%rTYVBuy-nThkHuO>o6 zPi8oTU4Lk6|5quOq7kUpD`mb5ZUfc2DyRjd^c90&o%{&%EqN&TGSZznncq%a}KLb`VKT@$;M9oXm}D(x7Vs zIbKvZL6k&>FOb0Y3?XNW=zh>5Q`>30CG_E~)jea9|Fc*;v8|~cMtEahP#!$Y5@mq2 zpgz~3RKv2X2m#|~S%r(zS<6gLaaO>l9zJH@w(SqXp-S@lQj*uOF$Eg)jWsXGEiN7qM2xSkk zyD?Yyy!=(I!}$(KUeHmyIT)aLv9#c0;b`}pSR_X7w8fj<{G7C71}}M3FWD$FF}%9j z;1XM`EGQGj2jrhWlNbG8wAE^cz6x(7&`+3gPrIT)zhlNDQnG%h!OhI6sy;b-Q#gos zCZb?7Uj;87f=5s*B@a2>9>L#hz0%Y879$%^WFk~mBmp2ABbhSWA@Jq03-dfpaHAM%&^%GdiP)?GO6!8Pq45+`YPT|yIAM=HdXrxU7&I{M>Sf*+p1 zUi-7N3HhI2Z}nVYWoeT5lJbWw+~`J6&OB}tn;lBuPBmB*^R&>`qI7ILBS|$Gtgx>n z&st!e1@+lIHWaN`XKtjRq8f$Z+5WCSS>B)M?x6*XH9&APMMaz}G|T3f6PapB3*x|h zoY;d*Yso2=IgV6HWEb8xvWQ6)&7}Wg>4zI2C*zf^DD%0mznl-8yf3&Wy+ljEIbdjJ z-^jh9kvG5IKA;o5GH^w;Wuw&KT?X_xf^hjVui)31kqMisA+7h{MIB6Ui%=Vs`Vdf!o%}mHDos*wMt?);<2iEwZt! zKMoTf15XcAfaU;d=Z{ktFq=3~r)A>XJK-_9$M2f$S6kZv0mR9=iO1oIKO#Zk1*0MM zias=CPwuF3Z9{K=#&;14CA7EjJlP3p>?_dQUugCuv~7)VU`X0*bX&;rEol?K2y=I< zGrEYhv_AsiZsP55(0PbkO@ozAblwZM5m3#8MLW}kCvH6TX(&Si`m@r`fonz&e`2766TevZ7%sE#PX_J z@AK=VAh(ue80m{f)d)2xQ`@w}pJj&NQ1%&u<}Mi!YY<=Ze!V*eNLOA% z@i=wfX7CW|4SzCfnAH7LN(NomXdn=&aBZc0<+fSI;yH4iluv{Mk*RdTb)nM^cI0Cl zVjKrPdAZqDw^l_wvBvg}@|gJ5cpQNe^%L}#yBV6`JTG?K%Jt_j*Fr;G7s)7%=0hw; z?i90o^lt((x{CQb`!y)vLfy(O8geT0h4wGh;^SL6MQWx>+&UdoGWjH{K@l^&b4boqO3! zpVf~U3k?R zBLY$46!Q178m()o@HlPXOLNt=1$dR`dIM?$tU4`E$-VjCG;^kj&$~)SzAjLrl{Me~ zxKy?uxOQ%FX~p>_J@NS^$h@_%sfH#`JRoY2c#=h;FQ&`59)Mypz4I0hHLtO>YppM^ z-Q!zKoPy+LW}J88OJ3tMy%*Qk)6*l@aTHky*~dr7@Rh3_Nh-mzz3&SD>rWdRurW;f zB+rw81|Z#FQ{&$c&SG%!k{-rQ`ex1*{jKy4w&p9aQ()_}UN8M}{ArJTDQKhipU4Javh6K|BzXW=5J^K$oC zLVSirT*P5Qt=YumGbAdYjeG1_rp8#nA@uf`s|d%?{j^ru*xQmxb?oIg#NQt16ma)V zQe3pamd{}4%`F6aig0E?xx3SZOG(l*Mw=S^UZKmy1P`)i=1gs)piO;kas54%dzjGx zbzNU76qAx`>e2&-Y(_lSfmcIu-Tj7k0`^?H#aq|<{f0Kp=f}Qwhbm7zPQ0;!#IJ#j z(|Yc~YEN@0JksI7vCtV=8@Ro6yMI66mjiW=9C!okwRL14r;VmAnZ&?!^Y?Nw=oeob zxQX>mW0zSFRufwUt0!#-NNqdIip1gA0Pp?%xEEK%4E5mOV1YYGzG$W<6_uUDpnC^`A5=N75$oXXp~#i#T>Kp zrK!x3(N+8SkV_r>gg>noArGa#IC5vmBuKR}Q#>ca&e=ZJTgj-?=G>EgrLw#aRP(U6 ze+%cyRO>T|X7+KKpyX|XqDbN&hKaFcS z`!_Q)FIB~{C-v!BAyQ7uQwzDTycX`NZ3Ji2rZGd`_;sCQs*mtp>L0uhnUB->#?_k8 zU6i(%jXk_3BrPxDhe`uRlh2=6~3!<{l)-Sbea{Vr>MdJQeFtq4`Occ}O*8+t&}F{& zm70)b&2bd`1c9`Rwn+yeVY$918$qdi*{D3z27&c)N7m5o=8Y4cM{P5;q#?@|NqrMm zS@nRP#3Di9+El7{lVQ}%#Y~+LN(u&IrcIx~Tb|bS)#{h6B3~m?uTxTe4@8;t2yas{ z(QDU4GxD-V@>HvyQ`1-tUE21+7?kq{UiiKXfBhDH3Uczk`rpy)&#>0!{zuz$PN|Le zoF5I22}8BeVl9=iXq-|rrYu5N7xI8Bu@qRyql+2O%uJFJb-3NIBTGTu1LOA|W<5nE zR@F3m&_hksqLS1cuoh52(q7-jO`6)) zc24IfY*!_JGrp&dD2AV$3U#2S-)X>ynRwPtCf9MykL6{7DTU9{9 zoaSP|!}i|e!H3OF3M zbKt|s1y>~x5YeV2g)b-tJO214-ym{kE;)Fj`(8g5Hu`S_z&!*|17v(A=o#}Wx!~%Q zf?iF@u=~!(EyUYGJrvO);2t%yd&l&fmIW|R`r*J;aB@V%zlDRTAI0a^{@FJ^MHqQS z1J^v;MMcSuNtLZ#zV`{4YwvV|pl^SsV-|Tx&xicL)yC-TEH>I<&nCcGy{!(o>Ttd@ z5}x0ett}f^f-AFELOXd1ZGu)`G3&kmfDH7m4lL%`$mX?r%ww@|Q;_$(;>izC-JP~3 zY_?CHgtS%Q8@q@Ml3pJU_0%QCnE@^G$8W*#6HDX|FfxAM(xpsXAOLL!k@q10>xQ}> zc!u@YH}o;8t+1pQl1FAC?Pa<}d*(t`P3PF1{W7)$o6%iMo6K%UJ@@zfo`upf;<)q- zvezZ1#_4jd6U6~bBK$19Zw= zwDHSyk=`pbi7}jC)oq&7b*&uM$JP5%Ew8N8k=vjASbSCHP*dH*KK~ifL8Psrt}e^H>(orSn2&$1DJm-N zsYJ&=;Ty{))v5m^Z}Kj_d>luS*i!0Zj@W2x@2Im|j_Km3`!yMf0*?R(mbWKtBL;l( zTK^**J-!*8?og60U&IH~+j0tnO0C6f;RsJ#CjeqQ(7O6T@JIo1r$~daENfoGm?`_4 zBP+E$nK4mu#kuqF`+_>>El9N_$2=IZf=NGv{%M%01!lLAPvijp#MM_II3EK(c%fK~oit1;E&+R@b84=AtINrsz{2H2J> zS((?_eubc2g-GRGTa^IhIdw}jrP)#w`vb~lVu zI}@%E^|9G(e_|Wnaa!DAl4lbIr4FUDTj3clKdM15=baYYsDPo>+1~6=+Smv#8?{E* zo<|Z5&Y#Rl;DJV|P03HU3MI*^!ckRJ?j^svPIZXTHNvU?EySzkIdW=WY!A}ofm)Hq zCEZ@w)`uUSZ=}`VL#JGOKvUr}t4YC2GX8c|5?YoEYWUS2O_${u;5wJ%kO7S8f*;MuP`BLO_TU?i0p zp@0Ys7Npl`q(tkZN8+~MiA0bpqp>LFik`m&5!W<6`s;Q_b})-H8_&#t*133}OaJX)Qc)ju|GT%XTGSO)Wr<$!d+cT?yWfr}Mro`|Mjz80y+A_~F3T3-@* zr=CC&|36SQpq3}HiY*jQ?Mao(8Ws~{W4OlBiApnvN?hMVzB%xTwAn0_sdR&#JFyS} zK}=$vmvf{*lz6;I3s*9NL~^)=RqLHJoFz8;?}hdQ-~b*_mi>#OiPR_ggQD3I#d_B% z*m&~7Vlm?IFDae8OU-jpxcaca!Ct)0=R#DFox>2rIrf-S**OEg|MwLSib~?`l3Ho#S=x=XHPnT# zeTm2b5_$6On1WI>gM3O2`(yRe+FA~i&)$Ln3BS{m7p*Cwz&kB;bU$1=k2FfU($MC$ zWMKb;ubB=Cl1d`PHg}(sdpg+@q^2jbHA=g@{4=1g4l$Jl}+Ns4J9a52$k-e%TrV1 zpKf9Yrg~6?e1$H&ux)<)-_SMUNv4#I@GetP?VF=pLMXlD`i5@XPEY9GrUSOy$K@ZP zfuZ%o+vi%f77^_To&&iFEPCPbMH59s+us1Op&h^$#6mbul`~EEM|u)k+xn&NoH17( z|B?oP$AFy0IijFi1`f7D>>sr>E~ge#O47c(UzC)UHh-Dqq0U0c^;h(`e&`%5{9(J` zD?J?x<~rnXsKWo`lok9;@8UIfSqYE}1ZCtkGYwCq4>_%3{Trd7{q&{r&6K+Xa}A@t zHg4?d3nZDUkqQUXmqk;;-BGGct<@0Q+*urFbiCfkVL{SZiKfEcLep|8m!0!BD5{9b z9#uBe@Hdyo3brr!Lto|n!OxW34uqa9xRW+}x(t-H8XJ8 zT zT5iG%p*-v|y_OFAvh}D(9vMV%u%Fw(xQTZn@hjD|#s6n)%y!S;Y|M}@FgX;^D%ek> z@PbLdOEjTG{bMzZD>;2K-#};Z(j)|Dj4M($G*Z5^WZsuPMfoDjrT8hwF<5gd27E8u zYU^m!Dg435aQ8QQtucyi!rP-<&|_4415GRumV8PKv1Z2&7RD^jhk!zotzJ%5QF3m- z`5ikn6M@c`>*4N9P25^%rH}Gui^;A@9Fx{lZ%^02(o(NTq!cdO9vJl^ceUvjRS~=k zfXJYrN#A@09WVEetiJNS#Yuiy@=Wb6#1z$UA@5G1K3U^xXD3W3Uz-SWYoDG7Koa&+z?4)y$OwJg2)WRx%mfl10|a!@&|t6ppHBH{U!;shbQ8{j~sAnk6gN5V}- z^*vVys0&|j7wR9yM<*acAo zcQf6C^f|!ws&ci{ZfAOjFVK~HoL-_{e+hyfVP{rI6|@}!LYq9ARx}ooBPk4%`D;76 zrz{g+B{eWiI!Pr?rrbz9?CEod`=Uk8TeW$^aXt>3R_uIX=)Ac3IP3lLEeI zATjo9@%mFNlsn_25u*7=rObOi>JE-AaHQ_Hykh-|_tLZQMa*7L2cRjp_}I2wf|#?@ ztBrc|A)2PU7RDz<6*#IS35fYoZN5Jj=#9&QKFmVIO+yb%p{G?FVco3#E!T#=_3#?n zp>>U<4aeAtxuSfx?&t{yUrqIr4?DX$c3OW5{~qbgfJlcS;GO$zHXJ}OS^Nqq@iR*X z8o&6H)g=Uf2kszSsug|0zjN&(b6l33HgWMLA6}*hu6r6xX+9pwScqY8DS~VWYXCTe zCQDWI`sQ;2RwmMQ69P^BhYe*lwtzSbnmr@j?1Q5b{PW#olQndt8*T?65%)tvXDkxw z+2#ttDJ{SxW|xjmEMOAuLL1&Q@uK8ziy>9?3F6rEeTlKbs$E5|uXa;~AylGC9jb*> zr3uHh(h_oBx>5(oYVtKZSz4qFqvG^_a;g^4 zIjj(|nywz|u#%c|5PJB2_uFofF}eR2z^~@M)$zQ-X&HI&NbI&_v(+r|S3VDXbgz6w z@Kj^M!88!#EmTDpu4HXf=RTlw59y}8jdXQ^92DuzxkPk-Aq9zcrqVliq*F_Fgx>7J#J!K zLmJcK_+`4;gszErI%XGnXs!lh_e%tvUO*qsIyyP*kW6d+7(~eDGmo;y93*3r(B%k1 zvdV0GT@OD2g+j+mg06UfK)Gd8tTb@TjD*ts$1)9g81;+$REvL9fg~QiW@0Vw`xi2! z+^Ri7lUH9w!-|x_Oq`g+b=_dMjC1)XGV@T7=!mO9F!s__6hiXzbdEv?1>q>rtVcf- z46R_d9T;r}@}_B`*2_oi66_%RR31+Z06b2Z-0s)1f3X&t^oi3nQ&!FQhu9so#*NO; zZ87L?FMwb38k;}zn$~(I{h>AUP2JR1Y-7IZor&6;H!fPEe`Pc6R=Ups#VV(SYO!jT zSm+i~!deUJaA;7MJN*$AN%0jcXmvcI8s*A6bnUAwCy8GwK^gp#>F~`1Om57k$}FK3 zoH1Wqs%J=$VkZ4vownR(7S-emyRaiF9Y|{0#qODUrA_QyluYjysg{~ZuZ0XeXq-VS z7cYS|iCS--@GNWYggAQtqz|2Zt#$jLBZi#aWe)FTVuhy>9%N;h@adCPxpnkri51oP zXcV_Bk1uOm9D*3>!?+HCcjw*_|q7ifTc(s;$;|&n%l|p@Ex+4Bur>v9iFT5 zrj}R173m-1&*&U(S$co}q$Vb)MHloHL%UC9%Fha@$1gto30&?P&1LDrd(_C? zAm25lEu5S8AP^ZAN8}s>8cOC*M^P}p^tFufYGy{O7qTm^va5NmO1gPB)lxo?m$DvV zAsQkSWR`}<9f);355Z3#%afA;W{bzZp#2ATvo(rar0Jfd%TujmKQV!w;vz6zSZTgP zr5C0*?|)w`udUzN@@|ipP_m5uPTw3MTKigQz!iCa)H`mqKRPw%f_vc`aH9mwpIjznU#LwDU;Ihk zKKtLcZy8}L+_9I6ry!R|1+~2Qe`n0+deUp-T}}Gz74e^(zTnp`wE2#}(m4=KNQDLG z9BJ%^M#QdJaZB>T&PUfJt^E9^W{*Q#5_KM}p_L>=S>MWLZ!#%q8Ff0r#@7M(ZbtT) zGSdxJlI6g{b(t$a>z9kG!qhwOP_mk-kfYfWWlA*KLE?aDm5`0F#3Jq%TuaL1VPNW*F(a>|f^HhgY4@zQKk ztZ`*lIBUx#Mpp8^+Gp7M|fxC%S;5sQ1;hVQl68{*l>{6Z&*%?E+CKkdzmR%WdqOE{x*TcNeMj?DL3_^La zUF6hP5g(#2_j++bU@5n$rbHluL?9wKwl(Sv5$Z(Pp@4wE0l?m1nc6?sXh1U(d=sCv zqKnc{oC5kR75#OEU@I7^E6}iV<9f$5pb-?8`Na`( zFFz30z|7k83KONue24(U{%jyby(W8+G_+}9LA}ujU96Rv6qsaC2EqAS^lMhS;0mUl zBk>FHvzzJL(uxVIG3bfIjnp3CwsyW3ACOz?68{UYX?VFCp6^Och4U9)Gj5VoPf%pu zn#BI5gbM$pC8HHlsCYUkL_SW9>u4JcoN)S>Ggch|%Dh@D^@pys7)7tdQla-M%0_9U zq9%5!4(|=JT*}KR_tkD+Kk-ntUdsdOXWh0Ivi0ZZ*|p!BEhVjSYOb%*b+7gsfiIVH zxh%B~ocvX3`zCj<@2+#ZB0?O?Dnk{Y{1qkqn{RPLpTX#Qca9S0_xoIHO2I>VP0ybm zE4oM!9-zmq_6L7Bw}fiD50U@5FS`oa-06j*NQ(B+>Nk`8B>b(Cvtd7H2;j7u-yt{^ z@H~JML@MWVLQmMcc{>?U%q`Dl`Mw?DYDUHDU=&}y^`QNs6L8pT+GgEMV*S4UdbQ@LzHRwUrA}VQ&5wN3+_6c#vO)Pbwz%dRv01)CiEkFD+$u zG_3qp^ynn#q?El_mQJ1Z1F7|DYKa%tRC^BV^52cZwu`ss8cn&I&fd;ADf?X!UY(MQ zwEBt4_3?1}R0~_zp+wWUo%}heqZF#nZ(4mvKx{p!RQmjgH?WGhKZ;9#PLVnzNCX_>-t<0?RBX~Q1+BoV>i$tnGuu!6`S|z|Sk-}*q zK@vT6o4$L!?8h&84hz)biy%K6?v9@&blMG0IY!(uy6qaNKGj#DSCX6HbG&(FvYQI_ z|5EpIcPd#S4}@}gvKxFY{ajI|Cyj3e>rYlD>%U`V7+YoB<4AXYlFxW?%KZY&99&-Z ztkTKU)Ay^RF@Fv>Dy+#9Fs(|8k4l#z@D40gWwa>jgBkV68!R1l#LLx~&=)Cuumfbl zmu91&5)Mw*xdv57V75k2LjY#bfA|d+zTF3FGF)>kao20Sgv>0Ca}Z^QNY$F(JE>{OD2(AA;wPc_6XKur5o>OaOKWS) zlMZo|p7PVfbfY|Uv3LS!U4LBCWzp=>96-st!Wdya(c>vwN_G_XhN2Q4q`;8~;JB`3 zx8Dt~eN0jg#f7Dx!f6%BDm$TVp$qL@D;?grcw|#qCsI*r+!=phH>Eg}xcRF!;{|Q; z9Bwz~+EntS>pa}C&Fj~aF~A#l;E(;KmjR@M>i5m;q|odf01=o8OFH>e+2g)?wV!}U z#^85vLGuBypm_*b&?v12>NdH9P-WPVMK!%p%G)OJE|KMyAuV&iWh~b zQUu8*`+&PYE~#Qv{?A09zvq1)&At@MJIS^}(s7%7S}qnPqujztc2q^_IzOZ-!WQL{ z8Wq?@4DDFFdh` zS)cH*zmY&(xYLLCna^459n^Hs{m0hu16DUz;E&XLifz1yI}F}?)9ga0fdrzP!A1?y zX2uKAZ1O7T(%zio$^OpchlOC~pOwQjDFD>4O*1>|RdBO1t&Zp*-Bvh`c7ZP*Z&;Ah z_VIV#rRaa)T?XW;cB-y+2!0984^XEBfRdpxgDQm=Kp$}Fu9&NqLqpZe1fBpBPaMul z|AD&hM4wWguNUo(&6e_K5O5bYli`Am}>FFwnH2ZYNYPCA=;$}D~)w^1R&$g-N zFMMc+^0#GPq^7Lz> z%+uf|b#wqH+2C_z0}lXz$fXWb!{I0Z>sLtQ_75U~!cPTQu4@|gdoPgS5QH4ytbKo1 zUPQBWk1C{DiSUs8{uO>!_csZbNS+mt-L&V$13#Wc%|C-fzV9ox#rBl^^AO_!pO1-D z)WIzcth=%l@B_E^XDk>2_!#Gz$5L5f-mV) zfRB3J=ymI$)FvneM}=c!c-g*Z$Gw)$m2{uB@w^6B6q%v|_4i*FE)Q53n95j^(T7a% z5PMwx7#1+D^Aj%JCttCSH{^mqJO_SFj>uPcI?~ycJLRXlFkk}o0$4i70BWsY8!NzR zu_L>GroKqz;lcS&`eSiu{E3dXK-^{2N#=NKVjs}b`jmzbfH?e=kr#N~QBQ|EklgKP zRuB`?G|lTNl!0Zdkfi{$hE`WNr^0DWsLVv-4Uh8)8|Y_7XwYVn#!qsl-(U$K?6+kD zn{<^Q%-4P7pxWkvk0Nq_le4s!J*B)GjTbtw@peVCQ|^n|*iebUjZCKc76l$#X(Wv{ zk0bnKiB4c;tJ_;R%hSv{U)a`maP4*kxG|I%31TcJOA8!|UR0nnw-U0BKbtLA{d3>$ zNCcQa+eu86)SYWi472X>{W`JA6z#>$Fni-%^-xB(vN-;M~|b0DsCy!CEC7{-T#ow&VF zVOX$4#)&Vh-Cm={X;0~Dp2 ztNqv{D6R`?>J0kO;E4_HbNgh96GlzUXc=^xHpxZ;hu13(nqh8=L)2%OayO9H`CZi_@Abm;6p51DB>7A zFgHXyqODrKLSgnQg&I7nU+Hc>bX-MJ^GKFY%NqgXej8c9UAU=MA2_I8*y$@!*y*=+ zf7etZ0=|9o+VcnRaw5!BbBb_m+7Rr6%hi3)k#|sUG&JBWd6s0!)@0%W*0eHp>{x%C z919;d)6hO|x3J=?(bV183EC;*1m?VxF;9QTaINkcI&|9A_&!oNCZ5K&F53SfHpD-t z4}N*=EUXXBQ|Om}i4_{_`%@Sa`|v{!7~e7Vlpdz{6rt!efoMR!w0oJjXOy6yBIjM- zN=4^K^h6H&J}VqHI=?}bDd{eYEX!SCltDGI{t2OPRy_@(LKIvF5pw%p{5RiQBv{8; zCq+QLkE?87_~(&Agh-GzjGWxd&+m2v z=xMU?<~qxTFeut%@~db3L2V{EEzp2nmJjd~hjCTUPiT_yZSx_iw}i@P@;!jx$p8}b zm-Qi7_}Kz!@bv}4I~$;bBY1Ad4_F91k2AqReUb<+hOZHc)_>%_jexo>@{S&~lkx#Q z+CT$dtwJBG0ZJ4WgETO3S?NQBiJeUGEW%Jcv~6})>%x#t{Nnw0B-3vJrUe@E^73&E zI@0C?GSjb_cn5Y-;2PaKl!y=}utl-(7?hqk!^Xw(Fsv0yZRALJ97qJNT2g6qA-@kG zM~DFTyQ0bV$SGhz29beNf#{(Nz8AN8g>g%oK!+&o@kzT$=Cg&AI4u>#K^@f~O4nPm zAK*>-wXFNAM6wN?bHF#-ORhmdp=H|NMJxsqhQ6O9MKq)`3+=TPs=}Pif%Z=}F3|7) zPiEu${|9E{VO?-|c-OPlXGX`p*z|fWsU=ooVqXSBgR1y{(uKo}I*V8Vf6h+7ke8lZ_ER|Rj*`K_!AVI= zzi$lW%au(F2E>Sb@tk)*|KA-^1`>yn$?5exIP>+ih>8N|qU5YvTz+iYhut`#eamPy zTfhTe^$rjl%8L%_4PKm}63vX~)a)t-WB(;L|JjrxB!MJ#--AUKZbK(%*a>Q$z1Xz#-GO;oU4qkWgDJk@w2nI&VN+ zBfP02bejFJ{1x&M_roB$I_b~vx|Ghim!*ZL{H%jU?;3gXrl!UDfGCoed9ZqN;Ix(Z z&g9)!=I8w7gC?j~y=^SV{Az&;mRb^Hwg#h$P`R8cv^I(030Za5$RoR&*8+3Fren-WIwFdQfDknQ^T z%6hSYyF1()nGT*{LO7nkXdo0sE|E}-c$0k6}d03^@ZH9jm9UE~FQxvLRo4m7+ETW5~th1}K9 zl%rj?kBOXq&d8@&H{6tS#vL3%(1rwzgKMJ2YfNBh zDwd9~@p|lK?{Bjdc|hp_!yEgw`k@R+m%|OKiL>(`2|dsjtie^wI=<8A%v)N~62`8{ z8H|aw^H_W<#s~YUbtWkTXUVmDW-Fj0aNx0CXywm8;XxZ4g)rZT|FB=@B*P>eoE!Y=#SzxN|}z&BI+U{+C@>4c^VGmDTajt}n-7sQ{@?H+hie98Nd)8>^mpIR zFaDrIcp1#!wACnqV4={okLdXC)x{ZaK{_oC_*71QuR5Dwjh_x7K~U;H2fV^M`Igq0 zA2jgcLoXhCj+01xEBAaL7}QVq%q&N1(e`@*Fr!mMJxx{wdtHz*Of> zA>`4m(WJyQ=18j#LZHE&pJ)RIU|%4nps-EYk`<=z?D@AJ3mL&jW&yn~rira)AO5o$ z+rl#xj6IzO9@453WQ^}i>8o zZE!5W*ou6N3pGo1ToCG2*DX<9yqlI>g`3TIK3OuivR-gF6teE$W`FW1_kB;lAqwUe-K+{tQLIC5Mbj~6EORFj%Yruc7n=j z=`NJ0;OA_<*IXQCuKs{dgZe)=Qw~)`VO}$ui(bwIH=+84EZ>*)1T1wMvM<1gosxXyp)<$7q}i#8TK!Y} zMxjMh?mP#10p*1$@XnZ5N}~vV4qWT{0`zUki)Dv`Yx^EIgsS63jaX)1_Mf^4kSNxc zu0|g5MLRtcm148?tG+MHu*)RCP^*dJ>nFUEd$w30c^!cOsEE1%uCs`9!L}Od{QHOW z?I4hLWMhakGJ(O}bXq{~wX|dK2DWFA)YnKz$tkuqN= z#EYzr1wsX?6u_LV=p1)Ng9uEeMpQ8#edRz{f^}woUuQ2%K>W$%2Q2I;dy?koH~M_N z8E+zAKPtSe^N5fS>0%8OJup3|o5MC2J5H>Ihv+47P%%0|MuZg)Igcg- z!(YqFdeG$Kp_mST%B5nj<}uE|l#J|1s@xbvD`QeC?UHAj%>TKLsM-90>8Pduy7aKY zgBi_w=7bH{l@pHmwr*#cxQu#i{WW3bLw!c~zRBy2!Q?C|#YJrM2k%#>ac<3R8QTd*sS#lheV2MlljqJjrkQfbNR6=pTkloZqvDb+jgf^MPL zu?&bccP$b*@KNxGTDGl$dNn3Z;h*IVD3E3%(yo@~EpM>^1l&~(F%1}*Dm#01wCtx_|`{3yh*{TJCPu-dfjqopcFZN2szp1TGS`I}T zGT)nZqWn+=L)QtBdD{?9|oz)81X%dm;Gn9OB}{;#QSNxB{;~XCRBXJ2r|J z0=+OxUR9L<`|udUOUKI+1{e!5d<{?8NBSBOn1Zi=0&n>i9-><{z}Qo$`=d$)96yq8 zo#8P+JQE*7`_tRfd~`(n7_z|aI8rd$nT(IF*nIh+e`cK3)Zlb( z?{UIO>0JiDvnDB-iP<>5k2;%Zj$)K*E>#I+tXAgAfy{kt4AY-9Qeo?{N=GyKC5o=b z3CwmDdTVjvV4N1_0XT3@Z;QZo%nDbAJYpChq}qi58+Br)VC`M{1_i60YQkwfyI66 zqxMZ5!6|4hP%4o2^y@L9x)@Kl_Ui$Gy_(A|`dX2^BAaa%9sI zajiyzZ2J;gi!7hC;|{qeaF+hL3jBz1`62C*Up5dPJ=P2NEhVjSo9BSvuAbCw>)?ck ze(D`FWq00wgimT*j_pF@C-S;&0v;lEdQmC#RrJS+59_fz4e;)AI)7#)bs1`aYyl6w z&4>EZoRsbjco5a|I8L~#SGr{LM#+SXwOVVyF@RElU+5DuLZRVBj5}kqpI5?7iEbl? zUi75ux(l>~Jn`DUd^OiBa=RoFJoL@9Im+TK7`hP?A6=K$aMI%*9iTsX`WR^aC?XeD zn~formv?8-D#L-u-Y3Mx8UDz=ZJ!@{%!=tfX@!Q|{2*ms^Y~Q#*V5Sz=w0cjx!N98 zRJ_O47ZCqpX(#amCLZmw6q93)tnICk3Bo;}yC%dY92DasUoChH69%@0NIb+tyP`Z#%$I}N_{UTR zE??6*;XnI?@mCeeUHuHG9=KS$tQM`Sz|l8u-2+@^0Jb8rOLlU1_RaavtFH6y6rQ9R zURMvCSUNAr_DNvC7GLru+daKnXI9@5$_R5D`gVTmdv1CsJebC*TD`k)g!vG|oqFtv zHyS*T@6kls3sR~Ca|Hr?kA&%6Wr7Y3xnJ8>fZE%}I~_1%#)CxN7ScPZNwxc0!fO!8 zpFH^eX-|`nwfIs<=ah_;>q_(;YLh20n)^60j9hxs9Oe_GzJ;F3&%V501{m2%u z$thMOC71eKhWq_?==8J?i(!a8>3mQm9<(&yH))SmgPZN7vC}@5l<%>$=^}Sa1EQ^@*74TnLvB0u3A6 zgCY^a{11f{xTg^82PZ~@Im~SMLRXkiLT->To*tM@H!+wDr9!s9gq!OPOLU>#GUA-7 z{LldAG&=KJZ-vR;S6jmvoqLnQw0GxCgA_yHrzflAhfNK9hRC=d|^hMN@mCa?mE@IahDQuQxRY01ZGy zZ5O>ATV5lo-@s`kKz3F#7sU`QySFA;7UB==6y(ytDe>{duWC%maX11@pd$t_1|Xf{ zW#wkQ&I3$UUF|z4v2Pk=#o9GJIB|Uk1NqM&imqs760go*!-s&g(aJ_ICIegi>B5Ph z?tU3mZFo10Mp;Hj^~IOGE_m|W$z*1SB;Zc-QZ+udEm^rSFYlSl-qZv4#L1W(Cie9) zCw65)89%#$ZiVx!#MsE*w^Ojmyl22`?nt4-sh-SAr;eGfd{A{r1#J%|$zd*| zrBKVKW7OMHQLPiV6HPq801<90bcmwi>dS-ncDhE0NT+V^FF8OUL(K8 zrIYRAiB^ju1fI$d;bf4ehCP_UiH(F3%$ULs7N=YK&%?p-?uO5fb?LLnbl4m;?nrh` z+|qOzL4$;P@;Cgky%sa_o(XptkH|0lmZJ(%5hqe-a^~GD^MujT4r59$O4aKz0EFfP zT_mToOJ z4H^v%6CX@>ngbrvolC+uUG2I8@#lSe==- z#K#UeoZCK?10%J>c^DHh(Zw^gu*BzDIRYjPz8oGj9%nliDyYfu5tswlmJIdI= z?x@U~S9alrJ+ORnHuku_;VMWdOGiO0-901uf3f%0QC0QZzc8Ir(p^e7(kZQUBOMab z(jC$uAV^3n-E10Z>F)0C?&hxT^PHnT?>WEs-toSF-Z8dgFc`S^+UvW%^E>DK#H66G zjTXHIdsDupCit|mhDk)ip4oi7|^JCy-Le^>QgC&%vCJLxV}~K;{dgeN zNPY8n&1nD!8q&qSFQzUNxNk#!$Avu65;mHn=?nNlVU1}aa4#M0UtqjvQ(F5@978MO zH1YA3$eLx`zKi{EX*TrPHo@DZGw0^7lcmm!kfX&CgZH-=E%1j8Rw||k%ZCl{{tc5K z6Hi(eyU9nJhxPY~J=8Rh!D#}fkZTqV^}t(xMAV>bb_+@FW3D0z2z=anoIi#}-w{9L8ip?*6GunByBkecdM5#&bS*J!V z4*1KMuKe)H*Nm<0o!k_{=Xw+3R~Gqw4C-bsL&EP+pf9BfK~E;dp!n5zxB6u~Lt?n( z&RE~rCLpW9J8L0a`Ba3Tdu>bhHgzJKkvE@4adbew$|fAAKPhNusrdvy8^eGW zQqS)163Th{mOIz4+-~M%tX$XAy2GW&2fJOgP5;MdEREOCIn58C?`FSfq2mCnSura zuny+@1S%H3)+izhEp-)7JDkKUTLS&0KYhX~ab%_c$(qTNbk8_%O<4l)wlA~QAd|<- zDZ=X@18rU8li1UxuQx~MvO>#>jXmB=OXSIbzi3G|BLTBsbqUE8+0)O_W8_M8mv=_P z+*%GNr}TcE;&d>iq@-eDe$7sMce7iTyoxWl`~N35S&j8I{;U{{ApT zf&_30r18MU{Ec|B2ABy<%?;77dpXXD}O3UoVz0R{nhtgq3)tpN=Bw7X9asH zGjk6OrK|zILJBJ4CE)O+ruD{+*Y^iSim=ZQ4aqh^u^7i;(_^ zvkix{a@b`h1DpP`+|S+C&rO5n(V~mLY{n6=2Wtx(L$OXTmPt^ubsp?$XSDBf+M9#l z9MBu9J(c_8ljU9kpR8+O%dL@AOOg8>@Cn9TfmXkN|7T0N;IwsTU|z3@ws}FX@p9g6u{aBK zDJGuG?bK$*)bPcPrUf$+F1v{!F&3fsVdD6@$sj?#pK}I5@RJWFCMXu7fSgXN9%@I$ z@+*nFHqQrSE_n;t`dL~?SD(qzdA{XgNsDhX+tCz&8;omWbo9s7PI<%q8$Hlrn)m*g zd+nb_C{+M`Y2rdAodchbd>f|GiAgxZ#sf|zK&eM zYzl^3t-&Cu!eygQ5%OpH7LZlw6l>AH*StW4N&W}~7V23ALPp>(!-a8T@M)WSq%l?d zL-G=BHpDb8n7=Kv(kpGYNrukW1NrmQuMk=q&Z)b zH$x&&D97j~tS-fKHs0qKiZ>=Q$uqZG80SdnJn9HJfqr9a3>pUu}UyUaRIJ37B^G z$NO|80GE`EkKI9nrH{N?Y~K%FTYYF?zga;FQr z^s)yx3V(m`09juWdq&HYAC#rRoMZ9NVNjL;#iI~~Yy{?yQ1r>?R}unzEBx04;1-&1 zi?|PzjpT$d>0=S@C|_!O9XE8?=M?AaPTna zv#P>F0&$AIISTA?tP5|j=^$qvARdkv09l9ON-#Uqx^!+q0`CG)UmppNiBgJ&Wiao^>W>8x1t{ZZlx z%T2D3`4h)#Bb#jk;44x-1!X~KwbZ?+<-qfCQ%$77>SQKu3vD>Xz;>U;7#=eHo-j<)u2t%<3FO9dC$mgGzF*NM$_ zpqJ~c1Ula`x8$jXqRs1eDnGchYXc@=8g+gYk&z*~xNAUbdgyq|cHN$O`p2#DsRVAA zru4w~PV7$*yO2!;j0)p}VlEuUp6fIhY4!S12wDtZ8O>Fss+~8QZGvBem_jGUV1qof zA$CDplAW)b6~PTX&l(XO{&`!39$argV7Sn}7&Uuz>KkBwt+NyKRZ*B8z|mnQSBrr` zCD+_`UL_e{OGDCpeIYflYax_^1xUP}&by<6LUaiJ!8)q(1}<(vs4BwpJ5W)Uz-xY! zQ;l?=i+;~~hiBcz-QL1^`KqRkUNd67xT?M?ag8<0Dm zRjx`{tJB}IxN&$u#=eHny`jXtFvyaTMt5${O)D4VS15(zEY^bJ;^HFW^>{LP=K14I ze2?QF55LbSInoipg5MUFAVHx7M4*b^d3 zu)-=-zoyDPRbU-|)SPlkZg@YN{fTH;;~esMO7JSs&hz%{_15?LU`i%GL15!fvHH#- zft^Fllndx*CbwxvP+Z8!X-RfbAA(b;y)ZC98>1aqv@0J>#%D8>=e=llw*6xGx+xfc z&{+zUy^h_-lTXzFT8;Q3xKW~B=b?ufR|*hJy7eDXQ*MK`PiW&%s{C{#4w{I`GLe6U zCw+DB{u+0h3TFqJE&1zULJG>ejfV{;r6-WGNnb1W;yqB|F9XSUg|a*pD&MeYcJ?ha zM>SoLD-vy}PL=F5V1n)|cad5zu0?$AQ-KKgC}VpMoF7m?Tiim`(kB%KzP02_(^DN8dN4~~HZ38JK>ymBAZ8$<>{|%!wI=~Tl#4F;(V--LE9_As z6C2kNQQ@E-L&5}lkQrVn@G+%V?6>GnL*KFNTN-F^ zOah}(KBd7hVC!34O|}nJk%T04`YTKZNv3v;&!DQp({^KO-0C6Q=K|_3UAh~X(fpSN}6C+xDTdVqm1Uq{p+1N5Uv^Bq**J&rFnjta##4^y5o4F^g|y zn$4!<;eo`Q97vBS(Rq0FET`*bcvi`picqUR(*{=x{X7W1`qgK#o#$?Q#vYaHMq<>N zlABt5uCLPATr&3YVlaj)xK=Y*oX!<8jiXw~a(FU_Zd$&glVicP_V)JX-lp(51NHzf z`;rAnU%h%IVFd_QBpwADqC5^&FR!j#Jb1m>Bv42Lcg9KCb_lT@bt=VmxS9@t(nx_U=AmRAn67jZ0pJT)Ya8Z6M-PpAE`4WTV#nwvUErz5`qEyk@|}r z{j_Ha{_a$#yc_$nnd}IsuZX8_ipL3yBk0U2Prh3rg$SBK7GC(I~;}3 zyM6O>liG(0gHH(}n{x7oL#Lhr;XOy_r(Mz;MH~&!1~-aofe~XBileLj1V&w7y>e9x z;5m3@E7# zIw@H;M!Rp8^BJtxjPG5SZIBk0IZIH^*l}pIC8jDtNN_`xs-9w)Dpv0`?Hc=e2LbKnR*?c z=J;N^U6=Vlgf>pJg_fP=_DI&zwW$#sVo9RTJ`<&3XGEGmCbgWos!Q2CCf<=YX{)_l zz|<7?6GFk)2;aLUbc9?EtbwDdFNr0{)Oj{QHSB}Gmc3p`{2W--0+)}WYnqmWJFM!*kvm86Qjxx zSmCE-5A{dY0gp4hF27sR{R$I=d{}^=NU4Fnio!O$PnaaoX|FgYEhMOa3TcI*@k3l7 zRp^SaxGgKcOda+;jk++aVnin^c{3H32qccN^6_P~bZ#^T9_-w)$e9(h46(`+_L6s4 zu0KC(7hz4p$IzawgI^6V|IHJRhS#~rZ2Q7R zNH1Scl}q@l({vm22VH8rnqw5himm4xsyXJR@TVzyC-zW%&JdS(2!j7F_ba&4j^EG(W$G@I#DyhmI- zl~N)Sh;98t+=_4npXW_7y5_3FRb{PJyL z8rSkS_yY1wZ=0)|{7Vhc`_U2?_p2Z{cg=5}vvF7EGcNlWlj-Ro_e&uPLoQgQuZ7CD z2GD-Tm^sV0q;Z5dJ!f#`CLRVFtF0U(84+2e)M7B8DkoUhW zrH&*DyrZIz?4!#z+Dgw=v#Y_3PZ{1|G6-Kv14y1hp~BWM8eD({Rb34l34=Paj-QA^ zKlA;5KmjXmsna7Gw~JTg8`2#$^N#~B2ft|_hvw^SMCg=1x{GP^gfibS`4)r`7Gmhv zIqyHCV6HPxRNnB6-G(!t%umR(nkD69F@1niO^bz~*YjO`JR~3U%#3h({;-Dn z(}XA;cb}P>2~qFWADK(1I~yO5Mat)}W5mt>I-7W^-U~ldftuMKs?Z!=DD_|%aaGV& z-d*KVI==YpqK`WI+*cA{3`x;W_F!_PjY%K-4z5ZQlbpB&FcE7a_hCF9ex-j>PsLHm z!+N3ivmyb+_F`&ElK2@Y=qX>P{M}PzTw{bxHsa<1p^0y1iZM# zI?+A+6IC9oaH{T=m!W9@=9q_C75!by{SyC!k-@e*Wzg1r{5vGgI;866e|Z5^?x$`q z71-p+ixkB5k3GpAt}Z(%$V+=E5e4{XB{!se+*xyf0KrXkzY$KV_4?Od@hdnOOa;Zil49 zqy&5@1aoI9@b9qJHHfY)aGyE`Ss4eHQ^5XUiuyp-uUOUU2o7GF*Bkhro>K^IZJClEdJqPu*|YPYK{1poL3^jmTkpB;FOq>n z{(qudbU94L$~*_XpMSb;Y7H|roF)UFq!Y6r{rt85Kp`#N({th|IN=S^{+;OId>|xV z9d4f!avh)c1kfmFS3Iqkg*9xjIT#wXvEsJ49bY7o0EXOGCM0>vQPw&-0J}(6q8}W+$46 zwWG%OCR+5-i@5V|TZ1Vo7@pUJR0|DS6}s10j~suJxZx6;J{7M_^;M1EJ$zlZFI5fA$E09 z0c6#0P=M_(8b!zVEtzlMuO@^Q=JT`1rv>$R&j^`JVh71)qavoKY#d%>S4Ch9xEpQs zdf|D_u};1$0hVYFppXM}ih%z{r&ur8VFO%4I96js5-uJ8CqBiGE!gJ5Hf?)|^_okG z24n8bUTxAhrgA>99-KBBCfrB6d()=~_*aRc8?i=$#HV^^9<}8RbdZ&Qu_bVd==9zK3I0Um zMXPQ-?Qe97&AyI?7q8>7uJsO01{goZZ3HTz!KI%yAWZqQ8`L~g`bxD}>*F8OcW1^F9TT;wDTW>jczZ4N#lfW1O+Z}^`^mw91|TvTR3 zSiFNNY(NH0BUVNyICYP~%zEj-qD7uPYV>sVCzLm~CRP%T`)VuU-COk{VW$8QG}eja zNp9%6^hVwp+{v4ZI=6jZ56{pR$veF|FYOb|j)i-W@E?I ztoiB%SJEcS>9}Q)UGYVX1w__rN9WX}VuA-N!bBL{UM1?EQB z(;~dhT(_`6;UZdiCSD2@8WOB}deCmPFne6K($1Q;iEbXx6(qX zKkLvHF=R?t4@X^|VMJZ7&8XIp>QRlxc(})oLGKM;*o`D;tz7L#>c06d1GGYJ|6+o; zcyc(Vce&C%2K3cCbBzEEhOBhHs6% zUt4=y;g-&4El$`3`4kV&NA(->n8nRBqWc7b&kgIw2+o%Hk3yKKxc(%=iN0=gl#z~# z64MNz4#q}wr#oRlCE+z}W3EO6+UEr)qdo7Zi}Vf)us&;5?^Xu1aK3me%$)x>(m*%HxKxH);U}H)b~nna1)=ttNlWoW{l*+NGQ5|s3#|ALN9!=JBmr# z_!zNcDkr0gLL~%;y5$!|xu8&qvC>=s94zcR!-elC`%N9568jZ_$B1fC3IGDWd41plF}wXQ+)s zE%kf{#1moA#J(FD9i0GdRzKoBQgfW70UJ1{`Ir2;iV0hIM2bn8+bygB7GB>j$1@gSNx0TX2}yrat}h zhEtcwztVQtPSpF&*4*|hnZ%<~#gvDa5p`7lL*V+}f3RtcEAOtfz)KUt+1VLj+&ISq zMXk}QnA~(a9zQ5e(cG`nkdaa%oVDzmH&8;7=c{`wsOp4;w&bMAw&!)Rn@wbrXA0M@ zmIz3=npu?s#pL8IQ}6flMF;-0-*bSyARs2)P9wXYWa`6cxKk`;Hl7jU2jvmlD`E&Ekao)w&Vs-VmCWb;tqbR#D0 zX=o19a3esA+@z~?e>79Rp91VirH;=BiM_WAhV$1~UEUv^N;nFY%==`0qgT}_&yHLk zkB1{f{BYxB^%ctimoYhyLZp({HU7H{fb`>&)?Zfjs9G>p`Uqa;dKIdr@_A!4e&H2$ z?{kQMhZ^@UtRE~&dg8W>^1f^0$(RQ>x>B>{OnSz&3ZxRh<#2sSaBBZm`e0oy*UorR z(Fl}TM?8~W0Fbeckf{3a{vFX5Tg#?5v|emUyk9i3StCu{=3gvOE%*RH`f$f`zwrFQDn?c^ zN|6G1!Qi&cXJVo1o6d*VozVuI+pC-EaFJmu2!euw!8q`~`%~A|!@l|`e!Cei@Ad9( zW}R9+PR`xEA5T`UncjM-C8YnD<4|0Czi)XYB6DBT~w9dTl83!81Dqei~jYp1fL;R+`LKHV3;Ul;oX<( zX{(sJ)elFj2UqW72~luBL=(%FaMca^~XVf+{7`s2IzBu4}HVUaTQ=9p}jorVp z0H1gYW(XRT&E~cvqliy%wqZt2gHizx^vvg9g1*UnJaKKF;L;Kl>8$m9@(!7zBp^h) z#NPIJ0>2;T5LQa~@y2uN7~u@rl~y@o0(=hN)m$ppI?%3f9|+vC*mfnsZgJ%No?(zd zc2e5%3Ci)LICb7>nMPEnw`{Y*PPKeL)aC#`QfmpqxL=jF}DmQ ztVYl@9q(&!gYrVW83)KhqdvM=JxVe2D;CfL3Y#$sV>!hHN~im#u=jjuL6+0FteYn$ zK$DhrWq$HWx~p129l*aQ^?Cv6ZOJ9r#Zd52_83fAR15ntKK#u)+XpE}TN#xK*$%HT&Ue1?%f5Qm zalA@h>U7UMbvfANv?DP8yOMzn@)nG(KU{V_MWb!j6bbSC>#1YI098UHy@OKw_xAkz z2VrvX-}4AU0KlIS>31YBcG2YwfEB02JkY|Vc_p;P>r)B!QMFqE83a~zZ<5OB99 z^dWXs-=zl=H+i7bUkpg9>={#2b!GhlGlJ3c3!sx@GT5o8iLBytPDdR4I<_F)KQfH9 zWX(mJpE!_Sk?WJmT)O*-#I+~Fd}&|3Eqa-#!O!yLM?#F2g@+>uYNy~4aV7*KlcQgJh%mh zm^S}}2_14`*HxdAln8uf zKPZZ*J<}6*`QjowKK}7*Qk=hw0pG5arl0sv9)b^y-OFZ8$f}q~(poM&Gbt|H2Z?7Q zmjmtF7Mbg`%k=aNi&t*;Z}$PPjkg-ktNz8b<>YFEQpTU&EGT;Zi| z-+m}(irxJ)pgipY7<*F;&Da0Sm!lHbM-)56 z^dFbI`k?ZG-ets`U$FErYGCRC*jvNL2(zmQVs~RFg0r$V-7_VXV%`V-Y4l3z!BXUu z>k2Lgq{V|p8HKp^P@$Wt=jrv~)D5)2@M zVZnhJ8%FWS5SSLqK2bL@m1ndfbT3h$8qy}gA)kkfEUd~6+d#1CJ>~i8K>b@2>>cfY}OK7#NJGh znDRGZpE*HHOMoBO%M@_Vjq+HFH*-O`J~+Kgjec{~>iT78SxDWwyVJDZ)S9FoP=Tp5`=DnQ&WjHnGdCVEDAJxNb%#nCDK4L zkLgwcvs4*7`=F&OD^ z?|xQq?o?U#@u&V?E}1(|b-CL~UccGi^T{9&wxQ7~i{%v!`5G0WC97a|W+H z+6Lg*j4CYho)$nRbJeVO0&^h)R@yy>S!x=iXn+Qy)nYOBg4^nIV15A(Tc~PimK(W>V6Sw!4PA2_ zgCf+w8jwq`zqzh%EPkR(cT00CLwQRF>)L&@nd&Vo4qXuHF4UMJhzMA9j;iOGO@GcA zSOTESbo23^z^bfXb%QhN&rb#!{*jewfHNZF|PUf|;4}T?bAVl9e zgrBp2oZpl3YZT+u!UcRy)I(Ws9sd%hQTGTBxMg-0$~)3?NNj%HR48^4A7`@fES`Q8 z05jZiJ>#3l+fgPEK=XA@A|*Nh9cxTVOr#sxAQG9E+(Cdm{ZCjUT-1rC3Kp-!4&?}1 zrX*}{1$5FRvmd}Z8DC6>a35s&AHc@9&vv=kH}G#f@7G-_+|#q%B0@q$BXtMqA=TBs z3@~SCq#Xz-oR52L0UEOlF9A;`lYtvKi;fXe(~N@*$FbA?r0Tzv#?sUJTW!Ca8H4kh zDsWyC)@eYn{|hsOXruHPlxx$>OTsA_d%}^Q8TOa{6jtH~Z(mMy1aP`>!$4X9rHR4+ z2@n{17USrOp>KRv0C2|Nb=dCzrM$+axfPs6PT>`NXZ9I3L1O9O((Bcg6&AxW$zW_} z`_*$O%Oz1rjq_0`>~*^KUPwRP&IM2Sj~mEOuslUZZ{Jck3r?1BEj%8wv}(|1gO%9g zW2kP8%n$5$j_rkyKHmaq)M!Bu=bLU(wK=)wgy#=A8mFfcekgA~t?aiPW)~o6CZJWX zW6s;IcF2m7HbB%Z-DZ7Z*`^mwV%S2%_^enlc;*fX3>4zpX$6<=zrB3-z|}x%WJbkI zI1mJN@FQWy{ci>AHpO>*={J5bx z_WuJI>qwwPTENKP5u`RdGyf#WF>CHs2WcnQQaq&)IV;c0U2}(OHJ{j)jVpN}wQC~| zzib}eESIbG7(^OXHXS?w_ebEdZox(1Be7QV8AmSUK?L38jzhzvezWPKPoxj51LCL0 zcoTrT6>O>dk+TQ*Lf`1G1#_wNb}Q$MFYB1pE(gJ~t2`^TWbY?0KmvcrD@%v2o;IG`-m42!Ge_N_x87;eoe3K+B~n@zZMXV(5Cr9b-wm^K0_=KGk5 z57_#$?UR`9wi}uivQyt(RK*qi&O~+5F@5iYDEmn_j6YAC`GcQaBvME%WKi_dpLmrw zW=kAYVHO7Hf~nc$`9`7_?>Po&I=ov>czmV|FzdhRx|W62R!+P6Gk<*c3C#2ElOZb2 zUV_n($G9d)#<+G<%p|UfNvePrsYh|Cfhs0>#670X-kM)hFGtCblPhV$XvB!6 z*@%CnYV5-hlP78SQZ*yJVzH$g>Ll1ix<$MfMd!tP4q!1N7Ry+%u<2sdw+R90fOv1} zdnZdO>~B#3T9F(%!%*8ttuDay0OSAGSiuVOrD5U@in<}+;HPI^7t3AA9W|EssCAuoK(H9Jc! zn)$-iYK0wHRnylQ_mXweQYD@g1Ehp^XTBrmC>-l`Lh7X*3b>Et=VwQ9v{;lh=Gx$F zBfd@iu)LG195IIhq>i7_2Y)NS>0ht>U5;Z0fU z&-h5j1w*6?uq{12x1`NRxbJOgtooItw9705&^0hIMw-y(=H@D>9EBXNXn;{-**!dn zg*=t+Zf=H`5h$OWT^ZlhJ~a|dDeO53>XWC>ki5U|&8yw>ANTTfTWP&qRJ>>ChotAT z(Wt{4&sS4ibvm35@)ccBG2ZXQ{Ve$7(b24cq~xziNrwL}o~pTLQ>gl|MY^Q1fFtj= zZBS5bl8IR5O}2{}Km;LgnaZX7LwyHqld@+(=STVl>iF-{Qhz#p3~w7zhwK;7KBlET zM@Hh!*U6>iWCxsh0g*kR zr9^DNO_##J{ir=5Bw3gJ8Hau&tR%-P_0?OB{Tu=5<@Z-zXk-CWuItZ08)HmXeMtf+ zfIW4z_<86jhYZ#BU}ZS(VU+>PIpJ-_~{G)!@;jteXk{-|EeHMT6`Y z79Gz3*=nDRv_$OpEsbe&x@MD)EKC4cB{ECx{&Hh_{h#5L4_qO2_UgLx1wdGo*lzz+ zx^c4uB2*3L%XF90a~gh?;;I&m_v3FUXB)VpEX zSIG(++KEu{#i_kOLT&N+)Cinvlrt(qoK#deN*?$2oq9Ls73SC6x9^} zUaL+PZX3CrXZ=_S`#}*Xc;i&06bcH%8EEr^?0Dz8_Cq7>W70>o1$V9We2#cc;j~-T z@|>o@za*94O4zhW{-uLFI$|-8|F8{^d|0eK+-6`iB#yr#g4mjNJ7k;E0ik9BMJO5x zZ|F0}wP0GBW9{3)vo_19f16`Y29#e95gkng@Ew z%GZ*vF7~O0O@PNfU8dZ-A*)zw=-PfYvfev&(Wy6`%`$`x(sB1+iaFBC<~TY(#`s_X z^|0U$fy<;@mK9d<=W+%BEF+*_YX@$}MryX864~|Cq88V zM>;qJU_k|b%gy3|qO#uA;U`lU2^enz@IZ0ZD~hM_iAnZR(72eNQBmhUcXh=Q-$}u; z6sRT8iYOL-ZEp9HsZw~u>HpFEXGRwyG9G!uPW8<=%%o@D$bfoiclw8vw6s0erTxCC z!hNmTT(02V-D{(siUdF+K|9IG{VxO-T#qzA09&>4QJ}0%6wvf27?S?HW?z~A0RiBU z|IY|OH()6AX*d~hOc6#Z?QE4#cOQftsGs96l4YBDxFv{Tc%wA^N~$It$EsF%A>}+# z$dmwZ;>h%JhI`^h?0!jXJCS9l^XvIm$o&~a_J8h}T&(~?IvAMr*KhO`<3pz`Hs8Ns zdp&9Waya9u$O3*afw*smMN|8Vz;_~>A6OGkc|(PKH=G6j((Y;o$E2G@9Ifx;&_Sz% zzRwQ`&)*+Q9;&;2vpj?B)2-0CGtqeOTJuBpiL`8$c?CA630E8L4|yly0=V%dM$g(Z zT)l@w=VvBdYl0PT=$qqCjzurwpi#Er1{QsO=rN2s5f`)y!9k~RgGSbY(!;KDhC?5)z7fow{9Kcn!*iv3^bgRH{dMW z5jNqkU)o&{Y^&kUoZ0HvELmx^m6jFL{&2k6nkoeUeW5g+gVj!j`HG6Dxed_*Bc2}G zI``gt@SDx&*XAn8S9`JyLxZV=nho4Y`*gcFQEqscLT_Sw9k)BQ-t_%XUV&edu*_;A(kI3dADBI%|V~4Fdcv@Q8?+Y0x>vu6jbc(3B9~)#ZBHU$Bv`FZZf;QNj8}#N)I!I z^fKjGDe?wi&wMVaq8V1BX=9}~Zla|`tT2Tizm9Q~**?548WJEkbKLD3n$1SWbeB)c zlbs#9a=Qz(MANdJ=lxRhsm>-Zc8X?Gf!b9|KM2(~G>rd{WurS?%abbTb8~Z}_^PRD z&?{Y!L~2ny3cwK2 z4uY>*@u)6^@1co!9k4t_b>A-$XYBrpLi)hiJJ7`Y@@ha6yl*90c-%?W6&yV7Da~SB zSqeJVcwFAP11Ttzr|S!0D}r!{s1DS|a93oVpM~%kd;BC_Ds!O&owjmPgKEGGY z5_xrgb5n_&^IjHLXLnZ}5nG%@llG}joh`|v;S;qd^k;NT9ij2rs|S^_McOFsZI;%C zD;B15tJ(NMj2QaT*Xp7HN_Gv~Jhp@42_a7^jy0czJ%zQ{aHc;9f+syvHqeGX5acLH#5_$lvdMZRd6yPGCRW;+{XGG;7x)_LP0n_M1F7GWLqg&~s#RX3 zrKaOCdW5FI0+{vlZK>UhuQGbuk+ES`l}>Q47Z$d>B~d)fZ*W(mWiqJ_=_ivm{$uJNhx`k-6m2P&1kok;cP01{n#iHFHAhJI*Lg`D;SjU z*51nf#Op9buO8~6-p_xxms}rD=5ZH{j*ey{5X*b_xnpZFhb#K9fetW2iIne@ z@5o(lRcN>omGI0+FD|Ic-QAd+Pj|(9;(ltZQlJJ)a$rq?^a8`6Q(phzj+EuT06ce{ zD+yXHBB~_@fwtq8G`tgFHAC2k%J?_6?(S~eOWV$vJoZwv_qh|;BM<-3Ro=zJ=l`LrtTGsC_&~&G zFbAK@;2|ydO1z=Al00B{Y)pmd>Jk(s59lJD7$vpN0b1apnk$|Ny#gNT%minSN&_)9s!kD98 zFTZp_&>b0Qf{$DRSahp99G|^MWf|0pH1QAX&yfhYP(PGJMw-W_`Hh+m=r25awQcBm zap6OnL0JNoL9K%~DkP-p(N3?Q{}r>KBu-yi{Qc*FuE8|M3Fhx8ZjB{ZPgK>sq-WU< zOShkUlO|Q~e9#&`5mM=x+!YP_Dp~y~+O6~)rAf52m6GNCiMm``Xv-Ivw0|F`$x%PE zXH_JS94Hc76SZx~DYor(nH0OicaDz6DeWSM#g%RiM}~5J(~m!p=Os}jLFj3yOsRqE zog?ff6X?Kh{17liVb^mI#t^c^`#d}_z~&ki*%{Jvk;v?VbW&uD|^5Mue9qp2q}rrE@V0F>cSWjN*E{HiY2w$bX6rq)q!k(;AoE` z=HuTI2hGpQQ`THlzP41W8jBR$)4d^{AYsLzz1vyM!sX2XlxYN+aB&^|k-YjA3p~#Lg zk-%oy4CKrvgQ}Rgyi{c9Kuc$2r$@F)-z%RK!12$ews*C~XKn1QCGsu4mKe!oX3SiQ z0<%>`!8~!1xsxK#+t`=KMr&oCv}dD@q~nyC_piLeGS-Zg+F+@ufLcpgy6HecmY_XOCfr0P>?}GLxboX zd_%tqcszRonE0|LnjSSb;vFCC2J+J4IsF$9`FY~KsY{28s9!Nzdv^}6fZx=Viw+~1 zrxqZTeaah7(8o`NCKPfY0RPtfJ$B16pbN~XxicJEi?(3xY|A8^skREq)APv3OQ`BL zeP?>pcfIqNy-(nMea#JE&W`3nmNVi4(#MUCvm_<~qSFQdSixc|e3AD2-Q)L7JylwQ zidQcn)oxr)*50+NSd1=~C+dZ!P8_6F*o2*Xa~;wjKNkTl%*(9T)VMsq&;uO9MHh+k z8p(!uyP2suOZ4FI87&T?EloUbg*@1eQoox_{9;AXt!9_rnpTucA z)?%2$&#H9`naemVn9I0{O6dG@lN1ZFtJ>fPnpCjq%k&_5B)lhjE`h3Sn8`_}cy;jHgG+m*oLg~C za~!pft!|NmPWht}M%wnOQmIo9%-)2*oerwzbSi;8a%s9ZZL6D7siGMCfz+cEem198 zS0x0pO0F&nmwYgSf-#GqIKa0#pfI%oQPu7chfUMl4O^@19^}3XoTYgBvuEerF8yxbJyYi8IK@VTSSaSH;KuKo z=Cj4o|3nV>$n9V3ZzrEkoU2MMg~$$|*lag8C;p{0>cy5fcJ@~ZfQf@my+8}u*9`zQ z+lUV=ZUdTzcqY-qe)f$ihUnxri*hX&#C0)Wr+zX6%$Q((b$xaLTWf&1hKC!FY}Zv~ zGl^u=a2)M&-c%S06>B)&E*(G4{Z3M_w?Hb2V#k`UxhDqYad5%aM_tju^DZs*(-3sv zg6QWV4l>o3io&%@FtloxxmO{v3%ckaNT~FYOh1QDOk@;NHs4?nQqZNIXL^}#m|Pw# z>^0C{X4`GJF6PEH7Xr3kWL5t6fp6dAh{7 zAExC;n-n{95A?)m!dM3tVT#$R2*qIzZ*L(wBGR&NMi=gm_F+POib89+N5AQ;_r^xe ziFs2}%`}Q5;dT`NFSgz~EXua~0;N;wPU!|gx@%~p89F70?hXNgp#`M7W9TjsLAo1h z0qO2M z*WW*Cn4Sik2XYq1UyWCAcC;wA!3Q}5NY_HHREl>Gug9AcH1Hm-2>q|;D_5eKlUdYh zoiT53Q>lab>{nwk!vl&~0iK5Kw!zH8=#kfWS2Y_Yen^xX)l zFt{dgN^b~pO<;Km9p57r|A4bYGTDBw0an+Pra(9C6JCo3%Ub$Yz}YQeE9G=y@G+(i zm#Dw%c$b?jj3*aOOxl6F_S}T5M(c5}X&Z)##7(oP^s?Vn^v2Wqx68;{fDD>kcEHud z$!oArQd^bL2aR6pER-Ds0(hBAS&P>7hfC(C>IG7>&(944PPk(ZJp*CLMai48q6@7A z3qqm*-Laf55(#Sj5LfI5zbl@GvJW`#;?#Q2xp>SL!>JR)2L`ql3Whm7`iKSmx5KTD zj&C=&NzTt^+KkU0U~%*SOzQBC9cwGSiPUrq>V<{O(Q}8<96loNWn=_QV#JWQvybEW z^pcaS%tLNW=6bSPXg=OA+Z>DB7bv?^E*7JOUly*NFxowB0}s)B;C@F=s8a`@P)|*5j~fj^YtYwbto?7SDd?!EL!JsF(2YC`cc%#YX< z6lDi5*BMV|&+XO2f>cI)pjiq@lP2vZ2P5{dH53J3a}^97x)eJfgoTr@`NB`SORDxLZl*BAJ*<-T+L&i zcTvJ>;RMs)lw{13etZgTk0j_Z+;2=fia}hMF*AguFrhW`qB^4f=JcO2Tb|&DT%D`h zUeHR&Mcz-NyVTM~$0}pX%sP-z$+K)RnI&i=OoM%Wt>V5FW6ef&aE>3nDvs8R_0_Dn z<;0;Fy(TtR{Lx<$l2kk)p}^#mlKB=;5+FTU2H2Ar&M8&fvKgW>ka>`Uvu@=ASYsa3 z&`KY~hn_O*63$}Ky68#EXDk-2Y8-j(cv~a9AiPr%aJ(x(@p&><*jDgi~ zj65Qin?>2VsuDgRVv}Gz%lc^8b6HKeE2@!A-T#&@KBhylHJoXPZ}jst9Bb`;tf((_ z`l7+e15>{G*YvLGW!hu3+3zJ%LIYxUnR-|70b+J$mX>Kg<1=n>6S968WEmGrwwPP* z0tsJzbV?3lL*k z0E64rnroj2B+0t!RAOQqWP|W0s{;b!n5Glv{R3Y@_Cn&1Z2#j0Aoj$1;@i2Lm4A^v z+ZeSwb|d;ImR2$&7Zd{q_b`0#lA$$>xd$OGlxs1Hbfanbz)%s8bh1|~Q<>1dVS-EL zspW*A=vX*cUmgc@h?3?D4~5j|HF~R|1rLGt=YFUP=`N!Ld-u<2otv;x#YSEtOZIXz z_jvqn(qh~=U_so40vF|y4GEo%f=8(~qd=Abw4bKN(RsVW%7XKfe%UVvaa>@H%Dlem zEGz>0XLK`Ww7|0lvu!~?0Y5*5sJ$r&2sxVgF3s=l(%0ryFD;oj=L806r**+-UTJlV_icB?FmU3^BP za2|ARFr}h|x|<>}!;;M-rW%_mnTZrVCts_6UIwmm5w<*Ij2qGp#`*hEc_p()Pud^olatr{mOD%SS9x;dDi&^4 zPNZSxLN~v51%`@z*fay*CXw;PPztbilLYelPe!SS%;Y<1IhQVVtnf)V>Q~T-=Aj67 ztx6O}PRI!VG%KTMk^Ok`sQZwxZsEZ=1(`d#N6W@DMjZV;KlhuwMx@>eVXJK8$c8(ro!59ERm6rnv@H*pFq)B+w5a1cWpS% zr94YNZuBl0l~b$g;*w79S62?J2a$8y;(TG%XUpgV-PZ@EQ`2CJ<)3abwt_%l)?~ogx0rXt1J^}vLOjTA zF$|)f%P2>w&1HU9+;Z*z-aTuC`ha|GGHMU7aM;vqwXwRizG+Fvko-x1!Upxb$F$_# z5k<-gf#W&dt2v%}$-8sQ{VCv+wVL0e4GQ1jqO4vlIdUG!p?qrdo7lPXoSaIElH^mE z8GX0V=0T1TR!CuNRVuvI00W{;1?ezPH+U%Lz<}PXnU2QkQM!IqSF8N8hY>A0U2aI? zIwFUmGmN6+{;KWF=_(!>B%)D~=%WMlGb8iJS&0x+sS>x#94Lry`@jpQ9U=Cs|5eJJ zIezsQ0i&?g8@6p)cD-KOSLi}io6%XPug5Z9bK#jZ!h!VQDzz`UhZ2~7OoKILu#@zh z2N~CF^q%^N@~wYU=VRx1S5+MIcqJyEjen-|+h#de5djGBp_9@H^E$sv&)HOC$y~yj z#`6UMAvp~QI!6ZwP`dnccpUMa;ptDev`-QZy5OMeQ$km*{D2rg($T)UvFtN^}JOQcl5y%K?am4jLQo7!u>p-A~V zg_xbf1LVjW5|nfc1@5nrvBmu=QLn(ql!^EZKsEt;ppAccm!gLxYwNk%4PF z45>3N;dk7Tgr7@vsyc_AG#NE^Yg)RXtRn587|Do%TF|Xl?ob47YI`X4hrt5KxDfZl z>kxslG!Tw7*JpU`cJ5(c%5h1e$vcL$DwD@Hsup|)z51f8^Gsb>?T&qRY7;HEip_Q30Cj%&Z+ zA4U7Yj=(Adz}oYPxO7MqwK`t}9#Vb;%Gxmp=1ft|M3pj0(HTvB^t99P=--D30UT?$ zCHf94Whhi}Bb#{zpXzEMV|uk^!~Y=-x88s>IzUAAeQ&yTaZZuM77g(NjxE=cB|$<^ zXFY@Js`gVwpXB3#aP<555`%m_wfDrb`oJU%(7hbRoLjO>*mLVC$oBBBeo7AfnPgd*WIc)iC!!RJWsSSXrt6d0> zN~>B>SlV_>mg`&p2j$UF$l8)w*$zinYa$dqtUZ>VHaln+XJ{#Vu;-Tbb?LS(&TW5M z8;)8(-j5wm`3g=ApKRkDMuu7x?!^R+p1@TmOn?Rrg`;K=+MBAsR0l;_VG9WTDlx9L zT%q@VlY-UkX=liE(WZxs0uWPkkqnxZ>0Z*Sr{)5C3+e@FQJWxA4qqafbu@tgOj;v# z(KZQr?Vo9z({5EqWYvGHSMq<8-6!a<){0Ikn4~0-sx-r)*8x}1{~o*9cCt!Y6D)N| zAsP+*$>z9hV0gB(9%o-XQFHix{O@^$QrkhJY(l1M!a6~XamL5HN2C!OC(Q{TlM;fi zW`azuf%2g}EB%k0Vs9d-#q9}cHbz-L3rIF_N6B&H3Ijbhy9r$po< zNH&dqV;zcP0#g&%%$I?qW&)h2$sX%eI6io5+lG3;2FQ6i;p;b(0_6apZ^+8!Har- zNWxB}^5wm50I!m${WxbeRFTwCt0aL1WfeR{iOP3i@$=W?dTVmy;y&^Xt7AocFKfHr zt&S~Nwg%8E!YVH;ummyvvM!K_`Jr~$0JP6R0XI3WG}RBiU$6maf#C8sRX`br*fr!! zVo~zApN5$t?pVTOnOt#zM;*N+KU5wGE(qB*ln*yJ{6I9~ff--%aG!4=`$8go*U={t zPxV%Q7XB9jci1tcY0vuAGfeZym=v4y-d}&UQ(CfU?Q8i)q%3^3ga{T2_A2u1kp35I z2twU*hVI~;f;a2S zOjiy(E5hHGPBP*E4^;xx(%ul?EEI3+_@3g(t5z`rA;kBcWY*_JX&IaS*dXW2+c`v? z?#$zL(YaBhAgSj3cr1qe@KNmV5v^c%bRaafzS-FO6>drHn{RQ2hb{kId}6B0EZ}69 z{;}>1f!f?WA)b~5iYV+v7;{DPhpZ9WNvaZ&duUfO3tk__>h(z*zprEcsPP#|29dD!0T8)qC-u=B`zA?bqd}EZ%-76I1RF?tsR83|I%)e&?U1VV7 zU!VzkoU`jRX<^g6=mPxx4=Q3{I0`#39Pf2fkYPQ8IY^-#Ubd=l@|Pkf58ad&OHhqUp{MP<5%8WC=MBec$)*Nmqq5M%o7>2>*AX3Q)y;m$mu4i z+{`sF@^A@kYFTG5@n1OrCl}HxJ41EN2?h)XHYeviC7jLdV`BwF6^UgH>ZOA4e{~4m zzD5w8lv^$bY^57?xY40j*6#i+VKCThw6GTl*utl=*OvvJ z;|{m`QE^)Z2}C6eHq}eO+nD#Yj!T7{mZP^aRZ>p=Wj7#x@AJyJFdvRkjcs>7s!vU} z(};O_p0n4Nt0-a$nq?6>N0XrVSKD6zkhd>N6$rp)}gHQLCQ;Z!G$Hck} zE{RRW-jR)reF<=drvkoXP`7!H;!Pu?zVy|Ada*BT#sxdFTCWa?*RUU~#&6AD!y6sZ zVLIX7e0(`@^v}#=oclLwgtcOU_Nw6fFJ>*)IQrli3leyn0kMC7nLaQp^Y8NXCqm-3KVzfdIMJU9=HKjtWaEAcoX}O`C@lJd6h}Z+myu|)< z^*Ia0i2XyEeZ_23!VLW{p4s_QN3$yq-}N=fJ6rsz2y)b$v+<>Eos{$R2Cmo_^pku? z6KrWUgtguz6w#v5*=i)8$vpDsfZ|e#BGKy|;!3?Xk`l?jfnu}l>L-wzpP;QDQxGOG zn1Si@<-|$iUOW?|dpD%S=s41&@k#yDEPDDgTU!AzBk8de3^=7={dofJ>V(@Umq*VX z`B|_22B~WqsYqRv&$4#n*41QRc5+t5Q@me0E`wSP->TuF#G~qa-I3LnD9daWZ81iQ zS@{_y+@rBq%=IkCY!|ro>R=9SyCLVb3kj(QMFs&!$^7}KZ+WzZmwOP*&)DlNrlmyR za02ro%HOZUCxLDGqw9Ird$QryMpa`&pAky04?ea=j;=@PAmTIDd5;$jbm(aNu_K_xw46vVlL&$=6OQu54^JYZ{6B8N6dZ!DCL@7j1%+iVbtWzJUVFJaS}Cl$e_2; zKI01>K=?gGuigXqhjJzorYGhrvWakv>-}O17t720t|iWG8Q;y$f!_j_%bEtSx}uAN zV+zGt=Pc5YHMdZYRw_twHkDs6XlZHJ>s6G)KSpvAK6jA;p$<9k{AHF`R%-0}^g_c{ zG{WbKsj!k?$VERT6fjUxb16{3U1?4;XzHtdO??*1XS+s=@0tG$sK-(*Y1+S@2$Zcg z{lzOB?JIZHCVVHHZ7(2HR*Ro(Ucm5>Vqpb5EfqoFp# zFkGb;w|Dcm{%UFkU$utZ3Wm*-6=^wZ!S|8lJKOvDw?9icchIx8=EuzSKB& zEeZUP&ge3*DSET3Q;nHjwt~39=~;XKbyvW`YvX5oLbT%BJIC z@;5meu+!%XMk}X*#Vz}TFx|%PEKGI+x_K!-cnSCJ1K8sM6)CW7n#a_ zrNh8;J$}jB*_<}l*4VlEt;&`4j4^3&YB{{tBfmL&Ka^^rT=v?Fs)hXq;2;P)Pyr)3h~IKjYX!3YH-ED#~{TM#OBlLQM>ck5*YI6zcRs0^|l5Knz7OiR`4 zz8DPM>6g@Ou9Gdd1k%k;*`Y$KF4&_SVvy95e90G2dX6+wJ3(-$=V>pF#N3rw7MGkGw9)^XL z!5wHM!&J=mz6=Y5?d=TcEonkI(<}@mI$c6;3+X~gvDeqmg^~o2){Rd750Iy*PItH} zGycODQSs^&A&sQUc6GYy{PE8g6;$~QF+-uw#(7Y8XD;Sh#=ei*L5)p;J=N>CB1alg zJHfUyHC)*`56^)ZW(&W~XLdnFqpN2}D`LL=z&Wbko1IZOCZDB|wW#X`2XVHf(<`l! zEu&~69(jLl2kAAAPp=blT#Meff=?zt0)|hY;#`xMySV-$2gk9YJ$=^JY6ZpXg1|7*ihhfiIL2T&o?XJr<5MO6;K%~)gL6W$d}*?}Lue!(GI`C+ zD_er(ueMN;iU+yQUW<zH6?(+AZWF+_oj#7lWocg$fBzIw zrgl-oVKje}{}c+7Vc0j{%%7dFiMG1Bih_v=6#&0%iW(+Qm70p+}IJkqah`{ z-tQ=ORqV*8awY1LFd%?h%$e(brm(qt46giEK!UV`T4)wO>!=>~oe^LO=}Z7`Ed;k@ zOni%B=kHk9@g5orJGw%O@9JSP#I89{ARjSC?{{Og8HqgcFG^Uu`wrjZ#@|GoMITYG zgK@TpdftiRQSrGND`2#L`4W=#j=39LrUx#Y#H6Wt9yqyu=;0j-Nl#J;vezj?6r4SY zk~9Jo$z1>^WN_?L-tdZEs8tI@M2A~Ku`v|uX~G3TR^>-ivoRG7x_2NOG9t#mHu1R- zbQ53nWBl`B3BZ3K)d3H?o34!tjrACM@7y-M|CB9JJ=uF>&Wv^D4S zhx;lHdNKdLvWNe}q?;lh_ha7Yd;jur;=@kT!y>mNfP`7TJTWF8N5+OB|Zn zP6151D>_dH`%g*(-D>CduCrAAuC5RcR|~{Y#?wXS-~F|lzW&)wfrpI$q$1wv&Gypxsm6W|IZ_pWnp?@xxSteqWbrl+c3-StQk}k6n__ z&Ybyuui@tGZ*jw)h0-yBV~S>fp`Q1DZmR*>t&5+bz0o>^g!%p?;NtA`>()@BpCh^C z$NwG5|NgiE>_2Haibpu+5Yz-Ep-$@0FS-jPpo>)2JjXlvuMzu)r`#g@6X;_*X=E*7 z=MuOVp)~|>O6%Cv-EfCA4T~L`e`WmtqBKKc&}#%fu55(V!5lah9>)J+I!~>!Okl4k z7p#ov{#t(jT)PEip>NJKKN(2S4RWVdzV7?;#a^K(H82k-_PiX){~}8NdqWQMmSR+jQ^QwS*W>ZP27a#h5A1~|7%SD|Azk@J(xFZ^Yq#kbHjLt3hja4ysyRV z)+ys`U%|sCDC9(zig)Ps2H#3;Km~>1B<>7(*j;4ijUxEdHwQ_}Axv{wxSkGrbh9 zIV`VK%R(x2-N}ZC<7huRzaB+90Qx$Z>T+is6;>;Gm(OvK_#%DU``Hs!pkD&FP*6R} zrviO$24pMj|MOhMKhIUc%kgR{pp_Fg_BPGw+$S-mpLaAjk2 zi#q4?X9{XgP9}|j7F_7W2`F|C4x&DDbfKSo#*b$BoEe&^NWX4c2#>i+q4@(aJd$XJm2qeWT77NhySDZ|5>%(+0eD%9e}!3f#VD6i8a^nM~6gS^Q5H{HmjN$CaPm=$cd zVD?m%SfuZHP<~Z7J-Ll769cpvEj*(4NWCAnqEaP*wAg;uNIB+$-X((H8fJFw}^$0*LDWz_l3K#rH!W)4;%?76PZ0RlYu z6e)kl#&v9ZXkdI^cqGF%5gBffK0-TYLipt*vdeu8ZABqENG#g*T&gz+EFvXn!2Fg+ zjl<^dd|d{(<~6%`%2$gnMi}f1mMhrSC*Y@3HxX2Ohz@ zo=;dPV~KbDido`0h0!p4f29x38N|Etgo-d}e`HWUXEKV&W&uBapZ%_H2-HTa>G8a@ zS6|$#WTNsSVEu(zogc8jAdh;+-_?Gb|ZvpWD`uXxuNSVGsuh5$|jLqq4sUYm}YgT@Zbbl`ug=l&I6fB!iiem9Lc z^$1XR_cXp$m=Ay}>X352?>6n#DfGKy)FzCZXS7MLnMKj|Oe+70Q>4LNR?+Xdp-uZW z-?nA=TJs(=>;iKoj39jLU^rnWuuf$4+-S{C=c`eWGE$M`kJiTNSrnBxNjlYsA{99- z9zZmDRO!L*dR92z4<~5L0$0rr)uAZ*S9cP4G1fRZ)szcC8M4g>c4SwoN$Omh`AM(x z4W1q_mqpJ~3Jgkqsti(a@;{Fm+5|e8>Ne!Cb;0g&%-#dc$Hg@QmPEw90Gcg`4|1Lp zT;{k6;3}a_RP^Tku%Yb>3f$n2BfN=XuKEc~*ILDx;O1_%Tp8|{`5f-8sF>o<85p&;SBa1N0o{{{F8&uM$}`-S}g_H+JU}VR;&X zxXB*ex}aq$#2crCbBB9sj7u~!{1lbin7L+p2R}*RPCodPfXaKvWmdhj*7K>n;BqC& z@eIeWLM-pyoJ_#|oEHwYY(Z( zb@Z`1)VkC(lHMG>%Kh$fO(|I!rmA0Kr+Ax^f`szyNZP~t+O9PaZ%HsV^ul+1a6n6c zSXobKnKrsyhBn(FFA09X9zr^V`ZLm{N3WRH%K^?n)S>7gmAf9=N8S%LCHA?^=MJk2 zGg3ruKuaNK(aF0p)=xoH1XrH&vAm(sz{XJD+W&k|MlbZYX!r#dj;np=6S+HCq`%R8 z?J9_yG$(7Fw*d*4~rZ6 z`@Id}*5ubAFX6>!v)9}XtJzB7UOZs>3MGoosL z##>x&{EEM*b$MyIISQj}M*$O`tWL-<6Vkh}i`Cu2tKO$dQ$zK^BY4+@Ow?y}6N?Qftli8rga!|e7m>uS zi>z8by=H>LRp2QWTZSQ6+t;#wbb0 z*D~d`*_OpaY*T4OEVb`p95^+<0XwnVQ57fQdM?be*{J|rx19gx$0icDZEm5g1}*N@~bI29e=W>ZsPI%B&_*TEfaJrQ};tk;s$^0sH8uDna*>$GAyrozr;yRbm%iG z1@x#SzzFf1!&Tm4aj1-V)g#DE$a08%f#Nz+IXSc!Evqpdkta~`qI3_h{IHh{? zCzH8a-3Qbm)BTT7#LjGjRLZSqH~wa=S3^0c8`=Sp^S1NlyO1NMbTd2o`q2^FL&V9> z{cHWxtBA<9s|aMya8&cJ(yetxkrHtGNHZU?vT<>6oVIpRTc*BgDG0b;3(Lf&RSNG{ zeg8@ZCgG7&Dv?@X9VRr6>+f41{xbV%oOr`(FW0+X9EAX%ZcRBT zBZKrev=Q=;zl$VH;1*?|S+Jc{RuTNR0<3n1(VOQV&SdCKavbZDa7T$uaP~SV?8{f; z$+k=a=I$+Cm=uR&5H?> z@fR^;CFDy6iSP!}?m>#jo3tOfhccL_@NPZ*WZ$owZW(48NIq0!3pc>o4H$vdMT)R{ z%Ti>ijKK~?niyl3$QaCDc$Y%zLs9%Zj^enEg1Cz*wU%B>Zn*Glo0nfA_I7{$W#Sc& zk|lj`cFKfCBDX}Z8aqLYttlpq_k_F-E7ugJ>d99;j@5Wpj8wKURsaL^R!@YN|68@DA1X! zxv|KrQn1Eyc_J&Q_~8TIr&r`Mk`9?w;aE3Kb~sl3}4zt$<+mv z0LWLVPDY;VDQ|KX?Z5pRt>e&0>|S| z+I*p-7sNp9NZys1Ob@*XZ=y1w?D(+AMk$hb+LF)KDqo;l;cs`QOy-Z3 z5t3J|>Nq{uw>_NYFbDcj_r2b9>Cjyvpp(ayXB%n+uPMz?%=f^}9}=C`5PTDws_ed) zm!|GC40#v#8%gY;2facU7}O>DJOD}`13?_HpFkAkb_av#Hyrs>bF;G4HUD+l!@l+2 zI|0t@-d`JX(euX{HC*`i7&-;;-|&ROjTC83#yM`(Rz(spV5Y_@-u$>>`Dg>=;wQO# z@H~5+#D@&4j$xq^Dt6jC1B=M{>pjxbw)zFM1kr(=g5Up1Y=#{KR*D0^?l1nOxD9Jy z1E>}(A?uy38dE$y<9;fjp2C=6)iRbbvy=(Kr{38@EwBi+_Bs90E8Oi%8IX@wN{nyP zN2K_rx@XCq)crfeun|Ub1P>4q+pm)Od9q?OLnM+KpafTe6=dvvMNS;UatOT&+Zoas z-vRIKmpaH_lgxzi4=6C*9Iy0`8Ty`?^?RK2_|$%~ge?6E9{8$ku@jd#Q3ufIGce*X zE*7(eHadoim~tf%r#j_4Co1!(Sia@Fcn&XlqA%UHGm06zgS zMa1_;QKCidyN?S6m<_!K4fSuPBM9{a9~923&+wXyPB}nWfGdJitN*-r&V+sv0q*jX(TNWG8q zncz{f`s@I)`BG`hh5$7SU-^{=dX|mX=|0A9F-9}4KGr*KKwiMx>E*rpMW-q)vO!;l z1C2M<7hfsp&Mt8k&t|A!4(bg@Mf+CtFV?4K*EFpd*Y`*5MHU+a^kaGKseKO5R*eVY zD?&?s%qEGLG{KoAn{Oe=o{qVi->sO?lB9>djq{2JY8CcSKA?RJEBMgq^m}uMO5+uO zltCGR4N8M~1TXdzGqjIv6x8N&PJcCOSC{ITz8CyhTul7~V^>IW$EGoQM9Z#Mi&zRf z5zwVqK#g&aBU#TlcRopSRbLUSj$r`3VN(#iuXy)p5QMz(oeu& zawNj1goymQcQoA|0ktA+o<~WxN(nbwg`}lg^)ls6hV3_I*UM`kI-xh{j*o$<>Ro^I zNJfKvPY-4MdjAq6 zl}|B+ny`WS|E^#ue7ZW|o6K`{WNLDN61FnUOE@NBIVXXcA;e-&<*{EsOtM1Nglsus zsXx!t#@g_Z%BfZu&84NK69zKw$Z8bW7cWt2(zY3P*oYi->gDj$PC`HB8$M*8V{uM8 z5bIWKb1b#~FQ^)P2*uFtJQBv1oL!*G)=drkD>$VDadGaC7>81YlNmptjWuvZo}boy)nhfDdwXiWLsS}laziS{b2{k<`%gAAKU<%*p7rmNd26b+bqpoHNiWc@a z+oO1P0GZZK^1edPQL+dNmd{R(rt%U`gp9K|VOjU37$Bg8-whhoYuxbD*0e`fxR4>c zB}q__s`K+(b2ru@LM7=&g&Qgj1cs?-#*gj?y)L^2n0lJUwpaUSN~~3W0Mn{S+V0lg zge-=tOg3?3mDUOV?1l7Nz7t4n;`Hl3T$KQFk}nSV{*_wTY*e$#FH9V5j_~Y6dVIf% zJdLLS^%{J9&jJVYr-U$mKZ_g^Lz_4lmVD!9!PPGE|q_$yYI^5=Tbf(~dm zV??S9(nMKqbHdAQ(Giswh#pBmZc8ipNYzFu(M;=wbg^O~q6#)kbF-B=(@BV{vKvY9oibNtgHL#LFXp zLnhq_WC}shrY)NzoK~$+5%4v0c>lpXOy9|%OR_rVa-EV$uE`Wi%^4n|`(Y1H5x|p8 zwV26P`?R=?*5KBY^f+VHX=ZV2JY2>p9bkjPOu%Pkbn8re?YrW}m{NdBbNFe#yz zFY@lrSQZklm}~P`n0%t1bRYquvDrTwdC{v9+phFy0bI8$-kJX_8KbNq9^HX-9yISQ zFPDmlD`J}rBY8*<3bKvLxOpDzVi-JlhWMDIBt(?qvlloZ(pZniO@+_pG)AaHccum& z+0sWB<#tt3y~GFyV&{siOpn(~KA;%W5{s zC+sU_wVn+tN~wCj6=xw9`tXUCj54q{YY5MU`bFnSY^XRLey7 zZL?5)5-oA>Ljq9f)f+!L|Q*^fdFBA>^!hsDL!*!Pp)>* ze`*Ta)ctf~3ug3jfsH-oL@)o=$$&~2P8u(2$!L;mW6+@b32Kw04Tj=3=Uw2(>ip#{ zT=1NI+pfzp*oR8oQSYlx!25K262uo5e`5}9~+ZR~hY`^p+P7%+%m$!0yy2V(2`>LezFgY$8+6WBlmFk3M zCoQ0HWoDP&s&+IKSU&nfA{%a}mOXcgkiV4i(s+RB{*|u{sB#xLA+WYyVdz5tE)Wb zCB0&LRpeY!2#oK)d5j%^<`fOe&w+#A&JLaQG16f8BNAyX1I^TQ5~@CFPwWffX45ai zCQ9@1=kcTnI!O_-6LlF}<8GD+3sf3XXS)8_JNsd0B7U4PA5AaJYk@&psa`EU10jvs zWwY`kl`Nv1813T@y*UiPH@xgJoU?}SSh~?n?H^M&xLh=x8AGM)V}Vpi0YVmV;NmS) zd=E)HGNBF9OaamljNP_~b5L!IJwowmr++`ip0RIfa)i(8QVsMX#fL#&I%-W8s6P7J z2wF{3@0jt9UsN}P@=Fy7U=Z92`kiP9?X~vUo7q?yOC}I& zjrE6dMd=6$AN7WvgV5S?S1F>xE75UVi*%myhqNh7|LlANdkr;vl37F? zfnx=9Pe~ZuDF2St@yy84_uEUpFT-80-0541?9KjOS*cUVxuB2_fl)g9UWUF%Q zw-XpsVEq#V&pspD%<&l*j#}eUB_;w=u64e;l*tk`o}|*MvPFX<`@^7^A#Ge7F9yz9ITt8PmD;n{S`tjQVjRbaMC1{G!2NF?EElij%a z8Z*t@Et4_XxNoL^TBYgXY)p>Gz3PePgLav!Eas$K5mX4$iof+D=!qB;lh}$P|LTC! ziRi3l!_{F4-Hg>kQ7BMPy$dEA>XU>26}$W%`^naA+b8n9PgfHyfxCj*#2&RqA*nJo zmbYA6s52Am&(_KDx{PFN*aKz4rm}&kgdU?e)WmF4R8DPs9@@ z| z5A1Yw&&5@>iY~I)`mFg}3B;>XMc2wEXM7E%rGE9$YdjB<7>Y>;Z(4ltx4X5^)Z>*$ ztJTZ9JU=d?{j`tCK6M|3A`ntaN~m@pNm!VJHMHUL`*Q75;^aM4HQ1vQ*@k~(`@!Cz z(kltzJCG7F@>=hy6VEsKI@-uJ1V$fX{ObBu2TMuU@BX^oCMEh`ayRM<*Ad^&Je8g> z$JnB-FSzE!R^Yd5@(K`jYBOItJ5Y|Rj&J?$Dk8kCe<`EXxfjA@K&i1x9FsmORZPm_ zd(5=9?+!`q8>8PSf7wkS8upfH6U~6ZdbOI^YHS4>$@hI)LD0Vcklti(vehFIWwtU`3|h|u}$^{C}=Tk zF++EiRbvsB2^yZm2>cr@ud9p?SYmu33tm?zVonde#&xohOQWj!mbhuQ>(6}!EoW;v zbw(_o^w5fWx+9G;FuW{i4TL*B+y@ti^0#>7bK|`)`kqADgrJkam3v%Ku%VQn$|zHY zGSuva+BKUKf3&$?gB#VafmivAAkqvMwtfV}zTu!q^q32WRtD{bb42rh)ZP z0mEbv!_Fsw1{I9GwSw?_(k;+FLYvQYTzpf#I%UM3z5C^vs5T+{Os8OmCuyNw_y$VY zO4e(WzuAe;&X3`r1&8aYO=81U5?LJ-Z!>D`bEd&n&iwL;JV`$6Pw zkkLw`T0i9`=BWmx0W0=?M8;CZ#dHKOctruzvpUrBGgoP9xdHWZ zdIH3Q-<-S4lxaUr&Dv50d#wobXK;(s9+hzRbL4;TUiwx>I$Ba?W3S-(y#b}GbE9L| zpO^|%*B(`vCPsDV!>AgDK@XZj8+-1-gzVuCDf()jSvrr-+_U)=UT_we6<}Eo^Bl2u z>f(kcSdC?zf3p@2wt zw}2?!U6Rt>sYnY*cL|%?G;Cs1_uU-NIe6~(eRt;0+&kaQz5g(bTi*TtYOQBI>sjlU z7$lOdMH^l)17a)u&>@PFa01`ERD-#zsGj0E8Df{)v7ic47c1-j}@e!Q9ZRsYa?w!BP>qbi3ld6w?>- z=bZRvF}-pr5kzt6C0CZ=E`FtFp!2rq=2tmRi^;l*<0Q7eLj-`8z=b z_Vnr}+{D$j>&S;K?ZvgxueOdLI}Rnj!!!ajW0Moe(uO}XGHjD`xi{S3lpROqO1LL~ zf|@s)Eb6gXLv7xN*J7UKHL^e(W{O|n z3}d7E1j4O6Ia#X(@)CqyOoQiArZw@ z(*e35WT&2fzQMBG1)Q|_W#88H-H(C0goKG} z%@UvOury7Ur+N@a7WZpAtI+zZ(l+29PSslyiCN8k|1L&g&`9-kbllsps=5E<+hAO% z47l+6g%42qfhV6PV9s4u*T*Wn)cIE}%EQuMt~a$PZ!79z#nGE+U=xF-*&gF|@{gCW z{?w0k|5GMPCyA`#5+f?oPHN^~u&vsu7&f7c%Bv^WtkZPyYP^-(qdAprR&2R9ak-8# zZroRoc<$hUHiyc_%a=y5f2}t`J^JN0$WZ@F3aM5DtzZu>ZKSKqrKeyvE*jOD7!Om* zC<)vV$*N7g>j|yoooMG*y?*;@N)!)Q9Zj1so|bf6M7M|0noe`rxCP_jXZd}NDpkIk zxLS_UBUTUkei^c*H8CXijhW%@nVTDBl=lTGdIeFa%<+BQ)+b`9rQ$3o8A{1s6%%8Z z<~HZ2R>>4qzl^%)W9#hA^qJiwqq%&PQ0wYkduy`&T^=M~bA2DvVwyX3JsoqG;MPtK zG>(C6N4wiNE|{hEA=3ALesM^#$D9T$Mfl}YLKb+H&AU4WEeC4O%d5Fb`h>!~xUtIS z@9ld${_%3qS%Mz}?oJ<-oLlc@4=$G(d*Vx)KDLNGl4uJOC?|CL5lBe>=wxG9$P`xn zpwi$urH3%oJ6}vqh99i?u~Jm{lAw0?m6%{`74kT+gK(*LET_s;Boczwy1U=;t(ze@ zZO;b>(KR`393g5wwWdjWfZU~ejq@@E=f&liL8`N9dSw#4JfxjF1UwIXqiNx?D6w`WW^UTIv|a>-BQ z!e8tG%_{{NELSC8#&-#qK`SaQ?mM{$*DJhUZz<_Y@*Hq zqaTkItEHo36!_jAqrYBZ@I_~5m>fO(BRv5#zQPO1yUnO>+f*1~_roQku!?8yK2&%^ z+MM|**~BO7xn`3W!7J?%j!U7Z*L9FK>LmAvp{Ywz-#+{A8FtN9dS2ew`|>)l3sLLy zk7#nEnM;{2+x@|XJKGfnN-OSAX0;$>4_vyTwMWPEa^J=01`C!R>^OHHz4B1&%Wj}p z&>*#B(7I5i3dMK#CJo3RO!m(V%%c!J`+CItBaprsCOA) znb5V4_R+=|5bE(jxGi$gwe9H&zd%L``CBe7L~YG0FWmRgb3iVV)9+~ItG^jsdkOAu zFz!l`nd6sDKU4$bu_q%bXW^-&yVf-JKd2t8u?#R>2#NfaA1RD~|J)-m4ZYq?*OIvO z6l+Nhy~LD=Is(UK+w;PHQ8?A~?I{zE7-mp$a=a+|S5qRkwJMAH)IS0Gvnas$hh-<) zw;Y6mlI_u5jTj;t(Sbumm9dK+MCTM8=z>ywMKR=DvQi?odNB3Woe`78ErE7BV*S(J zLuZR*O>}GPr^Lb1LX^SK(yqnwZ$o=O*Q?jA9{RmiW}`i_=k;-r=V(SO%F{+@nm4;w z5K}}inBMA$$$~TRHS|1RIKBpXvI{d_yjH?*aaUauR&R5D_w8pic+;4ggR4YnMqZ#*)$&eg>W!C7< zlml5skH;41%qow_S@SIkc~wbRwLSnmWtN(`{us%7qwD7kL+}cuQ>R`HUf{x~!^hy6 z#EL;@x!#sCf zwvlu(k*IyFW-1U-FkLpbLMgr@7;o!u6%*PJHHI80!#))zw0}DTx@1NPu|+KknQa*{ zg<&PrN`_^rFVt4){+}WyEO^9(VjqY54bdWwb`>E(m==d`CWo&+l-}Z)8TW-AN1K zxP#r(xEDm73Cj-Q$h0ceZH;{03KSNIa|Kz^)8B&^7Q|qB_gxN@W!-Tq3tRwl%^AGv z60GE9#IpH>thAP#&xp89ZVMs|5OHYR02TJD)i1O_$bVNDcL4c;XokUkZx#0|E&_oc zk#RI@o1erDBVyk5maZp6Qat9Mk9u5YFOa0F&}N7dy}zr}i_zGRiBwAWIZMr1HXoqr(x}NvAiaEq2noLkYvr)WYD$+XyK6wEX67poJ(X#^SPnrp!8)X2xvFqRmlQke0zUvAI z5uZhfl$&8I0t(A9!=vrKXSH6r{eHD7hApoV6X_xVA=mxh7D^6zw$+ z97}!o*X!S;o)RYX5kxF{ui%~$*G*LLpgVh3vg3ntgYVfXj|+)-Hv`Mu=_Uv+HUrT# z{ztQ`DGQ|ISy5Bub~JtZ8GZ`fA?$wWJ0ALGuZP8X%qp7rZdaJ!xB|rM?zZLrtFQZV zarid=AQlEj8oe2zd2)pb4}A8461x`Zut{u5?=B>MoT=W5jy0q%dlLoG=(bL!$sL|W z-3I~=bd*Iw@qYwBZO8{Cz(G0e@~VJWi$tnNN@Ac7jlL8c4a)BtbkC4i9eFH2E;cDS zb`?OKuMj$zMHwK#Ybl9Q*85B5E_1+i4q11XeXabj>1G*eLj6h~k;AvXE{9OBItM0X z<(AY>Wo7P~k1!i=Wb?NY5^WT~OiYV%oE#Y=aGz|U46fkQmA%$NXBAg1PH3<(q-LGf zx#yXNC7HfPOGjP9BZ&$Wja2HBN&;g4MpBCZSYP155$EuQIzOi4^``{~bn8LD7C19(1lEA^yt}YF3%M$D z6DBD1Zh=+0MC_ACwGQ#j%&K8eaC&7N@IN*C;+t=kVEm2-0MAXCelw#&2h0bL5Q@Jr z$Gw*GP>t(8&aJwGiQBUJSAm0I_A7b(B&-xJH2{p892>&e_aQP0OOJVL5 zl*xV7a!7(FU_xI&CS{br3 zqeY8WQ|+g`uqR;;uwP`_vP}H7r$iXgCt2FmIEZ{oLQ$8>Ul>QEq=b0;IltbHJhNi} zu%7rbKuNBw_`{ps9sJZuX>xl+Sh>P3OJz;)MXMUfm0e@M_$Wx`fRNe=xysrA?&pKTwsU+`Uni4{cW3Eh}ZvVY)YHelnBuH(%QP@~W5a zXXnDRAj7Yuu2Rx{E;CqcbF_WJl^F*gDu)odP*}(kmi{a>-mN)~GQP+BR#6m)@TDKH z?@U3xwEe(KNAU#>SEq|G?Y>G8vbpz|m`PtSXslzIOF9WpBBg7I@T;1?8YBiwX(h%x z2t?+wuHY|NW!1;_*8)Y@A_4*lUESHA4XeTLv>VBC$ZRBkw7)A7u0cN^xRk;#>%=fg zNl6*1($cQNT@OX1nE$8{l2wIVSiZet=9<2*X^+d0!MG^PyMC>~i>q3w@(rG6E)iAe z6{jra>Gfp<{62^e_g2}Gug**09O%?BB_=2V;f7u2fQ^&RU9S$P!2d?~6RjK(^= z2mCIm_hG8t{kRCBkT$ua!E7Iv2D{(=upr1!XxheE=Rk9$*#6efg_&x0S^?A_#`@x@ z9UX%7POC`}^RsC4JbKZ=(;Rx6IK?s++^Z1fiK`KfeKx}GXMmO7nXSR3_wd9gJOlyp ze9T0MyPX9tP(ale-F)kSQI!$^HmGzb#cQ7TVcRBSrZ;fYy@Z_Ni??{_?LC))c;hcot(P?5S_>uZfTKj>wcV}$l z8Yh><*)P?h=6$Ld4n4W!^k#bjF*8KTnBkm@MKD<0`<`s3FdpCXw~j^Gdg$JsNKOz@ zcRV9`#@$3y;Y89De&e9Fl5Ot{BMg1lMOA>ew39>LTE&(z!qJd_9+7VemcMlbyGh^% zk7VZKEO0RriD+oshdttuECBzkpB?2<*?ewM$UW-ddNAY6Y&cYTW~l$WppTU?0%%LH zei&^;G0_;wvp+Y!gdSdRJ~12QLek|v7$RmHl-o=~9yH{AMQM(_ zDA~7>5oMFKgoKanl3}kqi|SoYU!`~DN-Ywuk5r=lQqofm4-4x|*pGf}v5p5^ARxZR z`1Gj60;}2Fb8Z)h!XK!=7m3UiU)))h#!mp`k;8C#B)NRr=vt?03a;z5oWR%-#%!ZA zrFGNgW4Gv;2zg6<+@>NMd>rM6|ody$`I#yijP*hd>KGf=a0d` zeq{Y7y`%RvPS5R3r;ihfT`YgHIPChX7ET!M503?5&8ZgcUOMYb5^Q%&*^>Y__|jGD zYF_`AVk&nX<(@S*45zGvYN2E`ix7OmF`?ej$&=qQOjBIKS3DWS{x)e55h8(3X+MiM zeoP(S<9%B(JhqpVc&Yq=%bFOyJTBCCFB0@6#$-ky)T{JJg<_;hLPFwo_s`dKE1eq_0d+OT?MkO-IV*w_)h~j+ zjF?=#r_8;!7(%=dFo$23#7gU=kj@)8U0sk@flu^8zzQl$GK-7LV{r|LUVgTwZ&#yV zmo~v_cE&DzFWr}-!xvON85kL}MDv91@x$y#3(xDcN@ss0HsUSFrm|B8*vw?j1Rn^| zt&pa9F41?$I;Wm3!|yXx8OOjs^$Tx#H4_UBwk=(#!`Sa_QN*|31vG^{Ql_PV^B6Bm zQ6MdjRx*aVajzrtIYUe)tp=|!0`q#lF+I(uKq;2TuXYX2Do z2^bDdq6S~E>Im0k@qB}}mT5^U;|+&tG|3l zCay)dD?(R%fXd)W2akLKAC}^E)wLMEy6G`j4573DWA8|(jJNr)C#oWEfd+gCysqEg z#ju*fI3%?0idp>xnzxD(y#flWF|YqtzKPx_-|pNMNB;yU-@bwS)Q6g;qMx{_jA9|2 z#;Pww4%PkAWYV%#$|sC0nW?=FH~{x$N*U0q8t4EFQp>4Z%9~uhfKx^>k(`g{Kiehc zskpg`xy)7kO08|DjOc#VSdI`-Hl3h0H|QgxV7c|3nFqWor%=2bsm#)5c9M&Y}Ii&FK%YLms6KlM)ux zEH={9u!N#>gXQy?VZ6&dNW2^NdpyM0 z1B)58)7Hq|B|L$%lEcG;dO=*^Mlp*eaA(A?MpqXv@ z?o8ICuwJ(oXmm~cj+Q1fV*WuHjoGuxbH*!B8PHizT&g^)Ch0;mf$x0eIOjAKS!cW*`!5AWEZ=y_977K%*umj?xi?u7pfPMjUZYGb|d( z{vH!k2cK>j8IeZg`Ky;Ns4)Cbw#WycnLLqV;9RD&KS-@+=giwan7Xp}HecgKr}6P`Bhrs-N&$hajE&)uBW;ftfbq(E{fw-DKDQpV;Gr$ zf{0G_3J;|T!=T^wyN*+;L($9xe$kc9miyTxx*9H}!p~Y2CUsH12}mB2w&O3cgU6cq z!ZJ0KQ!A6H>oTB1r&b9`{Wmz0-qzC>)v~S}hYFYO3qzuOvvyhF24>p5pIHj)e4lp^ zCs$UC?hE~Lm3q=LC%8-6#;*Nl%d45j{-n_SSw5c{msIO~owRo$Ujf^ULwO9o4Gt9v zyB7Ok*pE9b{m-3u#}zw6+@vWRu=aLZYg^~P7FgL#v`oocEjS-= zWc$qmwiE(VN69YX*PyJk_9@vdpipr%w1yOzeY-kzU9K+Abebv{oOKPZ9DVJWb{&Gd z)^qyF`r@!`UuL_4OaD!d6aK>dnpG{-LG>Q2qoG5oMTeK%huhjSnHIhJ>AKxwA1vQd zzryCjJh;FDhW&s>yS78y?G=Ak{CDH|Wvfe89(!OZZq@^x%0L?dQNx|p(ig)(l!hbP zd{dY0wRa;>ct!DS({=+PGNRi|sZu6W2m^h@yMn~dFQx56)WAKi<6JIy+m{Fb>n$2Cw* z$bLmJ$2dE;UK~+LdkdMCW7(Df*ZEUX31{k5SGGo*p|in@ITRPp>s`ysyqy9LXM{Z7 z53?=0NE*;gRw(23rgDP{QzC4>P^rl!TY!6uce&#Y8hJmH9~2Vz&T!%ha=}HLx<2ce z@x4*5YIpT9JIAXPZtpb%)ic3^^^t>(2J8X3^@Yur!O-e2uY@=OBA+dV^2qTrMMk)8 zX08y{Yk8T{)ozUp%n-uOk8@1CwrN94EC~=9J{uR=Xygy!_jk_>cNusOOy>2{9QR|l zbF}Jzh@ZK3t=T=Df_aZ_m+SmM1pfHpGsG6uvQ=4{7qmyg)zjmfTP~XFu(PLAW!AAC z4ep;)%zh;lQm(nif zSZeR7=9m&6ZVxKF8g1Q{o16X6vor0$PPo{FHCZpT8A&VLCr7^1ec)nssE&K#JPjFM zY5395zT?zW;0~NuPhDY?%G1--Vg6$;uDgAVdC9jAi)z(j-T~{Pm3^@I={gfyUbzMW($tjscn}`O$C;LWO(Ys zb3&Zc2W@T8froYO+=Ju?H;2&Yl;1}+n`7az_BYXX@J8KLR8-QT z{)w^>;1V)OoH{UI1QPjBaxp&m}&X}dk%t7-n9 zrmC|xXRW5HwBp~q%0bnt+F)f=NV6L?a%7WRoRtTb=p^an%fj_rQ1S%y@OubIt(cVZ z-@OVLfeW4pZv+ef^26${!uu*+FYW4wK$ z9B>M&KbQlhbsa(R>jXF_v)2h0vsE1)v-{iqI2vmN$n!<%m5BwGGsSD5E|(va$Yr_6 z3%~7~kI2%E&w;HefXuf%icMq4ADIJMNSbqJO6RRyyIeLJaj?a(wH^1IXMt9c2U5Q7 z@|(+-y-St{mmJ=F!UH$w+1Fc&N&`uQsIGZ`8u{}5LzATNw}a7R=Hna6a;4^UxI#AJ zhsK711$o+NC^Uo;%rpRx7y%Tx!6NyX;&(;d!f-?v*# zcC=%*Ci_?ci8{P_NIg2TIjAs~%V@88INNr$FY$+I0hRU6g}4OJmGaH`an!5j!K+kZ ze&_8-jA#akay?2>y{>v_(;4iU=|paT6-Q&dx@w`8CJ=zoRj#p*p7359qDIVb`KWGJ z)qT!yIvJpoj8@L;zgvwoc9!*R6K#i#3hP%~Z@F+7zrNkY&PZXSz{w9o*t13wXO;-K)g-C<01Q(L_LrNWNqqHUiiVW$vds#T+A zx-vaOQf*6rdHd9v1eavx1Ha8m)y5LLi&Km>?b)ki;EKnMfKr|k0%)<2{Tf@GqT!V$ z7SUe8T;tFX(UBvfMt_^|-xDhG`7RvORIJH>Sn%VeWc>;`^^;-?4U_PTN}MT+K8Q)> zXvt;2>A_px)^#_Yxk|UQ3?;j95f`+JrXc>Bt~*S`YO)fnA7iWRO?jPmOtCdo8J#=^ z6P2=GeiYzswJzCiaB>?Gr(fxx&>JAAXqY#lD70~!j2`5B(LIYeK3h`gq*_<=7VM#j zkPV}wPvzc>@uGw9Si}@a>`hl677u5-Dtm6{*hU+Vr#!oyx#*ezsa11YADB45c?5X+iE0wk;+e6~}m&1i&$D_FV6T5yVjOM~)ahO9SYk*lh4GZaOlXwMJU zG^emvSxxDnVu$o^5O-Dc9{w@{u0aS}2Bult%8bL){lsCm)QeUB>{EIBctdox^)AK1 z)=0S4j=l3<|G3Mt!a8M@&J(2Wt*a)XS_0&P$JI#6+gGf*1u;366G+vZRp;ACY#az= zldZJ^k1akzio=#udeNR)!OkVmo!CMv@C@1Vy28>~IZfEgQtX8ut?haY%vlqCsc9~k z4C8XLwpfs6XnoR&eiU41{$jVYImeLWY-3HIZNgJi*tq35`dRbg#PFA7Bt#9Khbb?9 z!w_W5PauRMLE>p*;Ah->O*jz$N)PNkZPuc?*%32;9mUUaX^XyD?nX=FrUx@Uw3-Yl z${=^Ce3=~g_UCrS4&;}!Uk%-jHevgA+-&qR{Ap?LMl;fmg16a>rLQYzex6Nz|4yg4 z1c@grhH7fp)amWi7q%W2S6G}eCz8}^q??Z)@wqO}H?sPs9XhU|B`^FGOS}IVxSF#5 z$63`?v00SYQ+MB{v*Rk(iB2-_Hw#mzgy&mk8GLAEys@aSymzivS8O}2W*9QP_`Ox? z&Ra`sdq3uNJ#)HFnn*QoO9E2GBz8_yMS4j><|0-_u!_MMBML!;aRqS)`8 zjK&+sxWW$!+g08@sYlJnD3FJ%l`x=;HQoD^Jb2{SYIt_zDh zZBMbF;XF7vvTdEs+x(_h;P5FsC$EpA^@4rDVs6LwK7u~lqpfnZQ1Tv62TpzKDF!4| z!4$*j0R)S@lJW*4A52A=i|sro?CS%FHE+$*&Kp12gf#XtiiU(6yJR>8r}PVp@`*I1M>AO4S#|;dqhEjEO@L~iR}&A{>lMX>ux5#tah#Msc`@S(_~3KhQiQn;m4rS+EAu?Zj@#bn*Rfu@_Ydp>`DTz%`C!B7M{m}G?+F$FZKxIz z=aI`+sW|&EW{qPAKMv)2!4A=~Sihn@sq25K$T8_=zI|vXBg-K<^8JGXAc&>a%A+Pgm`ag%FJo1 zo>w`Zvs;-LHw+|z##Q|d|3zf{H_?MC27r;nZh`{zIv-&~4X$_9%hi`$g4uHY@=8zX zR0c(xHKfNr>YmL#;9YK)sX+{T5lDe`XKO(_?H>1c+tvc-nY;y0-WHcW+sb`I*l5pi zl@u-cj}x+IVl`I5&MiM~1uV!G)FL4BVB@<08Z4r%gbx*w9geggxST~1IUuGq0%l8s5u#8CPBGwZGPEIZ&ReI!hMluQASk6B?A-m_ky9LA|Os0XynXxy#ysU;yc4_5_%o}o-+uNizQF}kBx`_dw>?)&i4WM zE!@$F7;f0xfXD$!UOw<|9}M4suey=p;lv^weM{cpQ)C@reHK?7-~q$U^KTv|3x61v z{Qv*3|2O8WEgiukzdJa`{?g0N63pO6aqhK19b6+Hzbw^?=ArlJ(xBhH3v7z_6$CAz zexPw4;WPXrn|?APB6E0iGtACDHI0BmOLibP=iT6&r4I1ynS*BSnxST+No01q z3`^C(8P|TMcyRB!A}!tH$C@=Bm2yJo7ll4J^sVQ(>qZ-Q{@#DUQMCZ}OQkPH#RziQ z^BRLYB)~@xAHu_Kb=8naD{QnLdirZx5_X*kYni{2RWT3l{wZ(m6X4KupwTU4+JsT7ysC7)bIPDVZ8!d=ym3DjDq|M%3 zmn77B9&cHp5ljD4$gDox&s%a)IF`A0lgOU_=~ES_9hjcguIEYXh$46Ks`K^Ko#2sw zw>>(t3UC-QX0NqOkjt(~*|6a->X^9O97Lw|R90(Zi*DQ8nWq=qUq*V25kpzCf%h+l46{}r=po=v1_MuJjP3!hy{dqUMIUGVx-Ui zIo~2}k^rwniGbC;j9i9dM12nx?iMW&T`>&I)e1P~$mZ$6>_OwNA=fxw41LQceSn7u z&m|{PRN@=orj;vsXBb0|KGbMHVtFZYd~r}LIcTpuk8;2d>fgOOWbeEc&Y+*_11I`A z_iTs;!NTjy2qW-C21tPaon*-}G_sjlgNB5syo{)`7K)%{#Brg2Rd3{go2Ob<9Fc%wMHYtK(f^!aialUFpnzfxWO$ zHsVhOwSf^XgTq4P=U&IVlF~{404*T=HwT7Yx`8?B2MpVc_ud`&um#{awB0K43#2aX zB}{i-gI`HLCuPqxDkrPASJYBcO4E>MTR$(nZ#^7MMuMCEjveGBO0hF;NNi^)>C5sr z9jvwK!rpo{UAqy^^XcsQ`T23?aMfu`vzxS*TZ51{?8x*!r&UzQJ#G~MWPh{U-Ct%r zs$OQSNI!}A>X&W4rk&%EI7~o6%*@1O5=x>^9)S@(A2HWhTy5Lm87SnDuCq{7egU13 zsz34V$^qaIeT_A4zE=mBfPx}d-{N>KZ0_K6FVb!+e0kMSvjvXdRJ2tK)tru+o%P?# zCSOH1U3R))U}5!DqZaWj^Pv3-zv{0!g`eNwWLTTk4K1ShhhqVvpQYnO0(|29u6QSQ zx$#|H2J=w9lKc&mgQsuDBpS7Jv%zDv8>AJh?Fs|o{r1|MQ^6eUv>f5&vGgunGhD4> zVUt744AL*YJwJ?@oh%7GYOIW3epX8t1bTp+^e5Ey6C|74S=#cPB5stly88IL0m~9pVyE)SAtx%BS&xJ+!X9jyEK8 z0GzKm(3sY3g;vC|tnPU_-3oce`+qUKhp3T%lC{~@_ zOf%`hNpPK2iG5?tLp5pP(q5d=A`OLj%smDlRepWOP)ar;=9rUiHhOS~z|p#mq)!qM zv^hTEuqtQOZs{FfsOX@Sf^Lo-@eSu7bZp;Iy>J+1d@}zLfOd^`q@CubHcPzq zJ9opc$fK9gfOGvfNa4OAn11~M|E&=<>?0n>>oSr|9@vT6>9#6Ind-i*2wlwO;1elU-X+y}9+i z)61b&Mmc=rV!ElmZw)lQ;pWGGoW!^gMKz2$9aT; z>8q{7Qit=m{c4W#+is!x$}-HVLE{s!V={|;By%8=(kYo3J>*6C@;jxZGRLsL&!6MG zbqT9I6y_D&g`9eBFSw>$+%`-DH+EO|54(E<=s&%o2M4h4ekvg0w>o>p>$Yif7&T*U zjWl@x?%g0S6AvbKtSbDUap%cl&sX+n^T^8pxKz?;*#G)j_z;w0&3yHe*RwHff!D{; za>k;oK74EE@h+I`A1?qxXuJt(jQ%OMw6MpIZiXuLe+;@=2E zgbF|)lMh_quL8K>Co2(>I2=vJiIkz1F$*}bJ&#CBW5*SGB0FKI+G~ck^*3joQK*}8 zErId=`*)-I&#ID&hTVN#`UqPm?u6Oeg9w@pPB@ynqFQjyIRqFcH20d-4~%@<7!bj^ zfN!^r!3|4Z2kSH^%y!6EBCh~lQ+`Y(T?X&V0h+#Nxr#Iy*IU&x z_v^)_ilxH-xGOt;;Am|-N~+&K+j=w?P{1`)AxFaNx*3zx_c!wF+$3#-@paNVgYtNucnS2dkq`%4Br+`oO#4w;%e%|q44z5&ZB%?hZ!$u4w?nwL5s;Hb_%; zd0YmnsgwJHCeo2K)CVgUE%h~!=?!s`*a#kdcV3z9O}BK{qHj~L6@*y2uAY@BfQidi zopiY}|AGP<8VOdMOdC~j+)}hqrdUAw)qG;0Ryuf94q6@GDHo?{|Le&5kWwE}W2_Tx zS0V1L9NEU|DEq8R%T4!C4ZrCoLIi}a(SOFDUgF4s=8cU}Y_O~c^LVmKRu|D|(4 zh)x9Xoose{C&N+oo7WxSG&S0lAk6Bcd$oU)g;Y6`y zLDtuBC}wDtC&J?^O_?;O_m9M~P@&oS7S>FLqi-Bfq-13Yh+4erhqTgxJ2)WVv__aV z1rV{t{s`7C8ssu}OBJx$)$PQYqX~0QDdm?Z6;ApOZK!7h9oj-USe+TE&><5(=H2j^ z>Cbdpn+I~^Q_b$_V2U*mw~$xfQCRbWoi6zoJcscg&MOCIs;m<#tsE^+r2^YG)3(yo zab5Ynphdzk_3gde@k_~#;ne)YaGHY5af-agR)_1oieiGAGy*@6;d;;%I{k=^868<= z15(zZ=)p0`n@2Hf>W&dW&>H2kn$0?Q_1QwO>g#?=sqkp}1%i>87TQsun3a#}8FB_$=JiL_?B#Ww2j^b>F=B$+FYbc`duvJTAW%F@>m4*xwsAjIcXKyn8;c;zb|hJm2SFJibE@GU}g1@d%QfADaOB4(XomCwx_xcGt|bRjG_7Bh3rYBu9pnTk`=op1B|di?2HIO<_SG?$S52;qWic zfGacP8h+RzI^PE)zd6cJzqPqVVA48qrm$8GZzTiZM=#*T4N)X} zo7=g-Z!36SNM5>Kx_#+nzh+qT+s8m216Iq-Jz@^qBZ;xoB@JL$Ek#Y9Mw|11c6X_^2A3o22(C@2cj z-W&JFhjX>hsTVCl+6)CL4*9}uidKtj!njhiKq_gO@|^XsMC*!qV`$H+{^*w(>|#g1 zrss`n9Mu`%rEqSoHSp;F0X7uTLz?`V`FgnFEu*P^W22%Km5!2=k4B0hbN;hfO$N)We%=6k$mET^GyT%$pb z1-Byso>)d#(}zjq5colnIyc%eI>$h5Z`k=={Viw-~OF6Es9{|31_G`}cvG zWEwQ@XDh0e`1trr#b!iV#c!e#5>_1f^&AI8|3*>pFEwDfK_85N#4S&K$esGcbi1Hp z!@CEa(~)+}V1ETeHX#2=Va6}rOWJ69&F85j;Vq!?q=M;ngtjE}yJmNTqNi4)B0)qf zZ|g5F&JHUCy#kvKuNQu9csI*@L3i((f|>j7CgZna$-3 zF6cp3YU6SDdU2ue;As(ilUp z->Kian%3#4?o(8R%})V(o*Hx7%bhLovw>|%C8dfx_l!t z;4jEw!RKR3?QZkZkjPAV>ar}P=j;DrLHR!qLRq;Ng^Xy;c6$l|2aB9Y?3RDmH$FQKH|iSHo(&UT9qt@1pHEf#Y((#= zI~Jzfa4E`b;}G67>|Syg8-vIiagsfi?`61EYUNQrz#Z5jRh#Lhf~R5FWX79E_hBAR z2wU~`YewhJ{Pe3y(-NS>`?5*cY=BJQM{4U&ff$5Kx1Q*B%Hghp*{`Ca=~08Nlk0Ut zkap*6ujYH6P4*KfcJ8~4R){;32t>-zmpo-QNt3)U$w zqv-jK`~g5UR4`XMG!*~k?Spi=;BAAB#Po-VR({i^9SOuDyNF5BB-n zLgMvF&Ae|R;wrHvUthZSm2tf!`6=HOE4Ce6SqXPx@E>Ft@V)Z*_FnM;*f-K5X11T% zZv2WlDAE#fgY=+lV+D@-xdfXWET%&>P{hFSO6b|KCk0q$_bQxS>v#;dY*yuCP>%(T)WC01T z4u+=h79OAiD!B|Krtxo?5nHRWRt-t{K;#u;X+X~2&RwcK8J-FCg4vV)iCTRu>)Eqn-=lwV}J?^wYh!7l5e=a*S8nohJCx|v0ROj zsrL$earW+5K(qO6s?gX`gT%oi(#bP@Zl^B=Pf*&AoUOR@>>GDr?+eb+aO1J{Eo+X} zHhfDFa(M;|<3ASb*NU}fZvlX0xN?H(49MLWcbA+vw0bVKR`^W}GojrALz91H{H1S4 zh3~n1R9}grF0jav@>C@l8yR)ao&^IpE){)0-j2-?f&dMujlN~~z!Lw`*GbHKc&1dD zkG!ajpX)0v0Kf`>IHG{^v(59_%aJ^FXV;y?t|NMDvoCJv7X@JZY_r(jhK15vi)aKt zikdsSv7b14i+O6t*1|4rb+l?B%)OJ)Wy|Z5ZJUsP;}{?Eo8>CFyOZ$Ck_m260^jB=h~&wYw3DS&Y(elq%r41b8NKDpp9?`HG;c9JT~G zWec^v6`ATWBH6saBMTiBI>RVNf!`ryH)vuLY z#hCzClhYsmB8J%aC+RWb&br5!i`ITzrdWf7MR$g;@;r?+k+>7ftjcaLRP0?yqT~6G zq%Ot0_HF&Ulmu?ixTb^YyUy`Py!z=pWEA_~X@}3l*nu3cRod{vX3m>KV%DKXXEu^6 zp*{8Mo$1v-*gzoctL~Ei&xrrjxWN>bc_>cB)V32?nDX=bwZH2Eg%89`JYyS7#U-0m z)YRhi`#+>K0dO_t_RepaSKs@~Um~}dhxj?kO5VMct%iAYbPtZIO~cdGp?Zd!qftQL zWGN}BNL}~iUSFg@0WYCeYYSUZ<$RS5f@X=<%d193>DTsQ^mqsEO-HwEpU5M0yf)N! zX0VV1;^b^-9nuZS5DLVT8e{(E32uB`ia_2ivL9`tCjjfdCgLROnAXcRAYb{UA_V8K zWwx~!-EysG%3;^JxgilV?;qFzH|D;GfPz|^DxQAOkH)8;^FHnkVe$|G$oVO=SEjV- zO7QyL^W4l6_I}h$;6dd#6LJ^&zPNT=h@ukO%a*kc3dK||nS{dYe*uQHo7d?J|cJG!L5wLtBpYh;} z_2dsH?u}e#_S3A({M_8_WpYw#_Pdu~(j)=7!xz$Wmeyoi6AzajwKm0dyjvIv8E-EO zh?OWGAC@yAPI`RLGY5uGm4I?V)Ru$_mQjnDj@^W``)4(R<6FI+a_ooxYs`S(?n>Xp zp!|P8PG=C=9>!1VTSw{tBZScZXSp?R)Uq5Jj<^Bnc~5n0^1FD?*4+qk?YzGI>;=F1 zPk)e&AjEk9GPtp*m!;AAuxUWPzJs5(4E#Mw5E+5e|Iyx=$3waPeO$|F(TNi!MB2%c zkYukYyNv7^DtmU4Gq!PbT4XDP>}8)}F!silLY6VIjcp8N2_c4YEW>k+({k&0dS0*J z^F03@|L}U<+;h!6uKW6aKcDyKx^;};B$xxH^=g$uKwVeA&g_DQH}33~Vkh`}h&)ggf*QP+)hhb6wc^H`y_rGhP#3-$i@$uVOXW(AceYN<#Bp1LyB$qa*N78cr>Rm`PbR zC3C*IeIN7%83da1a&bO*ggHEi>F_#h3c1z`ia;mkPeCx9?Lm_#v_Kl+4Emjk)SKBS z@Atq$edO?bYB`D>6DBW^IL{O8gaXH&i+xctn#}Nt+uja?zZ))3t9oGtuT%qL5guUdGy}Yp-34|gaA){U@PEL>4*UcY+dmt#ZFc7yV0+iki9*$D%+7PbB(J4Y`Sq2V;B==a8( z@&}isbEQBiRF_-GFb!nYjjrTLP~DewTvSwh)gP&>{E%yT;ITgbvZA7L0ZKQp@R7>R zo1sb*yoo39$LSrx+%c%{u`w)`xe+XOA12Tq6T)aT zb&y>k=z#d+o7ImDqqR~P{u5Npy$HiSn6f{igHX1(h!b@)8g6(ixZA?j>D?vR%(B?) zWSg-2ENpBTQ|nX{lR{VGK@M4}uB2V~skakXQ|c{dI*-n)eW;mBR@4bEmpwj|38VJs zczq^!VTW6Vv1deP2bKn3*34CZ)QU&=#M1L0LkBIE>Kl>PW&SJjz*znG6gqD#w{$7~Tay!$0?3dEF3JiXRpw69w&f!g|KkCm#T!Eiuw zOH)eSVp)TE7OYlWoTeUMli6*pj}FK$T|5g{==zuO%XROC5#;9555E58Xk{iS zM*K6bUNeJ~6lEPK;HQYxTPrCaA#d*S*cI-^^3 zHy=(T0Ip!LX@yx?wO-zq`f4dG#jy3V)aMBar-ybVHb9>-I z@v-Z(>3dp|dh89Gq!Y9#J~N~5uwK=iBdt*EBT);KKiy`}pcjTNh2^~1GegTJt4^pL z7;`?6AbT9`-b57cueYDS^_DFB{$)wig!T)AleAKPX|24Qvak!O5}PtT99sT*r~UjQ zBBWR6^Iy$LuemqfqSsM%rN!0shzBWQ3`vPZC!5!?lu)xT>bP&R8r4oQr&*~TlaVnl zdhS=>ZYvk*T7&70aj+9Y?e$wsr?^v*T2sUAys;~zU#jz9F#vUmP4*nOBE&z9)+au8 z8LA(%y|vv5T?ii<%(xotN%r=90d|v6UrPWqwX7idb;H{QhE=Vt({m5ZdzO^VlY*_< znMd}AWPG5bTiF#WdH{U7bg!tu7Cy8iqE;hHkjE$gJgEjE8vb!{Z3Ygla~}UMIJP!4 zL!nw4Q%zGtli{L{o2hQ60eZOI5R(OngH+9g=LD<$m17JPTpWw5hW$|n{I8es_am~G z6^ENl)0uS{a84`8p-{%5K+$a@$;Mrx!8sz53;BC4T26-RN~Fa~3dG^6jqW6%D30ZF zn%xC9&wV%xEW=W4LsmeJqhj2w!1E5ieu0G>et`$gok{XwYOcT|+hk)Zj8DQ~&yZAP zfB)g5$GFWGTvreD6ovBM-~Ggy)g;m_!P`a-RpGt+`U6>N;wjlg&VUf|$uhI4qWtVY z6Rw5iK5j3f?6Wy%Aqgi)TX+8OTE%%}UB&qyFmT+F8!>Qw+ZT)Hxn+}I3rPSvlm``9 zsSqM}m>&RMm0&xPhR=HlYN68;lZX+9j+Pwfe&a1vAgK=;h@O`n=ZZ&hV?kc+s9I!J z;hCPql>$-9Y9E^}vtE0i{kzmWdNd)}lOEZZnQ1OtH29^Q9`FC;EelyNZCf(3Qi~n+hho)xP1e>@S?F5&4+gHqV;OKBZR9zWadyR(v=en{xc7q% zw1l?{fv$_O3n4|D>`Jf}K;(S~Iw*W$Tf!(ahg5H;N_6s-3||U}#=A9-dJ$ZOOOHJW zSspwK$;HFZ$AF-gRYLqsoe znmZT7WYpqY>*PPJ>*T@TaXBek|LK#f*JBjNEj+F&pK#&;H48w0!r=e|8P19Th?#+I z%xy?$eQsnbyF$vOo_!!?0Vb_s%DMXJ6RC)7&oIuFv(f|ZKQ<8_h=@h7#43$;mSjt+ zH_QX&?_u{&v|Q6GOf-4_IGfsn%MjMMl~?93dbsgk?|8=>$(rkTGGbW+Pv5DozY-*Z zRAjfU`ux2^*>L!#pwarwQVpI>0q8f6eK=IKyknHf;5_ZfooPJNSi{kI8zLI8vR4kmTJFS7t3%HO@SLa za*h|&*zuFTLVWaqe`g%7Tmoz^P;^Z|?3nI;u=|1Q_Dn`Ccmr#(edADaS0U&oyOJ48 z9jD%@7!{RY;B3QnOy4~11`nCawHj`;~i}@+%+pZ z)(w*2mkiShUxMJ{A@LLs`@CK?fM@XZ$6T)IQtw?Y}uNY7FaOZ=UsR%p->TSwx# zd@4WV*j-{9q8@d|kY|`0n$?Smv5zJ|YrW@OA#D?05WH&A}4}YdlfB7ctA%~3g zv$6718qfHE2-uot?B0y(#w1{j4($^#d6A9VrKL;KZ>MfixUZ(I-QmLep%#Rw9dU;8 z6<{|VZc*uZ0u&2pyi0di^`8CUt_DwtC_K8iFKo}Qo5v@Njed#E(2GbL!qsYCu^lt?HZBIE(Qx9Xrn_-htvtV@Dw?~ssUP)Ww=D4o!bTaiCP=TdvZsQ$lG(=1; z`S}AmGK!>#8_BwrBHCB#z<0Zf4y(Zic1&KK=quNf zegj@hY0%GnGH~>=WH1zFJb&YF#cbV@2>7|4G3wL80$hDYI4gFrhXYIdoN8A)_P@>} z@9{g8A1lTTV667MCY%<&(71v$5iCCC|M1~&bE2n+F24@DQLa6ebP~FeI97`>5g{i1 z)&o>#76tLJ=-9bV2+1;rimynS~;HFRY<)D)ls)zD>jUk|vqFVfQ} z=&=BQTZ@?tFiZt|r8In`5yu*$Tp6zmpLEN(?RZWZ6NpJlkpA5+L>(?~0_-Alo7z^^ zAkMZhpWLz(_0bjwp6@ImIsYpQ82=L%aD|rSSrqI+L`mJ&XRMs_8Tqj1ip-I+sgFkn z1_qkaE|nSB(ObWk;zsPwhycy)DC5eQuv);UMSt|j(u`D`(4>)x*DT(&nsMQfaoK2i zv2ZZg;U`b_G^Gtinj*uNc(_hEa!lxDxIBAPI~CrSJAZ8wMk}A0;j!w+6VI4BR3IIP~P@S+&cP)DGUZ6yuI zaQ29xwgam5su8^XRl16i4htbRJf%lIJnO;PD2=6Mc)=|Tn=gT21J!yCe{$|s7M2x+ z%~L|$a>MTQXv|Z7_=_N)C7Qco#f`iab6;LkjD0f4z{J-qFzi54Z*R?x+y-`slQm+~ zQoeJ^@|5_RpfP`bwZsnng6Y@Kk7CV694MktIdQMinvA!u!U1XldfP|N)Obye@O{&+ z=9E`%H4Y8GI`3Y`6Yf}s@`RjDd_Pcjr64do$Aa;dz07c}lI_m{x{UhjNWTWi&kFs2 z%BUG0NtQq0gf9;IAtsE8xON^ahzsB&?nCdjhkSiaL1|5^=lERn&zSS~rc28JNSC`B zRK=i024rwMiUF=$SvR^~(f`UnY-J1phi@3#46lBsZkw|Nh!wc7WAQ zNKgPT16A|BgMuJ>zcptQZ<@mT%kb4);1dLg?^&cgqo*|?r~RssZW!JE{+stM0nRli z^9*G@w)^$X|KSTvlx?xGOdF3aF$a{iY!Oc_5B(<}`m%hh Xr-Fvw74!rH_)@u~sff9F-S58ufbu*v literal 0 HcmV?d00001 diff --git a/docs/src/images/dioxuslogo_full.png b/docs/src/images/dioxuslogo_full.png new file mode 100644 index 0000000000000000000000000000000000000000..7d08f2af8f057780eddae4b0f8b8fa753b69e7f8 GIT binary patch literal 59292 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 = |cx, _| { diff --git a/examples/calculator.rs b/examples/calculator.rs index 42b475468..c9fc8eb3a 100644 --- a/examples/calculator.rs +++ b/examples/calculator.rs @@ -7,7 +7,7 @@ use dioxus::events::*; use dioxus::prelude::*; fn main() { - dioxus::desktop::launch(APP, |cfg| cfg).unwrap(); + dioxus::desktop::launch(APP, |cfg| cfg); } const APP: FC<()> = |cx, _| { diff --git a/examples/framework_benchmark.rs b/examples/framework_benchmark.rs index 25a772cf0..aa102a5c9 100644 --- a/examples/framework_benchmark.rs +++ b/examples/framework_benchmark.rs @@ -3,7 +3,7 @@ use fxhash::FxBuildHasher; use std::rc::Rc; fn main() { - dioxus::desktop::launch(App, |c| c).unwrap(); + dioxus::desktop::launch(App, |c| c); } // We use a special immutable hashmap to make hashmap operations efficient diff --git a/examples/hydration.rs b/examples/hydration.rs index 55fd02226..ccda8930e 100644 --- a/examples/hydration.rs +++ b/examples/hydration.rs @@ -16,7 +16,7 @@ fn main() { let vdom = VirtualDom::new(App); let content = ssr::render_vdom(&vdom, |f| f.pre_render(true)); - dioxus::desktop::launch(App, |c| c.with_prerendered(content)).unwrap(); + dioxus::desktop::launch(App, |c| c.with_prerendered(content)); } static App: FC<()> = |cx, props| { diff --git a/examples/pattern_model.rs b/examples/pattern_model.rs index 5bdbcca66..bfc49bcd0 100644 --- a/examples/pattern_model.rs +++ b/examples/pattern_model.rs @@ -28,8 +28,7 @@ fn main() { .with_resizable(false) .with_inner_size(LogicalSize::new(320.0, 530.0)) }) - }) - .expect("failed to launch dioxus app"); + }); } static App: FC<()> = |cx, props| { diff --git a/examples/todomvc.rs b/examples/todomvc.rs index d7126cb4c..40cdd2a03 100644 --- a/examples/todomvc.rs +++ b/examples/todomvc.rs @@ -21,7 +21,7 @@ pub struct TodoItem { pub contents: String, } -const STYLE: &str = include_str!("./_examples/todomvc/style.css"); +const STYLE: &str = include_str!("./assets/todomvc.css"); const App: FC<()> = |cx, props| { let draft = use_state(cx, || "".to_string()); let todos = use_state(cx, || HashMap::>::new()); diff --git a/packages/core-macro/src/props/mod.rs b/packages/core-macro/src/props/mod.rs index 7088f1da2..cdfe7e8b6 100644 --- a/packages/core-macro/src/props/mod.rs +++ b/packages/core-macro/src/props/mod.rs @@ -262,7 +262,7 @@ mod field_info { pub setter: SetterSettings, } - #[derive(Debug, Default, Clone)] + #[derive(Debug, Clone)] pub struct SetterSettings { pub doc: Option, pub skip: bool, @@ -270,6 +270,17 @@ mod field_info { pub strip_option: bool, } + impl Default for SetterSettings { + fn default() -> Self { + Self { + doc: Default::default(), + skip: false, + auto_into: false, + strip_option: false, + } + } + } + impl FieldBuilderAttr { pub fn with(mut self, attrs: &[syn::Attribute]) -> Result { let mut skip_tokens = None; diff --git a/packages/core/Cargo.toml b/packages/core/Cargo.toml index de920354f..82cc9396f 100644 --- a/packages/core/Cargo.toml +++ b/packages/core/Cargo.toml @@ -33,10 +33,12 @@ futures-channel = "0.3.16" # used for noderefs once_cell = "1.8.0" +indexmap = "1.7.0" + # # Serialize the Edits for use in Webview/Liveview instances serde = { version = "1", features = ["derive"], optional = true } -indexmap = "1.7.0" +serde_repr = { version = "0.1.7", optional = true } [dev-dependencies] anyhow = "1.0.42" @@ -50,7 +52,7 @@ dioxus-core-macro = { path = "../core-macro", version = "0.1.2" } [features] default = ["serialize"] -serialize = ["serde"] +serialize = ["serde", "serde_repr"] [[bench]] name = "create" diff --git a/packages/core/benches/jsframework.rs b/packages/core/benches/jsframework.rs index 93147ab78..8cf669a3e 100644 --- a/packages/core/benches/jsframework.rs +++ b/packages/core/benches/jsframework.rs @@ -25,7 +25,7 @@ criterion_main!(mbenches); fn create_rows(c: &mut Criterion) { static App: FC<()> = |cx, _| { let mut rng = SmallRng::from_entropy(); - let rows = (0..10_000).map(|f| { + let rows = (0..10_000_usize).map(|f| { let label = Label::new(&mut rng); rsx! { Row { diff --git a/packages/core/examples/jsframework.rs b/packages/core/examples/jsframework.rs index 2e6e4218e..2b5468ee7 100644 --- a/packages/core/examples/jsframework.rs +++ b/packages/core/examples/jsframework.rs @@ -14,7 +14,7 @@ fn main() { static App: FC<()> = |cx, props| { let mut rng = SmallRng::from_entropy(); - let rows = (0..10_000).map(|f| { + let rows = (0..10_000_usize).map(|f| { let label = Label::new(&mut rng); rsx! { Row { diff --git a/packages/core/src/events.rs b/packages/core/src/events.rs index 21cd6b50c..1338f943b 100644 --- a/packages/core/src/events.rs +++ b/packages/core/src/events.rs @@ -769,18 +769,211 @@ pub mod on { pub struct ToggleEvent {} } -#[cfg_attr(feature = "serialize", derive(serde::Serialize, serde::Deserialize))] +#[cfg_attr( + feature = "serialize", + derive(serde_repr::Serialize_repr, serde_repr::Deserialize_repr) +)] #[derive(Clone, Copy, Debug)] +#[repr(u8)] pub enum KeyCode { + // That key has no keycode, = 0 + // break, = 3 + // backspace / delete, = 8 + // tab, = 9 + // clear, = 12 + // enter, = 13 + // shift, = 16 + // ctrl, = 17 + // alt, = 18 + // pause/break, = 19 + // caps lock, = 20 + // hangul, = 21 + // hanja, = 25 + // escape, = 27 + // conversion, = 28 + // non-conversion, = 29 + // spacebar, = 32 + // page up, = 33 + // page down, = 34 + // end, = 35 + // home, = 36 + // left arrow, = 37 + // up arrow, = 38 + // right arrow, = 39 + // down arrow, = 40 + // select, = 41 + // print, = 42 + // execute, = 43 + // Print Screen, = 44 + // insert, = 45 + // delete, = 46 + // help, = 47 + // 0, = 48 + // 1, = 49 + // 2, = 50 + // 3, = 51 + // 4, = 52 + // 5, = 53 + // 6, = 54 + // 7, = 55 + // 8, = 56 + // 9, = 57 + // :, = 58 + // semicolon (firefox), equals, = 59 + // <, = 60 + // equals (firefox), = 61 + // ß, = 63 + // @ (firefox), = 64 + // a, = 65 + // b, = 66 + // c, = 67 + // d, = 68 + // e, = 69 + // f, = 70 + // g, = 71 + // h, = 72 + // i, = 73 + // j, = 74 + // k, = 75 + // l, = 76 + // m, = 77 + // n, = 78 + // o, = 79 + // p, = 80 + // q, = 81 + // r, = 82 + // s, = 83 + // t, = 84 + // u, = 85 + // v, = 86 + // w, = 87 + // x, = 88 + // y, = 89 + // z, = 90 + // Windows Key / Left ⌘ / Chromebook Search key, = 91 + // right window key, = 92 + // Windows Menu / Right ⌘, = 93 + // sleep, = 95 + // numpad 0, = 96 + // numpad 1, = 97 + // numpad 2, = 98 + // numpad 3, = 99 + // numpad 4, = 100 + // numpad 5, = 101 + // numpad 6, = 102 + // numpad 7, = 103 + // numpad 8, = 104 + // numpad 9, = 105 + // multiply, = 106 + // add, = 107 + // numpad period (firefox), = 108 + // subtract, = 109 + // decimal point, = 110 + // divide, = 111 + // f1, = 112 + // f2, = 113 + // f3, = 114 + // f4, = 115 + // f5, = 116 + // f6, = 117 + // f7, = 118 + // f8, = 119 + // f9, = 120 + // f10, = 121 + // f11, = 122 + // f12, = 123 + // f13, = 124 + // f14, = 125 + // f15, = 126 + // f16, = 127 + // f17, = 128 + // f18, = 129 + // f19, = 130 + // f20, = 131 + // f21, = 132 + // f22, = 133 + // f23, = 134 + // f24, = 135 + // f25, = 136 + // f26, = 137 + // f27, = 138 + // f28, = 139 + // f29, = 140 + // f30, = 141 + // f31, = 142 + // f32, = 143 + // num lock, = 144 + // scroll lock, = 145 + // airplane mode, = 151 + // ^, = 160 + // !, = 161 + // ؛ (arabic semicolon), = 162 + // #, = 163 + // $, = 164 + // ù, = 165 + // page backward, = 166 + // page forward, = 167 + // refresh, = 168 + // closing paren (AZERTY), = 169 + // *, = 170 + // ~ + * key, = 171 + // home key, = 172 + // minus (firefox), mute/unmute, = 173 + // decrease volume level, = 174 + // increase volume level, = 175 + // next, = 176 + // previous, = 177 + // stop, = 178 + // play/pause, = 179 + // e-mail, = 180 + // mute/unmute (firefox), = 181 + // decrease volume level (firefox), = 182 + // increase volume level (firefox), = 183 + // semi-colon / ñ, = 186 + // equal sign, = 187 + // comma, = 188 + // dash, = 189 + // period, = 190 + // forward slash / ç, = 191 + // grave accent / ñ / æ / ö, = 192 + // ?, / or °, = 193 + // numpad period (chrome), = 194 + // open bracket, = 219 + // back slash, = 220 + // close bracket / å, = 221 + // single quote / ø / ä, = 222 + // `, = 223 + // left or right ⌘ key (firefox), = 224 + // altgr, = 225 + // < /git >, left back slash, = 226 + // GNOME Compose Key, = 230 + // ç, = 231 + // XF86Forward, = 233 + // XF86Back, = 234 + // non-conversion, = 235 + // alphanumeric, = 240 + // hiragana/katakana, = 242 + // half-width/full-width, = 243 + // kanji, = 244 + // unlock trackpad (Chrome/Edge), = 251 + // toggle touchpad, = 255 + NA = 0, + Break = 3, Backspace = 8, Tab = 9, + Clear = 12, Enter = 13, Shift = 16, Ctrl = 17, Alt = 18, Pause = 19, CapsLock = 20, + // hangul, = 21 + // hanja, = 25 Escape = 27, + // conversion, = 28 + // non-conversion, = 29 + Space = 32, PageUp = 33, PageDown = 34, End = 35, @@ -789,8 +982,13 @@ pub enum KeyCode { UpArrow = 38, RightArrow = 39, DownArrow = 40, + // select, = 41 + // print, = 42 + // execute, = 43 + // Print Screen, = 44 Insert = 45, Delete = 46, + // help, = 47 Num0 = 48, Num1 = 49, Num2 = 50, @@ -801,6 +999,12 @@ pub enum KeyCode { Num7 = 55, Num8 = 56, Num9 = 57, + // :, = 58 + // semicolon (firefox), equals, = 59 + // <, = 60 + // equals (firefox), = 61 + // ß, = 63 + // @ (firefox), = 64 A = 65, B = 66, C = 67, @@ -857,8 +1061,53 @@ pub enum KeyCode { F10 = 121, F11 = 122, F12 = 123, + // f13, = 124 + // f14, = 125 + // f15, = 126 + // f16, = 127 + // f17, = 128 + // f18, = 129 + // f19, = 130 + // f20, = 131 + // f21, = 132 + // f22, = 133 + // f23, = 134 + // f24, = 135 + // f25, = 136 + // f26, = 137 + // f27, = 138 + // f28, = 139 + // f29, = 140 + // f30, = 141 + // f31, = 142 + // f32, = 143 NumLock = 144, ScrollLock = 145, + // airplane mode, = 151 + // ^, = 160 + // !, = 161 + // ؛ (arabic semicolon), = 162 + // #, = 163 + // $, = 164 + // ù, = 165 + // page backward, = 166 + // page forward, = 167 + // refresh, = 168 + // closing paren (AZERTY), = 169 + // *, = 170 + // ~ + * key, = 171 + // home key, = 172 + // minus (firefox), mute/unmute, = 173 + // decrease volume level, = 174 + // increase volume level, = 175 + // next, = 176 + // previous, = 177 + // stop, = 178 + // play/pause, = 179 + // e-mail, = 180 + // mute/unmute (firefox), = 181 + // decrease volume level (firefox), = 182 + // increase volume level (firefox), = 183 Semicolon = 186, EqualSign = 187, Comma = 188, @@ -866,10 +1115,27 @@ pub enum KeyCode { Period = 190, ForwardSlash = 191, GraveAccent = 192, + // ?, / or °, = 193 + // numpad period (chrome), = 194 OpenBracket = 219, BackSlash = 220, CloseBraket = 221, SingleQuote = 222, + // `, = 223 + // left or right ⌘ key (firefox), = 224 + // altgr, = 225 + // < /git >, left back slash, = 226 + // GNOME Compose Key, = 230 + // ç, = 231 + // XF86Forward, = 233 + // XF86Back, = 234 + // non-conversion, = 235 + // alphanumeric, = 240 + // hiragana/katakana, = 242 + // half-width/full-width, = 243 + // kanji, = 244 + // unlock trackpad (Chrome/Edge), = 251 + // toggle touchpad, = 255 Unknown, } diff --git a/packages/desktop/examples/demo.rs b/packages/desktop/examples/demo.rs index 64fe878c9..77a927e99 100644 --- a/packages/desktop/examples/demo.rs +++ b/packages/desktop/examples/demo.rs @@ -5,7 +5,7 @@ use dioxus_core_macro::*; use dioxus_html as dioxus_elements; fn main() { - dioxus_desktop::launch(App, |c| c).unwrap(); + dioxus_desktop::launch(App, |c| c); } static App: FC<()> = |cx, props| { diff --git a/packages/desktop/src/events.rs b/packages/desktop/src/events.rs index 4b1b1ae43..f1e6d165e 100644 --- a/packages/desktop/src/events.rs +++ b/packages/desktop/src/events.rs @@ -49,7 +49,9 @@ fn make_synthetic_event(name: &str, val: serde_json::Value) -> Box(val).unwrap()) } "keydown" | "keypress" | "keyup" => { - Box::new(serde_json::from_value::(val).unwrap()) + dbg!(&val); + let evt = serde_json::from_value::(val).unwrap(); + Box::new(evt) } "focus" | "blur" => { // diff --git a/packages/desktop/src/index.html b/packages/desktop/src/index.html index f58b973e0..868e7fa4a 100644 --- a/packages/desktop/src/index.html +++ b/packages/desktop/src/index.html @@ -1,10 +1,14 @@ - + + + +

diff --git a/packages/desktop/src/index.js b/packages/desktop/src/index.js index 28f46cdaa..222509629 100644 --- a/packages/desktop/src/index.js +++ b/packages/desktop/src/index.js @@ -244,7 +244,8 @@ const SerializeMap = { "focus": serialize_focus, "blur": serialize_focus, - "change": serialize_change, + "change": serialize_form, + // "change": serialize_change, "input": serialize_form, "invalid": serialize_form, @@ -335,16 +336,17 @@ function serialize_composition(event) { } function serialize_keyboard(event) { return { - alt_key: event.altKey, char_code: event.charCode, key: event.key, - key_code: event.keyCode, + alt_key: event.altKey, ctrl_key: event.ctrlKey, - locale: event.locale, - location: event.location, meta_key: event.metaKey, - repeat: event.repeat, + key_code: event.keyCode, shift_key: event.shiftKey, + locale: "locale", + // locale: event.locale, + location: event.location, + repeat: event.repeat, which: event.which, } } diff --git a/packages/mobile/src/lib.rs b/packages/mobile/src/lib.rs index ff9614fab..a3452c8b4 100644 --- a/packages/mobile/src/lib.rs +++ b/packages/mobile/src/lib.rs @@ -185,7 +185,6 @@ impl WebviewRenderer { }); } } -// brad johnson go chat fn main() { init_logging();