From fdc99e5bf619daf46b9f3508827a79e329b0da9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?H=C3=A9ctor=20Ram=C3=B3n=20Jim=C3=A9nez?= Date: Tue, 19 Nov 2019 11:39:49 +0100 Subject: [PATCH] Update `README` and `ROADMAP` and add `ECOSYSTEM` --- ECOSYSTEM.md | 88 +++++++++++++++++ README.md | 96 ++++++++++++------- ROADMAP.md | 193 +++----------------------------------- docs/crates_graph.dot | 12 --- docs/crates_graph.png | Bin 40251 -> 0 bytes docs/graphs/core.dot | 13 +++ docs/graphs/core.png | Bin 0 -> 16123 bytes docs/graphs/ecosystem.dot | 59 ++++++++++++ docs/graphs/ecosystem.png | Bin 0 -> 51911 bytes docs/graphs/iced.dot | 47 ++++++++++ docs/graphs/iced.png | Bin 0 -> 32794 bytes docs/graphs/native.dot | 42 +++++++++ docs/graphs/native.png | Bin 0 -> 27637 bytes docs/graphs/web.dot | 12 +++ docs/graphs/web.png | Bin 0 -> 13023 bytes docs/graphs/wgpu.dot | 33 +++++++ docs/graphs/wgpu.png | Bin 0 -> 20091 bytes docs/graphs/winit.dot | 33 +++++++ docs/graphs/winit.png | Bin 0 -> 17051 bytes 19 files changed, 404 insertions(+), 224 deletions(-) create mode 100644 ECOSYSTEM.md delete mode 100644 docs/crates_graph.dot delete mode 100644 docs/crates_graph.png create mode 100644 docs/graphs/core.dot create mode 100644 docs/graphs/core.png create mode 100644 docs/graphs/ecosystem.dot create mode 100644 docs/graphs/ecosystem.png create mode 100644 docs/graphs/iced.dot create mode 100644 docs/graphs/iced.png create mode 100644 docs/graphs/native.dot create mode 100644 docs/graphs/native.png create mode 100644 docs/graphs/web.dot create mode 100644 docs/graphs/web.png create mode 100644 docs/graphs/wgpu.dot create mode 100644 docs/graphs/wgpu.png create mode 100644 docs/graphs/winit.dot create mode 100644 docs/graphs/winit.png diff --git a/ECOSYSTEM.md b/ECOSYSTEM.md new file mode 100644 index 00000000..177b8709 --- /dev/null +++ b/ECOSYSTEM.md @@ -0,0 +1,88 @@ +# Ecosystem +This document describes the Iced ecosystem. + +It quickly lists the different audiences of the library and explains how the different crates relate to each other. + +## Users + +Iced is meant to be used by 2 different types of users: + +- __End-users__. They should be able to: + - get started quickly, + - have many widgets available, + - keep things simple, + - and build applications that are __maintainable__ and __performant__. +- __GUI toolkit developers / Ecosystem contributors__. They should be able to: + - build new kinds of widgets, + - implement custom runtimes, + - integrate existing runtimes in their own system (like game engines), + - and create their own custom renderers. + +## Crates +Iced consists of different crates which offer different layers of abstractions for our users. This modular architecture helps us keep implementation details hidden and decoupled, which should allow us to rewrite or change strategies in the future. + +![Ecosystem graph](docs/graphs/ecosystem.png) + +### [`iced_core`] + +[`iced_core`] holds basic reusable types of the public API. For instance, basic data types like `Point`, `Rectangle`, `Length`, etc. + +This crate is meant to be a starting point for an Iced runtime. + +### [`iced_native`] +[`iced_native`] takes [`iced_core`] and builds a native runtime on top of it, featuring: +- A custom layout engine, greatly inspired by [`druid`] +- Event handling for all the built-in widgets +- A renderer-agnostic API + +To achieve this, it introduces a bunch of reusable interfaces: +- A `Widget` trait, which is used to implement new widgets: from layout requirements to event and drawing logic. +- A bunch of `Renderer` traits, meant to keep the crate renderer-agnostic. +- A `Windowed` trait, leveraging [`raw-window-handle`], which can be implemented by graphical renderers that target _windows_. Window-based shells (like [`iced_winit`]) can use this trait to stay renderer-agnostic. + +[`druid`]: https://github.com/xi-editor/druid +[`raw-window-handle`]: https://github.com/rust-windowing/raw-window-handle + +### [`iced_web`] +[`iced_web`] takes [`iced_core`] and builds a WebAssembly runtime on top. It achieves this by introducing a `Widget` trait that can be used to produce VDOM nodes. + +The crate is currently a simple abstraction layer over [`dodrio`]. + +[`dodrio`]: https://github.com/fitzgen/dodrio + +### [`iced_wgpu`] +[`iced_wgpu`] is a [`wgpu`] renderer for [`iced_native`]. For now, it is the default renderer of Iced in native platforms. + +[`wgpu`] supports most modern graphics backends: Vulkan, Metal, DX11, and DX12 (OpenGL and WebGL are still WIP). Additionally, it will support the incoming [WebGPU API]. + +Currently, [`iced_wgpu`] supports the following primitives: +- Text, which is rendered using [`wgpu_glyph`]. No shaping at all. +- Quads or rectangles, with rounded borders and a solid background color. +- Images, lazily loaded from the filesystem. +- Clip areas, useful to implement scrollables or hide overflowing content. + +[`wgpu`]: https://github.com/gfx-rs/wgpu-rs +[WebGPU API]: https://gpuweb.github.io/gpuweb/ +[`wgpu_glyph`]: https://github.com/hecrj/wgpu_glyph + +### [`iced_winit`] +[`iced_winit`] offers some convenient abstractions on top of [`iced_native`] to quickstart development when using [`winit`]. + +It exposes a renderer-agnostic `Application` trait that can be implemented and then run with a simple call. The use of this trait is optional. A `conversion` module is provided for users that decide to implement a custom event loop. + +[`winit`]: https://github.com/rust-windowing/winit + +### [`iced`] +Finally, [`iced`] unifies everything into a simple abstraction to create cross-platform applications: + +- On native, it uses [`iced_winit`] and [`iced_wgpu`]. +- On the web, it uses [`iced_web`]. + +This is the crate meant to be used by __end-users__. + +[`iced_core`]: core +[`iced_native`]: native +[`iced_web`]: web +[`iced_wgpu`]: wgpu +[`iced_winit`]: winit +[`iced`]: .. diff --git a/README.md b/README.md index 0aac9bc8..7e243871 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,9 @@ [![Documentation](https://docs.rs/iced/badge.svg)][documentation] [![Crates.io](https://img.shields.io/crates/v/iced.svg)](https://crates.io/crates/iced) [![License](https://img.shields.io/crates/l/iced.svg)](https://github.com/hecrj/iced/blob/master/LICENSE) +[![project chat](https://img.shields.io/badge/chat-on_zulip-brightgreen.svg)](https://iced.zulipchat.com) -A renderer-agnostic GUI library for Rust focused on simplicity and type-safety. +A cross-platform GUI library for Rust focused on simplicity and type-safety. Inspired by [Elm]. [![Tour - Iced][gui_gif]][gui_gfycat] @@ -17,15 +18,31 @@ Inspired by [Elm]. [coffee_gui_gfycat]: https://gfycat.com/gloomyweakhammerheadshark ## Features - * Simple, easy-to-use, renderer-agnostic API - * Responsive, flexbox-based layouting + * Simple, easy-to-use, batteries-included API * Type-safe, reactive programming model - * Built-in widgets - * Custom widget support + * Cross-platform support (Windows, macOS, Linux, and the Web) + * Responsive layout + * Built-in widgets (including [text inputs], [scrollables], and more!) + * Custom widget support (create your own!) + * [Debug overlay with performance metrics] + * First-class support for async actions (use futures!) + * [Modular ecosystem] split into reusable parts: + * A [default renderer] supporting Vulkan, Metal, DX11, and DX12 + * A [renderer-agnostic native runtime] enabling integration with existing systems + * A [web runtime] leveraging the DOM -__Iced is in a experimental stage.__ [Take a look at the roadmap], -[check out the issues], and [feel free to contribute!]. +__Iced is currently experimental software.__ [Take a look at the roadmap], +[check out the issues], and [feel free to contribute!] +[text inputs]: https://gfycat.com/alertcalmcrow-rust-gui +[scrollables]: https://gfycat.com/perkybaggybaboon-rust-gui +[Debug overlay with performance metrics]: https://gfycat.com/artisticdiligenthorseshoebat-rust-gui +[Modular ecosystem]: https://github.com/hecrj/iced/blob/master/ECOSYSTEM.md +[renderer-agnostic native runtime]: https://github.com/hecrj/iced/tree/master/native +[`wgpu`]: https://github.com/gfx-rs/wgpu-rs +[Default renderer]: https://github.com/hecrj/iced/tree/master/wgpu +[`dodrio`]: https://github.com/fitzgen/dodrio +[web runtime]: https://github.com/hecrj/iced/tree/master/web [Take a look at the roadmap]: https://github.com/hecrj/iced/blob/master/ROADMAP.md [check out the issues]: https://github.com/hecrj/iced/issues [feel free to contribute!]: #contributing--feedback @@ -139,7 +156,7 @@ to: 1. Take the result of our __view logic__ and layout its widgets. 1. Process events from our system and produce __messages__ for our __update logic__. - 1. Draw the resulting user interface using our chosen __renderer__. + 1. Draw the resulting user interface. Browse the [documentation] and the [examples] to learn more! @@ -147,40 +164,51 @@ Browse the [documentation] and the [examples] to learn more! Iced was originally born as an attempt at bringing the simplicity of [Elm] and [The Elm Architecture] into [Coffee], a 2D game engine I am working on. -The core of the library was implemented during May in [this pull request], using -[`stretch`] for flexbox-based layouting. It was later released as the main -feature of [Coffee 0.3.0]. +The core of the library was implemented during May in [this pull request]. +[The first alpha version] was eventually released as +[a renderer-agnostic GUI library]. The library did not provide a renderer and +implemented the current [tour example] on top of [`ggez`], a game library. -After release, different folks suggested me to split the new [`ui` module] into -its own standalone crate, as it could potentially benefit other engines and -applications. I thought it was a great idea, and after a bit of work... Iced is -here! +Since then, the focus has shifted towards providing a batteries-included, +end-user-oriented GUI library, while keeping [the ecosystem] modular. -Iced consists of different crates which offer different layers of abstractions -for our users. This modular architecture helps us keep implementation details -hidden and decoupled, which should allow us to rewrite or change strategies in -the future. +Currently, Iced is a cross-platform GUI library built on top of smaller crates: -![Iced ecosystem](https://github.com/hecrj/iced/raw/master/docs/crates_graph.png) + - [`iced_core`], a bunch of basic types that can be reused in different runtimes. + - [`iced_native`], a renderer-agnostic native runtime implementing widget + logic and a layout engine inspired by [`druid`]. + - [`iced_web`], an experimental web runtime that targets the DOM thanks to + [`dodrio`]. + - [`iced_wgpu`], a renderer leveraging [`wgpu`], [`wgpu_glyph`], and + [`font-kit`]. + - [`iced_winit`], a windowing shell on top of [`winit`]. -Read [the roadmap] if you want to learn more! +[![Iced ecosystem](docs/graphs/ecosystem.png)](https://github.com/hecrj/iced/blob/master/ECOSYSTEM.md) [this pull request]: https://github.com/hecrj/coffee/pull/35 -[`stretch`]: https://github.com/vislyhq/stretch -[Coffee 0.3.0]: https://github.com/hecrj/coffee/releases/tag/0.3.0 -[`ui` module]: https://docs.rs/coffee/0.3.2/coffee/ui/index.html -[the roadmap]: https://github.com/hecrj/iced/blob/master/ROADMAP.md +[The first alpha version]: https://github.com/hecrj/iced/tree/0.1.0-alpha +[a renderer-agnostic GUI library]: https://www.reddit.com/r/rust/comments/czzjnv/iced_a_rendereragnostic_gui_library_focused_on/ +[tour example]: https://github.com/hecrj/iced/blob/master/examples/tour.rs +[`ggez`]: https://github.com/ggez/ggez +[the ecosystem]: https://github.com/hecrj/iced/blob/master/ECOSYSTEM.md +[`iced_core`]: https://github.com/hecrj/iced/tree/master/core +[`iced_native`]: https://github.com/hecrj/iced/tree/master/native +[`iced_web`]: https://github.com/hecrj/iced/tree/master/web +[`iced_wgpu`]: https://github.com/hecrj/iced/tree/master/wgpu +[`iced_winit`]: https://github.com/hecrj/iced/tree/master/winit +[`druid`]: https://github.com/xi-editor/druid +[`wgpu_glyph`]: https://github.com/hecrj/wgpu_glyph +[`font-kit`]: https://github.com/servo/font-kit +[`winit`]: https://github.com/rust-windowing/winit ## Contributing / Feedback -If you want to contribute, you are more than welcome to be a part of the -project! Check out [the roadmap] and [the current issues] if you want to find -something to work on. Try to share you thoughts first! Feel free to open a new -issue if you want to discuss new ideas. +Contributions are greatly appreciated! If you want to contribute, please +read our [contributing guidelines] for more details. -Any kind of feedback is welcome! You can open an issue or, if you want to talk, -you can find me (and a bunch of awesome folks) over the `#games-and-graphics` -and `#gui-and-ui` channels in the [Rust Community Discord]. I go by -`@lone_scientist` there. +Feedback is also welcome! You can open an issue or, if you want to talk, +come chat to our [Zulip server]. Moreover, you can find me (and a bunch of +awesome folks) over the `#games-and-graphics` and `#gui-and-ui` channels in +the [Rust Community Discord]. I go by `lone_scientist#9554` there. [documentation]: https://docs.rs/iced [examples]: https://github.com/hecrj/iced/tree/master/examples @@ -188,4 +216,6 @@ and `#gui-and-ui` channels in the [Rust Community Discord]. I go by [Elm]: https://elm-lang.org/ [The Elm Architecture]: https://guide.elm-lang.org/architecture/ [the current issues]: https://github.com/hecrj/iced/issues +[contributing guidelines]: https://github.com/hecrj/iced/blob/master/CONTRIBUTING.md +[Zulip server]: https://iced.zulipchat.com/ [Rust Community Discord]: https://bit.ly/rust-community diff --git a/ROADMAP.md b/ROADMAP.md index 8a6c7869..75b7c707 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -1,149 +1,21 @@ # Roadmap -This document describes the current state of Iced and some of the most important next steps we should take before it can become a production-ready GUI library. - -## Context -Before we get into the actual roadmap, let's quickly review what is the current state of the library. - -### Users - -Iced is meant to be used by 2 different types of users: - -- __End-users__. They should be able to: - - get started quickly, - - have many widgets available, - - keep things simple, - - and build applications that are __maintainable__ and __performant__. -- __GUI toolkit developers / Ecosystem contributors__. They should be able to: - - build new kinds of widgets, - - implement custom runtimes, - - integrate existing runtimes in their own system (like game engines), - - and create their own custom renderers. - -### Current state -Iced consists of different crates which offer different layers of abstractions for our users. This modular architecture helps us keep implementation details hidden and decoupled, which should allow us to rewrite or change strategies in the future. - -![Crates graph](docs/crates_graph.png) - -#### `iced_core` - -`iced_core` holds most of the reusable types of the public API. For instance, common widgets (like `Column`, `Row`, `Button`...) and basic data types (`Point`, `Rectangle`, `Length`...). - -This crate is meant to be a starting point for an Iced runtime. - -#### `iced_native` -`iced_native` takes `iced_core` and builds a native runtime on top of it, featuring: -- A flexbox-based layout engine, powered by [`stretch`] -- Event handling for all the built-in widgets -- A renderer-agnostic API - -To achieve this, it introduces a bunch of reusable interfaces: -- A `Widget` trait, which is used to implement new widgets: from layout requirements to event and drawing logic. -- A bunch of `Renderer` traits, meant to keep the crate renderer-agnostic. -- A `Windowed` trait, which can be implemented by graphical renderers that target _windows_. Window-based runtimes can use this trait to stay renderer-agnostic. - -[`stretch`]: https://github.com/vislyhq/stretch - -#### `iced_web` -`iced_web` takes `iced_core` and builds a WebAssembly runtime on top. It achieves this by introducing a `Widget` trait that can be used to produce VDOM nodes. - -The crate is a quite simple abstraction layer over [`dodrio`]. - -[`dodrio`]: https://github.com/fitzgen/dodrio - -#### `iced_wgpu` -`iced_wgpu` is a [`wgpu`] renderer for `iced_native`. It is meant to become the default renderer of Iced in native platforms. - -[`wgpu`] supports most modern graphics backends: Vulkan, Metal, DX11, and DX12 (OpenGL and WebGL are still WIP). Additionally, it will support the incoming [WebGPU API]. - -Currently, `iced_wgpu` only supports a couple of primitives: -- Text, which is rendered using [`wgpu_glyph`]. -- Quads or rectangles, with rounded borders and a solid background color. - -[`wgpu`]: https://github.com/gfx-rs/wgpu-rs -[WebGPU API]: https://gpuweb.github.io/gpuweb/ -[`wgpu_glyph`]: https://github.com/hecrj/wgpu_glyph - -#### `iced_winit` -`iced_winit` offers some convenient abstractions on top of `iced_native` to quickstart development when using [`winit`]. - -It exposes a renderer-agnostic `Application` trait that can be implemented and then run with a simple call. The use of this trait is optional. A `conversion` module is provided for users that decide to implement a custom event loop. - -[`winit`]: https://github.com/rust-windowing/winit - -#### `iced` -Finally, `iced` unifies everything into a simple abstraction to create cross-platform applications: - -- On native, it uses `iced_winit` and `iced_wgpu`. -- On the web, it uses `iced_web`. - -This is the crate meant to be used by __end-users__. - +This document describes the current state of Iced and some of the most important next steps we should take before it can become a production-ready GUI library. This list keeps the short term new features in sight in order to coordinate work. Therefore, it is not meant to be exhaustive. ## Next steps -This section describes some important features that should be implemented before Iced can be considered production-ready (before a 1.0 release). - Most of the work related to these features needs to happen in the `iced_native` path of the ecosystem, as the web already supports many of them. -### Scrollables / Clippables ([#24]) -Content that can take a (practically) infinite amount of space and can be viewed using a scrollbar. This is a very basic feature. +Once a step is completed, it is collapsed and added to this list: -The end-user API could look like this: - -```rust -Column::new() - .push(content) - .scroll(&mut self.scroll_state); -``` - -The challenge here is __composability__. Nested scrollables should work as expected. - -When it comes to `iced_native`, we may need to add the concept of _event propagation_, so mouse wheel events can be captured by the inner-most scrollable and stop propagation. - -When it comes to `iced_wgpu`, we should be able to use scissoring and transformations. [`wgpu`] has a [`RenderPass::set_scissor_rect`] that should work nicely. - -The main issue here will be [`wgpu_glyph`], which is used currently to render text primitives. [`wgpu_glyph`] is powered by [`glyph-brush`], which caches glyphs to render text very fast. However, the current cache model does not seem to be composable (i.e. once you issue a draw call the cache is purged). We will need to change it (and potentially contribute) to accommodate for this use case. + * [x] Scrollables / Clippables ([#24]) + * [x] Text input widget ([#25]) + * [x] TodoMVC example ([#26]) + * [x] Async actions ([#27]) + * [x] Custom layout engine [#24]: https://github.com/hecrj/iced/issues/24 -[`RenderPass::set_scissor_rect`]: https://docs.rs/wgpu/0.3.0/src/wgpu/lib.rs.html#1246-1248 -[`glyph-brush`]: https://github.com/alexheretic/glyph-brush - -### Text input widget ([#25]) -A widget where the user can type raw text and passwords. - -This widget will have a quite complex event logic, potentially coupled with text rendering. Some examples are: -- Text cursor positioning based on a mouse click -- Text selection -- Clipboard interaction (copy & paste) -- Text editing shortcuts (go to start, go to end, etc.) - -It also needs scrollable / clippable text support, as the introduced text may not fit the input and scrolling based on the text cursor will need to be implemented. - -Additionally, the text cursor should blink at a regular interval, which can be considered an _animation_. - -I think we should start simple here, and build a text widget with the most basic functionality: click to focus and type to fill. We can improve the implementation with time as the library matures. - -The end-user API could look like this: - -```rust -pub enum Message { - TextChanged(String), -} - -let text_input = text_input::State::new(); -let text = "Hello"; - -TextInput::new(&mut text_input, &text, Message::TextChanged); -``` - [#25]: https://github.com/hecrj/iced/issues/25 - -### TodoMVC example ([#26]) -Once we have scrollables support and a text widget, we could build a [TodoMVC] example. It seems to be a very simple example and could showcase the API quite well. - -We could also consider releasing a `0.1.0` version at this point and share it as a milestone on different social platforms. - [#26]: https://github.com/hecrj/iced/issues/26 -[TodoMVC]: http://todomvc.com/ +[#28]: https://github.com/hecrj/iced/issues/28 ### Multi-window support ([#27]) Open and control multiple windows at runtime. @@ -154,46 +26,6 @@ This approach should also allow us to perform custom optimizations for this part [#27]: https://github.com/hecrj/iced/issues/27 -### Async actions ([#28]) -Most applications need to perform work in the background, without freezing the UI while they work. The current architecture can be easily extended to achieve this. - -We can let users return an asynchronous action (i.e. a future) producing a `Message` in `Application::update`. The runtime will spawn each returned action in a thread pool and, once it finishes, feed the produced message back to `update`. This is also how [Elm] does it. - -When it comes to implementing this, [`winit`] already supports user-specific events that can be sent from another thread. Accommodating `iced_winit` for this functionality should not be too complicated. - -[Elm]: https://elm-lang.org/ - -Here is an example of how the end-user API could look: - -```rust -impl Application for WeatherReport { - fn update(&mut self, message: Message) -> Command { - match message { - Message::Refresh => { - self.state = State::Loading; - - Command::from_future( - Weather::request(self.location), - Message::ReportReceived, - ) - } - Message::ReportReceived(Ok(report)) => { - self.state = State::Show(report); - - Command::none() - }, - Message::ReportReceived(Err(error)) => { - self.state = State::Error(error); - - Command::none() - } - } - } -} -``` - -[#28]: https://github.com/hecrj/iced/issues/28 - ### Event subscriptions ([#29]) Besides performing async actions on demand, most applications also need to listen to events passively. An example of this could be a WebSocket connection, where messages can come in at any time. @@ -233,7 +65,7 @@ In the long run, we could expose a renderer-agnostic abstraction to perform the [#32]: https://github.com/hecrj/iced/issues/32 ### Text shaping and font fallback ([#33]) -[`wgpu_glyph`] uses [`glyph-brush`], which in turn uses [`rusttype`]. While the current implementation is able to layout text quite nicely, it does not perform any [text shaping]. +[`wgpu_glyph`] uses [`glyph_brush`], which in turn uses [`rusttype`]. While the current implementation is able to layout text quite nicely, it does not perform any [text shaping]. [Text shaping] with font fallback is a necessary feature for any serious GUI toolkit. It unlocks support to truly localize your application, supporting many different scripts. @@ -303,5 +135,8 @@ This could be very useful to build very performant user interfaces with a lot of [Elm does it very well!](https://guide.elm-lang.org/optimization/lazy.html) -### Build a custom layout engine -It may be possible to build an optimized layout engine only for `iced_native` if it turns out that there are some flexbox features we end up not using. +[Elm]: https://elm-lang.org/ +[`winit`]: https://github.com/rust-windowing/winit +[`wgpu`]: https://github.com/gfx-rs/wgpu-rs +[`wgpu_glyph`]: https://github.com/hecrj/wgpu_glyph +[`glyph_brush`]: https://github.com/alexheretic/glyph-brush diff --git a/docs/crates_graph.dot b/docs/crates_graph.dot deleted file mode 100644 index 85e375d0..00000000 --- a/docs/crates_graph.dot +++ /dev/null @@ -1,12 +0,0 @@ -digraph G { - "iced_core" -> "iced_native" - "iced_core" -> "iced_web" - "iced_native" -> "iced_wgpu" - "iced_native" -> "iced_winit" - "iced_web" -> "iced" - "iced_wgpu" -> "iced" - "iced_winit" -> "iced" - - node[shape=box]; - "iced" -> "cross-platform application" -} diff --git a/docs/crates_graph.png b/docs/crates_graph.png deleted file mode 100644 index d598c1dd15a6801adb50e48b8f1a957210a91680..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40251 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 z 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 a28~Zm{!`m=UoQp!vlu(cBz*L|ZT|%?JSRZ_ diff --git a/docs/graphs/core.dot b/docs/graphs/core.dot new file mode 100644 index 00000000..a52dfbb9 --- /dev/null +++ b/docs/graphs/core.dot @@ -0,0 +1,13 @@ +digraph G { + fontname = "Roboto"; + newrank=true; + node[fontname = "Roboto", style=filled, fontcolor=white, color="#474973"]; + + { rank = same; iced_native iced_web } + + iced_core -> iced_native [style=dashed]; + iced_core -> iced_web [style=dashed]; + + iced_core [style=dashed, fontcolor=black]; + +} diff --git a/docs/graphs/core.png b/docs/graphs/core.png new file mode 100644 index 0000000000000000000000000000000000000000..a5002c9b2d678037d88fa43f2d545a5df3672f83 GIT binary patch literal 16123 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
  • p!@+4ru${M`i0$Z7S<$2d+ zqMK?E;~*7{sr{un@7kJhhVA4QSH;FnS83$zwtSvqrRNrLK)@}!A4`I~;8ViH1U=x2 z)m?WCw}&$%!7y@Cdbd&|4~E6j(l*SmwFkb2v&XrGHa37-Qa2q9GoB7x)bJf0%x@+I z6OC$V3#`06uA*Yq9Vl54D-68d;bAVOh97HZM@zno6ySd}&Q`>M)dr7eBB}XUT?Pz~ zNgq-=?ngOcd-<*t7;I@7ow-4^-ra8Ky{9iD1C!>%ajQSzu#a`y0+Muf)%l)@&)Q2u7X7@647D7lsLV0+6?64hRU*<02t@xR%kuR((eqn2Q{^%;BiNmt z`34JtDpwQ~;&on21CYU8g=ZL8ou(axW2_-I&VVrhk$f&xbFE9C3OCG=e`o$Yyg6<9T(&aQPKA?h=Cnw6EZp-f_r1uxOH zg9AAb&1j)JW{0x@V^i!ZFb9!59}u>3iU?3sr-6mX=K4rT4s?7#eSVdHsYmzX@7i%vhSCHJhGyBQoH4 z!0>b(NLnZev`FvvHa%V6_W(+nrcvqt)6;ri)a%6W{>!fUm8nuegm5gC<$-fR5K7)I~cjQR(n+1(~{C*GIv0jEp<>A_Vf!M*;xahD1i{&*5{t zf&q2oexGs!Y=2U!s^sl9Q5*ASLa!qr-P5(JNt{QLvGc7v>PZ4Wd1bM{bW25TLP0om z^G0xaXl5S0eeqTz*z+cc4E#!k|7cUomVRC5F zQ+=HGr&wXEAAQxD_esBog%MPF?x8f=I226g)pD{oHgPAD@B!heN19|Oh)~V#cE|=< ziIY=x=i_~q60o-t@yCa$7SnvBn7eFfZ^s3yB$)G)_wA`6hR5l2Fr3zN3v0E$%f|d= zm^8_&C1tTv>;2=GzCNSBehvBhv|q4}l`{c*W4JtsS#PwE%I{=O8ziv4ct4(%OU8EB z%;3TFMzXD_oCy6e_GIMcC8}KrYPdC)%N(-1Apzdv!^NZ!DhQAu*JJ<*IkpCO>#j&M zFrWbfJ{1u4aLG5%eIV{Cx3jUyTk1(q|NCcAkx^G(xf8`44!K9*%@;U9i6_| z!5lv8lOvlJ2E1*b{o_BYtK4(6jcL8jZ4*-qA)5G$?QJI(z` zHBWZ)P`KJDa*>r|#GdsnU)Z3TvpXuBgwaD+g@HghjkHjTyn3<_fcv=TXPzp)zVBa^uHNl| z{HU$H@*(+R=V)z1^}FyzR0tYrF0r$B9I_`B&{7& zFzQ+bx%v5Rvwfn+3qDvt^s6Z{x{K~f0xqABOp++ZLF+}={+f*H@UsS~*zT%k9Jhy5 zf=CZ)#IL=*ra+oI1N19ayqC23%`X!A*-3^uTW@Zu(SDYe%v4nn*S<^pTmgXk^jzpM>6dtU59kVMS z)$Ao--P2fGmsC_M0eiK_%+aE!Ik5a3)}gkxttoT0<_^dJBl0%FQJue`|CW9c;|a zji;-vntg^RKZrO1FUtNGiUaAVgdfb^`VDoU#zEz=n#z#b+D6HwalQqrMg8a;kI`&d zZUiY;Y$#?I5T}7PyleqM&ZmsjcWJn6S;uXjiQ&lO=A_PPINj2&>Hg^C^0&Q<3;RJP zo*6wOeOHI@_oM=+V8PK(2O0j1BaS#x8aVZLtVq1T9 zIpBIjITlAAp4S~U)8ZNl7-wgmVIdLtn3BrMbaAwi>$hhz^bC<)s$h)X$ZY;#c3)GO zuQ;3%nsej?iJjUQb>Rfn4uh3M$3^iX!>q$z;z$mN8yXRcs#(l0EBm%Na~vR@*zJ7JyP{iW>Y+RE zXO8uo*>V}zd)7ZE+Q^Ak#Ye#}O;$UGU@pALR8oR6eKE1I!@nQ~pkrj0lr(ioZr$Eu z!5A7*+B;9V5)>pQft?KB^Nx$o;YzA)-m#$yPi`Qn8 zljq6v#LRMi`y03i5P%M(i~Iro#=4Im5dq`Zxj2|SCMS;t<98?+HX|1afIpaacn|$f z#}L4Ngz<$UkM%P`2S?rn#=|2H{=4qTmZxpXjOQ`kI_^}lcLk|}N#aI>dZdjgk-dpi zQ$&hN30eNyvHFK|f1HXvU#r`n8FPA9)^>$RJ1J{w_Jn_UiY~}(2$gv86yRdYkhid) z_Vvx==COFs$aunnww?R(?4MO0yw`VNEdJ`sh4=BP)!x2>lD1$@Ie7k>q`dtMJDT5{ zseaWJK}{E3TEl~*t3{`>rsn6*iXmr=>tLPcD96h=NM~Qvzl5Zdf?vNdz!(TNjBIWt zr4pFvEEByKEVbo%)<*>W5!{R{cpqq@UboM|Is%@frCJ+}`+wD8>e3aCrndilqnasu z2wk+*>E4KD-bzfv1x)d`;9xe8V_+-5>Es75zGb!du~MBq^O^6J#BUBBfJK*ufwQWw zPY>by-ok<(SttlmY>JAcu&_q+j_VQc-;8=a%Y|c^D#nY)iH~-z~+t>_%#J2yKYjmY8C4~aALVn44vL`-CWn*I_3gii3zjb|%F5W$Bw+bg3 z93MvI^>X3>(NKGS9upYR!KN469mhSpOkL(Vt7$5d(ZjI>X0G~f?$^pT-|OoMfjJ{S zN$p}o-phS&>xwuZ!h&b)`k46%m{PzV7QwD1dk2S~g@yi+t0(JVW5fx|e^-DY27qgQ zdpjU4jS?*S00zcFXJ4HR6tEax6HDedG`t22@^~&Rpon=6^fWX$z;l)S^q8&e=p?<+ zTCQpIS^p~+Ph-#HxaKnD;72}JqF((U4i2t=1|ZV1vI6aoP0>ku&q#0*e3!_Po10km z2iG3_@898?c`YraSAd1?llDjaQra6}4g%XFDr_D)P>gu~s1uxBT>UI5341Ah8D@7s zkqHgOCz9j-CTJ~fKT_XKZWJ8_jY8R@`;A1$A%ayZ8z0a#!O^#?GPfB30 zb3LGsrO>!k2CBx1-|6S*Iu%dFifpM^DzLMG|9KZVjI(0Zb5O+fghyOMBY`3u2bq0+ zVP6M*Ln70~q>H39r4s#m>x z6{L@Y9Aq~mH4Oe^#1Ipr(?-XhBLRZZ$z0J_z3*LL?)zN|l`-fOe%Vi^k);cHl?LHv z>dAFm#1W-_58swGp4Ulwg_N9<7WhpfmWq*y5sK6i-Vv`<`**y`PQxc?GauVC~Qm)m?wG#O{6yQGJ_CM2{{6?9r`T%w~+cgle& zEGaP=epn@(Ey4Sw$5`u*Xm>H-)cr*N_Z)A1~Fh|8=yqhkv2ySpWn^_sk-xW#v0nk2KIX3 z{aLWx-Wds9|MpPMn?;!SP8v%;{lCjr4#N2=jumy~UiWW^{)!720SO7zP=GzF$5pRq z7I-Af#PoK?=aNm&rxjL%GekGIlc&12*7UB5no)bqfw`2V=~Q%_hBEi73+dBP+f$!b zpY~;MF=A(9HK1p`6ods~QU{eF>Lt-3_K#8l}XG5=LZx~?m z)g3h=EcQk^O7inF%iHfVPB@Q$wdsD~jfc;7`m;P7V^x;Y1s(&R4(}cRl@1W_fUq+P zX#D0#KR}gyzzDMMSYSp3Ry*KG>-7&W06LcfZ;5ZgUGKBTO)48(wU4M^T%S4OVei29j7ccK{Ahf1;a(xy>C> zi6$B&H~AZoAKP9GxP%@X3S6k`>bAWNDhOE(@zfYoIu7SCJ*(e1lY95bI0Mz)%KZ;7pmGU1GdE zRzY!L3AvzPpwB~GNVv3k!6fYZ8`2@U7u%yF4pGrJnE2>JVB)uTtyAM}>L3S}L;#8n z4(h&d?j*flPyJ{{59u7cUxudm5dKDr00RbT*0YZ79s70yo!l&tDaMUxL&K%X*CYw> z@&Cg^>NU~mfe8M{_$>rB?~pN0Wu0wEe6%pc1Lo13;q2%P$w8BykvC9fC`Dt=lNcfy zt1j~CeZfm67z&{*;NQ)0U;qBLnSh#hvU zY`SyFN68X}M$GXyi!~QE($DDiLr!qe*yn@gn{UQ1kv;miHwTkjc>7ow#0LmyTIZ4V5PyjCG^3vP!LP{nN1&uoT+1WI+ zuHp+Tg*_hdOGY4_8%*uOyoPN7o(TTx*0E?~4dCd{qLi4Fl=@3?=Duwa`dM2VcYVkR zc)ojq?KA@Mf)?l(2HQg1&i`n_M%dZeV`CIPd3usq?0EnV8Sp@oN=i=6N8J#=Osa_7 zZ=>9FHvMia2|;7mGU5iU-RbKiXp# zXc`WFk>!uipVnzodURPBi z@&JAyXFUvs3-voksHEf=#48HyE+r*J1u?+`Wdf9lH*eiH*49d7ezsbj(uN)HI(s6% z8w6(OpT8PnV<)6Q;sTcKC(zE%&k4XZ)#MZT?F%pK^X+H1s}bNcXlQQ!w{{%T+>8l$ z)`n)Dwe918;ATv~A>{;+IZG8x0z<8cfiV7mfm>Ku@u^V1rI~#xVbIC64*6AKq4W*6oul-&AqS&kU!X9 z99OLxj~E~b-Mb2uh%J+8W#t(_g3FqiFqxRBD638@>gvh@i^J8Gr;^+4v#FU`I2c}l zw?Ix#Q(K1!lwRNbJc$}E9GGIk#?iI)brxl>tx(bNMPm&p^zqCf@d1vEdvQxE=Urg$ z;NUPa_jw*VYNmkbyJ>!ahs2I8%)joXMz*mj1rFaabL-05%HH0YzeHZL@FLMbNhzG& zgZg^g+Ft3jo~=3_IN4m@=cCv}gS{CgG6&IMDRw2;xXPKf1m}LSvaXoKi~Fu=Gr5yx zfrj?KtYxbHyTx?yz%(dL1#JFrvbBI|5_rv)|F`pO<^`7c*svUNSJ4OTW`}`@$%&SU H===W< iced_native [style=dashed]; + iced_core -> iced_web [style=dashed]; + iced_native -> iced_wgpu; + iced_native -> iced_winit; + + iced_winit -> iced; + iced_wgpu -> iced; + iced_web -> iced; + + iced -> "cross-platform application"; + + iced_core [style=dashed, fontcolor=black]; + iced [width=1, height=0.6, style="filled", fontcolor=white, color="#474973"]; + + + "cross-platform application" [shape=box3d, style="solid", width=2.8, height=0.6, fontcolor="#474973"]; +} diff --git a/docs/graphs/ecosystem.png b/docs/graphs/ecosystem.png new file mode 100644 index 0000000000000000000000000000000000000000..647c22ab142dfa33d86d35471a05041f8310e2c2 GIT binary patch literal 51911 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

    X>FFdr}{AaAT7LY>2g0W*i-cGXzU zrg)r4@bSU-4P^f1;JwFi?DdQyU%AH#$!3t)bu9|8EK(HTffoWU1%CBo_&)hkadC0c z)6;`gz4xN0M^a_Q_duh`<+xnG(}8#XCyza_$R4m)umAnBac?XGU}RpsdX8vk4i1iG)H2i4!+8C=-O0zsIa4e`(EGkAB&0V&=ss_B+lujMBguLonXk6F zdH$#z#TITd&j2SA9~%n*fg^9SdU1Go_yVx5+w0S$#6$pLU%{CxpCJZcU*Djhpz`u^ zLfOf|6{eP}mCOi1GZT|5Ks=}gSyKPWV~6-WGCEo72EPW&eFG*C$t!L6J`F0f7WKfuR%Dq4xH6 zfr}}9=?baQDrw4_LGSxNPVyqi|JKd`tX*y4wh(alXWOH@J3B84G0tMLva*1)V-CxL zg)MqsYT4SdgeahJn85KTvodW=NC@)iuPrAyJrzO3hmD10(AAc9$;!$K_zgf5SRaHm z8}%oG=n@l?7x3oaz;JIa53Q}NT266h0HyHl+c)4v3Fv9Jn!zQ2A_A$>yq(_+SW*yS zUy_Uu`N2_R+ZAxPG{FrbkAgF(gA=)|Q)+8#e`S2pE+{Qc<+9fH^t{_w)J~SYyqL8n z;4UCVhSQ-4B34#bfQ#EFo*_gP%N-5FV>1Ho0wg@o!cp9$$)coF_<6|5S4-YvVqn-9 zqWm*^gg=*y-rl`M-||K59318<45jSsSOxhI(Gzo2i#~yCZ8w93;RTn{*87If8TkJy z8O)G8Wm;9$New4v45TOU7^q?04CseXK`3sS`T5(x2i*cYp{1pbSAaQFdw|#sTnavY zP5N_ieA*yo_L~Fag{saAzsFeUby_@DJHk>@Qb0Y&QzUnkh{w(VB$BzZ$z zEKE?En@7{cn8g%`P^wa|(PkHjHT9>HWob_w>MK;sr=%Tl3K4fl9-y$z9%H8EjH^jD}s#v;rrWTiFf1C!a*xnc!8O!e~rbLnTB6|)3s(iqw` zyN_ssmohT-a0E+@o{*G~l=R%+=RYWB(s*4px#vhs4Q5K+z=l?lD5{CtVhh00fO z$0DMjkyMoaZe-|9exbRk$q!~BF3#$j8p)3Z;e31I3Rvk##k)6DRPE_VGFD!cyAFw! z#x)KOd2@5nfIw+S8;7dO>WW$%wg*C@q688!(;I#YW{mFcZm{@<($b+HGD-cuwNK1C z6Iz)ojg4_mjQ@bR+O&c$VjlXy)$s7biau7Uwi&wS$HRp;ZI<>i^?1<&xu z^vN|s&J5fPU)o^=Rb^z9R1}mK6r^WlwB+REm$Y1O>;?Wwcesl@IMbGKlrwy$({wnq__Z` zf$=8Q+hkgX`WzKHk2^}(wH#UB?Z>Kvj%Hy@J;Ja;EYSuE9KG_c`T60|(c#YC>E7At z-cbo^_7QbCfCrfKs;awRgcJk^7xeV(fZ_)o-435~dfl##2{}calppjsS@L#&^~m~p zw7kj2^1;%ZU?yi|B&0ec~`ei`@zMWm~$q6mU34^5y3@b{UOJ#G5OPLDj zTLtyjJczyDX!SErf6vUUuB{D;sFhk`j!1hWhm5T6%7k!;_Xskirlh3t?z5q*tCpIY zrPn)AL&HBh5!EHtv?8wpGaT55AH+UsXgs-Uyt!#~b>nt(;dXQ5EypK9&sNk@R{kje zDIrG7?auA9d12_ZmwmPrj(TxGFHswj8#Q!G);oifGxkrQI~v*rzTn*K;ABj@?^6&@ zbbZoI8;XiJ$t$_(8qZ+o858ojU5Tfnt}epfDT+&Ch@C+xo2k0Wq9#d-4vC(G4N)2_!U5F<(}SsmX)qM$t~i-k$Fr z*;pwx^zJ%c_cQ5Bs5mM~iYn_2*n*g*+Vm?Y{GO{sv z!LaNZhCkHt-U9~6!0kz7@R?RC3$RKdK*oKG$KrLAbomso<2`0h25^@C@Yq;lq>BJ4 zsQ_PYXpX5zB<}M&RVOsG&Ta*A!+Yx}jmsrOH*-ah&q(?k&kUjDdH3{mRDAuLh< z0GM<#hM?<-codKN^nHe+5+qyLEn$l(1BcJqb2S5=O{VB&8DaFBf*@t)a`vZ(Y9hc`b)Fy6x zDe!TP+e?EwPGa6J%*7&y;VpFekBI6!zY~MIWQs9a-krxQ7qsiyuB|S2O01<`!cC+R@EQ- zJQ`w8j(72#y}*o#Ilscf`w`zE@5~h_Mw~#vLgQc~_w`4d>izg+>ucoPKEJ%V4l^}W3~b#&j!e@ZTPRZb+k7~LBqbdTk{ z=fYb52jf&13yc66d3jWh@h6A*p1@wf?hDAB*aOWMvHl^b0v73LZkU_X{@qtoudb8e z25;}W;*1Ppk%4C~a#knLOfyq-TIc#gCyTX?svi4zeYfMd3}Mp8C(t;?W5rVN8~VF2 zu+xsC5=tx(x^Ds#zRmwp+OklpVm^iX#O?Q=KgauAB(~1Zb> z6fvJ`Z%IQwNLO?WUs1B;kAI>IDQng9Lm7 zwP^4A-QBr4yAf-(;jQ66EmLQ=MG5+_&7)dQ_l@}RLL+xKZv2xh=eBh_ZFk4M5?W(D#~k+YVOHU2dXwwD zJnk1M2d$4x5YEU@9jd|)hPLnTQY{xfPX{$n6W#+Q$XS?m>rHc2)dXZd*vu@+Yu+m( zFR!3g&R`7)A#QJe`8}GD`;ikOW!7@D_^xKPj;~(xx_tu|D&D#0hZIr*@7t#8 zkBL!geGZUTK=ne!Z}aKQsyqJr@ws1c2S;L3F`2W^3?QcR8S}@1^A3D=m$SZ!(jW(ku!pXq~iMe{gG_?yAQrTLY^~u;i&!HS9Gwj`PNaWh(|{_3PwWG z_yk9)K%9!sqMe-WMc*-I++mUssL@yVI>C>&25<5~AjxX{>q!)w2HVvyz_5u3oYU>~ zK-qY~^=5eK4bxq03|c?0Bd_5o&JAGxz4SlDKM<4_msj1I2l)g}_POpRlki1w*gKZr zYzfKn@y;-}F0^vfwx)eCcC(i2y*{OS{~`2hdz0LLGu+v+eAK$t+jgw?0jB;yN(FA> zwi*?QZtdy2-kYm*VQi64zVr!6W898V~^EZ?#I$ zEYUn(YJ}1ATVyT59D5a&kk5h?xDMG-Mek0t5qSrto889u!czBT#hVuHxZMMCx>K5S z7u`;m8E2z#9|>D)H7BYnbZ@+ILJd6q29ZmggZE9Yj_3?=VtkYiV@#DEk!Ah4^s(p()BPr%dD6Wn}fL^|5A|^0B9>t8~C=omIu;{lNiGE zNbkj_AY^Q5*yW8Jf3uUmzCNAOUW|8fXfR<^s?PB#lbG3V;@8Il@bO+(?gl9mpS36nh!n+2#w8bndC3QfES}23KJE$%4ZM4)&tgQj$x5xq47}K&`{*v=XI*ogT5X{N2i)(PKMh-kuWFw%F;q} zul+Cv08W8g@qs%DcGB8nWgdP0rVMPbDyK)B2Tx;G7Ny{Q&wv)ybJENYPnk>I-1%-` zb?jWV%@4nruAjaxE*?4C^-sN91QG{>zevFuV`efSlkj@?ROz*0jNT~ z=E(pqaD1{wN{R^-jP6%0cEIe({P?eyq;tH!W#n;~Z(u-cJiJ|ieq?23=jYFg($+i6 z%LAoLER1M0|G=kPwbHmknzTxhLTnTrU9VdFBG-hXbKM(87ao@47SSlNUaJ~!{_twB zog6p6&dH(djl0udrha-hL?2Bj&pHw;>raW_^z?oU3j^R- zef)^BMtoR>E#a>2_IZ<`_0B6Coz=)_`+;r;iy(N-rbidm+#H{?JtV(4 z(40se47h!I?B`EzH7<_!aoFeQ=71aLl^Zain3;XeTK_#piH+?W&=nEcCPXV;015JW zE9|Bb6Z-R~MeH2Ocs=eY;ogd#hPJ}y_VRlq8v4Aw5xfWO@d-{<-$%6#fFx$GvoDDCgSmHgTO};V>FeV-*BpLOJa(&8r)}Nu;yOJRFPBo)%PxJtg(a$jePtcj=w? zhaymZ@I!~r%ou!#$L(HoZis@#WXJH3X5CqNEA?e-*1cJYEoFVk2AXZZ$cdJ^=+dmU zx<)=f|LatNBwkxZagncJ(?o}p7xB?%2}pn`7oZ9*j?HNf0S~8zXJn!7B)feegt@_5Qzk~oCs8cZB?!Lwbj+{vD#B( z4w;RNr$TAU1&a@tOto{(#r;D(CBnL)y9rwwMK9%wci#AYJ8-($uHuDuZIq&ojm>4a z+nJg&kow_mI8BN;cCORaOT|e)C)rMo(>Pe)cHq8vOiIC4=$9`%)386)71bh{4Riaz zqSO-Sj33v_qO9^BDc#EJ3n*pyXqT6vpSVzR4fgAcS3AnY#zLvY%yZbnQiR*MI5?tu zWAMXj($oFX^++*tau)I>>`l@ zamaI0b{Q(Io2FBGv}6ZV~0+VcUOhz^OWie7IIEud)u0^+}K(LAooU%t6$dbowH z_W{}8`YR|l!;TwKanXAiOT4S=x@7iDdpjfhSgk!CpGKj3m}KT~P7XFV?+m>rw*>7+ z1B1COj=?i@?~Qy>EKwHED!faF+yvyOT8h!#(P9`-R<@8sjsfEIySupt3n(B?n_s_r z)pL;etlSm{>%~XqH6%|f1HIp#uzXRVwpUYo`}*~{A3E@#TQ+2*YuPxeTa$b2EX#sd zZK0`NQ)z>K;Y6)jijJYU%Y~`fgMFcww=hF1tJ*GAx1fanx3qSDk93)gq)fgI20nOw zzn%_#Q2i<^CB=7LX?&18%V>WjkK>gr- zH!f9rd-_YeCD|Q1%FY(!V~a1~hD%plC7lz>_x-)X81kT)hFVa3n4ln|9KRO{>Dtt> zfl)6AY>Ekb|LI4@F4r%QY;Mn1tCLz?eBla4;9dZigbAG})!5l{$XqbFvN<$P(H{HS z7T?r4-F5PR+oUzavF>_i1_0(Oa; z`x77EbdNz#rZ>shJRlRFK<@!31IPn+4omebfcDk8!)mPfHda?LI7h5+YPgVJ(DwJa zfQ`Tsy=%C8uRaqNP`R;D^Wbr|%V#anV6puJP$98DR5ZT9!>nKAp*MGt;`|nK?fIlW zDd|E>ONr23U3ybfxOE4RyE8DAj^=94=cd*l>y7C2`k1iK^mb2!qsmB=KRn3qn(0w{ zSk=*?0**nkP^*HP+TdyutG8jN9EHxcd(Josb@0iB-N}i=PDS#~0!X1Q>mTXbtR720 zCp9(ocV?KTB22cRfB&UuZ)D)>4jml0vvU?wePW`H+H{&wg>cv9gz=XOsUVze5$GL z_7-vhdWeXt>-yN3@wZw%WPUELJnk;s3kR}b8VNbt{?PS3i`fOn#cIBm(<|?K==zqf zC#-M0={A_rdcVXuF~MhZch&CBZMb958QI?m^aRCX{|*j@X*J4$LgssKmyPXqZS4Uq zPQ_1SI1o3v;)x<}FC|yeJ9(EZP${s!Kk?_o`UEoCX9Pz=OY&I9XAU#B?IHXr3S4TS zcyg~lPnoPDR>?A&`OD*I0duuu-ifw-st$S4+m?N1z%z-sY~Ds)^8|*~&SiO^ktQfDWjQJOhQ6}CT}9@GUs*8! z#_87J0!$yo6M+7SzAAK@QO_y+Jd{@ znaLkUp%EppCDoG;ai7zc6?CbwNZDNhbsA!gKhfC+YS>$B`kha#TpZs9ir{TBTj;)u ze%)O2`CPa=7>QJqakHO`*vYoW&^gRtOP@VK$a`hKf(+hWv}GU1wCQnn?1YV&?^_P| z$U!d8n|`rp@+w)X8nd@Og^TRBo@1|HYL4avw4Rg(9x&H)!t)4sz>FVy9@!fjBDDA5 zuj?8BV7cIZX*-zIA&Q0t3Vqg1_1Sxa@4hgjvq((=MZg9K9yayPW{e^r>f8a<8R%u1 zD_`xtWVL2{Nh=+)1Lu3S+*`#BLJPeeQZ-BF&e~i2{_gf|(t-AsW-zjhJTa04oMw+5 zEdrRW@1rylEvf#8mEL$54Esw%W_suFFf1EK1^3iL^wKY98v$|PuIZdQ0OuvQlaq>d z^D#4<#3j6O#^*j;J`eaUZ1=T{@UV|OzOOYIjemWSh!EtLgX>$RNI?DI`m9n5BpQAh zNP@y)1WL_Z@LXL-^Rubx!hACj+4wwC{>WvuXuATA>qaBzv+I|NSfWv;N`EGcQbwtE z8wjXk3iK~ilvr*Cfx=ta51%S0U}i!4c5mi}O6FyKtta3}e183i89$hMof_|woMT#5 zj6w|dR1}Gb_~2n}6&c`xY1A(Cfxam^Y8Uq(Qu16hvlufHkdYVcZ$Nbg`N zw+r?1+_gioN=Qi&0{&grsQiq&{1dzT#8i6-nWbg%RJgwkfC8;n zLQ!7x!n@QWIMU~AalOgBZ!Ok))Jgi+w&I z-b=6H?5=x`rmoSr;POn5g1{X_jZ?>v(3fCxeZ#{6`!>&>g?&i+@x%3YZM~}MaWVGC zbWf2~G__Ai85zGf29uXICocu=Z1W*LhM-RY$V?E?i1}SlvY_c{)MjIO3ZP+0t-?S} zDSAiI?jn1QK0#XIzKGM9Z{eNnL#l;Q2LaD->)WfP_DzE@&kl;mpm zkDEEh-{v7wLx(|@la!PsgDb>OYql0Y{0CNwf+L3q(G?RFZ3hw^uxCJq3FK$L*6paI z{U@-{>Ae?qqXEvvYF5C=O<8nLr~Fx}K$_fc-|_Q)Fzg=zo9z z&M*!fH>vXXkEwTE7Zv>oND9Ei%?POyEzAEvMXQzN^**qx*OZeJ)6r2CBAILxMiUa^ z8hcp|dW&+hUmI-x*jW4VI!>95i&<2`&xm&d#VdIh+aKy>6X~p*CMN!E5TIKnB}^wM z97*53FC3?Q`?me>-@V1w)`kYaq%18l12GiPo`E)%BbTNY0iaW&VJM`bFQTO_fIk=t zKhloFR1^Aihc1_m7Ifpn>5Yu|nV5`)bX38ZbaZg6nT%@$?UqoL3&L-|1OrCs=g*O* z+mnqAr#q>y`GWbU?#nhjRwWlevJ4vDe0_EguU&7g%SyhG&&(_l)P3;rDNw?Sfj>S+`5pj^4d_rQR&lp?r3};G<&jVr z+m{_!x7*(@+9N6=+G|Heow&HrbLXQ&L^L-x<|Dt&@?FR@Z2&S0_@gGjrlubLoRi;> zBatpYuN=D~pQV%Z{h{YCHFTabs;s8Q#bPe;27Tc;ZE>}X$IS%D83)%lkt)6miJ zxg6MayKum`cH3TYHDp615gk} zam9sGy<+~(ZA|mSkqf1fkq0tzI%oqQ8PTN24r<4ajonaD*-(ky&@)FiFYlU}`HhQD zmZ}xG z@MESANn5K}AJHbwJfN^~uO4 zLHJEPi~a`(hqDaPkiU8?v%}})`O4|a1u>G<(ERV+KP0moMCRXNlEu*S#(nmhs@nF1 zc1bZc_ukTCJU=shPxeR@DZ;vE^Axn@_&o;tUN+F!!H6*AZsr&WMBBX|?dlaNKX$Ft z7ONC07x1yGL%)GDjJ7|vYD1lV)Uov5*T-8xV7(nD)oZz3b)xk1QGU_?v;f`;)N3Gd zc>Ks4-FZq3oVWSx(QQWUCR`kx%bUa2&CN|rsD-8F=3pvNB>uiW-2@)9k|=HX`Sa(b zeg;NH6+}qFgZav|=H|OV4R>|rQlroEgk2P&O)F2i0CYLt0Zkil-zX?3e(2WLhjH3& z+dvE#@$K7^U3ma?n{LPEDLEM#1}5g~7yiP`SLW;>g0~g3(8W0tYhn`;!aKj1K9#k# zeeH$#Xt5dfaf2Kdc;OtGqz)(gJ5(U1xRn9-jv^OBCFHiby|S&>lvMytf2(moi0rVf z2>L~9G7%uyeLs0l&nI<+fH+cKJaniN34%nLRbS7;$jC@ZNhv6(ovmog{S)YHKZuDj zY1Dv~4%^>)MtjEc<=4Byab9ljtD76piW;>42}T5plmQ?`>HvC5;He$7yJHeOx~8WS z_O~Ey)Ib6a!XPoPgE(2#%Y)CkKw{c9q^zwCX5G3=MZ(I)2FS>P-~Pyltq)#^h=}mf zWwPmago5_reW26+r=*U(2R%EwNHjDwz{8Yz8M^xlGdmy50hb3pWpQNWJN#BIEX^SU zsX`He8+^upXAlacbAZQcUs>;s152hmU11pSfdpwFXJ#Jy^^25+C2C(7Mub7`^A5;q z=_o0U4i}n%%o6a+8nZwmem2^30b#CFz~V3+$pV%OngWrLk!${J!y81Ny}nx;LqsK{ zrl+Uyo0^?vyB-2Vm61W**%5`bHRR>xeMLm0q@o)9$rBA$=oPrjFX8{sZ*Om319d3y zMf$8CAX}IqEAoS@dqJ&HH%poJBj`Q0u-HoxaNpV8eNGB=e_er)G$FshK#fnIfC#^g zNc;f=1m>eHoLz2*EqM(M0#XXFFVn`U|7#B)e$=*Ppr^+QS{DEQeP69E@a={M;5l68 zHM{HW(Oi8!J+Fs5=X_;Jr01xpAe?H~+ZhTALuTREfnJN(BqZMdiLEP$q`ZNuUw4lJ z<2jfsP(_cMReP0(gQab3XaF5Ake8&Wi*r!gNd1UI-NoX8vutWH%L;B;NhvwcIbnjnn8+IxvTj^2Sa0e0X+DnpGG5D)-Y zMtB8+y?f?oyV_wnT><)1&B{2}$ypxjMhlX_Kwp{xE8YnygxOA7&jI+zw^FfXL{hCl zvDfza&gF*jdI$lHe`#&)uag4=Qp;gA#|=e-XBP-sC!}{*tZO2mg9=0ipvMJ!R!Jld zpX<=!*)=-b13LIv+&XT;fvw?8B}K(5b%wZJL%yFafq#+GTIU!^)XVk!D=XQ+l0nXf zKtmkpkBa~uuAsjIK>S58xuMQTG_af<4s4RLvLAp$sr3gl2|%J`k(7{d1)TxY;n|14 zT9R6BE<^Xz3TQHcvq;BBK43mEZ6|dk%tDPGGg5-x65uQ(#Xi!h%4LI1O6U zK{K5LFHzv1&wR0hpet*M_zlTp$QwUDfB$4&$AY}PuEoVvV1&R8`!p)i#&m`gfwn*$ zO-;g4Z%UrQVIqJ@TC-O=o#Z?(ci!8>FGJ`&x}t^iNg&9-c`f5aq;nW;0pqP_M3~H9UTfb`3AOI3L@?Af9?Y` zcH;n1v5`@1N(yNAhqr^Y=>YL6xJ`}qqPC`{^uOC2)NiVkXyT!xw>g=BuR-|x_b&xC zHR$kaTl$fl+-$wrGT-R@&kqBgGQ1}Mc!91i@fr~X2(#kn&!1awPo(tqGeO()Y&pCm zf!P5F*2eM8X|<>i^3 z_CD3bim2RX{ zK;TX8_q{j9yW@;;?{ysa*?X_K)|zY1-~3Ox2osaiiVAT5>b-u57Es-8yN`j<-`CgV z<&!u?39A?o#}sd_c57~#u7aOrrNzQ>DJp@97uj< z?O-2aIkqX=L`V%#5DPDgi=KWJWDH#D(+1WCQh3AlR*V_(Vd+74gVZV1`Fgx6Qpbk^ z?PZYcsVqV|kJc}@3O)y)JsONZLh`FYT`xX{((`ildii|LWiQjLTw9^->G)h{)PW4a zN6#IXoCI<^BQm-DhekK5AJg2I`f=RE^x2$;h78lPb8YI~k6Lc>D_K1}t>Mnu-sR8a@!SwM0tOD&hN zr@y;%pjVLRn-SwYsn~1kzjeFh0z!x0o7=|uw$s8keN)RU(!qBEGA4(A4~#srNNS8D zzb_3{M5OMkeZ=M3y(=yl{wG(1UzKb-R@}mL4ohzG9{AKYH32Wwf8yonMC?^bKpg3>Yz&URIr5NR;+-`DPI^@b(=3!O>Wez|xX*qy3!K0Q_Ub%( zci7n_9>#(?@Xd+?UtY_$I~O2-kI&1J>8Pc?M!kn?T#ag`$cDG97#VL_Ea&4-W@NpbC%gmQu9tcO*2b# zVvyxU6J@6Zf{LZGv6^M=`Y-@p19Ju4x}siQf-%U9Zh*#Hb~#LY-n-YM>_2^yjMv7&{?(-D-RtpU|FL(>cF{&(b{B0#O+72?lQXQU zK&OFm&( zX7Yjc2x@zSF3Gme5KIbN)BK5od9nPK?6bjQ;iV8%)H5Ob{hId|cDJYlR4Av4-}f3k zFC1FGe2W@`i@R>_l&|i#y;HqdmGYEU+D2&STpC{%iUft4--+2)bHw)GGq82tS17@j z^85D_Ayn|bH;V0)7t+gF`fe!F zIq)y2B73clm(xj>Up2x*C9!RvoSWF z3ea-(={#BUaCZkOuZk$;3V(gZ2sDM#C0y=v-;myxoKM+1-`G>b52~@HVy&EA%naA( zW1f4IGO>Fdte-4h@c*%6;zU2(yN5=M|A0s+FMtVcoiggZe7=z1_7G|H6E|~o@#R;j zV79d^5%Z!XRCvKVqCcJ7s@$upM>{r*41w{gS2r?xZd)98_(xCWK5dY?*CW1rPn@i` z@R;Q9pKkw+O$sET4m6$2^_egrkd^tk8RAi~Y9Z3*{JZZrm)-9^u;1i1MsDdK+NO%^ zjTchqq2I5Jgs@${nrE~~8scd<$044C_O5vSy%S50v)<+uXufXN7iU@hM7Ft&iYqAf|JIj25ClIw}U8wbeV0!ZYyC6ZVT|>VV zrzcFd1w$LRsBw@(BH`)Zs#!I+=2{D0Ud}Y|u=6dy>SDyVQ`KF*G$6#00>d&1R+r!+ z`&dl)uwXR^)%GhxfVYXhoLuO*N`=2DQ^YcwrJ)&pO>SMda&F1}mn4zXJBqmK$%dk$ z6^a$A#ptJ`XMeByHNIY#sTWUQ)xdO|Vl4T{!YqrpXV{D)6M>0IiP9G9Lzpk`#!l^b z@Iw{jG~~BqsbvrMIuBY9E-`NuV??lQCud7GonQGn>kG?VupXWdnEA+j6* zWSA0r@VV*@*>vPB+pizUwD9xxw)YRyf0FslqQRK`{i$N;QtKy!uzdURsUeGyw#p1 z960TB_GK=>Yi7cHuB5RsQh#S5ur`lkqtdto|58wzee-Y$J$dKRy70{l<2Fur581P z{#2r^$!@o~St{hLv9w@ha8RX=BSqfC{hfn_^NJo{R+ftSt7cql(dnvKy6i*s*`73O zOH(^jD>JK}Z1t-#!UtW>N=y_O9|as|MKDgcj?&s$d*9A^TdL;EYq8_%Oz>$>@M(^} zE3uaubEEN8L7fhw)l@egVN6JJYT)B{?1B)4EswsXWj?{c)0`bb*|W#Z8wRgUlkU#7 z&!#xqchqsM>7^X%kKqYOJ$Fsk4MgW)cjU6#Lo z?QK8rD`!oUR-J~-$Uj3d4#0;N}FYmwoOVXtrLK|8q z36glUk7c$_HMQ%W{L(-DP|~f;ZDlQ*zs(MpF)wXJpafI5Jer8;I(GF^W2#j=Sv*Lw z3XAxSxK+!Pvc=L?JLF$@xRp0wrS?`?84odA>y`Vi+H-TU1Cov%o>5tdP?k? z0{1XAG(9#n-8qbJ6-rg}kFQ42ove$wg!CYs`TjfRaQV_PR=V0g-ou-ct8Bpx#1n zb13U`DDOkL>rI%+}tFQ1>YX= z9xwLjf6{ydcbIA}m93h@!k7LtZ%Ei%_?|bd(lnM_pC3v5riJ6ehS}QM0=(y;uRf?! zT6xsRbzxH9$)2;OZLx%4?#0VlPTgIZx@#$T*K*L~SLlL3?4PXUK`5!tS05W6$E6+h zu7xQgK&-T(2|m%(_^NujT$BIj(63Fi>r~g(w%Ec?+C-3-nmL>-#tSLD7_*Bn0upOi_cF*xS^? zt`&378S{uBDK(i&dUJOQwb)+uz8E`KpT{~<=D(bt4`rft9)J0TTdQTcPV{@e=S@`94^ge=?}~P*1e_go8uzGF-ZZa>lRia9G?A%Mf6|Ni zPHns(Nzt9$8fY!3RXa_IKs&!J%zTxF&Hl^-)$JEu69YeXyGo#Z_8rgr|C-Z=U%p$) zw2*uzJ&2pyFN+B4=p6joT8TzW$sbbm{gS0mf4~b1oibj2V|Q(OZh)8eBORX@M#iHz zt1M?tF*sM7k7{32w{i3hjC8{pu`z4Q$`H*$h{{QTEKv33OYW&RHgB@=Wux2)a%paZ zk(qqZb6i_monJA#reodRSwdfrK@#dT3k#KCUjzeXtMp5Y_1Sf9kU>3M zd_5b)7?IT>C*0?mriOD%YzMPFgrlbqp~|Rh^V%mX`lX@zY5>C&Q~bNF(AU%?*z;m6 zzdtV3dcUU5Rju5kik6^Un?$vJYU^bYg8W0KNj`vpmUZvgDUE0>v-`DhE>6x+ks9*F z@u91b$CC47Ue_l`*YlOhaZiH11%62(f5I{0vVjxL#TVhUXfJeHj&l}sJI#C>i*+H@w z2njTybmiQkh};gjxv!1iU$JRC2~y*D7qt@s0-@ww7INz9v24m$TsKM%m8Qt}vguXx zsVr$?=mqBM0Y&&d5zfedqGWEaSIjyU=oBJ)V(7YH|Ga)}bbV}pnOS@gGM%lLD6tT3MW$f>K;U%OLfhO6orF&EV z4zd85!XC;xgh-<1t)~5%1l>zjKQQmCkLBS|3#AvVLo^i<*n=-k^H4#?0P=J7t{cM; zL2ht0QB>>$O*0T#VXzEe@rL|BG=(S$CFRF$j$aGgR^pr`Un$t`preMgaYhl)ULJG0 zRB~pDaN&13r+?1booPG;H5-su{Jg_<%lk)Qo41=;d$vZMX;7`0nW{g#zvCNa_I(JE z-@Ee`!qV$UOy_Hhi&YS`ggEn$A3xa01?_*UKS#HJ{`6#J8UT-w( z75`#vH#~bRkv>w$z1A0kNkf6mM_uegIG-NZA0QNQz= z?CkF&BQM9x^dO1z9E+WaNyz)iMp-!uGz)&j&_c?7&^;66??C@&d39A^S64BGr?^zb z#ph%zrgsHGh%_ktxXK{3WMtIrdv=h}Z~OK7su6VVcs!d9g?3YnRzznTtgV!YuGz{Ney1;Lc>lf4zr8E(b^BP*I{|TS zZ0tck%8$>!zPdQsJ~(iJ1kEFj0(3Hg%I$^!$?iUd&^iKxh{FUP{(1H5Nrp#{K(-Bw zm}@y+$9O|MFpXjobz0YgqSeAIf!1n2&4_=K2b^GdFltD_gEMXc$XlFl=_$6 z!rB^SGpPgrSCL`CiGWpqG@m`Ylp_!(U7+bDR%U(f$o*ScM!I!f{a5Z=!NCK!MA$CM z&&-Q8{f?|jIL%}r=L0&W&-{+HjypjG<|pV3<>kpV2Pqf&gNh#r$Gqq@uY3OM1SBAO zR<0u$C_$nSGHg({G-jZjDb@^WNhrxUPJpc7&P*dAwWgk)t)=CdZ6M^A>L7aVx)Iy3 zY3JZjQ&kl!pTEDqAAo{E!#6%Qrl+r8HMO<5X-6Lyh7GZOO7T}ss*IYMOd=w`$Hz}V z@&x8-GH6ao{pjf_X=w1i2{Q7(&^%@R#<3NrA~scHi?_d!z-k}{wrts(aFgm}Ma~_v zkZ)kMi9&JW_`99$`SQB8ML_;!JGZ!Z2mJ%aBOUBlND^8kllD|;$x<_ z0x$-Uf;l)m95Vnr&r`Q`ad9ba?CU zu)N0MPq5SWml%cU{(5s5OJf@c4eaug6$}`8ixY(t~_~yu7@-`-#V#A1Is5`Rq1>QI&XHzz~a_uhS|h^on2orRC>8 z1qMN%Jvo7#)=ALVhhM$moj`wV>b`taBeLDnJp(_m_e%=$3(i z=Tj-ER>9!>v|uwDZV$tIOfv+R7#SG>ftJ;Q%x9{q*q|M~Bg+&o4{|6enVI5F z^WPK_*>I+GKuWfT!?x)8qK>BK@2~!pm%{ttVP=Z@SiN{LYs;Sn)&&UkHcZuMN^#KR zK@K*B!MoAuZ4?IWwKJHXl)ihnq-+-3!(jVpa9Me``u!9;>??{yW`sEjW?rU_?WIV% zQ(DcV7vdLN)v)-V0=(O}+w#E5up#5BC+&taa=ddxH4?-i5AeBXccMTd~39`9H zExv*R0-*B?jLb^U0}#=I7X@O;F*cW12fgh1>KmmWTfEl?sTVb2xxvE3q!4y5Tipkh z8n5l?+KG?PbQ}f!&Uu2QAT0&|aRlmKj~yby!l>Qp#Y6z3(bi4?0c)>A`sglc#N9i0 zB8WI?7#WLJ;@B2I^2->0egC?$l7pt4pQ+rQn%k^!D9OT`*+Zr1qEmJ(1dw-d=<9DU6^w-ul_+&9TIiF z8$EVG7)kfD1F;mOtE3@ER#8#G|Kc|XC#U3pw?x9r#KBQnQX=2x35D?G<>h#IcrZ?o zs>G3kEmf;n(^u^JdjKjN3}h5o_hon>5uK1;@T=BttOWMxgunjaT!5l2Og^vUO|6{t z;s+i#|D3`v1E9~s0<)M0-GEud$N|oeiZ9TcRV1Ee9R`zOrrLhzr!HlR?OkC|$&f+d zM9bTO*AW>SYQkZx$mInxOTZ)C!=uO6!uj6QV+V3k0#VNz-7%;GmjpQPf19qgH^{I9 zc^xCPM^sebrlxMv;q9zi*{Z;qIsbT14VeoC7}CBzI`>AmKLqC&kMO8vYS5dH#|>n( zWSpFw5D0{gPZ$Uy*8Y26bOzyL{gz1E1Wt^L$*9z>kklavuXSFMCF>e1pO9HB%?uT~k*)gtkAsfx4)thN+v|la zRYv!5->O_Bp%BxV-86Gm*I6@}9fw!2p~vg>K+lz)c=x%+a2c9FRX;ybsnCHnkLmWAM>!k~;GTmRbLh@puuKmp zr+JrppzA=)O3A^2C2EN^lO&8SVROOOXk~pJbcqyv@1X>B@MOfBN-(no4EWLPzjSe# z1!4WqnGbO(FVinl(972+0l)z$XrJWrV5Ju~%;NlLBOw9gVX(e>9a@>2(+;Kjz)Csu z(>37n4m)Xd|2TJvTBk>T1N1*1Qqc2Lkf*Wm#@6?fJzUMdsSO zL-{G|!7v0-)qQIXVP&4rQHWjC39H(!<0! z!8Z)4{RH71ki5G6U12SO4%Z*d9*zq(7kbBmBr-c5!WW}|eP7AQv_rZb)SqF$mCjZz zP)>h`og(UNBHteN|ADOc2mNr z)F2}ait?d_5{q~7qL#>AiC|;S8M46*1F|NGF}@+PZ2{J|#h!R(*a>jag8qz`(|!hc z<`A|GSV)@P{%Dt)J^}$S$c76F3ew6(tZ%MpGCde_3;W9z_S6#Hl!T4!2}Wcmhrfu8 zjyYa({qE|jwvkbKW~NFXN*>5M=cyM%VjWbhxN^XZmNMSL#o*)t7Zc6o@P_rm0~`Vn z*aIc6V021!zWolDxUi&!gcnnp`b;LCVu0biQU}J zPW}iTR#~UsZK-TXC8^K6^!oRAACY~tb!uyW{;gE3xw^7~b8Y=eS2`G75>cCSRR~BC z=^LEW7A*09*wj3J=dNZ;H=&n@gx^IcLv2lfZal?Ml(VgJz*aH&LXZY(%whxo5J#ft*8$1+?S_1b5 zw4!C$b6~mpG_`efid?Y0$H#bT`^Gm>cEog}(ARzdBaZ;`!V-KxSDkP{> zPqBD;dC37&fRolVUm?3u!-w9LS=b6-Bc)+Vf?)&kx}qnaYHQ3o-sR-bEM9MHY_tn3 z!=GZaV}=&a0@hOcqze($3X?U4D}{>tYkF%1KiYvCF~Lq(*7eApKU*feOf=t`9-~@t zQ&?-tye^HyAifowmHnwcry-+EjcK>(5Hq^#0(8(uYhyrDZ$1DEEER;${rvoJq+l}> zzdpl~vH_HAlP9rv1zy+5{=S-y6cA=>P6E*UV7kGrROn*X`wtXAM^wl@jwk~0_Q$Ll zq1aMDxs{cc!mcu5`!c4yoKm>O`AGCbjQ#70`HasV z0b;k&a@jl+j0ew@h49G9n}NnTI5?=Rth|Mcf=(_pIx{26$L9`CPNv@p@h7ZcQ+WA@ zCnqglhXvu`3Kka2@2RE9$jQMOgR1JltSln=N0^wHAc4mnY?}G%ytuj94^mp`={H>-!V3OsLnjCk z5fPX%T%LRL-@bi=4SR5K5QJtw{B;1iM%W>MJOO|&f zgTF?o<=#^I-MpG8PBsvoe12qL%ClL1rHSDUQJ0iviVKFY+z^0E=jo(XJp z_CNU<7z$zG9N9RUF!t$(^KN@6&h0lQa597$&B`Er>3_X@4ShZE1aWb3xy;%TsHh<~ zf}B8z$e>a!Y62c~KiCu)8ZGNN*jn_QAXTfwH%@a0R5 z@JI-o36Zz_W+oD=U1}=@+vgb5mZgxpsn?=c4Kt0B<%O*Qoi@#D4D9%z5LceJ0S z7?EH1`SXkVeX!b_NGo_yNgqDY#dW_82!LZKoFs-5>Kv@C*8&3rZ}u=);ovOM9$pR5 z8tD5~t`xrlYzKxIs2d#neAZ_z|3KSL7tRQ_wvRZCId=QMmGYxu%T9-%-+gN8C}r`hJfgSvmJ1x^n?Bx!1XfI8A$M zo7H-Qh>M$BE`(0K^h}>1RE|U4LB)` z&f!U*Oe`yl@+mMm1!NE3-o5`WJp9*B0);Z$Nf*8Xuz~T3i8^lzJj5M1AEEJkXt_6wh_yoj~D=($}2A5V*}7I0~j z&m>$IY{nAn5{J9=Z4uPWFK1(Qo~Se8n73uKRw!$(s$2 zYq&V|?%b9{4U5L+iqb(hijOh4t))h3s>mvP{)ar_eVV!D&p&emT8=t&k9BpE*m^#I zKMXw|UY$%?gM&!S{~}GjI3hA~1_A_9Hqej7dxv5aPlnU=#9QjQA0EU>MFsu2O^5mz zmy9_k$HxnHc8lLv9#xDF#M@MANke*MZ6_n)1fK8FTF zlp>yca5{mGCmP9$vLECvo)kXHd9%J)p0{yn2iHx`OpRf#=kOjpUcj1+2mW)hLD3ObPgL51n-H8$q$lX0X(7Z((@I>GVfmw(C zNu|Z~H>>>b--;|F&uyH@x}5*{Dw^qQ;HYfu`U{MS|A z=tjdi^#vqax#L3hvk335szKP0eRu6Gt4lQ9Qu;X2#_dm?gkP zA`r!a9ONb&WM_zFKX{n+UpiahO4qOd2OCan;#Cn zJZ+lUdh+ILk#j%h~!9-Zfi_VAED{TTJEfpmtQ2!s>9`vp@^j|B2nl7ftd{F~0 z_9bN0?w!1Rb79W@_&1}a%h_dKU!Zk8T7E2~Dzba~nETlnv5q}R#Rj7#3niZ=!!#9*N(@1bqe(fYL~@R0vuwQBZjZJI&y zMXQbNkb$MRs<*yIkkvd;G-;r1J6K$JLZc+#?{mb0YW3m{D{!%ZR@!h5mls%V%mf~V zs8l2SrUm#JK`L}`F8Ln%t^I1%Vok_2h85SJJ&w0{awp=AVuhUCPk6dNYa2w1yQ?<# zZ>aV$q#l-AY{1v$H5lnW{wLl#! zEWVZjYbdZlj8ug`RJTz;)h|#lh6P81>ppA0m!#OwTVg*A`Qo;+&Wq?j@d#=prLmP& z;Kh*N=P-ob3xP%}T3TisTA%5{EH(y!%3Lf)i_ed#>N(?Ipod79O`Y(O+{r5 zMP=vX0h-MBGYZ3-Q{y7z((iI&;2y~hzALaQuKdFFL^p$$CFB#sH*CfaJ&@^y52^E` z+dc~HIzIewBID1($C|R`Ha~9)sTrF-)_!GcYRlWFiq!y>)_}1H3kbX?4|PB4X)Vex zAyLzcWE6W8C-vQdrQa~U%!vGX+7_!VhfbcAeoGW!Ev<_^IaMh+RdzOHw^8nQIh)?3 z_tB`^L1c%#%#ghNE@nc)zpvqRoCX(4HB>RVwF4-?A3QiZ;z`M1 zZEoRE*C^hr>S=(_-#iwk_(c=*9UE&?>*p^V`}voge?yLJ*u=bH0PAjrn=?gm0CPzzV-7e9pBf4qJ-pfw7v=GkrA! zbv0&|;u6BJ?kEJ&J)nW`(LmO?8&k$UqL9PxX|d*m1Z~0uZ9K{BIs#+hYdFVs)*Fck;}CLTRdU8YryF@5<&X(^d3h(_15Oqmw5SBu@CZcv!1KMiCBGaFyT|l8*xL^`SvApu96NcJock07tVBK+ z|1bDd?_kxal5C-bw^v14r(TRp5D$m)*3mxSrSV;2mN;)>o>X9JAGmSFH@WDMB23;F6*Kz8aXE59FBhMito`i!|v!+GFDh8nfe0@bZj>x7Qvk z4N~2a+dtaS0KKO&)VJqWrlSP=Z;PK}kun9fE>(Ro1PE=pDwzy3uI+|Q!@~@3Gpm|H zM~Rd#{Bz7vFIEoM2J*E_By8ny`35h!JJ-o-Vjl2U0>HbIO zaT4oJ2^U9c8aimkB2X-PZiUHVIg|C zQX%`6J-PC&LF9hsq>>W-KviG$gecnEugM^Vz|3q9=@~FDC61}+PtMq1z8>ytKe3LU zEMGc}8YORB(%fceVt<@KAkIJ~7-XRC4N(@a&g z&@IR$5YBDbQV_GaxvDA=F#}1u*v0W!F2evD^Uv$EKea(#$*>baqmW4`Go=kg!6cJ& zrCzavBM0RsbrD&!%0#)t?*AUB2W zKkxOiTnT+y8r}WMXj*^=cRH>5>{(_;hM3JD6?~HmzL}Yx`^U%r>;4hOE6>wS$6w<1 z4zI^dp%uc>D4avJm>%HEX6YV!IJNr74;Z?NYrhmCN@;f)_?q`8@Y|u_4$k$kSSP@D>yEG}uf{`Cl|26~ zp}rD0zF=p1;3^0&XwXu8K>VJ&ut;t6m~U&;@&9!dglHgx zTU^h9FcZXkA85aQuEzUfwyAsVP+D3VhVdecV{_y@1k2xXn~&Kbq_+^0 zeCDEDk%?NE1|BFFQUyEU&O)dzOTE~lE5}cj=-6%CJ!-dXiiAjLc_UX?__MFBn!enB z&yPM0(L{(sLoXhVz@Pgv)=&UEN{M|1<1P(Dw$jtrBVzW6496 zB~0&NOCj1SvvUhr3~Jwew;(@z{;S^n>-R91Q6|JwR{ z{a5_IzC6VY4X>}X|HV+Nwemlgu7skU!q1O8H~)<+(R%cl}_;h*Ip+{L2@XjRbq6-h!Y zUfvC=G5PuH=I2eS%!eK@Mo3)vBDZN@oeC3Tef^SjU%1Xs-AE5SzH>a{)y9+ZjU}1@ zKqio~97~NeYvBJAe2oWGc*TWWwhc!7X2?ekBIajZpdk#zT;P;%N+j#fa&sG=kGNm< zuIxIJiFzr2;#lkIzdmJIVEb)2rFFDb;{FkfG!dwhMLhg$b)x~iZ_ z^M8i$Xd7bNkdp13F}yJ&60U{h=Brt24J+2t62_~I(&(KTk&kOgHkwR{ZFY_6y;j4v z=>ty(%%B{?3RRecxF*U&HCL5`E#z^wYpgH}eR_w5&Au*MYO!e`((5SOBqgF?=P5<{ zfbs8QB=ogFDh)w!fD=6x64Fy|*0rCAJ0j`R(7$oT{sIqidA8(pP^Dqb<{8p9CPmnh zm`wCwal_7o7V;b4nSOL7OJ#3~JC~MKVcxhlAwd`CKKF=Rp-vz#hwntvPSRPc)O=vh z*P+Mq3Hsi`p#UNqU|-;qiuJDbPue?%>@;Pv%HxTp`KbJZ{Y5?%B0WC>6XM?b|laHf}k z7^ayJtLM2k^s*Q|8142TZ;CZuq%5)Er1<1Od`BK_pggnP$KPJ^zkNrAl!x6g#k_`JemK=Sc>HT3WZXim}&wBh~SP$)Y!xTV-e9;wEby z^CcAcYV3>-A(N1F1m%yhw~)Q*FAEER7{8IUhMrdQqeNcctY?jw*Kl9y11ZAM#% zH@#yfXM=aQt$=KGp0{vlmQ&nnv*ey)>14)3fnxwLrTpm5xs0QJ(pXhk2 zp{xMFySCe+cTTiXRXU)OhTL!M7KfNoPXQ1%s|EC}!_Y-+!^Ym!(Ok^>;Jwk4il=!l zW~fTB`hV17>>-G+UhE1%F_^wDVfwO}e-f-tEIYYR;kkMG4D(;pBj5E&SW||H8|-db zajvhu5K-=BYjsYWsdJXqbhEgtJEX0(fqaA+M_* zpEP}L4`*k~YNF!gpmrr}NU;9xzvxEGAO6*!VdJ3FNOmD(GzG)lLJTO1y0OA$7N`ygh$JZn z?A*B;|5|6vEHLzwy+Mv?qOrJcVnt=Ixgi|%t=1WXXTgAJ18N+2{z?R zu)1!s5w`vlw)cN^0d9Hh>gK2fL^n!{vokOqKmJ@`L6FgKzNhDX>o$^2nZnfQ<~a4$ zX?d=~)AEiYxf=TkHuSax_GilOROf@2I=1*r>BqP>QR^|=iwhTPv%74WLLcI;w#GV` zmHJs+JsxvYpi<*+t>MnI+SI3iDRi|}M2+s10^Go3R&O|>>oG!!f>_8_My_|;m85(m z{A793(DbaWa0(*ixlcm6b3e4kmO%JqZR)X7e?y9rd|XrTZ`9@(g6d+1r{#@BJQHL1 zKl}SdA*2eCQD`LWiXSTpr2*|(BRIj-(sqB4Eu3BU4eNIrVIQCU>bBpAaSc^S``>;z z3pIeJ`2+!(J*EEG&za9{wxsHwL`X>@Y=@1NL>`Tg@-lts`J5Twvn(V;K<#??N?zW| z^!>-`#&6?oQ}A)O2)u3%jQG+Xq1?8EQh?%ki|SO8J-^&x(^UNrBNK)xf|JZzjy@iMA>6}@l)Wt&GSE}u{iR4yr!pzxH7?K z=#=X^bBqu`-TF7rwrICkdA}aZo4wpZV<1kSP|X(6#UuZ+c5`zR(2bCwphz-7^*`T< z3U*F8t3GoC`Ow;QurvM(V0TB4AWO_h+nWi#7HRU)`jbdy+}$XkZ@-|a<%Xbs(;VMP zxb3U5O+iYq&S~*Fx_ge>fRBf-i@~y!!IC<#$#AQ|xm8(DFUh?DYguePvL;DM^r_v< zN+u2tyAecn{ET5svyKxE&>-7GCo9)FTaz&@NaL~BV9jAO6@c&s;p%+?s z$08(zy4%{!SNoEM&^nRauC-FC10F=mKR?A_MiRTqE)~C6816>K+BKfJTImVnCJezM zzo;V4Z_InjQvV>6&&pg#$ruW?|gN5OaucJd`e? zu=}O05*4Y?hdpV4dH-~!lGrQgfqcBYi6gH-`+e#UvH6#L?!fp44WA7lTquuZ_4^7k z=xTRzhOr~%-NwI^+e0P|DrkVA%5z^yuCDv@%2Xy-P1I<6_@#VS-7Oo!A=l+O|Gn-x ze=#t~VwFX3HM;r???(;pys_S!dyDLKcoXQila?TG{3z*{50c2x$^~! zd|tt!xadWwN)H*?;*8xu^#rag);+|&2kC?TfvRD+S;7|&-M#U)PCh~4t?;85iMWUW z%OEYwUWX3Ti-b-wxnAb7!GFD@=sSNFin?FDzsTYre!+LV9GnG{ePPAwqiL@<^w9z` z6eI+yK={K*#;me3Ls5j5rTBbl%ZODLIU+W%e&gSMbM)?<#i#nXXGUC9W*>r;o@f(@ zV20~y%uP;?{zT$INnc&G>E~YoG0T!^lw&4Ja7Y=Hkc^p4lS~ zcKmoyqXm{5r>k#t`mttPp!j)tUlO{vR=M22(@7t0imr$*TOY?E>8R5F=qOkB!S!3m zkVKmVIIzX5a&%;t2Jxe4m8&ZSX`|Xw>#rM!I+N4F zapX9E6M<%jRhD;-(&ZVRD$y5p9r1>JdXM6@!e1oevPEmtEB?0pX3)x^v?^)5$lw}ru1amHiW{FQai|lz4JEh zRQ?#JGtiz)TDlFgc<1_Bf!@YM^+Ng=w&U!#kWk`yO*`#({i^!EPtmfiw$_o(Dk!~U z5N3SsL`Esh5-R&ge@*^}ACfmA#2zsUiGFlIqugl%IC?jiavdLxG-aY^{=V8q97Imt~}4MoNR&9IyyTZ8H8(>J4)L9 zR~5*(xx?x`B|$Pi?!qjx6HgI)2-seT4_=7)luY@!dpOU}ROtfLdIXt^yN z+L1R9PSLYe)#!)&<1(tF%NSVTs1yhaWT}vn5|=H6J0>fF)~hDSE&x465ncG_8+zP0 z#Szpp1P5JElYPI$aSf~U|FJpXPXvdi$4?j7pZWjm`Z)J3mDleZhfq47^#QiRE0tZp z_ZLV+jOf&X!66s6Vl|7YjxF7NegB|mHW^vNq4$h{O<_mq{FX_F#o!?t^ZW^-ArPdD zd{FNMV-{Di_+4!cL4m8LeEzqwaQW?*xztB@mnzo}b7;5A&h!Pzm#=yy!f~iDf~mRHfm)%f}KoCwgfV*?RBu2P@X% zKE9{UzUXlsP@#OOJk*p^2STK=g#r_z-58PmdxRLS@j>x3S*A;@We(NDu^A74 zE2$_~etyYQSF`a?Zcq>kAz;M=C!H)oc7~(zj>}h8#)#J$rU+?-;FR9a46+4_i6FMr zIq0bhbajLG@#am7PV1p#OwshSb4w>O|MRB#pSec`R`*&t@={BYXz6WVG`O8DH>a-Q zqt!c_OpZ=D>grC#l56e;Q3nc7=|xfCnta@Eot{CipTq6*#W+H3!;X46Rc5--0u>QP zcJ{#U-MqNw=1bsdzZh2Rm~B09)gr=KMq7!i`PV+$^mQWWyUEzo!G~k<`H9LDihj5% zxg#M_X+mbLiUf@x8J-iGwByq!rN$}gW;HfeUok2C@VkvKD{*Q}mnb+#SCeUQ{i@=K zO?kXTlPNbRXJ_s!B`KI3ad9e@58e!ctX;u^cWCQ7nlb_nxr^Vrm6mxYgh z4}}cM?@$$zL`{o8M(;pHO ztLK0ACK*SyRY*kcIf&yC+uV2LVu0Zzq7a-Wq&YvWxbRi!KH4GQ?Bq3RK2n0d` zk)N0Mo*aR+4Jt^8d-rT@Y~r~ z&pj#@1_+fH<){}M`)t<&S`UF9DXmdl2s@mbau7lG+6vABK!^hX1oE8UF$+4X`sn78GP;=zh`AZ8|1GWAYSlqX7-$EB*yp(iffwGt({AKXPDI0(!h##`BvUXz@ z5<-aYh!q{hd?@EJkToC>R0v3u8pRD`YwV7M6fqD<%5OE0(Z6;G$~LQ;oAT}g%}^ng z#SVrC>x8nRViWjF06s!(OTgQ=^vY?Tm*;L(pqPWS9U2~;&{$m9eLCOqDRm7k-?EL&Zu#;``yhsusq1L4tB9`imAE4qYFgQ4tT-ot< z?l6)kHMAv%r+}$YQd(MFTk8j8Kgb{1nwm%BYTJkhqt7CD z74m}$8;EFs0Z10eC3fQ`0eDcT(SgzoiBo6=YB~*76A{GRe|@jOAb<*o5vc=neH{h; z)6SuW1dwOwpZZCa(RV45e`{+CY74X=z<4v9d(ptLLs3Q_@Yt}zz|vz8G7>JiW{<=J z?N_0!>frKpt}s7ejqwAtB`(*my&EnsgD2sN*svIs#z$Am?FqTOsC22Ukjh!>s- zk3o6QQ>2P^^Z4e;Qz3Edf3eMP=J_=_c?voe!w}tLoy>Z8vpR!P+Rcpv%LHX&P={d2 zL1gj70zC`*FwQJ*Y&=EZovXD^gf_#lm>}Q24LBiyRcwj9-8b4$%dpM?KNtJq!x1b} z0JC71&^&)bK#Nqf1Z6-s6Ahy1D=zi0i2?F73vGMfNJzLFzE&JGyW_eH-DwT0Ebc`u zeTAt9XwwhOt|D+Ekfu3dafI~=)_LfT94njqe5PRx&T2pjgE8&>h3=Q2FuD&j>L*BA z4G$m8Hv6bPu>C*nz4cp^ZS*fX28fb_N(v|5 zkRkNV?rd#oS6Gfl-jlPmv;-TmcoTkVjhT%N7I=MayfUzI&(YBl-Z2*T754}36Sjj5 zMlJ)%i<2S*W+ZD8`pS-sM5T>y$1&e6`Z#B_x)9_+PAh@4-EMd=aO*>6V*3n)Z4R@N|I*CwH%~iwN zYaqIT2Zr&*6@b9x1leDKqtcs_n3xC~balM4=1z*E+g0uf7`?TaT)%8Oh{N+ zS{hxF=Vf6*4-BY^-MMgANkyduxPQ=Yetdj<4l-I`n&2J&!@k4m&re}kYbPuwY?Umf z`?qf0!ul&Pv6s%CQ~3Zf4#auuRvVtCDM4+@`TWd7Lss zd)pEA^PtI&8F3_?rP3ZkX}3C33`YVMHIbruer-(zdbVH@`Cu*v&Fw|#>YR7jD9csJ z1@=r)kFz-D_u$|TFr~1ZJ@%LsIKh9K-YeZ)x&rGX&K30(#B-g1xB*qF;MSKQ7KU93 z?J`qX2@1am8k)uUprC74u3X7d8C^F4C>O>-hcH}Bs(~F0YYiJ-CX~uy^|(RV5{3QgXG{zy?r2<0AWt-<-qb8am57& zc7Q1&W7ib`A|%j^9PR&PQBhHWe&;>XC;4DBOJO_oEPNup$@yk?cNYjxS0562L1P@2 zJd`P@g?-n(!1zgqjSeklKk%vC+>W8S7~1Sup!^0&(J?eOyI{Ndoiqtrj5}j(XMbEJ z&A5oW0>K29s%L081JlBxZFg>ALBF7UPTml(8yKM+M z8qSU^a@A^HG`#~l&d}Ic{Awyf0&?75H{^9GT4=0;dK@q;S;;J5Ie{S>555n2=!I$; ztbrH{f7J4D2E1ek{uPR7;NO5rW`;(@;bE*)DjmP|tx=?p7dRd9BG4H20-Oj=9EgTO zQwDG$x;xD91spjx^8Z6g#-0aCJ`)07L0 zj*g(YaX^mUIJ6RJFtyD~4BGCswW%b2g5vO0oeTJHKYjco5YJd$Tg%VShq)$XWN_p* z_KU*NzkX>$unJc7!Hr+A!@;1ue)USyQ7M%M-ZIpkuU{vo6LklEADFQ7=_wC?Dcf=@ zgqN{T7XOl->&+Xj7t_<9UkJqs6)_K5dT5?*liv1Ejz6%CLM}+8RYB=}klqcJfR}0e zQ$qN)+oul`9Nq_*dK(TOJJs8;$BNW$cU~;5TmTvc3id3lCRUvhq$8)ZL?owxUkZ)% zZw$a8Cu81v^F#Cros(L%j#e<84W^z0DC+L+e!zZ>_G%NJxS1_K^(fe9pbAud_%|~H zL+C}pU$fpC#(`$Vs(Ux#E9|60_AAaxs;Z^%@Ong#zk+DypYJ{fZ~|d3AHtPyc_}52Fce>)Z+nbtv zFv~UN{r$hn%Ia1V(-S8m6BE-{SJSt)mNj&^2#`tusMq14rHB6ruuoxowv%*+5;$6a%nEdbTk@j!4NV=`4AYWQM zvSUv3Uklk8>GdWZ3ls-tjY30rMJC*8szx`80^*ynk_dJf`no%b{u_AvIr1+bBl^Jm6a)h)&-m|#%HlFtgO169Fl^K zM#lq}7J8=Z-p*M+Hl##8Bygxy&G^cIkDqboxh{FpLs;1LWfJog^gsel%NDqe&>;>< z5Vn<@rKs+mKE1Esi_3^}kaD?BNm&h^9D@Dd!^7MJe-{?`L0cE1V&>^`%h6FOlb%+Y zlsXNi?{jx>1nzNN^o#n2dTsetO!%kM;Lo$6p{l6M#L!th1o8mj0{r}NK|mRjrJmS_ zm-5vgT)+{)M<6&rEEoE}fD8+1IPBfWD7Y8k%)%lDHGFYYRo#x`wvCWsXS`?h>D|9H z4bJ{e5l!;(Z=C0blE*oDFa2z?Kgluxbsc0ATA*6aK-vKu3Mk}=8h27Oth^)2h|Ru) zSd=KS7=;iuCMHG(RZ&p^&B9j+32A^|{&F&=ATMwIXJ4?FR2vLAW-+IA#dEqX;<~6n zK__6nDh|uqz@nl6gbV2Sn1n3)>C>Q~pr_BDkAO+Kc=6&vA^xM-$V75PDn9s4@OGd| zfX%(Y%%Xtr%L5O2V`BpvI&$;#xAk7={6gn@o!@=5JYp1)qh&@PA#6<=SyM9>+jlA1 z%kx8;5Bv1Z2jOrTEMFF6Ju51P1_$lIQi7LQ9W7;=c6gkv)LeQAVebP%s}L&4NK3c< z_(2j89X+%$1K?&$irc!NNPV_}w+wv*-sN{;ES~~k#H#J|8TT=9qLnF$L%Z2;8vlEw zBrT-*X?GI2Tt@yqk>usAb?MJzc-_J zpN`7y+$VU*T6}c$sMI8sir?{tzlnTS%*T)4JdXDuJS8J1w=gr4PZ2!@PqV$dJ6FrT zc&(>5?jqum`jaOe5Lv@Uaf7~$2w4;gH0?n?7WT?o%Gb5EH4kX}hgcP^GB!Sb9s^1g z_zj2FiYh8Y+&2UN*(ae-3m@^@5weVm$#uX^yn8oe4`!Pc{W}+(j7Uz-9xM$^CUDYgeE)tf zh!|8Pgqsp_cM1&}8(y^&tq=J?5C=RjaKp)5MnTbJg{y9kcOV+ol$DbUhO9p%#PU_D z)vwPFAf-38RpH|0odkaX9Ee*??Rb#w{j zcB746=MX1CQ)3|3-LFqng8(`wh`-l9`a=g>$vziO5};0SV&H2@2^T$xPXHtW1cV9L zbk#y*zkuYyipJ_wVD%NKSuTEKt#z7?D;N*sB6z|eP*5I*@Y!%%pJM+jA?Xu_ zNWeIt2uLUJ=C+VfLI8x0+0US1W?k3D#-<_vz4hfLJj6lY%T#$u$qd*!p?k24z%xT~ zu-`%qzi!iTy8SPAg@A6~Rh@ML?=MV54W1(MA}iEzb9PY?5~>Ai@BOBW>%C9F2YGvS zbaX&YFZAY*IJFgpAM%y%i16k%Jxt3r8O)V`M=z&cH_6GP!@Z`7jXzt^}1^*a4 ze(aN#Wpu14ha?@baA#gv>?4c5MXU&++%wt{+iA<&`YS^0iaP|FR z;cN%!xPuXco|i;$kq}%@tnvU64CKH=;mpA?fw10v7%%8)6b2wfkR4f8CWe+u&JYy6 z%R!oI_SsN>KW2`*`#S>tNbDX|_|JDV72WLUY?vA>T!gJNVYtE(#JUsrLg7LXO@q^b zkG2<-_INuK7Z5%1#-BN_{-0g|n2{nc4^DiJAJnxMmzF3gC?KbjJilXZzT9|fE8X9T zr{*icD=*LH(GaA0F~qwMM9=EX0@HlfRfYBFBOot^pU-H)|NFDK7w|yfcLvHzNo4^A z6*&1o$dmLZI_2PJ!*!;BUA^(Oq+|mL|Z|+IQ?Qxn4t; z_!HBCcKaOQ5?H|z61#|`MRW>@X>=LkdV@#P8_2>lqiz*dsaR;AAheEGp@k=QQiHpcXNQK+$nPB(` zkn7vpfE>CBKJaC6Yyfn>6cu6M&jWl3U`BfWF%OM4Lh%|LjvG(FcGWt#9TukB2|jvm zzG7-@Oa?Hn{ip(^AD^Ybx6Ss}@OoDS zgGA=793e6yD(bggkH`WB^S{%^isB(bai+(d7ZFl#*LB_X^`FG7bvHMguEzR6*z!!F zW2q#G-Q7r{NIxvav*PcG?+5nr2WS;Xg+AX{ofbdQx2G-O3*7--1fw-akL17p-e~mm z=g;l+0#JVc)q0zqxFhl-BoqVLJ@6>65K{3#b0}!ggb6WvXZwI@4Pv0@@~h328jjs` z-+%*NSjdOr7$20X{YTuwiS$ac;iUlHpBXqXEEO*t#RWXGF9p-3z5<^SBaf*7L zm}{KiCqpIra+?@M8+T*G2V28vFQ8cyvt!{OmcbASrGufveG{OMJW}FO&pS?h` z9soy+o>sK#muE8#K$%cbPyl6|9ryrCv9nWFS=nB%{n+O=%${nlLdN`I>KW)OPtM-4vLZBLvbZEU8ML)5`;ac>f6#n@tQy_-}1ig|@OuwS7Hu)ni|4QF1G+~)y{qC_Ai zH3y&JHp6Lc{y3fSg3McQI{oN~fAMhiswsnhCMmf&qPa%E53zLPW$= zy3?1vmE%A9da!j)9M_VMj-*G)2nlCqol=Nzt#)~^M99*g1iQ1KiY z*YOLXX1K9sXKZcxwWG62Sx1$b1g|RULqLv*o;^W}@Ln?yLh8R=d54!b216PU;Cd_& zO0}e^uY5W`Zc%Mm^eMZrz4e|)nfaLMLY zf`=XA#W9%IugMmd%!EdCNFxdhHU7N7%o}fVG}1~%wz&+ldtso#?mPE;f z=|*PJ(?5OotkI35RE{XifuQB{XEhgB*KW{90FEJe9l&MbD}-?{VI&NyI480xtIMZ@ zgK85mu6@4b3j6$_n)+|#LzJ-BQBBP#Qn|Sxnufuq?l4LGI}dMQ;7{~`zPkFoyQSYJ zRt+jOtSoOJBa)IR_X|Fi@*-PX#q57mPhZW*E73U9VPj+S^70z>5QCEnGB|~&cLfFG zj7EV3|L)yIm>VLxjI$_O6PCXWYun;gG)Dd>IvTy10B-Pr+S z4Iht+7`zJy>(6dqK+sA_O8z_-r-CV$Q56+_fq_0JKT^r6q{6AFP~%Rh@sQ}sF*W})RIsty{LcaooV3UegS%qGopd25u7Df^gJH69v6C0w^PzwmKMP!3 zPa=pmqFH4tU=7vb`IJ)azOR6b#JRj<-X|^pbD_TFd7%A$l0Ty#u;#R>xj6v4al>xa z|0uEiS@l>KclPq-oogGIth76wJskJa(`SR^iUZ*pzzJj2xf~f#SGVeQ>Jn!|N4`G( zs=eqNtB|EBouZ4ffKeT%S#;S}4HIYJ-n^=`b+_CNhg?a+|6I(^bT-*wJ>=y@uapXlxNTKAAv_@x_I|ne z8~yk;N!j_jUXn?B_bXqiIc}2>Dv=to%DJJnGB%yFrwSbrC@#p;ssK?x9 z?R-%1D0JPo=GnZAj76)qPrk4r!76-WB$`>jrlPKX+!B6eLf7iO%+AW#D_8MU`b9>{ z8{Xu4u0qlX@AKItsp)COU(2FQY6LyOno|Nx4zEEZo{KU zQ`*f?hh)>?pb#guRva6c%>8>^Zr@?=XL$MI>kOtgP6EkJH#uX0N6)wP@WuJx>AXXD zU!*2oltdYLmM0kE4HS=uBRL5k!i;TVyv0^0HpC>rV~G0|cYH(%`p6B|qGdmZj!Avz zBxrH}<{sAANIqSTuooiezKck`%-+ffX%u@z&eiO)_7}2}dR6YDtP`wcsp?q!!@$M0 zC3fU&;kNF4&RSZ=sa^gyIVnkS+81H3iv7Ou@-kI}_O_d)C4I}Ee|sDRlB{x`rxR0N zHebTR7^mkD_67n@2yYb-l<`^@EVtOV4Me>g7#E{ZS8rO?%E5uT@nfA{kL}I9!`BcIy&49=nF~+?4L{ojK$~DLIoxSjOTnU*%Y2{ zo}F=c9FHv?Sp}{s6Ly7+VZ#bJ(Fh?uCq(s zAUqf!4L79l@+x}p$*;P0d{YnKI~^Rkw~3tRatOOTdIBFm^zM0ZmYmousnERnrK zIbgWrlyIZpx!G9qHzp1fn9_^L$f7^#{#i_Zolm^8m_|;qD8f9_)7KY-Nk@EsS}BTy zK-d#T8(}6os$AEmep~EAz3zE*ZCQT8Gs)RUCC~i~Z_%)w9#tP7LQBP{VXm}yw>Q|) z4UViV_2I(FTF<|pvq?Ms{mj;{$T@C2n6@>t{EAsJ#H_5$4)+wu5ZANkU-%!>yCIvE z6$J&%$@&-Dlbr0QnK>545eS+@BklYFPx)q#ShCX zxQa{oii`QADoGIG5P2fbt`|R70kHW$)cLp4^ayM8;4uGF2Eer1T7ws^_wi4k02{#IANOclQjo`-6M3&=L*&#_XBQV_AJirf*)Jo;@XwzEdkOIo8=C$9 zFW5(*GFJ;P_W;l7F8O*whDE%WIy*aSzA{6w zw+JJ_7AY7R8G#M%wsWn}t$dqLP?w&i?25oQd* zE$#bbZ>dR}hO0$@%3I>Q5*0%H%Jtw@C?r8uX5wnJAq8M!pl745K9NkCTKnJKT!9T6 z$7dD4nvyh8W|2vc@Wr0M-c4v55yr4nAsO2PcS&fJ4;#U6P?@~ilSc=)^UFcFKghlg4D8t2P5 zXT8-jdEmEe0va0lG~58&pa1vAx`jt3AZ^afWSla&lIfcWYV3x!W9|k|@_hP}4RD@4hlWwyS=ZChSWNOLe7bbm%;xp1<*NVlG8Tt!WHbE+gXfltQX zh;q1S+RLPGAAFF*98i4Wf;~ZyFm!dzo}Ete^8TKyJg?eJl^wi6vAEs;PKl5(Ejk+4 z;HIMvzs(m0hD=7rFO4TEvEsd(=jq*DYzj|0c)7Xl?Mgpc3EQ!sO`WnjIL!R~<4MyX z<1GVD!rP>^(&GGUfz`q8g3(qJK(vf^OJRgV<#c>{MnT6bm&s9B(UKBoYKwtxSt*qL z+;V-F4!z%%!(Uf2Cc^EXRLhnkw+E`FTas=pf-hf{fd04iLoYiwb3jgg;J zZ{7Gejz;^ql{GYMf>Vx*^OcwH;^X`B{*vqNV%q)&J1YGPJ~`<+lSwdD!n0=txC9&a z_TSvAv|L@!vPQ;RTW>BeOPH9fG+mei1zjt0FZv^GC^l6UUn(uR#_@vza#N^G9e@Ic zkXGfwh|T2FdSr^OvOb7rE-jgfr8Wu;*DI^)cS>Zhza;P+A-GJ>gV=2+K9uT+6|*`tnQGM8`$*y0=b*quEv+CyY@L3j6*Zx47@_lm*r*dHodTL2-cO1*vROnevmvXGxKmS$==r6kJCxd zq@=o9gDbg8@e>k$kdaCIysz)-bbUkI+InwcE@q-S;W4V(<(^EKzKW(MK5bukKxAa; zr%!gSV{vY-W0lTLkiS_BuSb2>SXwqcIuJPAvo-7UcH=)enIPP8=uQe(ROm*^F?1^o z!Ta=;fXR|N8^;$?g~MoSw;*AHc1$Ck3Y+kwjrW2jJy8i)bH%KM1pwvH&@l9T`~az? zO=XwzOS5R|bZce0YW+IIk+hx;Gj^|}i9b$DNlTyo3io7VW{$BME#7`^nsdHVr106} zRtf9zK#xB$?W6XRuU|)ptYkC`5{Dgs94;+1=H)Fzz0T>}QG!0=4Tx!P|ARei5Gzy> z%A}z-crtA=ZZoX_m#aJv2@dYcPN~bx&sW#is6X>R-NL!vmtgY@LZ=8T8&eWn14S>< zSbS+0mwWkQqtS6%8-Kbcki6Eb--q>+a?-bMhrQu7F(Q{n>E5OX{3;k<;_s{~pG_bh z!A=JpR5|n~-ZQ(NTwa5EGKbZzDG!s^Hr*+13i8Q3J6Yr{$w!E4Hb9*81D^cs;Rp?? z(N$$R6{Hn#?yd|+=S6K-scEZdSHoQq5k>d)4R;&JeykrWoDOTOwD&ttl_AoenL1 zs3;bH^1a2hy*s=Ep}O7n)7Rs~Qi0z;<2 zlWyr>rb2jnL%mA-yTgn%H6zi{>T6>TCu6&AbOlp2yD@X&r~5}XjVZBwR#oS>Iiige zlWJ`5&z{hEC6|?Q6H^Uk|K4LodzKvyyX}{r994HEi;Q&+a^5X{0o(XfWC_1j*z=m# zHE~+unBjVP6u{4F2GdnB_$P}QI-`w(^fY2T@(KWI)U;u~i<>gN5B6)LVNz@OVMo;U8hC*|5=8{mrMzL_n zzrW=2A-mkA*D9@rw3U=9OgD+u)yrp8{csNUUux~mW{tb;B~N+%S>3p8AS06x_T;eb zcrS(WQKpmW&)a$;YX=Aa)`Zdl(zP0MUtFtfHnM`m2BgKOT!bdNepjTIIAR(Gz(bwS zqV*E^*~&S+-Z@Aj4 zLwB5-*TUKxxbgHa^PiZCFk>F>r^Lr@E`ras;_5b;*abN3_-@hF#`Moz^}2=Y+qP(K#kdB$t6%G-EAHE=gq#C>ElK02LB*zu3x{zuQ?vB z(Z$U-#KBfj=ODCJ+`iSe@@b))_V4QJwOPy3jVLHV5-_F%4(6$L3~ywxtd3S>2hQli ztYt<~(ciyoW&b7@0v9EoT|}2iq~!&dhQg=#cM@eqA-lr3prG%qqix+oi2+qbaJH)o z!zOFPW1=+(Z~Z9-= z?b$Lab=`ftYG!ga@!@+`aQ5}S;=h{cUwN;s0BvdjL=IXZT=&Wr*Z%Ho%HSs^enq9v zpI+$}-OIlF$w0|}F`17`z@`ehY-Po8!+cuKkov@7bWtEwh( zyLG~aLPB=fIzx@SZb3gEJDJ=|_9;ese7n1_bk?^OH8s)jB+|+ww7LNWgmN|&^@`W- zoJE6&F8m(sJNL6Cv_^DWu9=I>zoS9{cuxi(vjX`3-X7UqnWL`6hd}|>6SC&#hRxh~ z(40ldaLyHWfRv9@@JYijeb07*y-Rin%%7iD=?8ekQKj;J_Z7Ut+@@eL(?F<>*{~hLd`1Q6WY6 z?FGX84Dtf4Um6d>=wqC^EJ{Ivt^MW1{q_bsipiV5^KiSq0vopIuWF8^3e@*}zNR z*vxEVISoQf6Z4m`aPd#7ua6e5!kpw;YW~Re$sVXIN2eJ5PM6FQ2?}OmX0aIj{hKx! zIk#knjV#|jRR~@qC{MIL;e`B8T|EjEb`Oai=vBz`kP!zdg6iR0gI5;k%@g9ZK7LZ2 zaHOV(@fQ}>WR(ZJ&YwFwC61VWci>}_AwtvQhmEN_W94pw)vdb@p{(dHU*?bzsI4Dj zRO?Q^SJJANCm1pZ2X&*3=#r1vTBIDci0_N%Lu&N-vAPi(62dN#Ry#C{d4R0vY#sqW zcW&O%RzPt0!6v_I zz|a1E0iM^r2j7||{0jpE9|!ASmoKPbY@woDnIr#PQG9zhsg}~fb63X@8qk(ZEg-@! zznddWy6?BRVkUNiMAzT>tzKRrT)=%AbBTwmpDDc}W;?nosxaT8cVNJ}2d$y;n=~S9 z{nd~F2?QhjG>_iykfKXq`$OZ9M4GvSgI?`ZFDSwDA}JRuPxN^C_-?1q8{6vXy$YVV zx`E9EKl>=@g$BGHrWZjLW)rJeBM{eko}eD9wS$~=R1dTD&u5dPWDq1T>~&`bJRw~{e9tbkEtKLs8rRqA>LRIapTJlc;APa#W&a#OJ5`xIf=!K% z=`#27rB~)gc7zB1WGTwguilCotMLP8;Ol#|a=x7_Xgm?QhmoM&_fxCn!`#y_kPjT13(`}3GSc7UBp$sCr>XCu&ligt^7nd|RN%rwk zkdRoOV{uCU_bnjcd30A78)LdmXhy4UmAa}9q&>%9<1%*WmgStU&CiQ~$f$?Mt5L~M z%9%E@!&5K!#AshQY9Ntu@fGFIlrHUPZC;qXM?& zk(>0|CC;uK9R7T`)ngrFzdi)KeH)~08FS_rOZBTL6R@leq06ZR!Xj(F66J$~bzi?q z9IgR8A@AY&dw*rWd{dW0@rspI=)}a!!^3J6NLIl-^TKp`ie3ZP;9UqPXvmLfD~U+_ z4Jp<|HAPhu*G=rkVg3WA}h7~TT(KJ^NVagpYLr&)k5~|>Uti}!CF+8 z9v|=;efXwI@fX?HVH1evudl7iqM%3cr;Uxdd00@*GnCcW{Q=4`FK?8Z!G4ibQF^*x zf)Gce-)mJ>yI>c-Y{hnE3p=N=-t2IEWReiw^lTR2iSvu)?ffdOepd8b55byqT3fVB zj`QPVPo7IhZY0Y8W@5?4t5ZIo-|pEPCf>LYVEZp|9i6*8uSw7)D-F|Vj~hs3ZS5(@ zYVM>L7wB={%lNN>j{;c$vHR-Zin6lh@p3QHzJqUw(acX5PDKEzH}KNK7J$a-BV^OV z^cd;g+?FDHA<85oBBNKn?qs52{mRi1Dyck&##YZOJyTXm3!q(>P>l9=Iz%ZVdEDL! zM;>Pq60=DJ*64z9GrGcqxZ|3~>?xE~%l%^4e~hq;Yb&dk7y}GhV7%~z+b@ntHC3HP$4UKB#RWKU6Yq$K z72~bn+t8UXG37@_{_4^>i!{pMHknmG84L^!;oVx5L=m)%jKw4SAoZ|&T>YiuY{7si zMew=|Dm0Wh+MS1U@W1+L#X_Y2hXZP=MaHR)k@DlJuX8hZ$vIjX&CT-^;|0o2cP|NF zn+K#JkbFK&UJf1H7{}$dp55I&L`axkRwf*6w9rXASzBp0-jl@V;4E$2G+MgJQNLAQ zT3VhLbo+r|c5ZI9fk7qw_9tFyfnIK&ALknp!5G$~hU}#3!emDU1t=4jfBABR<_L@7 z)v0kl>fh(574n>ecj@S897-tvAh((oO+?dQTNys^ia4{b?#TBrMNmkml$1~Ko(yZW zfS{J`@T*GZ+o|ME1rxLP#A0J9czAg=)drtyQQ>0^fvVY)EK7pIq9O}N$3Bx3Oj!vJ z(N)SpX`;osxsB!K1wQLXWy=``R#u$^gboA!+j;pbtgIo?^xtBc1~!|oeYk#x zXO)(F$7p^j+Au+LhJ(W3wi72>n5k&)HEnc%6ZunB}blQOhI^L-6ZOS6`8 zaZpgOeI@xRJp8YYjlxx;btVf{ZEbZ8{k3KDmB|%@C{6-yfz+7tax({YJx2v)dHMSK z`c^P&0K4?Ry**9fXua8#gzslPY%49Z7Z)R!(LMKpP$)b#a}QZ$(( zWC24b>m*KkC{nf7^tJw2fuE1hV{??n)pZQE31F5`>}U_6{dO?9U}R@tZcbfN8oavN zY4lf%palxWI=4xn=U7u?XnDyjoKoaPN8}QuWK>kkfb>8*qbo-oo@_Mt8*bxe@sFOK z$)>5u04gc$2GY=AZ1Fp@FtUQo#?wR3!h(8hOAaEBXYz!Sk|*T#+)=eZ5^Izskl%Q`mc3|^Nn!@R85U`)7_(o1W`9M=l_xA=jP%P?PT++qcE4m1o22_4$Q zC`ZgGQLkUV=IH+?7M zq7L=I_oj30^_51`-6EkG4fE!L!Ee3ZL~%Q~dLb@BQlf}Ife=AA)NQPQ5ATW>48myF zl;`#o0UP7kY};+?A^zABr@0Drl@v%*QO$pzN{Xbqbvo44`6~E9o&B*Ea=FdLudq4Bxt0T}Bt*FAW z!H12b@8&=s?T>4E2}+>$gN(&}_`W9L8U{gEGvUTeDxqggbGe{0ps$f(&#a03g~BM^_gQS^tdT^R7* zI7EB;duOaSZ@M=#Gn|aTH_uoy>9c%NZh=CiS91xgN<_cXf8{PjtK;VE+D?djCjA^# zXL_YbF`1ZAw|ERQBK5Ai+8~LttMu9bRZ*ycurmkXK<#M@Vfhi~S}nsKtCxAZP~ zM?y4B9;3FQ2W{PCs@Em4e-a>RXc6`O05k-6`QQKgzg~9F<3}b#e6sgC;YScpq!dtv I5-;BUFR*ED(f|Me literal 0 HcmV?d00001 diff --git a/docs/graphs/iced.dot b/docs/graphs/iced.dot new file mode 100644 index 00000000..c049bf95 --- /dev/null +++ b/docs/graphs/iced.dot @@ -0,0 +1,47 @@ +digraph G { + fontname = "Roboto"; + newrank=true; + node[fontname = "Roboto", style=filled, fontcolor=white, color="#474973"]; + + subgraph cluster_1 { + label = "renderers "; + labelloc = "b"; + labeljust = "r"; + fontcolor = "#ffffff"; + color="#8797AF"; + bgcolor="#8797AF"; + style=rounded; + node [fillcolor=white, color=white, fontcolor=black]; + + etc_1 [label="...", style=empty, shape=none, fontcolor=white]; + iced_wgpu; + } + + subgraph cluster_2 { + label = "shells "; + labelloc = "b"; + labeljust = "r"; + fontcolor = "#ffffff"; + color="#8797AF"; + bgcolor="#8797AF"; + style=rounded; + node [fillcolor=white, color=white, fontcolor=black]; + + etc_2 [label="...", style=empty, shape=none, fontcolor=white]; + iced_winit; + } + + subgraph cluster_3 { + style=invis; + margin=20; + iced; + } + + { rank = same; iced_wgpu iced_winit etc_1 etc_2 } + + iced_winit -> iced; + iced_wgpu -> iced; + iced_web -> iced; + + iced [width=1, height=0.6, style="filled", fontcolor=white, color="#474973"]; +} diff --git a/docs/graphs/iced.png b/docs/graphs/iced.png new file mode 100644 index 0000000000000000000000000000000000000000..dcdd9cd3adb94eeecd221f16f318a74ea73e5542 GIT binary patch literal 32794 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Ď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 L7N+dFMfm>(e7b>P literal 0 HcmV?d00001 diff --git a/docs/graphs/native.dot b/docs/graphs/native.dot new file mode 100644 index 00000000..3bc654a5 --- /dev/null +++ b/docs/graphs/native.dot @@ -0,0 +1,42 @@ +digraph G { + fontname = "Roboto"; + newrank=true; + node[fontname = "Roboto", style=filled, fontcolor=white, color="#474973"]; + + subgraph cluster_1 { + label = "renderers "; + labelloc = "b"; + labeljust = "r"; + fontcolor = "#ffffff"; + color="#8797AF"; + bgcolor="#8797AF"; + style=rounded; + node [fillcolor=white, color=white, fontcolor=black]; + + etc_1 [label="...", style=empty, shape=none, fontcolor=white]; + iced_wgpu; + } + + subgraph cluster_2 { + label = "shells "; + labelloc = "b"; + labeljust = "r"; + fontcolor = "#ffffff"; + color="#8797AF"; + bgcolor="#8797AF"; + style=rounded; + node [fillcolor=white, color=white, fontcolor=black]; + + etc_2 [label="...", style=empty, shape=none, fontcolor=white]; + iced_winit; + } + + + { rank = same; iced_wgpu iced_winit etc_1 etc_2 } + + iced_core -> iced_native [style=dashed]; + iced_native -> iced_wgpu; + iced_native -> iced_winit; + + iced_core [style=dashed, fontcolor=black]; +} diff --git a/docs/graphs/native.png b/docs/graphs/native.png new file mode 100644 index 0000000000000000000000000000000000000000..fbcad808967c609f95e9c57a4389a3876b58e8b4 GIT binary patch literal 27637 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 iced_web [style=dashed]; + + iced_web -> iced; + + iced_core [style=dashed, fontcolor=black]; + iced [width=1, height=0.6, style="filled", fontcolor=white, color="#474973"]; +} diff --git a/docs/graphs/web.png b/docs/graphs/web.png new file mode 100644 index 0000000000000000000000000000000000000000..6db04087a6b57ff741df86288f5d0d7284cc20ea GIT binary patch literal 13023 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 iced_wgpu; + + iced_wgpu -> iced; + + iced [width=1, height=0.6, style="filled", fontcolor=white, color="#474973"]; +} diff --git a/docs/graphs/wgpu.png b/docs/graphs/wgpu.png new file mode 100644 index 0000000000000000000000000000000000000000..00ae76cecac52535b704bd486e8c9fe52e3d1752 GIT binary patch literal 20091 zcmdSBWmr^S_%@0^6lsudM38Rj6eOiXX^_sLJ5{;`qy?nAyQM`0q+_U|1{k`VckzF( zb3UANzMpe0<$}HU%$~K^T2I~g{Y<#3vMd%l89EXY5|+H2lsXd969@2VEJD6iURHj`xy=?i?#Q^Qml8;`Je*hzq zlO2Qmt1G#4_?2hVYfFDR1_w&N(F@0gUCZf8o9GrVd>%Tf>sZM|Fc z(epe;bSf(EC>c?dKw+6cDisb|ly-9OK;cX(6mU{ZEc5cp3x-$=kF8|r=rFvz@`i0& zSJ{e6hGo*VQI@s02iDY(F*Dm1Ggjv3)Fjm$lQI9XEh?!fY-orJ3EA|gR8S*81Ze;I zy5{Yv%Sx1%rfY3u^XzRdV?*s(p=I&M(!QA)WN~o^$**^)*yjv%y|F7V#lOD0MZ-E` zc=?MwT1Iy-sOe+G=}CuwdHEgz;RjV!Z3$yz!C+}Z0>Y1~9}VC6`Ds+%SP?vn?2CI* zCMK;`b-%ZB#mq~F_2tP@knGbJgrtg^nw(>5G*Z&RxMVvVUF^My<%x$>pU>U#;T+$; zWf(}=8&>mHVK5h!m9^U`Jd@sD{;=a{>6g{QF=4|iC4+)bNh#^7iF!m!D<>EBij{Sx z)PY(O(*bYE&)V9WmcKCtORVF${3Ao73Ub)BT)LNQtDeybNlbv!iEdObL9h;dL>r=D-SaPOz-Jnu3Z`k6J{i?PuQL9JRr;AMdy2kWLc6os~1@Wf# z_UONHTIdnevj4e&c^jG`4zH@IbD7bF2ZeZS&tWCW&Ql@ zgrU~4%Pc4NohG|tSgA7@jg8GlBnM8d{T=(CKQ@!>vQ3=Qxu3Z79+>DDqF2rdT~Y*H zD0IttN>K~f(_k6NTHOQW=T(p!wRx!0cnBNCE4tn+sC{bRc>cuU`MGK<1r7U#F3j)T zPRyaLIW>2nW|CbR6WM_H+5WzeeY-i)g)f8#*nmy)>!(fcJ&l@F{~#RfEgtTp#0LK0 zc8>uI@mLg$6+TFb3=NI?!Kk^h05j0h8L)l0{tki0%3EPfxfz7}`1m*;l#uHc(*-b0u^tleeC$?(2MS66pFjvfz&$1bMK>1_72)AO1< zDD+v0K^zIy585_1B8{fQHxwfN9zPr=$d%&}A z_bQmr*RN&L=s!GG5dUX1kCn*(VYSt6Ij+Eh z^eM_UcfdUz(yFYCBeSU1l()W`nHeV1Kfm@Aevkj+UUV^%1ura^xbF)oD=6q?4N!;*rCDnX z;H?}eeQ*=K!7=-muD1X`&&A705q$H^$cW?5knOB_XoCg^2kptGa$ZA4T)U477uX}U zmeI5?e}%Tp%bf3u$}3azUR`-{xoirUgr44WBl~*3xF{;Z;UYD)ADyc2`}-XDOb7b8x!J$Awc#me2`;ZK9392c z#e`=UHN~$DjJoL&6RZ#2dL^LZ;N&$oC*m_W3pn$fv@Emu)M&G6YEB=;2KaZ!Qaz;2 zZ-mjvB_8?*?77<@$fg9`vN|4S4Ul%1Txw)JIShoN2kw_MMCn`Z`uUTN5X)`G7BqREnolhySg{^ zaJrXda-!{Se(3019I3XMioP8kIymVg4sG4@n5fwnx&4QZiE?2-)Oi)1etBXfW^$4g zh{UQVl;P#l>78NP-^*#Ch{;=z)o_@}2VpHeFzRL?znEWQp>|Mt9P^JM_VpWa&t}<0 z9A7`CiNe=M$JEpAdj1y%Cs&*N_B+#s-W!V;0{*YkjYMxa(m0fxV60*ftDKFMDev_4 zo96SwXe|Eqw6-tyg4?$Ib%gRSeES>gf5{7s^zuer4E7K9#?y1F`Ko|)!FfnA({EFP z%6t7n^W*f~`PH1tf$7NZk(oK+;f`%OBU`D3oe68KNZZ%egESQWblqAT`ezI7x87(84zz|)K+tZsV z$^aR103LMN>yXIChU~I4!0zRnlmCpfpZLPN^il>8%y^|i z&k}l`Dq_v!Vi8-|))tZ_e$+`J9;ak&%?tI&JG#Xnl3#`L{!vAjLAL=xZ37PeXB%F5ys5xw>D z!ty!K+^zPXD7+aINsnE+E1er8UKDutIhKF7Ss-^*D<LMvm@xtQ#|#GHl9bfbcq3IAJH?bU3OM?QW+8;l^2|9myR4`7%i`j2DQOhb(|@^) z=pai&`e#+qnWefp=Nl2hLi&b2RJd}lIE;Wk&y8hAsNfk2yM$2z-v5T=s~!1VS+VC}QJ)YjasVu^65 zn08)pd89qLT+0&A%gd`7-5bejMt)n$0uhc zb?2v`rL7|`sP;vSE|S?YP<}-|+}UR-$(*aJ>-KHGfs>|_C}?XVO%yPw85+Km>A$jv ze$dorNcl*RZ*)*vi-z8E@AFhr-{zl#Ha$Z$$*zWBEik@$sBl{Mri>BY7a$OMdXdd_(3TH~#^uU_rD*fQhnyL_&mF@hn!X7w zn?Y<9}m;BnI{U*KoUr zNbUC=O@wtjY$|+vY;OK`A^_+iSTz;tTI)97#t8?ix>ic&A;7zkkieInEKjSXjdpV)27f|adtzria7FFtEkoM-uyb-=`x)+vkcLZ7?u--&wuP> zZUh}2eNUdL@*Ch166)|4>8PFf8wHfX!v zp$FM~vt#z(X%(N|Fh>&;Ni;01rqx*G()=E?SN>*CrKJ-aLQU9tL0(5xn@TG?qV9Wy zVhdutwKW_S^{{_=`FZlqfwm*3qPdG!|Mb5{&X%c7xWh!ELBd6{I0V$ zt!!BYS29zrIhlMz1`{J-$f@iEmGEt~&h2kB_K|yl$EO)Ax?S1LEe~5x$r9+4>4bS5==*jLQu4lmMofc0LQsNQ*&gwQJ9C8dIi)sF2bHkjZ4yyZ{>dRPtg_p#lb{aK3VT9E23yPrnOFD7u|Xb(Fk-+U zC!A@XzNOXe>)CR8K}E9F6Gg6`BJO}UI7n+&27yI{fT5JMFG|VCP+1Suf|LZ@*7>bB zCARr=6-w35F{?0Y(yr5OdBvnAACtRyrnziYHdcQ;uezi z=`2tjf)tq@s@^=i`^sVa?b$h&Z0Qsp6_uQ?@6+7Xa$`zr>hRdu(DxtEVLWtgm9iQd zEYbh~BTCXxoxOWdDi|?5-x6I2b-wYQv90acU%FZH@gWb7L4PeI6jW67=@o5YcsTZJ zR#v18W#QS^7%+5z-F2B%tA70WPFfmkgRmYrL{&8%*}lF9c8<#I{QSL$0oCu3esLcz z_f9W*){h(DhK*_jx3_Jm0GDI@9lP?$Nb(&rD)uq0z-(+)6_T&7$eu)pSAhg`ziGS9 ziib=@1QS$ZW8@25TZ>1>+~>1~sM%C#4#XxrJ6vREmt2QV{K}TQbo~60!5H-M-@mVa z-U-4Dl<#jM_`kxmL5;YQO)t?LXo4Ii@RlS|VPEOmf^oZ_$$MhZ1YyMg-*MglAHIRg z#Q&_+D4X$pY?fuF7s}`L^>xFUEI}8UjX%M-$TTp~-UXk7cH||??jW=%O5y1zQ>Zi) z(%n8`q`Wo+#l^*p5#tAb`<)N|&p*-yIX=ypf2LoNT^t-y;=MzbZf*Of*dRtBP0)i& zHilw*rXeDSli7>;`S^%n6Elr|q)hIof35giaB0V%IQ#Y^gvrWkO4jCV+m;vt9v$CX zLg)eL<7G&bt4e@H6nPZ^Ws2wyyR0_boQY305|*1ngLxB3(=fAs4tfELBBzWFRjYKD z-wE-s_b2s<$;@vmBl~nE!}M=0t)t7 zJi{WV93dKPzU6pu!FqFY&R02$h0e`a#6=x{Y`ZSdaP;SLl}K9V5Q}YNf|0(tfnzYs zJEuK$`q8(gdpET@Y6LP2O5H|%toE4*tWkZ1)P%OSF_`07iRNPMMBI1D&p6YE%K!{R zuTj`Dvi9we&&~aKZiL5H_}fCdX5z0d#^C1?Y6wrOxqVbN|ay6?po7$Ij zQ7$ytrUxxa?b4g8>Y zN0$?DbZcu!?S*mZv)nF9oLnj#K()w-Qcbg_tfk-I*-bTKrfz zkuzb?9|6OTU;l zwaJ#CM@MgS&yBBfuqY0^4mg5eqmhT7#3ci7%Ov&=7HvQ2Y_&G#brXIR`ds@r#S~)e z!64Gx33aZWQ~Us-{lJT*smZUZtM<-XnoWsq9Fsv`PfdpxOmwUA)~A_6_EL&8u*6L)5G z;+=}59SK^saf3M+nLc9$U1wAL*VXsULd43IB?V(%J+1lmlv-_iq$>z%eOFYj7ZSbt zMAOL$EAH4&h|^2x83vwAbB=OUtV=q*hGPs_LlCOXk~A&05Zgw?(JmPn|x+}z{EPN4Y|r&7XU!GwE2{o5#wu?%HHc=DY(qG2UQ0_ zJMO^x@%dA%c*$h?gSds*e+12PLZ|9kd}qT-TTjX3au}sTp5YM^{l48E)YP0w@ay>g zcj46^X2c|mI;ya9#M~Ms6YFg3_pvd$*oggl!FAo%B{aDEwgWHN6)Q;87K&6#AC!oN-S}MTJuN4FP5cWkF9w)?p&+LN= z^Hk0V0fSp;HWSLEnkHq;3zsTVDjln`nig0!eRp*k*~1+Yp&C75=*18nvDyK(STo-B z`Bnt88cyRa)2R*FwD1yA#WI+|aZ;lZaU2i<-ernS4pUE=bP2z|-x<-Z$rB-ySh@$# z3dl@-V;K)vl`VKj8pt$4z>iEf6b*RR>g#jC@ed!0y0^Q9nP?)wll?bI?tkVGa6^7` zaR5(H5mPHff^oNrU@kP8@GWJc)GNH`iP8x6kO~v$=SYd_Gf{I}*wr%fOXRhkKHSQU zEzt^cBsHW$+3&DM5rT|*y$^OIz~LWJ`9HJ(h0Vs>1ryHD98Dgw=pB42R_&_K&oGFJ z^nx6jvL!nHrf2p}`xQR2hWN_(OSKyK8JnAoa^Is9x+c~Gb?8)j_YRpw ztAdX6u=L23jGWvHp5Y^fB$a^S77UYOXS_nMM7rg$ZB6?cxgo1`?g5ocw$3oY4CXJSilgpzu3IWH@)usd74ohuRl^X{E55g9; zsSdttH~c)LapE8kI5eA{If~*+R4Uaijp{mO#N>FI`NzKf=#B>E#~8o zs}p#w3tV}+!eD68V|fv>nEfuaX)Q(=%-Md!!tii(vY~hQf!~3TXw1cGB**cjhRWF3 zSi9a_cQA%dqdg^j(C_R65;HS1DmpsZKSUb8168a0 z-fHcr7~;HZY<5;oRTUQkfjmCN_Cz6cdTM$akAx&_%qp*>1igJ}9`feRn}mFY?&bIR}s6S>%1Cv zup9EfXk9*9Pf$5t3B)-b4Y;ozupQfWb#-@FS67$R*4BA#7&>j9Tz!3gBKMbTd4+`u85zS09PL5r>EyAZ=OpBO zc3TajM)$|W{^zw>FGxs!3m>$-v$tp0YqU2%ULUlBHbl!(dF4UREk`rWr%FEX@bXrB zpV^%6F9Q64jHBc7)x-ToXJzUA#!xbHl^bH(eu&>;Nl`D|Z8zo&G2@}v2o?tDNcfjL zbJ?2o^z@qd8lb;NM;Ul|6P42WoOULemi%uZV9U)mIhkhhirnnhid?NHPzX8)^@QS_ z^ibd9g4EAtRCEB0%*CK`lr$;~o#x-D-X3=^=L$i1>UZ1?JQt#eRpQQ{9UYkiR6bFU ztG&K%wz{_Fb$c{$b&~af`3u~@653Hv5WY^FPK1FDN&`NwY+|KkLzE+JL^W#2bQM*dgkjT?xW zO4;18m9@2rH412>!$AYbFFl9$zGfGASWJusv;o3u)bZo{cLK2JV(te^i{;iE&H;A_ zBd_y0%T#W2bWp{#-5w9!t~?h<+H&96`x7rCU1IQ+1Vt0a0Vg*TNt|QKLETVER`xly z-{}h^@%y7#pE9F*8^Sjhe}66Bm4-%$U2o9>v(#y@BgLmz+-mRx`?7J#n}sMc7%b0! zRU?ISQ=&)V44GR_G18Gl1~ayD^71tF^da~R%Bng#XrBkoRwq=%%{Tw1mT6ai{rgw3 zrl!X3W_Pw4`EsX(vdTb5{P;Jmr;kVHpD4f^y?&iPN(Np#VX8Cpd;#oyAD*5jvdCvS z-PiYrc-@AYoyObDI0C@n)s2i|J3GaloSa0bf$rvf53w}uwf_6XFS1*X&RgeLzn1^% z5Pw<`6yEKb;rI;mH?NVVaqpqa_x@EY(sZTKD6j;V zlG0K^uVcEkfmjA+=0EOH6NM_suD0ZzR4^EJf) zzmX6vN3(7d&OISmfR~wVIc3vphyo_1_VMGitq=bvgoVJji&Yz4y>b^>_eBCXb4tpJ zBM;pszNwzp>@i+?-{|mgiQF+&0|Vf*-^Dfubs2AwLI`1`+rv^K`bbwl<-yO$3^S zg@XLXa^&e&y@QLI+SplpSY(U6*!^jt__H!4dIS6B4Wd(T(aN@C^zH3!R=tKYS$yT0 ziNebEbKO`|kF)lD1ugusd_Ks$lz{=|moH!F7#NUoadDA;1!E9<+ZlcQxLNmRo)MiO z`9rBe$p2W{=dw2SdWEgz3aXc*A}5NCFP;w#4SB76d5-iL2yOK`JdaEYRI-#I5Vq2f zHvx=vDt|!jAvyk`i8~Z<}X{)B*1P6kBQko zcg>BB#Q{!`_BjsKZhbp>84iY*w|9-lfua8mbb0=39iSXTsr{Su91@2_Zx4Hb{mkG0 zNKLi&soI8xQaAAOx*6;p%-0W1`yx-{3?{N@37swE>%edB56SHN8Tz>`cV?;Zi+iP> zRy)d|-*+r#mF%bOI7(^${*<&G|KnAgip6EQZti ze#g`uHI_Tq03olguKt@TnhugEJW|p@FwEaI=0han z{%w#f;r*t-=hVL6`uk;)Sal>NCI4e$VggA@Ja8gZvGqogz;b0`sjz-U5VCle9bA9= zXT{Sl)=mB5MVHaTwHARithg}qm59g>`2_kGL`40-c}mO4Ek7Iratk1omcY|2IQC#g zk@LrV{rVrhO6Fe;6;X32`|H=iz%NkN&i&1ijwBIwX9dRI+t=r``IofNi|$?>c)#m@ zixJ}U+az8JQmlQ}Eb(w1js9=nai<`Qt8;6qd^BGKi%nbEvcMnK_;^j`UF%(}Q?IRO zKx)}<_*^(CPS$1USNhu>a=kE2tgR!avLxVc0Oi_rwV6%|v@?xvkwk1J^L5smA3nq- zCQ9q*kb+0Qoe8)j27WhZ?@x7PWhKY*?I!=x;o;AmoUdhNtYlDOJgW>? zG-Ztg51d$4#TgM1!N|-kSvcV|Dtd7^t>+MzoGkn4)60wH0CAMSFW}k7$HxT%?r#YL zKuXe5pY7r5`fqx=e=SyA+11sx@noR4*YWbun2259%BStl8H9pQfT((O!}|J)3JMq} zo5O3-{7Wl`upVILwIBhBkB>+4gas2@Sz8-}`uiyg3P_Ow4aEN9#S4+kmB6<1d0S5} zw*$U;!ll=*UlR}$ukG)T7 zvIy)En5H8=z4AFJZzUG!EBaco-bZY-ZYh2<_n}ciS(#o`)DM@rX33L{nb~Bf!k{74 zxuu^^&}9=dJlvgpxvQ8U@x#gV^`i1(9_^&*LA8?R0c1SCrr^uob8c-O+aL4!P2a)5 zPi~eU?n|IpuDGS8URN8*IyGkDdw*Jn3Y5~pB6LHc>64S1t(g-#fJOyqh~0v_=2tyT zvO+Y6&$NZksK*x;CgZ3;l|~ApcOX?fm>iL#Ui@2-f~>&B9|RSWShImE%MkXM?`QD3 z-Y(225bTL->GlSIT2ZlW%b#h<*;tKW{$Fq(YyTu1k%>-{=ESKzly^hVN_#F zWtW~BegmxAX+gFP_5w#L$R4F{-Nwo{#0we<%il{?yTbt0B1oQcJozf`>HT|mLDGQe zZP$FM*;+&Hct4xw1_92tzP!BzX=T~sNOPo0`QV~&HjztVD&%Iu%l6J5%|2VGu;X|i z07(6z={VeCTp_`4)H$~nAzBiW0`Yw&l$CjTIY}yw)VVn=hI{crNcwbbtpHnOV5tlu zO^`_tVqbc_*-lVV%u+|5mNw_K!c$ngQIO}z&Q7?5R1TrE6aUr~r_ua3jXMO*)O5q5 zpenuMpZ&qsrvP0dS>;WW7PA5$njgVK!5+yW1w?!YLL=2tA_YovFPUiYqGe2P1{iwZ zy56;0+gq>6d1G6Xdet?!6&WPq`Z>=X?yDPq80d${&UJ`q$PYT@#Y7JL^hm%ZMpoC+ z7#%y+AAeNnuD{n45KqQAU{?ZslwkZ|HvU{*RJgIE2`i}Sknq-X(knV~KzXx^VNNmh zJJDD_c!-o6&|U34z164sG5K&jij{YNQb^)urD3n{dPD0K#D6I;+sKKhk8bb2N>1sM z4_m@)KJ3txb`ynO6xOc2MFCYWU2M!N8a~YSR=0j{FK3s_qH>3IMdcUUI?ptXxc%#J zD{SOKJ%}UwB*D@&KQm{H04M+wza;CiR6H1(i0wu4lwUu(;oWsg9a)9|GSbVTwhO)OE8jA zDCG$c%eI{jzSv+cB`+$oUwNxbL>4V6_mhJ*=PT(8Qb|qEmqK2+zpeF`{!T5-EBmWG z3(lV+NcuQ9RZsFU#Lv^{55TQ-)f50I22lF!DVs3VBL;5P&sCoSx&!YH&pPhWKKD%- zEJc~~=@k`K6y~*s#7B^U@fDX;FQX<&Hj$wnumEio0Ewj~&iu>b>R0o&&D`NhFD|kExxV_`8hqNu2RB#uv?(TaR0cYj=v#pNtrLDv&{DP6 z+uSdp1<>Bh0Ee%)?P!N5^a8)08&Tu%wDbJHX*@seFmwnlPAEx3Vdl7Zz4I`5hi_3E zMa9&cDCY^4@ChAs5B6j#mkG=QQuigQOK-0g1O$MK$kYzB{$iP)WM^8tC0n}&q?Oa} z3W3w~GkxQRH9W~%r#dsM==W|WD;>a|q-E;CB+h_dD?%Uwj3BkT(I^fo$bj|}!Soi1 z_7)L2^(0w10zm6=6+1uKqSK7ElZ(d1jCr-T)dA<&w0%x=f@VpY(P-MoB5a%$gXfa&bPzt|^^_-DflaJPkpx(0}w zE}KwBedFI&hmP)6hqi8``z!3RYFZ>KTYk6ng&fTbVql|9&aok7Q$f{Y$VmBrfzoo(MyK)S73PhbD-Nen7~MD# zWtd`@)t9OGf8^H^{#n<1dXrr1A6QSW6-;1nrJ%G6Q_1*sHcYi5uG{zWdB~or;2@JJ zJ*@Tq^yvBNLH&Kri|lOXwB<*}LKT7JYyRPMsqQe&hJ9gaMJe31fnGp0U(SRIGnN-U z`_)rqIWj2)tbT3Z;tsB>Z`d;uNUG0RvU}!9-bmRuF!4Kz$rM1=NIwDko$*{H!Kvb> zEM;|^1nUp3n13&gkka(#1)Q0QrPV651FXJrxD>{`W)}kR-D40|_9um&7i#D&PePyv z3of)Wfx^_j?w_wF62hY~bAao4Xsa2c8F2BK;PSC~1x7Y2*Q8CVQ>vEFH{s>9_=XZE=v_4H_-Lb9OEE*;4v%;^J?3XwP!@itsP5}?V*#CvgghZIjG)jU}Odu!^#LaOu3s-A2$=bbzyv5KoFu0t7A z-m>tjB_P!1kwi5|@!)@iE+^)KwONUv$LYk1{iD!85awrFI2If1eN9-0;3_6_ZQ-{E zdRY_J`&5z=PnLX}u8`m(dVvPHYE7ntJOI13R9FAO)>co31zs(gJ9a7{3l^Itd33AZ zFt;m1k62lvaH8fuvd3(b;0X{gf=$tT*-HXu)OZmd>b+~b!*g;iE6l`H=`?$UCo6*s z1`lY5hwD$zDGQX5+C;D(5l+cKUs8UdkTuH@BUt0=ZQigRY9ggr>bw5tul8M(;4R=Y z>(7+zpjl&(#lgQApu$<(Fn-A{ls9mMo$)_E1# z%>#nRkt~8qaWl5<`28`ztQ;9=OMem7A%O@0xlu6&T%fDI07|=FtRMe@$P$|srIU!b zkqT18kd0jz*1y@wKNar^1=IDSuHt8QN&ru-s^e#>5NnQBos9&dgE8O5t+$b?F4kM^ zDx+98tmtylBwk*m;eHBlI0E82WAV4?Jv#FUT|t6fCpF)vdhfbnCV&a>?-0z|b(q+P`o+ zkQ1ylkZWwG%*gvYz4m&x@neuZuQ@(B6t?^OAC)?a(&+d^2*A} zF26V*p6Hr<-M=X|V-W3J&9d}19k-=osnnL7%gr6s_mO44MiZEmiX$ET2Z>6hnXH*4I-a zQIB@qBwZAgw0tXso7Hr*j7*w}}0yF}gCE%Ojl+CWN=nD+?5oSs0GhOF|2FMIsj0}7PHqknEgooDX!a*qNj*Q96Hx#9~d`eF063^L%TVo;A7;jkc*hLLpwutDgAM7~v{ zsfkX@23^*goqM{@e-U-^DlTio6B@R7)$^bCsqR=SLT+cH4QX5F3P~}Y6J4BolnTKB z`ihtYE0*16Z#;9?x>JSSSl94PZx$>ZZ#-GH7Tum+de5B|xkLEE!%-y*rwpqX-=jLY zfdIBE;Fu;|+wX+v9+V2YOh_<_$YJc2L3!h*FOp&LWO3j%L~LD~r@oN9V|D;{p$2MKSJpr5A z{q>I1Escr2bidl+a~5&+i!R_?nM)DPs``MSR{qw>kEK*TImvsjo1R?wW%lY;L#F-3e$4*fES+%zYIi;Z^hBCadS?JapMP~xD2l4(_NZ4Ap1^Zed< zc9uTUGIpS6#hwyho4qF(w@1;$mkw+r3U}Yo;Koq3(TKhY3SS~1-r+;P7c*SoamaZ$ zy82H$IvUgDX!mHE#euZ;Jt|i((`Sjwwf&8Wu~w)DYr>G=ZJMXEGlfe*Od=AoBqk){ zYkGQ&kA0^6&#cBC6@Er6vPagjKXvWbt1Gr3k_ZBkQ~QNZ6Kq%@kK*s2N`ZVp0Rl2j zP_WiP7u7EB3>h(#nwD5zGK4V#8fi8;O5Jk+jYteyEt+r!9w3 zQISmIc*`m#OKh|{s!gF^x#?0=3YF$ZU!S%*L2y$MuKGZh3@CZ#HfLS=Msx_lpQis>0pj@0xJlru zxG}kUX6`+BOlc~8;{R`JtbD?BYAvuLa!xP3Hd8H;T@TtX&JlkA?fi)Tg}tDqF#3+$UGeyyurSokk&MV3My*G! zk|TH_w)zK2RG;`ms+|4y3qw|-A;QKnoB9R6i^V`q@JXO;H?#=gk*k}V({OKTHSHQR zG#VP3K%k-NHU!rg0|Ej7$Ubd35zdo}3Y!O~s#th4w$8jimT7bSCPbsz1(GgQy=s$Z z09+SM0?;GC3J;Ht)Uugrf<)y!ag3>`s21Fz5YZ%sgmByn6)+VDwmd&y-zI==Xcoz! z8gt++y;}g7mWg*o*LS5(0xRI32Ag zwo}< zTVGK$)T(=rx1U`Z2)aq-J%yVAE$!?QImp3SSXA^CG_U~OJ`+o2LG8((o(^3HbzN10 zXSrNtI5^^DX|6xST)G;Dr~1XYNEUz^lZKf&WorvJCr2_Y9PKq9{b>oZ5gHAJY_ zaDjT()P!1~q(sNd8<$s2`_E=0DFPS!6|6j@rpCs7S7am`B!>y94y`r&d+0NXjEvgs z{;v;DIXS)lkXV3Dw!frIKtBoEgL}Wdf{AJawdY*G%ZzepjPtE0A5moAM$dJ`_ef*= z>XprcwGi_7W+xayK>__A!e-nVm2T)5=rSC=K5Kn^Q%sDqr5&16o5K7S@_%hQEoMTE zOWYdXHKs2X2dErrL4z{sfmd$p-4C>c?;XkZW=Fw5;X%11l4SpaDb zmr>(PXESme!qu9bGVsj-(Z!u68=n2Sonhf^xTr|lUPee}rZHuEBL1@L;@}nMKP>>NInv`T zA&-q2uLe9cWU7b@zf__N{N3|zbWQx045+$QTL}O}7UU7|;p6ntu7e?bch0w7fz-Xl z-fGEj#<$~aIQ^g1It?|~uDs`kZ2$I&$PFR@^a=#=#1*ZZASN%5j&9)zM#&OYy^ahp zKi*dNtd%R`rGC2xxi{enz^$x;-j(;N-|7M*jcv<)AKJd|36Ebcp5QHv6f`x(XWj2| z0MT%fK?H6|+~Iyt45jt$eV@lKlcW`Q$$WF(+x5bLg1o%GSS_rXok$s!Elw^1>{VMaX;2b_E?yhn9$YXovL^G{C+8j>4fxD9 zBbw%eQMs(>+BoJL#WR3FeTw~^K0Zc-4D4}A`wNIbYqE)|oTn+J*^a}*MfIM%7|fg1 z0;9e@y6yhj0>~I1uOd5ivYPu)AaYJ1`i^q*+9;?hvq z&xU%KnqrXi?K+i&WoR?u0!baU~s9^*wf z47jVG4a4a;plM9KHOhW-B=y(MP4d4vYm0*p2F~<+@`blRFfReR8I6sf*d)IS>cK>? zH~=1nA^lv)K<^?Pe~v;lsc(SXUBS@^8JsUrxd1d7E;esjW!prIrN+li-!;?kT9e0F zDh~#G-1__kSV_}uW{s4%l)W=alOQU|1>U)3xIo{5K zE+Cb)va+HF9hR4ua-hS!nYH>1~fFi^=+(bV&4Wx(e%{px|STOT-WMrb-LYmF|DM_5pOyTv{!% zgR`huXYg~Vg$tb0<>;LIc$wo4+R&cESawzE5GV9H?)EEpgPow1f~_!Um@_@j8*4jk zmG!zDTh=gIwu8begyBcg&y$S#(ywkKdq78{9B2(vAW|_O&r`E$+kK)zfG|A)UksoE zcE4koG5Jz+voyQMn}0(?ziDxnV?Yl~vaKQP^2nvZO|Mg=+vwpKpNJ##&o!3M??I;j zKFy6==PAq6fiG*Ieppwjt9L^>oU?rHxieV#@Nm8_Dp0cXdF}FG-+~{F&LW}eTM*qR zTr`@0PZj^e;|(f_3M)Q#EKoMr{GmQs;%8+vuPi(fgIzSSQ>0P$5qkY8ZxtCqp7?QH z?MY@m|so^w$i_TrH4HN`(n4alRb}nHhE_D>*L+a<2krOJXL_Nn`~45v=_`W%cpeh zq(S)MR?@4TYHzl>QKRYgw%kuchmQK<03*$(&;G+wYs4bh;^6YxG%yOd?rXRDE^hyw z&Kfaouqbx_JGZp%wmMmeJvNPpN6oZ93VaQNkh@3`mzPdPj7PJ64MZcwh>QH7pntPcobgXy0lmWi>gL@4nNZv~PA7zl zPRF+*Q!`%&%}Ez0YSa<4NpndvO3slGvuMn1F8M~0+j46ztB_c%G+V9NbSPzA7#lX` zv@vts8L}B?=im7L_Pk!t>-Bklct4-#m*;ssge@70XfuQC4!zr~N9=C{KLooHe~akYI7#KC2R-Yq-nK1j7jxZH%tG3@WG(8>OvO z0X;oG2du5)5Xn)>Vz@HyQyU~D|0!=}Chm1e{58YO%5R%4N?W^wqRE4D!MBbp?u7M@ z6o})-ha&z_EalhpUz-x3Z-ades%w@ z#)@7=n_W4amIc6nhZ0c^u0D~>$jGUysM2n>7>Kk*PMBpNXmqEp{syhffcqfIKwnp{ z!6~{Bd<9PE>(BrKuSu#(9?Z%Olh8AQCcUl3*xAATpP&9bEBC+1Km55O@KI&uH-Yy{ zx8L-)&OHw~<%5;YT-O4cB>zZ3q8H5`~s%jW2^PHMM z8XYVxE-LC4O6!C?EtjwmurbJSt4bstQZqQv z(<70fh5QYK^Biwsr`V*u?dj&Ck$ELPfF{2ddbKtu9ZJcy zwdNW`vx$k(oglHwC`*ZFtX5l~HKEkkW8xoGWBHL|Qv0ww-s@we_cz!GkGVEjja%pm z$WJnkGC#;JjG_L+pcyuNC&CU78?3$_wSAJMB=M5xFh!xLC`)X5Xsd`nU0N~GV!o~L zqTyVSzv^#C$oC%jP`rN%Py1qk0L4)5(Jvu6cTYaj=uJ;p zXZ72j|BY`7Qf1_uVv0E}KS@1?U6ZNM@%*0Q*G7$%cBq(`==yA}@>>Z|_~F4?96zOY z0@>WVp@OhOl)>?ffHhsMn&WAyb=~l;n@@Jg0So!m8z-K{O*!?NV4`~zJA`rKv;MYa zMj`aekyU3G>p%^UAN#+w1@qKH=DdO4;e87L_Z>UVG%0UXh?0`;+haslLYmI_mU;^^ znl)P5CE<^WV-(U)Rz&-z!iHTB(+n~7{eY)^ie+Kz?=G#hsF4P#^gpm8_EJm4-P$?} za_vDJqaQ-Jg}mQ+%auMy$^MpqJf25Ip|*WFx&9 z1WG7zwne(ShWNz>u@)Cw%Dc3Ixe3sk;ODU8$CcE!q=H8BYB=Y)ZgSZV6NxSHvblU>mTA`C3XM+ literal 0 HcmV?d00001 diff --git a/docs/graphs/winit.dot b/docs/graphs/winit.dot new file mode 100644 index 00000000..c31f869b --- /dev/null +++ b/docs/graphs/winit.dot @@ -0,0 +1,33 @@ +digraph G { + fontname = "Roboto"; + newrank=true; + node[fontname = "Roboto", style=filled, fontcolor=white, color="#474973"]; + + subgraph cluster_2 { + label = "shells "; + labelloc = "b"; + labeljust = "r"; + fontcolor = "#ffffff"; + color="#8797AF"; + bgcolor="#8797AF"; + style=rounded; + node [fillcolor=white, color=white, fontcolor=black]; + + etc_2 [label="...", style=empty, shape=none, fontcolor=white]; + iced_winit; + } + + subgraph cluster_3 { + style=invis; + margin=20; + iced; + } + + { rank = same; iced_winit etc_2 } + + iced_native -> iced_winit; + + iced_winit -> iced; + + iced [width=1, height=0.6, style="filled", fontcolor=white, color="#474973"]; +} diff --git a/docs/graphs/winit.png b/docs/graphs/winit.png new file mode 100644 index 0000000000000000000000000000000000000000..ef8b98dc77dc5e1dc689ad4811eaa2b3b275985a GIT binary patch literal 17051 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