From e671c447a4578bc22e0d2a54e61f05f6824cfd55 Mon Sep 17 00:00:00 2001 From: omahs <73983677+omahs@users.noreply.github.com> Date: Sat, 16 Dec 2023 09:16:11 +0100 Subject: [PATCH 01/47] fix typos --- README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/README.md b/README.md index 8ce35f691..7fbc1f981 100644 --- a/README.md +++ b/README.md @@ -2,13 +2,13 @@ This repo builds the documentation for developer.holochain.org generated by 11ty (https://www.11ty.dev/). ## A note about browsers -Other than a warning to the user (see `unsupported-brower-warning.njk` if you care) ___no___ effort has been made to accomadate non-Evergreen browsers, which is mostly to say Internet Explorer of any version. There isn't a lot of js in the rendered site, but what there is won't work, and newer CSS features are used as well. +Other than a warning to the user (see `unsupported-brower-warning.njk` if you care) ___no___ effort has been made to accommodate non-Evergreen browsers, which is mostly to say Internet Explorer of any version. There isn't a lot of js in the rendered site, but what there is won't work, and newer CSS features are used as well. ## What the heck is 11ty (an extremely quick intro) 11ty, or Eleventy, is a NodeJS based static website generator. It supports a bunch of template types, including markdown and nunjucks (https://mozilla.github.io/nunjucks/) which we use here. By default any template file in the input directory will generate an html file in the generated site. It also supports -includes and data generated content. It is extremely configuarable and as such the docs (https://www.11ty.dev/docs/) +includes and data generated content. It is extremely configurable and as such the docs (https://www.11ty.dev/docs/) can be a handful, but they are quite good and are worth a look. ## How are we using 11ty @@ -57,7 +57,7 @@ There are two reasons for this: The tag will be added to the `` element as a `language-` CSS class, along with a `hljs` tag. The surrounding `
` element will also get a `hljs-container` class. We're using the `atom-one-light` theme that ships with highlight.js.
 
 ## Using Markdown Here
-We are using a mixture of markdown and nunjucks as the main page templates. For documentation pages (as opposed to more blingy pages like the home page) md is prefered.
+We are using a mixture of markdown and nunjucks as the main page templates. For documentation pages (as opposed to more blingy pages like the home page) md is preferred.
 
 By default 11ty uses the [markdown-it](https://github.com/markdown-it/markdown-it) parser and we stuck with that.
 Additionally the following `markdown-it` plugins have been added:
@@ -102,6 +102,6 @@ Additionally the following `markdown-it` plugins have been added:
     - Builds 11ty with links to the bundled JS and minified CSS
 - `clean`: Cleans out the `_site` dir
 - `build:search-index`: builds the index files for the search function. This is called as pat of the build process, but if you want the search to work during local dev then you need to run this once, or you can just run `build` before you start the `dev` script.
-- `update-browserlist`: Updates the browserlist that autoprefixer uses detirmine what vendor prefixes are needed for your specified browser set. Run once in a while.
+- `update-browserlist`: Updates the browserlist that autoprefixer uses determine what vendor prefixes are needed for your specified browser set. Run once in a while.
 
 

From fb2150b2e07a7e6439ed0fc7dba723405cf936be Mon Sep 17 00:00:00 2001
From: omahs <73983677+omahs@users.noreply.github.com>
Date: Sat, 16 Dec 2023 09:21:59 +0100
Subject: [PATCH 02/47] fix typos

---
 src/pages/references/glossary.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/src/pages/references/glossary.md b/src/pages/references/glossary.md
index 55e7356d6..7bb4325bf 100644
--- a/src/pages/references/glossary.md
+++ b/src/pages/references/glossary.md
@@ -104,7 +104,7 @@ The act of joining an application's [DHT](#distributed-hash-table-dht). Bootstra
 1. Finding an initial group of peers to [gossip](#gossip) with via [discovery](#peer-discovery),
 2. Establishing connections with those peers,
 3. Having one's [membrane proof](#membrane-proof) accepted by those peers,
-4. Having one's [transprt address](#transport-address) accepted into those peers' [peer tables](#peer-table), and
+4. Having one's [transport address](#transport-address) accepted into those peers' [peer tables](#peer-table), and
 5. Gradually having one's transport address gossiped to other peers.
 
 #### Bootstrap service
@@ -351,7 +351,7 @@ A [public key infrastructure](#public-key-infrastructure-pki) that doesn't rely
 
 #### Distributed system
 
-Any system that involves multiple [nodes](#node) talking to one another over a network, whether [decentralized](#decentralization) or [centralized](#centralization). Because communication isn't instantaneous, different nodes can create conflicting data, particularly in the persence of a [partition](#partition). Many distributed systems use a [coordination protocol](#coordination-protocol) to reach [consistency](#consistency), while others rely on the [CALM theorem](#consistency-as-logical-monotonicity-calm-theorem) to avoid conflicts altogether.
+Any system that involves multiple [nodes](#node) talking to one another over a network, whether [decentralized](#decentralization) or [centralized](#centralization). Because communication isn't instantaneous, different nodes can create conflicting data, particularly in the presence of a [partition](#partition). Many distributed systems use a [coordination protocol](#coordination-protocol) to reach [consistency](#consistency), while others rely on the [CALM theorem](#consistency-as-logical-monotonicity-calm-theorem) to avoid conflicts altogether.
 
 #### DNA
 
@@ -504,7 +504,7 @@ A property of Holochain's [validating DHT](#validating-dht), whereby healthy [no
 
 #### Inductive validation
 
-The act of relying on inductive reasoning within a [validation function](#validation-function) to validate a piece of data that has dependencies by checking whether the data is valid in the context of its _most immediate dependencies only_. If other validators report that those dependencies are valid, it can be assumed that they have also applied the same inductive reasoning, as have the validators of those dependencies' dependencies, all the way back to the root nodes of the dependency graph. This can greatly speed up complex validation algorithms that operate on data with large dcependency graphs.
+The act of relying on inductive reasoning within a [validation function](#validation-function) to validate a piece of data that has dependencies by checking whether the data is valid in the context of its _most immediate dependencies only_. If other validators report that those dependencies are valid, it can be assumed that they have also applied the same inductive reasoning, as have the validators of those dependencies' dependencies, all the way back to the root nodes of the dependency graph. This can greatly speed up complex validation algorithms that operate on data with large dependency graphs.
 
 #### Init callback
 

From 8baf493e5b9cbaa02719bb5399d999e3c52c7e89 Mon Sep 17 00:00:00 2001
From: omahs <73983677+omahs@users.noreply.github.com>
Date: Sat, 16 Dec 2023 09:25:13 +0100
Subject: [PATCH 03/47] fix typos

---
 src/pages/get-started/index.md | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/pages/get-started/index.md b/src/pages/get-started/index.md
index a31e45ded..993f330c8 100644
--- a/src/pages/get-started/index.md
+++ b/src/pages/get-started/index.md
@@ -46,7 +46,7 @@ Welcome to the Getting Started with Holochain guide! This guide will walk you th
 Follow this guide step by step. All steps are essential to create the example applications. No additional code or steps are needed.
 
 * The examples below use `$` to represent your terminal prompt in a UNIX-like OS, though it may have been customized in your OS to appear differently.
-* We assume that you are reading this guide because your are a developer new to Holochain but interested in actually building peer-to-peer distributed applications using a framework that is agent-centric, that provides intrinsic data integrity, is scalable, and when deployed, end-user code runs just on the devices of the participants without relying on centralized servers or blockchain tokens or other points of centralized control.
+* We assume that you are reading this guide because you are a developer new to Holochain but interested in actually building peer-to-peer distributed applications using a framework that is agent-centric, that provides intrinsic data integrity, is scalable, and when deployed, end-user code runs just on the devices of the participants without relying on centralized servers or blockchain tokens or other points of centralized control.
 * We assume that you've at least skimmed [Holochain's Core Concepts](/concepts/1_the_basics/) or are ready to pop over there when needed.
 * Because Holochain's DNA's are written in Rust, we assume you have at least a basic familiarity with the language. Note, however, that this guide will take you through everything you need to do, step-by-step, so you can follow the steps and learn Rust later. Additionally, Holochain DNAs rarely need to take advantage of the more complicated aspects of the language, so don't let Rust's learning curve scare you.
     * If you're new to Rust, you can start your learning journey by reading chapters 1 to 11 in the [Rust Book](https://doc.rust-lang.org/book/) and doing the accompanying [Rustlings exercises](https://github.com/rust-lang/rustlings/).
@@ -200,7 +200,7 @@ This table includes everything in the `hello-world/` folder as well as details o
 | 
 ├── target/              
| A folder containing the compiled output from the Rust build process. | |
 ├── tests/               
| A folder containing JavaScript-base test code for the application. | |
 ├── ui/                  
| A folder containing the source code and assets for the web-based user interface of the "Hello, World!" application. This user interface will get distributed along with the application. | -|
 ├┬─ workdir/             
| A working folder containing configuration files and compliled artifacts related to the building of the whole hApp. | +|
 ├┬─ workdir/             
| A working folder containing configuration files and compiled artifacts related to the building of the whole hApp. | |
 │├── happ.yaml           
| The manifest file for the hApp. It references the DNA files to be included, along with the roles they play in the application. In this case, there's only one DNA file, `hello_world`. | |
 │├── hello_world.happ    
| The compiled hApp bundle, which includes all the DNAs (in case just the one). | |
 │├── hello_world.webhapp 
| The compiled web hApp bundle, which includes the hApp bundle plus the zipped UI. | @@ -987,7 +987,7 @@ The scaffolding tool doesn't have any feature for building anchors and trees bey !!! -Before you get started editing the UI, it's helpful to be able to actually run the scaffolded applciation. That way, you can watch changes take effect in real-time as you make them. So the next section will walk you through launching the application the tooling that's available there, and then in the section after that, we'll begin working with the `.svelte` files to build the UI. +Before you get started editing the UI, it's helpful to be able to actually run the scaffolded application. That way, you can watch changes take effect in real-time as you make them. So the next section will walk you through launching the application the tooling that's available there, and then in the section after that, we'll begin working with the `.svelte` files to build the UI. ### 4.8. Run your application in dev mode @@ -1054,7 +1054,7 @@ CommentsForPost.svelte EditPost.svelte The next step is to edit the UI files in the text editor or integrated development environment of your choice to add scaffolded components and build a fully featured UI. To integrate all of these generated UI elements, you'll need to add them to `App.svelte` file located in the `ui/src/` folder, or to some other `.svelte` file that eventually gets included in `App.svelte`. -If you don't yet have path commands for opening files in your prefered IDE, there are instructions for [VSCode/VSCodium](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line), [Sublime Text](https://www.sublimetext.com/docs/command_line.html#setup) and [WebStorm](https://www.jetbrains.com/help/webstorm/working-with-the-ide-features-from-command-line.html#5d6e8844). Going forward in this tutorial, we are going to use the `code` command when we mean for you to open files in your IDE, but you should substitute a different command (ex: `subl`, `vim`, `emacs` etc.) for `code` if you are using a different editor. +If you don't yet have path commands for opening files in your preferred IDE, there are instructions for [VSCode/VSCodium](https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line), [Sublime Text](https://www.sublimetext.com/docs/command_line.html#setup) and [WebStorm](https://www.jetbrains.com/help/webstorm/working-with-the-ide-features-from-command-line.html#5d6e8844). Going forward in this tutorial, we are going to use the `code` command when we mean for you to open files in your IDE, but you should substitute a different command (ex: `subl`, `vim`, `emacs` etc.) for `code` if you are using a different editor. Open the `App.svelte` file with your preferred IDE. From 1e5d35ad2b80efbb2538fcb0dc58961355c13753 Mon Sep 17 00:00:00 2001 From: Matt Gabrenya Date: Tue, 9 Jan 2024 12:10:56 -0700 Subject: [PATCH 04/47] fix: several minor typos --- src/pages/concepts/11_lifecycle_events.md | 2 +- src/pages/concepts/2_application_architecture.md | 6 +++--- src/pages/concepts/4_dht.md | 2 +- src/pages/get-started/index.md | 8 ++++---- src/pages/get-started/install-advanced.md | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/pages/concepts/11_lifecycle_events.md b/src/pages/concepts/11_lifecycle_events.md index 1b5d48ed8..f3cb782c1 100644 --- a/src/pages/concepts/11_lifecycle_events.md +++ b/src/pages/concepts/11_lifecycle_events.md @@ -46,7 +46,7 @@ We covered both of these callbacks in the section on [validation](../7_validatio Shortly after a cell is instantiated and connects to the network, the conductor looks for an init callback in every coordinator zome. This function is a place to initialize source chain data with necessary information, or make connections to peers, or anything necessary to bootstrap the cell. When all coordinator zomes in a cell have finished executing their init callback, the final [genesis record](../3_source_chain/), the 'init complete' action, is written to the source chain. -An init callback can return 'pass', 'fail' with an error string, or a list of unresolved dependencies. If one init callback fails, initialiation of the entire cell fails and the cell is put into a disabled state. +An init callback can return 'pass', 'fail' with an error string, or a list of unresolved dependencies. If one init callback fails, initialization of the entire cell fails and the cell is put into a disabled state. !!! warn Lazy initialization The init callbacks aren't actually called until the first time something calls a function in any coordinator zome. diff --git a/src/pages/concepts/2_application_architecture.md b/src/pages/concepts/2_application_architecture.md index 540b6a7da..0eca8b283 100644 --- a/src/pages/concepts/2_application_architecture.md +++ b/src/pages/concepts/2_application_architecture.md @@ -32,7 +32,7 @@ These data integrity rules create a membrane between a participant and her peers There's another membrane, which sits between a participant and her copy of the application. The application's public functions define the processes that can be used to access, interpret, and create data, as well as communicate with other participants and applications. Her copy of the application makes those functions available to any client on her machine that wants to act on her behalf, such as a UI or a scheduled script. Those functions are also made available to her peers in the same network so she can delegate some of her agency to them. The application developer can give her tools to control access to these functions using [capability-based security](../8_calls_capabilities/). -![One participant's copy of the hApp. A membrane surrounds her hApp. On her device, three clients are successfully calling the hApp's functions while a malware is rejected. From the network, two peers try to call her hApp's functions; one succeds while another fails.](/assets/img/concepts/2.3-process-membrane.png){.sz80p} {.center} +![One participant's copy of the hApp. A membrane surrounds her hApp. On her device, three clients are successfully calling the hApp's functions while a malware is rejected. From the network, two peers try to call her hApp's functions; one succeeds while another fails.](/assets/img/concepts/2.3-process-membrane.png){.sz80p} {.center} ## Layers of the application stack @@ -54,7 +54,7 @@ The client is like the front end of a traditional app and can be written with wh ### Conductor -![A participant's conductor hosts multiple hApps for her, mediating the connections between the hApp and her clients, as well betwee then hApp and other participants' conductors running the same hApp.](/assets/img/concepts/2.5-conductor.png){.sz80p} {.center} +![A participant's conductor hosts multiple hApps for her, mediating the connections between the hApp and her clients, as well between then hApp and other participants' conductors running the same hApp.](/assets/img/concepts/2.5-conductor.png){.sz80p} {.center} The hApp is hosted in the participant's **conductor**. It's the runtime that sandboxes and executes hApp code, handles cryptographic signing, manages data flow and storage, and handles connections both locally with clients and remotely with peers. When the conductor receives a function call, it routes it to the right function in the right hApp. @@ -129,7 +129,7 @@ That's the entire stack of a Holochain hApp. Let's review, this time from the in 2. One or more zomes are bundled into a **DNA**, which is like a microservice that defines all the rules for a given network. 3. A DNA comes alive as a **cell** bound to an agent ID, running on behalf of a participant. 4. One or more cells are slotted into roles in a **hApp**, which makes up an application's back end. -5. A participant's **conductor** hosts the hApps she uses, mediating local and network access to them and executig their code. +5. A participant's **conductor** hosts the hApps she uses, mediating local and network access to them and executing their code. 6. The participant's **clients** access the hApp via the conductor's local RPC interface, while the conductor also allows the hApp to communicate with other participants' cells that belong to the same networks. ## Key takeaways diff --git a/src/pages/concepts/4_dht.md b/src/pages/concepts/4_dht.md index 7623fa5ce..074297e6d 100644 --- a/src/pages/concepts/4_dht.md +++ b/src/pages/concepts/4_dht.md @@ -133,7 +133,7 @@ Let's see what happens when a simple 'create entry' record is published to the D * A **store entry** operation, containing both the entry blob and the create-entry action, goes to the **entry authorities** whose arcs cover the entry hash. When it's integrated, the authorities will hold the entry data at that base, along with metadata that contains the action. * A **store record** operation, containing the action, goes to the **record authorities** whose arcs cover the action's hash. When it's integrated, the authorities will hold the action at that base. -* An **register agent activity** operation, containing the action, goes to the **agent activity authorities**, peers whose arcs cover the author's public key. When it's integreated, the authorities will hold the action along with all prior action. +* An **register agent activity** operation, containing the action, goes to the **agent activity authorities**, peers whose arcs cover the author's public key. When it's integrated, the authorities will hold the action along with all prior action. No matter what operation they receive, all three authorities check the signature on it to make sure it hasn't been modified in transit and it belongs to the agent that claims to have authored it. If the signature check fails, the data is rejected. diff --git a/src/pages/get-started/index.md b/src/pages/get-started/index.md index 993f330c8..139e01f4a 100644 --- a/src/pages/get-started/index.md +++ b/src/pages/get-started/index.md @@ -24,7 +24,7 @@ tocData: href: 4-6-scaffold-entry-types - text: 4.7. Scaffold a collection href: 4-7-scaffold-a-collection - - text: 4.8. Run your applicaiton in dev mode + - text: 4.8. Run your application in dev mode href: 4-8-run-your-application-in-dev-mode - text: 4.9. Integrate the generated UI elements href: 4-9-integrate-the-generated-ui-elements @@ -62,7 +62,7 @@ In this section, we'll walk you through the step-by-step process of installing H ### 2.1. Hardware requirements -Before you install the Holochain development ment, make sure your system meets the following hardware requirements: +Before you install the Holochain development environment, make sure your system meets the following hardware requirements: * 8GB+ RAM (16GB+ recommended) * 4+ cores CPU (6+ cores recommended) @@ -565,7 +565,7 @@ There are a few different kinds of actions, but the most common one is `Create`, Every action contains the ID of its author (actually a cryptographic public key), a timestamp, a pointer to the previous source chain record, and a pointer to the entry data, if there is any. In this way, actions provide historical context and provenance for the entries they operate on. -The pointer to the previous source chain record creates an unbroken history from the current record all the way back to the source chain's starting point. This 'genesis' record contains the hash of the DNA, which servs as both the identifier for the specific set of validation rules that all following records should follow and the ID of the network that this source chain's actions are participating in. +The pointer to the previous source chain record creates an unbroken history from the current record all the way back to the source chain's starting point. This 'genesis' record contains the hash of the DNA, which serves as both the identifier for the specific set of validation rules that all following records should follow and the ID of the network that this source chain's actions are participating in. An action is cryptographically signed by its author and is immutable (can't be changed or erased from either the source chain or the network's data store) once written. This, along with the validation rules specified by the DNA hash in the genesis record, are examples of a concept we call "intrinsic data integrity", in which data carries enough information about itself to be self-validating. @@ -1111,7 +1111,7 @@ Next some variables are instantiated: one to hold the Holochain client that conn **Take note of the line that starts with `$:`**. This is a special Svelte label that turns regular variables into **reactive variables**. We won't get too deep into Svelte right now, because this is a tutorial about Holochain, but when a reactive variable changes, Svelte will re-render the entire component. This lets you write a template declaratively, enclosing the reactive variable in `{}` braces, and let Svelte handle the updating of the template wherever the variable changes. -Finally, there's an `onMount` handler, which is run when the component is first displayed. The handler currently does one thing: it connects to the hApp backend via the conductor, waits until the connection is establised, sets `loading` to false, and adds the resulting client connection to the context so that all components can access it. +Finally, there's an `onMount` handler, which is run when the component is first displayed. The handler currently does one thing: it connects to the hApp backend via the conductor, waits until the connection is established, sets `loading` to false, and adds the resulting client connection to the context so that all components can access it. #### `
` section diff --git a/src/pages/get-started/install-advanced.md b/src/pages/get-started/install-advanced.md index 69b320dc3..693fc2e85 100644 --- a/src/pages/get-started/install-advanced.md +++ b/src/pages/get-started/install-advanced.md @@ -93,7 +93,7 @@ In the `outputs` set, this flake composes a dev shell that inherits its inputs f ### `flake.lock` file -Once the `flake.nix` is created (and added to the git repo), the lockfile can be initiliazed by running `nix flake udpate`. The resulting `flake.lock` records pinned references to all the `inputs` at the given point in time, in our case to the the `holochain-flake` and of all its inputs transitively; altogether keeping track of all the dependencies of your app's development environment. +Once the `flake.nix` is created (and added to the git repo), the lockfile can be initialized by running `nix flake update`. The resulting `flake.lock` records pinned references to all the `inputs` at the given point in time, in our case to the the `holochain-flake` and of all its inputs transitively; altogether keeping track of all the dependencies of your app's development environment. ### A Gotcha with Flakes and Git From 608d81b4800191b364c6a0e69d32a69cf7b92be1 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Tue, 16 Jan 2024 13:31:20 -0800 Subject: [PATCH 05/47] fix typo on crud page --- src/pages/concepts/6_crud_actions.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/concepts/6_crud_actions.md b/src/pages/concepts/6_crud_actions.md index 719e2f378..a38ae2546 100644 --- a/src/pages/concepts/6_crud_actions.md +++ b/src/pages/concepts/6_crud_actions.md @@ -51,7 +51,7 @@ This prevents clashes between attempts to delete identical entries written by di ### Resolving conflicts in a conflict-free database -You may be thinking, if an entry can accumulate multiple update and delete actions, which is the _right_ entry? The answer is that it's up to your application to decide. You may want to preserve all revisions and show them as a tree, allowing people to follow whichever path they prefer. You may want to write a simple conflict-resolution mechanism into your getter functions, such as "the earliest one wins" or "deletes always override updates". Or you may want to incorporate automatic merge functions that apply all updates to the thing being updated, such as a [conflict-free replicated data type (CRDT_](https://crdt.tech/). +You may be thinking, if an entry can accumulate multiple update and delete actions, which is the _right_ entry? The answer is that it's up to your application to decide. You may want to preserve all revisions and show them as a tree, allowing people to follow whichever path they prefer. You may want to write a simple conflict-resolution mechanism into your getter functions, such as "the earliest one wins" or "deletes always override updates". Or you may want to incorporate automatic merge functions that apply all updates to the thing being updated, such as a [conflict-free replicated data type (CRDT)](https://crdt.tech/). You'll also want to decide whether the primary units of data in your DHT are _entries_ or _actions_ (that is, entry plus author plus timestamp). There are appropriate places to use each, but that's beyond the reach of this introduction. @@ -90,4 +90,4 @@ Finally, data that's invalid (we'll learn about that in the [next section](../7_ ### Next Up -[Explore validation →](../7_validation/){.btn-purple} \ No newline at end of file +[Explore validation →](../7_validation/){.btn-purple} From e5e8c9e2739d01295c6cb5de3d530de7479a5a61 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Fri, 2 Feb 2024 11:37:09 -0800 Subject: [PATCH 06/47] instructions on getting a specific holonix version (plus a capitalisation fix) --- src/pages/get-started/install-advanced.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/pages/get-started/install-advanced.md b/src/pages/get-started/install-advanced.md index 69b320dc3..e156f0bc1 100644 --- a/src/pages/get-started/install-advanced.md +++ b/src/pages/get-started/install-advanced.md @@ -25,6 +25,20 @@ The flake-based one-liner to get you an ad-hoc Holonix shell looks like this: nix develop github:holochain/holochain#holonix ``` +To get ad-hoc shell with a specific version of Holochain, use the flag `--override-input versions `. This example gives you the newest release in the unstable 0.2.x series: + +```shell +nix develop --override-input versions ./versions/0_2 .#holonix +``` + +And this example gives you the newest weekly developer snapshot: + +```shell +nix develop --override-input versions ./versions/weekly .#holonix +``` + +Take a look at the [`versions/` folder in the `holochain/holochain` repository](https://github.com/holochain/holochain/tree/develop/versions) to find out what versions you can target. Each subfolder is a valid version number to use in the above command, and the `flake.nix` file inside the subfolder shows the specific release tag for each component that will be downloaded. + #### Enabling Flake features on your system At the time of writing, flakes are still considered an experimental in the nix world and thus require being enabled. This happens either ad-hoc on the command itself or permanently via Nix's configuration. @@ -95,7 +109,7 @@ In the `outputs` set, this flake composes a dev shell that inherits its inputs f Once the `flake.nix` is created (and added to the git repo), the lockfile can be initiliazed by running `nix flake udpate`. The resulting `flake.lock` records pinned references to all the `inputs` at the given point in time, in our case to the the `holochain-flake` and of all its inputs transitively; altogether keeping track of all the dependencies of your app's development environment. -### A Gotcha with Flakes and Git +### A gotcha with Flakes and Git The behavior of `nix` commands that rely on a `flake.nix` as its input such as `nix develop` can be counterintuitive in a git repository. From 0ff2b466ebbf79e2d89478c0c13256beec9c36c5 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Mon, 5 Feb 2024 14:29:47 -0800 Subject: [PATCH 07/47] add cspell GH workflow --- .github/workflows/spellcheck.yaml | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 .github/workflows/spellcheck.yaml diff --git a/.github/workflows/spellcheck.yaml b/.github/workflows/spellcheck.yaml new file mode 100644 index 000000000..656286bb0 --- /dev/null +++ b/.github/workflows/spellcheck.yaml @@ -0,0 +1,11 @@ +name: 'Check spelling' +on: # rebuild any PRs and main branch changes + pull_request: + push: + +jobs: + spellcheck: # run the action + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: streetsidesoftware/cspell-action@v5 \ No newline at end of file From 00ecb309fc5a28b86e27d8157568b071d8ed4ff4 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Mon, 5 Feb 2024 14:38:21 -0800 Subject: [PATCH 08/47] spell-check JSON, Nunjucks, and Markdown files --- .github/workflows/spellcheck.yaml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/spellcheck.yaml b/.github/workflows/spellcheck.yaml index 656286bb0..050eb711e 100644 --- a/.github/workflows/spellcheck.yaml +++ b/.github/workflows/spellcheck.yaml @@ -8,4 +8,6 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - - uses: streetsidesoftware/cspell-action@v5 \ No newline at end of file + - uses: streetsidesoftware/cspell-action@v5 + with: + files: '**/*.{json5,njk,md}' \ No newline at end of file From 45a6ff84bdec519ef1c7eb87fa74daae03c98f81 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Mon, 5 Feb 2024 14:41:19 -0800 Subject: [PATCH 09/47] temp: spell-check old files too --- .github/workflows/spellcheck.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/spellcheck.yaml b/.github/workflows/spellcheck.yaml index 050eb711e..352de0579 100644 --- a/.github/workflows/spellcheck.yaml +++ b/.github/workflows/spellcheck.yaml @@ -10,4 +10,5 @@ jobs: - uses: actions/checkout@v4 - uses: streetsidesoftware/cspell-action@v5 with: - files: '**/*.{json5,njk,md}' \ No newline at end of file + files: '**/*.{json5,njk,md}' + incremental_files_only: false \ No newline at end of file From 7f3cebe6e7e166663d5a174bc02ace50a13d5684 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Mon, 5 Feb 2024 14:42:49 -0800 Subject: [PATCH 10/47] only spellcheck in src --- .github/workflows/spellcheck.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/spellcheck.yaml b/.github/workflows/spellcheck.yaml index 352de0579..f89789d48 100644 --- a/.github/workflows/spellcheck.yaml +++ b/.github/workflows/spellcheck.yaml @@ -10,5 +10,6 @@ jobs: - uses: actions/checkout@v4 - uses: streetsidesoftware/cspell-action@v5 with: + root: 'src' files: '**/*.{json5,njk,md}' incremental_files_only: false \ No newline at end of file From 38b38f0b6c948f6af0b7e6d5dc93d31fbce2501f Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Mon, 5 Feb 2024 15:09:27 -0800 Subject: [PATCH 11/47] cspell config, start of custom dictionaries --- .cspell/custom-words.txt | 8 ++++++++ .cspell/holochain-words.txt | 12 ++++++++++++ .cspell/template-words.txt | 11 +++++++++++ .cspell/words-that-should-exist.txt | 13 +++++++++++++ cspell.json | 21 +++++++++++++++++++++ 5 files changed, 65 insertions(+) create mode 100644 .cspell/custom-words.txt create mode 100644 .cspell/holochain-words.txt create mode 100644 .cspell/template-words.txt create mode 100644 .cspell/words-that-should-exist.txt create mode 100644 cspell.json diff --git a/.cspell/custom-words.txt b/.cspell/custom-words.txt new file mode 100644 index 000000000..1f2c42590 --- /dev/null +++ b/.cspell/custom-words.txt @@ -0,0 +1,8 @@ +agent-centricity +Anwaar +Burmeister +CRDT +d'Aoust +IPFS +Ulhaq +Wahlstrom diff --git a/.cspell/holochain-words.txt b/.cspell/holochain-words.txt new file mode 100644 index 000000000..e9ecc5015 --- /dev/null +++ b/.cspell/holochain-words.txt @@ -0,0 +1,12 @@ +hApp +Holo +Holo's +Holochain +Holochain's +Holonix +Tryorama +webhapp +zome +zome's +zomes +zomes' \ No newline at end of file diff --git a/.cspell/template-words.txt b/.cspell/template-words.txt new file mode 100644 index 000000000..66aff105d --- /dev/null +++ b/.cspell/template-words.txt @@ -0,0 +1,11 @@ +brower +coreconcepts +elif +endfor +endlink +endmacro +endrenderlayoutblock +newblock +renderlayoutblock +storysequence +surpress diff --git a/.cspell/words-that-should-exist.txt b/.cspell/words-that-should-exist.txt new file mode 100644 index 000000000..836c6b430 --- /dev/null +++ b/.cspell/words-that-should-exist.txt @@ -0,0 +1,13 @@ +affordance +affordances +counterparties +counterparties' +counterparty +counterparty's +filesystem +filesystems +permissivity +todo +todos +unforgeable +unvalidated \ No newline at end of file diff --git a/cspell.json b/cspell.json new file mode 100644 index 000000000..82e873583 --- /dev/null +++ b/cspell.json @@ -0,0 +1,21 @@ +{ + "dictionaries": ["holochain", "words-that-should-exist", "custom", "template"], + "dictionaryDefinitions": [ + { + "name": "holochain", + "path": "./.cspell/holochain-words.txt" + }, + { + "name": "words-that-should-exist", + "path": "./.cspell/words-that-should-exist.txt" + }, + { + "name": "custom", + "path": "./.cspell/custom-words.txt" + }, + { + "name": "template", + "path": "./.cspell/template-words.txt" + } + ] +} \ No newline at end of file From 93a6c7a4733e1d7bf50f1406b75ca00b29a64563 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Mon, 5 Feb 2024 15:18:40 -0800 Subject: [PATCH 12/47] more custom words and standard dictionaries --- .cspell/custom-words.txt | 10 ++++++++++ .cspell/holochain-words.txt | 3 +++ .cspell/words-that-should-exist.txt | 6 ++++++ cspell.json | 2 +- 4 files changed, 20 insertions(+), 1 deletion(-) diff --git a/.cspell/custom-words.txt b/.cspell/custom-words.txt index 1f2c42590..9a7a8cf9a 100644 --- a/.cspell/custom-words.txt +++ b/.cspell/custom-words.txt @@ -1,8 +1,18 @@ agent-centricity Anwaar Burmeister +Cachix CRDT d'Aoust IPFS +NixOS +nixpkgs +QUIC +rustc +rustflags +rustup +Tauri Ulhaq Wahlstrom +WebRTC +workdir diff --git a/.cspell/holochain-words.txt b/.cspell/holochain-words.txt index e9ecc5015..0791b3a23 100644 --- a/.cspell/holochain-words.txt +++ b/.cspell/holochain-words.txt @@ -1,9 +1,12 @@ +DeepKey +DPKI hApp Holo Holo's Holochain Holochain's Holonix +sharded Tryorama webhapp zome diff --git a/.cspell/words-that-should-exist.txt b/.cspell/words-that-should-exist.txt index 836c6b430..a4605823f 100644 --- a/.cspell/words-that-should-exist.txt +++ b/.cspell/words-that-should-exist.txt @@ -1,13 +1,19 @@ affordance affordances +automations +birthdate counterparties counterparties' counterparty counterparty's filesystem filesystems +interoperating permissivity +runtimes +sandboxed todo todos unforgeable +uninstallation unvalidated \ No newline at end of file diff --git a/cspell.json b/cspell.json index 82e873583..2b7baeb46 100644 --- a/cspell.json +++ b/cspell.json @@ -1,5 +1,5 @@ { - "dictionaries": ["holochain", "words-that-should-exist", "custom", "template"], + "dictionaries": ["holochain", "words-that-should-exist", "custom", "template", "html", "css", "softwareTerms"], "dictionaryDefinitions": [ { "name": "holochain", From 0c1edc7be8a0ff6a9394df66780126c6bce2afbc Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Mon, 5 Feb 2024 15:26:59 -0800 Subject: [PATCH 13/47] add lorem ipsum dictionary --- .cspell/template-words.txt | 5 +++++ .cspell/words-that-should-exist.txt | 1 + .github/workflows/spellcheck.yaml | 2 ++ cspell.json | 1 + 4 files changed, 9 insertions(+) diff --git a/.cspell/template-words.txt b/.cspell/template-words.txt index 66aff105d..6de02e085 100644 --- a/.cspell/template-words.txt +++ b/.cspell/template-words.txt @@ -5,7 +5,12 @@ endfor endlink endmacro endrenderlayoutblock +gtag +MSIE newblock +pagefind +rocketship renderlayoutblock +srcset storysequence surpress diff --git a/.cspell/words-that-should-exist.txt b/.cspell/words-that-should-exist.txt index a4605823f..2db28d961 100644 --- a/.cspell/words-that-should-exist.txt +++ b/.cspell/words-that-should-exist.txt @@ -9,6 +9,7 @@ counterparty's filesystem filesystems interoperating +permissioned permissivity runtimes sandboxed diff --git a/.github/workflows/spellcheck.yaml b/.github/workflows/spellcheck.yaml index f89789d48..76548251f 100644 --- a/.github/workflows/spellcheck.yaml +++ b/.github/workflows/spellcheck.yaml @@ -8,6 +8,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 + - name: 'Get dictionaries' + run: npm install @cspell/dict-lorem-ipsum - uses: streetsidesoftware/cspell-action@v5 with: root: 'src' diff --git a/cspell.json b/cspell.json index 2b7baeb46..dd77b24b7 100644 --- a/cspell.json +++ b/cspell.json @@ -1,4 +1,5 @@ { + "import": ["@cspell/dict-lorem-ipsum/cspell-ext.json"], "dictionaries": ["holochain", "words-that-should-exist", "custom", "template", "html", "css", "softwareTerms"], "dictionaryDefinitions": [ { From 5127124166c0ba4520d2476f6e6fb4e4bc06b075 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Mon, 5 Feb 2024 15:29:23 -0800 Subject: [PATCH 14/47] do I need to enable the lipsum dictionary or sthg? --- cspell.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cspell.json b/cspell.json index dd77b24b7..8ef473474 100644 --- a/cspell.json +++ b/cspell.json @@ -1,6 +1,6 @@ { "import": ["@cspell/dict-lorem-ipsum/cspell-ext.json"], - "dictionaries": ["holochain", "words-that-should-exist", "custom", "template", "html", "css", "softwareTerms"], + "dictionaries": ["holochain", "words-that-should-exist", "custom", "template", "html", "css", "softwareTerms", "lorem-ipsum"], "dictionaryDefinitions": [ { "name": "holochain", From c6aa3380f7b6083161fb1edc71d4fe1f07941866 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Fri, 9 Feb 2024 10:36:51 -0800 Subject: [PATCH 15/47] add more spelling words and dicts --- .cspell/custom-words.txt | 1 + .cspell/holochain-words.txt | 1 + .cspell/words-that-should-exist.txt | 1 + .github/workflows/spellcheck.yaml | 4 +++- cspell.json | 4 ++-- 5 files changed, 8 insertions(+), 3 deletions(-) diff --git a/.cspell/custom-words.txt b/.cspell/custom-words.txt index 9a7a8cf9a..c11ec5c7a 100644 --- a/.cspell/custom-words.txt +++ b/.cspell/custom-words.txt @@ -11,6 +11,7 @@ QUIC rustc rustflags rustup +subl Tauri Ulhaq Wahlstrom diff --git a/.cspell/holochain-words.txt b/.cspell/holochain-words.txt index 0791b3a23..0616f8b8e 100644 --- a/.cspell/holochain-words.txt +++ b/.cspell/holochain-words.txt @@ -1,4 +1,5 @@ DeepKey +dnas DPKI hApp Holo diff --git a/.cspell/words-that-should-exist.txt b/.cspell/words-that-should-exist.txt index 2db28d961..3c33be5d1 100644 --- a/.cspell/words-that-should-exist.txt +++ b/.cspell/words-that-should-exist.txt @@ -13,6 +13,7 @@ permissioned permissivity runtimes sandboxed +spacebar todo todos unforgeable diff --git a/.github/workflows/spellcheck.yaml b/.github/workflows/spellcheck.yaml index 76548251f..f4fbcd302 100644 --- a/.github/workflows/spellcheck.yaml +++ b/.github/workflows/spellcheck.yaml @@ -9,7 +9,9 @@ jobs: steps: - uses: actions/checkout@v4 - name: 'Get dictionaries' - run: npm install @cspell/dict-lorem-ipsum + run: | + npm install @cspell/dict-lorem-ipsum + npm install @cspell/dict-rust - uses: streetsidesoftware/cspell-action@v5 with: root: 'src' diff --git a/cspell.json b/cspell.json index 8ef473474..79cd9f018 100644 --- a/cspell.json +++ b/cspell.json @@ -1,6 +1,6 @@ { - "import": ["@cspell/dict-lorem-ipsum/cspell-ext.json"], - "dictionaries": ["holochain", "words-that-should-exist", "custom", "template", "html", "css", "softwareTerms", "lorem-ipsum"], + "import": ["@cspell/dict-lorem-ipsum/cspell-ext.json", "@cspell/dict-rust/cspell-ext.json"], + "dictionaries": ["holochain", "words-that-should-exist", "custom", "template", "html", "css", "softwareTerms", "lorem-ipsum", "rust"], "dictionaryDefinitions": [ { "name": "holochain", From fe82098e5c90fbb010aea669a9648979080ff214 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Fri, 9 Feb 2024 10:37:05 -0800 Subject: [PATCH 16/47] spelling corrections and line break fixes --- src/pages/concepts/10_countersigning.md | 2 +- src/pages/concepts/11_lifecycle_events.md | 4 ++-- src/pages/concepts/7_validation.md | 4 ++-- src/pages/concepts/9_signals.md | 2 +- src/pages/ds/code-fences.md | 2 +- src/pages/ds/containers.md | 14 +++++++------- src/pages/ds/index.md | 2 +- src/pages/get-started/index.md | 12 +++++------- src/pages/references/glossary.md | 6 +++--- 9 files changed, 23 insertions(+), 25 deletions(-) diff --git a/src/pages/concepts/10_countersigning.md b/src/pages/concepts/10_countersigning.md index 261013c52..92d1ab81b 100644 --- a/src/pages/concepts/10_countersigning.md +++ b/src/pages/concepts/10_countersigning.md @@ -112,7 +112,7 @@ When Alice and Bob's conductors each receive the full set of actions, they final Normally, counterparties publish their actions to a DHT neighborhood and hope that there are enough honest and reliable validation authorities there to collect and return a full set of signed actions to everyone. But this can put them at risk; if the neighborhood contains authorities who either are malicious, have slow network connections, or have inaccurate clocks, it's possible for some counterparties to see all signatures within the time window while others do not. This would cause some to complete the session and others to back out, leading to inconsistent state on the DHT and even apparent evidence of source chain revisions. -The problem is compounded if one counterparty is able to collude with a neighbourhood authority to collect signatures but not contribute its own signature to the session. This would cause all honest counterparties to reach the session timeout and cancel the countersigning process, only to have their full signature set revealed later when they've already written other records to their source chains, again creating apparent evidence that they've revised their source chains. +The problem is compounded if one counterparty is able to collude with a neighborhood authority to collect signatures but not contribute its own signature to the session. This would cause all honest counterparties to reach the session timeout and cancel the countersigning process, only to have their full signature set revealed later when they've already written other records to their source chains, again creating apparent evidence that they've revised their source chains. To counter this problem, the counterparties can nominate an **enzyme**. The enzyme is typically an agent that all counterparties can trust, with no stake in the transaction, who participates in the session only as a witness. It's their job to collect all the signatures and send them to the other counterparties. The data they sign includes all signatures as well as their own. As the collector and final signer, they definitively determine whether the session was successful within the time period, and put their name to the presence of a full signature set. diff --git a/src/pages/concepts/11_lifecycle_events.md b/src/pages/concepts/11_lifecycle_events.md index 1b5d48ed8..a9c2c12bd 100644 --- a/src/pages/concepts/11_lifecycle_events.md +++ b/src/pages/concepts/11_lifecycle_events.md @@ -37,7 +37,7 @@ We covered both of these callbacks in the section on [validation](../7_validatio * An integrity zome's validation callback is called any time an entry or link whose type is defined in the zome is written to the source chain. * The validation callback is called for every **DHT operation** produced by an action. -* The validation callback must return success, failure with an optional failure message, or 'unresolved depndencies'. If a validation callback attempts but fails to retrieve DHT data, the conductor will terminate the execution of the validation function with the 'unresolved dependencies' result. +* The validation callback must return success, failure with an optional failure message, or 'unresolved dependencies'. If a validation callback attempts but fails to retrieve DHT data, the conductor will terminate the execution of the validation function with the 'unresolved dependencies' result. * The genesis self-check function is called at cell instantiation time, before the cell attempts to connect to the network. It's an opportunity to do a quick check on the integrity of the user-supplied **membrane proof**. ## Init callback @@ -89,7 +89,7 @@ Behind the scenes, a remote signal is just a [remote call](../8_calls_capabiliti ## Key takeaways -* The entry type defintions callback tells a conductor about the entry types an integrity zome defines, but the Rust SDK generates one for you using macros. +* The entry type definitions callback tells a conductor about the entry types an integrity zome defines, but the Rust SDK generates one for you using macros. * Validation and genesis self-check callbacks receive data for validation. * The init callback can be used to set up initial cell state, make connections with peers, and other startup tasks. * The post-commit callback is called after every successful zome function call that commits data. diff --git a/src/pages/concepts/7_validation.md b/src/pages/concepts/7_validation.md index f39d46b70..e9f8c0f87 100644 --- a/src/pages/concepts/7_validation.md +++ b/src/pages/concepts/7_validation.md @@ -178,7 +178,7 @@ Norman and Rosie add Alice to their permanent block lists and remove her data fr Eventually, everyone knows that Alice is a 'bad actor' who has hacked her app. They all ignore her whenever she tries to talk to them, which effectively ejects her from the DHT. !!! info What happens when an agent receives a warrant instead of data? -Currently only validation authorities permanently block authors for invalid data; a future release of Holochain will also allow non-authorities to store a warrant they've received and use it as justification for taking personal defensive action against the warranated agent. This will likely look like challenging the warranted agent to produce the potentially invalid data on first contact, then blocking them if the data is indeed valid or warranting the authority if the data is valid and the warrant is erroneous. +Currently only validation authorities permanently block authors for invalid data; a future release of Holochain will also allow non-authorities to store a warrant they've received and use it as justification for taking personal defensive action against the warranted agent. This will likely look like challenging the warranted agent to produce the potentially invalid data on first contact, then blocking them if the data is indeed valid or warranting the authority if the data is valid and the warrant is erroneous. !!! ::: @@ -211,7 +211,7 @@ There are certain validation-like things that either fall outside the constraint A **genesis self-check** function can be defined in your integrity zomes. Its job is to 'pre-validate' an agent's membrane proof before she joins a network, to prevent her from accidentally committing a membrane proof that would forever bar her from joining the network. -This function exists because it may require DHT access to fully check the validity of a membrane proof, but the newcomer isn't yet part of the network when they attempt to publish their membrame proof action. So this function verifies as much as it can without network access. +This function exists because it may require DHT access to fully check the validity of a membrane proof, but the newcomer isn't yet part of the network when they attempt to publish their membrane proof action. So this function verifies as much as it can without network access. If the self-check fails, the cell fails to be created and the rest of the cells in the hApp are disabled. Then an error is passed back to the system that's trying to install the app (usually this is the [Holochain Launcher](https://github.com/holochain/launcher), which will then show an error message to the user. diff --git a/src/pages/concepts/9_signals.md b/src/pages/concepts/9_signals.md index b47cfc17d..5d61236b0 100644 --- a/src/pages/concepts/9_signals.md +++ b/src/pages/concepts/9_signals.md @@ -59,7 +59,7 @@ Signals are a fairly simple construct right now, and it's likely that your app w ## Key takeaways -* Signals allow a cell to communicate with listeners without expecting a resonse. +* Signals allow a cell to communicate with listeners without expecting a response. * Signals can be used to avoid * A signal doesn't have guaranteed delivery because there's no way to tell whether it's been received. * A signal is simply a message payload consisting of arbitrary bytes. diff --git a/src/pages/ds/code-fences.md b/src/pages/ds/code-fences.md index e28d0bc5b..0cb83a585 100644 --- a/src/pages/ds/code-fences.md +++ b/src/pages/ds/code-fences.md @@ -28,7 +28,7 @@ Multiple line ### Without Copy button -To surpress the copy buttom you can wrap the code block in a `::: output-block` container +To surpress the copy button you can wrap the code block in a `::: output-block` container Single line ::: output-block diff --git a/src/pages/ds/containers.md b/src/pages/ds/containers.md index 9a7681500..8eb8c68ac 100644 --- a/src/pages/ds/containers.md +++ b/src/pages/ds/containers.md @@ -1,5 +1,5 @@ --- -title: Holochain Dev Portal Design System - Code Fences +title: Holochain Dev Portal Design System - Code Fences layout: ds-layout.njk layoutId: ds-layout-type pageStyleId: design-system-containers @@ -9,13 +9,13 @@ pageStyleId: design-system-containers To avoid the meta-ness of trying to code-fence markdown, please look at the source .md files for how to write the markdown. The browser version will serve as reference of what it will look like. Also note that most of these elements are not standard md so they will not show up in their final expression in the Github or VS Code previews. !!! -There are a number of custom extensions to the `markdown-it-container` plugin that we have implemented. -Note: `markdown-it-container` requires that each container be specifically implemented, so you can't just use `!!! newblock` or simular. +There are a number of custom extensions to the `markdown-it-container` plugin that we have implemented. +Note: `markdown-it-container` requires that each container be specifically implemented, so you can't just use `!!! newblock` or similar. Accept as noted attribute blocks (exp: `{#an-id .a-class target=_blank}`) will be honored and express as attributes in the resulting tag. ## Details -Render a Detail/Summary block. +Render a Detail/Summary block. !!! details The summary text sit amet tellus cras adipiscing enim eu turpis egestas pretium aenean pharetra magna ac placerat vestibulum lectus mauris ultrices eros in cursus turpis massa tincidunt dui ut ornare lectus sit !!! @@ -45,7 +45,7 @@ Can wrap around code fences to prevent Copy buttons form being added to the code - ### Note #### No Title - !!! note + !!! note Note contents !!! @@ -56,7 +56,7 @@ Can wrap around code fences to prevent Copy buttons form being added to the code - ### Info #### No Title - !!! info + !!! info Info contents !!! @@ -67,7 +67,7 @@ Can wrap around code fences to prevent Copy buttons form being added to the code - ### Learn #### No Title - !!! learn + !!! learn Learn contents !!! diff --git a/src/pages/ds/index.md b/src/pages/ds/index.md index 185f4fa6a..89adc468e 100644 --- a/src/pages/ds/index.md +++ b/src/pages/ds/index.md @@ -5,7 +5,7 @@ layoutId: ds-layout-type pageStyleId: design-system --- -A collection of design elements used in the Dev Portal for referenence and UX review. Not intended to be linked to in public sources. +A collection of design elements used in the Dev Portal for reference and UX review. Not intended to be linked to in public sources. !!! note To avoid the meta-ness of trying to code-fence markdown, please look at the source .md files for how to write the markdown. The browser version will serve as reference of what it will look like. Also note that most of these elements are not standard md so they will not show up in their final expression in the Github or VS Code previews. diff --git a/src/pages/get-started/index.md b/src/pages/get-started/index.md index 993f330c8..b875062ac 100644 --- a/src/pages/get-started/index.md +++ b/src/pages/get-started/index.md @@ -387,7 +387,7 @@ A DNA folder is where you will put the code that defines the rules of your appli #### Why do we use the term DNA? -In Holochain, we are trying to enable people to **choose to participate in coherent social coordination**, or interact meaningfully with each other online without needing a central authority to define the rules and keep everyone safe. To do that, we are borrowing some patterns from how biological organisms are able to coordinate coherently even at scales that social organisations such as companies or nations have come nowhere close to. In living creatures like humans, dolphins, redwood trees, and coral reefs, many of the cells in the body of an organism (trillions of the cells in a human body, for instance) are each running a (roughly) identical copy of a rule set in the form of DNA. +In Holochain, we are trying to enable people to **choose to participate in coherent social coordination**, or interact meaningfully with each other online without needing a central authority to define the rules and keep everyone safe. To do that, we are borrowing some patterns from how biological organisms are able to coordinate coherently even at scales that social organizations such as companies or nations have come nowhere close to. In living creatures like humans, dolphins, redwood trees, and coral reefs, many of the cells in the body of an organism (trillions of the cells in a human body, for instance) are each running a (roughly) identical copy of a rule set in the form of DNA. This enables many different independent parts (cells) to build relatively consistent superstructures (a body, for instance), move resources, identify and eliminate infections, and more --- all without centralized command and control. There is no "CEO" cell in the body telling everybody else what to do. It's a bunch of independent actors (cells) playing by a consistent set of rules (the DNA) coordinating in effective and resilient ways. @@ -1198,8 +1198,7 @@ Your `
` block should now look like this: ```svelte
{#if loading} -
+
{:else} @@ -1235,8 +1234,7 @@ Now your `
` block should look like this: ```svelte
{#if loading} -
+
{:else} @@ -1522,7 +1520,7 @@ If we now run the test again, it will pass. TODO: SHOW RUNNING THE TEST AND IT PASSING. -What about updating comments? Remember that in Holochain, because the source-chain is an appen only ledger, updating a comment is really creating a new comment and marking the old comment as deleted. Thus, when someone updates a comment, the create validation rules will still get enforced because a new comment entry gets created. +What about updating comments? Remember that in Holochain, because the source-chain is an append-only ledger, updating a comment is really creating a new comment and marking the old comment as deleted. Thus, when someone updates a comment, the create validation rules will still get enforced because a new comment entry gets created. ### 5.2. Advanced (inspecting the actions) @@ -1648,7 +1646,7 @@ The steps for publishing an app to the Launcher's app store are documented in th If you prefer to distribute your app as a full standalone executable, you will need to bundle the Holochain runtime and your app together and take care of the necessary interactions between them. Because Holochain itself is really just a set of Rust libraries, you can of course build your own application that uses those libraries, but that's a fair amount of work. Currently there are two much simpler paths for doing this: using either the [Electron](https://www.electronjs.org/) or [Tauri](https://tauri.app/) frameworks, both of which can generate cross-platform executables from standard web UIs. These frameworks also support inclusion of additional binaries, which in our case are the [holochain conductor](https://docs.rs/holochain/latest/holochain/) and the [lair keystore](https://docs.rs/lair_keystore/latest/lair_keystore/). Though there is quite a bit of complexity in setting things up for these frameworks, all the hard work has already been done for you: * **Electron**: Refer to the community-supported [electron-holochain-template](https://github.com/lightningrodlabs/electron-holochain-template/) repo. -* **Tauri**: See the officially supported [holochain-kanagroo](https://github.com/holochain-apps/holochain-kangaroo) repo. +* **Tauri**: See the officially supported [holochain-kangaroo](https://github.com/holochain-apps/holochain-kangaroo) repo. Both of these are GitHub template repos with detailed instructions on how to clone the repos and add in your UI and DNA, as well as build and release commands that will create the cross-platform executables that you can then deliver to your end users. diff --git a/src/pages/references/glossary.md b/src/pages/references/glossary.md index 7bb4325bf..49bb87aca 100644 --- a/src/pages/references/glossary.md +++ b/src/pages/references/glossary.md @@ -562,7 +562,7 @@ The [address](#address) that a [link](#link) points to. As with the [base](#link #### Link type -A specification for a [link](#link) defined in an [integrity zome](#integrity-zome) that a [DNA](#dna) should recognise and understand, similar to a foreign reference in a database table schema. DNA developers create their own link types for the data their app needs to store, and can write [validation functions](#validation-function) for [operations](#dht-operation) that [create, update, or delete](#create-read-update-delete-crud) links of those types. +A specification for a [link](#link) defined in an [integrity zome](#integrity-zome) that a [DNA](#dna) should recognize and understand, similar to a foreign reference in a database table schema. DNA developers create their own link types for the data their app needs to store, and can write [validation functions](#validation-function) for [operations](#dht-operation) that [create, update, or delete](#create-read-update-delete-crud) links of those types. #### Link types callback @@ -630,7 +630,7 @@ See [neighborhood](#neighborhood). A range of [DHT addresses](#dht-address) about which a [node](#node) attempts to know everything they ought to know. Neighbors collectively support the [resilience](#resilience) of all [DHT data](#dht-data) whose [address](#dht-address) is within their respective [storage arcs](#storage-arc) by storing and [validating](#validation-rule) it and [gossiping](#gossip) it to all [neighbors](#neighbor) with whom their storage arcs overlap. - + #### Network @@ -914,7 +914,7 @@ See [validation authority](#validation-authority). 1. a [DHT operation](#dht-operation) is invalid and its author has transgressed a [validation rule](#validation-rule), 2. a warrant is invalid, or -3. an agent should not be communicated with for reasons not easily expressable as a [validation function](#validation-function), such as termination of employment or copyright . +3. an agent should not be communicated with for reasons not easily expressible as a [validation function](#validation-function), such as termination of employment or copyright . A warrant can be used by any peer as legitimate grounds for blocking communication with the [agent](#agent) being warranted, as well as for deleting one's locally stored copy of any invalid data covered by the warrant, even if one would normally be a [validation authority](#validation-authority) for that data. From 25a4854eebe75edd24f46c67438417e85e9b1036 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Fri, 9 Feb 2024 10:45:00 -0800 Subject: [PATCH 17/47] more spelling words --- .cspell/custom-words.txt | 5 +++++ .cspell/template-words.txt | 2 ++ 2 files changed, 7 insertions(+) diff --git a/.cspell/custom-words.txt b/.cspell/custom-words.txt index c11ec5c7a..7aee42acf 100644 --- a/.cspell/custom-words.txt +++ b/.cspell/custom-words.txt @@ -1,12 +1,17 @@ agent-centricity Anwaar +buildinputs +builtins Burmeister Cachix CRDT d'Aoust +fixt +gnused IPFS NixOS nixpkgs +pkgs QUIC rustc rustflags diff --git a/.cspell/template-words.txt b/.cspell/template-words.txt index 6de02e085..bd9270d87 100644 --- a/.cspell/template-words.txt +++ b/.cspell/template-words.txt @@ -2,10 +2,12 @@ brower coreconcepts elif endfor +endlayoutblock endlink endmacro endrenderlayoutblock gtag +layoutblock MSIE newblock pagefind From 263f40b798ea27087dcb6ffdc10befc13e6ae67b Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Fri, 9 Feb 2024 10:48:36 -0800 Subject: [PATCH 18/47] more spelling fixes -- not sure why these new ones popped up --- src/pages/concepts/11_lifecycle_events.md | 2 +- src/pages/concepts/2_application_architecture.md | 6 +++--- src/pages/concepts/4_dht.md | 2 +- src/pages/get-started/index.md | 8 ++++---- src/pages/get-started/install-advanced.md | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/pages/concepts/11_lifecycle_events.md b/src/pages/concepts/11_lifecycle_events.md index a9c2c12bd..c4a171f71 100644 --- a/src/pages/concepts/11_lifecycle_events.md +++ b/src/pages/concepts/11_lifecycle_events.md @@ -46,7 +46,7 @@ We covered both of these callbacks in the section on [validation](../7_validatio Shortly after a cell is instantiated and connects to the network, the conductor looks for an init callback in every coordinator zome. This function is a place to initialize source chain data with necessary information, or make connections to peers, or anything necessary to bootstrap the cell. When all coordinator zomes in a cell have finished executing their init callback, the final [genesis record](../3_source_chain/), the 'init complete' action, is written to the source chain. -An init callback can return 'pass', 'fail' with an error string, or a list of unresolved dependencies. If one init callback fails, initialiation of the entire cell fails and the cell is put into a disabled state. +An init callback can return 'pass', 'fail' with an error string, or a list of unresolved dependencies. If one init callback fails, initialization of the entire cell fails and the cell is put into a disabled state. !!! warn Lazy initialization The init callbacks aren't actually called until the first time something calls a function in any coordinator zome. diff --git a/src/pages/concepts/2_application_architecture.md b/src/pages/concepts/2_application_architecture.md index 540b6a7da..007741505 100644 --- a/src/pages/concepts/2_application_architecture.md +++ b/src/pages/concepts/2_application_architecture.md @@ -32,7 +32,7 @@ These data integrity rules create a membrane between a participant and her peers There's another membrane, which sits between a participant and her copy of the application. The application's public functions define the processes that can be used to access, interpret, and create data, as well as communicate with other participants and applications. Her copy of the application makes those functions available to any client on her machine that wants to act on her behalf, such as a UI or a scheduled script. Those functions are also made available to her peers in the same network so she can delegate some of her agency to them. The application developer can give her tools to control access to these functions using [capability-based security](../8_calls_capabilities/). -![One participant's copy of the hApp. A membrane surrounds her hApp. On her device, three clients are successfully calling the hApp's functions while a malware is rejected. From the network, two peers try to call her hApp's functions; one succeds while another fails.](/assets/img/concepts/2.3-process-membrane.png){.sz80p} {.center} +![One participant's copy of the hApp. A membrane surrounds her hApp. On her device, three clients are successfully calling the hApp's functions while a malware is rejected. From the network, two peers try to call her hApp's functions; one succeeds while another fails.](/assets/img/concepts/2.3-process-membrane.png){.sz80p} {.center} ## Layers of the application stack @@ -54,7 +54,7 @@ The client is like the front end of a traditional app and can be written with wh ### Conductor -![A participant's conductor hosts multiple hApps for her, mediating the connections between the hApp and her clients, as well betwee then hApp and other participants' conductors running the same hApp.](/assets/img/concepts/2.5-conductor.png){.sz80p} {.center} +![A participant's conductor hosts multiple hApps for her, mediating the connections between the hApp and her clients, as well as between then hApp and other participants' conductors running the same hApp.](/assets/img/concepts/2.5-conductor.png){.sz80p} {.center} The hApp is hosted in the participant's **conductor**. It's the runtime that sandboxes and executes hApp code, handles cryptographic signing, manages data flow and storage, and handles connections both locally with clients and remotely with peers. When the conductor receives a function call, it routes it to the right function in the right hApp. @@ -129,7 +129,7 @@ That's the entire stack of a Holochain hApp. Let's review, this time from the in 2. One or more zomes are bundled into a **DNA**, which is like a microservice that defines all the rules for a given network. 3. A DNA comes alive as a **cell** bound to an agent ID, running on behalf of a participant. 4. One or more cells are slotted into roles in a **hApp**, which makes up an application's back end. -5. A participant's **conductor** hosts the hApps she uses, mediating local and network access to them and executig their code. +5. A participant's **conductor** hosts the hApps she uses, mediating local and network access to them and executing their code. 6. The participant's **clients** access the hApp via the conductor's local RPC interface, while the conductor also allows the hApp to communicate with other participants' cells that belong to the same networks. ## Key takeaways diff --git a/src/pages/concepts/4_dht.md b/src/pages/concepts/4_dht.md index 7623fa5ce..074297e6d 100644 --- a/src/pages/concepts/4_dht.md +++ b/src/pages/concepts/4_dht.md @@ -133,7 +133,7 @@ Let's see what happens when a simple 'create entry' record is published to the D * A **store entry** operation, containing both the entry blob and the create-entry action, goes to the **entry authorities** whose arcs cover the entry hash. When it's integrated, the authorities will hold the entry data at that base, along with metadata that contains the action. * A **store record** operation, containing the action, goes to the **record authorities** whose arcs cover the action's hash. When it's integrated, the authorities will hold the action at that base. -* An **register agent activity** operation, containing the action, goes to the **agent activity authorities**, peers whose arcs cover the author's public key. When it's integreated, the authorities will hold the action along with all prior action. +* An **register agent activity** operation, containing the action, goes to the **agent activity authorities**, peers whose arcs cover the author's public key. When it's integrated, the authorities will hold the action along with all prior action. No matter what operation they receive, all three authorities check the signature on it to make sure it hasn't been modified in transit and it belongs to the agent that claims to have authored it. If the signature check fails, the data is rejected. diff --git a/src/pages/get-started/index.md b/src/pages/get-started/index.md index b875062ac..0636fb459 100644 --- a/src/pages/get-started/index.md +++ b/src/pages/get-started/index.md @@ -24,7 +24,7 @@ tocData: href: 4-6-scaffold-entry-types - text: 4.7. Scaffold a collection href: 4-7-scaffold-a-collection - - text: 4.8. Run your applicaiton in dev mode + - text: 4.8. Run your application in dev mode href: 4-8-run-your-application-in-dev-mode - text: 4.9. Integrate the generated UI elements href: 4-9-integrate-the-generated-ui-elements @@ -62,7 +62,7 @@ In this section, we'll walk you through the step-by-step process of installing H ### 2.1. Hardware requirements -Before you install the Holochain development ment, make sure your system meets the following hardware requirements: +Before you install the Holochain development environment, make sure your system meets the following hardware requirements: * 8GB+ RAM (16GB+ recommended) * 4+ cores CPU (6+ cores recommended) @@ -565,7 +565,7 @@ There are a few different kinds of actions, but the most common one is `Create`, Every action contains the ID of its author (actually a cryptographic public key), a timestamp, a pointer to the previous source chain record, and a pointer to the entry data, if there is any. In this way, actions provide historical context and provenance for the entries they operate on. -The pointer to the previous source chain record creates an unbroken history from the current record all the way back to the source chain's starting point. This 'genesis' record contains the hash of the DNA, which servs as both the identifier for the specific set of validation rules that all following records should follow and the ID of the network that this source chain's actions are participating in. +The pointer to the previous source chain record creates an unbroken history from the current record all the way back to the source chain's starting point. This 'genesis' record contains the hash of the DNA, which serves as both the identifier for the specific set of validation rules that all following records should follow and the ID of the network that this source chain's actions are participating in. An action is cryptographically signed by its author and is immutable (can't be changed or erased from either the source chain or the network's data store) once written. This, along with the validation rules specified by the DNA hash in the genesis record, are examples of a concept we call "intrinsic data integrity", in which data carries enough information about itself to be self-validating. @@ -1111,7 +1111,7 @@ Next some variables are instantiated: one to hold the Holochain client that conn **Take note of the line that starts with `$:`**. This is a special Svelte label that turns regular variables into **reactive variables**. We won't get too deep into Svelte right now, because this is a tutorial about Holochain, but when a reactive variable changes, Svelte will re-render the entire component. This lets you write a template declaratively, enclosing the reactive variable in `{}` braces, and let Svelte handle the updating of the template wherever the variable changes. -Finally, there's an `onMount` handler, which is run when the component is first displayed. The handler currently does one thing: it connects to the hApp backend via the conductor, waits until the connection is establised, sets `loading` to false, and adds the resulting client connection to the context so that all components can access it. +Finally, there's an `onMount` handler, which is run when the component is first displayed. The handler currently does one thing: it connects to the hApp backend via the conductor, waits until the connection is established, sets `loading` to false, and adds the resulting client connection to the context so that all components can access it. #### `
` section diff --git a/src/pages/get-started/install-advanced.md b/src/pages/get-started/install-advanced.md index 69b320dc3..693fc2e85 100644 --- a/src/pages/get-started/install-advanced.md +++ b/src/pages/get-started/install-advanced.md @@ -93,7 +93,7 @@ In the `outputs` set, this flake composes a dev shell that inherits its inputs f ### `flake.lock` file -Once the `flake.nix` is created (and added to the git repo), the lockfile can be initiliazed by running `nix flake udpate`. The resulting `flake.lock` records pinned references to all the `inputs` at the given point in time, in our case to the the `holochain-flake` and of all its inputs transitively; altogether keeping track of all the dependencies of your app's development environment. +Once the `flake.nix` is created (and added to the git repo), the lockfile can be initialized by running `nix flake update`. The resulting `flake.lock` records pinned references to all the `inputs` at the given point in time, in our case to the the `holochain-flake` and of all its inputs transitively; altogether keeping track of all the dependencies of your app's development environment. ### A Gotcha with Flakes and Git From bf41816c04d74cca3330e97be193a8ea466eaa87 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Fri, 9 Feb 2024 12:15:09 -0800 Subject: [PATCH 19/47] update source chain CC to say that init complete can have app actions preceding it --- .../concepts/3.4-genesis-records-3-and-4.png | Bin 120455 -> 150134 bytes src/pages/concepts/3_source_chain.md | 5 +++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/assets/img/concepts/3.4-genesis-records-3-and-4.png b/src/assets/img/concepts/3.4-genesis-records-3-and-4.png index 70f06ce9542e05fdc003a5869e1b18badbad1d94..c17d6d050ba016d8eef51e6295360753a5cb2791 100644 GIT binary patch literal 150134 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
Y4Rq>LfC|yn&u#l4NqowI!6=99 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

klo38K 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 z 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%0AUbND~5gq@eZzo51rr z`%5zK{<1*&LP)p`b{QncQ<2oSe&cSt#+iBZek=Z)JI@v=1^0jIw*?C(>|WbjTc?+p zPE$;v6ga=VB_$DP7(CI|S+M~1l?DSxA(+ni*WEih0tHu2M|SM;GEa(*HgobXs|knH zx#Znu{3(zrKRvz2z!CEA^!t)1C50`Fva!x83@s!t&rsQM!FVjN5tc&@QY=%meYayt zIO15M$n=_XImvz5K7Tl+t*s03{E&}aMBLsUwi<5VB@nt}Fg`)JdXkNxu@VfSh7Y+A z&%oy>((v=^F)?5U{jvB8RV+gGl~kJJK-x8ngWL6#hXyKj49m&s3N&eU#J+T?In)%b zl*M&+5`BB)NKV-ohe{+X5{Sp{x*zmA$4`?U>qf+|ftv{-oYc}X^TMjW&bW3ZUB)+y zmeDl{_M8=O>d+M=h2u-?Ou1<9-noN13O?`8@Wevs#g4>>!RQYs&o$Lce{RVJSru$H z8VX5mH-wdSRq)Ll>7=`wZg;y4UM^{TA4Usn{7-;Ii0A%-;tQY4^#NLhaw2XePVgiu z&U*z{amPxDRuHJ@_4uL{=PULzD?7(#I$y;zC)hv)dmAN>k(7Xrfe}{UhV$wlV>fq^ zmoWY!>gOj2amj0zg|U*1POed!`1V65l;QAp^Z4D`TOYcOr65P`*c?d{#|FgcSw8BaM%?i9McJ=5ob(w+LwOeV+xNRLeZUT0;X+tXJ2NVfhu zF{r7nGj-@vrdu6+w&qIb>)Y{pWsDKOrI2x*`pf68hz2r~IDvl(YA=gc_3K$PmY#?C zewS-!zM+#!pOSki1`vOfN=e2Z;tipCc^-Jroqe}iwW#xm3zWbOB*!HA>d%TnvyG~q zUdw&Tew(O))qsikP1`lExxwR|TWuXY3pt zs(N~|iK@Qs0iZz+5S3zk3($ZG7#P^Q#buwt?F>TtR#+%(yLi$RdvQU@%!Ac7lgMKomMUM61|&On?e3jqS3p|W&A_l1TNGCuG&3`! z<+di{pOcl9rD)&rATj8E*5+elVIg(x@4G1*tWZcrOr4feGOgd(e)r^F<#?shvEC9y zCdr1&(q=#0Tr`C6osd@nTq?PeZ+ndzl~vWlyAMJt?Uj<^I`;O=|G4q4udg56cpV)d zgOs<|;+mYB`{!jGo9t@mqZd55VvywtT-i+&GFA%lJoTk$2f?KvK}|6TMxoo*L=NV;n}YfPM<=LD%1NJ|P@T7CdfqTW5P zys?la4)j>`Ml$d=gDFs9OE^G*~jj#CL$>eY5L|7NML@3T0B9~_ddjYc{ut& z-)Tn!^jDKc(T|LYi$xqzyM?nIl&sj{b91(@xTDMBXn$wn(xZw}T08k%B<=skBg(Ut~Tj%qxrV zt*cPGl307-G(GB#3R!-xJm=|B5@8h=|5|BL6@6J-PS3=wF$znve1Kai!)ygNXQRCKnmrX~wxlbml+-;QdFa~h|9vfGbG=6O1sLu^*9Sll6Eh#ho>jU zs}jt%hxsqhC;bZ^CyAZc#fnv;Xh4~*ZS)CC6$vZ;O>W~mef^GuYrENoCkj}&lEk08 zX5w<`tdK#4Xfy76u0&R+~La$FB9)OUy(i%@0I&>U1rvbH}W5^YdY?QxoSKI8#zm{)L0; z>g2Bj5-H0>yp+*+cpogSYk9uteJ4D5!OzHmD;!dibHS))nL61J52_d`%R|EU$p$zB zC<`{*U%lnT^S%D!3h*U{5;lcy^?toRM8y+-J`F^<#7FgUEjwEf4)H*5vYs!qCh%%c zb(<+*7@v*>LcUI;45gZF76GI3UP2a3-KtV&mo2)MyZ_wDc>3Pw`@_J9%emdF)f?hGzH4GzKmZlVMBbJw1sg0@||D29B1&0?zW{ z^!w%M=|6LelVYy&42dUfo0ym-I_*oVJ~O4Lfs>PlU@uBbOOta@Bm=Ax1{U`AOIbMS z2~~}g^Md`NZmZAd6n8T-^|*xT2a5bTt8y|)6np&|52LQt=2~$Zn_tbZhKwX&KCq7c zPB+!QTC-`Z;7nQP(*&EM;PAC&yw@tB;m%$;-@|O?PY!2Vzvs0jnO7LQ(^LG3k)4K> zGo#s|t+tzi4NF^fKQQ9%zPh@~QqS(XR0@LIvBr9ULgCI;{n!Z!? zUfsrL31Ec1csoYf)6?=P*k$oVO&#N6V&P>h)xJGCA4y}?3s3h6l!7%V>@81JJ27#no_>;H)p=$(4mbi6}8cUSn+H`tGgjxO$`5=dvgyIqnG@IH=Lz0pvj^89S!`q{AP zh%NX#?@-(Yx6kmNoP9{>1;6~Rdm=Aao0TAEle*drUXQ3&>#Q(c-;T9i>~(6@?sbl{ zLI6CrLZ{(ps(nW+nDaos$Egs)7a|Fi!m57n8$cGLWV)^W%gc-@!fy{wFU}4-*lDbXv0xmJA5S2lHPKWsT}ANTiKh) zEY0M%h6DTu(ZbfYd~4nq6_rn_j$a$64!y50KJ(or`Jti{^dB`EoVq%ZU3qZ2`@I^) z#cz8)88F>6oxEK4K3^^}PnEEU>&jrN8rd$h2p%A4m3mnwpnKibseoRe6T~%Ly zc(}({p<&c8lb-&Nv+2DEDgi-%)oeGiy!^ki|NVPorZ36X*o@<$K-+KqY2x+X^aOkS zOAiQB4udD9KY7eV{1T((53T_>?^neipP7i!5X7u`=qmw_GY)wW^-c-D-lmu%>2xf2 zQ&|h{pKqCrpP-|oYu1>O$YL>>o^QU47#PG-zpn{4>|CzQTVlG-fCr|)PqW`rJ6!c* z=JbdvV_Eg3&?<>{LQ=}Z;B)+aeZFvUa>k~|D=Jjr(E|$v=bEY}o#HK!bj6{gOUZ=0 z|Jb_OgS=)aMB}DKl@unFaOk5fA1shNTq+bo*n*C-eX`l9Eoc^pU3QJmE9ruHRaHMjiJk=-SG|3r2W{+FSlqk+0drS} zgZA$ZJnUO{d@nB*FQ1(|O{V**A#mEgFOUvCvSh@k4yJvK0RD-e?<&g2P80j~= zLw$P!f+PXW;Q5qG(B$a%8|X*eaqQAL8Sn-uM8lgyQ*x}VwQ032=@+-GB{@77ETE=} z1vQnoZX_ML6C^-*m6gSflvy5NL(=$)1@?aL&CJiM|DEpbO(&s|{MJEcMQgY6+g=z9*| zxaM>f-kD~b3OZzEdUq5bI-W}+W=%vy(sXM)Vrwj>pibsym|RPc6`>Eq2U^%@Y3nOm z85-@@N}S#8-@rEFM7f9&e~SyVAZ}2NaZ#wpQjr-Mp&K6ln5Yh@Q-w80zsQpSI0R6E zygZM%`1eu@;Z!s<+3x6d_AF4#e9TV$u5C78Lnb$o|q~;)n6)!MN8^X&>Pvqr$HC3JkS-f3y z^MhXBzfq}N2^6!D-xqSJJh788`gCfoz&a^3+O)>{PT%d1+_CXM(ZX>ur!8UxHiO}M z+sCAnKOOaBBJ%3E{Cd#0CxS!KgbyD<)*#^h>KZuy-rr?%a*}&9lZ%ZlqSfyl0T@|( z-*&pE)!qq{#IDgkyY3ANzTjF5JpODwZ3)_V+55C+r>dq2)PDS;dwPsTL;~-x*g74< zLAC?(AbcM0$iIi7+}`9tJ5)~NLk*7)k1=2}T1JMHCMaG?TEXQ(MNa}W&YYZ(xPLgN zMgF2^Wv!uRJf!`dvv3UH6ddP$-O*pTs!YuyDM;9V0R&NN`$YJ1H@yEx&;f^r0x#+- zP&0MfKPmOP-adkk;yesX<#D|*^L%v{hNAZ8Z{_48C-*zCehlaZG-cimn-y`B z!poqT7(?K9*#ihJE9T>E8v7?F&al7RTj69yD*v1+^{g~Imp7t5qLyQ9iLgqMl1@?w z#fSxj!N5TpU9$zv5`ZD~_>lhJyQLC!A3u8j{*C2QT4&0PBPAC}22vYM83h2w7DQN0 zW6E@hoeGDsV^EAyb-6He+zb$oxdfwXt0`uG7qaAI#^=_fEqlu$#WQXBkv_kS;NYEO zeeIXKmLU^(g~*MLFB?69fq~yVVa4A72wCC8ngoU>2t8TA_Wewu0x1be!^S?ystxzY z*&9w4$G{Ox=g;Ix|2`Z~RpT)Qg+>37vYJ_pYv} z2%DwIc>6OAJd!zx%6EUHR_<@XcfKn^=QfJ1zEhbLh?Ov;-4qzV+!2^=bOhlGq%8G+kj_N|$pNd?Z)S-| zDYL#RwNF*o40+krpd${tIOf&%ufqQV!UndTo!zf={&XFCt))`ISS0NKE*Js5)_{q5 zA8Gkk>X`1{AlR$Vjw=jw={X|%q0eiHCwx z!2a_>Mf`MB@`13nRIVuV`Ei0#aNJ)m8;)+P*$-F?r)H|euU2do##PHMq2UP zH-Fp|v5!k-$d)Jc-uzeH!*2Ttad4RA+c+Mm0&D-7LR5mHRh7jQ5MfP|R8pGk^2u@*lPM~v%`ZRsGj;)z>{ailc5Zw(eZO5#6;-B;#>^aQ zdM#gGSJxZw>#Y^=*v7R>%w7-MyKBw`$Hj%d6CdnfQWF=L_Cv5U_`wu~>szi>52S|& zDruR>{r*k?ALUc#~ zHtn1{Wg(>?V>nx66p6!`05YjKK5kf0N7eb9!#1OG|8dJ7v+ACoF98{#=9eZKTq*kU zav*L3deRD(Pb!*fBEG^~TIp45YinvB4;C%nqi?5~d3=iPjQc;Dt^y{Gu3ckAN^!Sh zr9h#$dy5ulad&rjEAFMZySux)ySux?;&7+mpPR5D3nc8!IrE-Z9)XEOSo{{Sx-ZaT zdA;k(d&0f*DRCb{-uFnr8Dz01;8tKbFsJgn!Es+wQ%6XsVJ~;x$|`=*`}L&yaLtUq zD)l4noCym%b?COmG65#mRK3Lz)a&0qd)9;Nj;Y1P-g+YU#iubkV932m+cj-g_is=3 zg<)6PY`sVv$1G&=EyN6+OVD==ahEIr$swwi=i|hyB@~}A@@KC8SCqHd#zvKT&zho% zXI2&#CfjKTVCIs-R?eN%P!Eg}36$5wt*rQdg)}AUhCH^bpw-xN4FE?X)sY{ z-CgXak&6ozM!#lHqiqhJ``BRE=gFqV+Sml;>$jlyotlYuhvKiuQbePIC|>`NJzCpS zO^s?rg@t-O3EEdj%}B8cC2GiSZRx7a1$M93eK^O~H%AEa*e@?X30*Qd3LwPc(E`<^ zoj~GCWgl19(+H5oa6Qv^?59`twt*}RI0!~nQLOmOAeVsyz1N=u1WOqm8!O=9K^TI7 zAS5E3HFGp|bo)u6TU-vabY7{{61&v0Ol4*H&vmM0yjw3YbX8su0N_d#hD1L=0XMGB zOj|@QZur3w5nt()?uvuM!oJe61zuK8mQa+;CdG(V{rbpuVp(6|ma=3*KR|#a30*GS zHpJJ~Uhq*YN8agZMJX_$$t*5qOb34cXC`L145C-H=MQmjYX1z_7l<6pZqaX{TJT#m zU4lN4bqC`}92@%yMhZO#BAuUVp^yYhAi~HD{ZO;f3S(qTeARMG1q(`IK=ag2?rXsf z8+`N)6X1I&fcX!XT=iyDio>f-){;8IRQB8nigI5NS7kl08?g04Mo8M8t za^|kLN8b0(8kFygGo85rHawU2!%jvbP&Zh&-Kix2B3BWmjb3xYNa+@A1g7pN|K|I^ zzbpyUQ`fLy`G>JM25jP_rCUw9io!;4VunVW>DjKwkE05U8yGtQwg(!`Nt+-hP9AN|C58eINxrO0Q%ek0Zoi5 zz3OV5Nkryrf)EXlR_v?up_>JDxyb+a+H91QKiLSV-snOS}T(i!50bIyHn^X#n7^|AT`r?clh8@-I*fC}WoZ2=6xTc|O<_)%}Q zG6X(rF}2LFoHt>SOyx+&8cC=!nR*E;-dEOE4rt1AN3f8Mu<*Vg=s+bT91OZ>bNUh2 z<1Zp1D+Uu&FbYUcgwnS^0NNl=d?TFp`yO^T*RCgJ3&8#eyzxvK>jwl*0qD)^moL57 z(;IINKl}<1BISw>jwZFHd+vCH5mR3)RBjUcV)ZJM){k0M`mj9Ld)925U8EhfKhzAT-r-xyT zk8i8M0q*6NC1cl~Y7TKnzuD5M2^wyY*3O8pUx#bqkk`J0npxE&`+c#*$Z1 z7#`~0u8FU5><4;~2M2yYPamk}UGO4YaCv}Ar04JmXo+WqomO>iZh2VNEH%gKs+6&f z8ZiS|+CDbW=T-HzWYcF;H!)?Ln$|mJq&f~4$sz6Bi25_BlTFqg68wq$8(He$AUqj) zH#{=3!T{Ja6uHlA$TKR^t1)OKQjm+BdIV_E1x^ zljncA3}1={mp+$uS{8a*5wSoM0DYW!{%7xwZv^Z{k{<^{;J;3Jx*p)ws#@j}a}4i) zUwJq_u}2rg?FP&kPgk!LGdgy_XEFy*C)QtSX=8a?I&6!(RVenHbHYAI=T zdGo#aPt037#2-FBJ^|SWVLZL2faGWv(_pYzibFZVn>*3VKRpDRrkfYJL;QxL#`t*(X-S#$vdzB)C=6hLdrh!8A4^eHTF z4$tA}&W(phdJOpl_|A*u;)(|}47QJsLZ%9hs>0LLfgdp9M=0x~Obf_DT3}Z$1v<^d zQro-J0&uB^ELd@(A2Ub!FioBLV8fNXLv1d%70WmLHa^9Vj4I-sD&)O7MO4&n&S^=-6QqQ%VWFp8n%}bcro^m|*-W`+MiZhix1iWq9Xuz| z9Ac^Zt<`zrcO^E!fQmAseCKkDeB3cBi67oHBOv;gk)xlg4uG8B4 zolx6ivAebi!xjAQ#jA6G^%GdZ(4Ydd2QJGeLSVMF8}sftn8@g9Ucd?%K@hRy0jF@i zH5(d1$yZ2z0KALBa|!OCW0ryKvG8{|x*&}L!yEV!?B-*oUrl{ZScHffgq^21dBCOl6Hp3nF9 zD+uS{ea$0;4M%186x^($Z^M`=Mxxy91$m^3gfwum(l}Mouh)dF0^u+(pzQNn*fr~> zvysl5;^#lcrrE6kBQGlf-LeXakkvJFD5WWgLD0V14XBn0dA$|!FBKMw#edfvm1185 zQp!~y&(h>#yJfYpwem86JGH;!B_I(N!vA)TGn(xBW+()74LUb%R#)ekqPMrvzse+q zR8-Ihq2%3h?tnAiOScN5-cv&`25RyuG6L2|<3JzIit1kOt?AkN8U68)vSI z1w{YB_HmEz7flj2>cKHS$g!3u9W4S_T3GBXSgEuC;?hnlX~U%HyjbJ2Fnp?N>o(TG z<8wZ>Z^NuVbMPW!$$fA&v{48zOPEp$GDH8mI4qYV-(A>3 zSN;%JjgGIUP*^Ur_eZ^n9u;OCbINwM@7X*OR#Jk@D0>D(k3D}#jZu>hnU~}B-O-fm zFI7_A+ zud9&)m1YC9_Xp7muTyEI(#DY2BRH40N8?7_y^jE*0FYy#WT(%-TKK+g%>O#Y8CBz# zx(cWpF0Y&}Cc*kNBt-84zse`5u#W>ZH6B_#x^a7Zy%_=^69AmFlip%|5TBytaJ1xP z>j=acPLD4!ZO_P+?h{@BwnwTSfZUhk@%}!V`O0Vs2wDH6YeU(>gRk=F-hIr_I@Z07 zvq#E&gW*92aK|q*M<+8*7Ak(5fsnXBjP%n8S^cCJqsi5t&gE!Zk^bvva8@V!>~+yE zfrGDA9y<2V)pFvlKR!rRx8JwHw`7MO!N=#u<^bBaHnv#gBrSbLD>qg~Msq<+OInIX zHyk>nrYVkZDVp?oEN5$1d+`3Ll)9gb{o9!#W{%bXTp{I-3vx!8`owab_T=<5RN-g& z7)q(lr??SSAZO<+aa3JVD=PYSrgSPI_vN1dK^|zf>O58l@LW9zzVfxB;MvJoWb9|8JX>Oc+K)kZ+W`o&ggljSz(FD7{bc`k(}j<|tq047HRu5UE}2LLF02e-%vOw74iH%|8q0s3T>WCmBrFN^`LbCJ~uuBgpT zVDRElq33{SR}MLQ(@EZ$0~*EwQo?%s9zF#}W*oZa9PBP-DhupTqnU@J8@KN{7(ZQd z*2U<|w7Dk6)n!Mn=OMMlsKe-bGa;Fj%dWe1aPtb;JM~fZKK*ga8b8<${qk-iHMYJG zNyvCXOA}VjMJVqxuFQs596Tg4i{O*f;#|Q9A2fj(5y%M|=5(OG#{hJ`+s%mqJ20TR z;iPMglK~hE>mL0TF4b@)(jSOCa*py}Gs??rLaQly{FKqsosHgpvj$hWWbyJEP=Lp6 zw5u9v#{~rpk+nNIt)wQ-oVa^L!+}w5KrQb|aPVQu#n?ZGxQg_b??7vIGfw$!{6O1c zv;Eo2A4u=4+rizO2}O$*PH#6`?=ClG_f;yijZIBec71y1FXK`;fH81Dm{$$ZMoV`+ zrvN}DXg`6fQRDN=);(SFui7v~8DT@L|2lGSey1zm!GVGDH$C_fB#eyd{{Yi3jZ@+H zoP=#}>MBwJRX5??`&0QcAsdw1vRS`?SQIHh0mA4 zVmjgV;8;=Ka~A4qFIyvNe{@_UAL8csh-ZeNaPt9|UG$=vMmUE`o8IB0l zSl?XmT0WIKV2ncSc{WL^=_J@=qJyc)T&!3){3peCA}=-%xc_0ZVy`@3ZhRj}(pcSr zjpgw=MmKN0IGWWnkO~(P3~&7CC^1o_EiN8XR~9#~gi(fFGXr;V$G-6|^~3;9G3WPJ zl-1So^sT95fWV=J+vYjth{54lX*{82rQryeb^fwgdJ)bT06dPIt33zk-k!Sc|5a74 zHwlwKj|L-(zZWePVL#BQaG-DakE50{6>jo&A1Bs6;)1Q0NG2dgBJKl6yo*_tNY>1L6J6SF7V>Wea4 zofcYOO*1(GJN|bOK)wu!_bX#^f2>!g+7?pO zKKr2l^gHgWC7kQ5tr1Uxu1h$wpG_Ief#zLgEm1NJa&yb)&T@jAtP&sWicWJ`T(1onQ#zgk zfq9ApBfd;>eYq|==^7jwSo@=_3z?$8voS8T4vM|%#i`XFT$o$jN;ZDQfc)+b$ zKV!o3kE66@DpYZi5;eE+21ZHuJa=t(zE9)1o27rQl>u}p$wj3E!~>v@+#lXhyu{R& z`2ddN@PAk}eq}g-1@iKmxA6E7GZ76!2Vfx?z|Gw02TLK@K-fSiqN~!NS{8cgJN=0u z;X41r;zMr+W`cn4Wo_EYPW$_p>FuR^1Taq`_Q~vo_(!DzXl}kG{KrfH{KWP}2pIrj z+U=Tr1saI_Jp;2qK9o2`4tSEX>u;dP}bhye|^Ijxi9N-IhhJIUV`6>SR z>%h@;WuYJ&4G)@y4`+jq7JgmM-@|Y^HvrCkMFl=fP;smUO$EW>jja&6K6AXaA`YaK z>gsP#`MU1Ti&R#&0IUeA-Z!(1p-0D!78^#JS}1O?lEUfRT_n*M#n%}Q1;>tYGHPrc z%7Ui?+#8(29n0n`DY(2d=MDgd^RLHUBb&bXaoy zG~_g;Af*DqgMF=>g%)=6Ixgrzt2N+E=jaVRvHl6)H9%Yjn9h9;>WP#t={elfHaXeKQ?4QDd?6m+$Q6sNlrqQZx!se->cj$z`nk9Bf4MpI6yty?)`YZ)`DTOwi$>d{rk>;wEfQhc!$&{F%s15Z}* zW|^O;VnFqum!CqkQ|5VpngvghWK;C|1j8kfkqA4DZMQUjm2X?@k1`7KSdI9kB4AzE=n^qp}=1n_g0dI<3 z0YT3RdNJspee`ah?Kz|Y*8J>e8-q+7==`+R>OPVl$HZTQUtq`n>MTo=L~DB4q9QV> zDmT9XDF9VO!8)Hn4*F`G^Wdk#MXF_xlo<`Yc%a6R`Jd(p>ory%2dqeZuqOKWZd!Nc_`J%k+`Hb#xTA9{iwE!J>&t}p$7^s5Evie08q z5*xp@CVBEz#Qt?ws@Te?Xp89CA|WM>r}VzU1wdNBI8S`!+dmpZX{jf5MP^;ynFjxU zKqfvFT<8k1#7Y8FCI=Z=_GwPk`t6KZptx}4JbZby8T}d-bHG_PAoSo-zlAI2z_!+FDLuxk35>+0UlT_FydE%3Ht?@?HvNfsc{CI?E_!WPQFgG>w z8#wdGk{^eT&YrMy0e$^>?d^4C!N4F~1SuaIsz8*G=v_VKqTO9}8RgtdCmTpzNR%L= zf!T`1@->pS)l2f|&eC|=Zz$+QW_PZe{qZlraDIVYTpYDEC%`)@t(pW8zySbr3u&rQ z^me_+>ic)_eTRY{VVD8Sq%mIS-)YcSsbm0|O&o-Bb{2COFlMCRJ9t%FTg%|J%KC4< zZ>ukIb>G3awlJe-YPoms?UDXn+foqzhs7v~gBwvm0EJ4KaRn8?PWi{m?d*hrdU=Ka z__23jfB=BOMkvXfHY}mcEwG;g&X0BXozdZuO#5GFH?~w!!k(CKex_|+UEI1np@$!n z<47-D%+|;u891s{AB?9e{VQ7#?it*qv4e+5D!N#!9E8d8c00SsJzj=zfZApx35(Um zg+aF)H(&bmMC{Pc#0u<|SwGOMx2X<3P4%d*`GUaBShCA3LMZal&3IQB!s17Z+iSa(YTF&-cD0~t(8qE(J(_RDi?w?M z^PcTf)X5O2*x22xOAFNoS3G*zEpB`giv+d=^H&)#|Y1Tm{#qT$wW&gLZMg5IW< zrU{|5Dm&W`fXw*>po9VlmplJSi#e#JLH&tJjMKxKBg)`5YaJDjsvc-ySAF56PT$>y0iZ9qJRH%%my=#JIa)-68&ZkYmqQY~q3egv z5ETBGLT#uGkbyHbAKabFy;Vuh2^vY88^bHf9w35VIuK^Cjhq^OwAihKW+i80rAufF zUnMhuIyMfPF;m}pl@X@Q2^lmljOBT#-Q$Odql`Qz)+Ew>()0d$vGx-l`uKe_6`U7y z%Q;!JdXXT*^S90A>IDy~>LY0ofcpB^W(2av>AcY|bZp5$+qu%F%i=dw%c?w0=Xr{C z$AZnZ!4zv@v2V@p(ei=thIM5G7Syvb^KJQo%h>kgE&{F~td*nnmi1V|x~z!)Zukl3z} z+)vU5Hgk(h$ZJHQ;bm1 z4KM!xH*lY(){Y`WH2~V zHwq2S&c0f;-hy!?;d{N%%yeIF?r6)<)P$L&5FhVM(6O|T!1o^US8b5^cf97;&GrR- zSd3)#AY{ymHSM{Uw;7&)izlUPlsm$UTkf zs`dN#dc3N@u}-OCxp`elEuJq5N0^`mmxW*6M~)_M#7G$qsWGPldF#Jd(Nd&BU) zlr!JEU%}h1bN^297qSLub>I7v;$k`u!mL{{|4)KRh^X<@TWpxlx^aJ?FAsB~uHN93 z$anz#LE^RtPmS`ax`icsoQHnmR|+B`$n#~DUhnr5{*H8&P}|Qg>Rr}u-B%YD8|`fq zw%|4*?o?AmoN=6)(EEdeI^~p<%gV+K&VCeD|w; zx&?+6Be}!oDOOz%nqRsVN768e7E6;<{d>^H z(`oh=tK?lI30ck zK>oFf1JqLSE41>~y*%rRLY|)bPrw{szqkwmf6h;z@cTF5Nn!Wz4L!f;N}mkUns^fT z#q#xL*AcS8m#<`*PI`vu>&oJm#Lb#0Q*C)virH`0GJ`edn-Nex!KK~9Ot0LqD-jJk zsu3Mfty!_ju@r_&3mu;qFyJkEST2NjwRFDwWn`PPBu5{8@G6dVbGyqHzPKEF`!w{2 z)BIlNZoT&qYF)G4;VO&&acAScLapxQO_r+G=%QWlWq-_h>3(agoe8U9Wh_5J_;j&7 z;Cmkdr+s~_^~;p@wgZ>z{`31{v&GQ1CfW7q)An=0Xj&aueCbS1P6iOebUd-zFzJ0l zY=2bt9t9e*yvJ9RGHH7#?++D+$Hzv`^zs05e0;>=O6Jl`qn6^)05O*{jx^EC9P)7wfR(Z8&lS;h& zc^w5-L_PFeMSs2SYJ3)};kzTPnhJv=e~=M=h)9k`yGGyRbXaPKZ2#jl6TsnwjcY=t zAnlR>lx*eJAjs`+jhu(@6MfzO>=6_$0%8<*#x4n zWTT7}Dgk3-N+O~(2N)wNN4>wf>_mtorV%DpbcoC~*`q+p*XvP;5C!Ms^kM|8ORHm#n`CW_=GVccl# zoLz2$unTuY^Yc%7SjSe~$EHu8<}v1R?>c3wn4~Uf^2lNkHg7Rx42o?Ye#jk@sb6CN@F*%Z*onMv-=Z z*HH}dTSW||^xGA=cJ;S@#B2MEMVzM zV+oy{!}bxiNm@!_oibUYDg#n*Uohbl;yo2>dH1U(&5bWTFOfzO5&yze79lk*985uKDqt9r>FI1{4+A)x1$>2C|lzxwYL-P_n}V8`n8FhU4{S0 z0+8^teR;Zl8bdkn@)Bd#LiT>>H>ZC+k>P)e+Iag6@qW|sPO-ud;u)6nnQL)qs;@8q z%1pDbE-k3eg8-syweFhOvxNpw(PGlsbyNc~bSZ z#-^{?1IOyws8N1-Z5Y-Z#%?XvSaaxfFpM=)o7pUEYJHIj0NYBGQ%uY+GTYkH;^W!W zR+f(r;U_UpNhgi0T#M4*@S<+()Oz&QeaY)chWiV{EWqf7y)1jg-Q|K$G40&<^`TnK$bU zYsKwyStmp`%@=TGYDI{qQ_)FJmhDyLdIO!1Nk3DI=7LMJ!ZL~d`0-M|^tx3rri$SG zaw~|}E9$`N(++9u6K-?DubieOs!b`1>$5pT>{h6oQiGIrw#F@BCNh#kI14?p2 zt?Ok_D@cpEI?y%jH7u%_HZTuG=#NLonl0lpeZS7or@pIna4*1v3TE)sT1|eeh}N%T z0f$duuc1VO4sJuS)?9dy35&RMgCZF~J*%CZhlnMR(|>-lyjPTRCSe3l5v{&t_G^T^ zS$a6Dm5%p0s30af8BLdD>aRYRT$hOQyK_=0=NB~#_>>C_a9?YryQ=Q zMD6>w9uk9jU{=RC_5mf)WP+g151T`UrhMGVH7UUcIuY;>9G8r+DjEcVXll&{x+9_& z8%cHxf!u5SF8d$WU7bPLY}J1sIp~YrK<_ zd4J%6d?^PV-<_PfpNDCu5<7By7Ak^sG`)1>EZ9s)+%FkZRD7=Qcs|c9M$}vEU|*>W zEW9ufODY`MJ636}%q(`f2}~#AuKz-(+R6|`+NOjbVRTMr^NVv1oWx|}3_RByO61D_=Dd;!5?MXZ~IO>3R)h^Hvtq`pm>q&(|9>gbSRve52qLc2pkum`@m&v|ypD=u&^ z@lD~{^^^DC@g}5df^&64;({t+<}zs~lILh1U##D;$zU(MD>GsWCa#AiWOQ-;)IMW% zqx{Z#;Kx6H+S zN}fS5!CD|gKl?2BEX08*QHb2QS@9!iorLD}D5_!PXk<&fhAocxEF$)?g|ohye=8w= z89m5IWHMd|VW5LFH2&^Zl|MK@lLs58M!0zYRM2OqH?zu<{V@_>+zUf-Kjl|Z8Zq)2 z1!}Z!QvL^MHbvc6?=~n84!Nn@;T{xjB{!ZG)W_Q28&Gy%Z)1S{o+QG4i5Ym+ftcZH zq)~SOCfP`odNRh9JwCXhD3o$uqgD@PuXde*ed(Eq;4C5Zuwc2*laJ!9SBq^X9y!&c zX+AwMl0#_)9K>f?Hqy6GV|5g1d3-2(*%?(Z6`?Ei5sDjPL7wH26>VTOjnEA_c%x|e zl~`6CP4BO!EDaFRV*VE%7fX>DFDn(v?(Xi^%HmQf7u_x&6qqJII#A{P4YcBKe7_Tw z5PjZ8sk&rS6+WZ_wPDQrdVrL@o;=@?A(0SNnOyYihicJ z8H=??Z-Q0MzJ`DJ>%Ni<)^>+}PW{227q;}T zzs=r!#&mV)=O@A1RC#nryltUB4XcGi9hl{30nTm_eA11t?%IX1ymA_S~ zLLHg0Zm!MScojawux377Kzc;11_y2f2b0iC>U!XZaryF!55fJs9oq^FU6MIH?;U3H zL{{O@u}6C4l_Hi_U|AY>CGJC)LV+B@;EWQyxO|#qM&bOI8Tx$t44i* zQF1cl21BSt4fNEPIbR*gc!t-REA=^DIHk8=YOlgYQiOp}7#k!9fk(DShZGnUB zcYXI6hKZ`wPSE#krPWO`jEi=yfp6EX2*$~D9$Sc}ZC3ZModvyaPwW>YDvF0FRcntOU@Jdp?{yW^(I}HmP7>w4 zjHkMb-?D3K*e)u_FNItkm-fUgLEi>4#!BU=v?Qo?CGijX1mfc28qqpCIB1XRu*S74 z_+z7;FGmyFyiaG|PhMIwGS*+`Juj^`31(EAar9fE%t+^F(mnzUw+|5nZhv#7c(M7o zlY%JZgF)hsX%@wy`OIe3+M=5a#7|Lg?Ji26TF4YQwMZFBmXN_BdhbVM=+Cn8!dGsm z1;7|jgc2-QYbE3VLkq~)cH6;qNqaYT)M(`xUC>yWPEKgy5@(dsWT;at&U19b+ z(@Y}~Le;_PS_=j6)6%^OZMwk)4}xeJZ%F2Y1Xq2=@>H^qHhjo;Sbw`%4*t%-O8rr= zy!}mMp~a8AaG`Zgz_r;?-WG(W8b*=Jhk!Y?@r(((-cvmNkOV5;>ReZ555?UWz{f0` zGO_yX*tsHS__j}@{rWoC7q;gOVNu&K2ki~*p-qjIRu3Pf+Y0p!`J_k>cO<}ivday5 zmX)d$GA=02MkSVOH++JM`rEgU+7~1(Uv#~}7Oi+b62f>zIBxNCr~63rUkQE9 znsh@`ttd5GmO8BF0al9l7J^?6c|g0u>*>hOM_&7Jm>i1!{u5T#m8T z1migLMb@l)pl)l2-9q`(Q2Jy#_nj^97_C&T`geU3Ttj?O|M8=X{_U>s;*ITc;qb== zkW^>FaX=HI<$*;%fw6G-RSu2x{W@`|l*=pE`CHR){&X9Bqn zyWVYwhd&eaYiOZ8eitDqEPLt@xWp*MNN1^wWRaXHN#-B1Pnw@{@bk2UH(JeL<@1HW zAt3kI!S=Zpr?iaGA)zk;Uhc2%M-A=Dom;1;rT6b|-Y;|cc@o%`Ng9jzV;Ul?KB=CJ zm14kxmiu?QIr?`&gpJMlGRjDZJiVp*bXnYiobHgZlna6x!cS6ZfL*wn3(es_$Y+@B&im_^dpysh z!9}4cl3%b(RWUDLkm7Ly?n?Zh&9bLiO5#he>m8Kb{evSp5dIiLZFXa!P#l5?UMN#< z>)|KSk?0 zc0Y#WiiWX3=U+fx2k}vHQF}0C)sQ2mcXCf-6K<7m4;?wN%kF|?9lnxc0(V5TdOCCH z-hir=m5xy{+(Tw2$-y8-lsBXK%Dfc!8r}WxU%hVRN04-6sc_=LL!5cJEV#A_R>0Mb zzBSbgu74~gjTQ#GvHI0W=rlnRbr-j+2eGD@PSVCzS9tT%%}!N)`Bn|miKD6msV-5Z zDFRBN!1Wnq3s8&4K~RVrTpR}=Mn&wtaS(zN{}6R1RGwS^)my=)8$38qQ+M5bYZ)4v zLOx7Z|Ls)zyctH-L?!zzn+}{jRsCI^Z=Nd}0~t5{%~fZ~N6Oguz^5P%v|vzVgcyS^ z>nClXX~8zhPu&{a#s1W0YioO;Osl=D)avTzKC^#!6o!LMi;8w&bC9Cf>^stF_@kUe zgDuWgcr$c{r5w|;&08aqpKKd0ULPSj4tgH3k!{6Dk8>{$Le%HAlQB=h-`aD8!|Tzm zUB1XLm{wW*JB~`=o#PwB!GG5$!tAx|>jwoV8SO_m!{f4YzBZ=MDJ!&HH5~aFJ6eW1 zuNC}^iCw;#o~FLkmfyVHBl-BdHF3fI3}X{&-7rM#@T^#Zvd=FjhkVqVoDz(<5rWPT4 zZ+vKI%*uu*yWN_8DN_gBi`V-OFE8(XK#wk^k1o8qQpGl~1(urhX^N+)~~LDW$3gB*J9I% zj8*tP=8R*#{!@x4PKf7XH#E+8e)B^)r+Vo^5lM~UN|O{9AbLJlp1D}8J5k(})@cJB z4+d`xJ_Uu{L0Wd&`Hv6*`UTa^BDCHQBAdmp&3Gj+<%klMwYp2iQNV;bJZ{JqlCM;Y zbi>E+^B-S|#OkvJ+n)5I3=*Y|1=n zjDQ4dRErF3m*4XIa-ikqs)9j@c2%xkbL@=evEy;n_j`RE6(Uf#(#n$b{&clJ@~m$( zC4pyk3piXzJ`!T|!R23i2?^gz=E78*o@hrQ!a+Ui=3OI2Ly>5AK?xRxhl0T$+|A6Y zfe9n!=i-u>bFp{kAjygZB3IYb(FtQuC2VQ^7b40zUkKvoBbg9;4ws9qAepD`t?fAa z4xW8LGPN%kX7*^{bIZLi@%uy3@%XrhP726uqOrY+^}?j6jkbWFrp6!gu75^=J6@#( z?i+|Vy<`Lg;$k;25(%@nOQiuc*kr#EkD&8pcs&dMZ!a_;Yj)ZSMM6*niVY==k56Z1 z9}~ZARm5x4mOX47NQ|8GJ3J)PU>@Vh3phk`WFSBlK_m8zacij5&79?Gn?23_MvLF>?vaOd zX;Pj86s3?sg=zA$#^(jNo-qQ?f2o_=j~|dqth0J(s!+5_;@|txf02KC+}HUdFC|52 zZm}z%Npt{+e8HJ~h?*G+ETyeK*sG$T3@Y{ar+z1W-|Izaw}0W#{!Y7#5*A8^7M*wE zbk@wXw_$=V*$h`q#ay#*qOT8ba6Z*B_Tm#D5I-AWhztYe=_ThOCzKSIx3=2WE^mii zuSXJ%&z@R%&z?!!B^zZ66r=yb$(xq!5yKJ_E@Jsm1Z7GU7b*5t4c8R7exM@YN$aE* zlFpt*=%FZR;lH_ZRVHtXI@|Dmz_9LU8Q}2PlRed(TP*A#tyJ#PYPbGZYOLv#OL@CMe z1j|?-vJ+9pV9SokgT}Q?EHxPg1S0&Q@GGacEUD(g#MqUTsA!dpsOob_1;rm?LCB?i z#W3zyx_9gp3~m#D{|klqV`D;)Sl=j$XdOhe3Mht@AJ*IbZq_}Xp~WN9J6X!~h=3u+ zK45@te85(ZY5j#yYh!v;F1yn-;7L{pEX;WC|F-Q7&|_69C;eA2SMw$9sbBH(H2OK` z^V#w9YU|=^#>NP(Eq28`d6CxqJm=9h=&U9NGpU$kvPUI9&P>}#WhR(1DZoN`oNl~D zSY$-8^WEV2Tz4C1XnM%|;RgIdEL`pF6=e18eERofh-$542IT#>M@8%rb#aC4YJzFi zQB8kIvw(?c8P{EnQHVeD{A4k!Q|Rk!Qq^|g<_0>B17JO#t7h4K?0k_fQo&t_G9qIh z>(e8a#k*CGc>ND zBlnw|AxR9JCWx>*K&0Pv;^4SG%z@Vt%8^j!d-qtXg=O;rK5*~DgELfH8+YwLLGpi_ z2@hHtF8WlGYy^9H^X_sS?%Cxg4TZz=iLmOq+8>5qy-rnyJ zDw3dU9WnB$-zeua^r#gS;|~HN$cus0{;uxK?(Z~Ju9?~1rF|p1`Z_d5ICXSfGFowQ zJw-MAl9_3$;ZXxyyX$a5uI9(Q1bF|Sr$9je<MM( zeD-vkFT2 z`F85!AFsxjNP7?Z`q1D5Ois=yrp{m`OvZ7)zE%{*+Cewo5!d{yENFaXgQw?}#v5vF zvHjZHbj z2$8W3j4$)vFYb#RI9+dg{95n8a2m8U2g)69NF7gi)&QB<;8`@Z$^AfSzD%=>S$-xM zR4n*&i%C?%y+&>U)lqSda%gT}n97lIK71AdO)>OXz$dJ%Ou@lHc79o0*qwXt?Ce&g zf=I$BxN;F&qRLQM{A0Q*S$rUQK8+ql5ESPO-h^!awl*7NCwJI;%)bP+UT$USm#H~T z-uLgR4GGEPTgFISLWAH(v5=^N1G_Ef7Duot=G(3xib-us$qpg%beoo)C!gJ`*Y%6n zG|y+I)B9>qzHow5@w_AgF_zGrVq{T8A_?EVp%9*{7VW%MA9m@Cy|Q~S$hPTk#_Kk# z7dUL;(v8<*RaWRK|IT8)Ha#}hb>@|PwK$Qg9QC-&iKW4jv-nsua`@OHC&!#R-*rGp zW*PGnhzK4CWxotbCKD8!SJ$N%3BAZBU;JUPDJZHqIFp2jhJZsyPgQ*QyEE~5HGhuY zJF<8Y9;=Y$x3@Y^2(5+0Rdiq*iZDy7xw~4h*V=QC$2dq%IjV$nMD8`jo%&SK zP{r_Fip>C!+y3(P@6Jth+#iOlkV|_kd1|G+{J)1z@(Xjq${do8Bm#~k5RQ%ur^E*~ zfAkTH9uW`>o;?gGzc6eZkPjS?kL^rBNidU!*CPX8@z5iEV;7!a=Gf5fh%g-2_g&NB z;fl+1po4J#Ppr0K zh>9H5uqqtsF?S+4^L05jH5d5P_sumi>4TRuo-l(~k1DaLqkngI`MPQus1Y^@n>L)5 z7e-Y~vx7$qQL2hCWE&E%0dzs~QKv%aHP}g-o%N2;3Q!WYHnCCq0A(w9=9L;awP(vk zk4F~7?e2arwB@kKBBKZgl{EwO3AiPzsa@&xgD-c-(>%4EZ*O1rv_pU)) z%Ad_q@Z;)-kdP~~?E@}oI#zqaJcjc6N+^}+*nakUs{*I6q31EFR_{k93d4j(kEYO( zgp!9xdM!AT@2mk764+H1M`ZuFHq#V{Ln9+yi8m+;xkz$*iLnwaAnH5im9)LM#&5+h z=%J;c$`4{8XS}IvYP~F`=SNvtC1LyNpO0IbO^{)W&W?{UB$WNSPDB{#=^`~cGBi3i z&?TY$r!D9@QaPz$@t01>LzAZTL6^KbD&X!4uCxjj*NY^?sW4~ z`f6%Q&0!ruaL*uCCqzDX8;B3@z{;Jn;uaogG*eg>#op{!q{7SE*J%v*c@ZOGdVNI# zP`8rmB8dPuXSJjlxvybb?JzsFCcX7W2qv;(Evr$ z2=>b&e3;Y%Ll?w?^qw7PU`60+%JIU^e;e{hLaO`BjmxiA;n&aDqGAxYknK(4i76RB4h1;uA|WWTgSa$lyUT+A0N$3T5Oaicf^lU`UG2XYnE$ zj8`us4h@cF{bm8G-g9PSh=(Zi1?gM$F$7GF#BdiVS@FB+_h)WeGV~}4n`+<3PBQlp z&o&r|m(t1vzU(O~xRVo373~RcUK@x^tim32wY|<3@JTaaRKd|qiIQ-JO4Br?L2z8( z@Q)%7p^t|+&QDVhw4#~xJGL@EegN(RTMTi&5OG9A8dV9y0zS*-bji&v&(%u$U1xS% zcWz>rZdZ@!mtS3MTQncg(IGCMJs}>@TW@)bK_4YCvgLYNx)gLoNX^LPFk+Y9msv>v zucoVjin5EgG$NsZbSWiWLpMq}bPpXvcXy+Ngd#%?Dcv2?-ObS54T3a?zR&-?$GWTq zi^aFTx#!+<&faI=a|sw0R+Z=}3qYi=5SkZM!1dm}yoYhp&t!71q;t`lb|?M+UkgBo z-#x{Yv3br{k-Ob>>il)bGriw&!;V~f56Vg9rf_w6uoo(XQ;0O z>Jcx`q8uhxa4(sxbU^{7YVOpip>Qw=r4Tk~^L{6$ws3!^hUQO|O*1M5EA1BAoGDg5 zB#Aj-(6Jn1X7iyd-FFv04zwHkHoo4n zji>V&Aw<(NIKX@PQa6~P>Q@yQi?8-8T5>cIGjo~zhbGIk;#a`l2mBqcyBA_|Rz}~6 zlU+=#?&@lC4)Na3iPJ$$3`qSxcALICHCUfg<6l<5~NOm;0Mb_H%04{C(RttEpKN zt4&R3TPrJQuT@|ylIGt-Wy}I-#@KpZzUdkN5%X!y8dl+)QsMl=N!4qC_we~ARmh^F z31oiqV#7t)g$x6Wg9HzsV0+6s^6Q4{rl(+}7chifL?{Cutt~kXzrVys(0A>26M;mz zW7HH7PK*geVu46sdR$I5Ie|34di2$}DcNgE;&{60Sr4<_5l)peggd;-Nin+GH@U$C z7fdN^agFk1W>cwd+gnpk5vrbQu)nwY$!-6cEUo>-2-HJwNeRc^Ge?@yKv~F;DPOO8 zSV}>5$tq^C%wKlUvL09hKqnS}Jqn%GSpWwy9_u*v{Ai|UU}zNwftoq!dRiFS*@ae* z$M8q2q4+mAAI44qK=~RN4B~-T8GLZ=Y0KoFeKjgb2J3={1t4AEq8y;M;MJ2^V9N{F zm7!7%m5-8)B71&n__P&Wj-Z;6#*e4Opb#%JtJ-}3sx*jMJFZcOnXgS{NLrTi_cR&a z<+ntwjf-xz*azND^M@%*9_Wx|R3!GuE+?Rf+?`%8OtkArj$jDiTgFCugV?dxAhb$@ zKRlcs2y_X)`sr*iCNF=W3xk<+d{FjWPx`i{4}-zr`?ppDA{qDAI#RKg@M(MrD>>3O%D#E%2E{k8oUWYw>9ggEP_6b~-@Jm>E;T@sv)wh70<@ zziwFbE%h$`PG**h|GEC{gYx|)#r}kqVZR6KlcSJukLjPAPUQ9~GjzNDcpnhE-Gxxp zYMPD%CmoL>zugZHj=7jpqR!8m*0A9?JQfjQ@5&O}17<&iaJ6H%CX_=XC#He@gwWpJ zJJAjap^2X=O1Hili{e?C62((1IlVlpLr*9rE@N&Je9HQOglDl-MOgClKyI`WA6!3; zN%gZjgJcxJVvFx)H`Mxx#vDBvx_tvjp^JN-S<`DcJEqh^@JrEG?wpTdpAn0x<1 z76W9lB!sLCBFnnRn}TcZ8Qv3j3E(#;GM@&uoMol(c?Iov!0O@DZ6GuReko|nEQ}@K zg{Qq!vU-aoBwm{Rj@iRZc$+Ma`7i_=^<^IQmKVM#g_b|gBuGz-nK=0U($LUK;`Y}_ z?c4{1qdR9W0oZHd*u&sBZXV6wn)5NF2V8uXMtU^11;?2ISjTZbfdm4Y2~=!i#rN`{ zFpJB*i~D8A?fY7*`<5`w#p|grMqWXD5sz7x!o%dA+D@DUvP%=~;(2aQG1`H0OgqQV zJ~7$ZQC#>n&l4z3->SP2&7 zVS*(Rr>rgM**me&-v%dieo!&nI%H50UlegJT%5s$S|uexqw*G9F?*8B6A|kzbuR=< zWz)F)?3~9up5#1l4&6qQw>?K4+-m<;d9rt~aPG^$N2QsYt6}!ragoUZsn$|2Kg*pn zs<1lFl^0CMnw6eGm$_|?Bz`hDYkR`Qo3^3#5JBSLP{L7D@jT27@u{leyq<1wN!{#)Y z7qTmWriqrBIa?OLB!yq_S6gx>nk3Rv_puDvb@)t;Ghuj)V!nH`R#DdbaFqyP&jvGX=3si5;s3%Vu8@_%Vy1q~Od3k7B1s94ceg%Z_XWCd<5W07klp52h ziDl?8S+`s)Q(Y`${2xUdImjfmcyh&{mqjV%VK&Ip^jNH=b!uOYZPQ4d}>YEQRP&ML_J9s(L0D+4Q0c}g(kpu-AY zEQh$&t+Bm*s;#Yga&d`HSUpR`>w%EQ$-0G2S?kF;RdxuF^Oc|?1EZ+4Wlt0jpQqJm z?;rH$z#Rq4SG6}7zqQ@Q9%Gje&>=BJ(DxiOjBiTnYSDxKt@ddYaBk`=G02&dhh%-I zFsy{QNKN(7Q@E0CVxlsuJZY2m8#u^Dky`t27i}4tLUa{qvF9bqIP_Yew|CklUvob; z?p}M#%EAK4-*xDlO`Q225XUc~`l5aQoahF6UTj680J{C=k18PG+IRf2W1q3>8^U-W zJ9Uj@cChkVwn=~&udhB6`510^&tbix;rPS}W_uu7-|l7M0_hJsj+-k+&2ndz_=X z?cQRiBYr(IIHw9C1waddY|~YX@h+}6=iWy?y##X-ZLBq)jk-2*RD&8PS>A0x=4?Rr z%(K4x##CX{S>%#N>=o$lWgDFT?F^N#NOm6Unm53Zx)=_&ou_lHj*w$ zl+QqL*(zh8;MUHrDodMHXmLxydN%rx*j__p3XeNkB+AfB4md-YFJ=oli339 z`9J<1P#9t7f*rU_64Y%8X-5E=NAc-NUO{aF03HCguNVuhtnxn=(_o@q3`kp5RCgcz zcNTTae)me(5D);8BTKy>)*_}rvLU-sZ-Zwg%}AHcgZ$gYMJ$HPOFB0-|6{Oawsy9G zREBy9aSs!4{-Lo)t?_rN)e&jml*9d4l!w8BZZ71*s(ezrPjFC7p?x30I}Zqo&B4Pr zbz5^|ld+jxP0pLxiL{2`=0=l)XKc8VF3NZo4h|=k#ZB6h%pN{^q0`pkRZpv4be%4K z_u`U^xnCGr8vWj@>n$Y_6&LqGKtC}o9!1{00k#l%ON-5OjN<2LMQ0~@!Y{LHa>D@B zu;k|_BoMRs3Bff8mM3ixb(T^mFgm3zYLbF2g$DV6pQChS?m5ev^8_IuA`Lk@N2UUX)&5rLE0-~YW zL<&e+(5UY$epDm$vnaUWV%^1L4+S~`v{L+AMGZnASx&3`$tz%`o0ZrHz(>K^8TV7! z_|IuH@vM!jf)1$mc z!6P}EpK2UKS#WxaBBg1G*tN8@ZV;{bsUO_pWd})d8^_W5dD^NuTl(u4b0CbxzIgh< z>(A?uPfE*Wkke{vJ?__@v1JLo2%essvuj}f;h)emWz87#)TC|3xsD-tf44o-$14z} z-Y3cJOo8f4uOUXQE=E0<5okM{V{{s#^vTy+HKSK?)h zn(EQntsV0K_GyFUhYAkBXsIM5a!K=#H^Ww08Px@93HYiuNMuHpf9xh#?0u`8?$C#! zWb`eqXWhRFv+xwXf^*-{8ev#P*HnE}wWlJK9fFEl*h9>5lT2lBC%JZxee-APvpnJY z*!i~jo01OfNNGSL@V#J54qYrP@AQ96>cR7f52TZtoc|o&i094^KTZR(%64+(8qMkMGhQ9NR7Nk`UtiIeGNN z^o;6XQwF>L{lvhn(jsIR9DUPMX2HyyJ=3A=COB`wgTjLPdUboM;~HMf$d=S3nMzRn zvgqXxO1_xqho|Kb08`A1b7a1WjEo4BYc^n$dc~Sc0nrwiqs}#|AbN)j$#;*1_{4-d)cvvCZ&3!C~#^=@>2)mJtdd{>QUs{a72 z{XxsJiL&FZmxqKpY2o%75Z#ZgR8*REjT%#H!rh9;ZpQZ6bhvu^VlFK0zC5x0z1|chxfIsQR*H# ze$#8(e0&63Z0~^1tAL+=n}>LgOtd^-;$un7j@c@x{s>dHNn-aTPvaWQAB)qC2^N=F zI~CS9CIdwD&f`GI>^@^)i*YVUbmtqC)B^Dm2%d;439An-8t6#&7gAh{S?(oL+PWB)#yP^Z#$>u6SL;0I0^`iBqy==H-^p8$&x zpFoLlPpsD6NUWl(j~_LFVkvwILoNWD%^)pioh4IgWWE#b;Fcy-=N6pO_ zfn0PojI`fA1Qjq@E>h`RA=aV1+NPQjiOeNbRWrB{+f%aF?q<>q3c=+6q2!DhQqQh8-^1(_!HiEHPv-~P-d0T!`d@@uPfZxAE{>s&_ z(ZJ){z+~B(4U&c1Fqn}RPAs%xmdZM>PhTM@>Tv`N!$v-`{3q6`L(7{QeSLzN(NUKS zq0y?2d=;ITuQzefGcCuky8UK#+w}e1#`Eqf8`u2YuwOvAYUy9OY8)tBu`DeM%};kX zy#ZAigi8gQ(E_ion-1$8p3ww?TEh0Nohe_B&B<8-5TekM70MOm?~)JWtauq6Xt`Ce zi<&-myA}x3(OSW5GWj=R=DEh%7wSu`7U(>Gw!aC9lqb;cFG6C~fMM?}A5%VFLq4g2 zo^*3lw7kT$gVfrdJaW~+`Zso#qQ{v5H^WU=S4hurvTW2HJvV zWJ_W2wCmOc5q2`l%GQIWE1KG}IG#QigbF%ZW&Qg7XKAACelNxgCDR=%i&(Xh&7+eU zU#J`=Y{%sB+2s6WIN7*;GwB<^9wt(eFIe%OUz_!NhMav5%AAt#F)D?rQ)&FBv*txa zsF#RxaG(eRPDRO!7XeYjK@^NGO6SE_+87YtDTGi#P)5+TzkRd zQ{$qY7`?Zzpy}WBXRX|0-(#Y%o{}OXk?FCE=o|H|WUK_#vNgM~P~%ty9pQTy|D7K= ziYM$n6B-^ErY2gbB*F7`V%sVLYP`dES}(i}3H{2g$ZYm#X}3_fwkYGebcx3JdcjmW zIHyCZU~HyXOIiThTfRx})%!!XF|+-JlP712{dvQb#FwM+uLquPa+Zu<=9YNA9dxg9 z%F4?pjGpY>Kt!jfJxk?lfEczewE6>%a2o$10Ztw;89@~$3O{+58lR3ay!gakh1z@ zhS-EEp)`^_QMxfrgooz`9bN9vHh@k0S8^2)aBHtm1VAoe0#^WfJssJuRaTrW3#@J* zj;IqAGd^IaVE{QgI`R_*FX*sqm?`nKtF%n6 z9N5oyJm73MIX6M9`roOET$!61=T70Qsh~=DHJW;UTf2Q_B~l`|xL~NiXlm4S8u{DG z85g1Z2%NQ5Ukkl+Ze=CJDWVN;Aj$?yJ~tJ0fr#U;C1-lTovHE6c9UIa@Olffk+9$?Lg0xsgQ-Y6sz)eEyH1qko&cnfbbO=x*#6o^!NeFL?QRjZFf z_)0DS(E@|sYTx4C1?+A{P?ff>E$67(Q)t+~&)cx<-QtZ2EWPfFeq5`>Llaz|?!HeV zR_5b#DJhNu_7MO@cTR`FNI3Y!j0|ciaImSbFrW{Bh&yFcqlsdeb@Q6RJ5u*l`$whG zHJ?jnz=0-Z`&4oGBBjg7UzHm2oM ziZobA>|GlSb;0EEIvfyLKN{mY>jTO09t6Qx*<9q#3YZX-a~+c@;P=JJR~zCN&JQhN z)nk_F1VD-ej5Fqgd6(GL)qnaBK*M9qsWpmxzMovi?W)|9{hB*|8N~BLj4mv(xERnj zOur9~s4DC*_%(YN0~J+dK}|fmP#p2k5|Skq3?Ga@!R+O|tz2nqab?5&97$N3=V*dq zLsUgjs$xd}cl_C8=fwt9JsBI60!!XJphvw14{`s74gG0jhwL)9_vJ1cyGq zcWxxHD)|@=6kxRGQ7RX(2ihNI-K}_=b)_53uu5nhU58x5=SKptiJjL&(S!MFOJ>GZ zGa70&lTVwpl9!h5s-GqqnK|ORXEf)QcEjwZ5f`JT`yJtDjvNgQC}_cA2+Hx4)Puhe z7Ri!X|Ogz|9DGu~Y5ASUQW*9@RMY1$K=Ey8#l8l~XB?-?jbOsy)6pn=vnQR;d zdaa{WIr6bGnGn8J^8EJb!Jw=)XG?083}G1nzXzbBvr*b#SL753v9h`I!J9@;Cq&(d z?wZ-9Giv^I4Ah=w@Udp=|9iJ#lKC3 zMVdn`zL@Fe$w11L$a+ql5YN;5z@J`>(r2iF4~2tb_vYyM=h>J~oPT#(z=Lpmm8>K| zQ2_2U;$ZK4xhYYmFW`Rpr@qB&9>*&kkYF|a%dS>CA8)!@Ur3xl4sS`|@q^m<%oq)3 zLTKxn;h+-hgR{Mz+0uV1GVAxKfQqbQNSz%F-ijMl{6Ccu6QN+ z>}S`G{pg42toH;yM@4cw0o-FRa=-yqd-wYj*_y`8JLLG7v`K|{c;^p8?j z_=fqo$rS&WTj{$EFPynI@MS=^5fB9KpkLUX;d{hvQuXM^YexklqUOGBEBdOPZJrWZ zUi95qEy+i~XL*|jXL52X1R5f$r~;+HSGX@V0a=Vws(4A*^)+7EaMXN(NYVx1d3I6H zTUM94{oRE_Ze@1Lt$82j;QN^(xUXqLwajjrrJo;?C^mBcLTu@6q_?Fbk3%iKRjh4f zNde_6>Z216>R{x*V;?y|zfeGZ-BFuma~MaKvmsy?sUn6 z%+7uo8>x`m$2?OoqmQ(o5w?U=W<_3+U{si(w73W;)-c#uuL1ECV30h3Jlc+p<@NNs z)RRH4)Y3%SaBFE=9k*XKP1ER|=oT-zQ7w974^NehR=3r*_-i5g3wnYX^_#%^AnRv) z+83P6tnVSuz*GeBjXAVVpH|OMy#oI}hR!Bvnsc&NV+`cSI>!k=D4dz?dI7~^Tmf-^ z;4Rbe@llVvltj5ym}diz{?>c_lv1D7K^f@S_q=UIHl@bF36)0M;iG*`J0*!f!?JB# zL)-%2ePfpdZYtGJEZ5V}JI-lwZ1|Q^R$NZN=7S^7QpBCMQE^8cE4m|wlQNh+DC!$- zLuy&zN4**_@yCUN)R}8xbd)OmviRtzxV`bG*wc%#L$|>FM)RR;3qqv*nGMQ|e)ZkEdj0mxbjJ{9Dd<(3q^XG!X$o^Q!~qZ;ERhoov#Mlj2-Mnj!CF zV~s|PS&B<+Y=pMcgP%boa5mxH?-+?*InQo%`9mjP^PmR!X-bKv`X4OqXZle(6)hrZ z#okjP?!f{fz9cENM@jlAY6dG$YKHzS=zk`(0*<=`)&%by1^pS;mhz@&w!zIDg!4## z7vNE%yb^^H^3(huvD{BzBTqUhF8vZp0;_=(fI|i;L`g(VzxD zIw>ApT1p(xMT#yH0jG_da@#HNBFK2HPwNg9pP+Pd8%Sg%r*M+haMpo3oZUl-c8;^U3EMs z9NrGo^hlz@QBTQG3iRX;tF0l0rGC(UE$PWM*cpRU6Dm~`CiUyx8`pQ=H7HQ5&{53O ztt?o{zhr^JQ3v9lZWERplaaAQIxsV}XK4b*zMQ4G6BeO%-mS0t>@U)pJeE82>iu1d zr}N{d6rNF^n&e{pE{uL)iwmJM;3{zhd40BAB)j{sAvV9dcEGK zTSYs<-uNZ(vpITe&O~bCC_P;#WcewkQebAljBWKte2)gO1%c2@d`oy!eTqsxq(lTc(0pXKjUlmvTuwMw`R+A1aEk)MVPt8n8 z>C^rj8giKBQD_cB^i$sH)^Y>IV0An3D>EA;BrMhs(o&kVQY#)4$J9;VUxsiLpi?{A zmK4Rx+Fjfnk)z-Yu!28o&E9@qyO$RT5yrsz)3fRYntXiMY&|<*R>&_{8Y%7W6%de9 zoSR$vRBn4w0)9)QUxq$GiqMG~ByTTQw;d9KU*owE9;>OeJQ|zAuh)P6@UL;0 zKA5WYzM9g|O^Jk|P=xGjUCaIXDO)&rvf>lA%C)o+j)4|lhG5s3^5spbezSdm z#A5jEn{&(!s21+6Wm!L|+Z*W}UlWis%8z$i6e`q@2(jB&byk*+FK1KR(HGta>gWzZ z(*zKiimrw(+!ARZtND$xvc$2egC*VL`NjvTEbe|JN}!W?sln`Fq@vF3p|^xB?zu<> z^`3A^EnuUT(-Tx$0@YdZc^z*KW04So_}4EnzwJho+#cRXvQtr=i2K4;<-XLER>b`Z z$Iv5;0*&JfR-AJiv95WxUW4U+N6wQ%n-d~ivHU6SRI~z$F00$3iFbuVI$4X>wp83# zOX*T~l102~9RCI)Ig*O|?{`e3UN*XA1_d@wd?$mBW;OaZ)mGNHQqm%v(+`W3dlX6@ z5PGRrZ_9Pvveu>CBisp!Uao02N#AevwNFT%l!+6IXc;bP8Be?&h}+D(zIP4na$fOR zk7_yNZ+(v7&=TvgREEYhMMe(dw6egk6*XpmjSs8?P8-7Iy3-RWisL@p?9VN4{~|)- z@gjm|FCus94T{UBN3CnJ4pdNo3iicxD0)bgkkIzEdHyhkstay_iM$MXHyIUG!a)1^ zyRh{T_lRiz5O7K6Qn8QMkxSk6=vmCyZEF`tN2Ty>`-j&2-T5K&Uv&D7<}ppM$id2U z*6JLYB_BL)q?Trg7*QZk)MNz~bz zIFq!-#_WsBE!-T~^=)mfj|APQoE@2Z6T>j5I0uIonQ1xO1Mbc*`NdaA-IxjE4NO?M z@V&|IjyWDjlR3R^XoRoCNT|E?Czmyrf}fS(KF61i6LQ9xg+@|J+@Ex-;i4Ty4wM$a z5(AhI3FAe8X7Jm=^yl>FMI}qZZ=s_MR`b*OpSsLzc=^7XJ}=3SG{C(RKUFf>?d7ve zx~G!!0>2G$4MxlMBjJn#zu@o|S()jbTheO?@A0R^b89^vHL#xP3;{ezWGp3@$v_b@ zs!_YoXi5!ms>e}uU^j+)?;HJE@`0Q;MSukM?^PlFWSKnw&F(bkbP=>Or1lFw$3!%7 z)L}KT$ZbmeJIZGwA(CzUd@>yF2)zsbir>u6u0f?wo$6YvzHjFF`cwW`4%AqDFOxP4 zZ9aSDvWoQ_szEnfiNfQ@@ND+WFG{O5qEemP(oorEjXS;Im9g8EOI;%--sYB28*2v( zD?_R@JG=X$f^c{(;|`Iz6{x;Q{_WmAO}df6@1vQV9Fn(Xy0sDR;vc#D4c5IBD|T?5{O?P325=Nt&b|H*ZUu<75PmX<8G;PXvS2#9(yliyFq?imweMFxu06 zi>bYFAjKsYnLi4-`>zy6l12PjS>@18$}mu%As0nPpN=5XveN;6+Eng_UN^us!Viwk zMp^NWC|amE%ii;bBH{ac$_lr81ItTyf|TNXSEfPquKgEXy1JuG9G2>Vf1+49TTa@9 z7#Joz1jqHYEqMA$+hkCHy{zio}dvBaSoj@dG6 ztgCX~&+G19M?(quoAJYT)~J*Ra2=l%>Mz?+3}PFp53M?b(pC6M8Y2g-H>fu-JBwyU z212ZYjZ19HjjPF^F&C8n8zG}}^7NRmMIUpSd`05)3_YylaB$E&x8t9C-WI?g zLJq`Z>#>_H>eAP#o34}wOMebQ?_BLvRBrtG8~=_oyQ~x|w4W5J=%nCPy?km!a6(#b<3>HX z_zU}!A;B1Kz@n@`=vP7VJ37WhA&(ufP;g+U(bT$-^5DC!Mo5^1Q%0orgu5Uj@mDm} zyNLjAq3$hZa2v!}uHV?BcL_X!rUXFL6{wD=)ZO}4?m zkW)e%=V$6WuO+n$5lbQKsGKMrjV?RDCx0k$*S}*#-j!V4>Fz#Jp^Xo@P}VBQNvCYr zRqu{vU>GGAPhU}emaVjrwZsF`QP!{SW@H5N4w{6A#sKE?e;$MEES;jM+Sw=@ zv(f*JpnrcqOYCozk#sxA<@)FgC$9-Goni{oXiR-})h&2VO4EYVG!AK<#|BK8H+h)? zrM5e)>;E2jB}MX0QVd0rX?V!z@9wfwkgKz{_PCI8Igs`)YYY!RoD>-Vk1|%0=IBX_ z)Iq^Pm(9zh$}UC}W3`IGkAjzG*0V}&JC>xUNTH+otfy!twE+rAzbVe0Nh0FVr1uQl ze6I^h{0V_)0Miw7k&2)qv6&e4M_KTj8`%{cw^zvg-@kA_$uw$aBi(QsiB1#wpp!-% sA(ZWop@eglPKQa+6#x7GiZthcMft?1JoOC%kbtibGRo2w?@U7f2LY>N^#A|> literal 120455 zcmYJa1yqz@)IAIg-AGI6P|_uxA|M^Y&?%*KNaskGq~rh!NDL_<4FgD*N=Xmh-Ti;~ zz3=;dti=K*c<$VD&pCVVv!5tU^*02#PjOLDPzaP1<=fHY80&@8Yqfk!e9Vm5&v zI4+6??kFg9!H?gl^WXHI0uNGul-K{L?QHYW%fihX#mmc!`-79cyQPJTHMg^yZPva7 z@S^S;q49r00i*D(A>Ck?Z5hp*Vx4O6=rW zdu@Ox9-o~L=NNwl8O9pH@S_}D9TI*=R-Aut)4Ml=D;hqV88$O zjfFSZq9MKGH#L;{@q$#As$PHJAESST8wHOAKcM_U7=e$2BVYQI z|IamhXxW~c{M2)<>f=Im$x!iv8WbS)UYZX7vs|h%$J!S@XvB#E!SyZ!>6EB?#oKv= zk;DIe7Ani8I0~Lt?TJQ&oH=R&wm%!#YnET?f37-|s2VKbnp7;x^&y-CY=Hn0$S>j;L|9MU9mNJ?Snq+Veys5ogn7ENRJ-jB?nZ_jq-nN+Y>goS3U(X%2Lrvpv zCQb1+E5h5Hg_k&;8$24LcyNyM=l|AWnw89o0^vd(!3xCO1qI@-M)q|(e*XP`PeT*> z$HECj`{m_xc0Rn4{r=e&T7r1;jL_Rm&Xg?ipJ(j!|GrYpq;IuXe^14Rx#)*y-cV6^#vaqvO^M{tUHUA#?S=@lTceJsRlN^<4pQFn8`y1F_*(VD1e zhNMSs$WT>*ys{&)XuarsWjJRKNUFeZ%V_P5uVX(W5=R^xQ)R3Xl&ET9^w zJ`(krwp^h3&A0zMhX$>yN)yuXk{I;QM~#;~Mw^W^F7>Mf5RWhL90C}q4D&Cv9y$Sb z%V5^}pY^5h7n>e41^7CbVMob2NwybrsgXaBXvI z8cjGHYvw@we^RiV8Q}?&#=R-sCUj0LqAKcewCD7^Y4q8wI$bNrRVbhwQ61+(R3Vn$ zB0nG>bUfTSR`?6UBk?gYQKO(6=rFfy9GM5hc>QNBF`Z@Qu_66Bd>%>tO-%$x z8I0+Xa%lY`{a$a&H&ziR#Lx0D>gPgE9u(O|un7EIY@*Lsm;~3LQ{te}wc!R^^pRZ% z(})8^2dSTnuq0OJr-U8Zu`k@oNU4MCDD(--P~0FBi!IJ$|1IdHyo=N@JqrF@?FYIx zyQ!a^O&3C;;!mFZeZZ@|CK4eL#knMK!NH2r=Is2?bW;f5cW^IQuL6UAh=eH+1{5qY z(Z_91a8&0xFQ!NT``5Mx!Xkvzi@3;G`_F08J*CtWbU_BgUx6?;5wAdunD|th^Niq@ zKh$*O13KT=+nu5Fk=KNT=0tfDdDVJh>|bf6Z(ebr>oIHM7%ou~Hb5?}Ox~_t44T%@ z>g}EM)3+~f1nvH?)vvbdN65!e$Rn9TK14`_KbfI7XU0k{Swk2?%AK}z6aP!55)GGB z5CIyd^IW<(g4wF>#ECqmJa z^4bD!KI0J)F=(5ZWSg3r(gz_C(Bklln8?UyQc|BoFGZG@R}>@TS)cPQ_^3zP{{9M; zldH8_E}6yIPn?O<3?Eo%^}EP*GXW?UN|!Ew6vVW2IdI88OXiy(sp=`j!JfB-SQD_#VWz2t^?Uv zw)x6X;b6UB=5s8I3(EH}iOxOGcv=w`#L?2y(#pkwbV8Hg#r~@=U%n97i2V7Z#Y9A- z;O2JMi|kNSm!K2$+@I^-p0J0fat*#PYV(J9oX^1e{{H>j7J)yDJH(uzT4HCq@y6~k z+ugm15g|3FtgThQ1=N3U(Om{kym;`4Xx^t2ds$aiE=-#E4eb5*c>hziV!Bv2k(P__5qPi^63sE#RhaJJ+XM+8k`kaG&fXiC9z+=10TZ zH<`e;RJ$xqaq2fjV&G9+sVECI+vQR|H~X@MxIs+8>r$WnSMO=p(EHF7K$d9zV>H=^ zZ4k6dq?_dL$&BJ>B-BL4Amh*4RA1LygE4?u7Qr*;=?`oPpO8?F>{^TQqEQjXK1tL< z@InZt6&v*`72m#1Qc_cT&McTwJFWx#K`q1?_3vL`HtDUFQ&)H#r}3#E9;N?qUL|D> za27J%Nk~Yno$7D8qNAgQU2VRzH*>%JFKQL6GMFy3E-%)J@4MNxV+9cF?#>Cz*)%k6xyh#7}JEXn&cerldlpjM0nt)OVM1!AtQ|c0#rMJjV#+DaY|t3_ZJ_j^UYXVU5Kp?OI|T*?jopa6oSY5;HNTaT zkIz*t5I-*+54|b*|Kc_#h+gD2AB9kYu5M*;M_c3M#qTYcoQ-V$$)7Dh42k@O+>L8O z5n(7o|L91L;D^a=+nZ;=eP?&>h*-f-)aDC{&lwX#ZU(ohMa+YF1i8Aila`qjN=o_* z3cn{wa7G;-?*C@*uN}WWYaD`IVF*awd>R_!{4|R_?^It{z(o1$*J%K&bWj)RY`rtj z_Kf0xtxYTf=|CY(Cz4;>CqOt6dH7(x6_)vW}Ocu4NgWI&4<;O zTMAbZ7TJ!>Aa*#PJ-Be4aDpXWl?_>uDb4B#rN|_-(I^o$3!0_{N^05Ctl$tW%QY1hvz;5&6UCZt9`=$qp8|A>CxK-~v}T?>f!z6q z_y(DjEkQrd&(9b7Ui5uG*L&_4y*3Mj@cW^3z7I-DI9e7Kj$7FdpUIj%zwp_g)7p%{ zy3@=8<$}f8VfX%PP|Iet(Hk8P zjhJ>3z*Z2($V~iv%?4NeF2+>Yl#R5 zRVZ+mJ2H$A^|Xpeqj+JN3fFG6;TL7NRK1m5MEGF@d0%u+>yfFZ5@vJRD>JKW@bGA2 zdv|qp#b}5up)X!-wQ{Xb?$Z=wX%|hTAGz5p#lS#BBjoRB z+v;k*Wpo(f0Un7}mmt>LA%S7oeQ+Cl+iWN4IqBO<&8jqm>wqhfMn-Pk_-o1%EpLUS z=VnPC%J))pvm-rqraefy#&*>5`i6nuc0_`Z)2*#tEJhNz(^_Zs4kO?}1`BfK^ z%MG%anp56OT7P_OR|o94T}!D@hK<~51z0(D7<419V+w9KW4ai_7a@+CgAs^(JKp?9 z`+MG4lTd-sEIy}#0Vlgk>3DWF4A#K7V6iAYDXI2CrP)v~P<`q3CNNB>^7sl#BNfrq-CpK|^#6Ua zeZYasj*3g@vx=3|I{B;F6*|Em;%c*nxm1>dvmZhK#GC%9$mDq8I<7fL{cRoU#^P(! zLj%a*%pDDHVb&9*E0Pky(?a83Uvg+e**i|+iL+Xg5SPmd^=GhRW&U2-ef8_R5gRAx zE*7N3;yn!fdg6PD44mC{`SzumUA6C`e`{y)54rQYBG&Idu2qiJMtU{Qf^y`>1RUaj!ulUK0;Vp&x~~H&@D<4EaX2U zw<)CGF1!7hI7pL(-@5^5&8yM(3n~*cGe+8Y7%xv*6>ptzu%dhcytF7XGO}H|;U=VK zdFuYz9m%^_*CFS6RL`)4n+z?P+~u?(sn(nucNfyj`SDT~8|pj=~b1sQ1Hx+|oLq zbg-M8dq+&#Ja#6pCMz%GRyQ`@_)1(QW(hlgp8i?>(&l1c5)>e1Hmb01{5hEzi(v;X z{!GZyn(z(U9NsO?rKQEvb=W8W>25wcbvtL4y;v|w53MU44o|%@6?5Mh?%i0${TwK;&J+ipM6k7WFa)BM; z@Y`Ge#hy6%3X^6}!ShxJR5y`y{qpXu(#AhFrK(=ch-`!;!c5q)@9y^oI6ulhmap)2 zN{WLGP|=S6s#Lx;ZoxrG8-(m#+!TR$K)EwgSe9aDU+a+uh06 zY<;Gxq@=`iexP(5(HyZnhW_l;pKsVWXds9Qh=lG}q85AW#QFZbN?;)B)fLU*>RMuM zI}}*m@rm&G7O8&L;MzY>Llr>}ESH}0b@r)ldq|qqtSoCQ0?Cb-6^k9D?`qbGiq6iHUP&4EaU+o^fSZOMR>aQ%sjC|8xnx!9|yFF(n2 z76AB@-W-da%|IG)kcRHhgmM)9D@rjb@3kv@s%NE4gs;2+?l7Yx8`yz~dyLmNILInI z^?Ibq_@^V@d>%U({LV~Ar&1z85U6x!H+T1{&&JLNGJ71RtHprWZcw?z5r0Vxyp8&V z-}gq?9#A^5CspK0quo%`51f|o6NUMzqC$o zdTF2&Ued>_lk6JJFYn$&7u9xt{prqR@g< zEZJ-_7`+A$8V`IszEwU4q|Yo2^fFRdobN^Umj7)({(O5-kW0J;{UPn4gQX;(LVb(s z!$vA2abbU#UNr}6K(|B~-iF!{&eAnTM^6&C+UrLzu2m`}Xi|ss;xkhhC43Sc0yc6& zsTeJ4qRC^YfB3A*>!2-R#nRI9f^c)OvcW4?N;EN1vTdQ-`etZuZf@cnI-8hZP*9N8 z4quj&)40gD#a8`Bca9(J=IHao43K69iUG6LaRr|#IHlv)UKht$FGI_*1Ks*;il z8n*4ss#Q$-1CNMEnW+C*6r&H?Gw5Pas_vAqcXwy$Qz{ltmK%*;do-^49{&Tjr1c0` zvLGAV2d{Vj{(q3qL#m%VA*IL(IH#@|k-F(T6Zw9kRxiX;R{Y|gNlO$jQ9vfX=2m$;sj5g$2yEY8m|2 zTFT1X(UI5>P0wHdeeK-IpZ#v7$Ais+d#axNO2~!fcM;y@1y{0weq3xIy+8;@K5DS@3F% z*>S)nZc)sCuSjVqZQ_N z5b!k*pi#dN7Se|#ht81fvB#i2mt#V+U$&)cG;&+wFk)fyp z!S7HpmmG-a^Wd+6qS5OrRl?ts&Isi;JU!bGzPnAO6ZhP0q1q%DX~Vr_JTY2vZ(2_^m%O*w4rf z5Omn8oH!X786~)dgenHgqqx&}l*R>>A#Xxr2U^?#F1MB`bT~|80R$)5=z$3gU8~@DFQOd*Z$G zw~b2dpbw+Y1Aw3py$hoeZgW}k3aql6sxXnp49EPuff|o8rX%>V+0U|xjbw}H_Q}TU zQ6y`9X>bsVbLlqpJW!)jSe&ABRMR7yYtul)FC|vg?hAk@hBH-l%T2qsCo;+mlKap1 z#JA&UL|mTrer6bKII^S$qW$8$(3lYH)XI?M{8=(m}{2`Efx zuQw4t-!L<0_3O8NinSgzXnV(OKWU`}fzmF}l6te|q;9N2KwKS_TGJ z;xLVV)Ssvt%bZ)K4@RTuPE5RG9|c^*iAhCTh`kdCi}?-oH>vmBw&aU0o{Klr_{A$G@~PL_?lJIhoBYNNKZv8=xYkkb~om#(o48$)lqf1U1qiWHwp zZ+3FvW5X!o#8!`&to(A~}%~RZGt*!g^u_YQ1wio{pnSus_N)TOL zAwXU&6&7M+OSJ5bx14ME5i9Mquh98zND>s;cxUhr%+dZOF9?kk+yKuX~ z)bg^?GfjQ{zDKmO?yFxfC2W<1PE1EP%$Kjg?=(kcYxb|pu_JEE?1ZSA=VKx9D16?(FqfD$CCbS;S5%ii$xHxg_W!+LU{h>>?Ox z3d#N>f0U6Q85xU4-;+UrQPj}SpmWxG-tbV^*^+#>8Hc@Clf@YKGhpLR033h3OI;-;Cv^|<_Jw3ob+nbLVTmyz4 zQl~pp@lX)fZ$S4cbT*F_y~d8Y4ZMQ9eQOBJg%BlHp6>-~Zi2mL{4Cq}z)x^)acs@B z(MJmR{akINXLTfbfD-P1h?GkEcKg&yc{X3L=VREmU9PsG#aX6|?3ezTI#F5?&4)Lk zk-q^D`R?8IUmlk5^z^o0r!mi2Si%o6*?;d%H>bhj?C1N_D%RG_Hv@yyKP*{i>krH~ zMzSyc&kUbWkWvb#)Yj_!{ri@hPa=D~mMpxeNZ`F@4LiQ4m@9^yi)rhiWBzucXSp;G6FaH}H9{q(w@5je!w^VL}p6b}O=UEw0?F>d{<_y;r7=cew zwkLbnn4@$VUtu_d_qNQJ9gUKb5^HGOwea%oE1Eg?B-A;Ozm-zT2O_W=xB5iyOV|Tu zZtwIInQyj=z?amD9TS87HtMA`Ks<`$dy~GsZ8y1I#t4v>D<6ziO0tABJ(*V>;R#9* zqtgQhmG;29%|+?d&`WP%2oo7YqYMn1mRD936&2r4O;?OmS=$@@Do{#>%Vv`%en5C2 zJUUjlAOMbsz^^mw`)cqurD9lUw6wH3<{D3~0KzzwBN;#6>@_9I;M%Kh`+r^ln%VgA z6tcX$d`*bw9(#USS*%)?^7cfihN>!ZNI+vloYDj_UXtAWar-wg2X~o0HUrnkHCL>u=ySg21iDJ2J`bL_2o!z z0eb)pEPnO$EPFDz&f~%X@WS|1j17E%vWV5jpqi6|?t~Ut0oU+}k+_mkX2qCg7Zu&{ z-ukYWaep7-0Z)ph;)9W@rw^p`C#Q>f@VmOcer;-IVxl(EbY@l2|E~Y9^-#8WE-+ch zJOQwgv0J}aWN{t$WokAdvzG@+S!I8!& z5)lH7I-gG#f8RM8aEvYvf_pzNlei zLyptCLK%P-d!Dxh?IMYmh`6z=fI@div3H8usz=`h-Oz1ql0Mx`hu9SBlJ7z!! z<6b4Q0FGoRFbx?JGNBPU#W+kBI;V6er(8EF?*x7QCN23A7=dB4DJiPjyC~H}`eVS* zU{6$YoIv!5En7D~*TfC?Fn2MIxpn>IjBXH-#L(>(9!k;vjkR<`sC`9abZzZsIJwB+ z)u*wEX_4=0Tv7ZUk$oA6m#|PjhC?i5$^F;O2a7L%JQxVB)1# z$)rNguL^7*Fdm>@YH7oz?S92Hdh69EdQ?=UZ zz;4zWBqyXxwS7wlC&i43NJ#$ku+u||YBI@sezf{HT<3lCWaRE#{&u6CXUVgAkFQ(o#Va;f{x9w$^r}vKCA-p|9oJ> zsxhe0@$p9_FtVPXVH|ob4UGX^=W?&S-gR{G{`2C&Myiq1dVc)Eo^BMW$k|?H!!o}L zESB$;_8oVsPiy0-H-HE_Lg0qwa2}K{Xf7%!(QI8Mqa@EH ziI7wJ1|mHh1*(4a1D!acuZ=|keK1{5u*yNBnaKxUR<_!-6F4yI-2O&KhbPD98Yj?e zrxM5h>&*|oo{s|DI!>F@uic{YPAbX+z*VpV1DN1gJLXR`R?vyuDjtbw1>UkCouZs? zbl)ICAQ;a!V?h+&)F^my;@g^N>bzjd-V*nPLAWQ~vp|h&7LQ0mk524_tk`+sNo&WX?qR^8?`_>{+O?C5#1C2`D%%YE0LbrsS4XL&=D66V23$1^OtQZ{ zCjQRA^~c7q*BbC`Pe?1>2GL3pDuWAk0vA{#vM)jX^HeP~5{5d2wG3@U=s<=Y_V!xB za%MH}(lf2kfYG6tOvvE591|_^S6rCjzgNwm(SY0gDs`2dLN&h(Ju|{nw8wSKQa>fD> zs|TF}Pq5&n0k_NRG*=_?lrP2ZA9DP|OL}t$S}!Cc7a4rp_u2y1V(GkS7n@hzl$8x3 zL&fx!_380a_bIHozNzt2*C~KO=J2BZA%r8yn+}kV)fN#{mfL^6vA3*o4c%FFg~L`8 z7g%XKY+GcyM0fj)mmi| z0(7gfXYEz(iDMo%Id)Shl^H&`5(g-Gv%<9@`%O2dE#2L!>AX3M_vfiBy$1kCfvjcN z<`j8-d|5x|=HAK&K#zi^nKueOxD`#;L06kyUQyB86U+Z5t!(&K#xnf*>$9-piEr`SZ5!1B+O`NMqu4!ogEt_lL{`&D$3+(|}E4hzS~u8*B@TM_F-I zHha*KbJCs=&8Dp@k(ay2za_A(oYBznFtk4a9ByM~cS{23*?&!s0AJ#VOqCD2pvp{o z4Nb5054OnZExP9p&KG@XZI|za0C|vG((ioLEM7`gKfSr%URg!O-c%Y;4xiiRDytBM z!?Jdk?ueuuw2WgYd6xXrj7Kmi{o{Lcz2P0d*xrv7K6V(dzCn)ne{O)>_Xw! zkTXYfeD(NZ6A{TgezdjWa-9#XB#C}5nG3ogy^?K}^46);mX=o&kfEOG4Zsyzm|S9K z*^QqmdNTeh&h4P}0u|UM(W?T|t3?KrvE3bDAT-hPIX0F_tm!_wlK_Ke+dn%!{rB!o z`@{X4V!PHA;E=8Y4aH{NmSL%X*lJ>c+4!M-YLZ&puqpeYarr4ggC=(`1bWhm(bt~7 z1eZSc&u~nPr+bt8BpxV5Ek2(kB^bdVakhp0q{v&s22xhnCRxa$!(J;cE-t2?{3flr zv0t|>uu^Md_Bdt@0^QltWQmfWLC3Y8j)Vto7gB)X=5~eQf)PC2R8jj;{QE2scfX2; z3W2E8{Pmoe87ni3koZr({l*$~Ss{SK(cesU`PW>kJhmcgNnbKa-_vJ8KN-9he6UDJ zux?DEvE}7W1J7&B-a;S~yB7d#!o=75LrKH&0`)6g98EIsGpcF#bgwU{N?k6{{>#-& zZlp1m1p13dzv=9ZpX0wO3q|jAXTlNHJix2PomZh?o0FL);qj}w^=3Z^8<;_POqtB* z8GM6zcwErOiP>0XR{~s9O)D|2Y-m@kcdBA|X+^_^*K0q`yR|#6t+&C|@(OuZ-*64* zNEg}@mCC&$d4#P?OJ@(~F3s}|^H>)jO4tEZZqURTGVAmJbOatCH&V1U!GnP3a(3nD z^!@vExRd5Ysq6Wx0O*PPEs1$t-n}ew!c~Xc8+Velvmlf9BscfRz!r?mZ{br z$fstiZL(*%(j!~gddUyWON`z90n6Lz?sRf>_5AKatN5y0vnIXop;Sf7@v&|Y(JPfy z&XpVKhU)d5!$X$^zY7BH=391l4i2B&#fMeD#T)gk#a=2)yMD-}JV0qT)CkBDok8)- zLyFL`hBIM!QyU{lA}OlRK;(gzF<81}`>woIPe~~-sd7dd%Xa!Z5P=F7dd*wcD zFe_S2a3$odKz;V)6agXvxtt73+rM;W=b9gBf4E~x3w%&kh^6h_vV|G3x}yDS@}L0} z;gm051jSu50WGxWv;ECLBtSa%n;$yFdbt~rvyXMMeg1?J<=%h8ENkNT6qTi+c>_Wf zNJ%Z%A4Pvk{2iFgFr8=!L-UUQ3^ns*{i=J4Cbh4h#i&A?WU|*KfIB? zO-wWM{Wg5?A(qeM1!ajFyq@=>BD7#h1DVoaA+1{X)LU1s5OjemjTwk>8y`7G*it-v zce?e01$+l3at#!2!@B)ecX8}{5)skZwT?1uR__EPXqTWCZ(d`+_RXG;?^&HNO2h84 z%GPv^ZO97XSc}3rieu5ZyYA-o*d|+E34g-C(EIz_YpSQhDS&e+?qcEQtIZt4{h<+y zhFC>w8^-w_$Hsb=vju?I1$#R?JH2m@f+jyC-5^6Ql3Yi^hO&fnsRg7q08r;xPZi6@ z@|6eta7^JF$mA4A&yaiX@frm206gH45*QMgFx*?p22(j817PaWS5<)N5Fw6mF&A|y zhYL+A{&V66>1Hnm z?ZTWPpm+O=9=HQ`KpMK-E1Qhou$JfHom5I;BPmLt~Nt@!$h=KW82 zJQjeAjgpt=o7l(_QdL#uyJBd$&~i0*)Z0GJCPo5;shz!TjI0+5@q%-J7Ws zG}Fl7Z!~#QbbE{D)U>5%>^HBm&7|HHQFO9|z}p0-oFtQA0G zRcIg%G&Je<1)%Ux019JDmuvNMAQX`XUs+wG)syE*#n=|QK1I%jCX4K0aN9X9*ScEn z^Ko0G{+AvBjYd@)B`iL;W$}wNRKzAGbU#|}>$rrS7yMDUTThpDO&*4mfNly{$AGz` zTPq)s249=5kr)2UQN8ust)G56FLvY}+;Z4v2cR+p@#h!5kk?PoVz}FUDs^Wi2CQA! zI{;(jS_BdmAuy!Gc)EMO z6{_DXNRkn)T~3VL0PNU;7i`=k*+|cRe{;oVjK>Bxe`OMv%1)Fmfib@8r>w4Cfj%(% zBobcjV1S9jnlpYJYV&Y^S7z*U=r!rutM*l|vd?!V6?1`c^B1XMnnVeEWy>{YQQ(e) zssGUzF{M$_4OsU^Zcyjq{*_Ap&CgFG5+@%O;_2m;`fa3c50iDf0f@@QBKBm08n~fg zFX_`Ki#P(v#1){wF1iM?%>`?Jsr<9LqsRjOfyj~}LYl#^-AL0yb#zjs4et1{sD9`C z2eE?Gc5Mk*G^E}$`G~FV=swQa18xW(Wwc1=EBa}mHn{_q=gi92T+<-^rd9J}GCI0$ zpk*1+a~?*_-v6TWn(NPz^xLM*efa^r_;7y_`8nF|&t2g0$^!xP zmdOn&?7UPapkdpWaDC$^?8v?}ZEJ?C9UEP9zL1iE zK)TwE0Nq1mr)*3MVl#BvGT{mojjR`4nm)Zon;F_VDO1StmPdSO0W&DZhbdH;VPx){ zZ%;X`N#m+KIg4UdcRcc&5OQ7qaeF=0Za!1Hq2FYMs*=WujOt}rgVl_d z3FJdeOonSl+YqCH=XkgG;b}@aUO8hM9{@vwV>GZiGpZu5f0IA5`m3uef|1x_J0TY| z7x59E7_%jvRr~gJpLxY+eEtMQ*T{Cr*;wjA*UoS|iZy1c2({&qMK4c9&%np}XFh*_ z3J#RN@Y+_BldpHEB$n~?{BH?Z8k z+1a;Erk=bG$6p5mzAXLV6V9^{&=HEWvIBc~H%TjXWu*`@6;HI=e!RL~$3_U?D^`o* zdv@?#uC{Ty7w9aA2t^%37ZN}$f>8usq(a)0TxpXI(h$BOTGF94#+&=|H%6G;w=Lv) zu}i59u*}oi$Ylzitd`!%Yer@i^_*)6a*HsooLW0fd$@0mRJuDnDpmTIf{!w9FX6@y z03nK50*;}E>&%@U+MW4k;hMI~0!WQngtD^o>Os&0%|@z?kYdGc?rO z_k36Bs8B5>O)s>J0+`F0m`6rSt(^H*xZhl^{kGT|d`<9nf*H(D(m-P?J>H5C1s``! zaysrf$*rm)(-5dgc8KF2Rwq;EeInP)t)Cito-RKTV{L0Zk_$kt|gj&?R(eKcT@uF={8>|oGaj zA1Z()0%(~r|4qDIy*`k_!zs!B+^Imbm1M1ch{wUn-?^L9n@~o2l3dYxQ;QJjKL=02 zw}(au8(Sk4nGW%vA?D#tc~L6cFW3j}%wFZJAbE6w6-F>SI%F90CKiXXB(c8ow4<@f z!6fp;<@S!Dd2l(-a!z&Y{xUWG;p6O6pq)MWuvHREm7{KFh|3sG^mv1YW7Ebr)4;Vl z-(D8A%zvALt@+tZ)#WPKaeRd#4d{2&PhAaMEf(mGls=4-yqku?M@SMap=rSpE|_I?tv0*)oaG9b=e$G5-tP8LO8`pAuZ1L@T1 z$Z`K-10TgBPH@0(VQ`9%o``a0@CtMhS!VIzs*=Z08r?8Jla^#BnCGdaTYGj%t^!6nEn@QNJBnnLp~On!dY1gV9EQ!1B< zOs-VGwsAgu&SR<-YjJ0l)QHYjTf*n+_U_=}(OW+ux=^aeq#<=h^+%2D*S~6O4wSo_ zUQhj4pcQ;pKWQ`>jERxBa9S`tk5@`&nNZ@?fk1oZR_&1l=IkTvCXe!E9tUwG-eJW5vC*r2DPCbrY2q~8Yu95a1@EU~&g{0K~FO0_*D zQfQoSaVp#I!GO#{d~|dq*vqOWR$;n~4%`o*pj^+eyW}^(wzt^pdbTZiyPVd(R8})m znI>|!L)pc_^AORW{Iqhe+2@2p$dUayU_3cGa^0iP2PDk|#jqPpqU|h$$6N7=QQ=MK z>1h73V`S%CBtA&q;+_k4n5ixX!eqF$4`60$T&|B!kG~OOAuqy83{y?5qo%FaEq6||`Y znJ4t8yrffS&YKM;k}J3`GMx{OJnfy{K|kbx%un?lKJAwG33~1QwF^xEh>eF1;O@!f zr1~Z!O_DgArMGu@<6Fm;YG2tJyKbTTM55dr z0?q4ZN7_Zibo0k;p@4@A&@;>pdfWif<8yEF)cdYkpkM_)G%vdJGcP)NUY!w1U!w<; zYDlzo12{xg`1y;e;_z&3K(S+%V!JD!VFe9d(vu{1BbpImh_@t-`jDNytnGIfC_fOK zkh=!zm2RW-8!B-7F0uhAw;!pgC;R%tFCLPc$wi4(Cy$>&2fm;mk4JqsN{rze6 zOnpQjrIv@wUTL4}tzH_s_L71E7O0Y9r0r@S$@AWc3gpH7LHPa;GG)LIcz<-5|Hwgr zSzjhC4_Gx@ETc5g8)NZm1S2#|u>DIf;7805v?px!l|Q~yX`kBN0qR@U)4a|spvBd} zCxn?;K9^}LLm-sVeO5>iQpEgQ7D)eBA!- z>-CL|3pF)0E<9Im{W)`nQ0^a3^R%31Z;vU3NysN+G^Flg>lb|M|NJ;|eH|6;X4A}l zwctfVJ5^JZJSzX@jo`npLS*%`!^dkJG-|Nr<#4wJpAEN%fFSEXd5tY6=k|}oJEIg4 zREgU@%VKuDyF*-n)zobo0=~PSIy_`^2Hjyk!sF84O<_`+2TMbT{w&~n56?(~OV*Ky za1FSf4XNckaAF=%IUkR9zKon)NR39vnxh};F9S!{gvc_q9#AiQ+s-+Wm6U31GPqFV zA;E0kjRPor{+AuIu}=l7JATAV-!na2tO^We3nYJg9T7?^0B9k`7x}qv8@bLKMbfRn zkyu?L*VNJZwGc4kc43;Bh)*w(et9YK?%mT;-G365t>-ND^Y^xoHi}(?Tz;!Qq|hQD zpf}MaYRC@DMn&RXavZY4k`_kM+Be~WnqW72UeG_nSWU-T@`zagE`_^zY{)%A_R_|b zgC6GZK_53=Niv9FxG*>zPnKEZ#6?O_!UWQOO0hPKC0Qr=scG+A`eer5ncw^H*@E|q z_203#G_*zr21=tjk~9)T0CZ&erfc1{{|+c9{tsBv1=ZC_MLE~PlqTMRdJ$H!d~_eu zisvYDQ_gq4vC6ITn?L=Hmrh`u2lo>b5OEbM0p#&2uTuDZ&9@)Z)6*mYz8Btfr+?M) z9+}+~>6Nvt>=%$^jl0#Q`t?o$A(mOn zuwbVQk#hYX(HudSjDXnE2uMqh0iz{&2U~CQIiMgT8_%%Oo2Z96qh>*Cf(?!zcIUnP z$tEa(``sOsoSB}ZKaqX$%`4&a%Po1C%uk;_MSsFTXN$h9dj9F0>5(_yD+yzP=!E8ZXzM)7(#3UlE7CQxuXcap1vmA$w3nLVCL5g_FtUcBwHB0~q_0CVF4%1pCVO-@mg!^uD^OqbOX#S?QGH zcScDC)uW7gr^g+!JS%L~oc1-dJYv_;q=n=2!3`_Sz&mM`L`Qtw)E_eNr&%>F#)6u@ zKh)|Uqnq2?5B_C70hA5#{{H@0f2$d~|MLRenv+@fs6P`G)l+dKQ}k`kscgT>5ym89 z6cx=dZS@5-y?Bjzb6H~aZ`g+^2|wSjqtBqQLfsH%NlaH8M%YOO=xvHYA_l3}^Z7TSp`j_7 zYy>w6?=#I@v4O>e$!5ICO<+=r^BJk2|1Ha%#Hupl<2xRV8Zg~zPeVX6&I-_{AGzuU z_EV<2_l`UY`F!o__9TEU&~~%xVpAIFQDNMu+~^kQFxv#ZSoFgR12;dEJ$}kqRnagj zF=7gemuEv60(K|{sieV#0DWa}M}vsvf;S1!QG|m%;+$p$#0l=>ZpDio zuMfYWd20RgRrHWIxLJ2i5^5H_SIv3RMB}!?oXm8WQ~9k>MNQ3mtgxKZs4W_aG(suX zQO*>!SFW$f-un0B&fUym(wx`r_7W%X#*xSG;$B^~Of>DIn_FH`yB?M3v805gWRAV+ z^ateCU^OiB$KFV`{n{7YwcK=4 z;a9}yuTW&(rf*+g>Hu2vWye#fpS8jMV-A!vzxUpsz;gGTxpQW|nfYdpkzBf9 z=brM5?fxY$7)(SDQYusugKuMr7W8u8*xWR&coh;R4(mCshsOj01o9nB?%e>90#skhf4aHCa;ITZBm7eSC84=KSV^{K3qSwmo9m5dq0u`L?l!zfcTMX zzXkL5Ev;f>H5bs&?dp-3om)U9mG@RnO$}4(9XdLoA?)dqDkTXIh#{g9Vi@@N14~Ue z^|+p4_*{PPQQHP`US$8O6v`wr67G#RkbN&wb%WUG0!m{Ft|!CItMlyt{wNL375|6! z^<(pwfpex2M^n&WBsl%!@J*_Lb1&b^)L#$2J1xU;z`0cTEQx$^RZ>lVkwqTyE?W?>_Eq@cCWBL^!NK=3BAIRPTWc3LqI%X@w^5_bqrP&-A)>vPMD5sKsV1#{zQ-JhC zw2>R(za>7d)MU(aYa;qi($|xY8WTem&wzjG)MEewd&Bg=7#OKTPyoH4V179ZO*EP# zB%x=Q48Du}`OD$O`>k4;4jK0?c1(=o-b)xcCnJh~yCfiU%AAI$29d&l!^0?=nwnbL zTGV@6AqBw*fV6KP9uynwVZ6P)|EOdS)swvMaB!S4WcJo76`5N5s`;~)et=kWe^pOU zxP-X^gT^82+pDtniTK?K8qr1cdD4T5e$D)9ucR*vI*g@yx2>}cW3HYct4AsvBl&v` z2lz1QN}Ax+NJh&;^E^^COX7kU{{c(q$>J_8T`q&~5*xyQ_QPqxYe02B{_HC_*DEP; zW|w^6T(B?ydjtId<)G6#l4P570m;g=J31glIA0t*4$GNVFFss{yl*Qe0y?ge3dHK9 zR^Q0w0Evkl^Uupr8=O)*K%!}baVUT4kk4>Dt$cBN{onJYh0bLawL*fg{_sw^Va;w1 z28E$m7wi=r{F~eOm0k8}jebAEJ5)Tz&VtW2%r=Bf5sSlG`=WbH>Hrk|u}~ z9`=NmU<}p6`4NGy7)dV+*i&$ov~5~!C1JnZrm7@o`1;=tIwl+tk&r57U+QqSSM#b-b2tMt6J6PI| z&5aR8NnKPQbVc6AzCaBbg~f?dz+w#>hdNG(f2KvS%sy`^)lq z*6Z3tjwQt(?Pqh5KYY~q@~e9~@Ktu9EIIoXP-VHLYa%I#;T$Gi2<>~|d)uXCkdzB0 zGMenSLL+c}0!DYxfc)YSn^{c)DYnRh0fME6i$=~k%xhBir;5(j!x&t5j_Pb39K0gYJ~U83Db?ts z`QLPr0;v~35qv)xdH9j=+wk%PUZk{fW3>c-2=;4erc2=~KxeJvbDRIED-!5|OQkhM zQ6cL0b{dt6npRZV*8EN}Dob&XH(BZ0`d)u|2MlI6ftsUvl zIK4SJ#!QvCf$s4O9QtiwqKZuFH5t%^D3f+t7{4474a-GB^0dN5yhQ!KyHMz-UvT*3 z00^W{2-@R%Ey`dt0bWW|cR_8LhC`n`-V!@de5Rh_i6WrDHJHQZi%8T8R+^~58cN~F zQm>*U;B^cjwQ242dna99S7kE!2NklxhfXBjgY_rnnfi2Ws6ifLxc(_8^i|#8#HiO& zy~@51ftB^we4Bc!3+ID(ea}<5N;FAk37>4x{i-^P%ZdQyT-V7>qFzpUL8Ues4B%>^ zhw4J7W4#8qcH0EB?^JR<>KO0toCCC2p_Eja_V=9@QPv}zZeSyIIuQ6xc_KN8W}p&n zlUwxqRmU+uWn0RB3U~zn4A<{IBcA0vA*qX8M)+3+hCLFzDv+_-p=#!(!^L=5$5H&7 zD^yC$1mk|WE3RbEy3s4IKbCFu#f_Gvqw_?{7xok5fc<*Tf`bM*4hgP9?WUnObx5Va zt2X?T1fjj^!;b_I=h;Jg#@>UqyfO0Pa7oUM-KEOJwXzR<>EGmnE*gIwxs9@}@2CPZ zc@9)C$AE{GvHOsKff>g$v}f+T;6S?o>#zsG-yUy)i{9w&i&coG9?gnVQiu+EOUT=T zA{&Z^AVEbQPbaRfrGO}+2=ukk&}fi@I+mA*=ht3?0@1zW)1$v5vjPXmg&_FJYa~1r z`fvWf@)Q?@teZ)1tn(l{5XRr*obfOUMMH_}8diVBBANJ`GE>`eUj|uM5Q#EgO`7A| z=;(FBfo_WT@?ssoOE4o!Fn?);N-%Wih)SQPyLxNbg$npAtmCX2^pw7OdkM ziMea5u-Gn#)UFyT-jQUK0W9X{_WA~@fC+m_y&GR-YTd?<#$$Glzr_YUiRorzm4qSo z0^ybQ(hTndwWUJcT4Sl_FyPkI1I%IXRvtqh8%~je*fAm@<{Chcr#;_|C!dM!K98Xq zE@Fsgoi(h&`~u&~Fcp9LOE~{lp(QFSm?|DK7^-iFD1u^mn8!?j#Z|Gz2)?{M8)iIu zyZdMY1FKUCI@-^(wX59HQ9(ChS~i$DnYr7LWKJv-8{3=u-n@85KGAj<6l}xCZZ9T^ z`l0T2OEaRLRWMtvu;^;Ikb42g4qgC><{F~>qOQYFcN%~ z%;ap-2rQ|!`;!|vnhVtiQu9CdukUO~xwWA`);h0#>;0=x3OA&Cy5V1k=RijeL0ox; z_7EoCI<0(v=5-JIUiEEnxdDxa(uX}?>N6USuAjo}Z@~2hG>1yIbnjeA&meu=BEJA;;5a$)}mE+`@qwGb{6zl#wB)>Nb^bDE0IK}g=q zgT##=+UV|_I|#m%CNVh_xm@L5^*-MT&c~(4)6GPurO6Cn5B<@o>30xni=Mi|-#(CW zak&8|sq|S6WZ1KvZ^Eq}5n>Z#@6(Z)rw5og0-RUX60Popl7;$=OsMBFbS!9_=@w04 zIsM$5;*{nnTm;MvWxc^rLTtqtnG3tQy-|XzIHMupcTV;1wRYfQ4M8NX_B`a#R1(tI^MJR^KZ_Q$dXf%&DyblqE9x*+ zTFvBKU;ES9t-6?u29XQ>44|+z8gl%NWab-K=V5_BMW&5)s{!ea0il_({Fl%$Dg9@^ zZWzzowf99`B!*a?7uYb%%X#|t^Hetu5K}APOwoV5ZAKzlIJmgo#p(`o^>!cJ{olZ> zj59Wm)u9k-s%4wO>Q3%ct=z>JCAY~3mYYww)gHEX{9CSZaPro~#~Ltcm3f-a!+qKk ztbM|kd~xBbGE>x@G^aqK!J^v3i#&Hy`XiZLkwCrYAu1|L4j}u^s{^k0D6O)lrqnDf z6bOk0;B=G!<=jZ|xiUDH>Xtk>pZ+aw;!%h_tMgw+?9Fe!~V)46(ri`E0blA#Unh$_50V=~&irip`+kCrPQ@o!G7^g8_n zlS5L;q1@;J{`;JW`R?SYZ>fi2OG!zyignv!fQB6mJiLU1845~Da8gnq;1jrAjyt|B zOq%2Wop%4l8=;|Cr)WW|TJlYy7}h)wQ62#n63J`%J^NckbQQ2+7637bpo}AHw5oGJ zGJF>0&B1RxxHt%@zGni)wWtTnry~Iv#){5W73(s&+o}IrGm<@FiB8=|D~>t8?tUbi)W<%rFX&)8|$67b>4G-7Ux# zygwM8N-U^zm2r*x1PPEM*VD)uFa@GpSgIFKhp>J|K3sS~IGDCt-5uLVl0iks)g>nW ztAdy*(v5U`7vDYHK+Y+b$6Tnzl7Esvlb1DRE-BY6uO$OFhPEaeu(ItuYNVfYoIP_; z?|My*GeTr^)L}z&qzS>{YZW<=^BQ}&#fUNVFG_zyT*rR+Jv&#vZ(n#0LS2CcM_MEx z;mmsHqg?OuBnX405tsSYbwwky2Exhm}{9HFujG)lX301lE6TE7P#z2b)ny*`KnOjx<<MsAN+P=D4gTdh6;o$&cfXs7PY`gAU7xrJvd}3n!89)^h z8oJ$bBeXeL=%YYQE{HcBVAE6AJ(jf^vFK=_o4m!QYdqR#B?IyHP5IukJJq0(@T8)| zs?+}@iocMP7^bsjE-6X<0f$jF$oM16v#Z-!KZRQ`aw-QdK5u9q(*;){^95Gp7>PJgUUGU9mfb^ z1aY58Y2$yq{X^2=e#BczuMC9ZQh6PM1y2xKH>IzK8;SH-p-r(=@)yq!#OPRr-{x3L zi!)x381U}Y`HFk-W}7&1U~_K0msgt4)|d#E*5r=N^C}MuNIuGMWr*VQVJBOA0%v&; z!WLz<;N2a)+?AtI^B396f?2@Bxp#URyG3!`I{V`olyf)3K8}W~+3RudW}52K%Ypp` zavOGZux)pCs5ngUkbY5sdVXGX!uE6b$6MJ*6^6ogadL&XsQuSnX;i}0%ivfJdX46| zz_0}HUsY! zt0()N&?LDZBfd+i&V`2%Ej$o=CNQebnAbg0Ur9+MvPgU{w+m^~+O>?HqJK`Er?FTm%B{*|2t|b!OIP-8J&R{r zq}^7aWkM&u{|$*j>V$U`e(xab4m99PZ>^WeS*_t7(z3@3?D)8&%xxxxkELhMD7hRA zQefA7hP!fuAA)e*#_i?7io>FsEWdR>+XxHq0Ly1&pnoQA+KRW_ZUY+`9`8l1iU_gv!ocrG_`+PVY`|nealu`5Fc89b_Yxl*w*;64APA zUXy|{>*tv1po3dCue_haW7_i$@={}4M^XjG?~su8f=D*lgvrc@N#D1L+#t!g5X-I< zrsuB-MnF~mE5JT0CQOKq2scIp(v9K?m^_jETa<41BYm+T_V7=YK%W|~a=vF6Ify=G zI^Bk<+GGEE+Uuvf^LalC3C0_r4=GFff=+f0J6rZRyKqn8T34xYU z9L`$W6qF02(;f{KH)!Yln$dvHnrIn%2J6m5MuXDJn~V}kjmr>a&briLjFinck^ACtz)^~NaL^O#frZ*-ztBfk!g-*#}LPi zLBpSDcg_W{Lbz%DAO?o=OhC4g>E^IETTEJ!7AxHKMH}U@Cdyiy&wv@U7+JL=l}m;= zZz3%!M>yBJ+kV7-{=h`u)td>DTisj}kimVT4a<+}%$yOLII}uBOlEe%lGSh$E}LQT z8ed3jzz+MfOxMbue83+90QpeboUy+9D}1+#?;hSMb)VAZB>Wk%T)hlrQ;;u&jntTn zwD?twaDSXzs6Lmc0~~o^;^r`z;-aDo<2%N?si~qFmU0D9tDTLmqbn;~Z#y+3VEz8Y43#5v(Xi#v9YE#Av zdY+6VWz$qH(`FzC>7Ufb58mCwZkiOssuWIz-_1lyf>w?B5$Y_^5- z$iF5CLi0O=U-AtKh{Ew-cmTgLS*#n#mB6*y%_Oz1^>>xQ3!If^#h}B$6A~y?ss{yc z{h2byW=sl;lE<|OrsNkFuln8p{Vhy%UUU4>8&l@G8HcygMlC=x(fRm30#Kn}5gO3# zZZETi>}KFy*M~kIhvSbCs0ZEjoQRi=c$ctK(9BAcj_@>6X}0QfkcoTBNQEYpYV%gO zjFhokDrB(x`&o>k1T5EeQVZ=~8nEIvI9`8l;$m7meYPTB9$AuDG96{xDMB4RaJs~s zi~S|Up5;!bYu=&~DO|OGv0Y6xJ3DW;d80eqpf|?W#*`;DRIozdnPX_?_jaVhateNo zKRZe4HHV=<-rd#33><5C6!%z*nNsD_G~yf+l&5Ss}Z{EDdcG#i+IbEEg zP#8D(V1`Y|S6k=oD#B=3e5OL-wHdFV+r95Z6Mv+q~xq54TOaYoQpKWyK?0jhcmyaa` zfauCJ`2-_p>mLER3Zp)gMSV)wISw`M+~f7%9I9!cmYQt6UruVgC!E<$ry-kN5A+(1 z9bbAekrMwexCmU1$V|Q5d%)Z1@sR^69k0IeuGH+0yAG)mBR3ayl|fEQc!c;!D}^b`B8e{Zn}}rM6OGbih>K&`|09B*p8r z?>qd5gt^B9_5Krq}`rWv0WEhRr^?KSazjsi7LwGADm@-=9B0*}9=xo`EE z5Fa!sScVl!oh}#L{_`II=HjIswJ`%aXeq=7s?CJPD-2xZ((e&~79??Dta+z$i%vO5M|oZU%WT8VZ?Q-kOq6Ux`AiD zqCBZVt8&d>RHukxJHI96A-A_*v7yR#Rqj{3KnrA0RNV)B>`UQ1S{=e+bJZ*TpC|LC z%2%FzR1aZ}nlwnD%3++RX{&|1>n5|=+1YZ-y|;hW%A}<3{p#EereDecjVG9`LUfV0 zp&Yu!B_UHITeeH`;jI${gP zZ$+tLdx*q$uPh`O;a@xSXSHukSG+#KJls4RR~R6@%b*mCJ46)Ga{>r4_o%MvYn?(Q z{Ev(^7Bl(}OsTFO_Dr<}-n|0a?K*GaGDE!#?%id&gxAdF((<2@lDV(;rvO-iC{L4m zC-?K$=3aYWtlw;NASI?amo?nk)Qob4V$p1KE|U(VyNcm7F{8Riyu@(tzG^N~5cFB` z>~)<)oa-Ty+nJbo2#0s!fI9xD}{gNF7 zCfSPGeT(urf**W?)o=wApKcCO94H>wuB$uzG57{hC z8a=oI(o|HyNa*vS+gf%jh3R=xb=g3BiqGS1j6kz=!$9Rpv&lu85FVZ^5}DBF2%sY% zjEQo*Mw$wlG6bIm<+IEjl^o2n;4?ROgYEMqDWImKG}-kQZ7}|qr_B^4te?|a(S02X zP_jXC|Jsxy29E$Z&+c8pW>#28uwcv3dtpR>vUzxj=*!5!QD(#Q0YSp#5!U<@AzIJW z>iaN4HR{>dq#`CGm0Vi(x87rV^-2PeUzW|s?bEE4y{Wbj3mXLvyl!g0m?o5^Xn7kx z7UT`U7{(5oWcWbkFR-(f3X}Luf+W+BDvF}2Y2*`kVhZRTAec#zmYH$|YMBhdFzLjy z(aH*;oMkipBimx@L60FIG{-Kz3+~FTreB!iZ#DDF^I~yBspX8J(r<#HIV56FGVmvW9@nif3Y`q(Qo=Z;^G8@IJb|sr zud4ZZl1X@1>7&*?T|kL+BCJA_-oRq(kQNQ`PwQkKvKC`?>U-AyYl8pY{11s|!5-fr?4Z&VhcGjJu z$hZrqDgZW^ue6g0rrw*BUJsd$37X7-Wb%WhkyVtg({Je+1fK;nA|H?gMcNP5CukHq zK1RqvTXG2!$@@Awi;!g(>L>-j{QB3)Q>Tt9=#c28IkTqG5lc$!nS3Oeu5*H%gpnr^ zUvzYL+S(GVP^WmH)tijJMVk^^pvhGxU^gjCjrZTywSd~wtCxaDArNuB)!v^j8G@|T zUW`eQG1FWfhGulO2XG{n4_0E`L04)y%M#K8!p38PddkGcmLS31!)FTV1jB*tD|YKg zznX8Dkg=LW>FZToaY$v{5ftfl<90xk)8_aVUA38dI@kSltuyx>EwAdg5iYLNrA4wd z?u*Tu6dg;YNcft8Po7i|Ae$~!Eh{{&)cRPizh#b&j{ceRP!=E<`5`Zc)O|~Efb3jS zV!#CZl`Pb<*^Z_H zu<&bduos`NV8pR;^0!>84xI0~BTzy6Gr*Olo)c`;W#MIBGem?ju^;Oa2Y zS;UTb#zJoP!5jDY>EWyKAUG@`2qAe7qzRA-dDEb=Z6XB|EQWmthqq220CH73$-%6P z4~xeJPF7-uyi-qAc?`ksmSBRr9AUIkax&WvtNCQX?v?v8(KTfl&J%g7OK1{4*Wgew zt!i=f(zfLZo{*WdTS5#~jv`i(65jbIh{C9Ly=~0Vf{W7hOt4*N5$qk`{slLUh5*i6 zGWCWt0%8=aw6dMbI%T$U7l!=jORj|*ojefiO7F35#}tH!u&CUu*QoZeu_OA~iLDNF zr`6eFHi3C-2DfsJTT2mY8So@a<%hsKY*wrV_WXFS*Vof352LmPZ$7M z<YSND@cpw%<%3LivaHv?tJZ+8{|q~w zFRzK$x-TOV0MAE-f2eJ5&Azs4JkU3lKKJ}&HhkC&JrnZTxy@+X*xi&0r9`Wl4|2(G z6Ar{ymsq?s6TfES9@#q*ChsnV|5p=0brN|e$Yk?UK|nC5tB44~`${e^mM-qNK<5a| zLhb%DwlTU_sjI-pd`gReN<^6%NlYA$FLkr+r2uNM@gw8cH8V5w6grYfVATFaKfrD_ z{(G(}-z1^xUEXu&@@@C-=3!zxwW+5i?L}AIV_U{kUD1bbP?>Wp)Taz}v&;zRjjg?1p1}yI zaMdlqRM|>OOB*cSf`C(-!f7RQu`T;=M^MrE zS1v8M!b!>QL?4|hA;@9F^F47ZXL5$dOV=*VH?tG2_xOP&H7kCn!~nwEURopm^w||F zUaEU{jQIT7;{>2Ovp^{$DXrEsHkaOck1Zfi5u}W@UlGQEfy;=v;Xk^^0tj;TNE?`7 zm!Oa%&hd)3VpF+@`S#;-_}Rl@a78D6e=#0jyn_LB-t;i9Nj0+P@Ji4LX14XlyftH> zcOej<3IHR(hQ`I1_{?j-i5jXTVnsWnX9ywrk6lqJ%TH&$Zzjz-(s^qUNEj(xEO@8P zCXrsGrtIvUJD0~03(%c!Rc|uq!&)VgLcSH1+1}3-TlElsuL(pYE;;EBSZZ-|0U-!3 z&AltT-eCdFTi!%{;9Bu0y!GQ^yB;w*cQR@9G_P+D)gKj77daAMoYTVsf3>^qlT93ja{J{qZId{1;$gT4a zC^7d7)7~FM8ik(uzt$a>0rHHO!lEnRm>Ke9J{O3SqM+#^ukG>b-P_a-{9*@=Hr;+i zN?%<5MpFpX&9ZIUerYv&28Ln{TpU~veX*lmw}wl$p;vPcy_1XX-9-E(OBNap6q6kG zCxzHe6{2bx{$@s>*X;>gPnD`7apCYC2P{$Xe|ecv*qSY zg_E3pb1v9ep`RjlYt{Z7&bJ`=4tr@cD!8AkR48>Ha_%qy6fT~3qi;~a z6JB(4UE5eI)e2ZFW{T_R-P5V=l?fk;T z$ADGi*jjJT7rmNT2SGjPD)xC(^?U@I?>YzB-JzpQY3^s`v7^8m&uD%Uh8=>(*wtU= zdLSDO6T&gFZH^KiTkx^PL@iIp$0pnzV?nUxpG#Y~u!WTSy2ZPJu#ga=(agHnd^eb! zMX%!rHhoeo&$)-}>x4&TNp|eWhkXvj3p?gNwOxg&qx9zlQ$qoQgg4v4PHvIY|OC$;la*`9suI z6?f@cbYQiElwoKwdww%IaN0rhfE)#$W&$3;f8(u!kF;|)8796QpoZ6oYjX| zKpYCDxO01=UG_O41W0S-sodcDUn}c7IH8=IFhqYVn^n(!;%ZsS_8e|cS1yT9c`GXH zs;w4MJ_?n!4>2tCyb(c*V>wrWg309fSWEMlo-b&DA4MN4y%2z&lo_3aV5LG)3JU%^ zu@S`r&Un`8kV3)6r#?KSW&YGMx%Z2NA;?VP@M51v1La{L&mdvRX zrj8>3ooD@IPO+Ka%zJkiMtrO2u4I7*NIU{I=~79v3a^L!T{H0JQqZE zeS8<6FFWKzH*WZ`t!IRq{UR0S@yPtb9Li*?m?9Am+)p+X&9x#7xJH|mWqQpW5nuo8^`a;{icBw%i zI=+NZs+P6!GQGtW731zAuV`ZLJrYv3d3-;R8O!9NmE_ngVF?s*?!Ug^yvhsLWVm3N5&xgPddN@g;Gb(uR0gl{h}f7?tT#gKT3Zxqn@Vp>6Tk=~tkr=CVu( zT^p8YbptrlEXR-*pOYF9@cg@CjO<;>~;>KttKq9~-bkMNgjw z@NJcV!nmiGr$V-He}1uapSu6N5lp=;1-kzsm}%!d;>XUP%t~3=4FN3bi8oBH_{ub2 z5$EW)7d-Saj6cqbjTXK)Zfi_!eX)=VypPh2A>n6^oP%{Sm=wB=tf){{Y}0(Ffl?gg zLUA!8z9jdo#Y51OoX({#U`4bdODuDIytEmqY5@75cd{Cw@)ZyA{!XHZW5lhp3WK5e z1FwJkZ^0p75sIuz=!S`o-!(@6#%}5MX1{HIYa2n?Ro?F0&);GOSR~}+adkl`JM%RM z09s=8xV{XY=59>BXYyFz$%(xvdlO9olB~Af8~Gr&HNE=QbG3o_Wg?bLJ@1`sONVI&C|GT{rpq~3b)l%-eu zwDSPw5NkiNqpX$+h>99jV5w@gOx#a&)z6oS1GHIuv@bs|d_qvuEG7D|)o~|u@kmsO zL5LevWr28jbkuE?uKyK?{fY1*+@NpqA55Byn1rj=TKC8lC@Fm&$<{*dRwVy$^SB>! z1ASlHfH+i23I3I)YZ6PP$x)mbN-PeF#B$S6U};M=XC!my<>j3%16Q{IviPGyYdn}l zi(a5lzbQuzv(te~i&`HRpJ)ZB`sLdbeo^2W}mk<-T+VA-tpZ;ew6SER|=X%*#V?=i>4`3Tt zZJf^;j9d~u(=l?Q=LpM#Y=~8)>`1>)n$;BcRfe~CJ#(0%(MuGvuN=n6Cfr&6wZwFM zYDA~id`DHc^7C%k4V%Z>E^lHliTmsWr8g%oPz495`Ra{^f^u@(9Fx`gm^taEw6kuHGSK5qBqA0DZCS(k%k0ab`K1*>GBENgqrzY4Aw3&mRXQ6}k5(Tn#xl zS?+Cu5|jZ?LF#gMjs?(o*lniSFL>UGS!_b1XtpO`2PC@rmMjxK^$5G)0G=HMKkfGdzK|p(g}wb6Pn@3dorN z|0fJw6yM-PRL=emJ2jQQCWMQ0QK*hyrc!c&YASL5&c2oC+pzgnx-6m{4 zXFH$`M7(Sn_D9vViKUfQvVaBeMvoVm$4yX!xTA3w6mUS_6d>k(uBx_K1J+$HW#w`} zLTME%(|KxeKH>$KE!#6ksfF523Gq3YNPdGc1@?1M{KCUH-EOoCKwp@5#-VZAhrph> zs%Fr`>+ z!S}R}AKfa}OpO_YptCj!O0}Lwhlhl27yd5-7ao0|@Qqq+&o5~izypQ74!7xSoa7`1Y>c!Yq_Orm8v0<3kq z@&esKNiSF_fi`bw=Q%RVc0>s_SK&uzx5=}^$~rv-i7uW}l=Pt#EP&>b#UK*q|7 z6fY%ac0%AoMbEc`=@jieGucaJ%q)Ss9K=iVF&J zxMujr&~C`C>qw1>G!Ai_+|vUWcZ?}ulugc1C-NhXR6`__1}q&lV0{>xe)p?_+Mu#k zR&S0qhy2IiP}F73b!BhChJ>Y};uQg29jLAE z(_*(_4T^m0WJ#8}y^Vv?GYpH=-lkD~MVBQ*s`~fO0>Cs1dHw!ZvAJJ>JG~hGX{kD2 zi9bI!nk!%B=HuGh54SNHsdG}nfyuMj)Jt1#a>(bfakSa^m384)yAlpe*C$NJ`Cvxu zd0fyBIkM1@^8DJIZB`HD;j=-*ZY9j1tgluEbJycsWhpjrDu1*-csPwc5MmQ0r0CRA z@g8BJ0CpMZ{4Kn5&&tt zfT}7s73I!PJUdCr=G}8zE3M_Pq{%OWi~uJMfJz{M3-bK*@LI||^CIOZ zC--WN&Crdc@E}pIw?zG#fCdPFCKf7cd&6vr|YL&MYY?6E51mXSBa%f)g?f4GxH~th2WKF3l{Kc#$Qrf6^Q1fh0ooTiB z)h|BOMumF1S3bOm(g;4WGk)Ld{RSw3Nj)U=>M-?0aD}o=*{OXj_OFJ*-c`C#*Y5h$2DZcXC@qiTp7RJgSgb zDntPL{|F2Wj7>-o@0P%Uj}2W8EXeWy*qWyel4Y}{qTfM_Y32nozc3sY)3v~+x$_d? zC@CoPTv4DHlA?rk15fWi)+{9Eh$d4dl20FKLC~b#*MUL^KtaX5aW;9Lw`y?S99Oo2Tub}%*PO1d8-H_6$ zm9|e$C%9c0p8=_zA3Rc7nMfd@EmqKZ6B>tVafCUx`H zMpW~0)`T%BwgBjr(s-Q3WtE}@q6KJhdzB^Oa@$AWdu_VSdk*g_!lX)f&hHj2KrJ)A zVa2nnv3tcRfp9xGvuFp%DTjXFU;Sx-`C$_q78OkODqC*DaQ?i_5u6_ll%*=>+I}h# zk@8d#hPHgQ|IY;&NOZtdeGTl|p8bD^MC5%hN_ecaf(1g;(y*;5cOFdqC zYZNCC*P@7qW{5iX+xIX+M)+D>MFrEaZ&{l2kL4S*I8thl6A_nGPQIHbvg%d3>O9$$ z$ejmN;)TVBG<`FNV>gIH0R53QtyTY<=pzL;kp$86IN88J0eF&;7nje_U-1A*dkMDQ zFxWxf=lKdIUJ8`V%9N2Brzp5QeIX7s_$F6c0n8aWq9;TbVjQW~n3MR@?^yL6)oz+* z)64f=HW%kM0HG>IpaX7oJHB8iT`Hk-LM+Xt|0Bd|0VBTPuw!WG{-r;+YUL!!B`9$H zFn@D(q?g-uSFNceHvMqWS|kUQ`Mn66Ubpr=YLp2d;xQg$xu8B0p2PLt%T^w8 z=C^<3B55T%H7Cn0y$>bxc0h;ud2m3v(E$A4??vmY)Pcpv%S+Xk3j?#s1>D6;SIy)g z_v5QdNl0ZOKqlel-hB~_y%^?y6URvOezx^IcOtdkmLm;J5w=isp$6e^hvE0Ud@oHo zsd~K93ee8j#fr9t3*Bqrv3R!#Wf-IOp3hX=qi&Hw;M=2r&U|7>YR^3HzMhR^o!Vmu zcRRqQADf+%Z}S`BgS3a!IBHW*u3z~5(hBDW?lIjSa}gU_-MWAz&S&PI@8SJ_=?FBv zlDZxb4oC93HY`JK-})Cj{fsN4{8tD=2n!jq1;TP0jcUu@2>d!=-Z!h|N^8h^cPKBn z6e*wUZJ&nOP~yoJ>Tfo7aq=mvvs|_$W_1| zfr%aKTPg4%BjF~#L&9#?R)N^RE0JRl@3RIQA8<>&n|De_vhqKp+w5P`L{+bJY|x(R z?@wUVgeI|Il>eXyZq)JvEEYLe5Da(T+|UTiMMbn1`rzYmo+&Xiic6jo#w1YrEm=S# z`{Md=R5x2~#vm+w{q&4(4-c4c85w%ocyyt*M4{0b!*HetEe&G2wx0(Of{P9{Bz545 zgD)`0*2gH32yB}*Gj4F2ialkBl<|GUq-+g&^t{EGZ%4Pk_@MV8B z9Y3-7p!GPT^Z+Am7>&>+wT$voEWyZp+Dw1o6s*nbgKm`_B*n4ZJLg3nu1s>)P z;gO${P&y}8K(bHtTBn~i@gUCUH_m+6D_cx&DwD7^T z+3y4)nu%5#F|e4*YI!v;)LP^RHzUL8O?zWi#E6I?)fO}Nd(K^pXWrs{^}l~h(qn%B z`gN%>X>x^eEx)6Dy1JBa+w{ z02Hd`r)y2lrkyZ21cbGNgU-BxL>3bfyREZMKA2maQ<<%Jru-?>Wd2;(sN~@&1 zR%(y^m+vQxQWsBze-P|21}PRQb<4~>|M;r{Vo!nVAX=(=(1;>l?(Y5`QSeekH3Od> z(hZAZyK~MEnpoJ^i?KaVDpFKMg_5npquAP?>e|#=-N?AftUs)Lje%!g0>9Mi5RATW z?yP%qMEXvVmu9xw4ai4nRX(_@x62D18O@%`ziKYw1)_GNqttWSI}DHP9Xpn@Kd@w; zPFRZv$|Fq(NFbohUo|&Km4Uo5AusW4!Iw>vD<)dc;fC}cS@O)OGOohf z<21WJmKW2AAZR~Uf@3tMZmi~vPtBi`W>)L=IrJ!_K7! zEg(ZmH%fPRi^M~Bmq>%Oba%ION;lFC-|<`PUCUqmaAxlN?6c#Ft(5gPfh`igpI-1OPj~1TP7YppQqv-3ZM&Q|}ivB~fY-?)wi;sga5}Fa5swkbsdsV^ms^)yw3!~|9Un_FI+vXs>1Dw&)Y!Zg$F*UG#@OkN-J542AjBgf5&A zmpg3Th$EnROnQFtMyXhB@4;?6e)(N#q!F<`q*&P|)@xf@C9^7`y&Vo%pnwuXjPStx zy3`YHx^YYVsC50t7BcU<7QH;{7!T@>siteVa7ij4`TD#&E;^6}dj47o?~d0QkK~Q> zp#dMP%Ojh&rr|4SmzcC_jqk5?!B*i4uX#+bxuS31a&W4uL14gtrOP@js3J_`ZV(!b5e5y*M$ zSLk>q{@p&2)Y9=x_e7tqS#))Dr;ja*1yz6Vei5|favyYh6_nJ9Iao_3T4Ym}KG)CYoFLe~p?5`sS^G0}w^(<$_1GqmFOm?S@>r_^+s-BNx?pjUe@ zN;YM&;W@N|-&v%ZX;o>>vNt^CDEPRa>=(eP$6`d;+B%aT!p8Qz;+_&02hrAQxFwN{ zO96YkjTU?k*48M{@G-V#E*U;RYjvl>@a<(bt(`nPGA3MX1X56R6rc^j%e)lT*{18^} za6dze$EX1mu_kyCv|nwOJotHPN~Pb&5Ye*dt5PZ6YdkmKs_jD6Q6--rIO8gg7e9M@L0* z0b|y?YZd!2#@dct$wcGCp8`>^yj<%vwUoxICg%f+A@+i(lez=`<4hrH+U`F;(Iq9F_fO$ygIfa^5WDYFotxX-&cn~>`ws!a zg6BB#u(RA~JuM2DYh6o0cSC{I`-40f&ZR*_ZI^h%h%U;9%X5F;4&-c$~ zzIw~9tMF^r1v}n{G$8F)F`nm`h_AEF?c zlcGoEVz~oyQL53v^&nt(Rr6dG+nZOa4>eOEQMOPG1Gz&Sh`bxywV&HT;z~i z&Y;5lMw;?;O-bdf@6}*mGEVJ1+v)5;*M}hCe@PT)9&Ns_+U8%@ln3`vkzOf1 zZCprKaFmhO8KR=6qNom3^-$REzZTCU?S{HKAf~Qxnuq=4xHY@^oSmE_Ry&vI#nWxA ze$fmG+myF_p1^US1Nz8o^XW#azNjn;h0M>j5A~5A3giT6{!BEl$K%cfH0!or#br>!jI`c&9=*v55WbxCNuzh1ySE&;K)I>iroX z{?2aY2B-O*P!fxN_J@#lU=tQInWta+C59q5kZ}mCHKUYPD(2ufCbnAiJWYY@Z3Pzv z{2ZE{4F)$5vu@) z&`8K6WeUf=`{LCzFEpPpVP-PAj;&Hy=cl|wro{O>Y86QOmFAmSyu3kXV&Kl8X|LRP=%6jA)?qY8ipV&DAzbe}_0RnPH6DkJA4?y$Wb>auEwYK>-%W*g}+izpV z4F3F}S!(r$OwEiI&dq5wI-iJJSusWs^L+09O9@Avx-o~t#&J(051+MWJv!v~RXl~; z8xJomFk2kC(&*G{f|HwfqhI5UddLCcJMt2Zw1f0reLx}9SRI!> z{>9IXs7%v`>(Sv??j%o>Cj!B2DU4Q2_FvB~@mP&I$Ec}^c9-&@1wO}eMFuRZ&v&;E z!V`P1E)J(hvK5-AVdy8^M=0%M+DVJn85Xu&aBJh4uixAC_9fTO6A8Kh+}X}l$QS?*M#NTDQGb*@gPoHY8eGPZkye*p23s3Os zC1?;5%@0fh28{Cc+dBRc9jnUQdS~^$zfw!jbkjM!jLAQo5*?TLBcJB?X_uTI*sOqM z!W9^;x>asMT|r;UEuC(WGP4`VVsAx#kSax>dEBs}1K;`?J2Y6Ms+}K6o{Ak)K`2wse|v zA6Umi9}CO_s6j8R4bDavNHTH04^jw-^@?X3 z?zPaTJR-molgE30)pItMvT?Xt6Y1AZ!SCF^G_NH#^RD*L*cWL0nolL=K=&kUdNv~n z$DGNgc2Mx%yc+BZCE6wh#{aUpjyfaH{_Z#R0&5wA1 z^SBGOt+3VHUqP4ShZqBiFkXHrC4Pvvmiw7}mnWaA>!M2LljkvA;9is1Ouh;|kezY^ zaSEwG=E!UIejkl~H}u_?&Y`C_4=6J%X5#19upiOXKKyPGqu*-Z=p3UjT&?t1y*9OO ztvTsEdaq_JBz51KhT`?;sO9x5G9hg=TYCI_Wl`eRd?fh6u~4{$U$vL+HL~dw@4cV1 zwtSqhFG`DtOSSpWy{$c~eB%Q6dQUgU_1Wd6R-X>$gI|wk@8QzaM@0+d+NU&-Y8vc9 zXL%bmp5-Gv9MAfehH0iqyK+2vZXLW>jKTs5r)Wdxg&K5}s!?jRtmcPCQ@N~PwU;dm zYt|hbceXF>sG1SWuFOK~pV#203VaibEDNT=RE0pufU}B`!{?zurAP-g&g!%FZ>vlK zTR#3~PDf>rNfEB(Pu}?)_a%G)IWGLvrTNRQjCYmVsPU%2G!v>Ud`^vw7(Z-RC+OBu zD+v176|I(41iy$hAFtyaEDydp+G|%;fr-}J11tTN7^xk}iofS3zso+MWUO>=>*DVT zISJg-kLG*Ck>40C2>C2|$24J1&OGXsaGZ^8L9Cv)*sHfmbByaQH|d^fdMvzUk~*~K z>o*WkLtYlEq5P??ysW=l{OqGSn-X+_=r?^NK_;A*SJUz8JU{pb?Fq#MjML@3Qqs)#x zd%nJ-K@QdKjVLk^7p&!sX47hHR3Lw1Rdxqgt-JJyGrr}UM!!%xkWTF-FJzCH-~i+yvUva8*9WG;rCoeUndsj4q@XhFGc zo@=R0_I{=h`EGa4Z#1h_CXUPk=U>{a z3$y-XIhn#MH7dPw6?9*5j!s?fw!fFf1=G;#`8$rjMMdPvQx1dGNG`@yLA1Duk6n@x z$$Z{Q{A~!7khj)@jxWi{ZT~enF;snXbtiBqHN``8BV?ONZR(YL&z)r|$MH#VLu9Nz zoj5K>4{rn4RWl)rW00I)J0P@z#lIi@IhIdFRn208%5$m7Fd!3>)=6BB&9%$!0T&XY zHQ4$@6oxlK<@@wTDwuZD;Ph01K_Qb)J(K#Qy|zkFEX1yiUH40?{UChCE6iDnxTy%i2R9M$>;-Qf=7kWxm1HX~L00ykESV%d zZwl?%@VlopP7`K0h+Z?^nvk?v>4Mbibh4ZjVi;tS!o%fn7$WbzA$H_fH;I55>E676k+}>S*)A#uiGmXbKPq%3%rSU23r)E(LBgSb=I0wO=49!K@MKcku0Xx`Jpz_z1_~ARNk>QJFNnBb_`Q}f z#Xg<8B28A2m-k{fM12yyt#>`3$9`G!Zrz@sV@&G51IT|fkaq-y7WyT_Ng{0ctEjP_0@SNuQ84V zLd(lBEoT|=L*k!CX>ASRBcd`_zIdi<7hw;XkYyuGzjTJq{d zEeqh>U1Q^Z52#(IY`=S^G(sw>XH2kq!t$*PnKj0EMo6X;5ak$co2QZmo9dLSVRTJi zq+(ZBhr@9nGadY|SL=i*<{Pb%VbT()&X>cOV*W%gO66kl7$3fZ{o_VHuiAm@M?J6< z$%7>ro#oo=OlNF@n8FC55nN~HuPnaT*J*IdFz5-bGQ2mjm~m=m%G81_r|m#-+_jp{&j;YGP=3RLr!o(&7uJkEUG{5)7wPJl$N)lm(dS z9bHqw26v+cdImiMPk^cWEm*^2kr2>qA*UGMrR zq=z5Y8H7j|Ugy2DAQe|Ls% z2^)ocIrIPf?(}pfy}yfNOIM;wa11&Ca65fbHnM-?S?a;;NDR8E4}FBY zYzD#3O)D1zh=_=}KA-TE+NGq*$;h#^e!c<-!I#t7jlEM|Y(oTBjstAXa;e#MvH)^71C z0zr0XlB8tEV1(0DbP1@T4*LQ#bm{qg;d`! z5GD{98!diMOP{mDHZ?VEz43Y(2Z@p@lJ&l6rr-^gJm++GP`LHVdzYZLRj%b83-3$U zV0#`$dxSEd00KTMvbOa!gWdV%1S(nb0I7nTXE<~ajF-$;TVKl&@i;m0?kTm;4j+P6 za(+JWMbnIf)w4@e*>!IdQ*zTWPmugWrpb}#l=WX6lgA3=8q2}O<6&B=>b`4WkAPaL zRg>#F#_STI+|T!+eW*VzUSgxaz(LApkh_}^G#`90LKjA zMo{6|cn!~FNYN=$2*=SblpDkm7ALTD{*9Tz_=?_k6AWXv$>4I-}tn?_Y-Y^7huK_>2*ZrT%x^Zp7wbesFa$tDve^2bmeXjW3rNAQb;BKk4zuJ${%ZCk$53I**^34=NM#%^@% zkw#l|Rvlv>h;9k=9iYrx-;EBi`T!1S%0jI>xnG8Wt061F`<>%<6G1E$^1X<#g+RHq zTDyx~TWy=SW6T zv3;_v_FQdp&4Pas{FytAkl*Od*Xgx*le&>(Tg*l`Z0#VO?UN$~J7?ANqx5;%R8EWp z*w*eiBIO7c*3XDvOUqO2{*tx&Adgf@lgs@{h#=!40pI0cFq7jutYCh80skt?CA8Xf z>{F>0t`HfteS&g69>ijaI#UmrA+(J>jG9s{WXpxSYCvaM9(#C{Ujkqt%U37^NLTq7 z@hIc+E^_l-9ardAB|=N&_=Z0UzL!|Qx+;_ z`!gm#lLEzG`t7-^5b+F=xR}vC{=ytU#gqA)sXQ_gW2k~B8&!v7qeS}&odA#+dHHld z@~LE+MDULInjHGw-_v_3J`*EMDm&h7V+sz4gJcrRKCiaEAZ*=!v{bH=YLgL% z=9U&d-zO6BrkRbEz!xbqL;Kqa=duL9L+g{@FZ?=a|Nixn-Q1WG0s{is*aDKi#l^JV z2;$F`8ek(ChkPu0!V;;rHyYy~Sj*SEN)5(WPi}}jHcPPUmgA*{p(S^8AS5VneF_)P z?=c&uYZZ1ZEJ1!Z4_(7rAfU2sJEzt5UHS+nFC_miIqlA=!8lJMdIef(`O0aNAbN#Z z>X!XWG4A!fy@CH?#Nh}8jA=sd4s|moG+_1u`R|rJFCfg!kzgmnWW^uPNQ|Ll&|!Ax zN0fk3>iVCqU@x$Mfp|MYB+G17e@W`v+SuwD4-lYF<#TGm^6e_!S!@TP7ClVAu(0ZH zRBsQn4TD|atmY~RtLJ4Uu3y&EkqFq;$RfKI^LV|Eko>npC03iXtr!)%0C?b-FV^Co z<~{w1>1fSRm%;OF^^&6)P6sh1ua{z+& ztmwN;{F0^uh5K@<>V=hN;3Yck*;=Ia;>KXr@K3hoTMGkyr-cth&8rDT9Bm?bIAdA? z;S+nM5egrYdee)5mjVu*QnFN3C-1|-r*vxkVmD5ED@807;w||~rEHxxpKqrd`j3?3 zAintA{<5yDtZY{OqrvYh>1wX;ed=%;U%a(t+s@S`I-!;+FyBh& zZ6=n^{(jOwwkL4r=noy?zM~IVVk|n#1$Hg~<5hCFG+%CvfQxr64-V_BRK-jv`S7hM z5Lm7oPi->+_a%mrS&JGiTKTHc>I1%?FLu&h<`{-wRVEu>$+ry@O-Cv6)7{)P5nh~3 zuTFeH^&e>#>q7B1Gb?1y!#An`O+##f&Uc`7ak?+$08qr0_YC&igjQ?x6q$D`NKlqy1DbYF#JcwWxEo;8cF*3Z1WU{MemiL)U{2O?~az*aK>;H z!;aDJ)2(<|j)Q|(tp;mKc)dWHy)#w>UtqXrt+fI*xS-OwnSd=8;5$Zx_h%QY^M2IMAlmAEpW%)5SVA1XS!!(lysjS4t*+RJE76(5jjT=! zy$x&2cdq7+#E^MoMc)8Qpy6Qvu z`UbMf#L)it$pCGXNhH^LLiAn%ll?vXqD=RB=I++RlhU{aox}poF5kYqmsUTHj z9vfM)JXzvePF%;az-e~V_Fm+{_j>H)Ct76AdlY%-S;JVSulyilBIfkz{0Q*PgB zc~7t6odFhHn|ME|7MHgH3p{i@M#*eNMb8f?{8;RigX%e9T$S!?G&YZT-_puChGu;f za$Jc7_!&hj8a9L89@Dul#vMgN1BD+s-n75d?4}IT5i3=zHv0nwPW8#s z$w}iGMBK_5(UPeIlAw(qyrRg|k-`J=2gq=5#>16S&fR z*GgfLaJ~B$^*IRr(O+?f`Wq2<0JP-QyCRE zbB}d)3hgIm+2kU^%0#sOLf{UWCzEviQ>Wo2Ajx| zj2*l>N^wanysMkQ^84GJ77`&ZL`++r!K(oe@eD47S5}9vG5-;VAmTWi9&Jmg(CH2R z3#eskS}iHv`aJ#}>00Y8=|p3W8AKTTjZExZZPMbu+69-vr+s-j;zgg0QuRER&60}_ zHtIK$cImqc=DHR}NB+#J9j1_f7y-sW^-gO+)gu)-%2YekzK; zxx0HP@SOEW3TtpZ5psvQoq7!UB`x)^{W#g31HY#d^K#RBIS#3$Emv%%?q3p~TV{Br zS$CTPaZ7|Eg;{$xs87=;%r|UE!4eqdjhx=e@t0>Wj$3!n*%N1l$09ZmM9D>ju(pNi z`EVaS0P)l>i{-BaaRoWk7XK1t8h07x`}gBEr<)((;b$aMw*y$ymaE6cQ2}xq8jMLk zQS6LN2JLrKmFf2$HUXC^A+T~k=zX=RmLv7LZ(tyV+;^!LoME~>wHKIqplm^)C`=3t zvGj1b8P`kC$f7yNB!g}OqDnM%p&+Ah?7M?zxzPG-W5c#EvrK}1{fV&hM1}7#J3*;n z8kCfGr{-syiLf(j%Eh{W9MdfuB(zP_gBiJBR$q>WtG&APo3E~*0QdhkVOH`I9^enj zW-`uXDcac9WsxzaZP2bxGLA3nDn#5C9Vr~XZ{NIW_eWYioj%ljz6+$yjcCgvhYJem zSJ6vxsif7%d#XrAKss|gS@Gug8Bh3Yx2RGZuq0mK$-g1ZRC~CEhlGx|mQzM<0LpLy z8}`_r-_x~qrGgU}X)mB`#rMy5a~FHn;}$jXg(nIhkra?6uJqZiovaAGLb~5m1zNaq z7@mGyd1bNpuMnKdtvNFi{jy{2`D0P9YzNF+T~|lGoMNtGPqCmBA+@a*kaiIBnJ!4e1?B^UJeUMLKJ2#5nn}h(Y6h$XW>a_G z7^Dv=v=PJ$XEMX8OPR+=+=R}&4AvY`-S5Pkl|O;nUj#6ERrQnCIyuU!ChGnC8Z-7>U}yGQ(owRhR!yMLJxnL58T))F9(I z**T4M2ky;7cd<}oX1dKUT$hWm=T<O7lhU0J*jkC zsm_g^5^0^hcy;h#oY^fs1y?x3MNTHFxpB`)IoTief(4u0gd+C`dXGRjcWN%MGRP*UlSc#FoE$fZzZshkCDDG~WmJ)Tx3oyQc?WZZ>8j({d}x z1XkmIsIiF5dX7;poSrdKEtuN)QKfr^_??4Jkr&^%XD|;aX1=yP@&8-?qfxnz{7LSO zk})d*9Kh=$Qn@TU?_Q_<0|ll`hYdPSyXtcVgCuH?#tJX)7`~93atp14Et)q0g+)tr z3j6rR2;R*prQ*!kj`~t|=B|z2%E8?3!8spiwS`6dS0)>+71$Y+N}OfhJo|ov}r)(hQoRdgL)5DS!}T{xZXssMn20w!;5PG zXwnRUBKISpzAxu1qI0*R-N3>& z05~){?R5iZejt{Odw9B+md|{ML&hWrUZG&*38n+B7i6NMUsZ~fLg-cLm0PrM2NS(X zr4R9Hi02I+uYX4W%Qdmx2l1QerQQ3gGPmEA)vu11$L1>IZVs!9Tr?H>2|*HX3Jk(C zSo3QgezL&GicD$0(+#WtDUfMgtUzg7a#QG`sbbLwkvGX19-WwVa}y#fhcf@VuVo|+ z^YTw(x2%!F4;ap!&I7HbM2bb<&u~@1Sd%94#G3r^xdQ=*QNs@~7~y7k#9U97cUG1? zsV!={`+5vxmfA=B-wR{zlPm060 zMTmjjx$}?9I%6|^i}&ssVSN0YqISSiGm2We$i+&vzDFw8g{9J3!43rmn3JvBY${c9@R7<9C0qE_NUK6_b?y?qF}AuoR~ol<<*kR<==a&MptlJB*y_LsggipB zYe`dv?&PX0M|_aoC(SqNTs!l-!>94}q1fN_>cJLdBmX9cygEt+Ex#AyUlgfjP-F?dFoWyL&^!N6SPl9iJJyW9nisdYRg!A8^#@G@ zMf8=tXMajGbh*WMl_6sm-9H*humq|Z2Z0d39+dl`ripSoL-SmxS8h68T=Tnh@jvo9 zEAb+gH>4RBImDFsFdKrHK_6$z9R@JJ1RfSriN+?fkD(&2-^ILEWAKOP!3L8&Ts&S zhfHYY=rZsoCs-Z34_aHp9|KAYo(XFOw-vu9Z!i$SE>OtYddkK;EqW^(zE_#kHR$B} z9B#N8o<`9n&?Qc{OcC8H^y05tNLG%2H1#J-Z`(MJG>5RqxPrfbQP@~T`Z=*o(sRwy zL%KEJO6y$cKJoiT9MrvYBPkP2?3mS-ixF#$XCjrYRBU_RlxC-YRV5ta@D__HyMK?l zbz3$S@%3M?tpS(Ct26gKdq?(4i%SoHIuC91&8%=xQr_+^7C^|o#>q@gCtiuTv4L%1 zV~(!CbpX;u2v{7|LieHMKB>KWQwSj1iZXSiKkw|8Xvngw3hd-~rF~vG+y7YDn4Tk! z9l$7&)NHMgv3_85sO^r1{9pKg4l+BJ{?RYl<-5PDLB&R>(s32)T{zMKg{9K*1b0*) zc1vfN{UF3yqVG>euJWVPawg;ii&iJMul{4ysmg}3B*1sEDYBpzWMG=zk_2{BKq(Gnrp` z7SP$6P{8V!oXiW}GdIP?54Z3%CuH?KGPIwzv9h%2!dARPzicDzu0ktUfV^rRWltyPG7AM>e#Ry?ixDegm%!wEe*dBRDJv6u;8$e6FF;^Q zH_bilAI(6+6>jG!*KkI?*s!QaAmZiKyju&&O;eiuQ&j(vYzqSc7uhbUEJq}Yap>o~ zL*``7&ZOt2{ISq~H0@&%F^{Wj`<0@Ht8;-*xhcY6~f{k(`(&jndx)Wae%Bv zIaFb=p|4_55iR`e5&fWrivBcc`0+o{FreT27#k23g&BRSwk2eN-DaiVRjg`xdVOtp zxo-@x>q(lTGwRVE)Ms0O%+}Y}SNJ^ALdz1x==k{fshe1dja_^^BKnfB{tlGqZym-0 zKAwAD6NjjLAPH$Eg^}hMkz}rpyV9V!B|*%}=H6RBT0N>*$RFH+!aP=l_~3z(CI7m0 zMtbSEhk5LR6Xl#e10j<7z=OJ+e&WLc*C}GhlM7ZMa`mhq**@jX2A8ngTlb@2EA5%D zYa*C7D0qKTO2(EC5~kPUu88Ehi5O2tEsMn>3(_-b+zXq*KzuPJ%GCm za$xt!Y)EX`G~JHcKU$$!V&b;i)}U-5l*Xb4EcBfG&>7z3^zHK&8A3d=q73F*gZCb0 z=lU+x3>_S>?Wk(ZzvuSGGxc{m!a~Vkmy5Gq25#n)@m|ADXIooAe8GOq^xq54RNMDe z2LKaiLZk*y5ldNF*|S8!kNRgu+-a<7;UAWuqu;;2U`rX6%>b(bYgT_57m6`c5lN!Z z?Sb;5Ck%fBw5nFgb|eZCqw_&b+G{(~JoWa}L^XAxGpmW6kPi`2^vQQZf~5amjQfBo zXgwAeEc!Trjd0(`*jz56h%&8G?#qxCu`-%3o#OU{3VUd1($`sI2N$#^EWD$`Cy_DH zW+Hh?;{}em`Qcv3!sLs-`dg@HYe~)-x4RqGKNqifGLWr17KZ}=9l0-^a`xB}dGRB& zBN(9nAd*AKg9(Annj9HE>)*Kpf|sd;xUovrhWf}czdP<=S`ijUqwhHzd@TFx0BVzm zie1mtIcIn~)O_904anIIw(j$5K)Tl$LE@VPs(NzVE&ma>JD{sx{xf z#}&m}x5Y+}kHplGiypX$~yqJFXk89$Q7uI~@Sy zePMU7%_K`(&D4qQzz1$u^G{7zX|e>uF9Dv<`o|SSf}_*NJr`qNYN?%N2_=!70SQz( zTWdR=z60^ldKJ*+`bT?HXSu_`b&+S?i*3Z{j`jk@_Z__gf*-h~gQ0^NZVaQXe-ER9 z=c%S^(CkWPUu28AovWkCcCv@ggEQO-4}HeoTLC^g&3kXl(7-$UElEUi$P{EY>lR_K>EK~?kaXOd@ z%oG&r{LWM1_?zqaiSS@IT5mo>*x=Uq?6nbkGgk#g&%Q<)O@gy;Fxv46A1}XXzuvD# z&Q}8o(vDp3y9TC!KOMUrIwi!8)}LaF<%TXQJ045#CRN)t$GyCZ-UDM*R5m@*!xr}s zVEz&a{*?pv%RKL=fwW+|=g7`pt^w>jO01%nr|n%imw+pKbSPowHf0KN5FXuk-htyMEjLbvw6EM zp#V%~WjNnY>?Q!hQW}u!!m)xO(e|kJ=P=el9oR2=e7!(wX@I3hMv^YlU?xV?$L#J_ zDB%K}vi6HQtHnsX4UWjsS0wnq>bT#FRz+}>Bv)!t#g5~btXcA2x;mKHEMmW=a-gZX z@cX>Q48>7*Yu&mzClid^X~8JDaeGhz#C)@f?>P8Aq$1ZCxG}lvzRETVRCj1=@}BSbl~$@AO~XsB-`rGhV&07kqRq)W-R@X_ow`3kW%BK2RjmlM6dIHO9T z!OKXZZXujC^y;~f?Vi1LM}l~ZR}R=nFCP-5P!!1|2ZplNkNE5&fS$l^ZB7p1aaptN z`|HI-XA1oaQ(DP17g(OZZ2^~9?Aj1g--ObpJMRCu0KIx3qEeWdR~k!uHX1euVn;pq zWYNkb>%XuvB(pv#gLNUnV%eXk_nn>g7QW5R9lE|0wPOUKxtFa%f4hCa@?Jd;=k&|V z+NgT}PiZSzR#%2>1BZ7PM4w!LA>z5_41^oJSHU`lkuM;I_v-G&-N}KKzS+OP0XMp} z*E%u%X5;zeEMB|*eJ6_AQKxF-_2jGuBfFunfXEcHB}$a+_Z4jk-nurHqqMfnkeK{2 zVpa6XMrlHDq2MtsN5&ujru2l3Yt+$u2(?+WWc;%USiOe~XY?aN{_zIVZCk;H!oVCU z-yDgd+NDNk0YiB7hENci7Y;5iCYQ0QhU3cMmXF`9(jrM=jl}Z674k z10UbqjN}7?(nNQbePb~PQ~)NCMSUy>{Bb;CYH4~#hkZ3M)HgN*Cj?kF0{rQ+30~WK z`UwT$*5$wYvFd*4HsEf-s<%hxD|~R_;o+C+?ZdX27VI8wLS8NF_X~n`&_)3O^%rJL z3tQ0ciJ+Qz;NJm_D(vcj$F=^#5pnbwrZvp`RVtbT@R%16y+X6-yZ;pnwO~AIq?^$h z?K}|6mr&5>M?yySwI{YIb9{#u?E>*V##&K*{Q5!JYUB@(4e~k1H6l^?D zAF}(kOw*K<|I|P^i`4xK379O^O6{C@Q())*L2s)fp3J3a`R)Hy3eXIx{V5P!e6M}w z47?9-D;!;cqmFT!L;#5#*onnn>~Na;>Zy?l20=3A39xrDOwJKs&mvXeZDMsacZWLa7RgYMhF^nU43 z%8$3$%u0i+3Xrj-0<~%yofbmrgtJ@TOGjIa+4u3%pB7f;I%?pP@4GOiBZ>epJFiUQcG(A2H|HN`)N^8Wu0fM#UZ~MO zakGfqBn21~|CWT1JT366S3J$V+brJ&2}T0YC;ELX{Rv{sOMfd7ru zu*abL?@22E__pt`Jmc$8Z}q}O7oR_ZGD$PbZaKE_M(Bqrb{SH>mh6HU*5M(fSvoz1HGe(MMPQFn zE%z9<#SiOnPc4MYo-AhBOgV=w!G37(hq4fU6f(lkd-4+?up14=X8WNG+I{a=Osu*l zV?tW^KN3Eo7M9YXK7#SYr;HK8!zPo3CBx>bkeQuA5IQF$`z5Ns3tD{ zmS%BdcifhiDKd#>#)gN>mrwam0$un8+)tevJg`L-uYtCx*{lVd4f59T+i02ixU~n0 zg{#w)(bs(8ARR3X&+*Fk5E_NIo`Tr&E8M$HznB*quO;-Oq~CB{{DGs~R!hH>7de%= z@?(Fg0JjdeW{iNOp!$_54$k!t607VVCLK(2Z@=qaQh!)p?>>?s+j$(u7H8Ml#%GpZ z0b6d7OtHY6Hub1W-i0-3-xr1n3l8v=-!uY&vh8rWi5!zm$iJmU5cmemXYdK^|5&j_-@*S346j?f$7W(pjMUD$@UX?(8^u;)|fgB6sz0 z4+97>~i0u*<~J zqpzo3T1iu{N^=YkQc*A*x@xr9`lTCCJjbqPGGiqO(KB)A&yf{0i|jRO%{YMy^wn1p zzo6Iez$R!!{$IAiV54|vPfyR`EOi1gl0r8Y^ut%P{ka#jk5OOR_dRah551xMDF~jf zZ}n2}3}!5QbcVW5dnVw}!&C3Mw=Z>N=V`?Tzq&+0z|fm`)1PUzN)S~frC@MW&aSk- z%;OYQlYrHWyeij0mSo~(b)PF^!MrAB7whgc(%CLPF(ML=F?^D&o+CU_Dv?dukFLP>?$!})t#a3~h zDXQMCZI7YWHwvs+&GviI^^u=visUJ7e0%$i)%Q0RS~?0Hq=#vA)egoLwF(a)S+y(-rNAN|P^_bS3-KOeAo27bjA7xJwmhR*W)>EdE*U z>|^9^39yjIMfJ5X=@&8S@c|e|i+^rTS0@@Ar!hOF=Ra+SXoN<;&B+;}cy+23pk|$# zv*WMGim#Zw`YCn z=^bhQto`3?FAqY=%SfhhvHkN&b&`7YM|;yixKm6H#S%4?nNn?}uYT zMu(Th`j&j6{r-=puYjtu`M$m&4bqL$f`oKPBhn!fN_Tg|1*BUV1Ox;`N~F8v(%sz+ z(j8LY@O%HC3uP@`3-9yH%$alc*?XVfjC;f~_0WtO%)l1Ai-pFci(&(a?;}f#@AG(g z9M3ZDzleZk7;Wz8_Cn_xv++rz!qdm4Lik2UZcA)NWi*fA17kck0u4IVU zYjC`D^44x&`55*m9$<%e&Xl_gfe|T22dv>SmJGaV@j@)jP-VtXn{zf;)t9a^5P!X9 zdC_<}6CpAN)+qniC?w;l4BO!HGCv>gNnj{l8=oGjmiWjwRBUK5t$bFcS5E~8sYS7) zks`skA2cq2r+eH}%IEU(*fdc;Iv3o9BUJDr8Y^@@KfLFkD%Q}LKynHE{w;6BINiGA zn>+O;n8AZ7;AY(wLJ`?kWyM?S-KF?ji3Y`}+dD!jU@3T}W7yEtlx~YPCHnprs}%+# zx0)`@u1X73S90jPw6@Wao8W02fW=2fzQz3Mx|tA3bCx|az3p>>MJ`FV9!c)PW+UI= znDVJ}qA^ya!;p$)8(ERs7?vJOnN*|+m($clSKAAMY-%c#an69?tB$7DHiiJILD}w+ z%=e|x(QVaSslLFz%TR9McDvR(EV8x&Yri&KClr?wXx-K16CLu zKYe0`I@&`Z#@puJAw6;=f<+p~sLJtrz!tt4|1D0%Na8{Azsd}3Ih?RSVy+#V#%9^@^#poBb_3#8yT|0l>;7aH=?RSR^AH6hm4DU4htMoxqBH%|*%tGu@cO zofgt4|8ph3+#X*%<;xqj+*YZ0Z$EI;0>fX}^nCscv(FAy7UY3@Zfg!V!3g)BQvomW zkdYWmu{Av{P1jd`&Wf_sV8B#tqwu2-b%QFxnLe}V$@}54qchIaOwnPZj5J*B?M&`* z|KM}N1YHn`VtJ%0&FAz|QqWsymSiL)m+b^L48~m~q$4KX{L7!7@YOse5!?IYZ{NP1 z6aO4g*@U&Fhq2%6mOp=7I~m76KhnTDy0lY`I{P!D$@{z`_o!s0YZ3bN*BGj$2FjFX zUWG#36%GT#f}0!Wglb!ivgFq@0&iigzX{ij(hV=sahBEe&{R4aRW@-YEWRlWu$8{!BD0x1sH?Libwlt4KM_{Tb0EZ!dA&K+U`+Hm zqxg|#eKI)4+vjddpw;e?LitxIyZBWLvB|P%8MVWTf8LANsu-uTvuuWU3zOJrK{J(q zwF-4^Bl+^A|1coB%+my7E2Bvixf^~g7fOe4A}B&=A>0wanfJe|$CoHP?6dZ4$TELl zB7mE$d{f8Z@?HqW)|&Ntk*-dRZvHDLhltIruImR(NBkUCsR;8iLL)j$jt@*~MX=q; zy+IBUWiO>!a;m_XvDf9+(G2dhx?nRVnv7dpTTdh>Cu`SX<=5_if15S@=)H#X@b-o{ za`)D-?U-j%u;Ao#G6?!KRLKI7R7nTzZ<^LSwe({zi0*kXOTzgNNxisIehvQ@ zJ+vq+BRcKYZtY>6_T0USrM?oKVOi!AHF%S7kmwA{DWQC&DjqMF5i4S)sR2Alhsm75 z&he;vg$H7XA$t^sNSGT^bI7-E6C4?-s;sKjQYci}T(tx7O--ZIh>T3%4&Zz%!sT!w z9Wt+>e|oG*+FdO8>d?NFopJ?=!6gpv83bv3BCoQle+B_b0vrTwsxxJrT>x21;rLrZ zn#!(F`gs{Mc7kEF@IBJX?NJS^w-=SyZmH{Wi5w%W1A6nCs>}XXP^le7429~|N7dPM zS^b=HAv3dXC?qsIYbBq$;$1n+iL9jozPDcUgc_9%l^v0&bH?a6u@F~o7D5Lq9zgQ;DVtHt;A5bCRv)G*do)I374qS+1=79P zeW30#oTmBo?7vV#DpAQ;qkCKlJy}x+(hE>dQwuGA2_Fo**)dC3W#sX)nvQ zw1Hsz)6HAHIZ6RFxK}?4g$Tm!&yL|B**WSgx97{Vcz{xd1}d|}H#&i#p&o<{g!!bu zt)sEUq%G`CJS8vP4QJx)V$i>{Lj9AH%veNoJPBfBdi@~o3n$ZBED%Vp_rj2-%Ad*? zFFRsPw=@56heNn-IrtiG;UQyh@CDOu&jjR2M8JoBQDLUoy#hN@-{8--jNPtbtie&K z5d!C`GfVZ)&yTMual^nDhOSzcb25E9XF^<3k`xkzXl^fm4TmPp^UH%J28(w1yY4CO z(Q1hp0<%wid;)V~Im+(=-F3mfs2tdrudWr(?lB1sHY(7l$|8C%oHJlP)Z)SWK{AFi zBBMpf4W_JO{>Wwi^h*C<%#t_d-$Q`FS36s!4-g6hmPa<^_dA$MXI9IS#b6B)9Avz! zvS!Meky{FRa8T>R2ipYn^lV3*1wk&Dil$?}cLs4nJb8G+nbdmMML}s*Rp)d;BADX9 zJLu}IeBoe~{@-h4|0{bLv0Rc*Qk4)uuNa*Kq0B6ALhGh$8DBz|LBa%ObquNP&Y9&) zrr|%1xF~;g>(W2Frb7;ItkSbJOswwOe1lS(aIZ>UbT?|K#3m+2`9gfG7t7%kQn+}! zon^S=lB7~MaK%s)H*W1|gL zFBEAi<#R9d`u*JXdUQMu#NJ;1@n`bYa&4jkguV>T78C6)YDJmtAgT3I`E$!EQlN`BizJEEpzJQfvMs`YBgnY%szhz-Ml$e`;KjVb))@E(k1W!Yy`{4Mkuk2a4-V zyu4N5nu#42_?_DdsVj;EF*sjynN!*OzjLfC0mcPdP8aL^;UKF(RD6@l?L~`^78?_T zlB0|mD{Wq^63;PW9o4@U^1dcEE-?TU*zJ=!mPL~cii}lT8SLCxM+D^Qj(;wCSsE2|o2T4h?`Tz< zy|;SWJ@_iN#TXFzA|+NAEd%gLFo&W}mX>s(Hym)NsHi9y7;Mw|G9;lS3cX906n4G_ zzF=6dmb+v^D$iL58^|k_&4u^%Pqj)bJYeyuX>=7E#sz^*Jo8tBY!}zACl8M*vihYAkgDO%laMNZ5E3yU4<;3>)m;cAbAT&1l?D-l z0G**)V9Fb5mC09K-J9GyezO0lyr z+g)rUpDQD4qn8Vuh&-Fjqp&FN;1j&uwaWv6rya)Oj!P#`jGh@Y#gBVts6oh>fQHdd zyhxRfEr!A#+%HICK@4Lf_-Ty=X>1azfIvqi>jK(n_(b5VxFbPr5^l`$r5glyh|E;Cpy_wXXZ(#>U2!V5Rn^ipBP(-t?Ok zXa55(5&9a0hGn&VCSOpg0@b5j2jkOX2k`n)WM2vcaU*VVnWc>GTW$Dzb%ZG3o~01 z%#6HG1z*vgXv8!Qh|6o!>C(wQo#2g$7ungH)UVzk|0Urtmfh^>SD_M+^3zU+=cvPl z=-bf;rxk5w_@G zJc8cBiE3JsLR!bi19)Ahiz%K4h|bK;8XTk~>@411IA*Zsr~e-RU*bMe_LNzc%bUlvVKSs4peoQjh^4Pje*kz@5#lw6P4M1?B2d*5$Vs1B}g zTR_QEqdGSBIno5wa#3?35E9WZVu`(F)zw-nYisb3-%44M$;Da@rN8$Qo@M%Orpw5F zK!O05D#u|4e6%kOHuU1uI6QW`(T9umiD!Z`E{RFY!pp&z|I2CMISx|jX_D!a<+a)S zF4Yrd&`^%wgH#f*ra{VOIy4@St6V{yZPvH4W$A3TiAKXhg&s{Ee{yXh>+PG3{>{;m zK%#kh=yL?bNAdcfN892c!QtVdz0*}-LkRtkG@aG`eI!Xr-+}@r1b8Htp`o6^gm>vl z-D&SrUP)NWz9?7Dib*C6*!U(dE~MBQK;PRF*GHAqAN%ba0(dS74n>Ss^dAsPK0Xra zSd_!VdKVqTGUA5juE}JXDQrJ+)`^pQBlaR zU%#kgKOP&~SkCyGz!LH`;sH)BrNjVzk>D?-)C(m}j*z;E=B(HVYMus_s?Smdo zU&UCGXsD=A-)M4is`rDDWlvZG!=p^BW%U2T(6`{~`Sd0ozg?!>b5B7yQ_S=U4BThW zo`+% z!hNG_MlTRJg()g+kL@2|m1$~EY>6~2DJ{(gbWnX&>~Q@YJ?~H)RjDBA*GO!~=ctmF zmZW0ut=fBgoym^+)$CTfL|%N5vra2s;j%+2(jmA%OP82WddF4JZ2^HZh%L$EHl zG4a2*gplOUIKt)+C)>1y%664Pj}up!OfTcDWoD>@^E`EZNMJr4do)TPAA&=~;JW&*^|1PfQI>#Nu zf@K5@XWwFDlZc7&TjBL-RjbvgoPDZ@2wCru`g!icO~@X&=iR-U(y$5F{Ep|yQP59B z4>TWsle`Efh2fOCVEXyHgz#9Y5Fj92uaDnU6bU^S`}5LfHvLUP{8RP?mn>hAyF>|Y zcLI9o*U-=&Ifbx(_!TjbPma7@Ak>);SvkKk>m)ro_}g>fwsG(mB0@ob?JkgM`jg2L zp_ck}D>o^k4p8EtA`KIrDXb4IXlL z{|pxa-mkwu2^Cxe0NvPXMqq&RgrUEf6GpN4%aLueajIK^gTA_>|4fZYYi9QA%8vfs zR-g&V>lIACJ!HPU0In%AOM=B7Y%%8l+vt)kHN$u<2BcZ0OhYO3kkYa$ne)?A3`Kc) zF)=Y}c=)?PFH~iD0P`5F85~(+xv6>brEnGhe=Y#zu+t;sYgK^%Mc|92mC|z5^sfAGGA= z7Jf`Ih7O__N9w)&V!icZu-bPp@TZ3;tll5~m6)`Igo!7>Mr394RmH#;GvRyMHCC#= z!B1+XD`6(e@U@YS`8svno8{awMQ8zWE`exKsvc4(`Og2P^D@bngm9vSgoKG2iB4Kz zy>k(^l6FTW>!uRgk+eL~K!rx_bgXlgC0UCErAl#X7i0q zE}0%wJ~??>XW}n~-+)YrT1cpUZk#d@yMk?!*&k6WmuJ)Wl|MZjgP)%t1cGYvzlz0A zESW+ujJZra2_kA;h>+IM__g|gAIR>Jr_wP23X@!{Ar2c*nZ1Ol_>;0NH1ZY)(&KAIH@zkddk4$tKW2aZwr0j2RfKSoG_B9;qG#Jqj1Lk2hp! zfetR1yrlWv)$_m@j{c!31jVQicL0P!Bw#(u{v56hp`@hrS&XM0T1Wy9tE^zosYuO^ zsF=v%y+FKF?@Qrxm%p&hX7@k@J)uSdq|R$YSkk7qmzebAuR%dRe*WWhHMI_IMF#K- zqF(GA?f<{`m_5L{j*A*35kZ^tsmAuD^;~6CLof91TBdIJU5iGi-?NaDbBoH}GPB_a z;5}?8-~0iEN_#6`bT-|$$k!@ev(h{h64P15l(+KqvKSc7uH12z3LL|Cmx`Dk-kzdM zMw5pP3#X|ZPE!b&;$Nv3eO?b~x{ZudVN4)qcVyQ6JB24g@m5uLoF-6}V{WAvh~usr z(fm0|+{;y8ipz@X`=X2fx9g%g6gTO)DhaoSQ%w@Au!u*96tl8`_LLW-fmer1y!C9l;~w)!+> zLK2r;pHNhS^f9<6nTCQ@3CFAlhZXz=RFdT`A##X{@N^QixUlhYJWyct_A(IGVSpO$ zk3!BOt(y4a<-oz+O?cz_!~|CW`@cyVWec8%+arJ2_x2E<_Q0@l%B23f?eg++HpdD2 zTA!9eC;y1M$os&HW*f84K#GZF$ z=VqTqp__&jYuA1K%ef_5^qH)YmzNie8XSO8NMZUJ5NA1E-}hvEWaOS?SpHIhXe1fE zF~y#fo4cB!lIO7A^+sGIvMc<%dPkRR?G%)!9rL<}0L+JIZ(Qkubo>ZTsyZoyIRWxS~dK+F!vIBFKGno6C*4 zl@K4_Zv~G-s!8_YLoja+A{iF~5|Vv1CkF@c3{>6N+=PSd@9&Rf-7>xPS*1?utOq7q zKp7I@dN4N~D7h0hI&PgCY z-*>x$u98HZPRk#r@9tx^Tk_HdAf>rqw!-NDya4Jn>SO~@0*gRIzcgyVKcQKZ5!62M z+Uz!QR-fIDmex6hA@WGP78ZXOjDih5g29xB(5*uE(C~5RiHq~|*26`Ck>3W-?z}e? zznu2c+Ad5MOh=^af%tN|S+GzBI_cUvI&cs_I5=z+G(8Q#&j}qF`8bh}7kpgG7C4Ri zKJA!oqEI7iF~av^h!Eg{T|y-OPZOLcw4ixX|-$ZQ8knq z?(XhJa$T6R;A~vtzklx$U>QD=0cSAk1>aZDfN5`UZ(1mp>-&)E?r1-PIM1w-*?)TUJ3S%OgCJ^8#LYDp>omXwcnAb@^7j1mfY`7V00)rc_9d_Dvtc6$1kA^> zUalsIB;|oXoDasr+@kjPUu122lio+v*r{Z7J+JGAgL{~%b3*@IqKidVMhu38Tp!&b zvZz;7RJ31M5$W66=@phtFW4?MMwVsBZzSOC-u}%CI6gfG&S;!p1=YZy!Dj997gAAo zy-YsNuC86*81UE}JEZ9P$>CNW?nACUF8CuTc##xRKQ}REY!B<%M+b>fEi5eb9n2+_ zXm@7!j;|gZM82HoRqH*n`((m=MynrdZuvzZO66-mCtKqrW6L4`;yWR=0|yjRCFF!8-Rd z!lPOpEpNzlrkB8rYj@Vm!+Y}n#5ZgF&)`8Dz@~`s?fu!X1;&f>=H6BrtG$}}aO>}2 z5Bflx%qW0c3{HTHk%oqbI#@nJ7Hz||MbfUAJu)$JO=lKcrg zvDNQ3)jAIYnd5tF$K9!bv6&fZMp>K^Fk$jHcm>k8w@EJoFOZXo`Fln*IFgD0a3 zoH(}2zo5PFREv?>)Cgt9_|rQnF@9=vtdoo+ZR_vv-r*?d@bFwg9 zGFfe7wZBkD@OXDd)U17n2zGd;>L2@^;}W`Im$eO%>*Fk?Mi&!ZUES}3?t-Sn=|hM= z=c|1}XnbC9yOW2BkK?d||6A|NNzN#{fa_t~PuP2hf9D#4o|iAQs;%4aZuIc~Riz7D zQT)5`L0)ws&3xBRcx`ahEY{7cU5PK3RQ&papWBFog9DnA#chd@e6Y~j)co1d5En3P zl#8e7b7+$K0W;OW%Bml|deR?FyIKu+@kGpgm#%8b$bkGTe>&zl@001z8h}Miwz3X# z1-KeHpKk8ttE+}jdxx$Ydo1h;Ngf7etT|N+SbMMYHsESN~{IwMMJ3gL~j=J+F?)8of87 zv#!^|JCV|GukK2*aBwczop-R8&Y1fRJNvlRTXbtI%H`>vI_+8S!~=WBs*YNg1Ars> zLY*g8gPYBE!W@X-F9f{dMed!k-3}K5q-n*Y4@>kf_y1}${AT|LGTYxcs?7iu_X}p2 zsLgd``&^C;adquOYaGV=i4^m9Tk5}j7koQos&zjoC~@WGKRnb~jI0Ii9KnUfGUHyy z!#Y4{3&_h0f!z-6xr{hDIJ^_T_dqg=i&w!WA?bYSwmShc7Vt* zopWIhkUau(lgXdAD`T(F-TmSdTUscpZEuihq`nv*r-)^?X7_SJtzaG(9?!LS>{j6E zA;g!Xw+lv~DP=a4&dFc1LA$7%g7_>JxH#(feM_d}rPRHgWDHQQWKCk;M*N@&An;}D z1;cZ}*;zhqi)G+`Z!lk-wqSL2B+^k(a@hsuK^+f^_Y>s4N$C(l@=mqj&R+BU8fD{ROs(d_#8mpu05o;>G^z?k-xgyy-D| z2tXeh&`i&SCAk>_nzsV3qYRyrA(i_yqxQb-0u7^OxSCQ?O*e_ znKSRr!CV#l-2VDnPJbiWKQ&KctQE-0RFQzR^hnX!p#imusm#;*sTJ$43-LOv(IdSI z?<@lsqagIB7W$_O)8~Z`9zpMpX9_h`0HMOM8^jb2k7n_vf%xcXTSbKf$peFdfwq^d}K7Hb{eXZeFW~ z@SroCIBQ#8egaYPVs~gZzu*oB&A9whO)#rBV-i~A3iWw<)jP_hVla=*@AgO3_ z8U_Xu@F;KoMS`?hTG-}T{8lizyHhTy?ubF(qe;d2oKsxlukDM+n{A9M=;*KE)y++d zbFVpwT!G4Vlw^0BP*%S;x82l)`Ax=@OjDc?D=RCP#aPdVy4>|icLsFt>%xL|nd#tH z>Z?qSEfBI+OhoEk4BW`#-$fF^WJYtb2xLWACup_vx!j9@ATebQ3$u) zz7IJo|AzRAmUitvv)y55MK~}d3c+`S*#U5k zUX5_a<9$yr+rixK+#<8u{jMPC!~vk{buIDUt?)Zjkx!(qe~q*A8#j;tidYn#@=x`+yh(_1D zBiZ>r=O|P0Y1E|m&TN(9qPFOGjOQu*sV~JB?je^47*i&_#`V@Qsi|b%*9H{R z8cMXdtEtZmR^xphxAyw&JPfSwC-9mstROKzex-hY2g`vfIcwXx)nw23|IrXUkl)UXN$v1`1Hiqtf z=XdjujEo$0K(xDr45mc068RXME+|rGJ>eH_cT>LJUE4p2TH!>a)fAFe2{6{=P5PKO zN3*&cOM3hJ(E)|to9c*7fiYpNk6^JrKPE=M(sprd;~G$7j%Al3Oc>GyM-kru>7V(; zZ>r|yst~KLRgkwQ6eN-&yiC@pcR3sS@Ik#+TCJGZpiNzOyWJla7ZTC{6Z}OTSz=+i zP>XYUe=P(i>9`N0Bfx`7$q_aVj8UI2d4lM*RF)st^y7#27cOgjR{K9%HJGl}%L87+ z|E`V#SkeU6vJA3*s{T0!L!_+dA6^nQ0v2fZPF)po@H>FAwY9f@%=%N-*6078azN@hyVqY~y#!JKIf^^zU50L5ki@EdSw9 z-<0z;DkyQ4W_2~d$n`ULIF)yDprW^u7VLsqWA z`EMY5mXtv|Zz>#QzQ!x0%t-RxYy4koC19q}Uus|hLUDY4?3QCGsjNi8B<-8W6{W=f35ty4iwj^rv|ZckaIt&wTdjsg?XyhZkoi_`gjG6o;;m`x zDW~Fpz#vthV6q|*__}d|q0OTQ3B@3EiulC3#bcRkT3j932@;R-JBUrsWJ*QbN?yHH z&R4Cqe>crtTpA|?@^2=!5+^V=lbdT!9TxWsz48ywBqZzYuk_Oj&cRe(?x$03u-u$c zXA~AqC2Fcl&~0UkPIJN&=CeN)v<+ydwW1VTneR;b&w@KgMA z3#}q0HnFjVdZL7}-$1-Na~JP&A%pW9EwNv=HgOdd@vuEaPDLBd8V+Kot0k|cITkfF zwf*~5fq1J^BrNX`&mTYH{J~kU?>=hbCBD5n=<15J8m-taXpGR3;W6h;D-ncE*eeCR6Da;r5`v2q6#`QZi` z=0XfsaIcY&)bmXjk=e3=xxfTZ!?|Y4@XBm%-GYY7xX>OB&#tbRF6uZqu6etI()LC& z_1yQ`bpOtE{&Z*$Ct?R^A}T~dL&MzM=1a>SG9;yN=yX$$RENg-(a)ep5c2))Dqhy6 z)$~O@XK)|_8A2%#Wq_&C_f91J-z+-2WWg+n{+DD8hmm`{b={yTBY6eYEHmV;sYZvG z4yFYEq->W@{R}$_$)DQnj!xTnNmL`$tXb3rVyQc703iL_@2o^O=30=GAI_9{aV90m z$;oxQEgvvUaZ8V8&!)6aj=sBUkXI+EKgg$&HfwF87dgv*M14lpQ9m}$S?YO(wKH9! z7`y20y1x)KEHb_D7J#WgU5hkPO7McKZ8Wotx-WC)Dq~{Sey#L=;deU>1xXUsXKL7; zdxd<|-b|U$(=81yTrpZ)!@(4SAX99}%H=`Bf`WC8tG*-;ybQrkn2=pt00g%&6H(DM2Te8*aD?d&^xHliYL6;;_XAH{v%s=ip#_ z9zAc{8cgx3dib~ZmhQt{hyDu&zWi8Q&%#n%1Vy&j^I3pHN6-n9fzmIXmcY>x{r2ie zGL1htW5@FEBOJI8VBp{EK@fkzf6fH?39N>R*?v+yTzwV+wC5E5=TterY+U4T1rySW zirxVGo=+QZgAGbe&XB%bOv+YTPr~ce6DNifWcOj|gGOPg<)(7{`gy^}f9LL5BaQ!Ty%32ps8+Vzae zw`B`s z6g^V!e#Y~JH*NN-tuDfzot$*j^r_B?g(d?1t7cK~$JfkPmlKm|0RcjGP7}YJ|1RJF zBu5M==h18!PrAs2P7bQmO3QGJPP0#f(&G(?trt(9BQ@11-n%WE=uTmJ!O@sw4 zl_q@-K)L{N(Mp>$qCcr*ZE||4BgPH+m$$f3ZGEjMT@uZf1T#qJBJt=SSNldC9i5;s zmB1wq&q<8SP3}SEdg6WLb~pjkA2^r?{89keJ>D)uvbN#5-W<_?ND2P&VsS|ouPd7S zdgY*R5*`*GTO8QMF9x3yVPb5IKkZOT2{cFs6wf>FZYm<1z3-r~xTZBk#g@B&0&C}& z4ZF)NSaa3f82>8MMST2hmUmM=;u9Lj#<3^5$MrM4J4Of{gK!fE`_(>12WJ+`e(`kP#u7%2QP8*hzZlwp6ANzNo^e4jw={@l8b9zp_OY{15 zOuyy+{Ruq=*(DrcV<;;tmpRX(?JxWIl9lwLykVP*Jl?N+genMCz8R#KCk_WBO1f>A z>!f8UET*D@6SOEy9q;nT>&t6Nx&1MC@`3cGQNPgVQP|#|jl6>~LH5ab7yTUa(`J6^ z`r4@7E2>y~)P)Z;T{&Kt#P=FQPd8BA1fjorbr#xX9+S#5|C}8?J?% zv$#+x2#7HHkIjq3e2#_hkZb(`?U&u~Is~ACjqm6p42UC0gmBM9bReR5flUG%@1L|I z%RZ0m2?;<-@Kku$C>T3LRK?jX)W*I`J@LmR->@44ljmO7HZ+jDEKtseT77-e{ISt7 z?lRadrSVtudK90ZV?3?Lw8zr;_%p!N;<&b_<>ZX7IZ{a)dih+lo}QN0v4x^?8bmSn z6ds!aGWrDBOy&HqI?Cz5A|4${4}{h-;YOJcAGWF@k-3&zfRX0vYP*y~v(L^5l|(Tf zO=sR>_kcvr6f^4GaAbdnp$qoIgTvpRjNfkFjO8o3aDl44fI%3VAZ>pxk26f-2Vd>;L-A3S#{#bu=$y5m1e z!|+B+D=L_#TVTB6joDQp3(j^Gmlc zCu=4z1YG@zd;x9GXuYe7m~V|H{w!?5su9k-nH41B%+7D7z{E#);PifTL+BB?H*II{ zi38XA^PL?TNtV=70Qvvt0`yZ`T(Wa8s|YxpQh+&x)0FmeSL-ZU%l!pvC1>SEIt{Ko z#44r9(y)l{iSh9&VN+`l_g4(w;irbKvkeYsJa$7_lFz%PD4t6|q2GJ2W@cu7N?oay z`YhWr-#Ef0(4{JQ)NgH14Ze8{fa7$Xd&aC;J^cw)-1M2f=j(+%&WTG}9vA`490j0!BhcTwzMN0fW)K4{ zku9Hk2&{oGSLZkf|C1N2DgkR~B>zn-uGjlUPT@N%nbxWvm zQOj)RB?rE<6ZzcT5FJS_0x8wAe^>3GW3#%h0{tWg%57*Q1u*_HC~rug%8+_odpVpg z)HLE^==126;<*4$PS$3?Ka$da7kiExg#awMyC1dy$wauCKQaW|kTVsY$R#c{!uO^) zAZqk7-Zb^zd8n-xL`{td0x{|W3Yc(ke0{kfAINWbP4n|Df}-iNzcSS# z?aWpXeNGPXrl*G-zy9^S?6akx5Icg$CI-lAz6+SqJ#}fpxgoeZ+PlOBb5jI3I62Gi z3RoF@sXHZY`eY<%u~D$e2`#z4zs3afSwVvyQ%PyG)_sqVm<TA~L>v-)!bJ;$ zf84Edu$#|K7$scqGTuFK+643E_X^EHbviPliSnGgY3S?sXmI7LG6n(OY<#?F8cDb; zfnb>hMCJXhj5ti0O6*Unzh6MvRO#ls78>lIvj`P$(U5eSC52xWsnEY@dGUbiwDl!8 zAjJ9N;`Z_$!;Y18;0Iq7J}2EI4x(Znn+7dJd7)v3eJ|Mg!xfalrHe#E4*l53;grHkbv&0FO|~lW)B}YSG$p*>vQy zTYhcy%2U(szJvl$GEpGvWscl))i#lUGakPV+N1V2ecTf$Xj~~5^s){w%lJ)|MRQV(5I)I`Eb$4*XKbvlGAM1U~WQ2yWr-SzrIQV zw6W9^a~RQ?dI#)6H`jiln`;o}EHBQXgg;0aY8d;EPUeoK&?_eZVFzJDhZvJkz@uGj z|2SS5E-EfwTufY?Kfq?*@(E-r>?L;oTmP*2kAxN^Oevix>EC1trvDI)Fkip1q&lq3 zkEa}rGn~IXs@;ByG6(ZDLE+(Yz4Rac5FDiB#krc%1QOHZhJC%SF`4W$32H9Z(`*U-`6|=PEU>uUgQL!D7s?)36(MNJ+T%#Y(T)Uk^!f9|l>b!O^l6~u>ylCEV5GLNmYfl%b9_?)u0#ZN2j$^Dr$0hCpHT_`e zz;q$KHyobhPi^;y`FHXe>>;;gMvm55!QTbkkoaBMmOk81k}sB8&&nEaEPv5!aD6si zyvW9X8GyC)zC^bk4GmzJ5oElippyuJ45VHmK9vj2UQ41-C^6XJF-b`w--%HVMWCTz z+TPR4g@Q(Lu0mR1Z#?=kTMB;0|_`;Z}A3KlM}oo>i#d-t)h{=_zrk3VH?yvsW#$8$T;QY&kn{cl}%F;p1| zE)Q-=Km^s^xO?A@b`&QqOGhKrGM=7VTpwieDFJ9A;#;=D{PP%J0U){IYQHmI#Vq#w z_fUS9Hg?Mmwo0q%+>Y(IUgK-WUdR2}ilmy=Mc@rsW_W|!c=364(YI1Pu~SX2sI5yu z%e_bsPQkb0y1(QJW}dk`kc`hU{VIrf1wBdXKOPdWJDJP)Giez?CK9AppX+jcY=;6s z0?;LL7%tMTLIR{Am5qh>@2xV8x-oY^H(;*DPHX>AIEO%wG87%O0H|mletvM*YiI72NHYUZ1eP2)OP5!c#4wH?_yP?;TE!R}AGg5Kc?FuRB=Twe=)DXK z3r@osEv>!rk58j9UiE!9HZ@&aq@p;P%e36w+%%Xw*Eqg7TeW#@-q+}!VRV&Ff&S77 zq>qgv&TlV|=8Y=5)N`f~?Lg-YdP<8MNy@#EK3{D^Ka|m8etJj7W8Jm#?&wJl0m0U6 zI97}Y%unSw zKE8R?mQ>=$2G=*tkGuWKP19XnNK9(XoecrVhSP@>_TX7`*IL2Ow3)AzTyC~o8|3xW zC|bAul$e~qxGr<`u1@m}$6h^EziGO6e_}185U>BO{V`jvV#c!s zS(9VZ{&Mvu521y{1vcv$WQlY+&?VeKron)xkCjGALl3v}#t5SC=8?`~mkT-AZ5XPEa7NzHnZ!a^@#V>`3XH`CKI`-G?7Y`KoB56+RN~ z$R8k-3^DGEw#V5S?zmy%C|Insnkh{guobdV<72$gs9&nFpXlfo`AMY?gVOg7@m**Rq?^~MN-Dd@60Vp^?cPepl?DGT7GIX4vSE%MM+RoRol!5Dt38e zAR~KT-`p5>oii-#Nj(aho(lq&!Pyq;%B4S?Z*P2;QLAq=l2M*wY6tqM>%o#0n)TwZt^! zEQVYD%veksC3Q@h@|%!sGNPuW+$wVAh=iO4!yEj$+>d=MOn!lEXe0ysLO%{{W~WNu z%*HL<-oCFk?3P1Kd_li`Cg?%kUi;94fdGhH#QWr|7th6*G4-a7xHSIeJX%`53PoMt#9eH@N4Tpp)p8x)~7*)J9_u#M?Lnv-I+{L_=kdQze*7*E+i3MtP z5#930bgj+M>2pWp-22+k)x@$0V_j5cDuN`9Ra8yQY&+vD1HC!w>(@26=!ZZ3zGhnye?|412VuNN z4Xy{aydhf?DvB1W~3n|p7To4*4|H%IL~@YgsjwR4&DuYvf+lt18X~V+RK)!p%ekJ!Q%e(6ny_@;v)R>y_ zclu1*V6o#JtZdXq)qwunU@-wGJmc6*2f0}$B#tLYnohRn4=aS0d7so!@F#A@`)`z0_Z{~!4(FP=X5Q=EUzaC4C~nhwmzso;UQS|m1|_z$lTI$D?c}NGt$eoLIa1w8?^p7nQpxgzP_&O zz^`O?6x$MeNh*}53gH_clbv_(Ep%%hbgF9|I)g#w7ckrERiHO;duUIxY9VqjiCLRc zv)Z#=u3a|aEA28rVh=Q#t$1_TH$TJ$NwzEnNgKOEe0FsvNQNUssg}Ati9-(`o%^`b za(FuW;ZEXvG|HeMGo;!i@^L(EY0@AkyE*|DHc`vIdigJFyPT=1c$x#HX;Olmxc{f^ z{G6Pe#r-O68txws?pC9B_m5YRm3BsVEG03r>Q09W3r@?@+49naaZ{VG1`KbmKwWBv z8^ZV8Dps{Sl`U%idVb0;Tlr6Av*tx=PU*}GGv#^>1Ft8ir_c5ZOKayHttola7w>VR zdpoIf2M$heySSWAI@8jST2eVLvd|V6=isR|4BXI!=Ldc)LyVSN9-sgOld?O`snzjk z)3(~IoyVXrSR>VIf6AhLn@sd_A)ij&yavYSo1!8GBI3#70ntbe7YV-~2hw8;Gzl`xnYBZ(+YY?b1O<9YIOPn(_<4Zb& z_5K_DP6^n?ZX7MoMLLNI4cf8Xr^_oxym!XqYOUc!TxbIccr2%Nte7`*cJ=BD_Tv`L z+^H)y%); zIOnjjUo&z-6RU1k2mSlRCswp#WX?-w^z+25ZiQe7_7 z?l1C<8Wx_CD~C5$14&-8LNL~>@jfO{M(d}7g`B6CusDlDAPJNP?4QMIn?3cXKW_p; ztV1gKT$v4~*G>O2r@6G4*lt=8Zmzndx?f%zj`-;i< zR)o*+Z%${a*KG+#Lk3_RamoQvSjxAHEz(ElzJY-aa9OObNAj6)1eT6Jh(vHlq&;p( z0WkMs5T05H8C=E!FJBeZ*rlpc8=T)J=N?ZBsBtw%Nr~+$*Tm1{$OuYG+6P_%(oy|RhQxev7p#xJNua}6`_XquGKqVOey^zc z!h{3VremYaRdbj7(`^zS*Ac9y$3-jA<*f6!tzKP5aPplTU8Ia#EywG(Q^T`EtBu#z z*TLvF#FodMb!lA1Pl;e)rS-++^w~1o5)!iyaJ2hH;uSg8ypu~|^39`tQ;$^n}@;ZA2u3>+IjKmJhNUT&hBHMG5u zEo*jAnuFT11VGPeO*cX7!StOS;{X&qLUqjiN)BmEiU@Rgc0ihMgv}T zEFaH_eq)4XF=+HWvx_^-zWzz-7k6-}Qpuk~M`o*~H|n0V&tLB$;+Fbz#emXxpTGN zPg?oT&l!5F4)R#AM)Exx=X!ZHZ{AI7e6=}|0=Fn?jx@xbPRZ!>?9BNrT&ZrG@~Yfw z*%KZWzh{D)lF{ji5R_%%)trRrCADt$IS^g6plt zb(6hSsL^SuR1ROt)N8Zj3*fzVMS9s2*w~c2UynXHU(Vi4)Fw1u_H>}j%E-)G9NTwo zF0XgtXd%WGrZDZ>S5#I~(U%%4jX9Pvb~`PN%>zGSBRbM)Y<<=X}(3R%1B~2itfyn938{8_kJ+s=DaBepN1_a&u@! zVpe<10E=DFeAZp-gsa3(m3@6^MZ7BNbpInP>|Bu3@p$EP)8(GmA0|3d&hbQ-iZ93S zft^H1i8*93FpSu{DEfNsOBrp+U$|2HU_tN#-0)(QDQ(~}`sc0aVOP$ETQ@R>>G$oI zX-k{JBAg&Bc<28`jn86~PcZCrk0oJn4} zwww~|>+jzjWYb(da`VJajvSB0lujP-;JZV_q>O+Zr_P#h<+nZt_m|dT19!m}eE~TQK=;{=n%HvPSPKJET?r-YdbY+ohbpYG4Yaol+luqru55F}F7&|eGuD;!l^Jh!!0;L?KSvP3jfMMZauCR1x(MJj*Sj5G2nRbd7 zz)>X0$jrQ%AD2EIlPEpCCV5)0w3)oW=RRtE%1w3~Qfap^tV|Fk_WUsqsSB0S81Ru1 zx4Ap4wO(>DI@?l%0Ok%c6EhRL#gRFH5WmZYC~0z(8BTb=fFm7#O88^~9Zm6-eL$K3 z@HNM2%|sAMT?3bmd$|+dpFL}cn*$NP$ocpHrYcK1G}|=tgW1- zRtO6OWhTWOf;GSNpGr(jRE?2EXn>(T+jDqODnQ_ofJUfrZ)PO z$^*&Pe>Q$xJy3vt&ad2gZ?BIeF8we>+5WT9A#-z_O`7!JCIE;u9BYmJ{gK7$Q@B18 zOARmTklW8Oo>BjB0<;f`vt&eL3)X;TFNUSOzjW!4ZO6Jdtf;O`i032$0ThD ztfpLIQd0fOcL{L%NRVsZLI#Y|JYKnL%6~feF-`hffKVeWjzhZQO9^ z!s!tHLfgeWdF>&&qL@RXXvL!IWMC@S_G1f!A|kdTxGWFtTgge>vD|q*ZYRE=O24%6 zGu3!MO}OeX@_fD0D=18YHIOLhRxTT+ewdpeJ$v6iUfzZ8pgp?4$NdQV96X@inFBZ^ zlJ{2Y_yW+l-!ZY0c1B4w{M!Lx2Z`gD1edqYV+CpO(sOI^9Mau&`EpXa1HaaN_-T6s zNp4W%H9S#4X)WU2ReYKGjnRVrnFa30WhQhI%}$hFZbX}b=n5X7z`uDcW74B*jrHgt98m6^S%L z{2nay8x^IwLHgAex)44~om`&@I7Q#RyuX*k_*?r&i z00tv;0}1G%u+ctug2zLZc`0x>Nx5k8esD;?d&|Za2twDI(m+x__CLMv>cOwOj*X0b z5fmgVFE4-pz7wJLZeSIx_hG+DESkdQ1w9A`fgio2AEgfD!Nc*xq0hXQhc&LO=nN}= z`3owPqFK5@_4I!Dh=D)YJf$%UP(3LmjW*!aXWBU1(}OER60t8#<80~&v;W|n1VUwj zm!mxYyPEp?#M3>JY}?>=tkvl&5-24kjyIxLp8wxfmifQ;5f|@+>ggXgYvlNFmcq~U zY!4&8{gY}2rNQPV)J83O>K~?M#CO=-yM|DO>07JkMVXZ;`t~CnlQ@c;VtHIa*e)aSIyLxPi8Kp^3W-=-r8|xrjlY8qjo2vM+ zT`tD{pTmUz-#ba8>8D0ytRRwMa0{zsLLvTh2POY$-HsFxp<^TH=C3?9CX3$m`_An+ zYc3vmRnKOJ@}F3&Vt}^|^%hD@=(9XP4kRw;2A!b46_Bb=hm9mtzA?rnT?7U|z^~{3 z+bc|R@@%LLoDGum2uqY{7P8mecvW$SVjZCD9OJi%1+Gq<;wF#@r;O^9323q`T~~sa zFc2O0Pk94H`kvp;KDUV6xv!rm&m8>_4ZH=*w%EU)6Tbd$7g8$5rdT%-5TtV+iMZjW z!Cm^#jT-rHvm0tE zs+Wqj)v}L|nl;nFrpO{e6+67AqXpt4`R_Dp%vQUxL4k^|y^TfBB?jpC&&p(Dj6(Lq zh3S9xy_u)+3W~vbq%Fcq_10}RRd$RNh^Lb@>Yt@6Ij}?pA@tsH>gmN<1&;wNlk|V9 z4ALKZwuB`IOU*bt@0`a(o`$%IxVI7i+hP9ycDV0|#|;V;_gQzdRabiRW1`bv{VMVpJs^D!Sk{q6!vAN(yyQY z#P$8ZKRF*$WwyK*0}j69;X+u~Yggq8F#Hy!L%V0?bBbsC*45pe(^fA7ipmTSI9SN@ z*0Q@QD9s<=xC0=LM0N#sku4O;nw{{0%b7`!m0vX$865wV;c3+xN^mv!vCp|*T!=$~ zyW6d&`^XeEl`{zf`}lmg(Y^E+Lwl^=TOhf6P_;h`;9GUc*?T*n)@wUwTS*Wo>pp5` z^qU!CCTSh;M^Q+rRsUTXf@8Oh?`HB9z!S-U%CAHB^U+8slDK-B7}L<&>I(}^fHtF{uKdtqf|U{>u}`w=AZe4?9s)U z%@f7Y*t%kD$!Yq;b#>nb2M50=C)cf3B|CNT!+0^wdnX-NdJWu2d&|bd zI6>Z)rl#)=oPhq45Ar#VH4>X_#QJRSFu6@SprZfntpG(rZf4~8ZdOLd&u9Fmuz-s8 zV{SnMe$rq-$5H1|nO-dy5dXw9n~=Wb=;&xWKMe;*@OjmzG3K$}p&`)7A|>qn6DU~! zGW^Ae|1&QmBjYQ)cnr}@biP}X*4qonH}MnTS>BdaNP%)qIPHm^D1_E(^g%6;fK97q z_biQ2(DH{7E8xF}d8d;5*bBJ=fKNNn$Jy~MP(4m8E-r4b$M*`qW zhL!#sS??tcF~x#|l{1SvyZ$=3G)-@3my`ZTuw_q4XCaoxOwFO#+uyh0&|ue~1AYsL zSN?!M`&0s?bBcUQ-7}2*$YHHbDj0y0lb#M0DvY1}ax?)HDS4}TUF+R@@;NQKAmk2m zT$Bw}8tk(|i9`^-_!g-9yLY9!>CaDL2HJyuGU4~mOauYTKbF0K(hKP0`q0lxQuJ~X zI*COk#EOC5oWRQj zDj)qb8FXF&@w+t)3qNY2NU^*xH06jNle&1JYw=EvfepZjng$h9)aB&jm6eR73-a^7 z<`ou8oa=&Rc6Ig6V0IC5vd?-Ym zey_+va2a*$^ou$f4?*a&YIMaDv<%r!G%MMtnYZLUu(McdnnhOb7w>;mR@toE=2tt_ zX=a`w7NR)QXGB4fJ5Ca!ZhyX3nx~N9Zai$>=jG=c49+qOX+lV6oLn(!t@d44@tYZYeyKRYf0cu8w#Lii(og)>5!=Am&a@ zv*v~%b_&C1`8k>?%4E7>6GqHaQFwzdK*-|G%NNOWDVloUKMp+M?IV(t4iaL;75PA2 z(w$oD56b5Z410^hkk+!}<}Mwz;e6Uxh^Z(Y2TI0?%|638L~q^%_XEdcCpXKy6ar{g zaUbWE>uui@P8S&rCOWj&v{{f-QZn0aynF^FqPoMiC-T;Dd7FX&jqMxVI-Fys10#hT zb7bVP60C;&gZ$P~8tc|08dYj7 zd9XthmhW$0Z4EXaf0L4dZn7A=Ej~5f&IR$qDNS~UcRUnd83*C|k(l2Ww}~M2aZT1~ z@qZ2jIEhi!AjXZOe+t{|=UcBFZr%Bz5E2;)XmE^@iR?bXnBB~#6JJ1_F2GR@??^ji z+(t1%5L01p%ekl~8je3{;-U5V^UAP7p`yy-Q3z~wuW2|_6Cwg+yBj~*Dy6H@ zmd#>rVC$pWY@H1=d3JV8Ox)>|8Zs0Z=&%|iXUKF_H9L^#z$9ba`u>)*gTeWz9_M

Sp0;i23$<5p^-6sX9d91BUoVs~zUFV`q zrz5#PzBLKI_=8IT(`l??eZUx;aV%OE^%uA?RpNYp=pQo@B-O;$P-xlZX8uI}f+hyj z-@eKxGTk@vri)4?@50vc0kI*H%%==vs& zPD9GU!NGdDvr}k@{oxY;f6b+MUEr}LgjyijYXmAMv)kPF$ECAi%raEGy6vmyG?x>3 zBd@l<$j46!6I?epf;CP~p4k(zZFX&is{1a@9GBmK`J? z7-Z8zymNT=n59us!wK1J2~SRJKoirF(m*@;yyD{Z4s^b)2Xc}M^Vtx`6o{;x+%H}W znsFmZy{$0N7eRSuFyTACPbrpZg5o26L4RLCVsq+;Dw?rATtflWaRyjiC_njrCqHYb zJFEl75w}>@!*=}xmfx4Ap$^l*ltcNu;h{6;^RE{H42LxCpFTXM+HE;o5iZTE(f7wc z6wHRzvt9;h))4oZ{Se=iI*7F2;i=ekf{Y7W>;0zH^-4$N3o5FfZ5+NQzOA8@@!2Cs zf6byd$Zd^v*&k{oLa{%F41JlRG_gpufAVduKk|*_B?1=W;tT{Mfv!){=O1+UxvAUc z38{2yM0&s5Kf6#l4racj^+nO0=s8(P_^b;6eev+f)M2+Qo8(pMd6%ZKoZ9nbx;5BLCu}H} z-N(@OIQA1D}h+70B2)8TxOIJ6djgHfBwgMj-fT(UMbH{sk)+s@2 z!OooU!dqANhmiS0!;>|1=d)rbct#B{3a>vLEkB~D@81z^k9BXCp5L7QVwu7u6-MlldZ7(HFb**r}W|m za`v%9hXu4*R?B+`nKjEpE9ugkW0@?Ge1D}&R>aWPNISt$JyQLs)!Th^o#i{y@ZTH3-LvZDKA z?DY0o_=4K<(1Fs$=kmMoKtmNhea5Z9Y&eHzx=zw^OQI9hE=g)zF z3)(wZc2VvQ1~Bs7ZpnGw0{f$9T0mTvPG&~NFCI7S?KCgCN+}MG7{yiM*6GIj@=*n? zW$j^Bcac|boi>-fzncnHYEoCfAbMHwdYq6zB)lPSAFdpFAluC;IsdCV!k&7YDK30} zT=5DYeaip>iF?>E&h=>vu$oGmHq_7705~T)Pm*gh@>*KMAg$ElrRmPWo=eTk8zIrk z773#6xP^t}2dd^TX5$$%%FCi3XD2N^>d$@OS)2~bg-Cdh@*I|?n^>uIrH9hD)$9H8|rP?i*5v z+7gC?6J+(XZ7GeX!_)qC4oBtjiXmK3WkmX9Ol*9p>D-!E)GGMPag`G!PQ9{MwMM(W zalyTx$bDaJ`!t@C1pR+TlZB-^EY12g$j}yPoEd1LZwFO69=fJJU3ocgr#P9InnFVp zozk`JG^$&--(X>*?OZx%$1Ja(OiVWJ$tEp?Z%uI+W=P-oShShK6+Q%L61_3f;4&FA ziKyX_CEDLCkruV2#N* zHn0rwPS{NZC_}Nb0Mg6KskhrMs@wPpdHhI0;c)VNef>^`fa)`JS;rE` zV#n;Hk{zeI1MSSgf;)n6wPKbD9JHers0zVYH*kltnBa~^ffU{9AL0AM1TR>w@&ri= zkjUwZRnq*MUnzBTLNU92!NM{zE!;@3Kj_)YM|Piy9oQ!Mw(yg9$0kMepY4;~QpFET z*>4I*i)1Ji@2X4&t4wmWv@|t68&@r^OL~h+5_#OF@+*yonchGaKn2tA*)kv)oW4mb zckeO+Vq4iOq%&G-LI%$F-n=wbgffWP0OWKs8u+x{EDWhMoA%ii!o%DBs`oeSQTKGC zx7F)>v>V&eE-_u9kXQ23Eiv@dp1J>R&3D8=JbI#ZY7U!QrL;Dcc@eOILJTqsxy>|MMaMn#pW(3PL9)mFm;V7GkM1Q;_w&m|or}mFB_x zFbGOM4ZzdY-&a5`ei=YlbuXsxX*ecwdsO6P?RaD(DVj~-V-TVCENZ8+vK$>?6xjV*_2R6R70CA1|4{@#XEYF=N=X%HiG!2koN-#=&pnUTt77B%! zJ1EJrDHWNH{b_}@jmTJVd}Jkk$wbN1tB0sc_~}O}DapBuv30{9_%P)!jR^gE%gIYl zzI_YPvik!v3b8=^X$)SEXCJg4@tz*9LYt2NNPy~#@WRrD!jpi`8oNa1nGt{c}uWR+e8EBjf0k$L;R&VMt^IEdv9*b{;~Da=G)5?*efC z`0&ba#m&C=zZNodfxh@WL;vbKu+(l>Q*ITNKePYAc3)Jzev^dSv2YWkKiy6vgM4bM zjFJ%os8NerusuUf_P9*=HMqEZfFJN#FB3UF6FW2eYdt$fmT%(xj^pT#vIRi=4I5)6ZxK8fLZ?-_ff6A!hja^8`cFof3rl6Blqpc^7J}Ra}VUIQcsl8 zY^q4_BC#4E_z@uJY0pLmU2}^be+z~bbVrg@LyDNUt^;sTzrGlPq4RBvSN5qMLQAft zpSEI-u@NfzMI5zaGL|K_^z)%Bpmx>_`aj(7Dxzxz#N5w^qf5{08q>gF6AGMkeSpHk zOYvO95La5y9k1JR<~hwq!D9%Rh0ibIt~;{*{WWMS7eb?(-YBb+F}C)zB;Roq1Wf*2JW}JOiW|r9Cyjg&$kK3NoQ~O1P-o8*Y?@?$Tt%A z!;?>NjmDfBboaa@j*T#CUr}pJ31VXvVq#+}jUbw!6UaR27gH8(e%|g#;@-UV0A^eL zS7ZU`htpRp<%Yx7+8$bwWIx;GqNlf!VWs0hp8?R9Qs|n9wtakSQ0=A_!E;DS3l1Ba z?gL>PkJHnyvmq`nza+)4dcMfHnb@t;Tc3hQuJ1L05da@Z$V}HaFjvQwZV>&|M#$Nk zL}>+(YO2>GANSL}7vS@6B-;(GHQ5d8j%5YE{&JBH5@{goVrsUZS5lHwQxlOmrwU#G zs>Q^_gshU9sGuIq#RV#RiWFdoePX++(zLw-)sMLB)=*EvMX?XbF%u3;yGw^%en`8X@RzJ<5!Qq6ssHW|Ql>;XiF25uk%;JysxV+1sl zYj;n;JFYvdQL9@!h4`NjTH8e&UQau z&273{(gnip2Ns+eXc*`^WH*;A$8ocfAeqLy`ODPp=;|)Nq((+l^Rs~gxxwZec}00y z85J=X7dT*J2NgoW8Njmh@( z4!)zO4E597YEd2hI3S^Vd_f7(aQjnKNqcLG^$I!lQzvJNk3-eZ*O3)pl)>heawhub zg7oC^iXb`wt$aXgw85-&4bbk}Cw3y^P{~)f*{!YL zDhQpaHsd34Kc@~|e)<83HqNVj^k;v(H2(r3!Tm{Q0=LP#XbNflHNO+k;qdZ8l>LKc zZBj)AKa{+prj&uf8(>m_<{{L?#_Cm0R+&|e#OCEu0eD_aLV}!(%=i5K)0nKBn6xw* z4-d~VCr`NFwKHHNh)GJmr=zRU*p@72@l3-hoemwI4jY~i8{Y2Pwuq}xhdNgYn5??# zAI5&ba*-}X&5*|x)oj`o11^t) z!?WJ1sE8>juoxKl@b|7-pF8tL_X-&r!q?YxfIMMTTAC=}^?(-}TN^)OQ$Vqh;ukIN zs?$4qrK*r1eUaE2@Q)k zgI_D!ig&m=LgAU4j2YrJPKg$X(UVv$^g8|ynlDs^gStu?quNT_NmIoV)y35r5RwAk z0e~gRILH$~nEo2`^%qI;_W*7M-`O1l?#{;t}~&NJ2KHOz^4cz6Ud+LKdI@Dja-5kb_FmvS8@1S z)55~Sh$B($M=RIuC&cz`Y=nZtgLO``Y$Q`Z(bW|Lmt;u8ZMM>h1SpXKq~$fhF2SJ% zxO3S&k@oXnDO8(_^{pyC{J=cQLhc*=d)K_K~+{c?CUGb@(9tJj7>%Pp~Jka!-f5%rtg#u1? zR9z8Rg6E#`ue0;^KoY>>xzeee1p^be;v=~`0j+{yteiJ3z9CUOG3n1~S3X8F9SBK! zqh;sd|8-*m-;t-&JgA;85z&(_-ANJ`eIvglQ=REfyC7h zxL$DHfcSbcqt{B###ZG(ML?j=zE@yiTgPsi^`0{7XR^>}8L3XIqFknL&fhX=w^yPJ z+1K{n5gM%x_j_sqFp9<1wcWmGpY2`Bu$6~{#PrmNPjY=9AJ>{nA8RVVq_R+nBKpaRa2!D3K?4@&k zobe;V!qPHhN|7#f5eejsWXoo(n0UAy_IA@=P-SmHu|a)pvvR$2ea3HbH8qH+X8Q;F z!aB*H;V8X_d>y~3#N1TRI8l-Z7~m6d0Agh)W~6^pkTJMs-7KmMyH`O8@aA%**;MHIO4JFKiufF*UchyCZTccRqP7 zNrCyCIH+B8tc=-31Q)!yK>nRnqT}EBl%^{q?U%z<1701xF>J}GYG5`R=Rte)lngUgUbEZP3kGX#ojQ7IkZ(-m z8dHmfEH*|00#6)|+vRgsfd2k24Fw--F5dU+AhBs-pTS35keiAMV2c%AX5GxH6z6o) zqIO_9?rtk_=Of&7E&fByOkm~A35pWCsEsuAkYNOdUBGl&9D;8Kf!$_+>p|@ zuUh8imeepQ$5Da*t#-$Bu_oVcj7eAFTSy=-*J7IP8bc4df$yr$w!EL0gmk}Hujz~=Jx5H+N5}nHBu%}|yFfT?O z3*Uq+3GayUGMR>qk^iOMah2Ctz2^G=aRIzezQK)?j>NwFm(YHN|5aj^*h8(R7R2Ds zBuap0tj&Rp)6>zD$(Qb%drecC{^Oe_9pcqho5n?Xc||!Dm9Glb;ROYzG&F_JZk~n) z=F4A%QumLKi?0~SIf6H0^nXUb2F-3Mz>A5An3cVW>tlG+)2#Vmij%A8yr})VmOfiGat5oqFAq>Yz> zkzuBqpY&{Hw-*mHV;bO{k%Hit;OWLy*@Sf65s>?(g$sM#VnwnAR|2PN4!NK}=F|Cq zYaNfbOEs^-FKO7jV<$u#;<%Iad??iN!(wM~OUldtfEvN04j2pDB|Lzk9E?g(Q|7sD z*w@b$cb6nd0gtsIr~FHL)!Q9>$E?jy3^T~i41plGo2 zj+8Zts^%=!@(QycRhr$<5I~a@j<5Ey+Tl|B$7IUJ#(Ud}%AVdKP}!TbuwV{qJ9-9t z-vP2CP-v^i&;C2zpKiOT$A^-aC-21bv7kSXlYdNlgjy)BMuVWwS^AMVGnr){nR>{m zDhBj#zN4j$uBw_~PzOcO(spU&X*n{^T|99gLC3sxC91?;#s zK*M0QnCnxbov!fgpkTF}6BiV`JMsX`DHHqM@ zuyXaYK5uC$k9!7(-qG{L+t*vY7G(=0>0i`no|VnHvP#FWeo<>$oEAB;(lE9UE=sWz z^0u<6X;4~-@P7Zj&`U!8k0a^nV!qOu>QG3@REOQ^h|xz)+vUI47;ILg#Aqu6-e*_i zVNx6a^pSr{ZY@q4p)La2;fH7+>*K=LF5BP$AO*DlfqJ^W8}Ib{=D2yrDkrBBpmVNi z2dDP+qn3O5&*4^eP$gXYchj_0MBdYrZvAhV?!wGE9+x8)3^GCwVe-og*l_}g@}0Xwunp-;<x_UAeiIw=to!Hb| zyzUsy>^B+-YNRSf7x7(p6eMqMER`tyc#PuP408xu>jMv@`HC0#8QfP3%Yv#Ci`y6Q zTkIDCD^+g8yu7#0cxiMGVIa5cJIm(%=f#a=0#gFwdW6xz%;?Xk9m@YAPJ@Y_A&Af3 zK0#hy5wJ}mr>A`|!?ZNi9}C-7tt&t&ujA3e_^NU?7O(*u+nYbq(x&O^XnKZ0sK+so zCKY6rMLIWse&x$Xlih-FkJdwJt#yvPqEqa!?6_i*spOmca2MK|y>eYMuL@>QaR+Bg zek_Ceib$c5QN4svFi}L^{-@>C)~zc`EIMLE+Slu;`Q8Ur`czJzxad55b8@W^mz_lS=N4p^on9ALKYN3nEhjw2qF~@XY4M+o;t* z5LC2<=~YF^V-+EeKoA9a1r;(126}^Y;Y1PPk&&5i`69pHt0N(uLPvrxr)NC_2RETF zNdJhnORO7taMk4%%bKDb!!i^ajN`!eohx3nA2&=E0;aJ?JZ~QUm%d9OzAaLWw-(bO zhv~IRlBNXLHQU=H(}y2co0?vRGe8HR5=_A!n7G(~19fDIb}=@|vZm|-_z`0rJ~D0J zRO4td*1ieb4vn{X+|}Rdaa;M*_o zLT@@{5X=e&D!#hbsjWJ6OtMhRm@ocITTEfv1?!*qGVFcWet&SLXx8`Ktt~^#h8xFZ zDa!3+4+GSHLQ)AFu^g4sTYkOk zj7fum7aX1C-TF*XNd!A9-B~t7OHP~`fQ}$1t12QUhL@eac|cDMe1zn=xdyua7sZOm zF7+H(SQ`M5==Z*lTPb)OzmR<3x!9sf$f4E9HYOa$|Moipde8a2AUWFW{FU7(t;aavqJv0)wDoSWQ~+P;s{_a2;8)U= z<-?OQ>($qfcT)nuBS446eoWysU;;&Q<~hz9-L_=LZexn#3e#Eb>AdCI7 zL^U-&E>2FtLJ!33mq)a_*2%Nx6qH=i_xJn^EN}TRw5ttEfGv1;GAhJp0Md&}?!5$7 z&HXr9C9V|)l?cx8&hlm&bAcVmDpn7jtR~k(?F6+o15Wt7O?mNjWI|uejajL>6k%9@ zNtzb+ZY*Q;zBQRFP?-Arw*V`&E5@Alo;rXv_t!{%fNU=nQQ&XASTS;{n8^{53Pgj^ z5SU80YH_GV4T5Y#EDM~#GpHjN`f4?uQz-2fW(IX6h1@ncig>L%4W#J)40p#`*82NL zH7F2L6~A{y02We;<4mv^y*El0#v7vXmnJMjsDKGIF>2BQ7QR78w3DO|^l=Sia zZ`_Zr2tKhoszbVTO|)(^W1h<#7i*{rV}JenR|Qq!dTraKOYh@=b&#H%uEAd|68~Ev zn<-xwPQlY4M)*eZO(RXR0*;3LD4QiCt9}m#!m(yQ%ynml)v~t@MHt?%3Hwi#FA^5r z!w{WXgFrZN)Us^^b-(<;X8@@0ZtT#>m-zSu`;Cja1$}=dN}Jl%ARqo7qQR)cB~JxsOX4-s_vJb@8^DtKs^K@2ngej2fqVZEw(BH$(O9iSaJ za-roS#}}sl6=4I2k4SBjs}c-qxaEQ+n`LBRz%4ugqD<`FzT1($>(ys^MM7c}9vmzc zTA@1r8WR%~A_WIWQ1H@Wo5jRl*Rcbu0>*>CXJqsNw(g;u&%7`+GCV&lG;}#3`DYzD zEssa0qPfyk9uZ|Kd+vM=zDCj}?FaogWk}bU+JFGWt77KRfH*XgN8QszeS*69+js+5?COFEaf2?y|{K*p$j%7TlN(5zY&IK~vE2B?L}$sbN_ zD|-hK2X@83#^#hf_zWs`7-fg^&0BLZ4ubmCk? zoHun@v4clqhXE5ckg{*7o}OM=O#&tuMu~CXuE&}b6l%toHsbLu2MPM@)878PSN{0K zK{i0z0G5c-(Y9G&Rf%CFOeLtmuiCHo-nyh${~a}kGT2W@XmD^zB=`)Dh*&B`)i8IO zQv!VoJ(`ENXE z)-v|r(N~9PMiTrA*at6_6|rBI6%?Ay)V9WW+;OFy0ww#ZX(_dG|M7*w@$iDV?9b>w zcdJ6VfX}B==?J6c*_>F~qPbY|BDhOer%x<8f!U3sQYuwMS65(~@;mH`Y4*fq-^gDa zT5Jne9aZ=b)7br@lqsKbnVQlzM)H<+pzHo4QOsHTYX^3;|0<^hEtkQ-GP5lC&sCd> zWwZQN@*!Wf=d_v1sp+kD9+w*0GK51j#$Qjow2?Fv8vhEuNE5G zaMvLP+CL^5zUc@XC^RxPr2fN56D7rMnLzFD^NU}0OEYcY=7WNtDAo)FZY=~ zK|JZ~?s`o?AYpI6LAh}I@EA9sj5(-DPZy6|I{i#P{5={zyr0=Z`h&=hQ^O~)kT|yk z?|S^rj3bqoG!)2uJ`FFq1d7^dcw9GEHtsdEO_1|@Q$hRv*b&aqGdJ%RQ3h-%{${7cqXkH$3L+xxOH!F_k5m`OYCEG# zIxum*aXWe0LY_y+{IN31G zrY%>>t+$b>oFD6HEdd=10`GW=uYrO0kiqL^@O^h5a%LK>c1V`VwsiJbr%AyR6Bu>%AzU;Vuq@={5ChrLB z-ubgT)CG-2)&no~QbAuWDo{W$({7|eM2mU8*2>9-sXF4v7{hDQb?>N`c-xy4?_T)w ze^=BLvaryo_5EgZq7o7!K}F3Wq2fYrc(!>r%gMzBrqPI|w>s)vo}cevi-C6J&aQRy zu+j4$Z|*D^aIGC2cFUPQl?5ah6pYQxOr#VjYc2DC{Ys=T$ucoDDWjkuXi274uV%OcH8NB$rJd8t6f7qyA+6-MeE1)C8XoM8X;nDEpJF{@| zKyPM4gA;2@#>+L4zf3Ntu&*hKW3u`x{_~w5O%u6m zQ0~D&G*lR2e(u2{;!C05SjkWcaD+Glsm8_(M%`UqsNye%M-NHd>~T{vV5elL#FK?Y z-r;Q;>-q`FV9bTbO`2xcZG12q!je;$6}PdW_V3D$!HOT7Sg`Fqb8~Td4fe{rmHx%! zBkc9vYb-49R`BA*V_gHg)~RyJ8C6Jz@I3cIDK~C0Z&A(^MZw-)enG*Ox(dhkkcrlh z&CS?9rquyZq-|BmXb>!cWC2XsZXfgcbtBn6ma>O=qhYip3iAHXbb_`v7nMUqT_xv> zMVb$!XlQ8nThpygy5iaz76$YZww1F3jb3-&PEVIF3@hPCNUT~O21UQ5un`F3-5R!l zZK0u~8xm?1!XSDxy8V~~wxy3IuL@65USay1ij1&=0;&QFi+qgI=-k}j1c9#@>PV!p zU7tEd?@`@@< zfC)ONV*>+<=JlvW2gt;C?0y$Gl};N?d`O|*7)V%?5Qzefrx1}*Nk5q5>ii}}A;6YY zHh$Uu`Gu=h2!T-iNJt0@#ICiV;2BV`Ge~5y6ziQGI*6_hzsViO1?~-xH)Bn)(UF2L z#@bu!wweb`@tYJo;hS}Zc3VGnw0E9Ce2GIWOfxLf*rBm$kLNgFs9kQ|mPy~eyRTSJ zO4>6q<4B|Ve>7cXR8?KHrMpX{L*gPSARQml-QC^Yor-{Tr_w3i(v8v}-5t`MZ}Y}` zzu*UhJMP(M@4eQXbIqCPbp$u|bWMYTDx-+k6|o(8`SwnX3$%bb`4k9NHm%btM;;n;?C=mJ; zEg#Lz!?SU;HJ#OPvbPsrn?OA}D&N%9w6?VuIFax6&dJGrl1g9X(x$rM{kQ5V+rqZC zp6fdflhWj5b!}~(dI_CUKRZ1EAj$wbtyg4CPp`*}-5w1A*2t(QJYrh+4K-DF__wb| zQ}kQfRoWHhcfQm>(z25Tk|Kv(_c546!VS<5G7MltXtM$0%qJ~#LH?-*9gD6t>slP+ zug;#Xfp!q%yEKYgxX-xawfx8A_-Z_abgOMXcBxAA)T%@DKO(Rj5?i@tBZ@|*S{MKP z1aT0LQ(;@%_?99=w5deI8O*$uxk$kwuwTJS5lF5Z^&p|6PoPRW{O3(T0o<`s4H0jl z>KZ*1HC3q;Om`DWd7OXo^6e%T7Z+dGYga&bk}M(wV&!ID7$1}XF+>S5JA*w>@Iz1} zpX9-k`>&TSYY=YqH5_Tz#=z&c#)NNS(XxDYp<9cQ;Q4%k@A2XZGfo+YOfZW4WsNWD z8#(8e%ioEKxBQ^madL7xo(gV5g%r?c6A`uciKm^HgC zC2Qa#jYYU7AspB-vR`$`7FacIlq&nl#=6yGl~VtH^Kdz?(~j>$s*s2IY6$!nIt4jB zzI@yk6oe}S+IR1~C9JHT9Z=+R?j}l9ypSjfd6Z-LmoJeb^0!ih`9I^O5hngwTN|80 z6VX!^?=PeXQQd@#5{Yw?6o)=Tz|(-(MZ0hOvXZi~A#V06;z`O-us^nv-_G8VH9Di| z8DN{h78U=DOZrycRTT~!`v*7gf!L1_DR4SVN=aDIk&SMsYgPU3a(Z|9p`neusF=gm^FCG~0ZPX1-O@+#Ck1McxLIzwAAvj0`nuGfvMW zQqzE|{B%{wFB*5gh?VFY|Kpk;|K;`rb1ScRt4Y1~SVq6=+X0TN+ve)D{(f3U0@QB} zGiS-k1gdJ23kwl5*8e^h?jN-j>canI9;JZ0zP_GYOmlQ{0*OGOAtA7%^3fnBU|#)> zlr>EjEYaHfdUR`s%}rkGKPUQ35;uFhP%Ln~T`m$W+cu2PO^cQ>O-@Zui`eK8S5#Eg zH8g-TQryG@*Us+Wa%Fv816Xcbm;RaZUm12k8y9X43uMq*_U`$>Kj-G1gLNfV;Nj!h zJUR*m`xczRuOGO*KcSZgY;M1%6b+!aMsH^hZ?aUj^|U{IfhHut0V!z#->e`i%zm+3 z0Zpm_sl=V%e-FpT?&a{mJf!T_)z{0_G&b&@uIB-LqFjgMGKnk99TJ8cXOh~{oKJ=N z+7}Gc4?_*-Mg)mU!kLP_^zWQHC8@dHW_=7!Z46e&CGG76i<~*DT@R+Mq{p&1MGz%J zx`b6#xqD1gwvoC*6V? z!yXZF!4)n`t5Qjv`ja@F85d)OW+)~QN{GbP07WAtCZ=(0L##wF@=bwzn<<2md32%L zPho#lua&9j93_~E;5Q)!vZQvaKR8(&>R<-CyFZ)xZokKDU1~kgmSSd>hjkelZ{ENC zT~?{0rY0uR?KwHQqvxEN7@vONT(16}&*R^E%Ggs7cm+Tiao1NXMCC8LU0l$CF_%9Ur8RNsEHvA1^{02Wv1_?`!Fos|Lqu+_^o3ulvcS>7cfMN@E7sYWB^ zakA4}dJ4{B$t~1c)KfP_u@({c>-DB$A9%V< z6KRczV7NJtklyY8Ogjdi)lEY*#wxfiSRmWN1Ty(qStaP9RgI0cgy;w*gm~*)d!|Zg z5&t0>DTXTIi7ACrMMWs$8RwytgaI*x+G+bLh{tUtqpP$>|5N>e^2t+*R zSgEMH@9m@~-i(YeH7_<;;Mp(y8p%xZW2maHx5FD(DM@SN7jT&*_*45+*K6$bY;%Lu zLF`SRP8z3;;I7W(^aaSh%~*Qh$1X!T+jQ1rMH! zOJiwS*XeLU*N5L@>NNswe*LKY>igk+ql>${h!Psus=!eI0WaWm3mCtGlk}avsR@Ccr7V?Gu)8MCK66Lj6crPjr4)eh1 zcVi3>9<*Und7R>sH0olc%vjZy=%zh^znQyAO1F-hUAA_zX?IoIncz=cbNW(%t8#C@ zC^j*1-|3v?=K*nSY%*^dZ9fBnTrx`3*hERwx5}#D2T}T@(`GD-IkZN$yC>RdDUIxJ zgfg+HkO+hRmNDSS)rrq%8%Rk>elHzRU)l7cQAC}F{U*Q#+3pK7)1aWO)O?q2KMuxxvak?llmjWa#2M5Rhl3Hf?+xTj2 z_Y%6{AgS^7zQ-gNcQu8h7VpI(#^wBe*?D~(-S78+xeEkt6<6awWLG7V>-GL$3vl1x zzkV712h8;)gAwfpM!lMGkL#l}Dpo~IX>`sIn(XYm=a{>-kbqjx37F^eloS@8p9Rfv zlN;=hTLI58Ply;`{XI8y49vC#WE`6Rd<9zu3@t+#849baL~BU|Rb>5o#M%Xy=_5LS z|Bi$T7#W@)o0W*{zV+VRJq&4#d1L?cXX7_bMKviPCA_-&#=-GXd3C&)r(R7}Nnc4y z%nV2g@j-QvTbk0YaDH_~OT`~`dTR9ADv=RLn~LrkUNufkG@J3Hr}eEqSEn!gU{DnF zntrG;bz(5^+Cv4c?9Iu$c=WGeD}LgeDzhl=okB2t23qy0rI#?oxjHLihxWUV1GVz5 z|15?Rhn50Xr3sj2`?|V}#&;bvjNv1&Og)ebf(n;Gy65PuJa$jq2X%Vs^286~R3`YM zQAces0aBp(9kKuQp*(3kXKSd2JIh& zk@1+FWyz8Q=j~hZrEtyH=Fi!bQ7LX+Bg=hiX{prwXkMem>-XpmwM2{$7gyuu!5e&H z;;FcF-ZB4`rTHjQK5>P^w=jZFm+b9Nw^78W&K`1#@Xm>-!AxpER z#qrVBZFP_DN!rW0>wlCh`q_`ivqCh?$2&jg|LyI)W9bOYRPoB>O&S9o2TG*0rCr-C z5t??EXeyI4pRFb`ZiTjV89)z z)b`gPN&w(NHb5Dcw$j&CeWjW9w&Ic5Agyk^qF z-F~0gW^IhX!s}CFExUL$uHaAyWDiKA#VKO|J zeizlxM|m*LQr;;Q#9d5<$$;_&ukTLN(9p00XLPng$KvFWwwq~Cl2QyVA}Uc?G~xnX zsl^+@&dDjFJjKOU;A4=vVL;77y*5EKBu4TY~yEXNf<1$2~owd$ZLVUoalkqohg z^8Yn=|C7$+vSXHT9)_ha>>Fdp$coZ5&1K8!h%@*JSGuT`tRRsyg?lG?ckenzfcIOp zQE6;?aeOE$(tDOl5`A4|A{A9#>y#7?;p?F#!4WZCz09{lg4vqoY?Bq@Yt%QK?qqlA7ixCMIbpYI^!Bfxp5A&xXUGsws~i1-y_^ z4PQ$p^2D(SJ{}>A=t@{PR%=(-uGA#lJXc3d6`?{i@tJ}vK+EeUK1keHNEQ?hKCHVu znrKO$(&@ZzlRaZEJM$6`EmGjVHM>a8^1Yu&kT>0R?Ks}w|4;jXzu9z%DlU;@TOQ2j z1na6|1oIagbDILUgWgr4=lJCJhkq+-Jv``o>60iRri99(6f;Oa!X+VJ;ewk*BJ>O- zAv_*Gb<5<2h2;EK-a20>011@egeIu}!2NA(+lFtPn+MvyUn5iaq5{gtpThk_B481I zkjO}8`|L;i=t&^2L(3ji(?F%%@9@KJedqKO2%}AvUm1n5TC=n&R2ReGLgJ~ZZZ>mO z|2u?Sr0_<3cl%9~soAdMwXIeqHNSvBDyv}j5bgk&J@lLjYX`y`uwxV2eS}&kZ%V-d zxg1~t>UG(i?CxAKt3Mfh#9WPwcMe9DcUuW#o{wLPG#hN$0`50wB8v_Vhze=PK=TeOFFaL#F^v!XKM9@d|_cRjl+q5?CHG29tFC*6xd35kq9LBP5i+n;mh_@y07gr zq@dzYjH5QLtDD)A?C$yG5P4s&lQlW%k~t_SrtXeGSECS@;nT9HRS^ja+ISqg4>sl> zaB=(hv2C+-qQPeiKH0+N__nmSMlY|9rLZh@1e?iBIg)sqrGdmE(!u@SVM8B!q5ofjfBIeLnk=DIM)gC^lk0n$67?vZ|4Y3 z6=eYX4r;cExL#2k5ePV^2g9otmj}CGsAO`F#lroR>3tI7cXBpR+|xvmaJ5gqn^M5b z(SKVrW-DtZ@1|UIhZ#&%)=zl&5#66HK>Q0$8AB+}&3U*zM8YC-c!)eDD}h*7OKmwT zBcDEaF4a;wo{rt(+LfxivYp@pe6jtv4})`UIVJIebZL}eg zd~r7T3LOtmZKDKgLL%Qpwj5TKt}ah9w8rXbR4w_qV8sq%hUc5KtD=+Yrs0WQGEgV05=EdTbuv- zg6nve8lAOX4*zp?wTDuc2HBq7U&t%XH11c9_dG;B=?%Qs$dq@-T6PYL1Jx1|rjCiD z?l9m#(Pe-5_z1n_QMr=}fJWQphRBM=NeH*f^ivB~@On?4R5ou|?@$8ZGZOW+@4G4# zSyhb4B9KGD!1%QtQHUr^T&02JUd+IkshtFScCl;FupW%n z9iD8>g`8^ZLo(852c;cEo#`;`4aKy4JbbOr8#3JFwAsJ-whtD-cO`)2bs~r?@G+w0 z_a&TCi3j*!WO4CnnV^TA9VrOOH3z*5c%nxH%Hnx(KoUm4EJ?#;C#c_2@elv*c9WC; zZ0km|-4{8)_b#lAx1qlN8$@afxPRHz-MIue-GT)Qu<*%k#HLIvU;C&Dqe=}7Sl7| zp2uePhh^4kI)J1eEj4EVJP2e3Sb7XcgCojHnhNzzVU1yzudnaVpMlr%>)O3jHkEBd zECE-<@$ooXS6!mRjwA)}-2ynG9+9_}9!gF->qHM-C{F<)!;@rUXt_yKTH!;d$94)zun5}voL z-Jdv93SP@-(NJt063;Jl!5$_E)e_RpQbdUr?(QpyI5;@>k5B)))yooLWF>HAkuQ&} zXeQ7|yu}lvB_R(Dtt~@5mvbh^^6F(@7z(~vfApaU{Q^U#yhws~8Y_|t*CY)g4a34v zM&ion_}&bCEiaci3D5Mcnr}tVF8|_be!t@azmvY%7kTX4FSZ4jj(PY zIeDQ;tqh@0Y<$O+8@&nf7G}-NXPF3>RIACkFMhOcdfteZZ%U2jGsnk|)$jet`P{9z z{^%J9BZLG=CE#c_Q6#~mDkCE`-N~ZZ8DN4YZ}wSlztw9iPGWy=&k(dRcPk$4Y+Kz!wjXN&;t0Yh<-PCQ^&^8onIbEb z)_s`>i6X@I;p2-vxD0VI+y2#Y0HpBq!a6>D5mcJL90gAxbk?n$R{LJQt`nm!(bR#WE2!rV4(qs6q6cu zN;Gk_2x!V)F@s!X>HI`ZCIZG}c}4>E9eFucEv67$N!AReSGo)6Apz9|7`^EkPDL#> zIlz5+18BRx-mgUmR@*ucoU>j31;HUA;t&vtfb$=F{RbQZ!qSkzAf2!+PVh)Y)-~V# zdf;x1JFEb@9Bbc{4wmNlL4rFpUyv(gyWqvdo^}3a#b$Q@h{QDhgC>5rhUDAuM1N%@ z188WN$9K26cKS<1B~@=Gqy83^qR@W|uPwGt3#?TR|6s(LC@lsdf9fa3e-ikC)s3ME z#}CK2^~=!y^y+NhYb>I#&%oC(taZXNJxYD`uS0se&Rp#c7C5MBsZCf&Nwup~l<;tH z>6~WI3mA1%BU&FwaiNbBFohmNPke9Q0#vDAhUK|^b--@5J%L5&R*j09dam8>Q>D%Q zPy$c6rjyVJ6I1ywAIR#%@iYA9B3%vY1YfA9(mWGT5N75b){ zQvo=%;(y}z{FI}>mchi$%X_}fveNUW!!bsGw~+lE7@Vqgx^Vw!yCkmve5d{c8rq*x zGOMSiz-qRK=WeQZtIq7x6YcD#d z%h%uUzc)1{Zp16|@-ny4+p!XYD5uWl5p+yUE`EXf-Q(k*;KMgS(s^4JDMmC#6F1)t z76pvP?1jCodYQD%p;tnfyv~=4zkfdhG{MTsuAo5dp&8s(fNcc6n^tyqdDSIpEiL!{ ze&S$gPf-zyvMXpgrmHI`6b>F6Z!4fRgX=Oy8jeqKzPxz2MQUm{Mc2LxtNTqV>>m+a z8ER(2$!G$(g&^8gcNqxF`_7+q^D+E5-%+q3YMdfLh7hxG#Y9Dj87mgdt&0sx?vL-V z5Y#X%cm_NQGw29q3e|dHE1UP>I`ySvFB+7gn5R&uG<6&!%m;yPD=RA*`nSuqZs6wM zR5A^Yr9$4*==1RLL43d@H97pNXS-S*>8>N%Jvth#Rcr1zt0$AjXF+g%{bb$duEVBy zb~)l8IAoDixhWy!{n;Vlu=;rR{rfV_8dLb);bEyPp~#%4v70ZV+?-sERbGekf{%Ob z&KIMrfdFOrU~$bskUvVv&Fwh8sYv(Q!TH2^qd#jNM!}I(SE5x6_GxT6#@f93k z4B*>o3my-{Kv1_fd5p*o#h;UOfQA6EavzNagqe9;7bu|c)qtQG;2~mia!jApF5EZ? zzlrk;EWeV#i@$LV3><#7{j!b8zPESH1g~l3MoO%Ic!&@TZxqob)dfWxJP)^#R|T*45o({NG+@ zeXCc8sVyzuwDQv8Y86MzwYUL`3|2lqeD6=5s3c;@Ol%+NpD!m}Qf1$mC+HJ{y6|@P zfxO1);`&&OkA+2nfGPF&hS&w5FW*kzOf}bX14!t^;FcY5lTfkAz=lxpY%fbSubf?S znu{YoZX!wCzl!hM(#lG7;ua)-B&RR2_iL)`?6TM81=y8+vk!8J-C$S#?!@g(P#zZ2 zZwhd@Z=n$hS3orK{}eHA`{U=&?9ct;uM+D@hy3;*L0}_k>nvJ=ot2lDaNXdZuA@E5 zHzhS+HaKgj=;+KFfNAsLt&_WZ_xuntNPNu9%5-#|q|*9d4w4&i9Z|KlxPW_kC5e&c z-9y6ghbV*Q@~OC5y*U3xN9uSDo#s}2bU@qfo8<6Djs8eMIv1M!*<(+fkk2&WpN+nH ztyhy`VjPTdL1NEDuA$Q9&+5tMXH{uPEnH@-2nn__St(#rvg`ePxT|^_StXwXA zkg|R&gSIAX-)AnVJ>`$du8uW*M0anfQ~qd9-=BRIC--)z!)oOZHqz1y*Tf%#$_&46 z?9X;$29Zla0$kRg+gfJ@DDyqNuy%^_U=;%mYZbv9UpSMLR7rgbF=Hsw)-TO;nG<3) zWD+r4nT&Dk#X% zMKiqQl43F`N8MR=1At!1~KY+wf5+I2*y<+Ow*(7AYCpjUL@ zb~^Y!@CV#am4Tw~tiOx}iO(!xJFzO z`uc{8Oxbdu|36^qcWcd-vzQ&nr-fsf!ABqjorqeTm1%v{emzuWeG_7F%hp% zx-B{4v#T>${LipMu^#seb_s=!7xLT?G03*-xmIX^mI(@=m9N*m2a^GS&=)y#3?zy= z%2%tBKvu-J`_JMeq$Hk46JMHcvJ2>k!=C2cj^V&D&+WQJ2%IoYHSYCGZAL5ETU%OQ zi#zZP;}W^C>F5TCxu@D=6=-N#JkP|(ay!sCa=w>&H=ks4mm*C$V7mPbcCSMkHxDv$ zF&@sQKArmQ-M$z_HaSi*p&XR`%`-jd-yB>*;`!D%$fMUXcxe$bzYs-6hM|SQMc0Ot z)e&z-wmx+IOhRW^h-bW`F%Y$0X40=2^yi?Vf$PQjNb~nXaB%0&=;*$sI9bfx$1x`sA6m{w2FSMf6agM>dn>B8H`>-;q2rq*{p_`k}W$%%bTtCHHZ_|#5RmiFQPkwvew z?ODx6e^epg9jA?r&#Qa;`)F+7SO7%!T)-OZ111UOgQ>ko1*0Xi7kI*KOkOA;BE327 z(5xbh;iYLJp@|5A$jckqGhSwz|KD%T0H}Wm$`ZTEu0EbsXq|9-{& z_b{4;S}(~1zh{*&4`nNc`%GMrSQKNow6}EdE&FhIFU4o_M~Q zJ+Jj`Wm(z#NP+^Vv1Jc7uk&7=pR~qT9YR|^s}Gd#PqeyFS#%Rg{jrB2wcwgxpHg@p zX>vN_KOfAqoo~qk8SAIRzdOiIt$hJ$UfKT4OdimJ0mv{9k4+iOrJmu|l#MmV-DZk| zrA*VKm9Z0j&#?1zX*{ti-+7VtyE*DtDb<}}md@wyZX7vAQvU9B>H$kTfmP*6OO6lb zmq@e<>B8sJV2IQ{ZD$w}H(`oa&uea^Css5YE_DC!i1&>mwV^=#7+?MpzuiJ`>3dR& zP)Ct6E$z_c_}QtSrKC(PmprGZ19iJ*l@(Z?8Wf zVe*P*GDfH#oSF2@%v}QmU#d+8PVb2ws?84F`InY&`^NmaDc18#;}!mvZ_doF7X0{u zoi{NEdsDd<_odzOQ)H=|>phj%fhi7c)OLl(^Nl}9OsuGPgzf^ z63>^jAEIAhnVs?#4nId%dwR~!2j!#}1`vJT>bxy|n1oT4Ccp@v49gDvg{*bV7+1!! zUWVyS)*8`}-x_odMgl|&iA@eAjw)Z)a4ixI(4?Q#{PmU_ge=U}?U)CFk+USu)aI;BXOf_G{ z!hEFgTJ9^`zxX{L?m-zEE?VoO|5aUgwO+OyMj~*;65{pNIhNQZ>;6C^gjbDIOEN9^ z?~4_G+Z42$t38~ZI;7D*GbiV6cp|T+w4M`t1f$I&TN71Vp=P9$2x4{}v}`k=rDj$g zNP|QR6OkDI$AnI^(Fj$i@%X^L){vD@QaW=GAgcgmK&P{K6NLbakcSN7NG43JKN886 zVr_hGqA1tCBG2~Uk$ClJ074Z51NWnDF%PFlPXdRICtd(4;$x5xnfB>L-gZsJ7+gL4 z1d=kA_D3QnrV3ARs$QzB8ef+u%0xG60u2zSqKb};o*pa^+;DI<0@cCfGD%zBCz(lL zw0taBSYJV!H!*HsuT7+_y-2*cxR}AWz_-YxF5{=8BjIObW79luYY$5_@mzVxyySmf zo1@008M`56@ud;3TShV@M)WhKDPejn2IA+C%O=kq-bOwEU*G;dJaN2trTormt?vc= ziFU^(^NP5jIqTg>gtFy!&TMOH+kyNJ^D&a0gRQHeV$UhbC#B_ zNN<|!+T85>1_U-0<(&+~<7TOm%VZfQNR#h%CEYBO25<6>Js}V)|Iuv(6iU3h^a3+W z?85A%iVDjsGV;8FO+B`@%2ob{a_6JVeQq(OLS%?aK9*kJ11~QZyLzZ(rM;cr%?OhY zgR`|YPT-yJ5&Y(P^^7#M&W*#v(vbBBMuNdU%Z4X;z^wqbyw?7Sz`gKf|2emzv60%$ znhJGthn0p6I`7Q4N)2fOz-Wy#T|=BbLwyy}{~^Z(JN}q2!`%HKQ1&zIIil$N9EFxn zzGrAC?nK}UuH$yw;q>}^>nWh!N$rXZ=sX@bG{$O8X33y-{-pO~W_ywJ8Lk09Dw9v6 ztGUM64oE@)r&I5C1vC@77Zz;@e=J9`WX5$#WP)58DyFZsrM&OOJ@{sLmGO;3v79sU zWQ9MZuUxtFHd2-{%vV{xuk5(v0!mdVM`!1EZYzw*EIOU1b9==6J$xa6pLcdqNXXC- zwqLPwb|K)H`uG1@00kBOiN#wDCA{3c?yuzR5o{*nAKd@Y!@wM;GSkjDu0&9!v-01!JmK44i5dFE0MQ|LpX%8GDxLLM4thO$i+MxFl0_A2+!2w$~9g) zFU?d1e!YxKJdfDHe%hF~NHP%<+r)$HQfzb74Nm@B-z;}2%7x(z!+Lp~0kd__Nf~?y zOxCU8D;(r zfbNyv@VO^J2WViO$Va4{bn>dfOF~^Qvmbz_@-VOBe|x z&Va@Q3e*&VzlN-9`};vDDTtt$rt1MD(m_tt9ac3 zQK%!s4F`}hS~XETVRX*Ve`Nz6+}_iY{rv-M4EDWD|6;u>kZuRIw(3}x_q;B@1Vt1P z)uA>uCf3ZNU$jTLy`XN)|CgRKI`aEJxG~~?elH2JvExOxSyz-wP3b^M$ z3s&2;<|k^De>uQ>MSKjytRfO!)HE4|Pt;3XT8-fwkZ*PLKlK!O_&uIE)`d^=Gaoal zec9P)oLF8qy7)XMgaYH#D5^(^^1eJwV{F!*imUSb!*{3vp`DSeu8pvZ`_da8 zxbqWnwL1zUZR`0kzKe^C<)foSPk0-c2uUnu*@VH|AL<3;Nh|G2!#z}g@T};!OXzs z{{FHH31Hg8Rus?=$P5(mf}x<{v|Jn%6cj6mjyai;si}~;R7qg-K}bd{XKRZ`+4Y|{`a+oG znWwSz!Fw)mB8`pGz67jpXr}sMG;UqZkQ#@Z``K82UQd`TK#)Ps(T!Ixe?Z3%6Z2nP2xXPnqNNvqwqgj%ur`0G9104^?>OaId z;>VX5c5~+sZt|gYR1day1GGL^Ig6xYEn%XuaI5tGwQJREwMX3@9?hT-`#+?NIaNl{ zuu@h4e=cN8K=%Bpw-^2mOZ5Vn)WCmN@L`yu*AgPyl=wlI0w(U3GM`)^9k%1;*}DBD zB**dP>HXcZ!%OAZMM>#!>a7&VM{5Tw2ZsTnmusS~|DJxo)2+Y9)qmWy0mCiNOKFUf z89fVE89?Vu_kk*^c+e3B7M9s9!~`BAaIToa_>;t!<>xXcPr+A~qOjqkkI{!_q{u!o z6epz~dg!Z3!&n5$11sC3D4qI)QuMS?EJ4e-PHamp>gtBw30-ZHEOw%A1182)HWqR@ z2izbzsQ9$X$SKgD%P-@5X?$j;uDkgWjesBdU6D`5UtS)b4-EEj)So5T0ZBt`oQDjk z$^UBGo+TkAVER6Pi}4l9V_+_L#cwxi0U7hX)Ni#L4juudqZNEDn4|wZAi8CvRwdQaAdb)86XcKpS%*gM1A@K6T=!y!1_p)(46APL z&Qr*}93QT;#z1N8eo~b4_z)fujy*VWSzJ9lI!eiDCv|hSdVBwg|8e~3$-B~H#V1F@ zAm9xp-0FQlweNnA&(Aqj8LCM9Uh#Lt6$sVa-KyKK-|0!@Q%ImO2`8{>~6K~Px>e`TDpE3XF|f`4f^32ptJFw zAOxT;$fHKW#H3;52(1DTIACK=Z(6t0#b&4fzA`Jo01qEPw(4ps^H;xW(!umfBpOKz z&}75G-{TT|jH(*P68Qp;OGG51sv5eYbGT4Kpe&c2S;KlW{K)|g7F&TGI0ef?wxhtB zgKjo9QiI3MUd}qG!#I(Jj+S}P4Zj|_FwBxuwnTVVZ7RZ@x`9ZOsepfgGyZP;Q?)qd z4rMPtWSepAb5p?n-jXqJ9Yy)2rKMWuzSCewu-9%xHgH!w?dmN-UK(UqT^&c~f1X#A zDc&nyls>Xk-3m~Rp8kq_i=(1il_^o$gs-3z13C^A$k5lO%XX_`>{A8G=|);PJ4Ky~>p2?5`=4_jQ4Y27XtZ{#OAVh@C*S6%cT$-a$0`yj}0%dE-F- zogU@oD(|Gma{ZS~R3g4)HTqm3QSaaU{OLy%Ou@bKPDv})DDmMqk#JU3H$sunAIPo5 zq-k-&f+8g1!yyrgIvc?5kY3}?j3pE)w+#FC?q6Wwg0bwuQ9-fM5`Jg-ZI=U8!5PjJM!WujMO2{xgV#B#n~ScVWl|OvOn&~Qvs1@` z9f5Lv>A}ln3O`Iq;ny#IPA5Df z*}W>P#S5%pm?xjNhkIze@DW;a*&HtGa`Uj(6dU`IovT3sQV{Yc$Cvh~tKGd#m@*d` zCnU&AIZ^scQes_At6x2qF`*--Ht&k+sE)TsZUNL2;;pE(mz+K1l}590bIpv#iiBen z2UBTapn}^B>8!!};|tC6NkE4qWiL9Dai;YmmG_Z)5Or73^A|F&Tj+qMuzJVK3p35GemzhA_QIN@-2E7VqKcO7pw@ z8yynVyt>6z@Nt-L!40%%zhOGos^03J(hZ%rT}Kr1PliQ|IX`;w2aat;9{=KnnS-B1 zBA)v1`vnSPxTqMDxuNs&6Y~O^=l<(&+|8YG%a(VUSg;tLzQBuu8u@x~78fVxZs15uk1A`;2(e89 zCuIu~5|XOMslWO_1*3Ss$2Yq&5#6lvzM?@}4UFov-qhFC>3;A#miF{)0!q_wIXSeq zuaj~&Cud7zZ}|Aywob$;*CdPTM)yxV`mapED$#XT2Chm%0;YXVYKPmSdgbjOhciZJ zRA}G5#K(K!78Q^ldMhDe2Pa22;>fYOEpyc6As5bA2Jfdodb^N$4=$F|*M^lc{}*1c zH$v{_`WXga^L>G@)t}ZA`(vBHiW6-ORfcaX;w((|_CM)%#xmyb!yeS5z+?#KTsw7$ z-QpCF?-qAyDU7!C@6fZeKiNs$QC3m{VXAz=G5HKD>G3rl?;lm$rbWZB3=s7ZS7Mc~ zOY;Qke3pIR8~5az8RP=@A|Sd_e*xy)Md)cv$;p5I;BEu7-5dt701uJhgPguPlbR_L|XCv%CVP0kbLi%AuCx;F{x%aINNNP29G9tJdZOK~#{7X9h-$9&3s>46b8DCG+e>S5YE((3RSIzBD{u`(po) znd!2D?Yy04t@%|{$CKR^K_H7zmGekr`_-VFzIDf5mbDC3OG7-6#O??w1<9WN>d?%3ivX!hdZ4s0u4*k*PPR#A zCW%geRJ2V78`F@V_2j!L(&^vgMToC+B#re`R)2G)nMRn3&o{2{BqRoo@p$+WO87WI z>((}ZLK+wfi?MTkw`tB?*)id=Zwy{-c8-Vr0_9=-Xq#4#%E%9raYEr2Q*V813QX&T zwWg+|Z$1Q<;LEXAh~Uar_+{1_;0d0Ge@ZAF#SwA6DnM@gJoY0mkDWVFit?GN;_ocj z!IkIEuwm-637=^TcgFLc6_paBo8s8iA_+!s(pUvo)Pg>elDnh@yX#p)iyM?IcU2>jU$P@r z3!_wHjd1sDI&Yo`zjMTb2&v?Y_IQmc`jr_{&{&${vzE=#0yEkB7?$JZ05s2QG9%?NttREor9Un7fWmGB9Wvt_% z@Jo}F*xkvO>of>U?1=QaS>AY$er&{F4Oj8e2}Zy=2nO~^hoEr8Ej^W0{Z#~DCxHOa z;iKaqs?b-i=J6&b=YTgKgECt_GyNWeqVip~?Jkz(69UVz>HE;Z`|}iBEMx3+!}M^n z<#wV`X~-;!W>Hb~zB~_v&l(q<4a;aJEsc-P|HsYA)`;tR) zh@Vz`=pKAxM`R7z7FM5hy)~U4?(WhpMkGJVNy&Bs4UL@-0^iil={BOezAY2;yrJ6k zKzzcR0_aMZN-0RkL=Mkf?jodN?;54FKu<)8~|VnANcc-uB_bAq&R$->bG;I{Z%CvuE^f=5dm-Q3LM6%W#A3|*kw zq>JO`fesMLX_ue43?YAcBnM+wcL=AYiRT$9-j#p8kVSCPOEV}J!m#fzr|MW(4oZZN z6_nb?Dj$;+`xqD?QId@NdrXcW9Et0(ZV>`jw&3O$CQo8D&osk~C%#)|ARgRM;BUhb zIk1}jHD-tM7m)$Jo0@8BZZ(NDo8lvz)_nt1`-dTpL?)OsklGAH#h21f>uhR?m2o4KaK7(XJ5s*4uq-G4Z6U&Sv!TB;n+3mubU ziBkRt)eE(Ca>3uRi($UA!ehyP<1@yys?rka5Oo~Og+pZweFL52INLc?HG8<-er4nN zSpCJ*@pu2BdB@}4K*zYlQ{O7mr(Tu$+Oa~q>nnj^>Qu5_ZyUFsX~(V>1Qu)XZ?EimV^pr0B!~L zP;T*Hj?eR18BK$=&$f@tsm;*)n@zBlZ~Y;a^ZkC&Nne9d1yv3-LG&RvLWq%huD8}2 z&6TIV0t(zPf$uI~qwltY=+35TzF_p`)-JrH>}9pt#S{OXO-#+%^VQ>4QO8yQ_`0W^ z{Z~cVI_;OJp|^xo3LD&;Y07K+GLfBp;g7@To-4Zd%O`-=gk8-a8%2nAl9NP#&%|H1 zTW?17cUSEa^4+v%;{zdDW6X^^`QF{s%UOz_o?aJYW<<#gny&<1*SPtwrBcsySX~$f zHMi&S0YFG{cn6wL)c~hPKdHE9fjrK^uY)j|3(pGcy31LrU3G`+U)ttrXfk>?@9;`< zy1BRBq9J_2Qv5t9rOHw~2p@Cc)iKz|v)Fj^Z5!%m{q1hxYOj+?EtIsyn_BZBs?lu0 z-<3(p=Sg9a_KRFbO>Ic3#e+I19aMPU4%;^!LRJ^rOQ>R-R$I*;rw=SK}W+ zWQN*RbDJxge|XSeEj-=W3iFs9hdKIW#$|kRLA#v~JS48*x7`xgnjd?L6Fiv>5`yagXf$ugx+JeXmfd;_91PAZ-g0tY#jLBo zt%C}PV!v>hln$oru81h|>J(ecEoCOWzy0x48GyaLEfsYlzx|;~!mx6o#iA#fZj3eG z!itqD9>te%7iCexaS6kuZnFgox-!NBL*r-SBOM4S>=1oz7|BH=-Ui;&^1_Q&Ks%r0>6y`o07p7fi zN*EIC8NK4;i0+jk$8+2`8g8nC*&uY?R_?i&P3{MlySt#Amm`UnUuqLVoA=EsV0WJ* zZJ6fV%r~@+o!?zM%$?4`tlcPZbD`&k4{N_}(Q!Ge}YC20^_y#dwCr)L#RflI|LbG{a>wgJb3XL7UHdX~|d=FO&W zRh<*nABX);w^_y#BuxdV4xJc#XN}8sz&pwzvUY+yHQD}mcK)u2n?@A@mOH0J0{{B! z0hx~5s^t8zPFI%OEhH1So{4*xy?WNWvWoR3>*R4J#{mLKzv>O8;vzhD#%l|91dE3I zoo@P?Wc76IIr0=;N7R@54ZA<4#ST5UU!71Vw%nTy{2R@tnLjGDmHFY13Av?h_rB2$`PDSPWobkgOW3DKAX#lq?~IU>y00)${SIVV|3fN1j>#;lqv z!+uR~?W(u8mutmmci`sx`D&n90-*zcRS*L{lLU`d2?=?5_JA{#hvYxrOy?j(N7d`` znm~lioYlonJ}zlBvWLkOXTOO(lrXiQirU}U`Do6PJNQDn0AFa%tP$i#RilwN(Ka$O zGeGWrvz(#sgVvX2a>qt;vp^SUdgHIxY;3i4hAEVII`}DLX!ygE$LH2)3dIsfrM27$ zbrfAy83qt-Kc1A4g&HYIFbW@G(UfckW3hJi0G4s=QRB^W2wyurhm;jh2GRZchqVnP{ za5`M7PmcRd$O7{a*mivVXI%MLsw7Nu=^%w+UkwHdNtAfr z7yJ6@F}LFf!Yce-DyI*DW?JRV7Bn$}HDMBD3$o(k_gfMUti4~DLobRmB`*0JRKpA2 zOeZKd8};O&H+r*TBd?jd1;7r}^CVkZ4M0YG{!@#Q)xK2u6WTlFhKK{{Y}Wpto~|;g zsxI0R0#Yj7A>E)zr-UF~m+tQFMjE6;flK$LySrOyxO7T)*E@V~ymtpM_yc2~v-hew z=UV&1ihJBX@M4L90#8cHbjEtgzQSxIIm)9%jU_EDHkK{P5b}Ot`}i}%FY%)4Dpn)q z{1x+={wT7NO~hz7QHS776!7SxzCi+C_f#Nv&qMUu+kBrY-KuJ{Oxe@xtFbH1SwoOc zDI~JD8aKO{m@@vqXZ%fB!b>~AVMnK-u4u zOr`TQ#M2OLri;FK#TB?{`IbH7c2rPhz5R_kN@T#NiQ!Be-6WdQ6774D9Xjr3dwr-; zZ!)GlBfc?Tz=Eq@I(|0l4e;8)0WJvfC8mrJO&vdL3<*|OT^U6U@>``-HtHP4;i zO|Zy&@mxhz;*WKPcbKF;#;7qu*B??+Ouyt9EdD_!hFP$IUfV)Z$d+sOu&_vxK5S-y z!8y_Pw>3xEf6RFAAGjb8JYd8?K_Qors^;Q(lX#>js*)0>qU={HbjbmdFu|aHAwK89 z`}Ktyo`Z{v_pP^UfibMmCMWF+DLXDKOnKT&PX?2#5!Mr6;&zG3RUn3*SZ^fz=vDhy zEBZNY+mK1P>CNfSdI+gYHi2GzL6kY&!g$ePgt9}P0V+3jh8?vk;QlR`*x;$!?>6JCZ+Q}r$vF6;Fs_wHB&aU6%9!Mi!FD5C#8D1zEJaiaBJ z>&mSw)i^Jw?{kwG!zKH>gD?D`MjCo8_Ge0pR2#J#)Ku;oekX*aK3iW&m#X8Yg@;x8 z?ATzO0}c_EnY+C*dY34Henp}S?lk=WLK@-Q(dwMPlSPunoz^O-4np~&8MwOE3nQ~Zb?(m409q6uNFnl+C@D<1uvGj`Pcn3rp!1hPtlF)Y zTUDE6RARY`FhH-#y#1;ssn^!mdh7PgMC_M8I_M$clL*90GYw+KdX}bh4_0f~u9is{Ud8k;yJMdm&nseLLeOc(|}UT()LhKK!qZWTRwx7$?Q3$He77KRPr zEO=Bl{{FJsd+|o^ahsLr?{seineT52Dd`vQzUw1D{`Ek)&%oJ0s<)MWUOZmzqC`iZ z^;2&+X6lDGuGa zkumH72~XzIGq5H;;lZphU;Nkh*1z~snbk?4>8@Lt9LsE0=~MK2&!1}1|BMCA4KEi3 zA{weI-Qrwzy-FsieeLCSO+3oL=ZXn+{W%ESS@3?zk2OZ{oE*5cnw-a?Rv9bUXcx?B_fHU}o&m?kCXwR{ zTIp5Yg7F}5-L0%cNJG)#YR@S3;Pzkc_u8obN?(d4rktQT~Gfp2zAnF(0sIm#z zC$c;@+pLAxi>~z(^%ps@%(2YLNk%26sK$(25t1yBs?TkEvD-ia0>lV5_TsKj!Mw#3 zw1=ak=Na-s?WI-4cW&3m0=L<2E6bDv^4|V7e7joTzlU3U>chtfR0kt*u1FZ>6z_BW zl*BINFs`6``119}dj8Z{_OR=`Ov@*3db-IFdLixt3qke2;})@CF*3&spXV&p(xkI8 zUo#hlmmnhAL($1>9KLwa_?0=)-z~z4gA=#g(MB*Wz`^l24z;Vvu8chqeC7_5X*rw< z>YLgqExiEVB&zn=m&K`j1sfPkj6Do<<+sSr&_6ceLDtZAP8n&czmA0LND2OyFf%a8 zNjVUDVVc;Dau~VH`2P$6NLqwE{ij^zOili+fHc&6R<2sEi3e|IpeJWt#q7P~ZI92! zuO=`+>Jj_ERZ97>>sDg9&pFaw%peAGjK})W%KDhc^$|0Lw!UqegUBf;eo9`i``-#I zu+AS^u}_FJJ7di^Eq2uZ;di03+0Y{TgUPKqwuXFmtusr;}(A_;Pu9I?q@U zn+6``(`tZIDR)2XyHh6YmHl1m&LAf%pi6{S{wx$DIGp^qFX7dx0~Wj-Zi0~_5IHz` zCvc_9xVJ2TRNAn*;FKPV@KF;_zLt;q?|)O#lDB+I6{}`ZLv; zwKB-r#1%C#;<|VD<)4tkQI)&boUZTHwU>&D_79_uYe>S$PL|% zO8(qaBR;7w;?R0_d$)!~D09?e*3T?FHYrg|*^af$$7k#A$z6OF)-Bo{C8TFL0VC}7 zUD}d$+5gt36JsN$Svbh28&|_a4{1qOz(2WTXx%MQj|KOFn=ah%J8TMuqfckc+gh)# zZCO-R&uY~4cFii<<$$ZSV)$!Q21tEkXG&D{HFgZIz7$3k>98E7U#+B;JRv9j!pd*5 zc~^=ev)YPQ> z%82HGk0;R>8v1f|J-M;DvpIqjAwO4zqONm@~vVtTMl4-=i z*Dq%m9W&O4IFF0lOs)FfPm{oa0Y9PTb+$WtdUw;#@DPI?iZ&mr#7x@kM}Fy6QruC7 zjgpt`_uLhVD~o<%4J#{S+l(9lkR!A!A@t0{!?VDDeroy}4OE%*EQ3_Q7&ETO!6o@+ zxeJgc2y&g;R9>+QDI|@?ajDYAsW{h2m|VxwZr4x(=@%bg_DHn*NU5lwCuC(Ig`Z1k%OGO4|~aVoD%syXJJTO7`h zewUN0J#^{SmPbt!A0I1RHN?9dtEb!Cn@Q%_k6Uo(ja^v4%lILSiX#cUWqkhVyOUSA zd6U|X-9v>DzR{)>dLu=`D5jpO)p_!~(y?t#)k{PxxK`$NqoC!MlwR?e`1%dpZ^vn) zJyC$fS-IX`XBs_yL=C6%y|P7)P|FL;@*tsYMooI}n7;25BM}~RTN^xHBTH?AQ*lkg zg^dmH%A;;|ZNnAfQ-^>2MB6DSWEY|gq}I?F&Fm7fplT%@K%(4;pcVVPi9gOpBhR1m z{sRzk8kwDgMZo5k8)C{>W}2GZP~biZ`H9M153yQu>UUb*1fzK|zESCh5q*JzgyoaZjCpr=ay?b?FP_ zA;_5ZHv2!iLdY`sZaS<2yIKp5kAFlzKR@bogICF-a4)~*^6V#<$9$`vgQleUgpW5H*WE;b1EaGe-B$`+D2;anG2=6bS z-2Cl6M$c^UH|LH?n=M8hb+^jCi~lqGKsr^^)W0{yVpnia+0rWo$#N6HQZc(yKG8uG z2mTzLvgz2G+RA|?%geQwSBhLkD$O+bc@9C5+JQroGI?|#vbZ^tc*-SHe`Sm>U0${{ zlk7;_wRWwSs4YDAVlAa*zCVq`VQs&yav#7k`pgoZ4?~q!Vg*>lpJ1o$>g8qEoW&T) zm@wyDLZyE&6cm%$^~(!?mX~jGBk`Qx&CDdJxVVnnot)^|mh^|Xp^iT|vnn7G!>k}h zi(9u;w^i89&r~Qw>&x&XrKeUFHAVi?#f)YM(68R6Oa3rXOijIy{3W0HyqYT@0d|b{ z2%Kfg`qS3d$c2e~i5NKK(xrcml-r?_My<4c;hy@0j9eD%>nH7?skz$v^XKXP($eYv zlJ@sgPj-K%0Bdkk%;p~xn$ndhy3qkcU)_&-&(sQGtz>u;{r5PL+ zkj^@QHId9S^D!n&P6Cv&siKm$*!S-kHPR8kLF)E}=m$}7GlmBy$ie%2dscO+TApPg zrkIvQtBA z^_K7b!<-=(0TD&6MJ75o#b#eKZJ=$U@2xddL(44T-`184*W1lZ|RC#B0>Uf}4i*PP^~Z`Laps~wIz^tQ`3On)7<>JsN4a$cYNPGJqeq57O=N=V(<>WY< zcr^0N@)F`Qc1nLb16L<~3)A0^HUC2OluarUr@Oa@uGQxAGzl$qz7Z=eC(SEk9@;;A zrw!?9ob?rDNZgsH>MKn3H6*D!YSQr}GdU)ERqE-IzRv|I|GkN0q z(=)-kE!Q&s2l=YQG)cPXbu=T92njJvf3cXbdw$Z3IRhYCBVnwe*ng@Q%ll^C(vMqw zvcFdhZFJgY`^&EL!EA8dR6n6bCn7;H0t0q9psiC-zXGBfeRHK^+&7kSv3arEw6yTu zLX+@)QsU2>{9_brs32F|6Q~Z>947kbHTdg7NtZ@RSA(=e&@5Y$S94j^l#R{f(b*=9 z5BCOSWjVRe7AZbHH3Q6E_;NE>9#!Dk<`K44GRPDFr()Jpq1gQ+X9T6ik@K>C zaIRSO^H_G8h@wBhv=i%vFYO*;>Z_JU5Y3nkXN>n>?!*8crS-DmuKeqIHc#A@<5f$4 zSx)6}OB9{5={iV{btgnM8q~e>&-q&NK|&H|?QMp}vDAj<-I~jrhkN(!Lk(RXFV3G% z6qqB1GaHX2v+y$qj*iXk?FNBNgG2Pfd2i^xy3`97L&p1uEK?>P2!>0A{WSt$Zt!s5 zd6o7tOI!Wh%U)qtw%R|+Z>xy8e)e6wf3P?>$j$A@93N-l zaLB}s>Bkpw8NazJCzmRWpe&cr_16#(F|HJ$zU z^~6pK3?7S~z1Rsi*MhJ-e2VxtrMsyLi*L}%ESe%H6R#T&@*vS=G{EJfmHbw_0Mc=E zY-*v38#9sOMAXwr`A-Ns zM*Sgx%!5CpFsq;@A$43%w~Y9Y{l_eXBCNOsg79!1aeDf7 zkCc>ZZgzGL15Zy+3r|m719CPknTez>d$p;R)%U`tlN^QasN?;N8F9ah+=pQYC1t?# zm2^NtjI{?FO-GD96X^QI(|zWqT@C9bi>4cYj3nBj%xsSYL?S4_Avgc@)HF+1^VJ%p z%f0>6?|vBQB+{APGj?M4va-BQ_c|uH5KJCSg5posn*P*aB8x83`y}@Qvex=yt`+8# zUH5@b1+;j7Z+>vFIepsI)0RAF;wK`aC8wmcS}H6oJvHg=G&Q9R04du5wqd+;_w)u+ z=9hn$ec|MKMB$}X%2+Z; zxg6jtI@@RtF5gI1zyHwl5d4E%b^TLS?Sw!vI9XlSjxcwW#G?%ov0u&tq-*Z2wayWg zk*qq|A3C0P(tuOWG%>U;YBbth%>HJD4aJsKwXWq`-w`@-Y7=3r;f={WB)?0c=nFoI z;>^O(bMtz*wsfA*%e6QVNH9T@r{(*2S5$IJmtyxJy9RC5V9eIq}^;6kFSoUAg;KaK-Q5 zKx^Ovg7`c1UYC9GFa&(LHE0A%1)?E}K3e?SgC(ChxgCECjxgh={KS(|m`63mVa_(H zEz;=_a0A-%fmW~RU3H`4{NqM4mVp=RMP=I2yjwOUrmgG}bJ$@_a=KrGAt zm8fMeb^2~?o~5G#vaF21e~<5K==QLrqPiyM#{`RJ zF8~-39dA}0L5jo2?HL&gNhWK>3dOP%0iqvNP&{w_;` zpF;>GL<p&*N1$N^YHs|F}oBFL}K-9dXJm1T5d zaP2}m`Bce+$It1J+wW$4%g%D2nrhibQUuCMN%@Yp)j?FXJi1f8-AUT;JeqP0G{yxO z3{63if;Ob-!BoOMw3%WRo(Lqb;sSAD9o4yk!_j{$ z)l9IrZ=UsJHTN5CQti1Gaqf>3@X0L=zu2o4AV6qlfPV+EoSGKnySUv$DD>Hy!($3_ zqM8aE?G>wM(H)JRDqK+19nZ8|;orFUIhA3+23bU`UDwVd#K8D&q%g}s%j4luJ=Y>E zz7s?l_v6@}n-c#WEf)aEOhcvb>`PobKXKDbem78+LO}>rJv`v=AgkEx`n(kIM)V_K z!r!kw(;=KQ7HZW7hDZH%T#T@N} z6p^EQK&58nvs?;cn?Wv=-NFdtILqwE*G%@`KxSJL)Vg61w0e|BkNm0qv%ek}qeIi= zz@cue$np=ox@uJf^_k%@6J8S|BzSz5;k8X!^Kg4IKQ;P~Y5^zKUW#}<^vJfgX)TIo za~%2jI1zbz@&gs%w40kU9@^_J8Ogr~!ZxvuHSslJ^4mM#7ym2>bbus7e|1(nd$uhn8xdKuEy>c^gT%|jZ00DGav?5;8ZOC_ zWhCL#v{Y2nOuo-|OpvTvfOV*596u@DLE#kO$DIqdZu8)hK9N0zB( zbnElz2rKOyRPq_W*=gn0W%L9;yRjf094zQ4v*);D7Ny=7p}Dc!#_Sh^#+m~Plo`F zJ%tmzlFAz(g;T6H!>ht5Kmp8CE7!c5lxCmY@s!-W2m^!?FRMo1L6@*DjY5pXpHzgl z+DF(e{v67D13egqU=*gM6{8})T7!wLEtoRR*P4Mr#9#F4D#*rbo|sH)D+C@Ol8QUa zq`0?OV1_e23bN=pTznKQ_Y1s0T<|w=@Da3z(Aw*(ze`Z*SA?mHd6sR>I|fQ;f(HI>@1R61o;V@71Pg#m=#l!T0N0F`8^Z>TX2JID~r{l-sF zKs{1#*MZWy&oca~k(gTrF8JY!90cy*5&-Ys>;mXB0Pd33`_0!Q^(x!2ag&!DGXB%7 zjxin~#ZslFEX@(_Ohh80>Gim=vo-h@a?hW^wLv^yB*T4?xO;OjmSN5&^XV%%K25rl zT7?k@@`i<4JQu_+i;qrt$*oyW$C*jx@-wuRhBVYHT&CU}k&+Z3(AbA9^=z17fO@x= zJcaRpMq|G0r<=caloZ<&{52}Mf03+57OjhIRR;cI z+aFE>Ss$IOG|`zm0Ie~r+skH*?Bu7 z)w(jA#M)|)JY&JUFWw7x-k3~3Jg~<+Om^-<$~K!#R>r+yR{4SO(S=#TOa}j0n*!pZ z3+`&%)ztb90RIWU@J=cVm@g)$V2h54T?O(T3YxVD(Tet~t;+pY5$L?G7o7FIN7BpECCcEB|N-zc!=OyosKZSsxUNFKbBBUK?i_E0POlI@UyztawOL$Z_@YF zfl{!$X2zA|lz}{Zd$(;nUnXI8p^FM&gB{&CvVOh{qE7~AiNCv0Rc%g2{z;nZ~SXnS;I$T{lTD{7SA&(4Iy-R$gcUbt_N%+^vf4)M5I9}!(w7)f2D zxnUnObv7)C&#+HWxs;T{b1qbV*QY%8SdKbvGVubiPGG?AvJrs!G?zq5laK%qA%I6r zH7)=Bs^#|*M!*P*0uQ^Bm;VXazoxytQHL5s)1sT@zPqoc7#nA;n7j72gFz$LfJ2sH znPt;$_D2auQ52v}c41*qT1Q7@Og>uTaip~(CJ?<_;s>8M1$`oQ>`XKqthf1dGy=Fi zU)+$rp&uvSg)h@n@?4}g)}u&(XD46zC~GyTtyWd8VE#`OuYeyv&;TW+#>b1SazY0N z?73f@zj0=*3SIdzXbSf5HtM(17tf~}0)IezaO~76=O9?cB zBe!{_S`HRy*$*MeqwmHM|HK|_Siaz}>ok_pf{%X?`~$H(g}Jw0lwCXu!pqFejn1BN z4kX2QFeOnVE9h0r`zzVU25`F@7%^QRV~O4zxm>cmk(WoHNIpYiU| z(Eyoh15?NDCxJq0nrEi*?4?A&da7lyvbwU7cY`*;!okc+u;43aH#HVORWWa}Tx=M| ze8c~3oDiq;H`-9hqT~DJep6fmMdL7{IzGnlrxw}4HaY2u16EWG%&ZZ;7BQHIA~@!pM07IGgz ztz=u0ao)LSPUYwc2uW8tlfH(9y$8$zK3|(?hZovL!miVpq#^!EIoPwjVY@xTXvBta z5Pd2`52V%*Y?FpSKtPrD?T~14e)Ca!_Z>ZaHB$)%=@~xS6v2(t^X~D+t0Dom!>5*X4go=m2;%J=C1eg4*sU$^4c-G%|~CyxgkCK!vG->52u*QHsGMg zhYi1*(nwcVtH-Cyez$}Wtg}VkW;LZ0F*qqHL;X(b<{%p+6Jx*a7jz3S;h@+3YllD_SjoQN(*$Pf zH2y(kGYe{m@3~TObAd&(k!g5nUAb^T9@PK+)q1I^25lA)Huvlw7=NLU25w+c0<29;d5R5$NrXdTksm2x zoEJ@Rz`|Q^>V3LZ1=<08#5N6@81}}#cY+u!qqvuKL`>}9ToWl`0A^CGYe8HscTfvV z0U0+!=~_HF2=ra|^K@X^jd*63&^qJ0wxb|3{RK<PG;EL`{j1<;Q4x+xPfZU z$bDRw-svCEt9#%SSzVl~^O^Gp!g1*6fGunQfg7XQ@(l189@415Gqrl2QLN$X0+o{f zchiD|Vn;QIok&u6$S3=yBe&*1D}rUr!$v>3E)vltbLOBnJha^*DPP}mBY=gkf*_?`rlnPZ1p=j~gPl71aa3T$13LXp#VDhk?_yH2!v;O62?)65q~5UFub}-2cumeVw`QN|9*$_&1u<%o$Rk}7D^+W zHfe2{V}lEgkulrPG;M!tWhEa`*SYBrAQMr8b(efzT;gaWb;KT$vB_V0MI0TV6;&J!no z9w+|R5u+Mnh87?Q7zPuoHd<+@;(jj}aMsqgwku@B?zYl!SvRlU+41VlJbNy1f>i=g zwvzcvaul#=9U5ItRw)<#-aj!Z`K80Z3J%y>PK{L7wlJ9+gqu+Nzw? z0Zbtz>MI+XnH`WEVL*M^$FqN?oJABe`J-h{fMEtgfye-)Un>a1DRI*}VL&vysXjvD}^qNpHZ61nO!PI2d4p4Z1_LiKb&+OIll9-7P<9 z#&54>VudSSyleoXA$I?_>_*vX;r1lZ35-7Ws4{`3iMgPj`t$BGD*vGFZoPB{@~8`p zo3?J%{OVkzEHemDC8X6{K%TrHIAA9_Xwt3DKBv9@S=Swib zZ5xbik|CopnE0X318ad5f<$TGS@w|>EAX@ANPvm<2r2V+fAN|6#9zsSYWfm(`~ogD zUS3_Dv|nbuQ*T>Ubfe3LL#3rduUS-B0DTp;t^)yD$a<;g^PLm76O|qe_ti|r4pz9e z(##lKntz?lsK9-4rI`BKcwB@=(TzAoVne+nq$x#tY|Q)5l8mg{9NWR=;g+%L&Q>J@ z*Dn_j4*;`kDj|9Pk^KRX`rw4YbVRuE8<~g*$n*HVEI$x+_*@q4e+^i!A6yZO*?sDp z5L$J~B@v?{Qvcz^VY(j6kt(bNe$KfNRb}#;=A&PY>e3HG_47KMukiI*@2>bHPR+_5 z+@C?}n!y)J-L0lt-g^AWMLHBv%3PZC2|bF!pRyirY$?mI{NDaNZYZtKuQ)sI_TWnzCgc#`sT5hp20@~w>W~n=VsoV zdge|+P`b)RHFU_mPx+m&tz-3>9hf`4=omE5OgfSA92C@Zkl|(9tNWQN5_^OkeT*uq ze+^BEM-I0Hle-Yopt5fUsEgm|z^Hk7C1BjKKwhX;n6Zyld zmYBc5dx;slsTkih>7NGi5gEW>(Dw~dF%QsJXzkdthmwqCW6|c5)Vzr@iDQs?iR-eT z`+I2X#2+`fDkhNO_dajQJhUa)$HnEbx;h@vv%J`!w9N?=P=ug~tFhja0=@h=S3G+BH4NN1RBNfel$C0ex9PZqtE`nnJ0eK*Ed3u&=OBBOwhK_@rtaK z9vKk|>O#Hu-CC#(=&5^{gpVbn>;RL|&ts`z*B$S>zPYCITWa8ivPPcRY7J5El#>n2(wk z(TYFOxG|(h%+noND6bqF-#s4V=Uv&OiygPBTjleBdiE1w@@0hNtf8ujFhsc&@578l zs&K=+D*SZVBvaB-cvt2nO(c-6W1a5aj2Oy!@?K0$rKDxZDUu5tkP8Dp+gD@en*SD! z(`PeUYh29Pu0F?f8g;6Ie5hBxMkN8EBDXU&o$Q5Mx~7^&2(l+HX5)2|aeq&_D&UZF zr>?C0u5wX_l1EG2!81+{ZeaNc8B|8H-t;PMvK6C3DD0hsb5yB=Ujs^_7qnYQ(4tI0M^R2)Y{h|J2FhnBw4^q)`5%BZjyObA5u-ZpY{X@#lBed5VrY%ZKa0 z|F&?{dK|b)FaNLotuM|3IfUqgMx>Gd2Q`4}2IR$!e^%sxqQs?(yw3JS1yD{Ebu&ae z!|N%|03~^B72w)bkg(gInkM4hkTmIZkB)borBOro4=PAYD^8jw7gC5oBo?NfCTnl) ze_Ab28La?>_eMn6BkU>jngry2Vg8BC8d|R?wqii&-MDINNI)wcB(zW)F3;P;gcH|M zllxc5`6vn<@XnL3_(D+c%E}CbV@D^@F!D7$_leQU{129_>^h)@it~NA;?~HU z_tXOs6?_4%#nH!yr%-yU-9=BpLh`8Va-U-6D++pvp%CvQ)cXV_EqQ)XZW2nPHavVm?K^Ey%jJh`B`t!uB65hZPE>OazWPwamxvXKF>gC_JUz{*M3cf%3?x(xaXE_y zf-rvn$g4m-IWLb1em2{)qLUZ=iJQI3tgc5%r_OpHny(vAzdwRjE6K^mh8WOiyDMW! zEO!|Mo@pin#IN?1#%u;e-yRr7v|I>L+r+L0mLfxMdoo2pPI5a3xnKITn`pPZU-R^A z2lw)RNDZaS@tu+UHOr4+l`+vamU409t+=xgl5`g7A&Z=($HwF1Ut9a_nz-& z=BECx`Ymq)@`h1)dAo_LhZxA<`;{i|y9dZ3U(zQ+AQN;J5%Yz=h5hs1TOD-s^RiW0 z?_Mc<{+f)zI~eL^QiEjfs)qU}g#Fk4qG}yZOktOiMjf*6%M8Nm-MEY0HAOtUH_5FI zxV`M6^OuUtiOo+a@FokW3)}B!yeZ;9MdjZ(XiAe|r@Cg21{ig{&!*1a8Ga^+aX*JM zAU_8djA6SOY7O|S6TP)x_C@wA?9okDzPj+>7)m)4bR8goj+8j?W zYhWY=EcbVK*kD6I#rkOWLnS2IGGop6tsly*iwfD!Y_;MtcS^aV7z?Z#6=4~$gDT+v`${ljAKC?AOb@K;yFMJ2hM z_^rohK#D)Ry}efr1`pSHcnE3eD4fQW)Y}R5qdDvXW*Op6PJw$Wu*MZYUI_x}wJiAV zwm)u9`$Bb(tB(3CH6q10%uY8^m~%AgN##u>>&`Rq^jf|7R$_Gi)}r4UWev7HaDXw} z-qSo>0ZQj}xz}!B0cj;=X@UB-!TO`VFeY5}t?}H{S|`seL5lNE0ceAo?8c`;1R#|{ z7hd7Zd{{cu?s&;KYj+<-KM~d;0jL(9smbm&^UqjV8cAs*=U{Mo5)aRbEtungtW0ui zENS({7wWDz1#Io{H*LmwzfO#gifa=ALW(nz+VCx~6iPppQ*WT!X_1cj5?|Vg8aiJW z_HOI7w19D99$^5@7>Y$8m{P{aShB>TZov#u9@@gA!wukE2Qwd>%(b41OsVt>fqts- zgJ4koPXETVw^PvWhF2Y%l{hx%2QPDQ92OU^%UCg9XU)lfm;5h#XQZoC+ubJ7%1F3i z6?C^*kY**}TA+SC8~DfI_6qn_82(PhH8;?ezBW8jkQU)He)Ql2+MMO}4ZI)ni+%!9Q=a`}zg(IRD7)T|ruMzIg5cqB+_kOD^;PS}9UpTgw>>(Vg8|47_%}a` z_H8jV-aTSOi{BLn$VUz;f>(;jAeK)@Kfj8Z!pFeHtQn^wY8_?tJG}K)1XL z3{S?Zs}p!>XybFYp$OaHe)iE2(UcVXY5i$A@GS!~h585jFASG?GcUq)x3poT0{^~a z+v$pC{StWzRZ`^t*A<2<;9gX}X!%j$tJYhpiJo#ytE~@y9pF;Scg zeXb$4hXt^tjhhndRd~iui8bX(JNb%n*pCWQ_p#g@Y)b|s=xZO@-jB9Cq_KF1goR1U z=c8o6FqN-6;FBBmha1M#D2nk!;M3z)=@nL(jIuOK{!TeU8izHDcO|5A zuG~UA#dJ@)oCrv5;d;4G2L4ax9+i7D0x{$EMT}Wt!7&*={;hJ=Qc|b2W1gl@+I=Dg zMYUBtDoHdiq3Y$f)tgqSSAJf5=uz&N4SNBCx)&@ zq1pMWB^(}(rl!T4vSR;zTonr#Bdu+g5p^4coQg~W^+f^_!d^dz2s+3a-*$J}JwIr> t7QyO`KFLx3O5@forUQxo_m|f}Cnm5_Lr6uu5E$U|U0hDATtxrJ{{Xa<>^T4c diff --git a/src/pages/concepts/3_source_chain.md b/src/pages/concepts/3_source_chain.md index 4740309d0..3898882bf 100644 --- a/src/pages/concepts/3_source_chain.md +++ b/src/pages/concepts/3_source_chain.md @@ -54,7 +54,7 @@ The user's actions are stored in the source chain as **records**, which consist It's most helpful to think of an action as just that --- the _act of changing application state_. So instead of thinking of a source chain record as "a chat message", for instance, you could think of it as recording "the act of adding a chat message to your feed". So while it's useful for noun-like things like messages and images, it is also well-suited to things like real-time document edits, game moves, and transactions. You'll learn about all the different action types in the section on [CRUD](../6_crud_actions/) --- actions like 'create link' and 'delete entry'. -This journal starts with four special system records: +This journal starts with three special system records, followed optionally by some app data, and one final system record: ![](/assets/img/concepts/3.3-genesis-records-1-and-2.png){.sz60p} {.center} @@ -63,7 +63,8 @@ This journal starts with four special system records: 1. The **DNA hash**. Because the DNA's executable code constitutes the 'rules of the game' for a network of participants, this record claims that your Holochain runtime has seen and is abiding by those rules. 2. The agent's **membrane proof**. When a cell tries to join a network, it shares this entry with the existing peers, who check it and determine whether the cell should be allowed to join them. Examples: an invite code, an employee ID signed by the HR department, or a proof of paid subscription fees. 3. The **agent ID**. This contains your public key as your digital identity. The signatures on all subsequent records must match this public key in order to be valid. -4. The **init complete** action. This is a record meant for internal use, simply helping the conductor remind itself that it's activated the cell --- that is, the cell has been accepted into the network and the 'init' [lifecycle callback](../11_lifecycle_events) has been called in all coordinator zomes that define one. +4. Zero or more records containing application data that was written during the init process --- that is, by the `init` [lifecycle callback](../11_lifecycle_events) of any coordinator zomes that define one. +4. The **init complete** action. This is a record meant for internal use, simply helping the conductor remind itself that it's completely activated the cell by running all the coordinator zomes' `init` callbacks. After this come the records that record the user's actions. These include: From 8c2037969545a2982a1e2107fdfccd47988c0131 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Mon, 19 Feb 2024 10:09:02 -0800 Subject: [PATCH 20/47] generic version number for scaffolding CLI output --- src/pages/get-started/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/get-started/index.md b/src/pages/get-started/index.md index 0636fb459..1c175c746 100644 --- a/src/pages/get-started/index.md +++ b/src/pages/get-started/index.md @@ -349,7 +349,7 @@ You should see something like: ::: output-block ```text -holochain_scaffolding_cli 0.1.8 +holochain_scaffolding_cli x.y.z The list of subcommands for `hc scaffold` USAGE: From a44c3e48bddbddbc2d94e2519391291bb8cbf153 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Mon, 19 Feb 2024 15:00:27 -0800 Subject: [PATCH 21/47] small text changes --- src/pages/get-started/index.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/pages/get-started/index.md b/src/pages/get-started/index.md index 1c175c746..7e7548667 100644 --- a/src/pages/get-started/index.md +++ b/src/pages/get-started/index.md @@ -535,7 +535,9 @@ Updating crates.io index Fetch [===> ] ... ``` ::: - (then after download is done...) + +(then after download is done...) + ::: output-block ```text Downloaded 244 crates (46.7 MB) in 4.27s (largest was `windows` at 11.9 MB) @@ -687,7 +689,7 @@ After adding the `title` and `content` fields, press N when asked if ::: output-block ```text Which CRUD functions should be scaffolded (SPACE to select/unselect, ENTER to continue)? - Update +✔ Update ✔ Delete ``` ::: From 003e7b5c3896749510f1fae3cbd627f10f750a4b Mon Sep 17 00:00:00 2001 From: ThetaSinner Date: Tue, 20 Feb 2024 13:22:40 +0000 Subject: [PATCH 22/47] Add more details to the Holochain upgrade guide --- src/pages/get-started/upgrade-holochain.md | 178 ++++++++++++++++++--- 1 file changed, 159 insertions(+), 19 deletions(-) diff --git a/src/pages/get-started/upgrade-holochain.md b/src/pages/get-started/upgrade-holochain.md index 797a5af5e..4bf6d51f5 100644 --- a/src/pages/get-started/upgrade-holochain.md +++ b/src/pages/get-started/upgrade-holochain.md @@ -8,19 +8,23 @@ hide: For existing hApps that have been written for Holochain version 0.1, these are steps to upgrade to Holochain version 0.2. ::: -### Steps to upgrade Nix flake from Holochain version 0.1 to 0.2 +### Steps to update from Holochain version 0.1 to 0.2 in Holonix !!! note The following steps only apply to Nix flakes that have been either generated by the Holochain scaffolding tool or follow the recommended format as described in [Dev Tools Setup](../install-advanced){target=_blank}. !!! +#### Update your `flake.nix` using a command + In the root folder of the hApp to be upgraded execute the following command in a terminal: ```shell nix run nixpkgs#gnused -- -i 's/dir=versions\/0_1/dir=versions\/0_2/g' flake.nix ``` +#### Update your `flake.nix` manually + Alternatively open `flake.nix` in an editor. It should look like this: ```nix @@ -49,32 +53,168 @@ to versions.url = "github:holochain/holochain?dir=versions/0_2"; ``` -### Nix flake for Holochain v0.2 +#### Apply the update -The `flake.nix` for Holochain version 0.2 looks like this: +Updating the `flake.nix` won't make Nix use the new Holochain version when you next open a dev shell with `nix develop`. For the changes +to take effect you need to run: -```nix -{ - description = "My hApp"; +```shell +nix flake update +``` - inputs = { - nixpkgs.follows = "holonix/nixpkgs"; - versions.url = "github:holochain/holochain?dir=versions/0_2"; - holonix.url = "github:holochain/holochain"; - holonix.inputs.versions.follows = "versions"; - }; - ... -} +!!! note +This takes all updates from Holonix, including an update to the Rust version that Holonix is currently using. You should run this command +whenever you update your Cargo dependencies to the latest HDI/HDK versions. +!!! + +#### Open a dev shell and check the update has worked + +Open a dev shell like you normally would + +```shell +nix develop ``` -Before building the dev shell, **make sure to update the flake's input sources:** +Then check that Holochain is on a 0.2.x version ```shell -nix flake update +holochain --version ``` -Now you can build and execute the dev shell: +This should print something like `holochain 0.2.6`. It is fine for the last number to be higher. It's the minor version, the `2` that tells you that you've successfully updated from Holochain version 0.1 to 0.2 in Holonix. + +### Update NPM dependencies + +!!! note +The following steps only apply to projects that have been either generated by the Holochain scaffolding tool +or have followed the same folder layout. Otherwise you will need to adjust the commands. +!!! + +#### Update the `@holochain/client` + +In your project's `ui/package.json` and `tests/package.json` you will find a dependency on `@holochain/client`. These should be using `0.12.x`, which is the version compatible with Holochain 0.1. To work with Holochain 0.2, you need to update to `0.16.x`. + +You can always check what versions of the Holochain client are available on the [NPM registry](https://www.npmjs.com/package/@holochain/client?activeTab=versions) and you can find out what versions are compatible with a Holochain version by checking the [project's documentation](https://github.com/holochain/holochain-client-js). + +To update the Holochain client for the UI, you can run + +``` +npm install --workspace ui @holochain/client@^0.16.9 +``` + +and for the tests you can run + +``` +npm install --workspace tests @holochain/client@^0.16.9 +``` + +!!!note +This will not install version `0.16.9` if a newer version has been released. Check your `package-lock.json` to see exactly what version got installed. It will be `0.16.x` because the `^` constraint only permits patch upgrades, so you will get a version that's compatible with Holochain 0.2. +!!! + +#### Update `@holochain/tryorama` + +In your project's `tests/package.json` you will find a dependency on `@holochain/tryorama`. This should be using `0.11.x`, which is the version compatible with Holochain 0.1. To work with Holochain 0.2, you need to update to `0.15.x`. + +You can always check what versions of Tryorama are available on the [NPM registry](https://www.npmjs.com/package/@holochain/tryorama?activeTab=versions) and you can find out what versions are compatible with a Holochain version by checking the [project's documentation](https://github.com/holochain/tryorama?tab=readme-ov-file#compatibility). + +To update Tryorama, you can run + +``` +npm install --workspace tests @holochain/tryorama@^0.15.2 +``` + +!!!note +This will not install version `0.15.2` if a newer version has been released. Check your `package-lock.json` to see exactly what version got installed. It will be `0.15.x` because the `^` constraint only permits patch upgrades, so you will get a version that's compatible with Holochain 0.2. +!!! + +### Update Cargo dependencies + +This section is harder to write a general guide for because it's common for happs to add dependencies on other Holochain crates. If you have added other dependencies than the `hdi` and `hdk` to your project then you will need to update those too but figuring out which versions you +need is not described here. There is a hint at the end of the section. + +#### Update the HDK and the HDI + +Open your project's `Cargo.toml` in an editor and look for the `[workspace.dependencies]` section. Here you should find something like + +``` +[workspace.dependencies] +hdi = "=0.2.6" +hdk = "=0.1.6" +``` + +Change these to point at their latest versions. At the time of writing this would be + +``` +[workspace.dependencies] +hdi = "=0.3.6" +hdk = "=0.2.6" +``` + +Please check the latest version for these on their respective pages on the `crates.io` registry, [HDK](https://crates.io/crates/hdk/versions) and [HDI](https://crates.io/crates/hdi/versions). You need to use `0.2.x` for the hdk and `0.3.x` for the `HDI`, so you are looking for the latest patch version that is available for each. + +Once you've updated your `Cargo.toml` you need to update your `Cargo.lock` and check whether your project is building. To do this in one step +you can run ```shell -nix develop -``` \ No newline at end of file +cargo build +``` + +#### Dealing with API changes in the HDK and HDI + +You are likely to run into API changes in the HDK and HDI at this point. You can check the [Holochain changelog](https://github.com/holochain/holochain/blob/develop-0.2/CHANGELOG.md) to see what has changed. In some cases there will be guidance for what you need to change. + +As an example, you can no longer convert an `AnyLinkableHash` directly to an `ActionHash` using `From`. That is because an `AnyLinkableHash` may not be an `ActionHash`, so we now provide a `TryFrom` instead to make this clear. + +You might get an error that looks something like + +``` +error[E0277]: the trait bound `HoloHash: From>` is not satisfied + --> dnas/test/zomes/integrity/tinker/src/test.rs:34:23 + | +34 | let action_hash = ActionHash::from(base_address); + | ^^^^^^^^^^ the trait `From>` is not implemented for `HoloHash` +``` + +You would need to change your code from + +```rust +let action_hash = ActionHash::from(base_address); +``` + +To something like + +```rust +let action_hash = ActionHash::try_from(base_address).map_err(|_| { + wasm_error!( + WasmErrorInner::Guest(String::from("Failed to convert base_address to ActionHash")) + ) +})?; +``` + +The specific changelog entry for this change can be found [here](https://github.com/holochain/holochain/blob/develop-0.2/CHANGELOG.md#holo_hash-020). + +If you have trouble resolving the build issues or the changelog doesn't give you enough information about what has changed then please reach out on Discord or open a [Github issue](https://github.com/holochain/holochain/issues/new/choose). + +#### Updating other dependencies + +If you depend on other Holochain crates, then you will need to find compatible versions to update to. You can check available versions on `crates.io` by searching for them by name. You can also check the [Holochain changelog](https://github.com/holochain/holochain/blob/develop-0.2/CHANGELOG.md) to see what versions have been released together. Note that we don't release crates unless they have changes, so if you don't see the crate you're looking for in a release, then please check the previous releases for the last time we released it. If you get stuck or have build issues, then please reach out on Discord or open a [Github issue](https://github.com/holochain/holochain/issues/new/choose). + +#### Bonus: use `resolver = "2"` in your Cargo workspace + +Project's scaffolded for Holochain 0.1 didn't include this, but new project's scaffolded for Holochain 0.2 an onwards do. You can read about +this configuration option [here](https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions). The quick summary is that it changes +the algorithm that Cargo uses for resolving crate features. We use this on the Holochain project and recommend it for hApp projects because it +results in less surprising behaviour when adding dependencies on Holchain crates. + +In your project's `Cargo.toml`, look for the `[workspace]` section. Add the `resolver = "2"` option here. + +You should check that your project still builds correctly with `cargo build` and probably run your tests too! If everything is still working then you're done, you can just leave this option set and it should help you avoid some future build problems. + +### Next steps + +You should check that your project builds, tests are passing and that anything else your CI will check is working. You should also check that your hApp is still working because static checks and tests might not catch changes that are required in your UI. + +For general project health, you should check if any other dependencies in your project need an update. Please refer to NPM and Cargo documentation for this. + +That should be everything, you can now develop against Holochain 0.2! Good luck, and if you need help then please do get in touch on Discord or open a [Github issue](https://github.com/holochain/holochain/issues/new/choose). From 857fec724a30edf1492a74f43c18c63602dc65e2 Mon Sep 17 00:00:00 2001 From: ThetaSinner Date: Tue, 20 Feb 2024 13:24:36 +0000 Subject: [PATCH 23/47] Correct typos --- src/pages/get-started/upgrade-holochain.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/get-started/upgrade-holochain.md b/src/pages/get-started/upgrade-holochain.md index 4bf6d51f5..db5d091d3 100644 --- a/src/pages/get-started/upgrade-holochain.md +++ b/src/pages/get-started/upgrade-holochain.md @@ -130,7 +130,7 @@ This will not install version `0.15.2` if a newer version has been released. Che ### Update Cargo dependencies -This section is harder to write a general guide for because it's common for happs to add dependencies on other Holochain crates. If you have added other dependencies than the `hdi` and `hdk` to your project then you will need to update those too but figuring out which versions you +This section is harder to write a general guide for because it's common for hApps to add dependencies on other Holochain crates. If you have added other dependencies than the `hdi` and `hdk` to your project then you will need to update those too but figuring out which versions you need is not described here. There is a hint at the end of the section. #### Update the HDK and the HDI @@ -205,7 +205,7 @@ If you depend on other Holochain crates, then you will need to find compatible v Project's scaffolded for Holochain 0.1 didn't include this, but new project's scaffolded for Holochain 0.2 an onwards do. You can read about this configuration option [here](https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions). The quick summary is that it changes the algorithm that Cargo uses for resolving crate features. We use this on the Holochain project and recommend it for hApp projects because it -results in less surprising behaviour when adding dependencies on Holchain crates. +results in less surprising behavior when adding dependencies on Holochain crates. In your project's `Cargo.toml`, look for the `[workspace]` section. Add the `resolver = "2"` option here. From eec9d60f8169f2a54682b99e8c87a01ae9fab30d Mon Sep 17 00:00:00 2001 From: ThetaSinner Date: Tue, 20 Feb 2024 13:37:41 +0000 Subject: [PATCH 24/47] Add note about tryorama sleep vs dhtSync --- src/pages/get-started/upgrade-holochain.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/pages/get-started/upgrade-holochain.md b/src/pages/get-started/upgrade-holochain.md index db5d091d3..305e60f17 100644 --- a/src/pages/get-started/upgrade-holochain.md +++ b/src/pages/get-started/upgrade-holochain.md @@ -128,6 +128,24 @@ npm install --workspace tests @holochain/tryorama@^0.15.2 This will not install version `0.15.2` if a newer version has been released. Check your `package-lock.json` to see exactly what version got installed. It will be `0.15.x` because the `^` constraint only permits patch upgrades, so you will get a version that's compatible with Holochain 0.2. !!! +#### Bonus: Switch from `sleep` to `dhtSync` in Tryorama tests + +In the version of Tryorama that was compatible with 0.1 you had to use the `sleep` function when creating data with one player and waiting for it to be visible to other players. With the version of Tryorama you have just upgraded to, there is a new way to do this using the `dhtSync` function instead. + +For example, if you are writing a test with two players then you can replace + +```js +await sleep(3000); +``` + +with a call that will actually wait for data to be synced between the two players. + +```js +await dhtSync([alice, bob], alice.cells[0].cell_id[0]); +``` + +This makes tests much more reliable. It is faster too because you don't have to wait for a long time to be safe, you can proceed as soon as the two players have synced their DHTs. + ### Update Cargo dependencies This section is harder to write a general guide for because it's common for hApps to add dependencies on other Holochain crates. If you have added other dependencies than the `hdi` and `hdk` to your project then you will need to update those too but figuring out which versions you From 86d9fe9b45fa6eb0439a176d3447b814e1daa438 Mon Sep 17 00:00:00 2001 From: ThetaSinner Date: Tue, 20 Feb 2024 13:42:06 +0000 Subject: [PATCH 25/47] Add note about client upgrade --- src/pages/get-started/upgrade-holochain.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/pages/get-started/upgrade-holochain.md b/src/pages/get-started/upgrade-holochain.md index 305e60f17..5ec637fe4 100644 --- a/src/pages/get-started/upgrade-holochain.md +++ b/src/pages/get-started/upgrade-holochain.md @@ -112,6 +112,18 @@ npm install --workspace tests @holochain/client@^0.16.9 This will not install version `0.16.9` if a newer version has been released. Check your `package-lock.json` to see exactly what version got installed. It will be `0.16.x` because the `^` constraint only permits patch upgrades, so you will get a version that's compatible with Holochain 0.2. !!! +One notable change in the client is that it now requires a URL rather than a string when connecting to Holochain. You should change + +```js +this.client = await AppAgentWebsocket.connect('', 'myHapp'); +``` + +To this + +```js +this.client = await AppAgentWebsocket.connect(new URL('http://UNUSED'), 'myHapp'); +``` + #### Update `@holochain/tryorama` In your project's `tests/package.json` you will find a dependency on `@holochain/tryorama`. This should be using `0.11.x`, which is the version compatible with Holochain 0.1. To work with Holochain 0.2, you need to update to `0.15.x`. From 765480538ef826e53bff93fee73824910f5a5d4e Mon Sep 17 00:00:00 2001 From: ThetaSinner Date: Tue, 20 Feb 2024 14:44:02 +0000 Subject: [PATCH 26/47] Update src/pages/get-started/upgrade-holochain.md Co-authored-by: Stefan Junker <1181362+steveej@users.noreply.github.com> --- src/pages/get-started/upgrade-holochain.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/get-started/upgrade-holochain.md b/src/pages/get-started/upgrade-holochain.md index 5ec637fe4..197fd8ade 100644 --- a/src/pages/get-started/upgrade-holochain.md +++ b/src/pages/get-started/upgrade-holochain.md @@ -140,7 +140,7 @@ npm install --workspace tests @holochain/tryorama@^0.15.2 This will not install version `0.15.2` if a newer version has been released. Check your `package-lock.json` to see exactly what version got installed. It will be `0.15.x` because the `^` constraint only permits patch upgrades, so you will get a version that's compatible with Holochain 0.2. !!! -#### Bonus: Switch from `sleep` to `dhtSync` in Tryorama tests +#### Recommended: Switch from `sleep` to `dhtSync` in Tryorama tests In the version of Tryorama that was compatible with 0.1 you had to use the `sleep` function when creating data with one player and waiting for it to be visible to other players. With the version of Tryorama you have just upgraded to, there is a new way to do this using the `dhtSync` function instead. From 790e0b981bc08e7ffd053305e8d463c5083ef292 Mon Sep 17 00:00:00 2001 From: ThetaSinner Date: Tue, 20 Feb 2024 14:48:40 +0000 Subject: [PATCH 27/47] Update src/pages/get-started/upgrade-holochain.md Co-authored-by: Stefan Junker <1181362+steveej@users.noreply.github.com> --- src/pages/get-started/upgrade-holochain.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/get-started/upgrade-holochain.md b/src/pages/get-started/upgrade-holochain.md index 197fd8ade..36cec9409 100644 --- a/src/pages/get-started/upgrade-holochain.md +++ b/src/pages/get-started/upgrade-holochain.md @@ -230,7 +230,7 @@ If you have trouble resolving the build issues or the changelog doesn't give you If you depend on other Holochain crates, then you will need to find compatible versions to update to. You can check available versions on `crates.io` by searching for them by name. You can also check the [Holochain changelog](https://github.com/holochain/holochain/blob/develop-0.2/CHANGELOG.md) to see what versions have been released together. Note that we don't release crates unless they have changes, so if you don't see the crate you're looking for in a release, then please check the previous releases for the last time we released it. If you get stuck or have build issues, then please reach out on Discord or open a [Github issue](https://github.com/holochain/holochain/issues/new/choose). -#### Bonus: use `resolver = "2"` in your Cargo workspace +#### Recommended: use `resolver = "2"` in your Cargo workspace Project's scaffolded for Holochain 0.1 didn't include this, but new project's scaffolded for Holochain 0.2 an onwards do. You can read about this configuration option [here](https://doc.rust-lang.org/cargo/reference/resolver.html#resolver-versions). The quick summary is that it changes From 12123f36ca73f4e400f299cbc7f64a6e09526536 Mon Sep 17 00:00:00 2001 From: ThetaSinner Date: Tue, 20 Feb 2024 15:02:21 +0000 Subject: [PATCH 28/47] Add instructions for updating Node.js --- src/pages/get-started/upgrade-holochain.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/pages/get-started/upgrade-holochain.md b/src/pages/get-started/upgrade-holochain.md index 36cec9409..3cb3545d1 100644 --- a/src/pages/get-started/upgrade-holochain.md +++ b/src/pages/get-started/upgrade-holochain.md @@ -67,6 +67,28 @@ This takes all updates from Holonix, including an update to the Rust version tha whenever you update your Cargo dependencies to the latest HDI/HDK versions. !!! +#### Optional: Update your Node.js version + +Check if your `flake.nix` still contains the Node.js package that was included by the scaffolding. It will look something like + +```nix +packages = [ + pkgs.nodejs-18_x +]; +``` + +Change this to the latest long-term support (LTS) release of Node.js. You can find all releases [here](https://github.com/nodejs/node/releases) and check which version is currently the LTS version. At the time of writing this is Node.js 20 so you would update your packages to look something like + +```nix +packages = [ + pkgs.nodejs_20 +]; +``` + +To find the package name for a given Node.js release you can search on the [Nix package listing](https://search.nixos.org/packages). + +Holochain's TypeScript/JavaScript code is tested on the LTS version of Node.js that is the recommended version for building hApps. You can choose to use a different version but you may run into bugs we aren't aware of yet, so please let us know if you do! + #### Open a dev shell and check the update has worked Open a dev shell like you normally would From eaa01c8d6d26b27f6deae6a3d3f23d8ea6143bbf Mon Sep 17 00:00:00 2001 From: ThetaSinner Date: Tue, 20 Feb 2024 15:37:42 +0000 Subject: [PATCH 29/47] Add instructions for switching to hc-spin --- src/pages/get-started/upgrade-holochain.md | 39 ++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/src/pages/get-started/upgrade-holochain.md b/src/pages/get-started/upgrade-holochain.md index 3cb3545d1..4254a358a 100644 --- a/src/pages/get-started/upgrade-holochain.md +++ b/src/pages/get-started/upgrade-holochain.md @@ -180,6 +180,45 @@ await dhtSync([alice, bob], alice.cells[0].cell_id[0]); This makes tests much more reliable. It is faster too because you don't have to wait for a long time to be safe, you can proceed as soon as the two players have synced their DHTs. +#### Recommended: Switch from `hc-launch` to `hc-spin` for running happs + +The `hc-launch` tool that came with hApps scaffolded for Holochain 0.1 is still available but we are now recommending a new tool which does the same job but with a better developer experience. To switch to `hc-spin` you will need to add it as an NPM dependency by running + +```shell +npm install --save-dev @holochain/hc-spin@^0.200.0 +``` + +Then you will need to update the `scripts` section of your project's root `package.json`. These are often customised so we can't give you a simple command to make this change. If you scaffolded a new project you would get a scripts section that looks like this, at the time of writing + +```json +{ + ..., + "scripts": { + "start": "AGENTS=2 BOOTSTRAP_PORT=$(port) SIGNAL_PORT=$(port) npm run network", + "network": "hc s clean && npm run build:happ && UI_PORT=8888 concurrently \"npm start -w ui\" \"npm run launch:happ\" \"holochain-playground\"", + "test": "npm run build:zomes && hc app pack workdir --recursive && npm t -w tests", + "launch:happ": "hc-spin -n $AGENTS --ui-port $UI_PORT workdir/check_scripts.happ", + "start:tauri": "AGENTS=2 BOOTSTRAP_PORT=$(port) SIGNAL_PORT=$(port) npm run network:tauri", + "network:tauri": "hc s clean && npm run build:happ && UI_PORT=8888 concurrently \"npm start -w ui\" \"npm run launch:tauri\" \"holochain-playground\"", + "launch:tauri": "concurrently \"hc run-local-services --bootstrap-port $BOOTSTRAP_PORT --signal-port $SIGNAL_PORT\" \"echo pass | RUST_LOG=warn hc launch --piped -n $AGENTS workdir/check_scripts.happ --ui-port $UI_PORT network --bootstrap http://127.0.0.1:\"$BOOTSTRAP_PORT\" webrtc ws://127.0.0.1:\"$SIGNAL_PORT\"\"", + "package": "npm run build:happ && npm run package -w ui && hc web-app pack workdir --recursive", + "build:happ": "npm run build:zomes && hc app pack workdir --recursive", + "build:zomes": "RUSTFLAGS='' CARGO_TARGET_DIR=target cargo build --release --target wasm32-unknown-unknown" + }, + ... +} +``` + +You can get the latest version of these scripts yourself by running the following commands + +```shell +nix run --override-input versions "github:holochain/holochain?dir=versions/0_2" github:/holochain/holochain#hc-scaffold -- web-app --template svelte --setup-nix true check_scripts +cd check_scripts +cat package.json +``` + +The scripts which have a postfix of `:tauri` are similar to the scripts you will already have. The new scripts for `start`, `network` and `launch` are now set up around `hc-spin`. It's up to you how you want to merge these scripts with your project. If you haven't made any customisations then feel free to copy the sample scripts above. Please take care to update the hApp name to match yours. I have called my hApp `check_scripts` so you would replace that string with your happ name. + ### Update Cargo dependencies This section is harder to write a general guide for because it's common for hApps to add dependencies on other Holochain crates. If you have added other dependencies than the `hdi` and `hdk` to your project then you will need to update those too but figuring out which versions you From 2ddc56fe97f1d578b8cdbb03c3d4a57dca0bf2c6 Mon Sep 17 00:00:00 2001 From: ThetaSinner Date: Tue, 20 Feb 2024 15:39:57 +0000 Subject: [PATCH 30/47] Use freedom spellings --- src/pages/get-started/upgrade-holochain.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/get-started/upgrade-holochain.md b/src/pages/get-started/upgrade-holochain.md index 4254a358a..c2f9a2827 100644 --- a/src/pages/get-started/upgrade-holochain.md +++ b/src/pages/get-started/upgrade-holochain.md @@ -180,7 +180,7 @@ await dhtSync([alice, bob], alice.cells[0].cell_id[0]); This makes tests much more reliable. It is faster too because you don't have to wait for a long time to be safe, you can proceed as soon as the two players have synced their DHTs. -#### Recommended: Switch from `hc-launch` to `hc-spin` for running happs +#### Recommended: Switch from `hc-launch` to `hc-spin` for running hApps The `hc-launch` tool that came with hApps scaffolded for Holochain 0.1 is still available but we are now recommending a new tool which does the same job but with a better developer experience. To switch to `hc-spin` you will need to add it as an NPM dependency by running @@ -188,7 +188,7 @@ The `hc-launch` tool that came with hApps scaffolded for Holochain 0.1 is still npm install --save-dev @holochain/hc-spin@^0.200.0 ``` -Then you will need to update the `scripts` section of your project's root `package.json`. These are often customised so we can't give you a simple command to make this change. If you scaffolded a new project you would get a scripts section that looks like this, at the time of writing +Then you will need to update the `scripts` section of your project's root `package.json`. These are often customized so we can't give you a simple command to make this change. If you scaffolded a new project you would get a scripts section that looks like this, at the time of writing ```json { @@ -217,7 +217,7 @@ cd check_scripts cat package.json ``` -The scripts which have a postfix of `:tauri` are similar to the scripts you will already have. The new scripts for `start`, `network` and `launch` are now set up around `hc-spin`. It's up to you how you want to merge these scripts with your project. If you haven't made any customisations then feel free to copy the sample scripts above. Please take care to update the hApp name to match yours. I have called my hApp `check_scripts` so you would replace that string with your happ name. +The scripts which have a postfix of `:tauri` are similar to the scripts you will already have. The new scripts for `start`, `network` and `launch` are now set up around `hc-spin`. It's up to you how you want to merge these scripts with your project. If you haven't made any customizations then feel free to copy the sample scripts above. Please take care to update the hApp name to match yours. I have called my hApp `check_scripts` so you would replace that string with your happ name. ### Update Cargo dependencies From 0f59778d5be17e001b31df510448c3d028015ba0 Mon Sep 17 00:00:00 2001 From: ThetaSinner Date: Tue, 20 Feb 2024 15:40:35 +0000 Subject: [PATCH 31/47] Use recent hc-spin --- src/pages/get-started/upgrade-holochain.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/get-started/upgrade-holochain.md b/src/pages/get-started/upgrade-holochain.md index c2f9a2827..a531ebe12 100644 --- a/src/pages/get-started/upgrade-holochain.md +++ b/src/pages/get-started/upgrade-holochain.md @@ -185,7 +185,7 @@ This makes tests much more reliable. It is faster too because you don't have to The `hc-launch` tool that came with hApps scaffolded for Holochain 0.1 is still available but we are now recommending a new tool which does the same job but with a better developer experience. To switch to `hc-spin` you will need to add it as an NPM dependency by running ```shell -npm install --save-dev @holochain/hc-spin@^0.200.0 +npm install --save-dev @holochain/hc-spin@^0.200.10 ``` Then you will need to update the `scripts` section of your project's root `package.json`. These are often customized so we can't give you a simple command to make this change. If you scaffolded a new project you would get a scripts section that looks like this, at the time of writing From 28a12e32122df83d6159a37c6b2be38ce7186d2e Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Wed, 21 Feb 2024 15:00:50 -0800 Subject: [PATCH 32/47] update example Svelte code to scaffolding 0.200x --- src/pages/get-started/index.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/pages/get-started/index.md b/src/pages/get-started/index.md index 7e7548667..6b0f08b7e 100644 --- a/src/pages/get-started/index.md +++ b/src/pages/get-started/index.md @@ -1084,13 +1084,14 @@ Your `App.svelte` file will have three sections: import { clientContext } from './contexts'; let client: AppAgentClient | undefined; + let loading = true; - $: client, loading; onMount(async () => { - // We pass '' as url because it will dynamically be replaced in launcher environments - client = await AppAgentWebsocket.connect('', 'forum'); + // We pass an unused string as the url because it will dynamically be replaced in launcher environments + client = await AppAgentWebsocket.connect(new URL('https://UNUSED'), 'forum'); + loading = false; }); From 94a11e89d59613b1f3d486acd9dc262984da800b Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Thu, 22 Feb 2024 07:57:19 -0800 Subject: [PATCH 33/47] Apply suggestions from code review Co-authored-by: ThetaSinner --- src/pages/get-started/install-advanced.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pages/get-started/install-advanced.md b/src/pages/get-started/install-advanced.md index e156f0bc1..b363f8738 100644 --- a/src/pages/get-started/install-advanced.md +++ b/src/pages/get-started/install-advanced.md @@ -25,19 +25,19 @@ The flake-based one-liner to get you an ad-hoc Holonix shell looks like this: nix develop github:holochain/holochain#holonix ``` -To get ad-hoc shell with a specific version of Holochain, use the flag `--override-input versions `. This example gives you the newest release in the unstable 0.2.x series: +To get an ad-hoc shell with a specific version of Holochain, use the flag `--override-input versions `. This example gives you the newest release in the unstable 0.2.x series: ```shell -nix develop --override-input versions ./versions/0_2 .#holonix +nix develop --override-input versions "github:holochain/holochain?dir=versions/0_2" "github:holochain/holochain#holonix" ``` And this example gives you the newest weekly developer snapshot: ```shell -nix develop --override-input versions ./versions/weekly .#holonix +nix develop --override-input versions "github:holochain/holochain?dir=versions/weekly" "github:holochain/holochain#holonix" ``` -Take a look at the [`versions/` folder in the `holochain/holochain` repository](https://github.com/holochain/holochain/tree/develop/versions) to find out what versions you can target. Each subfolder is a valid version number to use in the above command, and the `flake.nix` file inside the subfolder shows the specific release tag for each component that will be downloaded. +Take a look at the [`versions/` folder in the `holochain/holochain` repository](https://github.com/holochain/holochain/tree/develop/versions) to find out what versions you can target. Each subfolder is a valid version to use in the above command, and the `flake.nix` file inside the subfolder shows the specific release tags that will be used for Holochain and the Lair Keystore. The launcher and scaffolding tools live in separate repos, so you will get the latest release of those tools that are available on their respective release branches referenced in the version-specific `flake.nix` file. Note that you may temporarily see older versions than the current tip of the referenced release branch because our automation updates the `flake.lock` separately, so that file is the absolute source of truth for what versions you will get. #### Enabling Flake features on your system From fa26a9890e9024b10b6f1814811fc33e5b2aa962 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Thu, 22 Feb 2024 10:36:34 -0800 Subject: [PATCH 34/47] be specific about version numbers --- src/pages/get-started/install-advanced.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/pages/get-started/install-advanced.md b/src/pages/get-started/install-advanced.md index b363f8738..886d84e26 100644 --- a/src/pages/get-started/install-advanced.md +++ b/src/pages/get-started/install-advanced.md @@ -25,13 +25,13 @@ The flake-based one-liner to get you an ad-hoc Holonix shell looks like this: nix develop github:holochain/holochain#holonix ``` -To get an ad-hoc shell with a specific version of Holochain, use the flag `--override-input versions `. This example gives you the newest release in the unstable 0.2.x series: +By default, the above one-liner will give you the latest recommended release (currently from the 0.2.x series). To get an ad-hoc shell with a specific version of Holochain, use the flag `--override-input versions `. This example gives you the next release candidate in the 0.2.x series: ```shell -nix develop --override-input versions "github:holochain/holochain?dir=versions/0_2" "github:holochain/holochain#holonix" +nix develop --override-input versions "github:holochain/holochain?dir=versions/0_2_rc" "github:holochain/holochain#holonix" ``` -And this example gives you the newest weekly developer snapshot: +And this example gives you the newest weekly developer snapshot (currently from the 0.3.x series): ```shell nix develop --override-input versions "github:holochain/holochain?dir=versions/weekly" "github:holochain/holochain#holonix" From e32ee597ca5c02a30cda54c70ba5e0831bac28b2 Mon Sep 17 00:00:00 2001 From: MatthewNichols Date: Fri, 23 Feb 2024 17:42:20 +0100 Subject: [PATCH 35/47] Updating pagefind to 1.x. --- package-lock.json | 183 +++++++++++++++++++++++++++---------------- package.json | 4 +- src/pages/search.njk | 4 +- 3 files changed, 120 insertions(+), 71 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0389f4efb..78edad2f9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,7 @@ "version": "1.0.0", "license": "GPL-3.0-or-later", "dependencies": { - "pagefind": "^0.12.0" + "pagefind": "1.0.4" }, "devDependencies": { "@11ty/eleventy": "^2.0.0", @@ -247,6 +247,66 @@ "node": ">= 8" } }, + "node_modules/@pagefind/darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.0.4.tgz", + "integrity": "sha512-2OcthvceX2xhm5XbgOmW+lT45oLuHqCmvFeFtxh1gsuP5cO8vcD8ZH8Laj4pXQFCcK6eAdSShx+Ztx/LsQWZFQ==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@pagefind/darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.0.4.tgz", + "integrity": "sha512-xkdvp0D9Ld/ZKsjo/y1bgfhTEU72ITimd2PMMQtts7jf6JPIOJbsiErCvm37m/qMFuPGEq/8d+fZ4pydOj08HQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "darwin" + ] + }, + "node_modules/@pagefind/linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.0.4.tgz", + "integrity": "sha512-jGBrcCzIrMnNxLKVtogaQyajVfTAXM59KlBEwg6vTn8NW4fQ6nuFbbhlG4dTIsaamjEM5e8ZBEAKZfTB/qd9xw==", + "cpu": [ + "arm64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@pagefind/linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.0.4.tgz", + "integrity": "sha512-LIn/QcvcEtLEBqKe5vpSbSC2O3fvqbRCWOTIklslqSORisCsvzsWbP6j+LYxE9q0oWIfkdMoWV1vrE/oCKRxHg==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "linux" + ] + }, + "node_modules/@pagefind/windows-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.0.4.tgz", + "integrity": "sha512-QlBCVeZfj9fc9sbUgdOz76ZDbeK4xZihOBAFqGuRJeChfM8pnVeH9iqSnXgO3+m9oITugTf7PicyRUFAG76xeQ==", + "cpu": [ + "x64" + ], + "optional": true, + "os": [ + "win32" + ] + }, "node_modules/@selderee/plugin-htmlparser2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.6.0.tgz", @@ -362,17 +422,6 @@ "node": ">=0.4.0" } }, - "node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, "node_modules/ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -1038,6 +1087,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "dependencies": { "ms": "2.1.2" }, @@ -1928,18 +1978,6 @@ "node": ">= 0.10" } }, - "node_modules/https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, "node_modules/ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -2734,7 +2772,8 @@ "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "node_modules/multimatch": { "version": "5.0.0", @@ -3165,16 +3204,18 @@ } }, "node_modules/pagefind": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-0.12.0.tgz", - "integrity": "sha512-LHUmlYYweBM6/rK1G+7z2q2WjYeycrB7g5Kuw0w6yMkYztzsEdO2Qj2pJ3z8gsWV8eJsYQyAGOAdqE3SZWlCqA==", - "hasInstallScript": true, - "dependencies": { - "https-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.1.0" - }, + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.0.4.tgz", + "integrity": "sha512-oRIizYe+zSI2Jw4zcMU0ebDZm27751hRFiSOBLwc1OIYMrsZKk+3m8p9EVaOmc6zZdtqwwdilNUNxXvBeHcP9w==", "bin": { - "pagefind": "lib/index.js" + "pagefind": "lib/runner/bin.cjs" + }, + "optionalDependencies": { + "@pagefind/darwin-arm64": "1.0.4", + "@pagefind/darwin-x64": "1.0.4", + "@pagefind/linux-arm64": "1.0.4", + "@pagefind/linux-x64": "1.0.4", + "@pagefind/windows-x64": "1.0.4" } }, "node_modules/param-case": { @@ -4072,11 +4113,6 @@ "any-promise": "^0.1.0" } }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, "node_modules/prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", @@ -5316,6 +5352,36 @@ "fastq": "^1.6.0" } }, + "@pagefind/darwin-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.0.4.tgz", + "integrity": "sha512-2OcthvceX2xhm5XbgOmW+lT45oLuHqCmvFeFtxh1gsuP5cO8vcD8ZH8Laj4pXQFCcK6eAdSShx+Ztx/LsQWZFQ==", + "optional": true + }, + "@pagefind/darwin-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.0.4.tgz", + "integrity": "sha512-xkdvp0D9Ld/ZKsjo/y1bgfhTEU72ITimd2PMMQtts7jf6JPIOJbsiErCvm37m/qMFuPGEq/8d+fZ4pydOj08HQ==", + "optional": true + }, + "@pagefind/linux-arm64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.0.4.tgz", + "integrity": "sha512-jGBrcCzIrMnNxLKVtogaQyajVfTAXM59KlBEwg6vTn8NW4fQ6nuFbbhlG4dTIsaamjEM5e8ZBEAKZfTB/qd9xw==", + "optional": true + }, + "@pagefind/linux-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.0.4.tgz", + "integrity": "sha512-LIn/QcvcEtLEBqKe5vpSbSC2O3fvqbRCWOTIklslqSORisCsvzsWbP6j+LYxE9q0oWIfkdMoWV1vrE/oCKRxHg==", + "optional": true + }, + "@pagefind/windows-x64": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.0.4.tgz", + "integrity": "sha512-QlBCVeZfj9fc9sbUgdOz76ZDbeK4xZihOBAFqGuRJeChfM8pnVeH9iqSnXgO3+m9oITugTf7PicyRUFAG76xeQ==", + "optional": true + }, "@selderee/plugin-htmlparser2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.6.0.tgz", @@ -5406,14 +5472,6 @@ "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", "dev": true }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } - }, "ansi-regex": { "version": "5.0.1", "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", @@ -5891,6 +5949,7 @@ "version": "4.3.4", "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, "requires": { "ms": "2.1.2" } @@ -6540,15 +6599,6 @@ "integrity": "sha512-TScO04soylRN9i/QdOdgZyhydXg9z6XdaGzEyOgDKycePeDeTT4KvigjBcI+tgfTlieLWauGORMq5F1eIDa+1w==", "dev": true }, - "https-proxy-agent": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", - "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "requires": { - "agent-base": "6", - "debug": "4" - } - }, "ignore": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", @@ -7148,7 +7198,8 @@ "ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true }, "multimatch": { "version": "5.0.0", @@ -7463,12 +7514,15 @@ } }, "pagefind": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-0.12.0.tgz", - "integrity": "sha512-LHUmlYYweBM6/rK1G+7z2q2WjYeycrB7g5Kuw0w6yMkYztzsEdO2Qj2pJ3z8gsWV8eJsYQyAGOAdqE3SZWlCqA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.0.4.tgz", + "integrity": "sha512-oRIizYe+zSI2Jw4zcMU0ebDZm27751hRFiSOBLwc1OIYMrsZKk+3m8p9EVaOmc6zZdtqwwdilNUNxXvBeHcP9w==", "requires": { - "https-proxy-agent": "^5.0.0", - "proxy-from-env": "^1.1.0" + "@pagefind/darwin-arm64": "1.0.4", + "@pagefind/darwin-x64": "1.0.4", + "@pagefind/linux-arm64": "1.0.4", + "@pagefind/linux-x64": "1.0.4", + "@pagefind/windows-x64": "1.0.4" } }, "param-case": { @@ -8089,11 +8143,6 @@ "any-promise": "^0.1.0" } }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, "prr": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", diff --git a/package.json b/package.json index aa73962c3..3533c9a59 100644 --- a/package.json +++ b/package.json @@ -10,7 +10,7 @@ "doc": "docs" }, "scripts": { - "build:search-index": "npx pagefind --source _site --glob \"**/*.html\"", + "build:search-index": "npx pagefind --site _site --glob \"**/*.html\"", "build:web": "ELEVENTY_ENV=production npx @11ty/eleventy", "serve:web": "ELEVENTY_ENV=development npx @11ty/eleventy --serve --incremental", "serve:web-prod": "ELEVENTY_ENV=production BROWERSYNC=off npx @11ty/eleventy --serve", @@ -72,6 +72,6 @@ "uglify-js": "^3.17.4" }, "dependencies": { - "pagefind": "^0.12.0" + "pagefind": "1.0.4" } } diff --git a/src/pages/search.njk b/src/pages/search.njk index 9f4c21973..f4eb1c86e 100644 --- a/src/pages/search.njk +++ b/src/pages/search.njk @@ -4,8 +4,8 @@ layout: default-page-layout.njk pageStyleId: search --- - - + +

\ No newline at end of file From 4b6b1438456f4017a4a93e770a9e5fae7b7d7222 Mon Sep 17 00:00:00 2001 From: MatthewNichols Date: Fri, 23 Feb 2024 18:00:07 +0100 Subject: [PATCH 36/47] Adding data-pagefind-body attribute to main pages to exclude Design System from indexing. --- src/pages/_includes/base-layout.njk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/_includes/base-layout.njk b/src/pages/_includes/base-layout.njk index d15f03ff0..1f8681f9f 100644 --- a/src/pages/_includes/base-layout.njk +++ b/src/pages/_includes/base-layout.njk @@ -2,7 +2,7 @@ {% include "parts/head.njk" %} - + {% include "parts/header.njk" %} {% renderlayoutblock "abovePageWrap" %}{% endrenderlayoutblock %} From 4406cb39b483c8adb2070fe74fc25eb1fdff8bde Mon Sep 17 00:00:00 2001 From: MatthewNichols Date: Fri, 23 Feb 2024 18:27:15 +0100 Subject: [PATCH 37/47] Enabling showSubResults in the PageFind UI --- src/client-side/page-search.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/client-side/page-search.ts b/src/client-side/page-search.ts index eaa071f24..458f06705 100644 --- a/src/client-side/page-search.ts +++ b/src/client-side/page-search.ts @@ -18,7 +18,8 @@ const PagefindSearchKey = "pagefind-search"; function setupPagefindUI() { const pagefindUIInstance = new PagefindUI({ element: "#search", - showImages: false + showImages: false, + showSubResults: true }); const searchInput = window.document.querySelector("#search .pagefind-ui__search-input")!; From d4ce1cd68c8d13a69bee9bc7cc5aacee7ef13fc3 Mon Sep 17 00:00:00 2001 From: MatthewNichols Date: Fri, 23 Feb 2024 20:12:58 +0100 Subject: [PATCH 38/47] Documenting the site search functionality --- README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/README.md b/README.md index 7fbc1f981..0e6d0318f 100644 --- a/README.md +++ b/README.md @@ -87,6 +87,11 @@ Additionally the following `markdown-it` plugins have been added: Please note: The closing `:::` is required. Also if you need to nest containers then the outer container gets an additional `:`. Each container type needs to be configured in `markdown-it-config.js` for examples and to add more. This one provides a lot of flexibility. +## Site search and indexing +The site uses the [Pagefind](https://pagefind.app/) library to index the contents of the site and to find search results upon request. +The documentation is quite good. One thing to note; pages are indexed based on the inclusion of the `data-pagefind-body` +attribute on a page. It is included on all of the main pages (all but the Design System). If you need to remove some or all of a page +from indexing you can use the `data-pagefind-ignore` attribute. See (https://pagefind.app/docs/indexing/) for details. ## Setup for Dev - `npm install` From 6f980ca59ae2f7b80193cc3794601bb7f535ebdd Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Thu, 29 Feb 2024 13:08:46 -0800 Subject: [PATCH 39/47] change /references path to /resources, along with all labels --- netlify.toml | 11 ++++++++--- src/pages/_data/navigation/footerLinks.json5 | 4 ++-- src/pages/_data/navigation/headerNav.json5 | 2 +- src/pages/_data/navigation/mainNav.json5 | 4 ++-- src/pages/_includes/widgets/home-tiles.njk | 6 +++--- 5 files changed, 16 insertions(+), 11 deletions(-) diff --git a/netlify.toml b/netlify.toml index b4c22ec85..0dbedb97e 100644 --- a/netlify.toml +++ b/netlify.toml @@ -40,7 +40,7 @@ from = "/resources/happ-bundle/" to = "/redirect-to-redux-site.html#!docs/resources/happ-bundle/" # There will eventually be a new hApp bundle format that will get documented, - # and I intend to put it under `/references`. + # and I intend to put it under `/resources`. status = 302 # Some of the core concepts' titles and URLs have changed, @@ -71,6 +71,11 @@ to = "/concepts/8_calls_capabilities/" status = 301 +[[redirects]] + from = "/references/*" + to = "/resources/:splat" + status = 301 + # Once upon a time, we had a landing page and all the actual docs were in /docs. [[redirects]] from = "/docs/*" @@ -101,10 +106,10 @@ to = "/get-started/" status = 301 -# Glossary has been moved to the references path. +# Glossary has been moved to the resources path. [[redirects]] from = "/glossary/" - to = "/references/glossary/" + to = "/resources/glossary/" status = 301 # The front page for the core concepts has been removed. diff --git a/src/pages/_data/navigation/footerLinks.json5 b/src/pages/_data/navigation/footerLinks.json5 index 681ccded4..055b4e7cf 100644 --- a/src/pages/_data/navigation/footerLinks.json5 +++ b/src/pages/_data/navigation/footerLinks.json5 @@ -5,7 +5,7 @@ links: [ { title: "Get Started", url: "/get-started/" }, { title: "Core Concepts", url: "/concepts/1_the_basics/" }, - { title: "Resources", url: "/references/" }, + { title: "Resources", url: "/resources/" }, ] }, @@ -16,7 +16,7 @@ { title: "App API reference", url: "https://docs.rs/holochain_conductor_api/latest/holochain_conductor_api/enum.AppRequest.html", external: true }, { title: "Admin API reference", url: "https://docs.rs/holochain_conductor_api/latest/holochain_conductor_api/enum.AdminRequest.html", external: true }, { title: "CLI", url: "https://github.com/holochain/holochain/tree/main/crates/hc", external: true }, - { title: "Glossary", url: "/references/glossary/", external: true }, + { title: "Glossary", url: "/resources/glossary/", external: true }, ] }, diff --git a/src/pages/_data/navigation/headerNav.json5 b/src/pages/_data/navigation/headerNav.json5 index 2e4e1f5d2..13617a54b 100644 --- a/src/pages/_data/navigation/headerNav.json5 +++ b/src/pages/_data/navigation/headerNav.json5 @@ -2,7 +2,7 @@ links: [ { title: "Get Started", url: "/get-started/", class:"" }, { title: "Core Concepts", url: "/concepts/1_the_basics/", class:"" }, - { title: "Resources", url: "/references/", class:"" }, + { title: "Resources", url: "/resources/", class:"" }, { title: "Get Involved", url: "/get-involved/", class:"" }, ] } \ No newline at end of file diff --git a/src/pages/_data/navigation/mainNav.json5 b/src/pages/_data/navigation/mainNav.json5 index 7ef32bc89..2d9c5975a 100644 --- a/src/pages/_data/navigation/mainNav.json5 +++ b/src/pages/_data/navigation/mainNav.json5 @@ -21,12 +21,12 @@ { title: "Lifecycle Events", url: "/concepts/11_lifecycle_events/" }, ] }, - { title: "References", url: "/references/", children: [ + { title: "References", url: "/resources/", children: [ { title: "HDK (Rust)", url: "https://docs.rs/hdk", external: true }, { title: "App API reference", url: "https://docs.rs/holochain_conductor_api/latest/holochain_conductor_api/enum.AppRequest.html", external: true }, { title: "Admin API reference", url: "https://docs.rs/holochain_conductor_api/latest/holochain_conductor_api/enum.AdminRequest.html", external: true }, { title: "CLI", url: "https://github.com/holochain/holochain/tree/main/crates/hc", external: true }, - { title: "Glossary", url: "/references/glossary/" }, + { title: "Glossary", url: "/resources/glossary/" }, ] }, { title: "Get Involved", url: "/get-involved/" }, diff --git a/src/pages/_includes/widgets/home-tiles.njk b/src/pages/_includes/widgets/home-tiles.njk index ecba4302d..751a25e0e 100644 --- a/src/pages/_includes/widgets/home-tiles.njk +++ b/src/pages/_includes/widgets/home-tiles.njk @@ -16,11 +16,11 @@
{% endlinkTile %} - {% linkTile "/references/", "home-tile" %} + {% linkTile "/resources/", "home-tile" %} {{ toolPanelIcon() }}
-

Resources & Docs

-

Advanced tips and more

+

Resources

+

Howtos, references, examples, and more

{% endlinkTile %} From 76c583afceb4f3985d00bc8ee8e3a7fe7f355a0e Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Thu, 29 Feb 2024 13:14:30 -0800 Subject: [PATCH 40/47] add 'howto' to the spelling dictionary --- .cspell/words-that-should-exist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/.cspell/words-that-should-exist.txt b/.cspell/words-that-should-exist.txt index 3c33be5d1..27464ca57 100644 --- a/.cspell/words-that-should-exist.txt +++ b/.cspell/words-that-should-exist.txt @@ -8,6 +8,7 @@ counterparty counterparty's filesystem filesystems +howto interoperating permissioned permissivity From 1b4ded2c9663bc4ffb7421ee40e1a5b102f99d3a Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Thu, 29 Feb 2024 13:18:20 -0800 Subject: [PATCH 41/47] okay, apparently you need the plural howtos too --- .cspell/words-that-should-exist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/.cspell/words-that-should-exist.txt b/.cspell/words-that-should-exist.txt index 27464ca57..243d620c0 100644 --- a/.cspell/words-that-should-exist.txt +++ b/.cspell/words-that-should-exist.txt @@ -9,6 +9,7 @@ counterparty's filesystem filesystems howto +howtos interoperating permissioned permissivity From 5060d0c42d2848b3aef03617319035ac2343bec5 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Thu, 29 Feb 2024 13:21:03 -0800 Subject: [PATCH 42/47] rename references path itself --- src/pages/{references => resources}/glossary.md | 0 src/pages/{references => resources}/index.md | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename src/pages/{references => resources}/glossary.md (100%) rename src/pages/{references => resources}/index.md (100%) diff --git a/src/pages/references/glossary.md b/src/pages/resources/glossary.md similarity index 100% rename from src/pages/references/glossary.md rename to src/pages/resources/glossary.md diff --git a/src/pages/references/index.md b/src/pages/resources/index.md similarity index 100% rename from src/pages/references/index.md rename to src/pages/resources/index.md From 679b1e938c61f19aec039756598ce4bf7ecc0cf6 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Thu, 29 Feb 2024 13:48:15 -0800 Subject: [PATCH 43/47] [skip ci] hotfix: describe purpose of dictionaries --- .cspell/custom-words.txt | 2 ++ .cspell/holochain-words.txt | 1 + .cspell/template-words.txt | 1 + .cspell/words-that-should-exist.txt | 1 + 4 files changed, 5 insertions(+) diff --git a/.cspell/custom-words.txt b/.cspell/custom-words.txt index 7aee42acf..d82e7eef0 100644 --- a/.cspell/custom-words.txt +++ b/.cspell/custom-words.txt @@ -1,3 +1,5 @@ +# Words that are neither common nor directly related to Holochain but appear in +# Dev Portal content agent-centricity Anwaar buildinputs diff --git a/.cspell/holochain-words.txt b/.cspell/holochain-words.txt index 0616f8b8e..a4a07ad5a 100644 --- a/.cspell/holochain-words.txt +++ b/.cspell/holochain-words.txt @@ -1,3 +1,4 @@ +# Words that are distinctly Holochainy DeepKey dnas DPKI diff --git a/.cspell/template-words.txt b/.cspell/template-words.txt index bd9270d87..5868e11a1 100644 --- a/.cspell/template-words.txt +++ b/.cspell/template-words.txt @@ -1,3 +1,4 @@ +# Words found in our template code brower coreconcepts elif diff --git a/.cspell/words-that-should-exist.txt b/.cspell/words-that-should-exist.txt index 3c33be5d1..8dbfeeda5 100644 --- a/.cspell/words-that-should-exist.txt +++ b/.cspell/words-that-should-exist.txt @@ -1,3 +1,4 @@ +# Common words that should appear in the default dictionaries but don't affordance affordances automations From e3ff6ac2c4ef6de0a6dd6c017f6234987247b2fa Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Thu, 29 Feb 2024 13:51:10 -0800 Subject: [PATCH 44/47] describe purpose of spelling dictionary files --- .cspell/custom-words.txt | 2 ++ .cspell/holochain-words.txt | 1 + .cspell/template-words.txt | 1 + .cspell/words-that-should-exist.txt | 1 + 4 files changed, 5 insertions(+) diff --git a/.cspell/custom-words.txt b/.cspell/custom-words.txt index 7aee42acf..d82e7eef0 100644 --- a/.cspell/custom-words.txt +++ b/.cspell/custom-words.txt @@ -1,3 +1,5 @@ +# Words that are neither common nor directly related to Holochain but appear in +# Dev Portal content agent-centricity Anwaar buildinputs diff --git a/.cspell/holochain-words.txt b/.cspell/holochain-words.txt index 0616f8b8e..a4a07ad5a 100644 --- a/.cspell/holochain-words.txt +++ b/.cspell/holochain-words.txt @@ -1,3 +1,4 @@ +# Words that are distinctly Holochainy DeepKey dnas DPKI diff --git a/.cspell/template-words.txt b/.cspell/template-words.txt index bd9270d87..5868e11a1 100644 --- a/.cspell/template-words.txt +++ b/.cspell/template-words.txt @@ -1,3 +1,4 @@ +# Words found in our template code brower coreconcepts elif diff --git a/.cspell/words-that-should-exist.txt b/.cspell/words-that-should-exist.txt index 3c33be5d1..8dbfeeda5 100644 --- a/.cspell/words-that-should-exist.txt +++ b/.cspell/words-that-should-exist.txt @@ -1,3 +1,4 @@ +# Common words that should appear in the default dictionaries but don't affordance affordances automations From 3ea976ab35d682e9eb5f9133a5f6fd5d9620c7a8 Mon Sep 17 00:00:00 2001 From: Matt Gabrenya Date: Sun, 3 Mar 2024 20:47:19 -0700 Subject: [PATCH 45/47] build: use rollup to build typescript, minify js bundles --- README.md | 3 + package-lock.json | 5602 ++++++++++-------------------------------- package.json | 12 +- rollup.config.mjs | 34 +- src/pages/search.njk | 2 +- 5 files changed, 1333 insertions(+), 4320 deletions(-) diff --git a/README.md b/README.md index 0e6d0318f..7adce323f 100644 --- a/README.md +++ b/README.md @@ -104,6 +104,9 @@ from indexing you can use the `data-pagefind-ignore` attribute. See (https://pag - Cleans `_site` dir - Builds, [autoprefixes](https://github.com/postcss/autoprefixer) and minifies the SCSS - Bundles the JS modules + - Builds the Typescript to JS + - Minifies the JS with Terser + - Saves the module to `_site/scripts/` dir - Builds 11ty with links to the bundled JS and minified CSS - `clean`: Cleans out the `_site` dir - `build:search-index`: builds the index files for the search function. This is called as pat of the build process, but if you want the search to work during local dev then you need to run this once, or you can just run `build` before you start the `dev` script. diff --git a/package-lock.json b/package-lock.json index 78edad2f9..8fc742fdc 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,7 +1,7 @@ { "name": "holochain-docs-pages", "version": "1.0.0", - "lockfileVersion": 2, + "lockfileVersion": 3, "requires": true, "packages": { "": { @@ -14,6 +14,8 @@ "devDependencies": { "@11ty/eleventy": "^2.0.0", "@aloskutov/eleventy-plugin-external-links": "^2.0.1", + "@rollup/plugin-terser": "^0.4.4", + "@rollup/plugin-typescript": "^11.1.5", "@sindresorhus/slugify": "1.1.2", "@types/lunr": "^2.3.4", "@types/markdown-it": "^12.2.3", @@ -37,6 +39,7 @@ "posthtml-noopener": "^1.0.5", "rollup": "^3.2.5", "sass": "^1.56.0", + "tslib": "^2.6.2", "typescript": "^4.8.4", "uglify-js": "^3.17.4" }, @@ -51,14 +54,15 @@ "dev": true }, "node_modules/@11ty/eleventy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-2.0.0.tgz", - "integrity": "sha512-heNLjt1FD2nx7fvidIgA4zrIvxuslgBK0w5/Ckr5iape1CoLzmDx1uIxPa66Atr1M6YzwG9hcOxoZUYV7PfLXw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-2.0.1.tgz", + "integrity": "sha512-t8XVUbCJByhVEa1RzO0zS2QzbL3wPY8ot1yUw9noqiSHxJWUwv6jiwm1/MZDPTYtkZH2ZHvdQIRQ5/SjG9XmLw==", "dev": true, "dependencies": { "@11ty/dependency-tree": "^2.0.1", - "@11ty/eleventy-dev-server": "^1.0.3", + "@11ty/eleventy-dev-server": "^1.0.4", "@11ty/eleventy-utils": "^1.0.1", + "@11ty/lodash-custom": "^4.17.21", "@iarna/toml": "^2.2.5", "@sindresorhus/slugify": "^1.1.2", "bcp-47-normalize": "^1.1.1", @@ -66,23 +70,20 @@ "cross-spawn": "^7.0.3", "debug": "^4.3.4", "dependency-graph": "^0.11.0", - "ejs": "^3.1.8", + "ejs": "^3.1.9", "fast-glob": "^3.2.12", - "graceful-fs": "^4.2.10", + "graceful-fs": "^4.2.11", "gray-matter": "^4.0.3", "hamljs": "^0.6.2", "handlebars": "^4.7.7", "is-glob": "^4.0.3", "iso-639-1": "^2.1.15", "kleur": "^4.1.5", - "liquidjs": "^10.4.0", - "lodash.chunk": "^4.2.0", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "luxon": "^3.2.1", + "liquidjs": "^10.7.0", + "luxon": "^3.3.0", "markdown-it": "^13.0.1", "micromatch": "^4.0.5", - "minimist": "^1.2.7", + "minimist": "^1.2.8", "moo": "^0.5.2", "multimatch": "^5.0.0", "mustache": "^4.2.0", @@ -95,7 +96,7 @@ "pug": "^3.0.2", "recursive-copy": "^2.0.14", "semver": "^7.3.8", - "slugify": "^1.6.5" + "slugify": "^1.6.6" }, "bin": { "eleventy": "cmd.js" @@ -109,9 +110,9 @@ } }, "node_modules/@11ty/eleventy-dev-server": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-1.0.3.tgz", - "integrity": "sha512-SjYQewOO0Oo2jUI5h0Lk87pRJllDBzbdcHGZTYEf00gz966kidP1Hyd3ySaHqL4lFqW2I6jIxNVKPlhwYhp6yA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-1.0.4.tgz", + "integrity": "sha512-qVBmV2G1KF/0o5B/3fITlrrDHy4bONUI2YuN3/WJ3BNw4NU1d/we8XhKrlgq13nNvHoBx5czYp3LZt8qRG53Fg==", "dev": true, "dependencies": { "@11ty/eleventy-utils": "^1.0.1", @@ -120,11 +121,11 @@ "dev-ip": "^1.0.1", "finalhandler": "^1.2.0", "mime": "^3.0.0", - "minimist": "^1.2.7", - "morphdom": "^2.6.1", + "minimist": "^1.2.8", + "morphdom": "^2.7.0", "please-upgrade-node": "^3.2.0", "ssri": "^8.0.1", - "ws": "^8.12.0" + "ws": "^8.13.0" }, "bin": { "eleventy-dev-server": "cmd.js" @@ -138,9 +139,9 @@ } }, "node_modules/@11ty/eleventy-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.1.tgz", - "integrity": "sha512-HPpCTz4PzudcQU+i+x6GSNHVqgnvRhnVYg5dLKaAoRWLN966odAGsBxKSyhF8i1MdlOPtsytYb2AGWP7jISC5w==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.2.tgz", + "integrity": "sha512-Zy2leMK1DQR6Q6ZPSagv7QpJaAz9uVbb+RmVetYFp3foMeQtOSZx7w2u5daRFmP+PeNq9vO9H4xtBToYFWZwHA==", "dev": true, "dependencies": { "normalize-path": "^3.0.0" @@ -153,37 +154,105 @@ "url": "https://opencollective.com/11ty" } }, - "node_modules/@aloskutov/eleventy-plugin-external-links": { + "node_modules/@11ty/eleventy/node_modules/argparse": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@aloskutov/eleventy-plugin-external-links/-/eleventy-plugin-external-links-2.0.1.tgz", - "integrity": "sha512-Qmq1VJ75Cuoyghksuur/MnMCkovr9wTSM9+gGc/Lf9KkxjeZAFsdUUhYA7j94wZqET6lHB1GQoZ3XsaEeDrseQ==", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", + "dev": true + }, + "node_modules/@11ty/eleventy/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/@11ty/eleventy/node_modules/linkify-it": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", + "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "dev": true, + "dependencies": { + "uc.micro": "^1.0.1" + } + }, + "node_modules/@11ty/eleventy/node_modules/markdown-it": { + "version": "13.0.2", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.2.tgz", + "integrity": "sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==", + "dev": true, + "dependencies": { + "argparse": "^2.0.1", + "entities": "~3.0.1", + "linkify-it": "^4.0.1", + "mdurl": "^1.0.1", + "uc.micro": "^1.0.5" + }, + "bin": { + "markdown-it": "bin/markdown-it.js" + } + }, + "node_modules/@11ty/eleventy/node_modules/mdurl": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", + "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", + "dev": true + }, + "node_modules/@11ty/eleventy/node_modules/uc.micro": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", + "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", + "dev": true + }, + "node_modules/@11ty/lodash-custom": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/@11ty/lodash-custom/-/lodash-custom-4.17.21.tgz", + "integrity": "sha512-Mqt6im1xpb1Ykn3nbcCovWXK3ggywRJa+IXIdoz4wIIK+cvozADH63lexcuPpGS/gJ6/m2JxyyXDyupkMr5DHw==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/11ty" + } + }, + "node_modules/@aloskutov/eleventy-plugin-external-links": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/@aloskutov/eleventy-plugin-external-links/-/eleventy-plugin-external-links-2.1.1.tgz", + "integrity": "sha512-aVFxgqPzKnlGorJSm7uMMQ76T1pwMA9JDsGmQm75k8UqVV68aIZD5tfUzuPvtymPg20QH4hN2Aeb09pxZHor3w==", "dev": true, "dependencies": { - "node-html-parser": "^6.1.10" + "node-html-parser": "^6.1.12" } }, "node_modules/@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", + "version": "7.23.4", + "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz", + "integrity": "sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", + "version": "7.22.20", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz", + "integrity": "sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A==", "dev": true, "engines": { "node": ">=6.9.0" } }, "node_modules/@babel/parser": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", - "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.24.0.tgz", + "integrity": "sha512-QuP/FxEAzMSjXygs8v4N9dvdXzEHN4W1oF3PxuWAtPo08UdM17u89RDMgjLn/mlc56iM0HlLmVkO/wgR+rDgHg==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -193,13 +262,13 @@ } }, "node_modules/@babel/types": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", - "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", + "version": "7.24.0", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.24.0.tgz", + "integrity": "sha512-+j7a5c253RfKh8iABBhywc8NSfP5LURe7Uh4qpsh6jc+aLJguvmIUBdjSdEMQv2bENrCR5MfRdjGo7vzS/ob7w==", "dev": true, "dependencies": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", + "@babel/helper-string-parser": "^7.23.4", + "@babel/helper-validator-identifier": "^7.22.20", "to-fast-properties": "^2.0.0" }, "engines": { @@ -212,6 +281,64 @@ "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", "dev": true }, + "node_modules/@jridgewell/gen-mapping": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz", + "integrity": "sha512-IzL8ZoEDIBRWEzlCcRhOaCupYyN5gdIK+Q6fbFdPDg6HqX6jpkItn7DFIpW9LQzXG6Df9sA7+OKnq0qlz/GaQg==", + "dev": true, + "dependencies": { + "@jridgewell/set-array": "^1.2.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.24" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz", + "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/set-array": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.2.1.tgz", + "integrity": "sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A==", + "dev": true, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/source-map": { + "version": "0.3.5", + "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.5.tgz", + "integrity": "sha512-UTYAUj/wviwdsMfzoSJspJxbkH5o1snzwX0//0ENX1u/55kkZZkcTZP6u9bwKGkv+dkk9at4m1Cpt0uY80kcpQ==", + "dev": true, + "dependencies": { + "@jridgewell/gen-mapping": "^0.3.0", + "@jridgewell/trace-mapping": "^0.3.9" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==", + "dev": true + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.25", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz", + "integrity": "sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ==", + "dev": true, + "dependencies": { + "@jridgewell/resolve-uri": "^3.1.0", + "@jridgewell/sourcemap-codec": "^1.4.14" + } + }, "node_modules/@nodelib/fs.scandir": { "version": "2.1.5", "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", @@ -307,6 +434,76 @@ "win32" ] }, + "node_modules/@rollup/plugin-terser": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz", + "integrity": "sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A==", + "dev": true, + "dependencies": { + "serialize-javascript": "^6.0.1", + "smob": "^1.0.0", + "terser": "^5.17.4" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, + "node_modules/@rollup/plugin-typescript": { + "version": "11.1.6", + "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-11.1.6.tgz", + "integrity": "sha512-R92yOmIACgYdJ7dJ97p4K69I8gg6IEHt8M7dUBxN3W6nrO8uUxX5ixl0yU/N3aZTi8WhPuICvOHXQvF6FaykAA==", + "dev": true, + "dependencies": { + "@rollup/pluginutils": "^5.1.0", + "resolve": "^1.22.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^2.14.0||^3.0.0||^4.0.0", + "tslib": "*", + "typescript": ">=3.7.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + }, + "tslib": { + "optional": true + } + } + }, + "node_modules/@rollup/pluginutils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.1.0.tgz", + "integrity": "sha512-XTIWOPPcpvyKI6L1NHo0lFlCyznUEyPmPY1mc3KpPVDYulHSTvyeLNVW00QTLIAFNhR3kYnJTQHeGqU4M3n09g==", + "dev": true, + "dependencies": { + "@types/estree": "^1.0.0", + "estree-walker": "^2.0.2", + "picomatch": "^2.3.1" + }, + "engines": { + "node": ">=14.0.0" + }, + "peerDependencies": { + "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0" + }, + "peerDependenciesMeta": { + "rollup": { + "optional": true + } + } + }, "node_modules/@selderee/plugin-htmlparser2": { "version": "0.6.0", "resolved": "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.6.0.tgz", @@ -370,16 +567,22 @@ "node": ">=10.13.0" } }, + "node_modules/@types/estree": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.5.tgz", + "integrity": "sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==", + "dev": true + }, "node_modules/@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.5.tgz", + "integrity": "sha512-yg6E+u0/+Zjva+buc3EIb+29XEg4wltq7cSmd4Uc2EE/1nUVmxyzpX6gUXD0V8jIrG0r7YeOGVIbYRkxeooCtw==", "dev": true }, "node_modules/@types/lunr": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/lunr/-/lunr-2.3.4.tgz", - "integrity": "sha512-j4x4XJwZvorEUbA519VdQ5b9AOU9TSvfi8tvxMAfP8XzNLtFex7A8vFQwqOx3WACbV0KMXbACV3cZl4/gynQ7g==", + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/@types/lunr/-/lunr-2.3.7.tgz", + "integrity": "sha512-Tb/kUm38e8gmjahQzdCKhbdsvQ9/ppzHFfsJ0dMs3ckqQsRj+P5IkSAwFTBrBxdyr3E/LoMUUrZngjDYAjiE3A==", "dev": true }, "node_modules/@types/markdown-it": { @@ -393,9 +596,9 @@ } }, "node_modules/@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.5.tgz", + "integrity": "sha512-6L6VymKTzYSrEf4Nev4Xa1LCHKrlTlYCBMTlQKFuddo1CvQcE52I0mwfOJayueUC7MJuXOeHTcIU683lzd0cUA==", "dev": true }, "node_modules/@types/minimatch": { @@ -453,9 +656,9 @@ "dev": true }, "node_modules/anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "dependencies": { "normalize-path": "^3.0.0", @@ -474,6 +677,22 @@ "sprintf-js": "~1.0.2" } }, + "node_modules/array-buffer-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/array-buffer-byte-length/-/array-buffer-byte-length-1.0.1.tgz", + "integrity": "sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "is-array-buffer": "^3.0.4" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/array-differ": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", @@ -501,6 +720,28 @@ "node": ">=0.10.0" } }, + "node_modules/arraybuffer.prototype.slice": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/arraybuffer.prototype.slice/-/arraybuffer.prototype.slice-1.0.3.tgz", + "integrity": "sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", + "es-abstract": "^1.22.3", + "es-errors": "^1.2.1", + "get-intrinsic": "^1.2.3", + "is-array-buffer": "^3.0.4", + "is-shared-array-buffer": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/arrify": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", @@ -523,15 +764,15 @@ "dev": true }, "node_modules/async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", + "version": "3.2.5", + "resolved": "https://registry.npmjs.org/async/-/async-3.2.5.tgz", + "integrity": "sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==", "dev": true }, "node_modules/autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", + "version": "10.4.18", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.18.tgz", + "integrity": "sha512-1DKbDfsr6KUElM6wg+0zRNkB/Q7WcKYAaK+pzXn+Xqmszm/5Xa9coeNdtP88Vi+dPzZnMjhge8GIV49ZQkDa+g==", "dev": true, "funding": [ { @@ -541,12 +782,16 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/autoprefixer" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", - "fraction.js": "^4.2.0", + "browserslist": "^4.23.0", + "caniuse-lite": "^1.0.30001591", + "fraction.js": "^4.3.7", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -561,6 +806,21 @@ "postcss": "^8.1.0" } }, + "node_modules/available-typed-arrays": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/available-typed-arrays/-/available-typed-arrays-1.0.7.tgz", + "integrity": "sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==", + "dev": true, + "dependencies": { + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/babel-walk": { "version": "3.0.0-canary-5", "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", @@ -656,9 +916,9 @@ } }, "node_modules/browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", + "version": "4.23.0", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.23.0.tgz", + "integrity": "sha512-QW8HiM1shhT2GuzkvklfjcKDiWFXHOeFCIA/huJPwHsslwcydgk7X+z2zXpEijP98UCY7HbubZt5J2Zgvf0CaQ==", "dev": true, "funding": [ { @@ -668,13 +928,17 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" + "caniuse-lite": "^1.0.30001587", + "electron-to-chromium": "^1.4.668", + "node-releases": "^2.0.14", + "update-browserslist-db": "^1.0.13" }, "bin": { "browserslist": "cli.js" @@ -683,14 +947,26 @@ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" } }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", + "dev": true + }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.7.tgz", + "integrity": "sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.4", + "set-function-length": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -719,9 +995,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001431", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", - "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", + "version": "1.0.30001593", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001593.tgz", + "integrity": "sha512-UWM1zlo3cZfkpBysd7AS+z+v007q9G1+fLTUU42rQnY6t2axoogPW/xol6T7juU5EUoOhML4WgBIdG+9yYqAjQ==", "dev": true, "funding": [ { @@ -731,6 +1007,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/caniuse-lite" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ] }, @@ -760,16 +1040,10 @@ } }, "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -782,6 +1056,9 @@ "engines": { "node": ">= 8.10.0" }, + "funding": { + "url": "https://paulmillr.com/funding/" + }, "optionalDependencies": { "fsevents": "~2.3.2" } @@ -837,13 +1114,10 @@ "dev": true }, "node_modules/commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true, - "engines": { - "node": ">= 6" - } + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true }, "node_modules/concat-map": { "version": "0.0.1", @@ -876,9 +1150,9 @@ } }, "node_modules/css-declaration-sorter": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", - "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", + "version": "6.4.1", + "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz", + "integrity": "sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g==", "dev": true, "engines": { "node": "^10 || ^12 || >=14" @@ -933,23 +1207,23 @@ } }, "node_modules/css-select/node_modules/domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.1.0.tgz", + "integrity": "sha512-H78uMmQtI2AhgDJjWeQmHwJJ2bLPD3GMmO7Zja/ZZh84wkm+4ut+IUnUdRa8uCGX88DiVx1j6FRe1XfxEgjEZA==", "dev": true, "dependencies": { "dom-serializer": "^2.0.0", "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" + "domhandler": "^5.0.3" }, "funding": { "url": "https://github.com/fb55/domutils?sponsor=1" } }, "node_modules/css-select/node_modules/entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", "dev": true, "engines": { "node": ">=0.12" @@ -996,12 +1270,12 @@ } }, "node_modules/cssnano": { - "version": "5.1.14", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", - "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", + "version": "5.1.15", + "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.15.tgz", + "integrity": "sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw==", "dev": true, "dependencies": { - "cssnano-preset-default": "^5.2.13", + "cssnano-preset-default": "^5.2.14", "lilconfig": "^2.0.3", "yaml": "^1.10.2" }, @@ -1017,22 +1291,22 @@ } }, "node_modules/cssnano-preset-default": { - "version": "5.2.13", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", - "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", + "version": "5.2.14", + "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz", + "integrity": "sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A==", "dev": true, "dependencies": { "css-declaration-sorter": "^6.3.1", "cssnano-utils": "^3.1.0", "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", + "postcss-colormin": "^5.3.1", "postcss-convert-values": "^5.1.3", "postcss-discard-comments": "^5.1.2", "postcss-discard-duplicates": "^5.1.0", "postcss-discard-empty": "^5.1.1", "postcss-discard-overridden": "^5.1.0", "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.3", + "postcss-merge-rules": "^5.1.4", "postcss-minify-font-values": "^5.1.0", "postcss-minify-gradients": "^5.1.1", "postcss-minify-params": "^5.1.4", @@ -1047,7 +1321,7 @@ "postcss-normalize-url": "^5.1.0", "postcss-normalize-whitespace": "^5.1.1", "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.1", + "postcss-reduce-initial": "^5.1.2", "postcss-reduce-transforms": "^5.1.0", "postcss-svgo": "^5.1.0", "postcss-unique-selectors": "^5.1.1" @@ -1101,20 +1375,38 @@ } }, "node_modules/deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz", + "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==", "dev": true, "engines": { "node": ">=0.10.0" } }, - "node_modules/define-properties": { + "node_modules/define-data-property": { "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz", + "integrity": "sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==", + "dev": true, + "dependencies": { + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "gopd": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/define-properties": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.1.tgz", + "integrity": "sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==", "dev": true, "dependencies": { + "define-data-property": "^1.0.1", "has-property-descriptors": "^1.0.0", "object-keys": "^1.1.1" }, @@ -1158,15 +1450,6 @@ "node": ">=8" } }, - "node_modules/dir-glob/node_modules/path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, "node_modules/discontinuous-range": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", @@ -1193,15 +1476,6 @@ "url": "https://github.com/cheeriojs/dom-serializer?sponsor=1" } }, - "node_modules/dom-serializer/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, "node_modules/domelementtype": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", @@ -1250,9 +1524,9 @@ "dev": true }, "node_modules/ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", + "version": "3.1.9", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.9.tgz", + "integrity": "sha512-rC+QVNMJWv+MtPgkt0y+0rVEIdbtxVADApW9JXrUVlzHetgcyczP/E7DJmWJ4fJCZF2cPcBk0laWO9ZHMG3DmQ==", "dev": true, "dependencies": { "jake": "^10.8.5" @@ -1265,9 +1539,9 @@ } }, "node_modules/electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", + "version": "1.4.690", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.690.tgz", + "integrity": "sha512-+2OAGjUx68xElQhydpcbqH50hE8Vs2K6TkAeLhICYfndb67CVH0UsZaijmRUE3rHlIxU1u0jxwhgVe6fK3YANA==", "dev": true }, "node_modules/emoji-regex": { @@ -1286,13 +1560,10 @@ } }, "node_modules/entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", "dev": true, - "engines": { - "node": ">=0.12" - }, "funding": { "url": "https://github.com/fb55/entities?sponsor=1" } @@ -1319,35 +1590,52 @@ } }, "node_modules/es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", + "version": "1.22.5", + "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.22.5.tgz", + "integrity": "sha512-oW69R+4q2wG+Hc3KZePPZxOiisRIqfKBVo/HLx94QcJeWGU/8sZhCvc829rd1kS366vlJbzBfXf9yWwf0+Ko7w==", + "dev": true, + "dependencies": { + "array-buffer-byte-length": "^1.0.1", + "arraybuffer.prototype.slice": "^1.0.3", + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "es-define-property": "^1.0.0", + "es-errors": "^1.3.0", + "es-set-tostringtag": "^2.0.3", "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", + "function.prototype.name": "^1.1.6", + "get-intrinsic": "^1.2.4", + "get-symbol-description": "^1.0.2", + "globalthis": "^1.0.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.2", + "has-proto": "^1.0.3", "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", + "hasown": "^2.0.1", + "internal-slot": "^1.0.7", + "is-array-buffer": "^3.0.4", "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", + "is-negative-zero": "^2.0.3", "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", + "is-shared-array-buffer": "^1.0.3", "is-string": "^1.0.7", + "is-typed-array": "^1.1.13", "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", + "object-inspect": "^1.13.1", "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" + "object.assign": "^4.1.5", + "regexp.prototype.flags": "^1.5.2", + "safe-array-concat": "^1.1.0", + "safe-regex-test": "^1.0.3", + "string.prototype.trim": "^1.2.8", + "string.prototype.trimend": "^1.0.7", + "string.prototype.trimstart": "^1.0.7", + "typed-array-buffer": "^1.0.2", + "typed-array-byte-length": "^1.0.1", + "typed-array-byte-offset": "^1.0.2", + "typed-array-length": "^1.0.5", + "unbox-primitive": "^1.0.2", + "which-typed-array": "^1.1.14" }, "engines": { "node": ">= 0.4" @@ -1356,6 +1644,41 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/es-define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/es-define-property/-/es-define-property-1.0.0.tgz", + "integrity": "sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-errors": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/es-errors/-/es-errors-1.3.0.tgz", + "integrity": "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/es-set-tostringtag": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/es-set-tostringtag/-/es-set-tostringtag-2.0.3.tgz", + "integrity": "sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.4", + "has-tostringtag": "^1.0.2", + "hasown": "^2.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/es-to-primitive": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", @@ -1374,9 +1697,9 @@ } }, "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.2.tgz", + "integrity": "sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==", "dev": true, "engines": { "node": ">=6" @@ -1413,6 +1736,12 @@ "node": ">=4" } }, + "node_modules/estree-walker": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", + "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==", + "dev": true + }, "node_modules/extend-shallow": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", @@ -1426,9 +1755,9 @@ } }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", + "integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -1442,9 +1771,9 @@ } }, "node_modules/fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", + "version": "1.17.1", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.17.1.tgz", + "integrity": "sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==", "dev": true, "dependencies": { "reusify": "^1.0.4" @@ -1478,9 +1807,9 @@ } }, "node_modules/filelist/node_modules/minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.6.tgz", + "integrity": "sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g==", "dev": true, "dependencies": { "brace-expansion": "^2.0.1" @@ -1534,23 +1863,32 @@ "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true }, + "node_modules/for-each": { + "version": "0.3.3", + "resolved": "https://registry.npmjs.org/for-each/-/for-each-0.3.3.tgz", + "integrity": "sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==", + "dev": true, + "dependencies": { + "is-callable": "^1.1.3" + } + }, "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, "engines": { "node": "*" }, "funding": { "type": "patreon", - "url": "https://www.patreon.com/infusion" + "url": "https://github.com/sponsors/rawify" } }, "node_modules/fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "version": "11.2.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-11.2.0.tgz", + "integrity": "sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==", "dev": true, "dependencies": { "graceful-fs": "^4.2.0", @@ -1558,7 +1896,7 @@ "universalify": "^2.0.0" }, "engines": { - "node": ">=12" + "node": ">=14.14" } }, "node_modules/fs.realpath": { @@ -1568,9 +1906,9 @@ "dev": true }, "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", + "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", "dev": true, "hasInstallScript": true, "optional": true, @@ -1582,21 +1920,24 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.6.tgz", + "integrity": "sha512-Z5kx79swU5P27WEayXM1tBi5Ze/lbIyiNgU3qyXUOf9b2rgXYyF9Dy9Cx+IQv/Lc8WCG6L82zwUPpSS9hGehIg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1", + "functions-have-names": "^1.2.3" }, "engines": { "node": ">= 0.4" @@ -1624,14 +1965,19 @@ } }, "node_modules/get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.4.tgz", + "integrity": "sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "has-proto": "^1.0.1", + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1650,13 +1996,14 @@ } }, "node_modules/get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.2.tgz", + "integrity": "sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" + "call-bind": "^1.0.5", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4" }, "engines": { "node": ">= 0.4" @@ -1697,15 +2044,30 @@ "node": ">= 6" } }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dev": true, + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", + "version": "13.2.2", + "resolved": "https://registry.npmjs.org/globby/-/globby-13.2.2.tgz", + "integrity": "sha512-Y1zNGV+pzQdh7H39l9zgB4PJqjRNqydvdYCDG4HFXM4XuvSaQQlEc91IU1yALL8gUTDomgBAfz3XJdmUS+oo0w==", "dev": true, "dependencies": { "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", + "fast-glob": "^3.3.0", + "ignore": "^5.2.4", "merge2": "^1.4.1", "slash": "^4.0.0" }, @@ -1728,10 +2090,22 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "version": "4.2.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", + "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==", "dev": true }, "node_modules/gray-matter": { @@ -1756,13 +2130,13 @@ "dev": true }, "node_modules/handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", + "version": "4.7.8", + "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", + "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "dev": true, "dependencies": { "minimist": "^1.2.5", - "neo-async": "^2.6.0", + "neo-async": "^2.6.2", "source-map": "^0.6.1", "wordwrap": "^1.0.0" }, @@ -1776,18 +2150,6 @@ "uglify-js": "^3.1.4" } }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, "node_modules/has-bigints": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", @@ -1807,12 +2169,24 @@ } }, "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz", + "integrity": "sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.1" + "es-define-property": "^1.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-proto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.3.tgz", + "integrity": "sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==", + "dev": true, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1831,12 +2205,12 @@ } }, "node_modules/has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.2.tgz", + "integrity": "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==", "dev": true, "dependencies": { - "has-symbols": "^1.0.2" + "has-symbols": "^1.0.3" }, "engines": { "node": ">= 0.4" @@ -1845,6 +2219,18 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/hasown": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.1.tgz", + "integrity": "sha512-1/th4MHjnwncwXsIW6QMzlvYL9kG5e/CpVvLRZe4XPa8TOUNbCELqmvhDmnkNsAjwaG4+I8gJJL0JBvTTLO9qA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -1896,12 +2282,6 @@ "node": ">=6" } }, - "node_modules/html-minifier/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/html-to-text": { "version": "8.2.1", "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-8.2.1.tgz", @@ -1922,16 +2302,7 @@ "node": ">=10.23.2" } }, - "node_modules/html-to-text/node_modules/entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/html-to-text/node_modules/htmlparser2": { + "node_modules/htmlparser2": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", @@ -1950,25 +2321,6 @@ "entities": "^2.0.0" } }, - "node_modules/htmlparser2": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", - "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", - "dev": true, - "funding": [ - "https://github.com/fb55/htmlparser2?sponsor=1", - { - "type": "github", - "url": "https://github.com/sponsors/fb55" - } - ], - "dependencies": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.2", - "domutils": "^2.8.0", - "entities": "^3.0.1" - } - }, "node_modules/http-equiv-refresh": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-1.0.0.tgz", @@ -1979,18 +2331,18 @@ } }, "node_modules/ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.1.tgz", + "integrity": "sha512-5Fytz/IraMjqpwfd34ke28PTVMjZjJG2MPn5t7OE4eUCUNf8BAa7b5WUS9/Qvr6mwOQS7Mk6vdsMno5he+T8Xw==", "dev": true, "engines": { "node": ">= 4" } }, "node_modules/immutable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", - "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.3.5.tgz", + "integrity": "sha512-8eabxkth9gZatlwl5TBuJnCsoTADlL6ftEr7A4qgdaTsPyreilDSnUk57SO+jfKcNtxPa22U5KK6DSeAYhpBJw==", "dev": true }, "node_modules/inflight": { @@ -2010,13 +2362,13 @@ "dev": true }, "node_modules/internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.7.tgz", + "integrity": "sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==", "dev": true, "dependencies": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", + "es-errors": "^1.3.0", + "hasown": "^2.0.0", "side-channel": "^1.0.4" }, "engines": { @@ -2047,6 +2399,22 @@ "url": "https://github.com/sponsors/wooorm" } }, + "node_modules/is-array-buffer": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/is-array-buffer/-/is-array-buffer-3.0.4.tgz", + "integrity": "sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "get-intrinsic": "^1.2.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -2106,12 +2474,12 @@ } }, "node_modules/is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", + "version": "2.13.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.13.1.tgz", + "integrity": "sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==", "dev": true, "dependencies": { - "has": "^1.0.3" + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2198,9 +2566,9 @@ "dev": true }, "node_modules/is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.3.tgz", + "integrity": "sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==", "dev": true, "engines": { "node": ">= 0.4" @@ -2256,12 +2624,15 @@ } }, "node_modules/is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.3.tgz", + "integrity": "sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==", "dev": true, "dependencies": { - "call-bind": "^1.0.2" + "call-bind": "^1.0.7" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2297,6 +2668,21 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/is-typed-array": { + "version": "1.1.13", + "resolved": "https://registry.npmjs.org/is-typed-array/-/is-typed-array-1.1.13.tgz", + "integrity": "sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==", + "dev": true, + "dependencies": { + "which-typed-array": "^1.1.14" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/is-weakref": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", @@ -2309,6 +2695,12 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/isarray": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz", + "integrity": "sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==", + "dev": true + }, "node_modules/isexe": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", @@ -2325,15 +2717,15 @@ } }, "node_modules/jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", + "version": "10.8.7", + "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.7.tgz", + "integrity": "sha512-ZDi3aP+fG/LchyBzUM804VjddnwfSfsdeYkwt8NcbKRvo4rFkjhs456iLFn3k2ZUWvNe4i48WACDbza8fhq2+w==", "dev": true, "dependencies": { "async": "^3.2.3", "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" + "filelist": "^1.0.4", + "minimatch": "^3.1.2" }, "bin": { "jake": "bin/cli.js" @@ -2429,28 +2821,32 @@ } }, "node_modules/lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz", + "integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==", "dev": true, "engines": { "node": ">=10" } }, "node_modules/linkify-it": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", - "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-5.0.0.tgz", + "integrity": "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ==", "dev": true, + "peer": true, "dependencies": { - "uc.micro": "^1.0.1" + "uc.micro": "^2.0.0" } }, "node_modules/liquidjs": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.4.0.tgz", - "integrity": "sha512-4fpR8KFJ96bXkzynK9Yo1jwn7sjOkJfKawSbEXINc39DZfy7r5SYtcAM5T/Ccg5n0xoZf6ap5Gap4VwFCJiQ1g==", + "version": "10.10.1", + "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.10.1.tgz", + "integrity": "sha512-h699VW79OLoshCTjFF02tmRCrd8t/E49LSIsjLwlg4k0TbMVjxsCRXVUEsURXbfKl3HUln2cShlDQCrSNm2YaA==", "dev": true, + "dependencies": { + "commander": "^10.0.0" + }, "bin": { "liquid": "bin/liquid.js", "liquidjs": "bin/liquid.js" @@ -2463,6 +2859,15 @@ "url": "https://opencollective.com/liquidjs" } }, + "node_modules/liquidjs/node_modules/commander": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz", + "integrity": "sha512-y4Mg2tXshplEbSGzx7amzPwKKOCGuoSRP/CjEdwwk0FOGlUbq6lKuoyDZTNZkmxHdJtp54hdfY/JUrdL7Xfdug==", + "dev": true, + "engines": { + "node": ">=14" + } + }, "node_modules/list-to-array": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/list-to-array/-/list-to-array-1.1.0.tgz", @@ -2493,36 +2898,18 @@ "node": ">=4" } }, - "node_modules/lodash.chunk": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", - "integrity": "sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w==", - "dev": true - }, "node_modules/lodash.deburr": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==", "dev": true }, - "node_modules/lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, "node_modules/lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", "dev": true }, - "node_modules/lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==", - "dev": true - }, "node_modules/lodash.uniq": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", @@ -2554,34 +2941,36 @@ "dev": true }, "node_modules/luxon": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", - "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", + "version": "3.4.4", + "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.4.4.tgz", + "integrity": "sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==", "dev": true, "engines": { "node": ">=12" } }, "node_modules/markdown-it": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", - "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-14.0.0.tgz", + "integrity": "sha512-seFjF0FIcPt4P9U39Bq1JYblX0KZCjDLFFQPHpL5AzHpqPEKtosxmdq/LTVZnjfH7tjt9BxStm+wXcDBNuYmzw==", "dev": true, + "peer": true, "dependencies": { "argparse": "^2.0.1", - "entities": "~3.0.1", - "linkify-it": "^4.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" + "entities": "^4.4.0", + "linkify-it": "^5.0.0", + "mdurl": "^2.0.0", + "punycode.js": "^2.3.1", + "uc.micro": "^2.0.0" }, "bin": { - "markdown-it": "bin/markdown-it.js" + "markdown-it": "bin/markdown-it.mjs" } }, "node_modules/markdown-it-anchor": { - "version": "8.6.6", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.6.tgz", - "integrity": "sha512-jRW30YGywD2ESXDc+l17AiritL0uVaSnWsb26f+68qaW9zgbIIr1f4v2Nsvc0+s0Z2N3uX6t/yAw7BwCQ1wMsA==", + "version": "8.6.7", + "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.7.tgz", + "integrity": "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA==", "dev": true, "peerDependencies": { "@types/markdown-it": "*", @@ -2589,9 +2978,9 @@ } }, "node_modules/markdown-it-attrs": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/markdown-it-attrs/-/markdown-it-attrs-4.1.4.tgz", - "integrity": "sha512-53Zfv8PTb6rlVFDlD106xcZHKBSsRZKJ2IW/rTxEJBEVbVaoxaNsmRkG0HXfbHl2SK8kaxZ2QKqdthWy/QBwmA==", + "version": "4.1.6", + "resolved": "https://registry.npmjs.org/markdown-it-attrs/-/markdown-it-attrs-4.1.6.tgz", + "integrity": "sha512-O7PDKZlN8RFMyDX13JnctQompwrrILuz2y43pW2GagcwpIIElkAdfeek+erHfxUOlXWPsjFeWmZ8ch1xtRLWpA==", "dev": true, "engines": { "node": ">=6" @@ -2610,7 +2999,21 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true + "dev": true, + "peer": true + }, + "node_modules/markdown-it/node_modules/entities": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", + "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", + "dev": true, + "peer": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } }, "node_modules/maximatch": { "version": "0.1.0", @@ -2664,10 +3067,11 @@ "dev": true }, "node_modules/mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-2.0.0.tgz", + "integrity": "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w==", + "dev": true, + "peer": true }, "node_modules/memorystream": { "version": "0.3.1", @@ -2725,9 +3129,9 @@ } }, "node_modules/minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2764,9 +3168,9 @@ "dev": true }, "node_modules/morphdom": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.6.1.tgz", - "integrity": "sha512-Y8YRbAEP3eKykroIBWrjcfMw7mmwJfjhqdpSvoqinu8Y702nAwikpXcNFDiIkyvfCLxLM9Wu95RZqo4a9jFBaA==", + "version": "2.7.2", + "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.7.2.tgz", + "integrity": "sha512-Dqb/lHFyTi7SZpY0a5R4I/0Edo+iPMbaUexsHHsLAByyixCDiLHPHyVoKVmrpL0THcT7V9Cgev9y21TQYq6wQg==", "dev": true }, "node_modules/ms": { @@ -2804,9 +3208,9 @@ } }, "node_modules/nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", + "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", "dev": true, "funding": [ { @@ -2843,12 +3247,6 @@ "url": "https://nearley.js.org/#give-to-nearley" } }, - "node_modules/nearley/node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, "node_modules/neo-async": { "version": "2.6.2", "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", @@ -2871,9 +3269,9 @@ } }, "node_modules/node-html-parser": { - "version": "6.1.10", - "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.10.tgz", - "integrity": "sha512-6/uWdWxjQWQ7tMcFK2wWlrflsQUzh1HsEzlIf2j5+TtzfhT2yUvg3DwZYAmjEHeR3uX74ko7exjHW69J0tOzIg==", + "version": "6.1.12", + "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.12.tgz", + "integrity": "sha512-/bT/Ncmv+fbMGX96XG9g05vFt43m/+SYKIs9oAemQVYyVcZmDAI2Xq/SbNcpOA35eF0Zk2av3Ksf+Xk8Vt8abA==", "dev": true, "dependencies": { "css-select": "^5.1.0", @@ -2881,9 +3279,9 @@ } }, "node_modules/node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", + "version": "2.0.14", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz", + "integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==", "dev": true }, "node_modules/normalize-package-data": { @@ -3137,6 +3535,15 @@ } } }, + "node_modules/nunjucks/node_modules/commander": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", + "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", + "dev": true, + "engines": { + "node": ">= 6" + } + }, "node_modules/object-assign": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", @@ -3147,9 +3554,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3165,13 +3572,13 @@ } }, "node_modules/object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.5.tgz", + "integrity": "sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", + "call-bind": "^1.0.5", + "define-properties": "^1.2.1", "has-symbols": "^1.0.3", "object-keys": "^1.1.1" }, @@ -3299,24 +3706,12 @@ "dev": true }, "node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, "engines": { - "node": ">=4" - } - }, - "node_modules/path-type/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true, - "engines": { - "node": ">=4" + "node": ">=8" } }, "node_modules/picocolors": { @@ -3367,10 +3762,19 @@ "semver-compare": "^1.0.0" } }, + "node_modules/possible-typed-array-names": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/possible-typed-array-names/-/possible-typed-array-names-1.0.0.tgz", + "integrity": "sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==", + "dev": true, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", + "version": "8.4.35", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.35.tgz", + "integrity": "sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA==", "dev": true, "funding": [ { @@ -3387,7 +3791,7 @@ } ], "dependencies": { - "nanoid": "^3.3.6", + "nanoid": "^3.3.7", "picocolors": "^1.0.0", "source-map-js": "^1.0.2" }, @@ -3409,14 +3813,14 @@ } }, "node_modules/postcss-cli": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.0.0.tgz", - "integrity": "sha512-Wjy/00wBBEgQqnSToznxLWDnATznokFGXsHtF/3G8glRZpz5KYlfHcBW/VMJmWAeF2x49zjgy4izjM3/Wx1dKA==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.1.0.tgz", + "integrity": "sha512-Zu7PLORkE9YwNdvOeOVKPmWghprOtjFQU3srMUGbdz3pHJiFh7yZ4geiZFMkjMfB0mtTFR3h8RemR62rPkbOPA==", "dev": true, "dependencies": { "chokidar": "^3.3.0", "dependency-graph": "^0.11.0", - "fs-extra": "^10.0.0", + "fs-extra": "^11.0.0", "get-stdin": "^9.0.0", "globby": "^13.0.0", "picocolors": "^1.0.0", @@ -3424,7 +3828,7 @@ "postcss-reporter": "^7.0.0", "pretty-hrtime": "^1.0.3", "read-cache": "^1.0.0", - "slash": "^4.0.0", + "slash": "^5.0.0", "yargs": "^17.0.0" }, "bin": { @@ -3437,25 +3841,13 @@ "postcss": "^8.0.0" } }, - "node_modules/postcss-cli/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.1.tgz", + "integrity": "sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ==", "dev": true, "dependencies": { - "browserslist": "^4.16.6", + "browserslist": "^4.21.4", "caniuse-api": "^3.0.0", "colord": "^2.9.1", "postcss-value-parser": "^4.2.0" @@ -3532,21 +3924,27 @@ } }, "node_modules/postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz", + "integrity": "sha512-bSVhyJGL00wMVoPUzAVAnbEoWyqRxkjv64tUl427SKnPrENtq6hJwUojroMz2VB+Q1edmi4IfrAPpami5VVgMQ==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" + "lilconfig": "^3.0.0", + "yaml": "^2.3.4" }, "engines": { "node": ">= 14" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": ">=8.0.9", "ts-node": ">=9.0.0" @@ -3560,11 +3958,26 @@ } } }, + "node_modules/postcss-load-config/node_modules/lilconfig": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.1.tgz", + "integrity": "sha512-O18pf7nyvHTckunPWCV1XUNXU1piu01y2b7ATJ0ppkUkk8ocqVWBrYjJBCwHDjD/ZWcfyrA0P4gKhzWGi5EINQ==", + "dev": true, + "engines": { + "node": ">=14" + }, + "funding": { + "url": "https://github.com/sponsors/antonk52" + } + }, "node_modules/postcss-load-config/node_modules/yaml": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", - "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.4.0.tgz", + "integrity": "sha512-j9iR8g+/t0lArF4V6NE/QCfT+CO7iLqrXAHZbJdo+LfjqP1vR8Fg5bSiaq6Q2lOD1AUEVrEVIgABvBFYojJVYQ==", "dev": true, + "bin": { + "yaml": "bin.mjs" + }, "engines": { "node": ">= 14" } @@ -3586,9 +3999,9 @@ } }, "node_modules/postcss-merge-rules": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", - "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", + "version": "5.1.4", + "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz", + "integrity": "sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g==", "dev": true, "dependencies": { "browserslist": "^4.21.4", @@ -3818,9 +4231,9 @@ } }, "node_modules/postcss-reduce-initial": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", - "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz", + "integrity": "sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg==", "dev": true, "dependencies": { "browserslist": "^4.21.4", @@ -3849,10 +4262,20 @@ } }, "node_modules/postcss-reporter": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", - "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.1.0.tgz", + "integrity": "sha512-/eoEylGWyy6/DOiMP5lmFRdmDKThqgn7D6hP2dXKJI/0rJSO1ADFNngZfDzxL0YAxFvws+Rtpuji1YIHj4mySA==", "dev": true, + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], "dependencies": { "picocolors": "^1.0.0", "thenby": "^1.3.4" @@ -3860,18 +4283,14 @@ "engines": { "node": ">=10" }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, "peerDependencies": { "postcss": "^8.1.0" } }, "node_modules/postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", + "version": "6.0.15", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz", + "integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==", "dev": true, "dependencies": { "cssesc": "^3.0.0", @@ -4059,6 +4478,37 @@ "node": ">=12" } }, + "node_modules/posthtml-parser/node_modules/entities": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", + "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", + "dev": true, + "engines": { + "node": ">=0.12" + }, + "funding": { + "url": "https://github.com/fb55/entities?sponsor=1" + } + }, + "node_modules/posthtml-parser/node_modules/htmlparser2": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", + "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", + "dev": true, + "funding": [ + "https://github.com/fb55/htmlparser2?sponsor=1", + { + "type": "github", + "url": "https://github.com/sponsors/fb55" + } + ], + "dependencies": { + "domelementtype": "^2.0.1", + "domhandler": "^4.2.2", + "domutils": "^2.8.0", + "entities": "^3.0.1" + } + }, "node_modules/posthtml-render": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", @@ -4243,6 +4693,16 @@ "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", "dev": true }, + "node_modules/punycode.js": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/punycode.js/-/punycode.js-2.3.1.tgz", + "integrity": "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA==", + "dev": true, + "peer": true, + "engines": { + "node": ">=6" + } + }, "node_modules/queue-microtask": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", @@ -4282,6 +4742,15 @@ "node": ">=0.12" } }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dev": true, + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, "node_modules/read-cache": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", @@ -4305,6 +4774,27 @@ "node": ">=4" } }, + "node_modules/read-pkg/node_modules/path-type": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", + "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "dev": true, + "dependencies": { + "pify": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/read-pkg/node_modules/pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/readable-stream": { "version": "3.6.2", "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", @@ -4348,15 +4838,25 @@ "slash": "^1.0.0" } }, + "node_modules/recursive-copy/node_modules/slash": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", + "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "dev": true, + "engines": { + "node": ">=0.10.0" + } + }, "node_modules/regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", + "version": "1.5.2", + "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.5.2.tgz", + "integrity": "sha512-NcDiDkTLuPR+++OCKB0nWafEmhg/Da8aUPLPMQbK+bxKKCm1/S5he+AqYa4PlMCVBalb4/yxIRub6qkEx5yJbw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" + "call-bind": "^1.0.6", + "define-properties": "^1.2.1", + "es-errors": "^1.3.0", + "set-function-name": "^2.0.1" }, "engines": { "node": ">= 0.4" @@ -4384,12 +4884,12 @@ } }, "node_modules/resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", + "version": "1.22.8", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.8.tgz", + "integrity": "sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==", "dev": true, "dependencies": { - "is-core-module": "^2.9.0", + "is-core-module": "^2.13.0", "path-parse": "^1.0.7", "supports-preserve-symlinks-flag": "^1.0.0" }, @@ -4432,9 +4932,9 @@ } }, "node_modules/rollup": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.2.5.tgz", - "integrity": "sha512-/Ha7HhVVofduy+RKWOQJrxe4Qb3xyZo+chcpYiD8SoQa4AG7llhupUtyfKSSrdBM2mWJjhM8wZwmbY23NmlIYw==", + "version": "3.29.4", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.29.4.tgz", + "integrity": "sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -4470,6 +4970,24 @@ "queue-microtask": "^1.2.2" } }, + "node_modules/safe-array-concat": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-array-concat/-/safe-array-concat-1.1.0.tgz", + "integrity": "sha512-ZdQ0Jeb9Ofti4hbt5lX3T2JcAamT9hfzYU1MNB+z/jaEbB6wfFfPIR/zEORmZqobkCCJhSjodobH6WHNmJ97dg==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.5", + "get-intrinsic": "^1.2.2", + "has-symbols": "^1.0.3", + "isarray": "^2.0.5" + }, + "engines": { + "node": ">=0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -4491,23 +5009,26 @@ ] }, "node_modules/safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.3.tgz", + "integrity": "sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==", "dev": true, "dependencies": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", + "call-bind": "^1.0.6", + "es-errors": "^1.3.0", "is-regex": "^1.1.4" }, + "engines": { + "node": ">= 0.4" + }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/sass": { - "version": "1.56.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.0.tgz", - "integrity": "sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==", + "version": "1.71.1", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.71.1.tgz", + "integrity": "sha512-wovtnV2PxzteLlfNzbgm1tFXPLoZILYAMJtvoXXkD7/+1uP41eKkIt1ypWq5/q2uT94qHjXehEYfmjKOvjL9sg==", "dev": true, "dependencies": { "chokidar": ">=3.0.0 <4.0.0", @@ -4518,7 +5039,7 @@ "sass": "sass.js" }, "engines": { - "node": ">=12.0.0" + "node": ">=14.0.0" } }, "node_modules/section-matter": { @@ -4547,9 +5068,9 @@ } }, "node_modules/semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", + "version": "7.6.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.6.0.tgz", + "integrity": "sha512-EnwXhrlwXMk9gKu5/flx5sv/an57AkRplG3hTK68W7FRDN+k+OWBj65M7719OkA82XLBxrcX0KSHj+X5COhOVg==", "dev": true, "dependencies": { "lru-cache": "^6.0.0" @@ -4567,6 +5088,47 @@ "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", "dev": true }, + "node_modules/serialize-javascript": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.2.tgz", + "integrity": "sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g==", + "dev": true, + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/set-function-length": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.2.1.tgz", + "integrity": "sha512-j4t6ccc+VsKwYHso+kElc5neZpjtq9EnRICFZtWyBsLojhmeF/ZBd/elqm22WJh/BziDe/SBiOeAt0m2mfLD0g==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.2", + "es-errors": "^1.3.0", + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.3", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/set-function-name": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/set-function-name/-/set-function-name-2.0.2.tgz", + "integrity": "sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.4", + "es-errors": "^1.3.0", + "functions-have-names": "^1.2.3", + "has-property-descriptors": "^1.0.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/shebang-command": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", @@ -4589,46 +5151,59 @@ } }, "node_modules/shell-quote": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", - "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.8.1.tgz", + "integrity": "sha512-6j1W9l1iAs/4xYBI1SYOVZyFcCis9b4KCLQ8fgAGG07QvzaRLVVRQvAy85yNmmZSjYjg4MWh4gNvlPujU/5LpA==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.6.tgz", + "integrity": "sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==", "dev": true, "dependencies": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "get-intrinsic": "^1.2.4", + "object-inspect": "^1.13.1" + }, + "engines": { + "node": ">= 0.4" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz", + "integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==", "dev": true, "engines": { - "node": ">=0.10.0" + "node": ">=14.16" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" } }, "node_modules/slugify": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz", - "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==", + "version": "1.6.6", + "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz", + "integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==", "dev": true, "engines": { "node": ">=8.0.0" } }, + "node_modules/smob": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/smob/-/smob-1.4.1.tgz", + "integrity": "sha512-9LK+E7Hv5R9u4g4C3p+jjLstaLe11MDsL21UpYaCNmapvMkYhqCV4A/f/3gyH8QjMyh6l68q9xC85vihY9ahMQ==", + "dev": true + }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -4647,10 +5222,20 @@ "node": ">=0.10.0" } }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.2.0.tgz", + "integrity": "sha512-kN9dJbvnySHULIluDHy32WHRUu3Og7B9sbY7tsFLctQkIqnMh3hErYgdMjTYuqmcXX+lK5T1lnUt3G7zNswmZA==", "dev": true, "dependencies": { "spdx-expression-parse": "^3.0.0", @@ -4658,9 +5243,9 @@ } }, "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.5.0.tgz", + "integrity": "sha512-PiU42r+xO4UbUS1buo3LPJkjlO7430Xn5SVAhdpzzsPHsjbYVflnnFdATgabnLude+Cqu25p6N+g2lw/PFsa4w==", "dev": true }, "node_modules/spdx-expression-parse": { @@ -4674,9 +5259,9 @@ } }, "node_modules/spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", + "version": "3.0.17", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.17.tgz", + "integrity": "sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==", "dev": true }, "node_modules/sprintf-js": { @@ -4737,14 +5322,31 @@ } }, "node_modules/string.prototype.padend": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", - "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.5.tgz", + "integrity": "sha512-DOB27b/2UTTD+4myKUFh+/fXWcu/UDyASIXfg+7VzoCNNGOfWvoyU/x5pvVHr++ztyt/oSYI1BcWBBG/hmlNjA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.2", + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/string.prototype.trim": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/string.prototype.trim/-/string.prototype.trim-1.2.8.tgz", + "integrity": "sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "engines": { "node": ">= 0.4" @@ -4754,28 +5356,28 @@ } }, "node_modules/string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.7.tgz", + "integrity": "sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.7.tgz", + "integrity": "sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==", "dev": true, "dependencies": { "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" + "define-properties": "^1.2.0", + "es-abstract": "^1.22.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -4897,6 +5499,36 @@ "url": "https://github.com/sponsors/fb55" } }, + "node_modules/terser": { + "version": "5.28.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.28.1.tgz", + "integrity": "sha512-wM+bZp54v/E9eRRGXb5ZFDvinrJIOaTapx3WUokyVGZu5ucVCK55zEgGd5Dl2fSr3jUo5sDiERErUWLY6QPFyA==", + "dev": true, + "dependencies": { + "@jridgewell/source-map": "^0.3.3", + "acorn": "^8.8.2", + "commander": "^2.20.0", + "source-map-support": "~0.5.20" + }, + "bin": { + "terser": "bin/terser" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/terser/node_modules/acorn": { + "version": "8.11.3", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.11.3.tgz", + "integrity": "sha512-Y9rRfJG5jcKOE0CLisYbojUjIrIEE7AGMzA/Sm4BslANhbS+cDMpgBdcPT91oJ7OuJ9hYJBx59RjbhxVnrF8Xg==", + "dev": true, + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, "node_modules/thenby": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", @@ -4930,38 +5562,118 @@ "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==", "dev": true }, - "node_modules/typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", + "node_modules/tslib": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz", + "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==", + "dev": true + }, + "node_modules/typed-array-buffer": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-buffer/-/typed-array-buffer-1.0.2.tgz", + "integrity": "sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==", "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" + "dependencies": { + "call-bind": "^1.0.7", + "es-errors": "^1.3.0", + "is-typed-array": "^1.1.13" }, "engines": { - "node": ">=4.2.0" + "node": ">= 0.4" } }, - "node_modules/uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "node_modules/uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "node_modules/typed-array-byte-length": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/typed-array-byte-length/-/typed-array-byte-length-1.0.1.tgz", + "integrity": "sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==", "dev": true, - "bin": { - "uglifyjs": "bin/uglifyjs" + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" }, "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/unbox-primitive": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-byte-offset": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/typed-array-byte-offset/-/typed-array-byte-offset-1.0.2.tgz", + "integrity": "sha512-Ous0vodHa56FviZucS2E63zkgtgrACj7omjwd/8lTEMEPFFyjfixMZ1ZXenpgCFBBt4EC1J2XsyVS2gkG0eTFA==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.7", + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typed-array-length": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/typed-array-length/-/typed-array-length-1.0.5.tgz", + "integrity": "sha512-yMi0PlwuznKHxKmcpoOdeLwxBoVPkqZxd7q2FgMkmD3bNwvF5VW0+UlUQ1k1vmktTu4Yu13Q0RIxEP8+B+wloA==", + "dev": true, + "dependencies": { + "call-bind": "^1.0.7", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-proto": "^1.0.3", + "is-typed-array": "^1.1.13", + "possible-typed-array-names": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/typescript": { + "version": "4.9.5", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", + "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", + "dev": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/uc.micro": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-2.1.0.tgz", + "integrity": "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A==", + "dev": true, + "peer": true + }, + "node_modules/uglify-js": { + "version": "3.17.4", + "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", + "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", + "dev": true, + "bin": { + "uglifyjs": "bin/uglifyjs" + }, + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/unbox-primitive": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", @@ -4977,9 +5689,9 @@ } }, "node_modules/universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz", + "integrity": "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw==", "dev": true, "engines": { "node": ">= 10.0.0" @@ -4995,9 +5707,9 @@ } }, "node_modules/update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz", + "integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==", "dev": true, "funding": [ { @@ -5007,6 +5719,10 @@ { "type": "tidelift", "url": "https://tidelift.com/funding/github/npm/browserslist" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" } ], "dependencies": { @@ -5014,7 +5730,7 @@ "picocolors": "^1.0.0" }, "bin": { - "browserslist-lint": "cli.js" + "update-browserslist-db": "cli.js" }, "peerDependencies": { "browserslist": ">= 4.21.0" @@ -5082,6 +5798,25 @@ "url": "https://github.com/sponsors/ljharb" } }, + "node_modules/which-typed-array": { + "version": "1.1.14", + "resolved": "https://registry.npmjs.org/which-typed-array/-/which-typed-array-1.1.14.tgz", + "integrity": "sha512-VnXFiIW8yNn9kIHN88xvZ4yOWchftKDsRJ8fEPacX/wl1lOvBrhsJ/OeJCXq7B0AaijRuqgzSKalJoPk+D8MPg==", + "dev": true, + "dependencies": { + "available-typed-arrays": "^1.0.6", + "call-bind": "^1.0.5", + "for-each": "^0.3.3", + "gopd": "^1.0.1", + "has-tostringtag": "^1.0.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/with": { "version": "7.0.2", "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", @@ -5127,9 +5862,9 @@ "dev": true }, "node_modules/ws": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", - "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", + "version": "8.16.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.16.0.tgz", + "integrity": "sha512-HS0c//TP7Ina87TfiPUz1rQzMhHrl/SG2guqRcTOIUYD2q8uhUdNHZYJUaQ8aTGPzCh+c6oawMKW35nFl1dxyQ==", "dev": true, "engines": { "node": ">=10.0.0" @@ -5172,9 +5907,9 @@ } }, "node_modules/yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "dependencies": { "cliui": "^8.0.1", @@ -5198,3754 +5933,5 @@ "node": ">=12" } } - }, - "dependencies": { - "@11ty/dependency-tree": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@11ty/dependency-tree/-/dependency-tree-2.0.1.tgz", - "integrity": "sha512-5R+DsT9LJ9tXiSQ4y+KLFppCkQyXhzAm1AIuBWE/sbU0hSXY5pkhoqQYEcPJQFg/nglL+wD55iv2j+7O96UAvg==", - "dev": true - }, - "@11ty/eleventy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/@11ty/eleventy/-/eleventy-2.0.0.tgz", - "integrity": "sha512-heNLjt1FD2nx7fvidIgA4zrIvxuslgBK0w5/Ckr5iape1CoLzmDx1uIxPa66Atr1M6YzwG9hcOxoZUYV7PfLXw==", - "dev": true, - "requires": { - "@11ty/dependency-tree": "^2.0.1", - "@11ty/eleventy-dev-server": "^1.0.3", - "@11ty/eleventy-utils": "^1.0.1", - "@iarna/toml": "^2.2.5", - "@sindresorhus/slugify": "^1.1.2", - "bcp-47-normalize": "^1.1.1", - "chokidar": "^3.5.3", - "cross-spawn": "^7.0.3", - "debug": "^4.3.4", - "dependency-graph": "^0.11.0", - "ejs": "^3.1.8", - "fast-glob": "^3.2.12", - "graceful-fs": "^4.2.10", - "gray-matter": "^4.0.3", - "hamljs": "^0.6.2", - "handlebars": "^4.7.7", - "is-glob": "^4.0.3", - "iso-639-1": "^2.1.15", - "kleur": "^4.1.5", - "liquidjs": "^10.4.0", - "lodash.chunk": "^4.2.0", - "lodash.get": "^4.4.2", - "lodash.set": "^4.3.2", - "luxon": "^3.2.1", - "markdown-it": "^13.0.1", - "micromatch": "^4.0.5", - "minimist": "^1.2.7", - "moo": "^0.5.2", - "multimatch": "^5.0.0", - "mustache": "^4.2.0", - "normalize-path": "^3.0.0", - "nunjucks": "^3.2.3", - "path-to-regexp": "^6.2.1", - "please-upgrade-node": "^3.2.0", - "posthtml": "^0.16.6", - "posthtml-urls": "^1.0.0", - "pug": "^3.0.2", - "recursive-copy": "^2.0.14", - "semver": "^7.3.8", - "slugify": "^1.6.5" - } - }, - "@11ty/eleventy-dev-server": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-dev-server/-/eleventy-dev-server-1.0.3.tgz", - "integrity": "sha512-SjYQewOO0Oo2jUI5h0Lk87pRJllDBzbdcHGZTYEf00gz966kidP1Hyd3ySaHqL4lFqW2I6jIxNVKPlhwYhp6yA==", - "dev": true, - "requires": { - "@11ty/eleventy-utils": "^1.0.1", - "chokidar": "^3.5.3", - "debug": "^4.3.4", - "dev-ip": "^1.0.1", - "finalhandler": "^1.2.0", - "mime": "^3.0.0", - "minimist": "^1.2.7", - "morphdom": "^2.6.1", - "please-upgrade-node": "^3.2.0", - "ssri": "^8.0.1", - "ws": "^8.12.0" - } - }, - "@11ty/eleventy-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@11ty/eleventy-utils/-/eleventy-utils-1.0.1.tgz", - "integrity": "sha512-HPpCTz4PzudcQU+i+x6GSNHVqgnvRhnVYg5dLKaAoRWLN966odAGsBxKSyhF8i1MdlOPtsytYb2AGWP7jISC5w==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0" - } - }, - "@aloskutov/eleventy-plugin-external-links": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@aloskutov/eleventy-plugin-external-links/-/eleventy-plugin-external-links-2.0.1.tgz", - "integrity": "sha512-Qmq1VJ75Cuoyghksuur/MnMCkovr9wTSM9+gGc/Lf9KkxjeZAFsdUUhYA7j94wZqET6lHB1GQoZ3XsaEeDrseQ==", - "dev": true, - "requires": { - "node-html-parser": "^6.1.10" - } - }, - "@babel/helper-string-parser": { - "version": "7.19.4", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz", - "integrity": "sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==", - "dev": true - }, - "@babel/helper-validator-identifier": { - "version": "7.19.1", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz", - "integrity": "sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==", - "dev": true - }, - "@babel/parser": { - "version": "7.20.3", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.20.3.tgz", - "integrity": "sha512-OP/s5a94frIPXwjzEcv5S/tpQfc6XhxYUnmWpgdqMWGgYCuErA3SzozaRAMQgSZWKeTJxht9aWAkUY+0UzvOFg==", - "dev": true - }, - "@babel/types": { - "version": "7.20.2", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.20.2.tgz", - "integrity": "sha512-FnnvsNWgZCr232sqtXggapvlkk/tuwR/qhGzcmxI0GXLCjmPYQPzio2FbdlWuY6y1sHFfQKk+rRbUZ9VStQMog==", - "dev": true, - "requires": { - "@babel/helper-string-parser": "^7.19.4", - "@babel/helper-validator-identifier": "^7.19.1", - "to-fast-properties": "^2.0.0" - } - }, - "@iarna/toml": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/@iarna/toml/-/toml-2.2.5.tgz", - "integrity": "sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg==", - "dev": true - }, - "@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - } - }, - "@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true - }, - "@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "requires": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - } - }, - "@pagefind/darwin-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pagefind/darwin-arm64/-/darwin-arm64-1.0.4.tgz", - "integrity": "sha512-2OcthvceX2xhm5XbgOmW+lT45oLuHqCmvFeFtxh1gsuP5cO8vcD8ZH8Laj4pXQFCcK6eAdSShx+Ztx/LsQWZFQ==", - "optional": true - }, - "@pagefind/darwin-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pagefind/darwin-x64/-/darwin-x64-1.0.4.tgz", - "integrity": "sha512-xkdvp0D9Ld/ZKsjo/y1bgfhTEU72ITimd2PMMQtts7jf6JPIOJbsiErCvm37m/qMFuPGEq/8d+fZ4pydOj08HQ==", - "optional": true - }, - "@pagefind/linux-arm64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pagefind/linux-arm64/-/linux-arm64-1.0.4.tgz", - "integrity": "sha512-jGBrcCzIrMnNxLKVtogaQyajVfTAXM59KlBEwg6vTn8NW4fQ6nuFbbhlG4dTIsaamjEM5e8ZBEAKZfTB/qd9xw==", - "optional": true - }, - "@pagefind/linux-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pagefind/linux-x64/-/linux-x64-1.0.4.tgz", - "integrity": "sha512-LIn/QcvcEtLEBqKe5vpSbSC2O3fvqbRCWOTIklslqSORisCsvzsWbP6j+LYxE9q0oWIfkdMoWV1vrE/oCKRxHg==", - "optional": true - }, - "@pagefind/windows-x64": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@pagefind/windows-x64/-/windows-x64-1.0.4.tgz", - "integrity": "sha512-QlBCVeZfj9fc9sbUgdOz76ZDbeK4xZihOBAFqGuRJeChfM8pnVeH9iqSnXgO3+m9oITugTf7PicyRUFAG76xeQ==", - "optional": true - }, - "@selderee/plugin-htmlparser2": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/@selderee/plugin-htmlparser2/-/plugin-htmlparser2-0.6.0.tgz", - "integrity": "sha512-J3jpy002TyBjd4N/p6s+s90eX42H2eRhK3SbsZuvTDv977/E8p2U3zikdiehyJja66do7FlxLomZLPlvl2/xaA==", - "dev": true, - "requires": { - "domhandler": "^4.2.0", - "selderee": "^0.6.0" - } - }, - "@sindresorhus/slugify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@sindresorhus/slugify/-/slugify-1.1.2.tgz", - "integrity": "sha512-V9nR/W0Xd9TSGXpZ4iFUcFGhuOJtZX82Fzxj1YISlbSgKvIiNa7eLEZrT0vAraPOt++KHauIVNYgGRgjc13dXA==", - "dev": true, - "requires": { - "@sindresorhus/transliterate": "^0.1.1", - "escape-string-regexp": "^4.0.0" - } - }, - "@sindresorhus/transliterate": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@sindresorhus/transliterate/-/transliterate-0.1.2.tgz", - "integrity": "sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==", - "dev": true, - "requires": { - "escape-string-regexp": "^2.0.0", - "lodash.deburr": "^4.1.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", - "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", - "dev": true - } - } - }, - "@trysound/sax": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@trysound/sax/-/sax-0.2.0.tgz", - "integrity": "sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA==", - "dev": true - }, - "@types/linkify-it": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/@types/linkify-it/-/linkify-it-3.0.2.tgz", - "integrity": "sha512-HZQYqbiFVWufzCwexrvh694SOim8z2d+xJl5UNamcvQFejLY/2YUtzXHYi3cHdI7PMlS8ejH2slRAOJQ32aNbA==", - "dev": true - }, - "@types/lunr": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/@types/lunr/-/lunr-2.3.4.tgz", - "integrity": "sha512-j4x4XJwZvorEUbA519VdQ5b9AOU9TSvfi8tvxMAfP8XzNLtFex7A8vFQwqOx3WACbV0KMXbACV3cZl4/gynQ7g==", - "dev": true - }, - "@types/markdown-it": { - "version": "12.2.3", - "resolved": "https://registry.npmjs.org/@types/markdown-it/-/markdown-it-12.2.3.tgz", - "integrity": "sha512-GKMHFfv3458yYy+v/N8gjufHO6MSZKCOXpZc5GXIWWy8uldwfmPn98vp81gZ5f9SVw8YYBctgfJ22a2d7AOMeQ==", - "dev": true, - "requires": { - "@types/linkify-it": "*", - "@types/mdurl": "*" - } - }, - "@types/mdurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@types/mdurl/-/mdurl-1.0.2.tgz", - "integrity": "sha512-eC4U9MlIcu2q0KQmXszyn5Akca/0jrQmwDRgpAMJai7qBWq4amIQhZyNau4VYGtCeALvW1/NtjzJJ567aZxfKA==", - "dev": true - }, - "@types/minimatch": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.5.tgz", - "integrity": "sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==", - "dev": true - }, - "a-sync-waterfall": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/a-sync-waterfall/-/a-sync-waterfall-1.0.1.tgz", - "integrity": "sha512-RYTOHHdWipFUliRFMCS4X2Yn2X8M87V/OpSqWzKKOGhzqyUxzyVmhHDH9sAvG+ZuQf/TAOFsLCpMw09I1ufUnA==", - "dev": true - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "any-promise": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/any-promise/-/any-promise-0.1.0.tgz", - "integrity": "sha512-lqzY9o+BbeGHRCOyxQkt/Tgvz0IZhTmQiA+LxQW8wSNpcTbj8K+0cZiSEvbpNZZP9/11Gy7dnLO3GNWUXO4d1g==", - "dev": true - }, - "anymatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", - "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "array-differ": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-3.0.0.tgz", - "integrity": "sha512-THtfYS6KtME/yIAhKjZ2ul7XI96lQGHRputJQHO80LAWQnuGP4iCIN8vdMRboGbIEYBwU33q8Tch1os2+X0kMg==", - "dev": true - }, - "array-union": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-2.1.0.tgz", - "integrity": "sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==", - "dev": true - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q==", - "dev": true - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==", - "dev": true - }, - "assert-never": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/assert-never/-/assert-never-1.2.1.tgz", - "integrity": "sha512-TaTivMB6pYI1kXwrFlEhLeGfOqoDNdTxjCdwRfFFkEA30Eu+k48W34nlok2EYWJfFFzqaEmichdNM7th6M5HNw==", - "dev": true - }, - "async": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.4.tgz", - "integrity": "sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==", - "dev": true - }, - "autoprefixer": { - "version": "10.4.13", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.13.tgz", - "integrity": "sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==", - "dev": true, - "requires": { - "browserslist": "^4.21.4", - "caniuse-lite": "^1.0.30001426", - "fraction.js": "^4.2.0", - "normalize-range": "^0.1.2", - "picocolors": "^1.0.0", - "postcss-value-parser": "^4.2.0" - } - }, - "babel-walk": { - "version": "3.0.0-canary-5", - "resolved": "https://registry.npmjs.org/babel-walk/-/babel-walk-3.0.0-canary-5.tgz", - "integrity": "sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==", - "dev": true, - "requires": { - "@babel/types": "^7.9.6" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true - }, - "bcp-47": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/bcp-47/-/bcp-47-1.0.8.tgz", - "integrity": "sha512-Y9y1QNBBtYtv7hcmoX0tR+tUNSFZGZ6OL6vKPObq8BbOhkCoyayF6ogfLTgAli/KuAEbsYHYUNq2AQuY6IuLag==", - "dev": true, - "requires": { - "is-alphabetical": "^1.0.0", - "is-alphanumerical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "bcp-47-match": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/bcp-47-match/-/bcp-47-match-1.0.3.tgz", - "integrity": "sha512-LggQ4YTdjWQSKELZF5JwchnBa1u0pIQSZf5lSdOHEdbVP55h0qICA/FUp3+W99q0xqxYa1ZQizTUH87gecII5w==", - "dev": true - }, - "bcp-47-normalize": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/bcp-47-normalize/-/bcp-47-normalize-1.1.1.tgz", - "integrity": "sha512-jWZ1Jdu3cs0EZdfCkS0UE9Gg01PtxnChjEBySeB+Zo6nkqtFfnvtoQQgP1qU1Oo4qgJgxhTI6Sf9y/pZIhPs0A==", - "dev": true, - "requires": { - "bcp-47": "^1.0.0", - "bcp-47-match": "^1.0.0" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", - "dev": true - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "browserslist": { - "version": "4.21.4", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", - "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001400", - "electron-to-chromium": "^1.4.251", - "node-releases": "^2.0.6", - "update-browserslist-db": "^1.0.9" - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "camel-case": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/camel-case/-/camel-case-3.0.0.tgz", - "integrity": "sha512-+MbKztAYHXPr1jNTSKQF52VpcFjwY5RkR7fxksV8Doo4KAYc5Fl4UJRgthBbTmEx8C54DqahhbLJkDwjI3PI/w==", - "dev": true, - "requires": { - "no-case": "^2.2.0", - "upper-case": "^1.1.1" - } - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001431", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001431.tgz", - "integrity": "sha512-zBUoFU0ZcxpvSt9IU66dXVT/3ctO1cy4y9cscs1szkPlcWb6pasYM144GqrUygUbT+k7cmUCW61cvskjcv0enQ==", - "dev": true - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "character-parser": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/character-parser/-/character-parser-2.2.0.tgz", - "integrity": "sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==", - "dev": true, - "requires": { - "is-regex": "^1.0.3" - } - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "dev": true, - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "clean-css": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.4.tgz", - "integrity": "sha512-EJUDT7nDVFDvaQgAo2G/PJvxmp1o/c6iXLbswsBbUFXi1Nr+AjA2cKmfbKDMjMvzEe75g3P6JkaDDAKk96A85A==", - "dev": true, - "requires": { - "source-map": "~0.6.0" - } - }, - "cliui": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", - "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.1", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "colord": { - "version": "2.9.3", - "resolved": "https://registry.npmjs.org/colord/-/colord-2.9.3.tgz", - "integrity": "sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==", - "dev": true - }, - "commander": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-5.1.0.tgz", - "integrity": "sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==", - "dev": true - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true - }, - "constantinople": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/constantinople/-/constantinople-4.0.1.tgz", - "integrity": "sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==", - "dev": true, - "requires": { - "@babel/parser": "^7.6.0", - "@babel/types": "^7.6.1" - } - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "css-declaration-sorter": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-6.3.1.tgz", - "integrity": "sha512-fBffmak0bPAnyqc/HO8C3n2sHrp9wcqQz6ES9koRF2/mLOVAx9zIQ3Y7R29sYCteTPqMCwns4WYQoCX91Xl3+w==", - "dev": true, - "requires": {} - }, - "css-select": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-5.1.0.tgz", - "integrity": "sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.1.0", - "domhandler": "^5.0.2", - "domutils": "^3.0.1", - "nth-check": "^2.0.1" - }, - "dependencies": { - "dom-serializer": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-2.0.0.tgz", - "integrity": "sha512-wIkAryiqt/nV5EQKqQpo3SToSOV9J0DnbJqwK7Wv/Trc92zIAYZ4FlMu+JPFW1DfGFt81ZTCGgDEabffXeLyJg==", - "dev": true, - "requires": { - "domelementtype": "^2.3.0", - "domhandler": "^5.0.2", - "entities": "^4.2.0" - } - }, - "domhandler": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-5.0.3.tgz", - "integrity": "sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==", - "dev": true, - "requires": { - "domelementtype": "^2.3.0" - } - }, - "domutils": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-3.0.1.tgz", - "integrity": "sha512-z08c1l761iKhDFtfXO04C7kTdPBLi41zwOZl00WS8b5eiaebNpY00HKbztwBq+e3vyqWNwWF3mP9YLUeqIrF+Q==", - "dev": true, - "requires": { - "dom-serializer": "^2.0.0", - "domelementtype": "^2.3.0", - "domhandler": "^5.0.1" - } - }, - "entities": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", - "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true - } - } - }, - "css-tree": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.3.tgz", - "integrity": "sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q==", - "dev": true, - "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - } - }, - "css-what": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", - "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", - "dev": true - }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "cssnano": { - "version": "5.1.14", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-5.1.14.tgz", - "integrity": "sha512-Oou7ihiTocbKqi0J1bB+TRJIQX5RMR3JghA8hcWSw9mjBLQ5Y3RWqEDoYG3sRNlAbCIXpqMoZGbq5KDR3vdzgw==", - "dev": true, - "requires": { - "cssnano-preset-default": "^5.2.13", - "lilconfig": "^2.0.3", - "yaml": "^1.10.2" - } - }, - "cssnano-preset-default": { - "version": "5.2.13", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-5.2.13.tgz", - "integrity": "sha512-PX7sQ4Pb+UtOWuz8A1d+Rbi+WimBIxJTRyBdgGp1J75VU0r/HFQeLnMYgHiCAp6AR4rqrc7Y4R+1Rjk3KJz6DQ==", - "dev": true, - "requires": { - "css-declaration-sorter": "^6.3.1", - "cssnano-utils": "^3.1.0", - "postcss-calc": "^8.2.3", - "postcss-colormin": "^5.3.0", - "postcss-convert-values": "^5.1.3", - "postcss-discard-comments": "^5.1.2", - "postcss-discard-duplicates": "^5.1.0", - "postcss-discard-empty": "^5.1.1", - "postcss-discard-overridden": "^5.1.0", - "postcss-merge-longhand": "^5.1.7", - "postcss-merge-rules": "^5.1.3", - "postcss-minify-font-values": "^5.1.0", - "postcss-minify-gradients": "^5.1.1", - "postcss-minify-params": "^5.1.4", - "postcss-minify-selectors": "^5.2.1", - "postcss-normalize-charset": "^5.1.0", - "postcss-normalize-display-values": "^5.1.0", - "postcss-normalize-positions": "^5.1.1", - "postcss-normalize-repeat-style": "^5.1.1", - "postcss-normalize-string": "^5.1.0", - "postcss-normalize-timing-functions": "^5.1.0", - "postcss-normalize-unicode": "^5.1.1", - "postcss-normalize-url": "^5.1.0", - "postcss-normalize-whitespace": "^5.1.1", - "postcss-ordered-values": "^5.1.3", - "postcss-reduce-initial": "^5.1.1", - "postcss-reduce-transforms": "^5.1.0", - "postcss-svgo": "^5.1.0", - "postcss-unique-selectors": "^5.1.1" - } - }, - "cssnano-utils": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cssnano-utils/-/cssnano-utils-3.1.0.tgz", - "integrity": "sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA==", - "dev": true, - "requires": {} - }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "requires": { - "css-tree": "^1.1.2" - } - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "deepmerge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", - "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", - "dev": true - }, - "define-properties": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", - "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", - "dev": true, - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "dependency-graph": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", - "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", - "dev": true - }, - "dev-ip": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/dev-ip/-/dev-ip-1.0.1.tgz", - "integrity": "sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A==", - "dev": true - }, - "dir-glob": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", - "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", - "dev": true, - "requires": { - "path-type": "^4.0.0" - }, - "dependencies": { - "path-type": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", - "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", - "dev": true - } - } - }, - "discontinuous-range": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/discontinuous-range/-/discontinuous-range-1.0.0.tgz", - "integrity": "sha512-c68LpLbO+7kP/b1Hr1qs8/BJ09F5khZGTxqxZuhzxpmwJKOgRFHJWIb9/KmqnqHhLdO55aOxFH/EGBvUQbL/RQ==", - "dev": true - }, - "doctypes": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/doctypes/-/doctypes-1.1.0.tgz", - "integrity": "sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==", - "dev": true - }, - "dom-serializer": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", - "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.0", - "entities": "^2.0.0" - }, - "dependencies": { - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - } - } - }, - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true - }, - "domhandler": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", - "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", - "dev": true, - "requires": { - "domelementtype": "^2.2.0" - } - }, - "domutils": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", - "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", - "dev": true, - "requires": { - "dom-serializer": "^1.0.1", - "domelementtype": "^2.2.0", - "domhandler": "^4.2.0" - } - }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", - "dev": true - }, - "ejs": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.1.8.tgz", - "integrity": "sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==", - "dev": true, - "requires": { - "jake": "^10.8.5" - } - }, - "electron-to-chromium": { - "version": "1.4.284", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.284.tgz", - "integrity": "sha512-M8WEXFuKXMYMVr45fo8mq0wUrrJHheiKZf6BArTKk9ZBYCKJEOU5H8cdWgDT+qCVZf7Na4lVUaZsA+h6uA9+PA==", - "dev": true - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", - "dev": true - }, - "entities": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/entities/-/entities-3.0.1.tgz", - "integrity": "sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q==", - "dev": true - }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "requires": { - "prr": "~1.0.1" - } - }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "requires": { - "is-arrayish": "^0.2.1" - } - }, - "es-abstract": { - "version": "1.20.4", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.20.4.tgz", - "integrity": "sha512-0UtvRN79eMe2L+UNEF1BwRe364sj/DXhQ/k5FmivgoSdpM90b8Jc0mDzKMGo7QS0BVbOP/bTwBKNnDc9rNzaPA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "function.prototype.name": "^1.1.5", - "get-intrinsic": "^1.1.3", - "get-symbol-description": "^1.0.0", - "has": "^1.0.3", - "has-property-descriptors": "^1.0.0", - "has-symbols": "^1.0.3", - "internal-slot": "^1.0.3", - "is-callable": "^1.2.7", - "is-negative-zero": "^2.0.2", - "is-regex": "^1.1.4", - "is-shared-array-buffer": "^1.0.2", - "is-string": "^1.0.7", - "is-weakref": "^1.0.2", - "object-inspect": "^1.12.2", - "object-keys": "^1.1.1", - "object.assign": "^4.1.4", - "regexp.prototype.flags": "^1.4.3", - "safe-regex-test": "^1.0.0", - "string.prototype.trimend": "^1.0.5", - "string.prototype.trimstart": "^1.0.5", - "unbox-primitive": "^1.0.2" - } - }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha512-NiSupZ4OeuGwr68lGIeym/ksIZMJodUGOSCZ/FSnTxcrekbvqrgdUxlJOMpijaKZVjAJrWrGs/6Jy8OMuyj9ow==", - "dev": true - }, - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true - }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug==", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", - "dev": true, - "requires": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.4" - } - }, - "fastq": { - "version": "1.13.0", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", - "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", - "dev": true, - "requires": { - "reusify": "^1.0.4" - } - }, - "fauxdom": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/fauxdom/-/fauxdom-1.1.1.tgz", - "integrity": "sha512-sp9cdKh4umFp/vVAPp8FyUEOtdt14Fo3o+LxOQFdlALYYeINGeC35lb7J1d7xL/oDX3LEezxTWdZFI7ftbu5oQ==", - "dev": true - }, - "filelist": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/filelist/-/filelist-1.0.4.tgz", - "integrity": "sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==", - "dev": true, - "requires": { - "minimatch": "^5.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0" - } - }, - "minimatch": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", - "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", - "dev": true, - "requires": { - "brace-expansion": "^2.0.1" - } - } - } - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "finalhandler": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", - "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", - "dev": true, - "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "2.4.1", - "parseurl": "~1.3.3", - "statuses": "2.0.1", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", - "dev": true - } - } - }, - "fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", - "dev": true - }, - "fs-extra": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", - "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^6.0.1", - "universalify": "^2.0.0" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==", - "dev": true - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "dev": true, - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "function.prototype.name": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/function.prototype.name/-/function.prototype.name-1.1.5.tgz", - "integrity": "sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.0", - "functions-have-names": "^1.2.2" - } - }, - "functions-have-names": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/functions-have-names/-/functions-have-names-1.2.3.tgz", - "integrity": "sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "get-intrinsic": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.3.tgz", - "integrity": "sha512-QJVz1Tj7MS099PevUG5jvnt9tSkXN8K14dxQlikJuPt4uD9hHAHjLyLBiLR5zELelBdD9QNRAXZzsJx0WaDL9A==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "get-stdin": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz", - "integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==", - "dev": true - }, - "get-symbol-description": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/get-symbol-description/-/get-symbol-description-1.0.0.tgz", - "integrity": "sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.1" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dev": true, - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "requires": { - "is-glob": "^4.0.1" - } - }, - "globby": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/globby/-/globby-13.1.2.tgz", - "integrity": "sha512-LKSDZXToac40u8Q1PQtZihbNdTYSNMuWe+K5l+oa6KgDzSvVrHXlJy40hUP522RjAIoNLJYBJi7ow+rbFpIhHQ==", - "dev": true, - "requires": { - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.11", - "ignore": "^5.2.0", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "dependencies": { - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } - } - }, - "graceful-fs": { - "version": "4.2.10", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", - "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", - "dev": true - }, - "gray-matter": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/gray-matter/-/gray-matter-4.0.3.tgz", - "integrity": "sha512-5v6yZd4JK3eMI3FqqCouswVqwugaA9r4dNZB1wwcmrD02QkV5H0y7XBQW8QwQqEaZY1pM9aqORSORhJRdNK44Q==", - "dev": true, - "requires": { - "js-yaml": "^3.13.1", - "kind-of": "^6.0.2", - "section-matter": "^1.0.0", - "strip-bom-string": "^1.0.0" - } - }, - "hamljs": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/hamljs/-/hamljs-0.6.2.tgz", - "integrity": "sha512-/chXRp4WpL47I+HX1vCCdSbEXAljEG2FBMmgO7Am0bYsqgnEjreeWzUdX1onXqwZtcfgxbCg5WtEYYvuZ5muBg==", - "dev": true - }, - "handlebars": { - "version": "4.7.7", - "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz", - "integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==", - "dev": true, - "requires": { - "minimist": "^1.2.5", - "neo-async": "^2.6.0", - "source-map": "^0.6.1", - "uglify-js": "^3.1.4", - "wordwrap": "^1.0.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-bigints": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/has-bigints/-/has-bigints-1.0.2.tgz", - "integrity": "sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "dev": true - }, - "has-tostringtag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-tostringtag/-/has-tostringtag-1.0.0.tgz", - "integrity": "sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "dev": true - }, - "highlight.js": { - "version": "11.9.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.9.0.tgz", - "integrity": "sha512-fJ7cW7fQGCYAkgv4CPfwFHrfd/cLS4Hau96JuJ+ZTOWhjnhoeN1ub1tFmALm/+lW5z4WCAuAV9bm05AP0mS6Gw==", - "dev": true - }, - "highlightjs-svelte": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/highlightjs-svelte/-/highlightjs-svelte-1.0.6.tgz", - "integrity": "sha512-aXuBPz8df3sOXg90q8rRcBLyxIR8ozPU39a6tJ2rpJUjjd9brRIr55aC0IccW4gsPhQxZ+B3rFugdXsg9/ckDw==", - "dev": true - }, - "hosted-git-info": { - "version": "2.8.9", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", - "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==", - "dev": true - }, - "html-minifier": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/html-minifier/-/html-minifier-4.0.0.tgz", - "integrity": "sha512-aoGxanpFPLg7MkIl/DDFYtb0iWz7jMFGqFhvEDZga6/4QTjneiD8I/NXL1x5aaoCp7FSIT6h/OhykDdPsbtMig==", - "dev": true, - "requires": { - "camel-case": "^3.0.0", - "clean-css": "^4.2.1", - "commander": "^2.19.0", - "he": "^1.2.0", - "param-case": "^2.1.1", - "relateurl": "^0.2.7", - "uglify-js": "^3.5.1" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, - "html-to-text": { - "version": "8.2.1", - "resolved": "https://registry.npmjs.org/html-to-text/-/html-to-text-8.2.1.tgz", - "integrity": "sha512-aN/3JvAk8qFsWVeE9InWAWueLXrbkoVZy0TkzaGhoRBC2gCFEeRLDDJN3/ijIGHohy6H+SZzUQWN/hcYtaPK8w==", - "dev": true, - "requires": { - "@selderee/plugin-htmlparser2": "^0.6.0", - "deepmerge": "^4.2.2", - "he": "^1.2.0", - "htmlparser2": "^6.1.0", - "minimist": "^1.2.6", - "selderee": "^0.6.0" - }, - "dependencies": { - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - }, - "htmlparser2": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-6.1.0.tgz", - "integrity": "sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.0.0", - "domutils": "^2.5.2", - "entities": "^2.0.0" - } - } - } - }, - "htmlparser2": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-7.2.0.tgz", - "integrity": "sha512-H7MImA4MS6cw7nbyURtLPO1Tms7C5H602LRETv95z1MxO/7CP7rDVROehUYeYBUYEON94NXXDEPmZuq+hX4sog==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "domhandler": "^4.2.2", - "domutils": "^2.8.0", - "entities": "^3.0.1" - } - }, - "http-equiv-refresh": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/http-equiv-refresh/-/http-equiv-refresh-1.0.0.tgz", - "integrity": "sha512-TScO04soylRN9i/QdOdgZyhydXg9z6XdaGzEyOgDKycePeDeTT4KvigjBcI+tgfTlieLWauGORMq5F1eIDa+1w==", - "dev": true - }, - "ignore": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", - "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", - "dev": true - }, - "immutable": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", - "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", - "dev": true - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dev": true, - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "internal-slot": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/internal-slot/-/internal-slot-1.0.3.tgz", - "integrity": "sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==", - "dev": true, - "requires": { - "get-intrinsic": "^1.1.0", - "has": "^1.0.3", - "side-channel": "^1.0.4" - } - }, - "is-alphabetical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-1.0.4.tgz", - "integrity": "sha512-DwzsA04LQ10FHTZuL0/grVDk4rFoVH1pjAToYwBrHSxcrBIGQuXrQMtD5U1b0U2XVgKZCTLLP8u2Qxqhy3l2Vg==", - "dev": true - }, - "is-alphanumerical": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-1.0.4.tgz", - "integrity": "sha512-UzoZUr+XfVz3t3v4KyGEniVL9BDRoQtY7tOyrRybkVNjDFWyo1yhXNGrrBTQxp3ib9BLAWs7k2YKBQsFRkZG9A==", - "dev": true, - "requires": { - "is-alphabetical": "^1.0.0", - "is-decimal": "^1.0.0" - } - }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", - "dev": true - }, - "is-bigint": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-bigint/-/is-bigint-1.0.4.tgz", - "integrity": "sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==", - "dev": true, - "requires": { - "has-bigints": "^1.0.1" - } - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-boolean-object": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/is-boolean-object/-/is-boolean-object-1.1.2.tgz", - "integrity": "sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-callable": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.7.tgz", - "integrity": "sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==", - "dev": true - }, - "is-core-module": { - "version": "2.11.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.11.0.tgz", - "integrity": "sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==", - "dev": true, - "requires": { - "has": "^1.0.3" - } - }, - "is-date-object": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.5.tgz", - "integrity": "sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-decimal": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-1.0.4.tgz", - "integrity": "sha512-RGdriMmQQvZ2aqaQq3awNA6dCGtKpiDFcOzrTWrDAT2MiWrKQVPmxLGHl7Y2nNu6led0kEyoX0enY0qXYsv9zw==", - "dev": true - }, - "is-expression": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-expression/-/is-expression-4.0.0.tgz", - "integrity": "sha512-zMIXX63sxzG3XrkHkrAPvm/OVZVSCPNkwMHU8oTX7/U3AL78I0QXCEICXUM13BIa8TYGZ68PiTKfQz3yaTNr4A==", - "dev": true, - "requires": { - "acorn": "^7.1.1", - "object-assign": "^4.1.1" - } - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw==", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-json": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-json/-/is-json-2.0.1.tgz", - "integrity": "sha512-6BEnpVn1rcf3ngfmViLM6vjUjGErbdrL4rwlv+u1NO1XO8kqT4YGL8+19Q+Z/bas8tY90BTWMk2+fW1g6hQjbA==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.2.tgz", - "integrity": "sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==", - "dev": true - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true - }, - "is-number-object": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-number-object/-/is-number-object-1.0.7.tgz", - "integrity": "sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "is-regex": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.4.tgz", - "integrity": "sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-tostringtag": "^1.0.0" - } - }, - "is-shared-array-buffer": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-shared-array-buffer/-/is-shared-array-buffer-1.0.2.tgz", - "integrity": "sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "is-string": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/is-string/-/is-string-1.0.7.tgz", - "integrity": "sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==", - "dev": true, - "requires": { - "has-tostringtag": "^1.0.0" - } - }, - "is-symbol": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.4.tgz", - "integrity": "sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==", - "dev": true, - "requires": { - "has-symbols": "^1.0.2" - } - }, - "is-weakref": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-weakref/-/is-weakref-1.0.2.tgz", - "integrity": "sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2" - } - }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true - }, - "iso-639-1": { - "version": "2.1.15", - "resolved": "https://registry.npmjs.org/iso-639-1/-/iso-639-1-2.1.15.tgz", - "integrity": "sha512-7c7mBznZu2ktfvyT582E2msM+Udc1EjOyhVRE/0ZsjD9LBtWSm23h3PtiRh2a35XoUsTQQjJXaJzuLjXsOdFDg==", - "dev": true - }, - "jake": { - "version": "10.8.5", - "resolved": "https://registry.npmjs.org/jake/-/jake-10.8.5.tgz", - "integrity": "sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==", - "dev": true, - "requires": { - "async": "^3.2.3", - "chalk": "^4.0.2", - "filelist": "^1.0.1", - "minimatch": "^3.0.4" - } - }, - "js-stringify": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/js-stringify/-/js-stringify-1.0.2.tgz", - "integrity": "sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==", - "dev": true - }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - } - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json5": { - "version": "2.2.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz", - "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==", - "dev": true - }, - "jsonfile": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", - "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6", - "universalify": "^2.0.0" - } - }, - "jstransformer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/jstransformer/-/jstransformer-1.0.0.tgz", - "integrity": "sha512-C9YK3Rf8q6VAPDCCU9fnqo3mAfOH6vUGnMcP4AQAYIEpWtfGLpwOTmZ+igtdK5y+VvI2n3CyYSzy4Qh34eq24A==", - "dev": true, - "requires": { - "is-promise": "^2.0.0", - "promise": "^7.0.1" - } - }, - "junk": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/junk/-/junk-1.0.3.tgz", - "integrity": "sha512-3KF80UaaSSxo8jVnRYtMKNGFOoVPBdkkVPsw+Ad0y4oxKXPduS6G6iHkrf69yJVff/VAaYXkV42rtZ7daJxU3w==", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true - }, - "kleur": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.5.tgz", - "integrity": "sha512-o+NO+8WrRiQEE4/7nwRJhN1HWpVmJm511pBHUxPLtp0BUISzlBplORYSmTclCnJvQq2tKu/sgl3xVpkc7ZWuQQ==", - "dev": true - }, - "lilconfig": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.0.6.tgz", - "integrity": "sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==", - "dev": true - }, - "linkify-it": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/linkify-it/-/linkify-it-4.0.1.tgz", - "integrity": "sha512-C7bfi1UZmoj8+PQx22XyeXCuBlokoyWQL5pWSP+EI6nzRylyThouddufc2c1NDIcP9k5agmN9fLpA7VNJfIiqw==", - "dev": true, - "requires": { - "uc.micro": "^1.0.1" - } - }, - "liquidjs": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/liquidjs/-/liquidjs-10.4.0.tgz", - "integrity": "sha512-4fpR8KFJ96bXkzynK9Yo1jwn7sjOkJfKawSbEXINc39DZfy7r5SYtcAM5T/Ccg5n0xoZf6ap5Gap4VwFCJiQ1g==", - "dev": true - }, - "list-to-array": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/list-to-array/-/list-to-array-1.1.0.tgz", - "integrity": "sha512-+dAZZ2mM+/m+vY9ezfoueVvrgnHIGi5FvgSymbIgJOFwiznWyA59mav95L+Mc6xPtL3s9gm5eNTlNtxJLbNM1g==", - "dev": true - }, - "load-json-file": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-4.0.0.tgz", - "integrity": "sha512-Kx8hMakjX03tiGTLAIdJ+lL0htKnXjEZN6hk/tozf/WOuYGdZBJrZ+rCJRbVCugsjB3jMLn9746NsQIf5VjBMw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "parse-json": "^4.0.0", - "pify": "^3.0.0", - "strip-bom": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true - } - } - }, - "lodash.chunk": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.chunk/-/lodash.chunk-4.2.0.tgz", - "integrity": "sha512-ZzydJKfUHJwHa+hF5X66zLFCBrWn5GeF28OHEr4WVWtNDXlQ/IjWKPBiikqKo2ne0+v6JgCgJ0GzJp8k8bHC7w==", - "dev": true - }, - "lodash.deburr": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/lodash.deburr/-/lodash.deburr-4.1.0.tgz", - "integrity": "sha512-m/M1U1f3ddMCs6Hq2tAsYThTBDaAKFDX3dwDo97GEYzamXi9SqUpjWi/Rrj/gf3X2n8ktwgZrlP1z6E3v/IExQ==", - "dev": true - }, - "lodash.get": { - "version": "4.4.2", - "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz", - "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==", - "dev": true - }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==", - "dev": true - }, - "lodash.set": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/lodash.set/-/lodash.set-4.3.2.tgz", - "integrity": "sha512-4hNPN5jlm/N/HLMCO43v8BXKq9Z7QdAGc/VGrRD61w8gN9g/6jF9A4L1pbUgBLCffi0w9VsXfTOij5x8iTyFvg==", - "dev": true - }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ==", - "dev": true - }, - "lower-case": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-1.1.4.tgz", - "integrity": "sha512-2Fgx1Ycm599x+WGpIYwJOvsjmXFzTSc34IwDWALRA/8AopUKAVPwfJ+h5+f85BCp0PWmmJcWzEpxOpoXycMpdA==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "lunr": { - "version": "2.3.9", - "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz", - "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==", - "dev": true - }, - "luxon": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/luxon/-/luxon-3.2.1.tgz", - "integrity": "sha512-QrwPArQCNLAKGO/C+ZIilgIuDnEnKx5QYODdDtbFaxzsbZcc/a7WFq7MhsVYgRlwawLtvOUESTlfJ+hc/USqPg==", - "dev": true - }, - "markdown-it": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/markdown-it/-/markdown-it-13.0.1.tgz", - "integrity": "sha512-lTlxriVoy2criHP0JKRhO2VDG9c2ypWCsT237eDiLqi09rmbKoUetyGHq2uOIRoRS//kfoJckS0eUzzkDR+k2Q==", - "dev": true, - "requires": { - "argparse": "^2.0.1", - "entities": "~3.0.1", - "linkify-it": "^4.0.1", - "mdurl": "^1.0.1", - "uc.micro": "^1.0.5" - }, - "dependencies": { - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true - } - } - }, - "markdown-it-anchor": { - "version": "8.6.6", - "resolved": "https://registry.npmjs.org/markdown-it-anchor/-/markdown-it-anchor-8.6.6.tgz", - "integrity": "sha512-jRW30YGywD2ESXDc+l17AiritL0uVaSnWsb26f+68qaW9zgbIIr1f4v2Nsvc0+s0Z2N3uX6t/yAw7BwCQ1wMsA==", - "dev": true, - "requires": {} - }, - "markdown-it-attrs": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/markdown-it-attrs/-/markdown-it-attrs-4.1.4.tgz", - "integrity": "sha512-53Zfv8PTb6rlVFDlD106xcZHKBSsRZKJ2IW/rTxEJBEVbVaoxaNsmRkG0HXfbHl2SK8kaxZ2QKqdthWy/QBwmA==", - "dev": true, - "requires": {} - }, - "markdown-it-container": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/markdown-it-container/-/markdown-it-container-3.0.0.tgz", - "integrity": "sha512-y6oKTq4BB9OQuY/KLfk/O3ysFhB3IMYoIWhGJEidXt1NQFocFK2sA2t0NYZAMyMShAGL6x5OPIbrmXPIqaN9rw==", - "dev": true - }, - "maximatch": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/maximatch/-/maximatch-0.1.0.tgz", - "integrity": "sha512-9ORVtDUFk4u/NFfo0vG/ND/z7UQCVZBL539YW0+U1I7H1BkZwizcPx5foFv7LCPcBnm2U6RjFnQOsIvN4/Vm2A==", - "dev": true, - "requires": { - "array-differ": "^1.0.0", - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "minimatch": "^3.0.0" - }, - "dependencies": { - "array-differ": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/array-differ/-/array-differ-1.0.0.tgz", - "integrity": "sha512-LeZY+DZDRnvP7eMuQ6LHfCzUGxAAIViUBliK24P3hWXL6y4SortgR6Nim6xrkfSLlmH0+k+9NYNwVC2s53ZrYQ==", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng==", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "dev": true - } - } - }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "mdurl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz", - "integrity": "sha512-/sKlQJCBYVY9Ers9hqzKou4H6V5UWc/M59TH2dvkt+84itfnq7uFOMLpOiOS4ujvHP4etln18fmIxA5R5fll0g==", - "dev": true - }, - "memorystream": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/memorystream/-/memorystream-0.3.1.tgz", - "integrity": "sha512-S3UwM3yj5mtUSEfP41UZmt/0SCoVYUcU1rkXv+BQ5Ig8ndL4sPoJNBUJERafdPb5jjHJGuMgytgKvKIf58XNBw==", - "dev": true - }, - "merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true - }, - "micromatch": { - "version": "4.0.5", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", - "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", - "dev": true, - "requires": { - "braces": "^3.0.2", - "picomatch": "^2.3.1" - } - }, - "mime": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-3.0.0.tgz", - "integrity": "sha512-jSCU7/VB1loIWBZe14aEYHU/+1UMEHoaO7qxCOVJOw9GgH72VAWppxNcjU+x9a2k3GSIBXNKxXQFqRvvZ7vr3A==", - "dev": true - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.7.tgz", - "integrity": "sha512-bzfL1YUZsP41gmu/qjrEk0Q6i2ix/cVeAhbCbqH9u3zYutS1cLg00qhrD0M2MVdCcx4Sc0UpP2eBWo9rotpq6g==", - "dev": true - }, - "minipass": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz", - "integrity": "sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dev": true, - "requires": { - "minimist": "^1.2.6" - } - }, - "moo": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/moo/-/moo-0.5.2.tgz", - "integrity": "sha512-iSAJLHYKnX41mKcJKjqvnAN9sf0LMDTXDEvFv+ffuRR9a1MIuXLjMNL6EsnDHSkKLTWNqQQ5uo61P4EbU4NU+Q==", - "dev": true - }, - "morphdom": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/morphdom/-/morphdom-2.6.1.tgz", - "integrity": "sha512-Y8YRbAEP3eKykroIBWrjcfMw7mmwJfjhqdpSvoqinu8Y702nAwikpXcNFDiIkyvfCLxLM9Wu95RZqo4a9jFBaA==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "multimatch": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/multimatch/-/multimatch-5.0.0.tgz", - "integrity": "sha512-ypMKuglUrZUD99Tk2bUQ+xNQj43lPEfAeX2o9cTteAmShXy2VHDJpuwu1o0xqoKCt9jLVAvwyFKdLTPXKAfJyA==", - "dev": true, - "requires": { - "@types/minimatch": "^3.0.3", - "array-differ": "^3.0.0", - "array-union": "^2.1.0", - "arrify": "^2.0.1", - "minimatch": "^3.0.4" - } - }, - "mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "dev": true - }, - "nanoid": { - "version": "3.3.6", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.6.tgz", - "integrity": "sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==", - "dev": true - }, - "nearley": { - "version": "2.20.1", - "resolved": "https://registry.npmjs.org/nearley/-/nearley-2.20.1.tgz", - "integrity": "sha512-+Mc8UaAebFzgV+KpI5n7DasuuQCHA89dmwm7JXw3TV43ukfNQ9DnBH3Mdb2g/I4Fdxc26pwimBWvjIw0UAILSQ==", - "dev": true, - "requires": { - "commander": "^2.19.0", - "moo": "^0.5.0", - "railroad-diagrams": "^1.0.0", - "randexp": "0.4.6" - }, - "dependencies": { - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - } - } - }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "no-case": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-2.3.2.tgz", - "integrity": "sha512-rmTZ9kz+f3rCvK2TD1Ue/oZlns7OGoIWP4fc3llxxRXlOkHKoWPPWJOfFYpITabSow43QJbRIoHQXtt10VldyQ==", - "dev": true, - "requires": { - "lower-case": "^1.1.1" - } - }, - "node-html-parser": { - "version": "6.1.10", - "resolved": "https://registry.npmjs.org/node-html-parser/-/node-html-parser-6.1.10.tgz", - "integrity": "sha512-6/uWdWxjQWQ7tMcFK2wWlrflsQUzh1HsEzlIf2j5+TtzfhT2yUvg3DwZYAmjEHeR3uX74ko7exjHW69J0tOzIg==", - "dev": true, - "requires": { - "css-select": "^5.1.0", - "he": "1.2.0" - } - }, - "node-releases": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true - }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", - "dev": true - }, - "normalize-url": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-6.1.0.tgz", - "integrity": "sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A==", - "dev": true - }, - "npm-run-all": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/npm-run-all/-/npm-run-all-4.1.5.tgz", - "integrity": "sha512-Oo82gJDAVcaMdi3nuoKFavkIHBRVqQ1qvMb+9LHk/cF4P6B2m8aP04hGf7oL6wZ9BuGwX1onlLhpuoofSyoQDQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "chalk": "^2.4.1", - "cross-spawn": "^6.0.5", - "memorystream": "^0.3.1", - "minimatch": "^3.0.4", - "pidtree": "^0.3.0", - "read-pkg": "^3.0.0", - "shell-quote": "^1.6.1", - "string.prototype.padend": "^3.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==", - "dev": true - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "dev": true - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==", - "dev": true - }, - "semver": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz", - "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==", - "dev": true - }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", - "dev": true, - "requires": { - "shebang-regex": "^1.0.0" - } - }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", - "dev": true - }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } - }, - "which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - } - } - }, - "nth-check": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", - "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", - "dev": true, - "requires": { - "boolbase": "^1.0.0" - } - }, - "nunjucks": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/nunjucks/-/nunjucks-3.2.4.tgz", - "integrity": "sha512-26XRV6BhkgK0VOxfbU5cQI+ICFUtMLixv1noZn1tGU38kQH5A5nmmbk/O45xdyBhD1esk47nKrY0mvQpZIhRjQ==", - "dev": true, - "requires": { - "a-sync-waterfall": "^1.0.0", - "asap": "^2.0.3", - "commander": "^5.1.0" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "dev": true - }, - "object-inspect": { - "version": "1.12.2", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", - "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", - "dev": true - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true - }, - "object.assign": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.4.tgz", - "integrity": "sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "has-symbols": "^1.0.3", - "object-keys": "^1.1.1" - } - }, - "on-finished": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", - "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dev": true, - "requires": { - "wrappy": "1" - } - }, - "pagefind": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/pagefind/-/pagefind-1.0.4.tgz", - "integrity": "sha512-oRIizYe+zSI2Jw4zcMU0ebDZm27751hRFiSOBLwc1OIYMrsZKk+3m8p9EVaOmc6zZdtqwwdilNUNxXvBeHcP9w==", - "requires": { - "@pagefind/darwin-arm64": "1.0.4", - "@pagefind/darwin-x64": "1.0.4", - "@pagefind/linux-arm64": "1.0.4", - "@pagefind/linux-x64": "1.0.4", - "@pagefind/windows-x64": "1.0.4" - } - }, - "param-case": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/param-case/-/param-case-2.1.1.tgz", - "integrity": "sha512-eQE845L6ot89sk2N8liD8HAuH4ca6Vvr7VWAWwt7+kvvG5aBcPmmphQ68JsEG2qa9n1TykS2DLeMt363AAH8/w==", - "dev": true, - "requires": { - "no-case": "^2.2.0" - } - }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw==", - "dev": true, - "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - } - }, - "parse-srcset": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz", - "integrity": "sha512-/2qh0lav6CmI15FzA3i/2Bzk2zCgQhGMkvhOhKNcBVQ1ldgpbfiNTVslmooUmWJcADi1f1kIeynbDRVzNlfR6Q==", - "dev": true - }, - "parseley": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/parseley/-/parseley-0.7.0.tgz", - "integrity": "sha512-xyOytsdDu077M3/46Am+2cGXEKM9U9QclBDv7fimY7e+BBlxh2JcBp2mgNsmkyA9uvgyTjVzDi7cP1v4hcFxbw==", - "dev": true, - "requires": { - "moo": "^0.5.1", - "nearley": "^2.20.1" - } - }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "dev": true - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", - "dev": true - }, - "path-to-regexp": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-6.2.1.tgz", - "integrity": "sha512-JLyh7xT1kizaEvcaXOQwOc2/Yhw6KZOvPf1S8401UyLk86CU79LN3vl7ztXGm/pZ+YjoyAJ4rxmHwbkBXJX+yw==", - "dev": true - }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "requires": { - "pify": "^3.0.0" - }, - "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg==", - "dev": true - } - } - }, - "picocolors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", - "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==", - "dev": true - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true - }, - "pidtree": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/pidtree/-/pidtree-0.3.1.tgz", - "integrity": "sha512-qQbW94hLHEqCg7nhby4yRC7G2+jYHY4Rguc2bjw7Uug4GIJuu1tvf2uHaZv5Q8zdt+WKJ6qK1FOI6amaWUo5FA==", - "dev": true - }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", - "dev": true - }, - "please-upgrade-node": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/please-upgrade-node/-/please-upgrade-node-3.2.0.tgz", - "integrity": "sha512-gQR3WpIgNIKwBMVLkpMUeR3e1/E1y42bqDQZfql+kDeXd8COYfM8PQA4X6y7a8u9Ua9FHmsrrmirW2vHs45hWg==", - "dev": true, - "requires": { - "semver-compare": "^1.0.0" - } - }, - "postcss": { - "version": "8.4.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", - "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", - "dev": true, - "requires": { - "nanoid": "^3.3.6", - "picocolors": "^1.0.0", - "source-map-js": "^1.0.2" - } - }, - "postcss-calc": { - "version": "8.2.4", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-8.2.4.tgz", - "integrity": "sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.9", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-cli": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-10.0.0.tgz", - "integrity": "sha512-Wjy/00wBBEgQqnSToznxLWDnATznokFGXsHtF/3G8glRZpz5KYlfHcBW/VMJmWAeF2x49zjgy4izjM3/Wx1dKA==", - "dev": true, - "requires": { - "chokidar": "^3.3.0", - "dependency-graph": "^0.11.0", - "fs-extra": "^10.0.0", - "get-stdin": "^9.0.0", - "globby": "^13.0.0", - "picocolors": "^1.0.0", - "postcss-load-config": "^4.0.0", - "postcss-reporter": "^7.0.0", - "pretty-hrtime": "^1.0.3", - "read-cache": "^1.0.0", - "slash": "^4.0.0", - "yargs": "^17.0.0" - }, - "dependencies": { - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } - } - }, - "postcss-colormin": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-5.3.0.tgz", - "integrity": "sha512-WdDO4gOFG2Z8n4P8TWBpshnL3JpmNmJwdnfP2gbk2qBA8PWwOYcmjmI/t3CmMeL72a7Hkd+x/Mg9O2/0rD54Pg==", - "dev": true, - "requires": { - "browserslist": "^4.16.6", - "caniuse-api": "^3.0.0", - "colord": "^2.9.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-convert-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz", - "integrity": "sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA==", - "dev": true, - "requires": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-discard-comments": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz", - "integrity": "sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ==", - "dev": true, - "requires": {} - }, - "postcss-discard-duplicates": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz", - "integrity": "sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw==", - "dev": true, - "requires": {} - }, - "postcss-discard-empty": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz", - "integrity": "sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A==", - "dev": true, - "requires": {} - }, - "postcss-discard-overridden": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz", - "integrity": "sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw==", - "dev": true, - "requires": {} - }, - "postcss-load-config": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.1.tgz", - "integrity": "sha512-vEJIc8RdiBRu3oRAI0ymerOn+7rPuMvRXslTvZUKZonDHFIczxztIyJ1urxM1x9JXEikvpWWTUUqal5j/8QgvA==", - "dev": true, - "requires": { - "lilconfig": "^2.0.5", - "yaml": "^2.1.1" - }, - "dependencies": { - "yaml": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-2.3.2.tgz", - "integrity": "sha512-N/lyzTPaJasoDmfV7YTrYCI0G/3ivm/9wdG0aHuheKowWQwGTsK0Eoiw6utmzAnI6pkJa0DUVygvp3spqqEKXg==", - "dev": true - } - } - }, - "postcss-merge-longhand": { - "version": "5.1.7", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz", - "integrity": "sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0", - "stylehacks": "^5.1.1" - } - }, - "postcss-merge-rules": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-5.1.3.tgz", - "integrity": "sha512-LbLd7uFC00vpOuMvyZop8+vvhnfRGpp2S+IMQKeuOZZapPRY4SMq5ErjQeHbHsjCUgJkRNrlU+LmxsKIqPKQlA==", - "dev": true, - "requires": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0", - "cssnano-utils": "^3.1.0", - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-minify-font-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz", - "integrity": "sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-gradients": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz", - "integrity": "sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw==", - "dev": true, - "requires": { - "colord": "^2.9.1", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-params": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz", - "integrity": "sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw==", - "dev": true, - "requires": { - "browserslist": "^4.21.4", - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-minify-selectors": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz", - "integrity": "sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-normalize-charset": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz", - "integrity": "sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg==", - "dev": true, - "requires": {} - }, - "postcss-normalize-display-values": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz", - "integrity": "sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-positions": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz", - "integrity": "sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-repeat-style": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz", - "integrity": "sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-string": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz", - "integrity": "sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-timing-functions": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz", - "integrity": "sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-unicode": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz", - "integrity": "sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA==", - "dev": true, - "requires": { - "browserslist": "^4.21.4", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz", - "integrity": "sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew==", - "dev": true, - "requires": { - "normalize-url": "^6.0.1", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-normalize-whitespace": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz", - "integrity": "sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-ordered-values": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz", - "integrity": "sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ==", - "dev": true, - "requires": { - "cssnano-utils": "^3.1.0", - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-reduce-initial": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-5.1.1.tgz", - "integrity": "sha512-//jeDqWcHPuXGZLoolFrUXBDyuEGbr9S2rMo19bkTIjBQ4PqkaO+oI8wua5BOUxpfi97i3PCoInsiFIEBfkm9w==", - "dev": true, - "requires": { - "browserslist": "^4.21.4", - "caniuse-api": "^3.0.0" - } - }, - "postcss-reduce-transforms": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz", - "integrity": "sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0" - } - }, - "postcss-reporter": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-reporter/-/postcss-reporter-7.0.5.tgz", - "integrity": "sha512-glWg7VZBilooZGOFPhN9msJ3FQs19Hie7l5a/eE6WglzYqVeH3ong3ShFcp9kDWJT1g2Y/wd59cocf9XxBtkWA==", - "dev": true, - "requires": { - "picocolors": "^1.0.0", - "thenby": "^1.3.4" - } - }, - "postcss-selector-parser": { - "version": "6.0.10", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", - "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "util-deprecate": "^1.0.2" - } - }, - "postcss-svgo": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-5.1.0.tgz", - "integrity": "sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA==", - "dev": true, - "requires": { - "postcss-value-parser": "^4.2.0", - "svgo": "^2.7.0" - } - }, - "postcss-unique-selectors": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz", - "integrity": "sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA==", - "dev": true, - "requires": { - "postcss-selector-parser": "^6.0.5" - } - }, - "postcss-value-parser": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", - "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", - "dev": true - }, - "posthtml": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.16.6.tgz", - "integrity": "sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==", - "dev": true, - "requires": { - "posthtml-parser": "^0.11.0", - "posthtml-render": "^3.0.0" - } - }, - "posthtml-noopener": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/posthtml-noopener/-/posthtml-noopener-1.0.5.tgz", - "integrity": "sha512-IfCGJDYNESTUjNAUwdc9JQIJ7g6ie9fW/mbvTiCxZdSJ2w25YobtjoQsI2Nv7Ad6frjyQOM6C+gi2Yi+5uMOyA==", - "dev": true, - "requires": { - "posthtml": "^0.12.0" - }, - "dependencies": { - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", - "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", - "dev": true - }, - "entities": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", - "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", - "dev": true - } - } - }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "domhandler": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", - "integrity": "sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA==", - "dev": true, - "requires": { - "domelementtype": "1" - } - }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "requires": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "entities": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz", - "integrity": "sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w==", - "dev": true - }, - "htmlparser2": { - "version": "3.10.1", - "resolved": "https://registry.npmjs.org/htmlparser2/-/htmlparser2-3.10.1.tgz", - "integrity": "sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ==", - "dev": true, - "requires": { - "domelementtype": "^1.3.1", - "domhandler": "^2.3.0", - "domutils": "^1.5.1", - "entities": "^1.1.1", - "inherits": "^2.0.1", - "readable-stream": "^3.1.1" - } - }, - "posthtml": { - "version": "0.12.3", - "resolved": "https://registry.npmjs.org/posthtml/-/posthtml-0.12.3.tgz", - "integrity": "sha512-Fbpi95+JJyR0tqU7pUy1zTSQFjAsluuwB9pJ1h0jtnGk7n/O2TBtP5nDl9rV0JVACjQ1Lm5wSp4ppChr8u3MhA==", - "dev": true, - "requires": { - "posthtml-parser": "^0.4.2", - "posthtml-render": "^1.2.2" - } - }, - "posthtml-parser": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.4.2.tgz", - "integrity": "sha512-BUIorsYJTvS9UhXxPTzupIztOMVNPa/HtAm9KHni9z6qEfiJ1bpOBL5DfUOL9XAc3XkLIEzBzpph+Zbm4AdRAg==", - "dev": true, - "requires": { - "htmlparser2": "^3.9.2" - } - }, - "posthtml-render": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-1.4.0.tgz", - "integrity": "sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw==", - "dev": true - } - } - }, - "posthtml-parser": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/posthtml-parser/-/posthtml-parser-0.11.0.tgz", - "integrity": "sha512-QecJtfLekJbWVo/dMAA+OSwY79wpRmbqS5TeXvXSX+f0c6pW4/SE6inzZ2qkU7oAMCPqIDkZDvd/bQsSFUnKyw==", - "dev": true, - "requires": { - "htmlparser2": "^7.1.1" - } - }, - "posthtml-render": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/posthtml-render/-/posthtml-render-3.0.0.tgz", - "integrity": "sha512-z+16RoxK3fUPgwaIgH9NGnK1HKY9XIDpydky5eQGgAFVXTCSezalv9U2jQuNV+Z9qV1fDWNzldcw4eK0SSbqKA==", - "dev": true, - "requires": { - "is-json": "^2.0.1" - } - }, - "posthtml-urls": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/posthtml-urls/-/posthtml-urls-1.0.0.tgz", - "integrity": "sha512-CMJ0L009sGQVUuYM/g6WJdscsq6ooAwhUuF6CDlYPMLxKp2rmCYVebEU+wZGxnQstGJhZPMvXsRhtqekILd5/w==", - "dev": true, - "requires": { - "http-equiv-refresh": "^1.0.0", - "list-to-array": "^1.1.0", - "parse-srcset": "^1.0.2", - "promise-each": "^2.2.0" - } - }, - "pretty-hrtime": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", - "integrity": "sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A==", - "dev": true - }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "requires": { - "asap": "~2.0.3" - } - }, - "promise-each": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/promise-each/-/promise-each-2.2.0.tgz", - "integrity": "sha512-67roqt1k3QDA41DZ8xi0V+rF3GoaMiX7QilbXu0vXimut+9RcKBNZ/t60xCRgcsihmNUsEjh48xLfNqOrKblUg==", - "dev": true, - "requires": { - "any-promise": "^0.1.0" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", - "dev": true - }, - "pug": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pug/-/pug-3.0.2.tgz", - "integrity": "sha512-bp0I/hiK1D1vChHh6EfDxtndHji55XP/ZJKwsRqrz6lRia6ZC2OZbdAymlxdVFwd1L70ebrVJw4/eZ79skrIaw==", - "dev": true, - "requires": { - "pug-code-gen": "^3.0.2", - "pug-filters": "^4.0.0", - "pug-lexer": "^5.0.1", - "pug-linker": "^4.0.0", - "pug-load": "^3.0.0", - "pug-parser": "^6.0.0", - "pug-runtime": "^3.0.1", - "pug-strip-comments": "^2.0.0" - } - }, - "pug-attrs": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pug-attrs/-/pug-attrs-3.0.0.tgz", - "integrity": "sha512-azINV9dUtzPMFQktvTXciNAfAuVh/L/JCl0vtPCwvOA21uZrC08K/UnmrL+SXGEVc1FwzjW62+xw5S/uaLj6cA==", - "dev": true, - "requires": { - "constantinople": "^4.0.1", - "js-stringify": "^1.0.2", - "pug-runtime": "^3.0.0" - } - }, - "pug-code-gen": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/pug-code-gen/-/pug-code-gen-3.0.2.tgz", - "integrity": "sha512-nJMhW16MbiGRiyR4miDTQMRWDgKplnHyeLvioEJYbk1RsPI3FuA3saEP8uwnTb2nTJEKBU90NFVWJBk4OU5qyg==", - "dev": true, - "requires": { - "constantinople": "^4.0.1", - "doctypes": "^1.1.0", - "js-stringify": "^1.0.2", - "pug-attrs": "^3.0.0", - "pug-error": "^2.0.0", - "pug-runtime": "^3.0.0", - "void-elements": "^3.1.0", - "with": "^7.0.0" - } - }, - "pug-error": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-error/-/pug-error-2.0.0.tgz", - "integrity": "sha512-sjiUsi9M4RAGHktC1drQfCr5C5eriu24Lfbt4s+7SykztEOwVZtbFk1RRq0tzLxcMxMYTBR+zMQaG07J/btayQ==", - "dev": true - }, - "pug-filters": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pug-filters/-/pug-filters-4.0.0.tgz", - "integrity": "sha512-yeNFtq5Yxmfz0f9z2rMXGw/8/4i1cCFecw/Q7+D0V2DdtII5UvqE12VaZ2AY7ri6o5RNXiweGH79OCq+2RQU4A==", - "dev": true, - "requires": { - "constantinople": "^4.0.1", - "jstransformer": "1.0.0", - "pug-error": "^2.0.0", - "pug-walk": "^2.0.0", - "resolve": "^1.15.1" - } - }, - "pug-lexer": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/pug-lexer/-/pug-lexer-5.0.1.tgz", - "integrity": "sha512-0I6C62+keXlZPZkOJeVam9aBLVP2EnbeDw3An+k0/QlqdwH6rv8284nko14Na7c0TtqtogfWXcRoFE4O4Ff20w==", - "dev": true, - "requires": { - "character-parser": "^2.2.0", - "is-expression": "^4.0.0", - "pug-error": "^2.0.0" - } - }, - "pug-linker": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/pug-linker/-/pug-linker-4.0.0.tgz", - "integrity": "sha512-gjD1yzp0yxbQqnzBAdlhbgoJL5qIFJw78juN1NpTLt/mfPJ5VgC4BvkoD3G23qKzJtIIXBbcCt6FioLSFLOHdw==", - "dev": true, - "requires": { - "pug-error": "^2.0.0", - "pug-walk": "^2.0.0" - } - }, - "pug-load": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pug-load/-/pug-load-3.0.0.tgz", - "integrity": "sha512-OCjTEnhLWZBvS4zni/WUMjH2YSUosnsmjGBB1An7CsKQarYSWQ0GCVyd4eQPMFJqZ8w9xgs01QdiZXKVjk92EQ==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "pug-walk": "^2.0.0" - } - }, - "pug-parser": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/pug-parser/-/pug-parser-6.0.0.tgz", - "integrity": "sha512-ukiYM/9cH6Cml+AOl5kETtM9NR3WulyVP2y4HOU45DyMim1IeP/OOiyEWRr6qk5I5klpsBnbuHpwKmTx6WURnw==", - "dev": true, - "requires": { - "pug-error": "^2.0.0", - "token-stream": "1.0.0" - } - }, - "pug-runtime": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/pug-runtime/-/pug-runtime-3.0.1.tgz", - "integrity": "sha512-L50zbvrQ35TkpHwv0G6aLSuueDRwc/97XdY8kL3tOT0FmhgG7UypU3VztfV/LATAvmUfYi4wNxSajhSAeNN+Kg==", - "dev": true - }, - "pug-strip-comments": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-strip-comments/-/pug-strip-comments-2.0.0.tgz", - "integrity": "sha512-zo8DsDpH7eTkPHCXFeAk1xZXJbyoTfdPlNR0bK7rpOMuhBYb0f5qUVCO1xlsitYd3w5FQTK7zpNVKb3rZoUrrQ==", - "dev": true, - "requires": { - "pug-error": "^2.0.0" - } - }, - "pug-walk": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/pug-walk/-/pug-walk-2.0.0.tgz", - "integrity": "sha512-yYELe9Q5q9IQhuvqsZNwA5hfPkMJ8u92bQLIMcsMxf/VADjNtEYptU+inlufAFYcWdHlwNfZOEnOOQrZrcyJCQ==", - "dev": true - }, - "queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true - }, - "railroad-diagrams": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz", - "integrity": "sha512-cz93DjNeLY0idrCNOH6PviZGRN9GJhsdm9hpn1YCS879fj4W+x5IFJhhkRZcwVgMmFF7R82UA/7Oh+R8lLZg6A==", - "dev": true - }, - "randexp": { - "version": "0.4.6", - "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.4.6.tgz", - "integrity": "sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==", - "dev": true, - "requires": { - "discontinuous-range": "1.0.0", - "ret": "~0.1.10" - } - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", - "dev": true, - "requires": { - "pify": "^2.3.0" - } - }, - "read-pkg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", - "integrity": "sha512-BLq/cCO9two+lBgiTYNqD6GdtK8s4NpaWrl6/rCO9w0TUS8oJl7cmToOZfRYllKTISY6nt1U7jQ53brmKqY6BA==", - "dev": true, - "requires": { - "load-json-file": "^4.0.0", - "normalize-package-data": "^2.3.2", - "path-type": "^3.0.0" - } - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "requires": { - "picomatch": "^2.2.1" - } - }, - "recursive-copy": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/recursive-copy/-/recursive-copy-2.0.14.tgz", - "integrity": "sha512-K8WNY8f8naTpfbA+RaXmkaQuD1IeW9EgNEfyGxSqqTQukpVtoOKros9jUqbpEsSw59YOmpd8nCBgtqJZy5nvog==", - "dev": true, - "requires": { - "errno": "^0.1.2", - "graceful-fs": "^4.1.4", - "junk": "^1.0.1", - "maximatch": "^0.1.0", - "mkdirp": "^0.5.1", - "pify": "^2.3.0", - "promise": "^7.0.1", - "rimraf": "^2.7.1", - "slash": "^1.0.0" - } - }, - "regexp.prototype.flags": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.4.3.tgz", - "integrity": "sha512-fjggEOO3slI6Wvgjwflkc4NFRCTZAu5CnNfBd5qOMYhWdn67nJBBu34/TkD++eeFmd8C9r9jfXJ27+nSiRkSUA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "functions-have-names": "^1.2.2" - } - }, - "relateurl": { - "version": "0.2.7", - "resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz", - "integrity": "sha512-G08Dxvm4iDN3MLM0EsP62EDV9IuhXPR6blNz6Utcp7zyV3tr4HVNINt6MpaRWbxoOHT3Q7YN2P+jaHX8vUbgog==", - "dev": true - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "dev": true - }, - "resolve": { - "version": "1.22.1", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", - "integrity": "sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==", - "dev": true, - "requires": { - "is-core-module": "^2.9.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "reusify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", - "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "rollup": { - "version": "3.2.5", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-3.2.5.tgz", - "integrity": "sha512-/Ha7HhVVofduy+RKWOQJrxe4Qb3xyZo+chcpYiD8SoQa4AG7llhupUtyfKSSrdBM2mWJjhM8wZwmbY23NmlIYw==", - "dev": true, - "requires": { - "fsevents": "~2.3.2" - } - }, - "run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "requires": { - "queue-microtask": "^1.2.2" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "safe-regex-test": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/safe-regex-test/-/safe-regex-test-1.0.0.tgz", - "integrity": "sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "get-intrinsic": "^1.1.3", - "is-regex": "^1.1.4" - } - }, - "sass": { - "version": "1.56.0", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.56.0.tgz", - "integrity": "sha512-WFJ9XrpkcnqZcYuLRJh5qiV6ibQOR4AezleeEjTjMsCocYW59dEG19U3fwTTXxzi2Ed3yjPBp727hbbj53pHFw==", - "dev": true, - "requires": { - "chokidar": ">=3.0.0 <4.0.0", - "immutable": "^4.0.0", - "source-map-js": ">=0.6.2 <2.0.0" - } - }, - "section-matter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/section-matter/-/section-matter-1.0.0.tgz", - "integrity": "sha512-vfD3pmTzGpufjScBh50YHKzEu2lxBWhVEHsNGoEXmCmn2hKGfeNLYMzCJpe8cD7gqX7TJluOVpBkAequ6dgMmA==", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "kind-of": "^6.0.0" - } - }, - "selderee": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/selderee/-/selderee-0.6.0.tgz", - "integrity": "sha512-ibqWGV5aChDvfVdqNYuaJP/HnVBhlRGSRrlbttmlMpHcLuTqqbMH36QkSs9GEgj5M88JDYLI8eyP94JaQ8xRlg==", - "dev": true, - "requires": { - "parseley": "^0.7.0" - } - }, - "semver": { - "version": "7.5.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.5.4.tgz", - "integrity": "sha512-1bCSESV6Pv+i21Hvpxp3Dx+pSD8lIPt8uVjRrxAUt/nbswYc+tK6Y2btiULjd4+fnq15PX+nqQDC7Oft7WkwcA==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "semver-compare": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/semver-compare/-/semver-compare-1.0.0.tgz", - "integrity": "sha512-YM3/ITh2MJ5MtzaM429anh+x2jiLVjqILF4m4oyQB18W7Ggea7BfqdH/wGMK7dDiMghv/6WG7znWMwUDzJiXow==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "requires": { - "shebang-regex": "^3.0.0" - } - }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true - }, - "shell-quote": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/shell-quote/-/shell-quote-1.7.4.tgz", - "integrity": "sha512-8o/QEhSSRb1a5i7TFR0iM4G16Z0vYB2OQVs4G3aAFXjn3T6yEx8AZxy1PgDF7I00LZHYA3WxaSYIf5e5sAX8Rw==", - "dev": true - }, - "side-channel": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", - "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "get-intrinsic": "^1.0.2", - "object-inspect": "^1.9.0" - } - }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==", - "dev": true - }, - "slugify": { - "version": "1.6.5", - "resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.5.tgz", - "integrity": "sha512-8mo9bslnBO3tr5PEVFzMPIWwWnipGS0xVbYf65zxDqfNwmzYn1LpiKNrR6DlClusuvo+hDHd1zKpmfAe83NQSQ==", - "dev": true - }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true - }, - "source-map-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", - "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", - "dev": true - }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-license-ids": { - "version": "3.0.12", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.12.tgz", - "integrity": "sha512-rr+VVSXtRhO4OHbXUiAF7xW3Bo9DuuF6C5jH+q/x15j2jniycgKbxU09Hr0WqlSLUs4i4ltHGXqTe7VHclYWyA==", - "dev": true - }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==", - "dev": true - }, - "ssri": { - "version": "8.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", - "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", - "dev": true, - "requires": { - "minipass": "^3.1.1" - } - }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "statuses": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", - "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", - "dev": true - }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dev": true, - "requires": { - "safe-buffer": "~5.2.0" - } - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "string.prototype.padend": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/string.prototype.padend/-/string.prototype.padend-3.1.3.tgz", - "integrity": "sha512-jNIIeokznm8SD/TZISQsZKYu7RJyheFNt84DUPrh482GC8RVp2MKqm2O5oBRdGxbDQoXrhhWtPIWQOiy20svUg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3", - "es-abstract": "^1.19.1" - } - }, - "string.prototype.trimend": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.5.tgz", - "integrity": "sha512-I7RGvmjV4pJ7O3kdf+LXFpVfdNOxtCW/2C8f6jNiW4+PQchwxkCDzlk1/7p+Wl4bqFIZeF47qAHXLuHHWKAxog==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "string.prototype.trimstart": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.5.tgz", - "integrity": "sha512-THx16TJCGlsN0o6dl2o6ncWUsdgnLRSA23rRE5pyGBw/mLr3Ej/R2LaqCtgP8VNMGZsvMWnf9ooZPyY2bHvUFg==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.4", - "es-abstract": "^1.19.5" - } - }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.1" - } - }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "dev": true - }, - "strip-bom-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-bom-string/-/strip-bom-string-1.0.0.tgz", - "integrity": "sha512-uCC2VHvQRYu+lMh4My/sFNmF2klFymLX1wHJeXnbEJERpV/ZsVuonzerjfrGpIGF7LBVa1O7i9kjiWvJiFck8g==", - "dev": true - }, - "stylehacks": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-5.1.1.tgz", - "integrity": "sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw==", - "dev": true, - "requires": { - "browserslist": "^4.21.4", - "postcss-selector-parser": "^6.0.4" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "dev": true - }, - "svgo": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-2.8.0.tgz", - "integrity": "sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg==", - "dev": true, - "requires": { - "@trysound/sax": "0.2.0", - "commander": "^7.2.0", - "css-select": "^4.1.3", - "css-tree": "^1.1.3", - "csso": "^4.2.0", - "picocolors": "^1.0.0", - "stable": "^0.1.8" - }, - "dependencies": { - "commander": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/commander/-/commander-7.2.0.tgz", - "integrity": "sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==", - "dev": true - }, - "css-select": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", - "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^6.0.1", - "domhandler": "^4.3.1", - "domutils": "^2.8.0", - "nth-check": "^2.0.1" - } - } - } - }, - "thenby": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz", - "integrity": "sha512-89Gi5raiWA3QZ4b2ePcEwswC3me9JIg+ToSgtE0JWeCynLnLxNr/f9G+xfo9K+Oj4AFdom8YNJjibIARTJmapQ==", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "dev": true - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "requires": { - "is-number": "^7.0.0" - } - }, - "token-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/token-stream/-/token-stream-1.0.0.tgz", - "integrity": "sha512-VSsyNPPW74RpHwR8Fc21uubwHY7wMDeJLys2IX5zJNih+OnAnaifKHo+1LHT7DAdloQ7apeaaWg8l7qnf/TnEg==", - "dev": true - }, - "typescript": { - "version": "4.8.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.8.4.tgz", - "integrity": "sha512-QCh+85mCy+h0IGff8r5XWzOVSbBO+KfeYrMQh7NJ58QujwcE22u+NUSmUxqF+un70P9GXKxa2HCNiTTMJknyjQ==", - "dev": true - }, - "uc.micro": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz", - "integrity": "sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==", - "dev": true - }, - "uglify-js": { - "version": "3.17.4", - "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.17.4.tgz", - "integrity": "sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==", - "dev": true - }, - "unbox-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/unbox-primitive/-/unbox-primitive-1.0.2.tgz", - "integrity": "sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "has-bigints": "^1.0.2", - "has-symbols": "^1.0.3", - "which-boxed-primitive": "^1.0.2" - } - }, - "universalify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", - "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", - "dev": true - }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", - "dev": true - }, - "update-browserslist-db": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", - "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, - "requires": { - "escalade": "^3.1.1", - "picocolors": "^1.0.0" - } - }, - "upper-case": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/upper-case/-/upper-case-1.1.3.tgz", - "integrity": "sha512-WRbjgmYzgXkCV7zNVpy5YgrHgbBv126rMALQQMrmzOVC4GM2waQ9x7xtm8VU+1yF2kWyPzI9zbZ48n4vSxwfSA==", - "dev": true - }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==", - "dev": true - }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "void-elements": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-3.1.0.tgz", - "integrity": "sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==", - "dev": true - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "requires": { - "isexe": "^2.0.0" - } - }, - "which-boxed-primitive": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz", - "integrity": "sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==", - "dev": true, - "requires": { - "is-bigint": "^1.0.1", - "is-boolean-object": "^1.1.0", - "is-number-object": "^1.0.4", - "is-string": "^1.0.5", - "is-symbol": "^1.0.3" - } - }, - "with": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/with/-/with-7.0.2.tgz", - "integrity": "sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==", - "dev": true, - "requires": { - "@babel/parser": "^7.9.6", - "@babel/types": "^7.9.6", - "assert-never": "^1.2.1", - "babel-walk": "3.0.0-canary-5" - } - }, - "wordwrap": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", - "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==", - "dev": true - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dev": true, - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - } - }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", - "dev": true - }, - "ws": { - "version": "8.12.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.12.0.tgz", - "integrity": "sha512-kU62emKIdKVeEIOIKVegvqpXMSTAMLJozpHZaJNDYqBjzlSYXQGviYwN1osDLJ9av68qHd4a2oSjd7yD4pacig==", - "dev": true, - "requires": {} - }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "dev": true - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", - "dev": true - }, - "yaml": { - "version": "1.10.2", - "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", - "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", - "dev": true - }, - "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", - "dev": true, - "requires": { - "cliui": "^8.0.1", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.3", - "y18n": "^5.0.5", - "yargs-parser": "^21.1.1" - } - }, - "yargs-parser": { - "version": "21.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz", - "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==", - "dev": true - } } } diff --git a/package.json b/package.json index 3533c9a59..785050ef0 100644 --- a/package.json +++ b/package.json @@ -19,13 +19,12 @@ "watch:sass": "npx sass --watch src/scss:styles-compiled", "post:css": "npx postcss styles-compiled/site.css > styles-compiled/site.min.css", "min:js": "npx uglify-js _site/scripts/main.bundled.js --output _site/scripts/main.min.js", - "build:js": "tsc --build", - "watch:js": "tsc --build --watch", "bundle:js": "rollup -c rollup.config.mjs", - "dev": "npm run build:sass && npm run build:js && npm-run-all -p serve:web watch:sass watch:js", + "watch:js": "rollup -c rollup.config.mjs -w", + "dev": "npm run build:sass && npm-run-all -p serve:web watch:sass watch:js", "dev-no-js": "npm run build:sass && npm-run-all -p serve:web watch:sass", - "build": "npm-run-all -s clean:site build:sass post:css clean:js build:js bundle:js build:web build:search-index", - "serve-as-prod": "npm-run-all -s clean:site build:sass post:css clean:js build:js bundle:js serve:web-prod", + "build": "npm-run-all -s clean:site build:sass post:css clean:js bundle:js build:web build:search-index", + "serve-as-prod": "npm-run-all -s clean:site build:sass post:css clean:js bundle:js serve:web-prod", "clean:js": "rm -rf client-side-compiled", "clean:css": "rm -rf styles-compiled", "clean:site": "rm -rf _site", @@ -45,6 +44,8 @@ "devDependencies": { "@11ty/eleventy": "^2.0.0", "@aloskutov/eleventy-plugin-external-links": "^2.0.1", + "@rollup/plugin-terser": "^0.4.4", + "@rollup/plugin-typescript": "^11.1.5", "@sindresorhus/slugify": "1.1.2", "@types/lunr": "^2.3.4", "@types/markdown-it": "^12.2.3", @@ -68,6 +69,7 @@ "posthtml-noopener": "^1.0.5", "rollup": "^3.2.5", "sass": "^1.56.0", + "tslib": "^2.6.2", "typescript": "^4.8.4", "uglify-js": "^3.17.4" }, diff --git a/rollup.config.mjs b/rollup.config.mjs index 2070e7a8a..ff23ded28 100644 --- a/rollup.config.mjs +++ b/rollup.config.mjs @@ -1,6 +1,28 @@ -export default { - input: './client-side-compiled/index.js', - output: { - file: '_site/scripts/index.bundled.js' - } -} \ No newline at end of file +import typescript from '@rollup/plugin-typescript'; +import terser from '@rollup/plugin-terser'; + +export default [ + { + input: 'src/client-side/index.ts', + output: { + file: '_site/scripts/index.min.js', + sourcemap: '_site/scripts/index.min.js.map', + inlineDynamicImports: true, + }, + plugins: [ + typescript(), + terser(), + ], + }, + { + input: 'src/client-side/page-search.ts', + output: { + file: '_site/scripts/page-search.min.js', + sourcemap: '_site/scripts/page-search.min.js.map', + }, + plugins: [ + typescript(), + terser(), + ], + }, +] \ No newline at end of file diff --git a/src/pages/search.njk b/src/pages/search.njk index f4eb1c86e..e86c93bc7 100644 --- a/src/pages/search.njk +++ b/src/pages/search.njk @@ -8,4 +8,4 @@ pageStyleId: search - \ No newline at end of file + \ No newline at end of file From a8f3c788dd3c347844b97ef5ccfa76a0ef30c5dd Mon Sep 17 00:00:00 2001 From: Matt Gabrenya Date: Sun, 3 Mar 2024 20:57:30 -0700 Subject: [PATCH 46/47] fix: index bundle name --- src/pages/_includes/parts/head.njk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/_includes/parts/head.njk b/src/pages/_includes/parts/head.njk index 5ca0f5a97..3a2677a94 100644 --- a/src/pages/_includes/parts/head.njk +++ b/src/pages/_includes/parts/head.njk @@ -20,5 +20,5 @@ - + \ No newline at end of file From c8f06bfa2835e22e352f5fe445a90d4e59823434 Mon Sep 17 00:00:00 2001 From: Paul d'Aoust Date: Mon, 11 Mar 2024 13:18:07 -0700 Subject: [PATCH 47/47] missed a couple references/resources replacements --- src/pages/_data/navigation/mainNav.json5 | 2 +- src/pages/resources/index.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/pages/_data/navigation/mainNav.json5 b/src/pages/_data/navigation/mainNav.json5 index 2d9c5975a..87c2dab93 100644 --- a/src/pages/_data/navigation/mainNav.json5 +++ b/src/pages/_data/navigation/mainNav.json5 @@ -21,7 +21,7 @@ { title: "Lifecycle Events", url: "/concepts/11_lifecycle_events/" }, ] }, - { title: "References", url: "/resources/", children: [ + { title: "Resources", url: "/resources/", children: [ { title: "HDK (Rust)", url: "https://docs.rs/hdk", external: true }, { title: "App API reference", url: "https://docs.rs/holochain_conductor_api/latest/holochain_conductor_api/enum.AppRequest.html", external: true }, { title: "Admin API reference", url: "https://docs.rs/holochain_conductor_api/latest/holochain_conductor_api/enum.AdminRequest.html", external: true }, diff --git a/src/pages/resources/index.md b/src/pages/resources/index.md index 66dfbe1dd..86e33e242 100644 --- a/src/pages/resources/index.md +++ b/src/pages/resources/index.md @@ -1,5 +1,5 @@ --- -title: Holochain Programming References +title: Holochain Programming Resources --- ## Rust HDK