From 428bca8bd8d96dde98f29ad7289a960c15d38a83 Mon Sep 17 00:00:00 2001 From: Dean Wampler Date: Wed, 23 Jul 2025 11:56:34 -0400 Subject: [PATCH] Removed obsolete and unused files that don't belong here Signed-off-by: Dean Wampler --- GITHUB_PAGES.md | 269 ---------- Gemfile | 58 --- Makefile | 156 ------ README-template.md | 137 ----- README_orig.md | 41 -- docs/.prettierignore | 11 - docs/.prettierrc | 7 - docs/.stylelintrc.json | 13 - docs/404.html | 11 - docs/_config.yml | 138 ----- docs/_includes/css/custom.scss.liquid | 87 ---- docs/_includes/css/just-the-docs.scss.liquid | 7 - docs/_includes/fix_linenos.html | 65 --- docs/_includes/footer_custom.html | 3 - docs/_includes/head.html | 40 -- docs/_includes/head_custom.html | 0 docs/_includes/header_custom.html | 0 docs/_includes/js/custom.js | 0 docs/_includes/mermaid_config.js | 4 - docs/_includes/nav.html | 99 ---- docs/_includes/title.html | 5 - docs/_includes/vendor/anchor_headings.html | 144 ------ docs/_layouts/about.html | 5 - docs/_layouts/default.html | 225 --------- docs/_layouts/home.html | 5 - docs/_layouts/page.html | 5 - docs/_layouts/post.html | 5 - docs/_layouts/table_wrappers.html | 7 - docs/_layouts/vendor/compress.html | 10 - docs/_sass/base.scss | 108 ---- docs/_sass/buttons.scss | 118 ----- docs/_sass/code.scss | 340 ------------- docs/_sass/color_schemes/dark.scss | 17 - docs/_sass/color_schemes/light.scss | 0 docs/_sass/content.scss | 231 --------- docs/_sass/custom/custom.scss | 3 - docs/_sass/labels.scss | 37 -- docs/_sass/layout.scss | 205 -------- docs/_sass/modules.scss | 20 - docs/_sass/navigation.scss | 219 -------- docs/_sass/print.scss | 40 -- docs/_sass/search.scss | 323 ------------ docs/_sass/support/_functions.scss | 9 - docs/_sass/support/_variables.scss | 153 ------ docs/_sass/support/mixins/_buttons.scss | 27 - docs/_sass/support/mixins/_layout.scss | 34 -- docs/_sass/support/mixins/_typography.scss | 84 ---- docs/_sass/support/mixins/mixins.scss | 3 - docs/_sass/support/support.scss | 3 - docs/_sass/tables.scss | 59 --- docs/_sass/typography.scss | 64 --- docs/_sass/utilities/_colors.scss | 239 --------- docs/_sass/utilities/_layout.scss | 95 ---- docs/_sass/utilities/_lists.scss | 17 - docs/_sass/utilities/_spacing.scss | 165 ------ docs/_sass/utilities/_typography.scss | 91 ---- docs/_sass/utilities/utilities.scss | 5 - docs/_sass/vendor/normalize.scss/README.md | 7 - .../vendor/normalize.scss/normalize.scss | 349 ------------- docs/about.markdown | 25 - docs/assets/css/just-the-docs-dark.scss | 3 - docs/assets/css/just-the-docs-default.scss | 8 - docs/assets/css/just-the-docs-light.scss | 3 - docs/assets/images/alliance-banner.png | Bin 117844 -> 0 bytes docs/assets/images/favicon.ico | Bin 15086 -> 0 bytes docs/assets/images/just-the-docs.png | Bin 20992 -> 0 bytes docs/assets/images/ref-stack.png | Bin 31620 -> 0 bytes docs/assets/images/search.svg | 1 - docs/assets/js/just-the-docs.js | 471 ------------------ docs/assets/js/vendor/lunr.min.js | 6 - docs/assets/js/zzzz-search-data.json | 72 --- docs/contributing.markdown | 31 -- docs/index.markdown | 66 --- docs/nested/nested.markdown | 20 - docs/nested/nested_child.markdown | 11 - docs/second_page.markdown | 11 - finish-microsite.sh | 267 ---------- publish-website.sh | 180 ------- update-main.sh | 15 - 79 files changed, 5812 deletions(-) delete mode 100644 GITHUB_PAGES.md delete mode 100644 Gemfile delete mode 100644 Makefile delete mode 100644 README-template.md delete mode 100644 README_orig.md delete mode 100644 docs/.prettierignore delete mode 100644 docs/.prettierrc delete mode 100644 docs/.stylelintrc.json delete mode 100644 docs/404.html delete mode 100644 docs/_config.yml delete mode 100644 docs/_includes/css/custom.scss.liquid delete mode 100644 docs/_includes/css/just-the-docs.scss.liquid delete mode 100644 docs/_includes/fix_linenos.html delete mode 100644 docs/_includes/footer_custom.html delete mode 100644 docs/_includes/head.html delete mode 100644 docs/_includes/head_custom.html delete mode 100644 docs/_includes/header_custom.html delete mode 100644 docs/_includes/js/custom.js delete mode 100644 docs/_includes/mermaid_config.js delete mode 100644 docs/_includes/nav.html delete mode 100644 docs/_includes/title.html delete mode 100755 docs/_includes/vendor/anchor_headings.html delete mode 100644 docs/_layouts/about.html delete mode 100644 docs/_layouts/default.html delete mode 100644 docs/_layouts/home.html delete mode 100644 docs/_layouts/page.html delete mode 100644 docs/_layouts/post.html delete mode 100644 docs/_layouts/table_wrappers.html delete mode 100644 docs/_layouts/vendor/compress.html delete mode 100644 docs/_sass/base.scss delete mode 100644 docs/_sass/buttons.scss delete mode 100644 docs/_sass/code.scss delete mode 100644 docs/_sass/color_schemes/dark.scss delete mode 100644 docs/_sass/color_schemes/light.scss delete mode 100644 docs/_sass/content.scss delete mode 100644 docs/_sass/custom/custom.scss delete mode 100644 docs/_sass/labels.scss delete mode 100644 docs/_sass/layout.scss delete mode 100644 docs/_sass/modules.scss delete mode 100644 docs/_sass/navigation.scss delete mode 100644 docs/_sass/print.scss delete mode 100644 docs/_sass/search.scss delete mode 100644 docs/_sass/support/_functions.scss delete mode 100644 docs/_sass/support/_variables.scss delete mode 100644 docs/_sass/support/mixins/_buttons.scss delete mode 100644 docs/_sass/support/mixins/_layout.scss delete mode 100644 docs/_sass/support/mixins/_typography.scss delete mode 100644 docs/_sass/support/mixins/mixins.scss delete mode 100644 docs/_sass/support/support.scss delete mode 100644 docs/_sass/tables.scss delete mode 100644 docs/_sass/typography.scss delete mode 100644 docs/_sass/utilities/_colors.scss delete mode 100644 docs/_sass/utilities/_layout.scss delete mode 100644 docs/_sass/utilities/_lists.scss delete mode 100644 docs/_sass/utilities/_spacing.scss delete mode 100644 docs/_sass/utilities/_typography.scss delete mode 100644 docs/_sass/utilities/utilities.scss delete mode 100644 docs/_sass/vendor/normalize.scss/README.md delete mode 100644 docs/_sass/vendor/normalize.scss/normalize.scss delete mode 100644 docs/about.markdown delete mode 100644 docs/assets/css/just-the-docs-dark.scss delete mode 100644 docs/assets/css/just-the-docs-default.scss delete mode 100644 docs/assets/css/just-the-docs-light.scss delete mode 100644 docs/assets/images/alliance-banner.png delete mode 100644 docs/assets/images/favicon.ico delete mode 100644 docs/assets/images/just-the-docs.png delete mode 100644 docs/assets/images/ref-stack.png delete mode 100644 docs/assets/images/search.svg delete mode 100644 docs/assets/js/just-the-docs.js delete mode 100644 docs/assets/js/vendor/lunr.min.js delete mode 100644 docs/assets/js/zzzz-search-data.json delete mode 100644 docs/contributing.markdown delete mode 100644 docs/index.markdown delete mode 100644 docs/nested/nested.markdown delete mode 100644 docs/nested/nested_child.markdown delete mode 100644 docs/second_page.markdown delete mode 100755 finish-microsite.sh delete mode 100755 publish-website.sh delete mode 100755 update-main.sh diff --git a/GITHUB_PAGES.md b/GITHUB_PAGES.md deleted file mode 100644 index 4fd09a1..0000000 --- a/GITHUB_PAGES.md +++ /dev/null @@ -1,269 +0,0 @@ -# Editing and Publishing the GitHub Pages Website - -The [published website](https://the-ai-alliance.github.io/REPO_NAME/). - -The documentation for this repo is published using [GitHub Pages](https://pages.github.com/). We welcome contributions as PRs. See the AI Alliance [CONTRIBUTING](https://github.com/The-AI-Alliance/community/blob/main/CONTRIBUTING.md) instructions. Also, you'll need to agree with the AI Alliance [Code of Conduct](https://github.com/The-AI-Alliance/community/blob/main/CODE_OF_CONDUCT.md) and all contributions will be covered by the [LICENSE](https://github.com/The-AI-Alliance/community/blob/main/LICENSE) (which is also in [this repo](LICENSE)). - -> [!NOTE] -> The documentation in this repo is licensed under Creative Commons Attribution 4.0 International. To view a copy of this license, see [LICENSE.CC-BY-4.0](LICENSE.CC-BY-4.0) or visit https://creativecommons.org/licenses/by/4.0/legalcode. All code uses the [Apache 2.0](LICENSE.Apache-2.0) license. All data uses the [CDLA 2.0](LICENSE.CDLA-2.0) license. - - -## Quick Setup - -We use [GitHub Pages](https://pages.github.com/) so edits can be made in Markdown, updates can be managed using pull requests, and the results can be published automatically by GitHub. - -In fact, each page has _Edit this page on GitHub_ links, making it easy to view a page, then go straight to the source to edit it and submit a PR! This is the best way to help us fix typos and make similar small edits. - -However, this easy approach only supports correcting content on a single page. for more significant changes, like adding new pages, you may want the ability to preview the changes locally. - -Local previewing allows you to see how any changes, even on a single page, will _really_ look when rendered with stylesheets, etc. While GitHub renders Markdown well, there are extensions we use that are supported by Jekyll that won't be rendered correctly in GitHub's default Markdown file viewer. - -> [!NOTE] -> If you don't want to setup `jekyll` for previewing or if you have trouble setting it up, don't let that stop you from contributing content! Submit a PR with your changes and we'll review them in a running environment ourselves. We'll provide feedback as needed. - -So, to view the website locally and to make more extensive changes, you'll need to have a recent version of [Ruby](https://www.ruby-lang.org/en/) installed, along with the [`gem`](https://docs.ruby-lang.org/en/master/Gem.html) library management tool, and [`jekyll`](https://jekyllrb.com/) which is the webserver and rendering engine. - -We discuss these steps in more depth [below](#setup-jekyll), but the following steps may _just work_ for you. - -Install a recent version of Ruby 3. Note that on MacOS, the default Ruby installation is old, version 2.6.10. Installing Ruby will also install the `gem` dependency tool. - -This project's `Makefile` will attempt to install the remaining dependencies, including `jekyll`, when you run `make all` or `make view-local`. - -> [!WARNING] -> The automatic setup of `jekyll` in the `Makefile` has only been tested on MacOS and it most likely doesn't work on Windows, unless you use the Linux subsystem. If you encounter problems on other platforms, please [post an issue](https://github.com/The-AI-Alliance/REPO_NAME/issues) to get help, or if you can fix the issue, a [pull request](https://github.com/The-AI-Alliance/REPO_NAME/pulls) (PR) is always welcome :nerd_face:. (More details on PRs below.) - -So, try `make view-local` and see if Jekyll is installed successfully and the website is rendered. - -The command will finish with a message like this: - -``` -... -Server address: http://127.0.0.1:4000/ -Server running... press ctrl-c to stop. -``` - -Open the URL in a browser. - -> [!TIP] -> -> 1. On MacOS, use ⌘-click on the URL to open it in a browser. -> 2. Run `make help` for a list of the main commands defined. -> 3. Run `JEKYLL_PORT=4444 make view-local` to use port `4444` instead of `4000`. -> 4. `view-local` will always check the Ruby and Jekyll installation. To skip this, use `make run-jekyll` instead. - -## Contributing New or Improved Content - -What gets displayed by GitHub Pages is the customized Markdown files in the `docs` directory. If you need to create a new page, copy an existing page to get the correct "header" information, then edit as needed. - -Here are some things you should know. - -### Using the Correct Branch - -As for most Git projects, issue PRs to the `main` branch. However, the repo is actually configured to publish the docs from the `latest` branch, so we can accept PRs quickly, then decide when to publish a new version. (We will also tag `latest` for each release with a version number, for historical tracking.) - -> [!NOTE] -> If you are curious, the details of how this publication branch is configured are discussed [below](#configuring-github-pages-in-the-repo-settings). - -## Publishing a New Version - -Because PRs go to the `main` branch, but the pages are published from the `latest` branch, PRs are not immediately published. When it is time to publish a new version of the website, change to the `main` git branch and run the script `./publish-website.sh`. It takes several options: - -```shell -> publish-website.sh -h -publish-website.sh [-h|--help] [-n|--noop] [-v|--version V] [-t|--timestamp T] - -Where the options are the following: --h | --help Print this message and exit --n | --noop Just print the commands but don't make changes. --v | --version V Use version string "V", which should be of the format - "X.Y.Z". Without this option the current value of - "last_version" in _config.yml is extracted (e.g., 1.0.1) - and the last digit is incremented. --t | --timestamp "T" Use this timestamp "T", which you'll need to quote on - the command line, because it MUST be of the form - "%Y-%m-%d %H:%M %z". Without this option, the current - system time is used. -``` - -With no arguments, the current version string's last digit will be incremented. For example, if the current version is `1.2.3`, the new version with be `1.2.4`. _Please use this `X.Y.Z` format if you specify a new version explicitly._ The script doesn't check the format. - -The script _does_ check that a specified timestamp uses the correct format, but it should be rare that you would want to use any timestamp other than the current time, which is the default. - -Both strings are printed at the bottom of each page, e.g.: - -``` -Version: 1.0.1. Site last modified: Jun 5 2024 08:13 -0500. -``` - -> **TIP:** Verify this worked! You should see the new version information in three places: -> -> * `docs/config.yml`: `last_modified_timestamp` and `last_version`. -> * `docs/index.markdown`: **Last Update** table row near the top, **Version History** near the bottom. -` - -## Editing Conventions and Tips - -### Links - -For internal cross-references, use the conventional `[title]({{site.baseurl}}/relative_URL)` Markdown syntax. - -> [!WARNING] -> the `{{site.baseurl}}/` prefix is _essential_, because this _prefix_ will be different for local execution vs. published serving. - - -For external links (those that start with `http` or `https`), we use the [`jekyll-target-blank` plugin](https://github.com/keithmifsud/jekyll-target-blank) to automatically open them in a new browser tab or window. _Relative_ links within the site are opened in the same tab. - -This plugin effectively adds `target="_blank"` to every anchor tag, i.e., `...`. However, this means that if users click on a lot of external links to see all of them, they will be "stacked" in the history of one browser tab. Therefore, you may consider adding explicit targets yourself. You can do this using the following syntax: - -```markdown -[`jekyll-target-blank` plugin](https://github.com/keithmifsud/jekyll-target-blank){:target="arbitrary_name"} -``` - -Furthermore, as a visual clue to the user, [our stylesheet](https://github.com/The-AI-Alliance/REPO_NAME/blob/main/docs/_includes/css/custom.scss.liquid) is configured to put little up-and-to-the-right arrows after every external link. This provides a visual clue that a new tab will be opened. - -### Emojis - -In the pages, you can use emojis, e.g., `:+1:` yields :+1:, `:smirk:` yields :smirk:, `:nerd_face:` yields :nerd_face:, etc. The `jemoji` Ruby gem adds this capability. [Here is a list of available emojis](https://www.webfx.com/tools/emoji-cheat-sheet/). - -## Previewing Your Work Locally - -We provided a basic set of instructions above for setting up Jekyll locally. Here is a more detailed set of instructions, if you need them. - -### Setup Jekyll - -First, you'll need a reasonably recent version of Ruby installed. The one that comes with MacOS is _not new enough_. See [Use Homebrew to Install Ruby on MacOS](#use-homebrew-to-install-ruby-on-macos) to install [Homebrew](https://brew.sh) and then Ruby using the `brew` command. - -Afterwards, the commands shown next should produce similar output that shown from Dean's machine, circa June 2024: - -```shell -$ which ruby -/usr/local/Cellar/ruby/3.3.0/bin/ruby -$ ruby --version -ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-darwin23] -``` - -> [!WARNING] -> In 2022, when we used these tools, building the website was not working with Ruby 3.2, you may still need to use 3.3 or 3.1. - -For MacOS, make sure the `ruby` path shown is not `/usr/bin/ruby`, which is the old, built-in 2.6 version. Try `which -a ruby`, which will hopefully show the `Cellar` version second. If so, edit the `PATH` definition in your `~/.zshrc` file to put the newer `/usr/local/Cellar/ruby/3.X.Y/bin` directory before `/usr/bin/`. - -Now, it _should_ be sufficient to run the following command: - -```shell -make setup-jekyll -``` - -If this fails, then see the [Tips and Known Issues](#tips-and-known-issues) below. - -### View the Pages Locally - -Once Jekyll is set up, you can serve the pages locally for previewing and editing by running one of the following commands, then open [localhost:4000](http://localhost:4000) (default port...) in a browser: - -```shell -make view-local # Install all Jekyll dependencies, then make "run-jekyll" -make run-jekyll # Run the jekyll server. Avoids dependency setup every time! -JEKYLL_PORT=4444 make view-local # Use a different port, 4444 instead of 4000 -JEKYLL_PORT=4444 make run-jekyll -``` - -If an error is thrown, see the [Tips and Known Issues](#tips-and-known-issues) below. - -> [!TIP] -> -> 1. On MacOS, use ⌘-click on the URL to open it in a browser. -> 2. Run `make help` for a list of the main commands defined. - -The `run-jekyll` target runs the following command: - -```shell -cd docs && bundle exec jekyll serve --port ${JEKYLL_PORT} --baseurl '' --incremental -``` - -* `JEKYLL_PORT` for the `--port` flag defaults to `4000` -* The `--baseurl` flag effectively supports the simple URL, `localhost:$JEKYLL_PORT`. (Without it, the URL would be `localhost:$JEKYLL_PORT/The-AI-Alliance/REPO_NAME/`.) -* The `--incremental` flag lets you edit the pages and refresh the browser tab to see the updates immediately. - -> [!NOTE] -> Well, more or less immediately. It can take several seconds for new pages to be generated and sometimes you'll get weird behaviors if you change URL paths, etc. So, occasionally it is useful to _control-c_ in the terminal and rerun the `make` command. - -> [!TIP] -> `make view-pages` opens the _published_ GitHub Pages in a browser tab. - -### Now Edit! - -You can now edit the pages, save them, then refresh your browser to see the updates. - -## Tips and Known Issues - -### Use Homebrew to Install Ruby on MacOS (Recommended) - -You really can't use the Ruby that comes with your Mac, because: -1. It's too old, 2.6.X, instead of 3.X, which we need. -2. You don't have permissions to install Gems into `/Library/...` - -So, install [Homebrew](https://brew.sh), if you haven't already. Then use it to install a local, recent version of Ruby: - -```shell -brew install ruby@3.3 -which -a ruby -``` - -If the last command shows `/usr/bin/ruby` before a path like `/usr/local/Cellar/ruby/3.3.0/bin/ruby`, then you will have to edit your `~/.zshrc` file and make sure the `/usr/local/Cellar/ruby/...` path comes before `/usr/bin`. For example, the following line will just put this Ruby first. (this is a hack): - -```shell -PATH="/usr/local/opt/ruby/3.3.0/bin:$PATH" -``` - -(Use the exact version number you have!) - -Then in your terminal, either open a new window/tab or run the command `source ~/.zshrc` to load the changed `PATH`. Now `which ruby` should return a path in `/usr/local/Cellar/...` and `ruby --version` should return the correct 3.X version. - -### The Jekyll Installation Instructions Failed - -Suppose you run the following command and it fails: - -```shell -make setup-jekyll # also executed when making `view-local` -``` - -First, make sure you are using a valid version of `ruby`. A symptom you didn't do that; you'll see this error message: - -``` -You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory. -``` - -The commands run by `make setup-jekyll` include the following (a few details omitted for simplification): - -```shell -gem install bundler jekyll jemoji -bundle install -bundle update html-pipeline -``` - -Finally, if you are still stuck, please [post an issue](https://github.com/The-AI-Alliance/REPO_NAME/issues) to get help. - -> **Help Needed:** -> -> If you find missing steps that `make setup-jekyll` should run but doesn't, or you find and fix problems that only occur on non-MacOS platforms, **please** submit a PR with fixes! Thank you. - -### The "make view-local" Command Fails - -What if `make view-local` command fails with this error message? - -```shell -jekyll 3.9.2 | Error: No such file or directory @ rb_check_realpath_internal -``` - -First, that's an old Jekyll version. It should be 4.3.3 or later. Try these commands: - -```shell -gem uninstall jekyll -gem install jekyll -gem list | grep jekyll -``` - -### Configuring GitHub Pages in the Repo Settings - -This section documents the one-time settings changes we did to [configure publication of our GitHub Pages](https://docs.github.com/en/enterprise-server@3.1/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site). We changed the desired branch to use, `latest`, rather than the default `main` branch, and we specified the directory for the website pages, `docs`. This only needs to be done if and when the branch or directory location is changed. - -In the repo's [_Settings > Pages_ section](https://github.com/The-AI-Alliance/REPO_NAME/settings/pages), set the branch to be `latest` and the folder to be `/docs`. The reason for using `latest` rather than `main`, is to allow small change PRs to be made without affecting what is published until we decide to publish an update. diff --git a/Gemfile b/Gemfile deleted file mode 100644 index 10b7929..0000000 --- a/Gemfile +++ /dev/null @@ -1,58 +0,0 @@ -source "https://rubygems.org" -# Hello! This is where you manage which Jekyll version is used to run. -# When you want to use a different version, change it below, save the -# file and run `bundle install`. Run Jekyll with `bundle exec`, like so: -# -# bundle exec jekyll serve -# -# This will help ensure the proper Jekyll version is running. -# Happy Jekylling! - -# gem "github-pages", "~> 225", group: :jekyll_plugins -# gem "github-pages", group: :jekyll_plugins - -# gem "jekyll", "~> 3.9.0" -# gem "jekyll", "~> 4.2.2" - -# This is the default theme for new Jekyll sites. You may change this to anything you like. -gem "minima", "~> 2.5" - -# If you want to use GitHub Pages, remove the "gem "jekyll"" above and -# uncomment the line below. To upgrade, run `bundle update github-pages`. -gem "github-pages", "~> 231", group: :jekyll_plugins - -# If you have any plugins, put them here! -# group :jekyll_plugins do - # gem "jekyll-feed", "= 0.17.0" - # gem "jekyll-feed", "= 0.15.1" - # gem "jekyll-feed", "~> 0.12" -# end - -# Windows and JRuby does not include zoneinfo files, so bundle the tzinfo-data gem -# and associated library. -platforms :mingw, :x64_mingw, :mswin, :jruby do - gem "tzinfo", "~> 2.0" - gem "tzinfo-data" -end - -# Performance-booster for watching directories on Windows -gem "wdm", "~> 0.1.1", :platforms => [:mingw, :x64_mingw, :mswin] - -# Lock `http_parser.rb` gem to `v0.6.x` on JRuby builds since newer versions of the gem -# do not have a Java counterpart. -# gem "http_parser.rb", "~> 0.8.0", :platforms => [:jruby] - -gem "webrick", "~> 1.8" - -# Security fixes: -gem "nokogiri", ">= 1.16" -#gem "html-pipeline", ">= 3.0.0.pre1" - -# Bug fixes -gem "liquid", ">= 4.0.4" - -# No longer included in Ruby as of 3.4 -gem "csv" - -# Target blank automatically opens all links in a new window. -gem 'jekyll-target-blank' diff --git a/Makefile b/Makefile deleted file mode 100644 index a76bff9..0000000 --- a/Makefile +++ /dev/null @@ -1,156 +0,0 @@ - -pages_url := https://the-ai-alliance.github.io/REPO_NAME/ -docs_dir := docs -site_dir := ${docs_dir}/_site -clean_dirs := ${site_dir} ${docs_dir}/.sass-cache - -# Environment variables -MAKEFLAGS = -w # --warn-undefined-variables -MAKEFLAGS_RECURSIVE ?= # --print-directory (only useful for recursive makes...) -UNAME ?= $(shell uname) -ARCHITECTURE ?= $(shell uname -m) - -# Override when running `make view-local` using e.g., `JEKYLL_PORT=8000 make view-local` -JEKYLL_PORT ?= 4000 - -# Used for version tagging release artifacts. -GIT_HASH ?= $(shell git show --pretty="%H" --abbrev-commit |head -1) -NOW ?= $(shell date +"%Y%m%d-%H%M%S") - -define help_message -Quick help for this make process. - -make all # Clean and locally view the document. -make clean # Remove built artifacts, etc. -make view-pages # View the published GitHub pages in a browser. -make view-local # View the pages locally (requires Jekyll). - # Tip: "JEKYLL_PORT=8000 make view-local" uses port 8000 instead of 4000! - -Miscellaneous tasks for help, debugging, setup, etc. - -make help # Prints this output. -make print-info # Print the current values of some make and env. variables. -make setup-jekyll # Install Jekyll. Make sure Ruby is installed. - # (Only needed for local viewing of the document.) -make run-jekyll # Used by "view-local"; assumes everything is already built. - # Tip: "JEKYLL_PORT=8000 make run-jekyll" uses port 8000 instead of 4000! -endef - -define missing_shell_command_error_message -is needed by ${PWD}/Makefile. Try 'make help' and look at the README. -endef - -ifndef docs_dir -$(error ERROR: There is no ${docs_dir} directory!) -endif - -define gem-error-message - -ERROR: Did the gem command fail with a message like this? -ERROR: "You don't have write permissions for the /Library/Ruby/Gems/2.6.0 directory." -ERROR: To run the "gem install ..." command for the MacOS default ruby installation requires "sudo". -ERROR: Instead, use Homebrew (https://brew.sh) to install ruby and make sure "/usr/local/.../bin/gem" -ERROR: is on your PATH before "user/bin/gem". -ERROR: -ERROR: Or did the gem command fail with a message like this? -ERROR: Bundler found conflicting requirements for the RubyGems version: -ERROR: In Gemfile: -ERROR: foo-bar (>= 3.0.0) was resolved to 3.0.0, which depends on -ERROR: RubyGems (>= 3.3.22) -ERROR: -ERROR: Current RubyGems version: -ERROR: RubyGems (= 3.3.11) -ERROR: In this case, try "brew upgrade ruby" to get a newer version. - -endef - -define bundle-error-message - -ERROR: Did the bundle command fail with a message like this? -ERROR: "/usr/local/opt/ruby/bin/bundle:25:in `load': cannot load such file -- /usr/local/lib/ruby/gems/3.1.0/gems/bundler-X.Y.Z/exe/bundle (LoadError)" -ERROR: Check that the /usr/local/lib/ruby/gems/3.1.0/gems/bundler-X.Y.Z directory actually exists. -ERROR: If not, try running the clean-jekyll command first: -ERROR: make clean-jekyll setup-jekyll -ERROR: Answer "y" (yes) to the prompts and ignore any warnings that you can't uninstall a "default" gem. - -endef - -define missing_ruby_gem_or_command_error_message -is needed by ${PWD}/Makefile. Try "gem install ..." -endef - -define ruby_and_gem_required_message -'ruby' and 'gem' are required. See ruby-lang.org for installation instructions. -endef - -define gem_required_message -Ruby's 'gem' is required. See ruby-lang.org for installation instructions. -endef - - -.PHONY: all view-pages view-local clean help -.PHONY: setup-jekyll run-jekyll - -all:: clean view-local - -help:: - $(info ${help_message}) - @echo - -print-info: - @echo "GitHub Pages URL: ${pages_url}" - @echo "current dir: ${PWD}" - @echo "docs dir: ${docs_dir}" - @echo "site dir: ${site_dir}" - @echo "clean dirs: ${clean_dirs} (deleted by 'make clean')" - @echo - @echo "MAKEFLAGS: ${MAKEFLAGS}" - @echo "MAKEFLAGS_RECURSIVE: ${MAKEFLAGS_RECURSIVE}" - @echo "JEKYLL_PORT: ${JEKYLL_PORT}" - @echo "UNAME: ${UNAME}" - @echo "ARCHITECTURE: ${ARCHITECTURE}" - @echo "GIT_HASH: ${GIT_HASH}" - @echo "NOW: ${NOW}" - -clean:: - rm -rf ${clean_dirs} - -view-pages:: - @python -m webbrowser "${pages_url}" || \ - (echo "ERROR: I could not open the GitHub Pages URL. Try ⌘-click or ^-click on this URL instead:" && \ - echo "ERROR: ${pages_url}" && exit 1 ) - -view-local:: setup-jekyll run-jekyll - -# Passing --baseurl '' allows us to use `localhost:4000` rather than require -# `localhost:4000/The-AI-Alliance/REPO_NAME` when running locally. -run-jekyll: clean - @echo - @echo "Once you see the http://127.0.0.1:${JEKYLL_PORT}/ URL printed, open it with command+click..." - @echo - cd ${docs_dir} && bundle exec jekyll serve --port ${JEKYLL_PORT} --baseurl '' --incremental || ( echo "ERROR: Failed to run Jekyll. Try running 'make setup-jekyll'." && exit 1 ) - -setup-jekyll:: ruby-installed-check bundle-ruby-command-check - @echo "Updating Ruby gems required for local viewing of the docs, including jekyll." - gem install jekyll bundler jemoji || ${MAKE} gem-error - bundle install || ${MAKE} bundle-error - bundle update html-pipeline || ${MAKE} bundle-error - -ruby-installed-check: - @command -v ruby > /dev/null || \ - ( echo "ERROR: ${ruby_and_gem_required_message}" && exit 1 ) - @command -v gem > /dev/null || \ - ( echo "ERROR: ${gem_required_message}" && exit 1 ) - -%-error: - $(error ${${@}-message}) - -%-ruby-command-check: - @command -v ${@:%-ruby-command-check=%} > /dev/null || \ - ( echo "ERROR: Ruby command/gem ${@:%-ruby-command-check=%} ${missing_ruby_gem_or_command_error_message}" && \ - exit 1 ) - -%-shell-command-check: - @command -v ${@:%-shell-command-check=%} > /dev/null || \ - ( echo "ERROR: shell command ${@:%-shell-command-check=%} ${missing_shell_command_error_message}" && \ - exit 1 ) diff --git a/README-template.md b/README-template.md deleted file mode 100644 index fe16d85..0000000 --- a/README-template.md +++ /dev/null @@ -1,137 +0,0 @@ -# How to Use `microsite-template` - -This repo is used as a template to create AI Alliance “microsites”. It is setup as a GitHub _template repo_, which you can use to create a new repo. Even if you aren't creating a microsite, you can use this procedure to create a new AI Alliance repo for other purposes. - -## Creating Your Repo - -These are the main steps: - -1. Create your repo from the [this template repo](https://github.com/The-AI-Alliance/microsite-template). -1. Convert placeholder _variables_ to the correct values, using the [`finish-microsite.sh`](https://github.com/The-AI-Alliance/microsite-template/blob/main/finish-microsite.sh) script. -1. Add your initial content for the repo. -1. Merge changes to the `latest` branch. -1. Push all updates upstream, `git push --all`. -1. On the repo's home page in GitHub, click the "gear" next to "About" (upper right-hand side). In the _Edit repository details_ that pops up, check the box to _Use your GitHub Pages website_ and enter appropriate _Topics_. -1. Add the website to the Alliance GitHub organization [landing page](https://github.com/The-AI-Alliance/) and the Alliance GitHub Pages [website](https://the-ai-alliance.github.io/#the-ai-alliance-projects). -1. When finished, delete this file! - -> [!NOTE] -> We are planning to automate as many of the manual steps as we can. - -Let's look at these steps in more detail. - -### 1. Create your repo from the `microsite-template`. - -Pick a name for your new repo and follow [these GitHub instructions](https://docs.github.com/en/repositories/creating-and-managing-repositories/creating-a-repository-from-a-template) to create a new repo from the [`microsite-template`](https://github.com/The-AI-Alliance/microsite-template) repo. - -### 2. Convert the placeholder _variables_. - -After step 1., your repo will have placeholder values for the project name, etc. Next, change to the repo root directory and run the script [`finish-microsite.sh`](https://github.com/The-AI-Alliance/microsite-template/blob/main/finish-microsite.sh) to replace the placeholder _variables_ with appropriate strings for your project. - -> [!WARN] -> The `finish-microsite.sh` script uses `zsh`. If you don't have `zsh` available, then use `bash` version 5 or later, e.g., `bash finish-microsite.sh ...`. - -At the time of this writing, here are the required arguments shown with example values for a repo named `ai-for-evil-project` under the auspices of the _FA2 Trust and Safety_ focus area work group: - -```shell -./finish-microsite.sh \ - --microsite-title "AI for Evil Project" \ - --work-group fa2 -``` - -Referring to a focus area, like `fa2` or `FA2` is expanded as follows: - -| Abbreviation | Full name | -| :----------- | :-------- | -| `FA1` | FA1: Skills and Education | -| `FA2` | FA2: Trust and Safety | -| `FA3` | FA3: Applications and Tools | -| `FA4` | FA4: Hardware Enablement | -| `FA5` | FA5: Foundation Models and Datasets | -| `FA6` | FA6: Advocacy | - -> [!NOTE] -> 1. Run the script with `zsh`, **_not_** `bash`. -> 2. To see the current list of required arguments and optional argument, run the script with the `--help` flag. - -> [!WARN] -> After running the script, your changes are only in your local repo, not pushed upstream. We'll fix that in step 5 below. - -### 3. Add your initial content for the repo. - -> [!NOTE] -> If you are creating a repo for code, not a microsite, delete the `docs` directory, but do the following steps that make sense. - -There are other placeholder texts in the `docs/**/*.markdown`, README, and other files that you should replace with your real content as soon as possible, e.g., - -1. Find and replace all occurrences of `TODO` with appropriate content. -1. Rename or delete the `second_page.markdown`. Copy it to add more top-level pages, but change the `nav_order` field to control the order of the pages shown in the left-hand side navigation view. -> [!TIP] -> Start with `10`, `20`, etc. for the `nav_order` of top-level pages, giving yourself room to insert new pages in between existing pages. For nested pages, e.g., under `20`, use `210`, `220`, etc. -3. See the `nested` directory content as an example of how to do nesting, or delete it if you don't need it. Note the metadata fields at the top, such as the `parent` and `has_children` fields. -4. Make any changes you want to make in the `docs/_config.yml` file. (None are mandatory.) - -For more tips and guidance on development tasks, see also the links for more information in the `README.md` in your new repo. Add a project-specific description at the beginning of that file. - -### 4. Merge changes to the `latest` branch. - -> [!NOTE] -> If you are creating a repo for code, not a microsite, delete the `latest` branch: -> -> ```shell -> git br -D latest -> ``` -> -> Also delete the upstream branch in the GitHub page for your repo. Then ignore the following steps. - -As discussed in [`GITHUB_PAGES.md`](https://github.com/The-AI-Alliance/the-ai-alliance.github.io/blob/main/GITHUB_PAGES.md), by default we publish the "microsite" from the `latest` branch, using `main` as the pre-publishing integration branch. Assuming you made all the edits above on the `main` branch, merge them to `latest`. - -```shell -git checkout latest -git merge main -``` - -### 5. Push all updates upstream. - -Run the following command: - -```shell -git push --all -``` - -Adding `--all` pushes the `main` and `latest` branches upstream. - -### 6. Add Your website to the Alliance GitHub Pages and the Alliance Website. - -> [!NOTE] -> If you are creating a repo for code, not a microsite, ignore this section. - -When you are ready for broader exposure for your site, there are a few places where we have an index to all the “microsites”. Add your site in the table shown in each of the following locations. Note how the rows are grouped by focus area. Put your new row with the others in your focus area. - -* https://github.com/The-AI-Alliance/.github/blob/main/profile/README.md -* https://github.com/The-AI-Alliance/the-ai-alliance.github.io/blob/main/docs/index.markdown - -You can just edit the page directly in GitHub and submit a PR. Note that for the second link, the `index.markdown` page for the `the-ai-alliance.github.io` site, we add `{:target="..."}` annotations to each link. Just use a unique name for your links. - -Finally, talk to your focus area leaders about updating the [AI Alliance website](https://thealliance.ai) with information about your project site. - -### 7. When finished, delete this file - -This file is no longer needed, so you can remove it from your repo: - -```shell -git rm README-template.md -``` - -If you are building a microsite and have the `latest` branch: - -```shell -git checkout latest -git merge main -``` - -Finally, push upstream: - -```shell -git push --all -``` diff --git a/README_orig.md b/README_orig.md deleted file mode 100644 index cf20563..0000000 --- a/README_orig.md +++ /dev/null @@ -1,41 +0,0 @@ -# README for MICROSITE_TITLE - -[Published Documentation](https://the-ai-alliance.github.io/REPO_NAME/) - -This repo contains the code and documentation for the AI Alliance: MICROSITE_TITLE. - -See the [repo README](https://the-ai-alliance.github.io/REPO_NAME/) for additional details about this project. - -TODO - Describe this project - -## Quick Tip - View the Website Locally - -See [GITHUB_PAGES.md](GITHUB_PAGES.md) for information on viewing the site locally with `jekyll`. - -## Getting Involved - -We welcome contributions as PRs. Please see our [Alliance community repo](https://github.com/The-AI-Alliance/community/) for general information about contributing to any of our projects. This section provides some specific details you need to know. - -In particular, see the AI Alliance [CONTRIBUTING](https://github.com/The-AI-Alliance/community/blob/main/CONTRIBUTING.md) instructions. You will need to agree with the AI Alliance [Code of Conduct](https://github.com/The-AI-Alliance/community/blob/main/CODE_OF_CONDUCT.md). - -All _code_ contributions are licensed under the [Apache 2.0 LICENSE](https://github.com/The-AI-Alliance/community/blob/main/LICENSE.Apache-2.0) (which is also in this repo, [LICENSE.Apache-2.0](LICENSE.Apache-2.0)). - -All _documentation_ contributions are licensed under the [Creative Commons Attribution 4.0 International](https://github.com/The-AI-Alliance/community/blob/main/LICENSE.CC-BY-4.0) (which is also in this repo, [LICENSE.CC-BY-4.0](LICENSE.CC-BY-4.0)). - -All _data_ contributions are licensed under the [Community Data License Agreement - Permissive - Version 2.0](https://github.com/The-AI-Alliance/community/blob/main/LICENSE.CDLA-2.0) (which is also in this repo, [LICENSE.CDLA-2.0](LICENSE.CDLA-2.0)). - -### We use the "Developer Certificate of Origin" (DCO). - -> [!WARNING] -> Before you make any git commits with changes, understand what's required for DCO. - -See the Alliance contributing guide [section on DCO](https://github.com/The-AI-Alliance/community/blob/main/CONTRIBUTING.md#developer-certificate-of-origin) for details. In practical terms, supporting this requirement means you must use the `-s` flag with your `git commit` commands. - -## About the GitHub Pages Website Published from this Repo - -The website is published using [GitHub Pages](https://pages.github.com/), where the pages are written in Markdown and served using [Jekyll](https://github.com/jekyll/jekyll). We use the [Just the Docs](https://just-the-docs.github.io/just-the-docs/) Jekyll theme. - -See [GITHUB_PAGES.md](GITHUB_PAGES.md) for more information. - -> [!NOTE] -> As described above, all documentation is licensed under Creative Commons Attribution 4.0 International. See [LICENSE.CDLA-2.0](LICENSE.CDLA-2.0)). diff --git a/docs/.prettierignore b/docs/.prettierignore deleted file mode 100644 index 53a4aa2..0000000 --- a/docs/.prettierignore +++ /dev/null @@ -1,11 +0,0 @@ -package.json -package-lock.json -_site -assets/css/just-the-docs-default.scss -assets/css/just-the-docs-light.scss -assets/css/just-the-docs-dark.scss -assets/js/vendor/lunr.min.js -assets/js/search-data.json -assets/js/just-the-docs.js -*.md -*.markdown diff --git a/docs/.prettierrc b/docs/.prettierrc deleted file mode 100644 index 70175ce..0000000 --- a/docs/.prettierrc +++ /dev/null @@ -1,7 +0,0 @@ -{ - "endOfLine": "lf", - "semi": false, - "singleQuote": false, - "tabWidth": 2, - "trailingComma": "es5" -} \ No newline at end of file diff --git a/docs/.stylelintrc.json b/docs/.stylelintrc.json deleted file mode 100644 index 329ca34..0000000 --- a/docs/.stylelintrc.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "ignoreFiles": [ - "assets/css/just-the-docs-default.scss", - "assets/css/just-the-docs-light.scss", - "assets/css/just-the-docs-dark.scss", - "_sass/vendor/**/*.scss" - ], - "extends": ["stylelint-config-primer", "stylelint-config-prettier"], - "plugins": ["stylelint-prettier"], - "rules": { - "prettier/prettier": true - } -} diff --git a/docs/404.html b/docs/404.html deleted file mode 100644 index 8ea5c12..0000000 --- a/docs/404.html +++ /dev/null @@ -1,11 +0,0 @@ ---- -layout: default -title: 404 -permalink: /404 -nav_exclude: true -search_exclude: true ---- - -

Page not found

- -

The page you requested could not be found. Try using the navigation {% if site.search_enabled != false %}or search {% endif %}to find what you're looking for or go to the home page.

diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index 13cc3e4..0000000 --- a/docs/_config.yml +++ /dev/null @@ -1,138 +0,0 @@ -# Welcome to Jekyll! -# -# This config file is meant for settings that affect your whole site, values -# which you are expected to set up once and rarely edit after that. If you find -# yourself editing these this file very often, consider using Jekyll's data files -# feature for the data you need to update frequently. -# -# For technical reasons, this file is *NOT* reloaded automatically when you use -# 'jekyll serve'. If you change this file, please restart the server process. - -# Site settings -# These are used to personalize your new site. If you look in the HTML files, -# you will see them accessed via {{ site.title }}, {{ site.github_repo }}, and so on. -# You can create any custom variable you would like, and they will be accessible -# in the templates via {{ site.myvariable }}. -title: MICROSITE_TITLE -email: contact@thealliance.ai -description: >- # this means to ignore newlines until "baseurl:" - The website for the AI Alliance project, MICROSITE_TITLE. -baseurl: "/REPO_NAME" # the subpath of your site. -url: "https://the-ai-alliance.github.io" # the base hostname & protocol for your site, e.g. http://example.com - -permalink: pretty -exclude: ["node_modules/", "*.gemspec", "*.gem", "Gemfile", "Gemfile.lock", "package.json", "package-lock.json", "script/", "LICENSE.txt", "lib/", "bin/", "README.md", "Rakefile", "Makefile" -, "docs/tests/", "notes.md", "vendor" -] - -# Regression tests -# By default, the pages in /docs/tests are excluded when the site is built. -# To include them, comment-out the relevant line above. -# Uncommenting the following line doesn't work - see https://github.com/jekyll/jekyll/issues/4791 -# include: ["docs/tests/"] - -# Set a path/url to a logo that will be displayed instead of the title -#logo: "/assets/images/just-the-docs.png" - -# Enable or disable the site search -# Supports true (default) or false -search_enabled: true -search: - # Split pages into sections that can be searched individually - # Supports 1 - 6, default: 2 - heading_level: 6 - # Maximum amount of previews per search result - # Default: 3 - previews: 3 - # Maximum amount of words to display before a matched word in the preview - # Default: 5 - preview_words_before: 3 - # Maximum amount of words to display after a matched word in the preview - # Default: 10 - preview_words_after: 3 - # Set the search token separator - # Default: /[\s\-/]+/ - # Example: enable support for hyphenated search words - tokenizer_separator: /[\s/]+/ - # Display the relative url in search results - # Supports true (default) or false - rel_url: true - # Enable or disable the search button that appears in the bottom right corner of every page - # Supports true or false (default) - button: false - -# Enable or disable heading anchors -heading_anchors: true - -# Aux links for the upper right navigation -aux_links: - "The AI Alliance": - - "https://thealliance.ai" - -nav_external_links: - - title: The AI Alliance repo for MICROSITE_TITLE" - url: "https://github.com/The-AI-Alliance/REPO_NAME" - hide_icon: false - -# Makes Aux links open in a new tab. Default is false -aux_links_new_tab: true - -# Sort order for navigation links -# nav_sort: case_insensitive # default, equivalent to nil -nav_sort: case_sensitive # Capital letters sorted before lowercase - -# Footer content -# appears at the bottom of every page's main content - -# Back to top link -back_to_top: true -back_to_top_text: "Back to the top" - -# Footer last edited timestamp -last_edit_timestamp: true # show or hide edit time - page must have `last_modified_date` defined in the frontmatter -last_edit_time_format: "%Y-%m-%d %H:%M %z" # uses ruby's time format: https://ruby-doc.org/stdlib-2.7.0/libdoc/time/rdoc/Time.html -last_modified_timestamp: TIMESTAMP -last_version: 0.1.0 - -# "Edit this page on GitHub" link text -gh_edit_link: true # show or hide edit this page link -gh_edit_link_text: "Edit this page on GitHub" -gh_edit_repository: "https://github.com/The-AI-Alliance/REPO_NAME/tree/latest/docs" # the github URL for your repo -gh_edit_branch: "target-blank" # the branch that your docs is served from -gh_edit_source: "docs" # the source that your files originate from -gh_edit_view_mode: "tree" # "tree" or "edit" if you want the user to jump into the editor immediately - -# Color scheme currently only supports "dark", "light"/nil (default), or a custom scheme that you define -color_scheme: nil - -# Google Analytics Tracking (optional) -# e.g, UA-1234567-89 -ga_tracking: G-RNHLN944B5 -#ga_tracking_anonymize_ip: true # Use GDPR compliant Google Analytics settings (true/nil by default) - -plugins: - - jekyll-seo-tag - - jekyll-target-blank - - jemoji - -kramdown: - highlighter: rouge - syntax_highlighter_opts: - block: - line_numbers: false - -compress_html: - clippings: all - comments: all - endings: all - startings: [] - blanklines: false - profile: false - # ignore: - # envs: all - -mermaid: - # Version of mermaid library - # Pick an available version from https://cdn.jsdelivr.net/npm/mermaid/ - version: "9.1.5" - diff --git a/docs/_includes/css/custom.scss.liquid b/docs/_includes/css/custom.scss.liquid deleted file mode 100644 index e555976..0000000 --- a/docs/_includes/css/custom.scss.liquid +++ /dev/null @@ -1,87 +0,0 @@ -@import "./custom/custom"; - -// The following trick is from -// https://christianoliff.com/blog/styling-external-links-with-an-icon-in-css/ -// It automatically adds the "external link" glyph -// at the end of all non-relative URLs. This DOES NOT -// cause them to be opened in separate windows; for that -// the anchor tag has to contain a target="foo". -div.main-content a[href^="http"]::after, -div.main-content a[href^="https://"]::after -{ - content: ""; - width: 11px; - height: 11px; - margin-left: 4px; - background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='currentColor' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5z'/%3E%3Cpath fill-rule='evenodd' d='M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0v-5z'/%3E%3C/svg%3E"); - background-position: center; - background-repeat: no-repeat; - background-size: contain; - display: inline-block; -} - -// Add the class "no-glyph" to links where you don't want the glyph added, -// like images that are links. -div.main-content a[href^="http"].no-glyph::after, -div.main-content a[href^="https://"].no-glyph::after -{ - background-image: none !important ; - width: 0px !important; -} - -// This doesn't actually work. Instead, the child-page ToC -// just uses the child.url, but NOT child.url | absolute.url. -// This causes the generated links to be relative, whereas -// for some reason when child.url | absolute.url is used, -// the absolute.url wins and a full URL is inserted. -div.child-pages-toc a[href^="http://example.com"]::after -div.child-pages-toc a[href^="https://example.com"]::after -{ - display: none !important; -} - -.disabled { - background-color: grey; - opacity: 0.5; -} - -.bold { - font-weight: bold -} - -// A "box" around that can be used for a different kind of callout. -div.callout-box { - background: #F0F0F8; - margin: 5px; - padding: 5px; - border: 1px solid #8080F8; -} - -// Similar to div.callout-box -table, th, td { - // background: #F0F0F8; - // margin: 5px; - padding: 5px; - // border: 2px solid #8080F8; -} -td { - background: #F0F0F8; -} - -// Center divs and images -div.centered { - text-align: center; -} -img.centered { - margin: auto; - display: block -} - -// Style figure captions -p.caption { - font-size: 80%; - font-style: italic; -} - -.resizer { display:flex; margin:0; padding:0; resize:both; overflow:hidden } -.resizer > .resized { flex-grow:1; margin:0; padding:0; border:0 } diff --git a/docs/_includes/css/just-the-docs.scss.liquid b/docs/_includes/css/just-the-docs.scss.liquid deleted file mode 100644 index 495cd6d..0000000 --- a/docs/_includes/css/just-the-docs.scss.liquid +++ /dev/null @@ -1,7 +0,0 @@ -{% if site.logo %} -$logo: "{{ site.logo | absolute_url }}"; -{% endif %} -@import "./support/support"; -@import "./color_schemes/{{ include.color_scheme }}"; -@import "./modules"; -{% include css/custom.scss.liquid %} diff --git a/docs/_includes/fix_linenos.html b/docs/_includes/fix_linenos.html deleted file mode 100644 index 6243fb0..0000000 --- a/docs/_includes/fix_linenos.html +++ /dev/null @@ -1,65 +0,0 @@ -{%- comment -%} -This file can be used to fix the HTML produced by Jekyll for highlighted -code with line numbers. - -It works with `{% highlight some_language linenos %}...{% endhighlight %}` -and with the Kramdown option to add line numbers to fenced code. - -The implementation was derived from the workaround provided by -Dmitry Hrabrov (DeXP) at -https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-188144901 - -EXPLANATION - -The HTML produced by Rouge highlighting with lie numbers is of the form -`code table`. Jekyll (<= 4.1.1) always wraps the highlighted HTML -with `pre`. This wrapping is not only unnecessary, but also transforms -the conforming HTML produced by Rouge to non-conforming HTML, which -results in HTML validation error reports. - -The fix removes the outer `pre` tags whenever they contain the pattern -``. - -Apart from avoiding HTML validation errors, the fix allows the use of -the [Jekyll layout for compressing HTML](http://jch.penibelst.de), -which relies on `pre` tags not being nested, according to -https://github.com/penibelst/jekyll-compress-html/issues/71#issuecomment-172069842 - -USAGE - -(Any names can be used for `some_var` and `some_language`.) - -{% capture some_var %} -{% highlight some_language linenos %} -Some code -{% endhighlight %} -{% endcapture %} -{% include fix_linenos.html code=some_var %} - -For code fences: - -{% capture some_var %} -```some_language -Some code -``` -{% endcapture %} -{% assign some_var = some_var | markdownify %} -{% include fix_linenos.html code=some_var %} - -CAVEATS - -The above does not work when `Some code` happens to contain the matched string -`
`. - -The use of this file overwrites the variable `fix_linenos_code` with `nil`. - -{%- endcomment -%} - -{% assign fix_linenos_code = include.code %} -{% if fix_linenos_code contains '
' %} - {% assign fix_linenos_code = fix_linenos_code | replace: '
', '
' %}
-  {% assign fix_linenos_code = fix_linenos_code | replace: "
", "" %} -{% endif %} -{{ fix_linenos_code }} -{% assign fix_linenos_code = nil %} diff --git a/docs/_includes/footer_custom.html b/docs/_includes/footer_custom.html deleted file mode 100644 index 64e08c2..0000000 --- a/docs/_includes/footer_custom.html +++ /dev/null @@ -1,3 +0,0 @@ -{%- if site.footer_content -%} -

{{ site.footer_content }}

-{%- endif -%} diff --git a/docs/_includes/head.html b/docs/_includes/head.html deleted file mode 100644 index 5500a1c..0000000 --- a/docs/_includes/head.html +++ /dev/null @@ -1,40 +0,0 @@ - - - - - {% unless site.plugins contains "jekyll-seo-tag" %} - {{ page.title }} - {{ site.title }} - - {% if page.description %} - - {% endif %} - {% endunless %} - - - - - - {% if site.ga_tracking != nil %} - - - - {% endif %} - - {% if site.search_enabled != false %} - - {% endif %} - - - - - {% seo %} - - {% include head_custom.html %} - - diff --git a/docs/_includes/head_custom.html b/docs/_includes/head_custom.html deleted file mode 100644 index e69de29..0000000 diff --git a/docs/_includes/header_custom.html b/docs/_includes/header_custom.html deleted file mode 100644 index e69de29..0000000 diff --git a/docs/_includes/js/custom.js b/docs/_includes/js/custom.js deleted file mode 100644 index e69de29..0000000 diff --git a/docs/_includes/mermaid_config.js b/docs/_includes/mermaid_config.js deleted file mode 100644 index 6eded14..0000000 --- a/docs/_includes/mermaid_config.js +++ /dev/null @@ -1,4 +0,0 @@ -// _includes/mermaid_config.js -{ - theme: "forest" -} diff --git a/docs/_includes/nav.html b/docs/_includes/nav.html deleted file mode 100644 index 325a68c..0000000 --- a/docs/_includes/nav.html +++ /dev/null @@ -1,99 +0,0 @@ - diff --git a/docs/_includes/title.html b/docs/_includes/title.html deleted file mode 100644 index 8bd3fa8..0000000 --- a/docs/_includes/title.html +++ /dev/null @@ -1,5 +0,0 @@ -{% if site.logo %} - -{% else %} - {{ site.title }} -{% endif %} diff --git a/docs/_includes/vendor/anchor_headings.html b/docs/_includes/vendor/anchor_headings.html deleted file mode 100755 index e9ca862..0000000 --- a/docs/_includes/vendor/anchor_headings.html +++ /dev/null @@ -1,144 +0,0 @@ -{% capture headingsWorkspace %} - {% comment %} - Copyright (c) 2018 Vladimir "allejo" Jimenez - - Permission is hereby granted, free of charge, to any person - obtaining a copy of this software and associated documentation - files (the "Software"), to deal in the Software without - restriction, including without limitation the rights to use, - copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the - Software is furnished to do so, subject to the following - conditions: - - The above copyright notice and this permission notice shall be - included in all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, - EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES - OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND - NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, - WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING - FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR - OTHER DEALINGS IN THE SOFTWARE. - {% endcomment %} - {% comment %} - Version 1.0.7 - https://github.com/allejo/jekyll-anchor-headings - - "Be the pull request you wish to see in the world." ~Ben Balter - - Usage: - {% include anchor_headings.html html=content anchorBody="#" %} - - Parameters: - * html (string) - the HTML of compiled markdown generated by kramdown in Jekyll - - Optional Parameters: - * beforeHeading (bool) : false - Set to true if the anchor should be placed _before_ the heading's content - * anchorAttrs (string) : '' - Any custom HTML attributes that will be added to the `` tag; you may NOT use `href`, `class` or `title`; - the `%heading%` and `%html_id%` placeholders are available - * anchorBody (string) : '' - The content that will be placed inside the anchor; the `%heading%` placeholder is available - * anchorClass (string) : '' - The class(es) that will be used for each anchor. Separate multiple classes with a space - * anchorTitle (string) : '' - The `title` attribute that will be used for anchors - * h_min (int) : 1 - The minimum header level to build an anchor for; any header lower than this value will be ignored - * h_max (int) : 6 - The maximum header level to build an anchor for; any header greater than this value will be ignored - * bodyPrefix (string) : '' - Anything that should be inserted inside of the heading tag _before_ its anchor and content - * bodySuffix (string) : '' - Anything that should be inserted inside of the heading tag _after_ its anchor and content - - Output: - The original HTML with the addition of anchors inside of all of the h1-h6 headings. - {% endcomment %} - - {% assign minHeader = include.h_min | default: 1 %} - {% assign maxHeader = include.h_max | default: 6 %} - {% assign beforeHeading = include.beforeHeading %} - {% assign nodes = include.html | split: ' - {% if headerLevel == 0 %} - - {% assign firstChunk = node | split: '>' | first %} - - - {% unless firstChunk contains '<' %} - {% capture node %}{% endcapture %} - {% assign _workspace = node | split: _closingTag %} - {% assign _idWorkspace = _workspace[0] | split: 'id="' %} - {% assign _idWorkspace = _idWorkspace[1] | split: '"' %} - {% assign html_id = _idWorkspace[0] %} - - {% capture _hAttrToStrip %}{{ _workspace[0] | split: '>' | first }}>{% endcapture %} - {% assign header = _workspace[0] | replace: _hAttrToStrip, '' %} - - - {% capture anchor %}{% endcapture %} - - {% if html_id and headerLevel >= minHeader and headerLevel <= maxHeader %} - {% capture anchor %}href="#{{ html_id }}"{% endcapture %} - - {% if include.anchorClass %} - {% capture anchor %}{{ anchor }} class="{{ include.anchorClass }}"{% endcapture %} - {% endif %} - - {% if include.anchorTitle %} - {% capture anchor %}{{ anchor }} title="{{ include.anchorTitle | replace: '%heading%', header }}"{% endcapture %} - {% endif %} - - {% if include.anchorAttrs %} - {% capture anchor %}{{ anchor }} {{ include.anchorAttrs | replace: '%heading%', header | replace: '%html_id%', html_id }}{% endcapture %} - {% endif %} - - {% capture anchor %}{{ include.anchorBody | replace: '%heading%', header | default: '' }}{% endcapture %} - - - {% if beforeHeading %} - {% capture anchor %}{{ anchor }} {% endcapture %} - {% else %} - {% capture anchor %} {{ anchor }}{% endcapture %} - {% endif %} - {% endif %} - - {% capture new_heading %} - - {% endcapture %} - - - {% assign chunkCount = _workspace | size %} - {% if chunkCount > 1 %} - {% capture new_heading %}{{ new_heading }}{{ _workspace | last }}{% endcapture %} - {% endif %} - - {% capture edited_headings %}{{ edited_headings }}{{ new_heading }}{% endcapture %} - {% endfor %} -{% endcapture %}{% assign headingsWorkspace = '' %}{{ edited_headings | strip }} diff --git a/docs/_layouts/about.html b/docs/_layouts/about.html deleted file mode 100644 index 5e71126..0000000 --- a/docs/_layouts/about.html +++ /dev/null @@ -1,5 +0,0 @@ ---- -layout: default ---- - -{{ content }} diff --git a/docs/_layouts/default.html b/docs/_layouts/default.html deleted file mode 100644 index b4c95c7..0000000 --- a/docs/_layouts/default.html +++ /dev/null @@ -1,225 +0,0 @@ ---- -layout: table_wrappers ---- - - - - -{% include head.html %} - - - - Link - - - - - - Search - - - - - - Menu - - - - - - Expand - - - - - - Document - - - - - - - -
-
- {% if site.search_enabled != false %} - - {% endif %} - {% include header_custom.html %} - {% if site.aux_links %} - - {% endif %} -
-
- {% unless page.url == "/" %} - {% if page.parent %} - {%- for node in pages_list -%} - {%- if node.parent == nil -%} - {%- if page.parent == node.title or page.grand_parent == node.title -%} - {%- assign first_level_url = node.url | absolute_url -%} - {%- endif -%} - {%- if node.has_children -%} - {%- assign children_list = pages_list | where: "parent", node.title -%} - {%- for child in children_list -%} - {%- if page.url == child.url or page.parent == child.title -%} - {%- assign second_level_url = child.url | absolute_url -%} - {%- endif -%} - {%- endfor -%} - {%- endif -%} - {%- endif -%} - {%- endfor -%} - - - {% endif %} - {% endunless %} -
- AI Alliance Banner -
- - {% if site.heading_anchors != false %} - {% include vendor/anchor_headings.html html=content beforeHeading="true" anchorBody="" anchorClass="anchor-heading" anchorAttrs="aria-labelledby=\"%html_id%\"" %} - {% else %} - {{ content }} - {% endif %} - - {% if page.has_children == true and page.has_toc != false %} -
-
-

Child Pages

-
    - {%- assign children_list = pages_list | where: "parent", page.title | where: "grand_parent", page.parent -%} - {% for child in children_list %} - {% if child.nav_exclude != true %} -
  • - {{child.title}}{% if child.summary %} - {{child.summary}}{% endif %} -
  • - {% endif %} - {% endfor %} -
-
- {% endif %} - - {% capture footer_custom %} - {%- include footer_custom.html -%} - {% endcapture %} - {% if footer_custom != "" or site.last_edit_timestamp or site.gh_edit_link %} -
-
- {% if site.back_to_top %} -

{{ site.back_to_top_text }}

- {% endif %} - - {{ footer_custom }} - {% if site.last_edit_timestamp or site.gh_edit_link %} - {% if - site.gh_edit_link and - site.gh_edit_link_text and - site.gh_edit_repository and - site.gh_edit_branch and - site.gh_edit_view_mode - %} - - {% endif %} - {% if site.last_edit_timestamp and site.last_edit_time_format %} -
-

- {% if site.last_version %} - Version: {{ site.last_version }} - {% endif %} - {% if page.last_modified_date %} - Page last modified: {{ page.last_modified_date | date: site.last_edit_time_format }}. - {% elsif site.last_modified_date %} - Site last modified: {{ site.last_modified_date | date: site.last_edit_time_format }}. - {% endif %} -

-
- {% endif %} - {% endif %} -
- {% endif %} - -
-
- - {% if site.search_enabled != false %} - {% if site.search.button %} - - - - {% endif %} - -
- {% endif %} -
- - diff --git a/docs/_layouts/home.html b/docs/_layouts/home.html deleted file mode 100644 index 5e71126..0000000 --- a/docs/_layouts/home.html +++ /dev/null @@ -1,5 +0,0 @@ ---- -layout: default ---- - -{{ content }} diff --git a/docs/_layouts/page.html b/docs/_layouts/page.html deleted file mode 100644 index 5e71126..0000000 --- a/docs/_layouts/page.html +++ /dev/null @@ -1,5 +0,0 @@ ---- -layout: default ---- - -{{ content }} diff --git a/docs/_layouts/post.html b/docs/_layouts/post.html deleted file mode 100644 index 5e71126..0000000 --- a/docs/_layouts/post.html +++ /dev/null @@ -1,5 +0,0 @@ ---- -layout: default ---- - -{{ content }} diff --git a/docs/_layouts/table_wrappers.html b/docs/_layouts/table_wrappers.html deleted file mode 100644 index 3f8f226..0000000 --- a/docs/_layouts/table_wrappers.html +++ /dev/null @@ -1,7 +0,0 @@ ---- -layout: vendor/compress ---- - -{% assign content_ = content | replace: '', '
' %} -{{ content_ }} diff --git a/docs/_layouts/vendor/compress.html b/docs/_layouts/vendor/compress.html deleted file mode 100644 index bb34487..0000000 --- a/docs/_layouts/vendor/compress.html +++ /dev/null @@ -1,10 +0,0 @@ ---- -# Jekyll layout that compresses HTML -# v3.1.0 -# http://jch.penibelst.de/ -# © 2014–2015 Anatol Broder -# MIT License ---- - -{% capture _LINE_FEED %} -{% endcapture %}{% if site.compress_html.ignore.envs contains jekyll.environment or site.compress_html.ignore.envs == "all" %}{{ content }}{% else %}{% capture _content %}{{ content }}{% endcapture %}{% assign _profile = site.compress_html.profile %}{% if site.compress_html.endings == "all" %}{% assign _endings = "html head body li dt dd optgroup option colgroup caption thead tbody tfoot tr td th" | split: " " %}{% else %}{% assign _endings = site.compress_html.endings %}{% endif %}{% for _element in _endings %}{% capture _end %}{% endcapture %}{% assign _content = _content | remove: _end %}{% endfor %}{% if _profile and _endings %}{% assign _profile_endings = _content | size | plus: 1 %}{% endif %}{% for _element in site.compress_html.startings %}{% capture _start %}<{{ _element }}>{% endcapture %}{% assign _content = _content | remove: _start %}{% endfor %}{% if _profile and site.compress_html.startings %}{% assign _profile_startings = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.comments == "all" %}{% assign _comments = "" | split: " " %}{% else %}{% assign _comments = site.compress_html.comments %}{% endif %}{% if _comments.size == 2 %}{% capture _comment_befores %}.{{ _content }}{% endcapture %}{% assign _comment_befores = _comment_befores | split: _comments.first %}{% for _comment_before in _comment_befores %}{% if forloop.first %}{% continue %}{% endif %}{% capture _comment_outside %}{% if _carry %}{{ _comments.first }}{% endif %}{{ _comment_before }}{% endcapture %}{% capture _comment %}{% unless _carry %}{{ _comments.first }}{% endunless %}{{ _comment_outside | split: _comments.last | first }}{% if _comment_outside contains _comments.last %}{{ _comments.last }}{% assign _carry = false %}{% else %}{% assign _carry = true %}{% endif %}{% endcapture %}{% assign _content = _content | remove_first: _comment %}{% endfor %}{% if _profile %}{% assign _profile_comments = _content | size | plus: 1 %}{% endif %}{% endif %}{% assign _pre_befores = _content | split: "" %}{% assign _pres_after = "" %}{% if _pres.size != 0 %}{% if site.compress_html.blanklines %}{% assign _lines = _pres.last | split: _LINE_FEED %}{% capture _pres_after %}{% for _line in _lines %}{% assign _trimmed = _line | split: " " | join: " " %}{% if _trimmed != empty or forloop.last %}{% unless forloop.first %}{{ _LINE_FEED }}{% endunless %}{{ _line }}{% endif %}{% endfor %}{% endcapture %}{% else %}{% assign _pres_after = _pres.last | split: " " | join: " " %}{% endif %}{% endif %}{% capture _content %}{{ _content }}{% if _pre_before contains "" %}{% endif %}{% unless _pre_before contains "" and _pres.size == 1 %}{{ _pres_after }}{% endunless %}{% endcapture %}{% endfor %}{% if _profile %}{% assign _profile_collapse = _content | size | plus: 1 %}{% endif %}{% if site.compress_html.clippings == "all" %}{% assign _clippings = "html head title base link meta style body article section nav aside h1 h2 h3 h4 h5 h6 hgroup header footer address p hr blockquote ol ul li dl dt dd figure figcaption main div table caption colgroup col tbody thead tfoot tr td th" | split: " " %}{% else %}{% assign _clippings = site.compress_html.clippings %}{% endif %}{% for _element in _clippings %}{% assign _edges = " ;; ;" | replace: "e", _element | split: ";" %}{% assign _content = _content | replace: _edges[0], _edges[1] | replace: _edges[2], _edges[3] | replace: _edges[4], _edges[5] %}{% endfor %}{% if _profile and _clippings %}{% assign _profile_clippings = _content | size | plus: 1 %}{% endif %}{{ _content }}{% if _profile %}
Step Bytes
raw {{ content | size }}{% if _profile_endings %}
endings {{ _profile_endings }}{% endif %}{% if _profile_startings %}
startings {{ _profile_startings }}{% endif %}{% if _profile_comments %}
comments {{ _profile_comments }}{% endif %}{% if _profile_collapse %}
collapse {{ _profile_collapse }}{% endif %}{% if _profile_clippings %}
clippings {{ _profile_clippings }}{% endif %}
{% endif %}{% endif %} diff --git a/docs/_sass/base.scss b/docs/_sass/base.scss deleted file mode 100644 index c3b6698..0000000 --- a/docs/_sass/base.scss +++ /dev/null @@ -1,108 +0,0 @@ -// -// Base element style overrides -// -// stylelint-disable selector-no-type, selector-max-type - -* { - box-sizing: border-box; -} - -::selection { - color: $white; - background: $link-color; -} - -html { - @include fs-4; - scroll-behavior: smooth; -} - -body { - font-family: $body-font-family; - font-size: inherit; - line-height: $body-line-height; - color: $body-text-color; - background-color: $body-background-color; -} - -ol, -ul, -dl, -pre, -address, -blockquote, -table, -div, -hr, -form, -fieldset, -noscript .table-wrapper { - margin-top: 0; -} - -h1, -h2, -h3, -h4, -h5, -h6 { - margin-top: 0; - margin-bottom: 1em; - font-weight: 500; - line-height: $body-heading-line-height; - color: $body-heading-color; -} - -p { - margin-top: 1em; - margin-bottom: 1em; -} - -a { - color: $link-color; - text-decoration: none; -} - -a:not([class]) { - text-decoration: none; - background-image: linear-gradient($border-color 0%, $border-color 100%); - background-repeat: repeat-x; - background-position: 0 100%; - background-size: 1px 1px; - - &:hover { - background-image: linear-gradient( - rgba($link-color, 0.45) 0%, - rgba($link-color, 0.45) 100% - ); - background-size: 1px 1px; - } -} - -code { - font-family: $mono-font-family; - font-size: 0.75em; - line-height: $body-line-height; -} - -figure, -pre { - margin: 0; -} - -li { - margin: 0.25em 0; -} - -img { - max-width: 100%; - height: auto; -} - -hr { - height: 1px; - padding: 0; - margin: $sp-6 0; - background-color: $border-color; - border: 0; -} diff --git a/docs/_sass/buttons.scss b/docs/_sass/buttons.scss deleted file mode 100644 index 57660e0..0000000 --- a/docs/_sass/buttons.scss +++ /dev/null @@ -1,118 +0,0 @@ -// -// Buttons and things that look like buttons -// -// stylelint-disable color-named - -.btn { - display: inline-block; - box-sizing: border-box; - padding-top: 0.3em; - padding-right: 1em; - padding-bottom: 0.3em; - padding-left: 1em; - margin: 0; - font-family: inherit; - font-size: inherit; - font-weight: 500; - line-height: 1.5; - color: $link-color; - text-decoration: none; - vertical-align: baseline; - cursor: pointer; - background-color: $base-button-color; - border-width: 0; - border-radius: $border-radius; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); - appearance: none; - - &:focus { - text-decoration: none; - outline: none; - box-shadow: 0 0 0 3px rgba(blue, 0.25); - } - - &:focus:hover, - &.selected:focus { - box-shadow: 0 0 0 3px rgba(blue, 0.25); - } - - &:hover, - &.zeroclipboard-is-hover { - color: darken($link-color, 2%); - } - - &:hover, - &:active, - &.zeroclipboard-is-hover, - &.zeroclipboard-is-active { - text-decoration: none; - background-color: darken($base-button-color, 1%); - } - - &:active, - &.selected, - &.zeroclipboard-is-active { - background-color: darken($base-button-color, 3%); - background-image: none; - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); - } - - &.selected:hover { - background-color: darken(#dcdcdc, 5%); - } - - &:disabled, - &.disabled { - &, - &:hover { - color: rgba(102, 102, 102, 0.5); - cursor: default; - background-color: rgba(229, 229, 229, 0.5); - background-image: none; - box-shadow: none; - } - } -} - -.btn-outline { - color: $link-color; - background: transparent; - box-shadow: inset 0 0 0 2px $grey-lt-300; - - &:hover, - &:active, - &.zeroclipboard-is-hover, - &.zeroclipboard-is-active { - color: darken($link-color, 4%); - text-decoration: none; - background-color: transparent; - box-shadow: inset 0 0 0 3px $grey-lt-300; - } - - &:focus { - text-decoration: none; - outline: none; - box-shadow: inset 0 0 0 2px $grey-dk-100, 0 0 0 3px rgba(blue, 0.25); - } - - &:focus:hover, - &.selected:focus { - box-shadow: inset 0 0 0 2px $grey-dk-100; - } -} - -.btn-primary { - @include btn-color($white, $btn-primary-color); -} - -.btn-purple { - @include btn-color($white, $purple-100); -} - -.btn-blue { - @include btn-color($white, $blue-000); -} - -.btn-green { - @include btn-color($white, $green-100); -} diff --git a/docs/_sass/code.scss b/docs/_sass/code.scss deleted file mode 100644 index f038912..0000000 --- a/docs/_sass/code.scss +++ /dev/null @@ -1,340 +0,0 @@ -// -// Code and syntax highlighting -// -// stylelint-disable selector-no-qualifying-type, declaration-block-semicolon-newline-after,declaration-block-single-line-max-declarations, selector-no-type, selector-max-type - -code { - padding: 0.2em 0.15em; - font-weight: 400; - background-color: $code-background-color; - border: $border $border-color; - border-radius: $border-radius; -} - -// Avoid appearance of dark border around visited code links in Safari -a:visited code { - border-color: $border-color; -} - -// Content structure for highlighted code blocks using fences or Liquid -// -// ```[LANG]...```, no kramdown line_numbers: -// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code -// -// ```[LANG]...```, kramdown line_numbers = true: -// div.[language-LANG.]highlighter-rouge > div.highlight > pre.highlight > code -// > div.table-wrapper > table.rouge-table > tbody > tr -// > td.rouge-gutter.gl > pre.lineno -// | td.rouge-code > pre -// -// {% highlight LANG %}...{% endhighlight %}: -// figure.highlight > pre > code.language-LANG -// -// {% highlight LANG linenos %}...{% endhighlight %}: -// figure.highlight > pre > code.language-LANG -// > div.table-wrapper > table.rouge-table > tbody > tr -// > td.gutter.gl > pre.lineno -// | td.code > pre -// -// fix_linenos removes the outermost pre when it encloses table.rouge-table -// -// See docs/index-test.md for some tests. -// -// No kramdown line_numbers: fences and Liquid highlighting look the same. -// Kramdown line_numbers = true: fences have a wider gutter than with Liquid? - -// ```[LANG]...``` -div.highlighter-rouge { - padding: $sp-3; - margin-top: 0; - margin-bottom: $sp-3; - overflow-x: auto; - background-color: $code-background-color; - border-radius: $border-radius; - box-shadow: none; - -webkit-overflow-scrolling: touch; - - div.highlight, - pre.highlight, - code { - padding: 0; - margin: 0; - border: 0; - } -} - -// {% highlight LANG %}...{% endhighlight %}, -// {% highlight LANG linenos %}...{% endhighlight %}: -figure.highlight { - padding: $sp-3; - margin-top: 0; - margin-bottom: $sp-3; - background-color: $code-background-color; - border-radius: $border-radius; - box-shadow: none; - -webkit-overflow-scrolling: touch; - - pre, - code { - padding: 0; - margin: 0; - border: 0; - } -} - -// ```[LANG]...```, kramdown line_numbers = true, -// {% highlight LANG linenos %}...{% endhighlight %}: -.highlight .table-wrapper { - padding: 0; - margin: 0; - border: 0; - box-shadow: none; - - td, - pre { - @include fs-2; - min-width: 0; - padding: 0; - background-color: $code-background-color; - border: 0; - } - - td.gl { - padding-right: $sp-3; - } - - pre { - margin: 0; - line-height: 2; - } -} - -.highlight .c { - color: #586e75; -} // comment // -.highlight .err { - color: #93a1a1; -} // error // -.highlight .g { - color: #93a1a1; -} // generic // -.highlight .k { - color: #859900; -} // keyword // -.highlight .l { - color: #93a1a1; -} // literal // -.highlight .n { - color: #93a1a1; -} // name // -.highlight .o { - color: #859900; -} // operator // -.highlight .x { - color: #cb4b16; -} // other // -.highlight .p { - color: #93a1a1; -} // punctuation // -.highlight .cm { - color: #586e75; -} // comment.multiline // -.highlight .cp { - color: #859900; -} // comment.preproc // -.highlight .c1 { - color: #586e75; -} // comment.single // -.highlight .cs { - color: #859900; -} // comment.special // -.highlight .gd { - color: #2aa198; -} // generic.deleted // -.highlight .ge { - font-style: italic; - color: #93a1a1; -} // generic.emph // -.highlight .gr { - color: #dc322f; -} // generic.error // -.highlight .gh { - color: #cb4b16; -} // generic.heading // -.highlight .gi { - color: #859900; -} // generic.inserted // -.highlight .go { - color: #93a1a1; -} // generic.output // -.highlight .gp { - color: #93a1a1; -} // generic.prompt // -.highlight .gs { - font-weight: bold; - color: #93a1a1; -} // generic.strong // -.highlight .gu { - color: #cb4b16; -} // generic.subheading // -.highlight .gt { - color: #93a1a1; -} // generic.traceback // -.highlight .kc { - color: #cb4b16; -} // keyword.constant // -.highlight .kd { - color: #268bd2; -} // keyword.declaration // -.highlight .kn { - color: #859900; -} // keyword.namespace // -.highlight .kp { - color: #859900; -} // keyword.pseudo // -.highlight .kr { - color: #268bd2; -} // keyword.reserved // -.highlight .kt { - color: #dc322f; -} // keyword.type // -.highlight .ld { - color: #93a1a1; -} // literal.date // -.highlight .m { - color: #2aa198; -} // literal.number // -.highlight .s { - color: #2aa198; -} // literal.string // -.highlight .na { - color: #555; -} // name.attribute // -.highlight .nb { - color: #b58900; -} // name.builtin // -.highlight .nc { - color: #268bd2; -} // name.class // -.highlight .no { - color: #cb4b16; -} // name.constant // -.highlight .nd { - color: #268bd2; -} // name.decorator // -.highlight .ni { - color: #cb4b16; -} // name.entity // -.highlight .ne { - color: #cb4b16; -} // name.exception // -.highlight .nf { - color: #268bd2; -} // name.function // -.highlight .nl { - color: #555; -} // name.label // -.highlight .nn { - color: #93a1a1; -} // name.namespace // -.highlight .nx { - color: #555; -} // name.other // -.highlight .py { - color: #93a1a1; -} // name.property // -.highlight .nt { - color: #268bd2; -} // name.tag // -.highlight .nv { - color: #268bd2; -} // name.variable // -.highlight .ow { - color: #859900; -} // operator.word // -.highlight .w { - color: #93a1a1; -} // text.whitespace // -.highlight .mf { - color: #2aa198; -} // literal.number.float // -.highlight .mh { - color: #2aa198; -} // literal.number.hex // -.highlight .mi { - color: #2aa198; -} // literal.number.integer // -.highlight .mo { - color: #2aa198; -} // literal.number.oct // -.highlight .sb { - color: #586e75; -} // literal.string.backtick // -.highlight .sc { - color: #2aa198; -} // literal.string.char // -.highlight .sd { - color: #93a1a1; -} // literal.string.doc // -.highlight .s2 { - color: #2aa198; -} // literal.string.double // -.highlight .se { - color: #cb4b16; -} // literal.string.escape // -.highlight .sh { - color: #93a1a1; -} // literal.string.heredoc // -.highlight .si { - color: #2aa198; -} // literal.string.interpol // -.highlight .sx { - color: #2aa198; -} // literal.string.other // -.highlight .sr { - color: #dc322f; -} // literal.string.regex // -.highlight .s1 { - color: #2aa198; -} // literal.string.single // -.highlight .ss { - color: #2aa198; -} // literal.string.symbol // -.highlight .bp { - color: #268bd2; -} // name.builtin.pseudo // -.highlight .vc { - color: #268bd2; -} // name.variable.class // -.highlight .vg { - color: #268bd2; -} // name.variable.global // -.highlight .vi { - color: #268bd2; -} // name.variable.instance // -.highlight .il { - color: #2aa198; -} // literal.number.integer.long // - -// -// Code examples (rendered) -// - -.code-example { - padding: $sp-3; - margin-bottom: $sp-3; - overflow: auto; - border: 1px solid $border-color; - border-radius: $border-radius; - - + .highlighter-rouge, - + figure.highlight { - position: relative; - margin-top: -$sp-4; - border-right: 1px solid $border-color; - border-bottom: 1px solid $border-color; - border-left: 1px solid $border-color; - border-top-left-radius: 0; - border-top-right-radius: 0; - } -} diff --git a/docs/_sass/color_schemes/dark.scss b/docs/_sass/color_schemes/dark.scss deleted file mode 100644 index a25f449..0000000 --- a/docs/_sass/color_schemes/dark.scss +++ /dev/null @@ -1,17 +0,0 @@ -$body-background-color: $grey-dk-300; -$sidebar-color: $grey-dk-300; -$border-color: $grey-dk-200; - -$body-text-color: $grey-lt-300; -$body-heading-color: $grey-lt-000; -$nav-child-link-color: $grey-dk-000; -$search-result-preview-color: $grey-dk-000; - -$link-color: $blue-000; -$btn-primary-color: $blue-200; -$base-button-color: $grey-dk-250; - -$code-background-color: $grey-dk-250; -$search-background-color: $grey-dk-250; -$table-background-color: $grey-dk-250; -$feedback-color: darken($sidebar-color, 3%); diff --git a/docs/_sass/color_schemes/light.scss b/docs/_sass/color_schemes/light.scss deleted file mode 100644 index e69de29..0000000 diff --git a/docs/_sass/content.scss b/docs/_sass/content.scss deleted file mode 100644 index a53271a..0000000 --- a/docs/_sass/content.scss +++ /dev/null @@ -1,231 +0,0 @@ -@charset "UTF-8"; - -// -// Styles for rendered markdown in the .main-content container -// -// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type - -.main-content { - line-height: $content-line-height; - - ol, - ul, - dl, - pre, - address, - blockquote, - .table-wrapper { - margin-top: 0.5em; - } - - a { - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; - } - - ul, - ol { - padding-left: 1.5em; - } - - li { - .highlight { - margin-top: $sp-1; - } - } - - ol { - list-style-type: none; - counter-reset: step-counter; - - > li { - position: relative; - - &::before { - position: absolute; - top: 0.2em; - left: -1.6em; - color: $grey-dk-000; - content: counter(step-counter); - counter-increment: step-counter; - @include fs-3; - - @include mq(sm) { - top: 0.11em; - } - } - - ol { - counter-reset: sub-counter; - - li { - &::before { - content: counter(sub-counter, lower-alpha); - counter-increment: sub-counter; - } - } - } - } - } - - ul { - list-style: none; - - > li { - &::before { - position: absolute; - margin-left: -1.4em; - color: $grey-dk-000; - content: "•"; - } - } - } - - .task-list { - padding-left: 0; - } - - .task-list-item { - display: flex; - align-items: center; - - &::before { - content: ""; - } - } - - .task-list-item-checkbox { - margin-right: 0.6em; - } - - hr + * { - margin-top: 0; - } - - h1:first-of-type { - margin-top: 0.5em; - } - - dl { - display: grid; - grid-template: auto / 10em 1fr; - } - - dt, - dd { - margin: 0.25em 0; - } - - dt { - grid-column: 1; - font-weight: 500; - text-align: right; - &::after { - content: ":"; - } - } - - dd { - grid-column: 2; - margin-bottom: 0; - margin-left: 1em; - blockquote, - div, - dl, - dt, - h1, - h2, - h3, - h4, - h5, - h6, - li, - ol, - p, - pre, - table, - ul, - .table-wrapper { - &:first-child { - margin-top: 0; - } - } - } - - dd, - ol, - ul { - dl:first-child { - dt:first-child, - dd:nth-child(2) { - margin-top: 0; - } - } - } - - .anchor-heading { - position: absolute; - right: -$sp-4; - width: $sp-5; - height: 100%; - padding-right: $sp-1; - padding-left: $sp-1; - overflow: visible; - - @include mq(md) { - right: auto; - left: -$sp-5; - } - - svg { - display: inline-block; - width: 100%; - height: 100%; - color: $link-color; - visibility: hidden; - } - } - - .anchor-heading:hover, - h1:hover > .anchor-heading, - h2:hover > .anchor-heading, - h3:hover > .anchor-heading, - h4:hover > .anchor-heading, - h5:hover > .anchor-heading, - h6:hover > .anchor-heading { - svg { - visibility: visible; - } - } - - summary { - cursor: pointer; - } - - h1, - h2, - h3, - h4, - h5, - h6 { - position: relative; - margin-top: 1.5em; - margin-bottom: 0.25em; - - &:first-child { - margin-top: $sp-2; - } - - + table, - + .table-wrapper, - + .code-example, - + .highlighter-rouge { - margin-top: 1em; - } - - + p { - margin-top: 0; - } - } -} diff --git a/docs/_sass/custom/custom.scss b/docs/_sass/custom/custom.scss deleted file mode 100644 index 3e964f2..0000000 --- a/docs/_sass/custom/custom.scss +++ /dev/null @@ -1,3 +0,0 @@ -td { - vertical-align: top; -} \ No newline at end of file diff --git a/docs/_sass/labels.scss b/docs/_sass/labels.scss deleted file mode 100644 index e08ae80..0000000 --- a/docs/_sass/labels.scss +++ /dev/null @@ -1,37 +0,0 @@ -// -// Labels (not the form kind) -// - -.label, -.label-blue { - display: inline-block; - padding-top: 0.16em; - padding-right: 0.56em; - padding-bottom: 0.16em; - padding-left: 0.56em; - margin-right: $sp-2; - margin-left: $sp-2; - color: $white; - text-transform: uppercase; - vertical-align: middle; - background-color: $blue-100; - @include fs-2; - border-radius: 12px; -} - -.label-green { - background-color: $green-200; -} - -.label-purple { - background-color: $purple-100; -} - -.label-red { - background-color: $red-200; -} - -.label-yellow { - color: $grey-dk-200; - background-color: $yellow-200; -} diff --git a/docs/_sass/layout.scss b/docs/_sass/layout.scss deleted file mode 100644 index 8559bb0..0000000 --- a/docs/_sass/layout.scss +++ /dev/null @@ -1,205 +0,0 @@ -// -// The basic two column layout -// - -.side-bar { - z-index: 0; - display: flex; - flex-wrap: wrap; - background-color: $sidebar-color; - - @include mq(md) { - flex-wrap: nowrap; - position: fixed; - width: $nav-width-md; - height: 100%; - flex-direction: column; - border-right: $border $border-color; - align-items: flex-end; - } - - @include mq(lg) { - width: calc((100% - #{$nav-width + $content-width}) / 2 + #{$nav-width}); - min-width: $nav-width; - } -} - -.main { - @include mq(md) { - position: relative; - max-width: $content-width; - margin-left: $nav-width-md; - } - - @include mq(lg) { - margin-left: calc( - (100% - #{$nav-width + $content-width}) / 2 + #{$nav-width} - ); - } -} - -.main-content-wrap { - @include container; - padding-top: $gutter-spacing-sm; - padding-bottom: $gutter-spacing-sm; - - @include mq(md) { - padding-top: $gutter-spacing; - padding-bottom: $gutter-spacing; - } -} - -.main-header { - z-index: 0; - display: none; - background-color: $sidebar-color; - - @include mq(md) { - display: flex; - justify-content: space-between; - height: $header-height; - background-color: $body-background-color; - border-bottom: $border $border-color; - } - - &.nav-open { - display: block; - - @include mq(md) { - display: flex; - } - } -} - -.site-nav, -.site-header, -.site-footer { - width: 100%; - - @include mq(lg) { - width: $nav-width; - } -} - -.site-nav { - display: none; - - &.nav-open { - display: block; - } - - @include mq(md) { - display: block; - padding-top: $sp-8; - padding-bottom: $gutter-spacing-sm; - overflow-y: auto; - flex: 1 1 auto; - } -} - -.site-header { - display: flex; - min-height: $header-height; - align-items: center; - - @include mq(md) { - height: 1.5*$header-height; - max-height: 1.5*$header-height; - border-bottom: $border $border-color; - } -} - -.site-title { - @include container; - flex-grow: 1; - display: flex; - height: 100%; - align-items: center; - padding-top: $sp-3; - padding-bottom: $sp-3; - color: $body-heading-color; - @include fs-6; - - @include mq(md) { - padding-top: $sp-2; - padding-bottom: $sp-2; - } -} - -@if variable-exists(logo) { - .site-logo { - width: 100%; - height: 100%; - background-image: url($logo); - background-repeat: no-repeat; - background-position: left center; - background-size: contain; - } -} - -.site-button { - display: flex; - height: 100%; - padding: $gutter-spacing-sm; - align-items: center; -} - -@include mq(md) { - .site-header .site-button { - display: none; - } -} - -.site-title:hover { - background-image: linear-gradient( - -90deg, - rgba($feedback-color, 1) 0%, - rgba($feedback-color, 0.8) 80%, - rgba($feedback-color, 0) 100% - ); -} - -.site-button:hover { - background-image: linear-gradient( - -90deg, - rgba($feedback-color, 1) 0%, - rgba($feedback-color, 0.8) 100% - ); -} - -// stylelint-disable selector-max-type - -body { - position: relative; - padding-bottom: $sp-10; - overflow-y: scroll; - - @include mq(md) { - position: static; - padding-bottom: 0; - } -} - -// stylelint-enable selector-max-type - -.site-footer { - @include container; - position: absolute; - bottom: 0; - left: 0; - padding-top: $sp-4; - padding-bottom: $sp-4; - color: $grey-dk-000; - @include fs-2; - - @include mq(md) { - position: static; - justify-self: end; - } -} - -.icon { - width: $sp-5; - height: $sp-5; - color: $link-color; -} diff --git a/docs/_sass/modules.scss b/docs/_sass/modules.scss deleted file mode 100644 index d82591b..0000000 --- a/docs/_sass/modules.scss +++ /dev/null @@ -1,20 +0,0 @@ -// -// Import external dependencies -// -@import "./vendor/normalize.scss/normalize.scss"; - -// -// Modules -// -@import "./base"; -@import "./layout"; -@import "./content"; -@import "./navigation"; -@import "./typography"; -@import "./labels"; -@import "./buttons"; -@import "./search"; -@import "./tables"; -@import "./code"; -@import "./utilities/utilities"; -@import "./print"; diff --git a/docs/_sass/navigation.scss b/docs/_sass/navigation.scss deleted file mode 100644 index 521c15f..0000000 --- a/docs/_sass/navigation.scss +++ /dev/null @@ -1,219 +0,0 @@ -// -// Main nav, breadcrumb, etc... -// -// stylelint-disable selector-no-type, max-nesting-depth, selector-max-compound-selectors, selector-max-type, selector-max-specificity - -.nav-list { - padding: 0; - margin-top: 0; - margin-bottom: 0; - list-style: none; - - .nav-list-item { - @include fs-4; - position: relative; - margin: 0; - - @include mq(md) { - @include fs-3; - } - - .nav-list-link { - display: block; - min-height: $nav-list-item-height-sm; - padding-top: $sp-1; - padding-bottom: $sp-1; - line-height: #{$nav-list-item-height-sm - 2 * $sp-1}; - @if $nav-list-expander-right { - padding-right: $nav-list-item-height-sm; - padding-left: $gutter-spacing-sm; - } @else { - padding-right: $gutter-spacing-sm; - padding-left: $nav-list-item-height-sm; - } - - @include mq(md) { - min-height: $nav-list-item-height; - line-height: #{$nav-list-item-height - 2 * $sp-1}; - @if $nav-list-expander-right { - padding-right: $nav-list-item-height; - padding-left: $gutter-spacing; - } @else { - padding-right: $gutter-spacing; - padding-left: $nav-list-item-height; - } - } - - &.active { - font-weight: 600; - text-decoration: none; - } - - &:hover, - &.active { - background-image: linear-gradient( - -90deg, - rgba($feedback-color, 1) 0%, - rgba($feedback-color, 0.8) 80%, - rgba($feedback-color, 0) 100% - ); - } - } - - .nav-list-expander { - position: absolute; - @if $nav-list-expander-right { - right: 0; - } - width: $nav-list-item-height-sm; - height: $nav-list-item-height-sm; - padding-top: #{$nav-list-item-height-sm / 4}; - padding-right: #{$nav-list-item-height-sm / 4}; - padding-bottom: #{$nav-list-item-height-sm / 4}; - padding-left: #{$nav-list-item-height-sm / 4}; - color: $link-color; - - @include mq(md) { - width: $nav-list-item-height; - height: $nav-list-item-height; - padding-top: #{$nav-list-item-height / 4}; - padding-right: #{$nav-list-item-height / 4}; - padding-bottom: #{$nav-list-item-height / 4}; - padding-left: #{$nav-list-item-height / 4}; - } - - &:hover { - background-image: linear-gradient( - -90deg, - rgba($feedback-color, 1) 0%, - rgba($feedback-color, 0.8) 100% - ); - } - - @if $nav-list-expander-right { - svg { - transform: rotate(90deg); - } - } - } - - > .nav-list { - display: none; - padding-left: $sp-3; - list-style: none; - - .nav-list-item { - position: relative; - - .nav-list-link { - color: $nav-child-link-color; - } - - .nav-list-expander { - color: $nav-child-link-color; - } - } - } - - &.active { - > .nav-list-expander svg { - @if $nav-list-expander-right { - transform: rotate(-90deg); - } @else { - transform: rotate(90deg); - } - } - - > .nav-list { - display: block; - } - } - } -} - -.nav-category { - padding-top: $sp-2; - padding-right: $gutter-spacing-sm; - padding-bottom: $sp-2; - padding-left: $gutter-spacing-sm; - font-weight: 600; - text-align: end; - text-transform: uppercase; - border-bottom: $border $border-color; - @include fs-2; - - @include mq(md) { - padding-right: $gutter-spacing; - padding-left: $gutter-spacing; - margin-top: $gutter-spacing-sm; - text-align: start; - - &:first-child { - margin-top: 0; - } - } -} - -// Aux nav - -.aux-nav { - height: 100%; - overflow-x: auto; - @include fs-2; - - .aux-nav-list { - display: flex; - height: 100%; - padding: 0; - margin: 0; - list-style: none; - } - - .aux-nav-list-item { - display: inline-block; - height: 100%; - padding: 0; - margin: 0; - } - - @include mq(md) { - padding-right: $gutter-spacing-sm; - } -} - -// Breadcrumb nav - -.breadcrumb-nav { - @include mq(md) { - margin-top: -$sp-4; - } -} - -.breadcrumb-nav-list { - padding-left: 0; - margin-bottom: $sp-3; - list-style: none; -} - -.breadcrumb-nav-list-item { - display: table-cell; - @include fs-2; - - &::before { - display: none; - } - - &::after { - display: inline-block; - margin-right: $sp-2; - margin-left: $sp-2; - color: $grey-dk-000; - content: "/"; - } - - &:last-child { - &::after { - content: ""; - } - } -} diff --git a/docs/_sass/print.scss b/docs/_sass/print.scss deleted file mode 100644 index 6e6de37..0000000 --- a/docs/_sass/print.scss +++ /dev/null @@ -1,40 +0,0 @@ -// stylelint-disable selector-max-specificity, selector-max-id, selector-max-type, selector-no-qualifying-type, primer/no-override, - -@media print { - .site-footer, - .site-button, - #edit-this-page, - #back-to-top, - .site-nav, - .main-header { - display: none !important; - } - - .side-bar { - width: 100%; - height: auto; - border-right: 0 !important; - } - - .site-header { - border-bottom: 1px solid $border-color; - } - - .site-title { - font-size: $root-font-size !important; - font-weight: 700 !important; - } - - .text-small { - font-size: 8pt !important; - } - - pre.highlight { - border: 1px solid $border-color; - } - - .main { - max-width: none; - margin-left: 0; - } -} diff --git a/docs/_sass/search.scss b/docs/_sass/search.scss deleted file mode 100644 index 4290210..0000000 --- a/docs/_sass/search.scss +++ /dev/null @@ -1,323 +0,0 @@ -// -// Search input and autocomplete -// - -.search { - position: relative; - z-index: 2; - flex-grow: 1; - height: $sp-10; - padding: $sp-2; - transition: padding linear #{$transition-duration / 2}; - - @include mq(md) { - position: relative !important; - width: auto !important; - height: 100% !important; - padding: 0; - transition: none; - } -} - -.search-input-wrap { - position: relative; - z-index: 1; - height: $sp-8; - overflow: hidden; - border-radius: $border-radius; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); - transition: height linear #{$transition-duration / 2}; - - @include mq(md) { - position: absolute; - width: 100%; - max-width: $search-results-width; - height: 100% !important; - border-radius: 0; - box-shadow: none; - transition: width ease $transition-duration; - } -} - -.search-input { - position: absolute; - width: 100%; - height: 100%; - padding-top: $sp-2; - padding-right: $gutter-spacing-sm; - padding-bottom: $sp-2; - padding-left: #{$gutter-spacing-sm + $sp-5}; - font-size: 16px; - background-color: $search-background-color; - border-top: 0; - border-right: 0; - border-bottom: 0; - border-left: 0; - border-radius: 0; - - @include mq(md) { - padding-top: $gutter-spacing-sm; - padding-bottom: $gutter-spacing-sm; - padding-left: #{$gutter-spacing + $sp-5}; - font-size: 14px; - background-color: $body-background-color; - transition: padding-left linear #{$transition-duration / 2}; - } - - &:focus { - outline: 0; - - + .search-label .search-icon { - color: $link-color; - } - } -} - -.search-label { - position: absolute; - display: flex; - height: 100%; - padding-left: $gutter-spacing-sm; - - @include mq(md) { - padding-left: $gutter-spacing; - transition: padding-left linear #{$transition-duration / 2}; - } - - .search-icon { - width: #{$sp-4 * 1.2}; - height: #{$sp-4 * 1.2}; - align-self: center; - color: $grey-dk-000; - } -} - -.search-results { - position: absolute; - left: 0; - display: none; - width: 100%; - max-height: calc(100% - #{$sp-10}); - overflow-y: auto; - background-color: $search-background-color; - border-bottom-right-radius: $border-radius; - border-bottom-left-radius: $border-radius; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); - - @include mq(md) { - top: 100%; - width: $search-results-width; - max-height: calc(100vh - 200%) !important; - } -} - -.search-results-list { - padding-left: 0; - margin-bottom: $sp-1; - list-style: none; - @include fs-4; - - @include mq(md) { - @include fs-3; - } -} - -.search-results-list-item { - padding: 0; - margin: 0; -} - -.search-result { - display: block; - padding-top: $sp-1; - padding-right: $sp-3; - padding-bottom: $sp-1; - padding-left: $sp-3; - - &:hover, - &.active { - background-color: $feedback-color; - } -} - -.search-result-title { - display: block; - padding-top: $sp-2; - padding-bottom: $sp-2; - - @include mq(sm) { - display: inline-block; - width: 40%; - padding-right: $sp-2; - vertical-align: top; - } -} - -.search-result-doc { - display: flex; - align-items: center; - word-wrap: break-word; - - &.search-result-doc-parent { - opacity: 0.5; - @include fs-3; - - @include mq(md) { - @include fs-2; - } - } - - .search-result-icon { - width: $sp-4; - height: $sp-4; - margin-right: $sp-2; - color: $link-color; - flex-shrink: 0; - } - - .search-result-doc-title { - overflow: auto; - } -} - -.search-result-section { - margin-left: #{$sp-4 + $sp-2}; - word-wrap: break-word; -} - -.search-result-rel-url { - display: block; - margin-left: #{$sp-4 + $sp-2}; - overflow: hidden; - color: $search-result-preview-color; - text-overflow: ellipsis; - white-space: nowrap; - @include fs-1; -} - -.search-result-previews { - display: block; - padding-top: $sp-2; - padding-bottom: $sp-2; - padding-left: $sp-4; - margin-left: $sp-2; - color: $search-result-preview-color; - word-wrap: break-word; - border-left: $border; - border-left-color: $border-color; - @include fs-2; - - @include mq(sm) { - display: inline-block; - width: 60%; - padding-left: $sp-2; - margin-left: 0; - vertical-align: top; - } -} - -.search-result-preview + .search-result-preview { - margin-top: $sp-1; -} - -.search-result-highlight { - font-weight: bold; -} - -.search-no-result { - padding-top: $sp-2; - padding-right: $sp-3; - padding-bottom: $sp-2; - padding-left: $sp-3; - @include fs-3; -} - -.search-button { - position: fixed; - right: $sp-4; - bottom: $sp-4; - display: flex; - width: $sp-9; - height: $sp-9; - background-color: $search-background-color; - border: 1px solid rgba($link-color, 0.3); - border-radius: #{$sp-9 / 2}; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); - align-items: center; - justify-content: center; -} - -.search-overlay { - position: fixed; - top: 0; - left: 0; - z-index: 1; - width: 0; - height: 0; - background-color: rgba(0, 0, 0, 0.3); - opacity: 0; - transition: opacity ease $transition-duration, width 0s $transition-duration, - height 0s $transition-duration; -} - -.search-active { - .search { - position: fixed; - top: 0; - left: 0; - width: 100%; - height: 100%; - padding: 0; - } - - .search-input-wrap { - height: $sp-10; - border-radius: 0; - - @include mq(md) { - width: $search-results-width; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); - } - } - - .search-input { - background-color: $search-background-color; - - @include mq(md) { - padding-left: 2.3rem; - } - } - - .search-label { - @include mq(md) { - padding-left: 0.6rem; - } - } - - .search-results { - display: block; - } - - .search-overlay { - width: 100%; - height: 100%; - opacity: 1; - transition: opacity ease $transition-duration, width 0s, height 0s; - } - - @include mq(md) { - .main { - position: fixed; - right: 0; - left: 0; - } - } - - .main-header { - padding-top: $sp-10; - - @include mq(md) { - padding-top: 0; - } - } -} diff --git a/docs/_sass/support/_functions.scss b/docs/_sass/support/_functions.scss deleted file mode 100644 index 6772f4e..0000000 --- a/docs/_sass/support/_functions.scss +++ /dev/null @@ -1,9 +0,0 @@ -@function rem($size, $unit: "") { - $remSize: $size / $root-font-size; - - @if ($unit == false) { - @return #{$remSize}; - } @else { - @return #{$remSize}rem; - } -} diff --git a/docs/_sass/support/_variables.scss b/docs/_sass/support/_variables.scss deleted file mode 100644 index 3ab3f05..0000000 --- a/docs/_sass/support/_variables.scss +++ /dev/null @@ -1,153 +0,0 @@ -// -// Typography -// - -$body-font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", - Roboto, "Helvetica Neue", Arial, sans-serif !default; -$mono-font-family: "SFMono-Regular", Menlo, Consolas, Monospace !default; -$root-font-size: 16px !default; // Base font-size for rems -$body-line-height: 1.4 !default; -$content-line-height: 1.6 !default; -$body-heading-line-height: 1.25 !default; - -// -// Font size -// `-sm` suffix is the size at the small (and above) media query -// - -$font-size-1: 9px !default; -$font-size-1-sm: 10px !default; -$font-size-2: 11px !default; //h4 - uppercased!, h6 not uppercased, text-small -$font-size-3: 12px !default; //h5 -$font-size-4: 14px !default; -$font-size-5: 16px !default; //h3 -$font-size-6: 18px !default; //h2 -$font-size-7: 24px !default; -$font-size-8: 32px !default; //h1 -$font-size-9: 36px !default; -$font-size-10: 42px !default; -$font-size-10-sm: 48px !default; - -// -// Colors -// - -$white: #fff !default; - -$grey-dk-000: #959396 !default; -$grey-dk-100: #5c5962 !default; -$grey-dk-200: #44434d !default; -$grey-dk-250: #302d36 !default; -$grey-dk-300: #27262b !default; - -$grey-lt-000: #f5f6fa !default; -$grey-lt-100: #eeebee !default; -$grey-lt-200: #ecebed !default; -$grey-lt-300: #e6e1e8 !default; - -$purple-000: #7253ed !default; -$purple-100: #5e41d0 !default; -$purple-200: #4e26af !default; -$purple-300: #381885 !default; - -$blue-000: #2c84fa !default; -$blue-100: #2869e6 !default; -$blue-200: #264caf !default; -$blue-300: #183385 !default; - -$green-000: #41d693 !default; -$green-100: #11b584 !default; -$green-200: #009c7b !default; -$green-300: #026e57 !default; - -$yellow-000: #ffeb82 !default; -$yellow-100: #fadf50 !default; -$yellow-200: #f7d12e !default; -$yellow-300: #e7af06 !default; - -$red-000: #f77e7e !default; -$red-100: #f96e65 !default; -$red-200: #e94c4c !default; -$red-300: #dd2e2e !default; - -$body-background-color: $white !default; -$sidebar-color: $grey-lt-000 !default; -$search-background-color: $white !default; -$table-background-color: $white !default; -$code-background-color: $grey-lt-000 !default; -$feedback-color: darken($sidebar-color, 3%) !default; - -$body-text-color: $grey-dk-100 !default; -$body-heading-color: $grey-dk-300 !default; -$search-result-preview-color: $grey-dk-000 !default; -$nav-child-link-color: $grey-dk-100 !default; -$link-color: $purple-000 !default; -$btn-primary-color: $purple-100 !default; -$base-button-color: #f7f7f7 !default; - -// -// Spacing -// - -$spacing-unit: 1rem; // 1rem == 16px - -$spacers: ( - sp-0: 0, - sp-1: $spacing-unit * 0.25, - sp-2: $spacing-unit * 0.5, - sp-3: $spacing-unit * 0.75, - sp-4: $spacing-unit, - sp-5: $spacing-unit * 1.5, - sp-6: $spacing-unit * 2, - sp-7: $spacing-unit * 2.5, - sp-8: $spacing-unit * 3, - sp-9: $spacing-unit * 3.5, - sp-10: $spacing-unit * 4, -) !default; - -$sp-1: map-get($spacers, sp-1) !default; // 0.25 rem == 4px -$sp-2: map-get($spacers, sp-2) !default; // 0.5 rem == 8px -$sp-3: map-get($spacers, sp-3) !default; // 0.75 rem == 12px -$sp-4: map-get($spacers, sp-4) !default; // 1 rem == 16px -$sp-5: map-get($spacers, sp-5) !default; // 1.5 rem == 24px -$sp-6: map-get($spacers, sp-6) !default; // 2 rem == 32px -$sp-7: map-get($spacers, sp-7) !default; // 2.5 rem == 40px -$sp-8: map-get($spacers, sp-8) !default; // 3 rem == 48px -$sp-9: map-get($spacers, sp-9) !default; // 3.5 rem == 56px -$sp-10: map-get($spacers, sp-10) !default; // 4 rem == 64px - -// -// Borders -// - -$border: 1px solid !default; -$border-radius: 4px !default; -$border-color: $grey-lt-100 !default; - -// -// Grid system -// - -$gutter-spacing: $sp-6 !default; -$gutter-spacing-sm: $sp-4 !default; -$nav-width: 264px !default; -$nav-width-md: 248px !default; -$nav-list-item-height: $sp-6 !default; -$nav-list-item-height-sm: $sp-8 !default; -$nav-list-expander-right: true; -$content-width: 800px !default; -$header-height: 60px !default; -$search-results-width: $content-width - $nav-width !default; -$transition-duration: 400ms; - -// -// Media queries in pixels -// - -$media-queries: ( - xs: 320px, - sm: 500px, - md: $content-width, - lg: $content-width + $nav-width, - xl: 1400px, -) !default; diff --git a/docs/_sass/support/mixins/_buttons.scss b/docs/_sass/support/mixins/_buttons.scss deleted file mode 100644 index e3e6c4f..0000000 --- a/docs/_sass/support/mixins/_buttons.scss +++ /dev/null @@ -1,27 +0,0 @@ -// Colored button - -@mixin btn-color($fg, $bg) { - color: $fg; - background-color: darken($bg, 2%); - background-image: linear-gradient(lighten($bg, 5%), darken($bg, 2%)); - box-shadow: 0 1px 3px rgba(0, 0, 0, 0.25), 0 4px 10px rgba(0, 0, 0, 0.12); - - &:hover, - &.zeroclipboard-is-hover { - color: $fg; - background-color: darken($bg, 4%); - background-image: linear-gradient((lighten($bg, 2%), darken($bg, 4%))); - } - - &:active, - &.selected, - &.zeroclipboard-is-active { - background-color: darken($bg, 5%); - background-image: none; - box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.15); - } - - &.selected:hover { - background-color: darken($bg, 10%); - } -} diff --git a/docs/_sass/support/mixins/_layout.scss b/docs/_sass/support/mixins/_layout.scss deleted file mode 100644 index 27ad6c7..0000000 --- a/docs/_sass/support/mixins/_layout.scss +++ /dev/null @@ -1,34 +0,0 @@ -// Media query - -// Media query mixin -// Usage: -// @include mq(md) { -// ..medium and up styles -// } -@mixin mq($name) { - // Retrieves the value from the key - $value: map-get($media-queries, $name); - - // If the key exists in the map - @if $value != null { - // Prints a media query based on the value - @media (min-width: rem($value)) { - @content; - } - } @else { - @warn "No value could be retrieved from `#{$media-query}`. " - + "Please make sure it is defined in `$media-queries` map."; - } -} - -// Responsive container - -@mixin container { - padding-right: $gutter-spacing-sm; - padding-left: $gutter-spacing-sm; - - @include mq(md) { - padding-right: $gutter-spacing; - padding-left: $gutter-spacing; - } -} diff --git a/docs/_sass/support/mixins/_typography.scss b/docs/_sass/support/mixins/_typography.scss deleted file mode 100644 index 5207fcd..0000000 --- a/docs/_sass/support/mixins/_typography.scss +++ /dev/null @@ -1,84 +0,0 @@ -@mixin fs-1 { - font-size: $font-size-1 !important; - - @include mq(sm) { - font-size: $font-size-1-sm !important; - } -} - -@mixin fs-2 { - font-size: $font-size-2 !important; - - @include mq(sm) { - font-size: $font-size-3 !important; - } -} - -@mixin fs-3 { - font-size: $font-size-3 !important; - - @include mq(sm) { - font-size: $font-size-4 !important; - } -} - -@mixin fs-4 { - font-size: $font-size-4 !important; - - @include mq(sm) { - font-size: $font-size-5 !important; - } -} - -@mixin fs-5 { - font-size: $font-size-5 !important; - - @include mq(sm) { - font-size: $font-size-6 !important; - } -} - -@mixin fs-6 { - font-size: $font-size-6 !important; - - @include mq(sm) { - font-size: $font-size-7 !important; - line-height: $body-heading-line-height; - } -} - -@mixin fs-7 { - font-size: $font-size-7 !important; - line-height: $body-heading-line-height; - - @include mq(sm) { - font-size: $font-size-8 !important; - } -} - -@mixin fs-8 { - font-size: $font-size-8 !important; - line-height: $body-heading-line-height; - - @include mq(sm) { - font-size: $font-size-9 !important; - } -} - -@mixin fs-9 { - font-size: $font-size-9 !important; - line-height: $body-heading-line-height; - - @include mq(sm) { - font-size: $font-size-10 !important; - } -} - -@mixin fs-10 { - font-size: $font-size-10 !important; - line-height: $body-heading-line-height; - - @include mq(sm) { - font-size: $font-size-10-sm !important; - } -} diff --git a/docs/_sass/support/mixins/mixins.scss b/docs/_sass/support/mixins/mixins.scss deleted file mode 100644 index 0506fbf..0000000 --- a/docs/_sass/support/mixins/mixins.scss +++ /dev/null @@ -1,3 +0,0 @@ -@import "./layout"; -@import "./buttons"; -@import "./typography"; diff --git a/docs/_sass/support/support.scss b/docs/_sass/support/support.scss deleted file mode 100644 index 8131a32..0000000 --- a/docs/_sass/support/support.scss +++ /dev/null @@ -1,3 +0,0 @@ -@import "./variables"; -@import "./functions"; -@import "./mixins/mixins"; diff --git a/docs/_sass/tables.scss b/docs/_sass/tables.scss deleted file mode 100644 index 99b8d5e..0000000 --- a/docs/_sass/tables.scss +++ /dev/null @@ -1,59 +0,0 @@ -// -// Tables -// -// stylelint-disable max-nesting-depth, selector-no-type, selector-max-type - -.table-wrapper { - display: block; - width: 100%; - max-width: 100%; - margin-bottom: $sp-5; - overflow-x: auto; - border-radius: $border-radius; - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.12), 0 3px 10px rgba(0, 0, 0, 0.08); -} - -table { - display: table; - min-width: 100%; - border-collapse: separate; -} - -th, -td { - @include fs-3; - min-width: 120px; - padding-top: $sp-2; - padding-right: $sp-3; - padding-bottom: $sp-2; - padding-left: $sp-3; - background-color: $table-background-color; - border-bottom: $border rgba($border-color, 0.5); - border-left: $border $border-color; - vertical-align: top; - - &:first-of-type { - border-left: 0; - } -} - -tbody { - tr { - &:last-of-type { - th, - td { - border-bottom: 0; - } - - td { - padding-bottom: $sp-3; - } - } - } -} - -thead { - th { - border-bottom: $border $border-color; - } -} diff --git a/docs/_sass/typography.scss b/docs/_sass/typography.scss deleted file mode 100644 index cadee36..0000000 --- a/docs/_sass/typography.scss +++ /dev/null @@ -1,64 +0,0 @@ -// -// Typography -// -// stylelint-disable primer/selector-no-utility, primer/no-override, selector-no-type, selector-max-type - -h1, -.text-alpha { - @include fs-8; - font-weight: 300; -} - -h2, -.text-beta { - @include fs-6; -} - -h3, -.text-gamma { - @include fs-5; -} - -h4, -.text-delta { - @include fs-2; - font-weight: 400; - text-transform: uppercase; - letter-spacing: 0.1em; -} - -h4 code { - text-transform: none; -} - -h5, -.text-epsilon { - @include fs-3; - color: $grey-dk-200; -} - -h6, -.text-zeta { - @include fs-2; - color: $grey-dk-200; -} - -.text-small { - @include fs-2; -} - -.text-mono { - font-family: $mono-font-family !important; -} - -.text-left { - text-align: left !important; -} - -.text-center { - text-align: center !important; -} - -.text-right { - text-align: right !important; -} diff --git a/docs/_sass/utilities/_colors.scss b/docs/_sass/utilities/_colors.scss deleted file mode 100644 index f3607ab..0000000 --- a/docs/_sass/utilities/_colors.scss +++ /dev/null @@ -1,239 +0,0 @@ -// -// Utility classes for colors -// - -// Text colors - -.text-grey-dk-000 { - color: $grey-dk-000 !important; -} - -.text-grey-dk-100 { - color: $grey-dk-100 !important; -} - -.text-grey-dk-200 { - color: $grey-dk-200 !important; -} - -.text-grey-dk-250 { - color: $grey-dk-250 !important; -} - -.text-grey-dk-300 { - color: $grey-dk-300 !important; -} - -.text-grey-lt-000 { - color: $grey-lt-000 !important; -} - -.text-grey-lt-100 { - color: $grey-lt-100 !important; -} - -.text-grey-lt-200 { - color: $grey-lt-200 !important; -} - -.text-grey-lt-300 { - color: $grey-lt-300 !important; -} - -.text-blue-000 { - color: $blue-000 !important; -} - -.text-blue-100 { - color: $blue-100 !important; -} - -.text-blue-200 { - color: $blue-200 !important; -} - -.text-blue-300 { - color: $blue-300 !important; -} - -.text-green-000 { - color: $green-000 !important; -} - -.text-green-100 { - color: $green-100 !important; -} - -.text-green-200 { - color: $green-200 !important; -} - -.text-green-300 { - color: $green-300 !important; -} - -.text-purple-000 { - color: $purple-000 !important; -} - -.text-purple-100 { - color: $purple-100 !important; -} - -.text-purple-200 { - color: $purple-200 !important; -} - -.text-purple-300 { - color: $purple-300 !important; -} - -.text-yellow-000 { - color: $yellow-000 !important; -} - -.text-yellow-100 { - color: $yellow-100 !important; -} - -.text-yellow-200 { - color: $yellow-200 !important; -} - -.text-yellow-300 { - color: $yellow-300 !important; -} - -.text-red-000 { - color: $red-000 !important; -} - -.text-red-100 { - color: $red-100 !important; -} - -.text-red-200 { - color: $red-200 !important; -} - -.text-red-300 { - color: $red-300 !important; -} - -// Background colors - -.bg-grey-dk-000 { - background-color: $grey-dk-000 !important; -} - -.bg-grey-dk-100 { - background-color: $grey-dk-100 !important; -} - -.bg-grey-dk-200 { - background-color: $grey-dk-200 !important; -} - -.bg-grey-dk-250 { - background-color: $grey-dk-250 !important; -} - -.bg-grey-dk-300 { - background-color: $grey-dk-300 !important; -} - -.bg-grey-lt-000 { - background-color: $grey-lt-000 !important; -} - -.bg-grey-lt-100 { - background-color: $grey-lt-100 !important; -} - -.bg-grey-lt-200 { - background-color: $grey-lt-200 !important; -} - -.bg-grey-lt-300 { - background-color: $grey-lt-300 !important; -} - -.bg-blue-000 { - background-color: $blue-000 !important; -} - -.bg-blue-100 { - background-color: $blue-100 !important; -} - -.bg-blue-200 { - background-color: $blue-200 !important; -} - -.bg-blue-300 { - background-color: $blue-300 !important; -} - -.bg-green-000 { - background-color: $green-000 !important; -} - -.bg-green-100 { - background-color: $green-100 !important; -} - -.bg-green-200 { - background-color: $green-200 !important; -} - -.bg-green-300 { - background-color: $green-300 !important; -} - -.bg-purple-000 { - background-color: $purple-000 !important; -} - -.bg-purple-100 { - background-color: $purple-100 !important; -} - -.bg-purple-200 { - background-color: $purple-200 !important; -} - -.bg-purple-300 { - background-color: $purple-300 !important; -} - -.bg-yellow-000 { - background-color: $yellow-000 !important; -} - -.bg-yellow-100 { - background-color: $yellow-100 !important; -} - -.bg-yellow-200 { - background-color: $yellow-200 !important; -} - -.bg-yellow-300 { - background-color: $yellow-300 !important; -} - -.bg-red-000 { - background-color: $red-000 !important; -} - -.bg-red-100 { - background-color: $red-100 !important; -} - -.bg-red-200 { - background-color: $red-200 !important; -} - -.bg-red-300 { - background-color: $red-300 !important; -} diff --git a/docs/_sass/utilities/_layout.scss b/docs/_sass/utilities/_layout.scss deleted file mode 100644 index 37ebe42..0000000 --- a/docs/_sass/utilities/_layout.scss +++ /dev/null @@ -1,95 +0,0 @@ -// stylelint-disable primer/selector-no-utility, primer/no-override -// -// Utility classes for layout -// - -// Display - -.d-block { - display: block !important; -} -.d-flex { - display: flex !important; -} -.d-inline { - display: inline !important; -} -.d-inline-block { - display: inline-block !important; -} -.d-none { - display: none !important; -} - -@each $media-query in map-keys($media-queries) { - @for $i from 1 through length($spacers) { - @include mq($media-query) { - $size: #{map-get($spacers, sp-#{$i - 1})}; - $scale: #{$i - 1}; - - // .d-sm-block, .d-md-none, .d-lg-inline - .d-#{$media-query}-block { - display: block !important; - } - .d-#{$media-query}-flex { - display: flex !important; - } - .d-#{$media-query}-inline { - display: inline !important; - } - .d-#{$media-query}-inline-block { - display: inline-block !important; - } - .d-#{$media-query}-none { - display: none !important; - } - } - } -} - -// Horizontal alignment - -.float-left { - float: left !important; -} - -.float-right { - float: right !important; -} - -.flex-justify-start { - justify-content: flex-start !important; -} - -.flex-justify-end { - justify-content: flex-end !important; -} - -.flex-justify-between { - justify-content: space-between !important; -} - -.flex-justify-around { - justify-content: space-around !important; -} - -// Vertical alignment - -.v-align-baseline { - vertical-align: baseline !important; -} -.v-align-bottom { - vertical-align: bottom !important; -} -.v-align-middle { - vertical-align: middle !important; -} -.v-align-text-bottom { - vertical-align: text-bottom !important; -} -.v-align-text-top { - vertical-align: text-top !important; -} -.v-align-top { - vertical-align: top !important; -} diff --git a/docs/_sass/utilities/_lists.scss b/docs/_sass/utilities/_lists.scss deleted file mode 100644 index c7b2293..0000000 --- a/docs/_sass/utilities/_lists.scss +++ /dev/null @@ -1,17 +0,0 @@ -// -// Utility classes for lists -// - -// stylelint-disable primer/selector-no-utility, primer/no-override, selector-max-type - -.list-style-none { - padding: 0 !important; - margin: 0 !important; - list-style: none !important; - - li { - &::before { - display: none !important; - } - } -} diff --git a/docs/_sass/utilities/_spacing.scss b/docs/_sass/utilities/_spacing.scss deleted file mode 100644 index 162f801..0000000 --- a/docs/_sass/utilities/_spacing.scss +++ /dev/null @@ -1,165 +0,0 @@ -// -// Utility classes for margins and padding -// - -// scss-lint:disable SpaceAfterPropertyName -// stylelint-disable block-opening-brace-space-after, block-opening-brace-space-before, primer/selector-no-utility, primer/no-override - -// Margin spacer utilities - -.mx-auto { - margin-right: auto !important; - margin-left: auto !important; -} - -@for $i from 1 through length($spacers) { - $size: #{map-get($spacers, sp-#{$i - 1})}; - $scale: #{$i - 1}; - - // .m-0, .m-1, .m-2... - .m-#{$scale} { - margin: #{$size} !important; - } - .mt-#{$scale} { - margin-top: #{$size} !important; - } - .mr-#{$scale} { - margin-right: #{$size} !important; - } - .mb-#{$scale} { - margin-bottom: #{$size} !important; - } - .ml-#{$scale} { - margin-left: #{$size} !important; - } - - .mx-#{$scale} { - margin-right: #{$size} !important; - margin-left: #{$size} !important; - } - - .my-#{$scale} { - margin-top: #{$size} !important; - margin-bottom: #{$size} !important; - } - - .mxn-#{$scale} { - margin-right: -#{$size} !important; - margin-left: -#{$size} !important; - } - .mx-#{$scale}-auto { - margin-right: auto !important; - margin-left: auto !important; - } -} - -@each $media-query in map-keys($media-queries) { - @for $i from 1 through length($spacers) { - @include mq($media-query) { - $size: #{map-get($spacers, sp-#{$i - 1})}; - $scale: #{$i - 1}; - - // .m-sm-0, .m-md-1, .m-lg-2... - .m-#{$media-query}-#{$scale} { - margin: #{$size} !important; - } - .mt-#{$media-query}-#{$scale} { - margin-top: #{$size} !important; - } - .mr-#{$media-query}-#{$scale} { - margin-right: #{$size} !important; - } - .mb-#{$media-query}-#{$scale} { - margin-bottom: #{$size} !important; - } - .ml-#{$media-query}-#{$scale} { - margin-left: #{$size} !important; - } - - .mx-#{$media-query}-#{$scale} { - margin-right: #{$size} !important; - margin-left: #{$size} !important; - } - - .my-#{$media-query}-#{$scale} { - margin-top: #{$size} !important; - margin-bottom: #{$size} !important; - } - - .mxn-#{$media-query}-#{$scale} { - margin-right: -#{$size} !important; - margin-left: -#{$size} !important; - } - } - } -} - -// Padding spacer utilities - -@for $i from 1 through length($spacers) { - $size: #{map-get($spacers, sp-#{$i - 1})}; - $scale: #{$i - 1}; - - // .p-0, .p-1, .p-2... - .p-#{$scale} { - padding: #{$size} !important; - } - .pt-#{$scale} { - padding-top: #{$size} !important; - } - .pr-#{$scale} { - padding-right: #{$size} !important; - } - .pb-#{$scale} { - padding-bottom: #{$size} !important; - } - .pl-#{$scale} { - padding-left: #{$size} !important; - } - - .px-#{$scale} { - padding-right: #{$size} !important; - padding-left: #{$size} !important; - } - - .py-#{$scale} { - padding-top: #{$size} !important; - padding-bottom: #{$size} !important; - } -} - -@each $media-query in map-keys($media-queries) { - @include mq($media-query) { - @for $i from 1 through length($spacers) { - $size: #{map-get($spacers, sp-#{$i - 1})}; - $scale: #{$i - 1}; - - // .p-sm-0, .p-md-1, .p-lg-2... - .p-#{$media-query}-#{$scale} { - padding: #{$size} !important; - } - .pt-#{$media-query}-#{$scale} { - padding-top: #{$size} !important; - } - .pr-#{$media-query}-#{$scale} { - padding-right: #{$size} !important; - } - .pb-#{$media-query}-#{$scale} { - padding-bottom: #{$size} !important; - } - .pl-#{$media-query}-#{$scale} { - padding-left: #{$size} !important; - } - - .px-#{$media-query}-#{$scale} { - padding-right: #{$size} !important; - padding-left: #{$size} !important; - } - - .py-#{$media-query}-#{$scale} { - padding-top: #{$size} !important; - padding-bottom: #{$size} !important; - } - } - } -} diff --git a/docs/_sass/utilities/_typography.scss b/docs/_sass/utilities/_typography.scss deleted file mode 100644 index 2397acb..0000000 --- a/docs/_sass/utilities/_typography.scss +++ /dev/null @@ -1,91 +0,0 @@ -// -// Utility classes for typography -// - -// stylelint-disable primer/selector-no-utility, primer/no-override - -.fs-1 { - @include fs-1; -} - -.fs-2 { - @include fs-2; -} - -.fs-3 { - @include fs-3; -} - -.fs-4 { - @include fs-4; -} - -.fs-5 { - @include fs-5; -} - -.fs-6 { - @include fs-6; -} - -.fs-7 { - @include fs-7; -} - -.fs-8 { - @include fs-8; -} - -.fs-9 { - @include fs-9; -} - -.fs-10 { - @include fs-10; -} - -.fw-300 { - font-weight: 300 !important; -} - -.fw-400 { - font-weight: 400 !important; -} - -.fw-500 { - font-weight: 500 !important; -} - -.fw-700 { - font-weight: 700 !important; -} - -.lh-0 { - line-height: 0 !important; -} - -.lh-default { - line-height: $body-line-height; -} - -.lh-tight { - line-height: $body-heading-line-height; -} - -.ls-5 { - letter-spacing: 0.05em !important; -} - -.ls-10 { - letter-spacing: 0.1em !important; -} - -.ls-0 { - letter-spacing: 0 !important; -} - -.text-uppercase { - text-transform: uppercase !important; -} - -// stylelint-enable primer/selector-no-utility diff --git a/docs/_sass/utilities/utilities.scss b/docs/_sass/utilities/utilities.scss deleted file mode 100644 index 6c25bdf..0000000 --- a/docs/_sass/utilities/utilities.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import "./colors"; -@import "./layout"; -@import "./typography"; -@import "./lists"; -@import "./spacing"; diff --git a/docs/_sass/vendor/normalize.scss/README.md b/docs/_sass/vendor/normalize.scss/README.md deleted file mode 100644 index 7af1714..0000000 --- a/docs/_sass/vendor/normalize.scss/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# normalize.scss - -Normalize.scss is an SCSS copy of [normalize.css](http://necolas.github.io/normalize.css), a customisable CSS file that makes browsers render all elements more consistently and in line with modern standards. - -The [normalize.scss fork](https://github.com/guerrero/normalize.scss) of [normalize.css](http://necolas.github.io/normalize.css) was archived in 2014, and has not been updated since v0.1.0. - -[View the normalize.css test file](http://necolas.github.io/normalize.css/latest/test.html) diff --git a/docs/_sass/vendor/normalize.scss/normalize.scss b/docs/_sass/vendor/normalize.scss/normalize.scss deleted file mode 100644 index 192eb9c..0000000 --- a/docs/_sass/vendor/normalize.scss/normalize.scss +++ /dev/null @@ -1,349 +0,0 @@ -/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */ - -/* Document - ========================================================================== */ - -/** - * 1. Correct the line height in all browsers. - * 2. Prevent adjustments of font size after orientation changes in iOS. - */ - -html { - line-height: 1.15; /* 1 */ - -webkit-text-size-adjust: 100%; /* 2 */ -} - -/* Sections - ========================================================================== */ - -/** - * Remove the margin in all browsers. - */ - -body { - margin: 0; -} - -/** - * Render the `main` element consistently in IE. - */ - -main { - display: block; -} - -/** - * Correct the font size and margin on `h1` elements within `section` and - * `article` contexts in Chrome, Firefox, and Safari. - */ - -h1 { - font-size: 2em; - margin: 0.67em 0; -} - -/* Grouping content - ========================================================================== */ - -/** - * 1. Add the correct box sizing in Firefox. - * 2. Show the overflow in Edge and IE. - */ - -hr { - box-sizing: content-box; /* 1 */ - height: 0; /* 1 */ - overflow: visible; /* 2 */ -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -pre { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/* Text-level semantics - ========================================================================== */ - -/** - * Remove the gray background on active links in IE 10. - */ - -a { - background-color: transparent; -} - -/** - * 1. Remove the bottom border in Chrome 57- - * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari. - */ - -abbr[title] { - border-bottom: none; /* 1 */ - text-decoration: underline; /* 2 */ - text-decoration: underline dotted; /* 2 */ -} - -/** - * Add the correct font weight in Chrome, Edge, and Safari. - */ - -b, -strong { - font-weight: bolder; -} - -/** - * 1. Correct the inheritance and scaling of font size in all browsers. - * 2. Correct the odd `em` font sizing in all browsers. - */ - -code, -kbd, -samp { - font-family: monospace, monospace; /* 1 */ - font-size: 1em; /* 2 */ -} - -/** - * Add the correct font size in all browsers. - */ - -small { - font-size: 80%; -} - -/** - * Prevent `sub` and `sup` elements from affecting the line height in - * all browsers. - */ - -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline; -} - -sub { - bottom: -0.25em; -} - -sup { - top: -0.5em; -} - -/* Embedded content - ========================================================================== */ - -/** - * Remove the border on images inside links in IE 10. - */ - -img { - border-style: none; -} - -/* Forms - ========================================================================== */ - -/** - * 1. Change the font styles in all browsers. - * 2. Remove the margin in Firefox and Safari. - */ - -button, -input, -optgroup, -select, -textarea { - font-family: inherit; /* 1 */ - font-size: 100%; /* 1 */ - line-height: 1.15; /* 1 */ - margin: 0; /* 2 */ -} - -/** - * Show the overflow in IE. - * 1. Show the overflow in Edge. - */ - -button, -input { /* 1 */ - overflow: visible; -} - -/** - * Remove the inheritance of text transform in Edge, Firefox, and IE. - * 1. Remove the inheritance of text transform in Firefox. - */ - -button, -select { /* 1 */ - text-transform: none; -} - -/** - * Correct the inability to style clickable types in iOS and Safari. - */ - -button, -[type="button"], -[type="reset"], -[type="submit"] { - -webkit-appearance: button; -} - -/** - * Remove the inner border and padding in Firefox. - */ - -button::-moz-focus-inner, -[type="button"]::-moz-focus-inner, -[type="reset"]::-moz-focus-inner, -[type="submit"]::-moz-focus-inner { - border-style: none; - padding: 0; -} - -/** - * Restore the focus styles unset by the previous rule. - */ - -button:-moz-focusring, -[type="button"]:-moz-focusring, -[type="reset"]:-moz-focusring, -[type="submit"]:-moz-focusring { - outline: 1px dotted ButtonText; -} - -/** - * Correct the padding in Firefox. - */ - -fieldset { - padding: 0.35em 0.75em 0.625em; -} - -/** - * 1. Correct the text wrapping in Edge and IE. - * 2. Correct the color inheritance from `fieldset` elements in IE. - * 3. Remove the padding so developers are not caught out when they zero out - * `fieldset` elements in all browsers. - */ - -legend { - box-sizing: border-box; /* 1 */ - color: inherit; /* 2 */ - display: table; /* 1 */ - max-width: 100%; /* 1 */ - padding: 0; /* 3 */ - white-space: normal; /* 1 */ -} - -/** - * Add the correct vertical alignment in Chrome, Firefox, and Opera. - */ - -progress { - vertical-align: baseline; -} - -/** - * Remove the default vertical scrollbar in IE 10+. - */ - -textarea { - overflow: auto; -} - -/** - * 1. Add the correct box sizing in IE 10. - * 2. Remove the padding in IE 10. - */ - -[type="checkbox"], -[type="radio"] { - box-sizing: border-box; /* 1 */ - padding: 0; /* 2 */ -} - -/** - * Correct the cursor style of increment and decrement buttons in Chrome. - */ - -[type="number"]::-webkit-inner-spin-button, -[type="number"]::-webkit-outer-spin-button { - height: auto; -} - -/** - * 1. Correct the odd appearance in Chrome and Safari. - * 2. Correct the outline style in Safari. - */ - -[type="search"] { - -webkit-appearance: textfield; /* 1 */ - outline-offset: -2px; /* 2 */ -} - -/** - * Remove the inner padding in Chrome and Safari on macOS. - */ - -[type="search"]::-webkit-search-decoration { - -webkit-appearance: none; -} - -/** - * 1. Correct the inability to style clickable types in iOS and Safari. - * 2. Change font properties to `inherit` in Safari. - */ - -::-webkit-file-upload-button { - -webkit-appearance: button; /* 1 */ - font: inherit; /* 2 */ -} - -/* Interactive - ========================================================================== */ - -/* - * Add the correct display in Edge, IE 10+, and Firefox. - */ - -details { - display: block; -} - -/* - * Add the correct display in all browsers. - */ - -summary { - display: list-item; -} - -/* Misc - ========================================================================== */ - -/** - * Add the correct display in IE 10+. - */ - -template { - display: none; -} - -/** - * Add the correct display in IE 10. - */ - -[hidden] { - display: none; -} diff --git a/docs/about.markdown b/docs/about.markdown deleted file mode 100644 index 961f2c5..0000000 --- a/docs/about.markdown +++ /dev/null @@ -1,25 +0,0 @@ ---- -layout: default -title: About Us -nav_order: 100 -has_children: false ---- - -# About The AI Alliance - -**MICROSITE_TITLE** is a project of the [WORK_GROUP_NAME](WORK_GROUP_URL){:target="wg"} work group in [The AI Alliance](https://thealliance.ai){:target="ai-alliance"}. - -The AI Alliance is a global collaboration of startups, enterprises, academic, and other research institutions interested in advancing the state of the art, the availability, and the safety of AI technology and uses. The AI Alliance's core projects seek to address substantial cross-community challenges and are an opportunity for contributors to collaborate, build, and make an impact on the future of AI. Core Projects are managed directly by the AI Alliance and governed as described in our [community GitHub repository](https://github.com/The-AI-Alliance/community){:target="community"}. You can find a list of all AI Alliance projects on [our website](https://thealliance.ai/our-work){:target="our-work"}. - -If you have any questions or concerns about this initiative, please contact us at [contact@thealliance.ai](mailto:contact@thealliance.ai). - - -## Other AI Alliance Information - -* [More About the AI Alliance](https://thealliance.ai/about-aia){:target="ai-alliance"} -* [Contact Us](mailto:contact@thealliance.ai) (email) -* Follow us on [LinkedIn](https://www.linkedin.com/company/the-aialliance/){:target="linkedin"} - -## About This Documentation - -This documentation is built with [GitHub Pages](https://pages.github.com/){:target="github-pages"}, which uses [Jekyll](https://github.com/jekyll/jekyll){:target="gh-jekyll"} to serve the website. We use the [Just the Docs](https://just-the-docs.github.io/just-the-docs/){:target="just-the-docs"} Jekyll theme. diff --git a/docs/assets/css/just-the-docs-dark.scss b/docs/assets/css/just-the-docs-dark.scss deleted file mode 100644 index ac92fb1..0000000 --- a/docs/assets/css/just-the-docs-dark.scss +++ /dev/null @@ -1,3 +0,0 @@ ---- ---- -{% include css/just-the-docs.scss.liquid color_scheme="dark" %} diff --git a/docs/assets/css/just-the-docs-default.scss b/docs/assets/css/just-the-docs-default.scss deleted file mode 100644 index 63fde26..0000000 --- a/docs/assets/css/just-the-docs-default.scss +++ /dev/null @@ -1,8 +0,0 @@ ---- ---- -{% if site.color_scheme and site.color_scheme != "nil" %} - {% assign color_scheme = site.color_scheme %} -{% else %} - {% assign color_scheme = "light" %} -{% endif %} -{% include css/just-the-docs.scss.liquid color_scheme=color_scheme %} diff --git a/docs/assets/css/just-the-docs-light.scss b/docs/assets/css/just-the-docs-light.scss deleted file mode 100644 index ac69688..0000000 --- a/docs/assets/css/just-the-docs-light.scss +++ /dev/null @@ -1,3 +0,0 @@ ---- ---- -{% include css/just-the-docs.scss.liquid color_scheme="light" %} diff --git a/docs/assets/images/alliance-banner.png b/docs/assets/images/alliance-banner.png deleted file mode 100644 index a971a74ee97220971ad05374b48a54c5c280e28b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 117844 zcmZ5|1z3|&8#X2up@<+UA}ApUIC_A9AT8aXj!uD5BSaBVq`QZ7PZ|aT73q#KiGlQ} zQ6uNzfBpXd1HXS4mt6Y3zURE>JaIqw{hWPzuC7RNh2aVr85xDrGkGmCGV*>hva@$D zT?GCm(n!0T>`XVKlKc}LuhdnNXX-tDzxCrL4fjMQVRFY2Jao`OmC-N8cLhA?A;M-K9U5!0USB&iNZgY;P+&ZJX!%>z4Q0RQsSB z!BTrmOEU0LuBl5iBKDkf!!=?=?{Z{m$;S2MLhdo~Kv8eYfP3(a6&l zw^$Q)9Q&%BM5w$s^uzYd=^gzh+qAfYVk8pg{wsWTu03k@S4k?}>2)$S%eW)Xgf2Vc zmo}S&El}seU`aB~zt{C|W#qYWl^B(otzaBUQ>Y_8Cis7jZ$dPnbK@DRv(wKqPw7|99y?G70w}p%=;ZJIi^+!m-`| z`()j7&^DKwLh%-f{DQmZPC-$Yevs^!r2n1vOzSYLL-TIbb4jO; z>ngRUkCvHb5>v05>hl#y=FUa)SUsEnyj?k*{Wd#0`)zx^ zYy1~~lTbXv0|O;xo22CQ^hn3?WgKqc+c)KTH^ce02Bz`9K9!cP^_{Q1oY$~5S|Fac zXn#GidlfTn+Czqow@_8xG${Wxbh=XkEzK@WmV!f_bgt2}56s(pf~L=rc+i-7^-uB% z(VwzMO0l_#apJA|zJAWn>K~iG85^#M*#hQ!c zdOR^|J@0Wr#ajodgG)+ks@Lp&T@7erni=5qT6QqN7}SGg%??!cE=c5g@fLVx%556> zdN}D6VYGx~JefMmL!&>*yHuU72$`sjSooZ1wQF6a>p{|Mqv|Y>eRW}tbrMqCr^>c@ zdU*-2&l}%gsLKfIZ_)y0x9JruE&;pwnFIJw%5nzQ)ozeb!O=?Bpi~bhX+z+KXwC1v zJn*jGpeZ5rih@9w)|W_q&KNDu6fNNdEpAZ3<|j5aRi^&^xsR=_R5mtqh7`0!2t0jby;-bbn_+Laoj%S6=aW5^fq9IuJ6yQt3M? zUSiOw&N#9@Jffy(|N3sv+SteX1I+like=mbUvnm?H(vr9e;~qV3p3$foTCT zanlP}0YQygwH;RNh?^uKl8BbNq)GzyozoO3$`aE zI~vtneZEM|LIZCozFwD*kF91N_0T&AQSV-D3O)4E zx0&Cf7;7ZSTMBWh<+Vb8e-j$>`OUR9zL)sn104N!Iu8T}@j-YwqM1Y5Zk(}d+(%#Q z4`UZ=)e?+~?d}fFuGN!1ofMQ-%JlvrK?$Oa4 zdC39?JLM!3g&-3JZS5>KzhAnCAUjP|xsdjXnJ@jF7`2YXQM(=d6GtpkHrPo*bJSO1 zNSl4^&2KL7?oSeItALy^u^nM|7gQjhDc2$I>M?o{n6-?w3UKPv%kcauku1h~IwPAa z>{+V9IZ!L3YR96ydW|*~zfuq2p~k|@IqoZzaV|`18WCL1i*d;eL$N}PF~s(mzz?`d zo&i*tvG22t=j}>@f(qrui7=l8`xh^&D6t;zI5{bCN!F|*>=7h|2q_Qv2gURR({}Ep zRlU0dY+WHDkFs|4|2l(WJgs(l7KF?Ebb$f_L)p1v(np|nT3r|QZHd*hm9zacl~!mg z$1$(>$a*3$4a`1HYP1~0YDtcH#sPc0DDIk?1fIMalyu?u!!9k2y$la#_iD;l*tuAtoYM-Dl>Bng-ykUoznXn6du)v^GoixK$EnV33B6 zB(D`u8&e^lPXFJ5$;iGEZbM>wRe9o)pWhuQV5gFJ+Q#e`UhODmWUuG=H*B11?(6&& zzDgGKGwj3Y6|cr9_WLiMGh6fmz6S5(hHG>Ip1fjQpl$v-D16dAoW=W3%^{W~Jq(GM z%=^^wl7q%nnX}%)a3s@o66~b9_K7hsBRo8NW^+FiC389r@`zWjrNqR(%y;Q6wKuDy zT@>M2%{B0BJlv)H8J#p|CD9otC zA~;-XhKae1qys*hJBK`e%eou|-m`%^G(~stxkI4^Wo_4tvYY^jAR5vZ6Vfu{ntF%z z_URlxnz zI2M0Tan!*G_yMBlI2G8;Sa^NVt#5t6Z|{xyp7aJgkS2=i>&=0nrAcd#G5>+BMn|pc zNT%xur`V08o{s!2E9se+tE)~mWMx0AZ-9etBJ*KN_sdsVlFm1W>bO#}xx*&-sT;EM+hWZ0FokL+L)~3bXWNfvn~d;9VL_(= zw`R+GZJIznFyQ^t!x%oyw&H=?XjUJf@+TOAoAxw!2)x>NC(Y0}cK{c1wbN&Pf2#{5 z8doOcR)d~o##7sAr&rMi@|o43_#&amec(XE{_C5Z*87S&?Ut6IQM&ifa>_e1LqZ)S z5Cu!uIc}JWPbXfj@<3bp9k(5SA+qilY;C5BOVk^Kd&GdDY^_)c-`~;#F01q4=FJG2 ze}Lx4bO4sl+CZW3Lt?^8Vb_uTVyZ{gV4W>R1pc9MDVBl_R&?94f@^;Jc8O7y62^3M z(WrjmIcaXuynlE&5eVXzNhADAc!rF{wRZpt&dkic z&WxOYfc0&bsC-HC2n)w+OTo99QWNgVJD1FyyFR3y1wcgffi*Ut0$4Z+>3tFK=3LVM_B+33sko9>9XfxWE*n#7s6cWmgEn6Rx@B=HpDyiK z(A|Szhx;ZJoka2K+%9&D+Ak`V@nIGergh+}r-+w)$`g+mN}D2ztoh>>I~U!SS66LE zyG<|<{yD+rb>m#Q5oc`=kK@xJ$SzH(-VzgUGzViz$j#*%++o+T&ZdDZdlvB?WMS-a z`6iU77ew21>9rI4Z1rtO=#`*ih1NaW*DtC{QOl0V)fr5FQIS3X(OjAGI7Ta1Zs5ab z+YRD{nO*a5e9FEO^p5xQza`T9HhT7PJ{yNW0o4wY$_TFxi7KbHktB}ss|SU*b8>#u zj*x3}z=+A0+w-&`%A7vXWiEYN^m5N3o=U3ZetLsB7#tYVazo8@5DSzl*}i;vVfHoo z2u~TH(qiVFJ@u?R_k@UP){ljS3)!ipl@PVlX$(vTIp^g1I_YT)Im$UYgrhG<_Eq!B zQ}sXD#8)|!ImdRWa>4uTh}ARz+J*V8jk99#Q^z`3Q9QWiVv8tNstaDwW&Ts5 z1q22NC@iTe4;3hx`gat$H|siU-c29=`SW9_?PT>}$uAnzG&SnNqHx##&&Zk0_k2Fn zE6`Rh{Rc5gdYnSo*uM99*O}U)EP0vB{fl0eB|1ppoc{Y3!0$&i>3M_NomSe&g>uZ& z;8mvq+%G9LHH~(i(RInggY(ig9Bi<2+m3tGSo*A`;aXmrp%%JE<;66=7_B9)oWYo= zU|hOS-+cL4gG+EczcGN`nCJh=A-peJ4U!X?wAtX89sPzUbnrc`urSu=!YQ_6T3GZV z?Vkw+SwhAlLl#F}YCTZ8Zxm1Ks!C=EZ&*0DU_pQr?r^s9a9S1OtCO@QBwxEH2^mSU~JXhgaidu&Qv0qj7lu7>F^pH~Vf9^~ufz>_SxJw;FDO};Uf#~~;hxA7iV26A#(GlR#K_Cp1L;F8QVg=qF@km0X87aqkLQGh0v01yU9wW@g$n=Wl1X_D zoR#Pj5rTS;(_BQ6JARz}@B}HKa3L>abCWbyx%mwHdPkzty~`yzkzT7Yl8Qrq&u?9O z$<}e)HxXc3)P@Q=+J&vjPnPU!EwI$;8a(j6rR6TOA|Z`BRUk-}JC6IXx^}r<9-uQC zyIcy?e#yxU17o@=?z13gOj&&|8t`G)I@RWbs&!&|R}N6u%HC&vQw_v1hx-2hQ> z1-H^$3UXOi+&1-FvWFfSV*YMWov(VlK;!3BW9BO&H*EOFs8MJU6eoL|%VROI%(soY zNPMR>W+|`1Ajv^_$)WHIHMk$Fk(2BG!^PURE0;MrIXUCXDVO$*2@>jBSDc%BA3A!~ zc_3)f1W~rhHt#wb;vkSpjkWD8oNalHcBX|b)%A#L7%j6Mb`u{-i51tZud40AH{~?f8ShTIt;TqRleHrIT1k850)Sz0Gj7iPIdl!Gvo!3w z&D(dm2eKF|(0e>~t@LU+t@AgpAaSb+OF@fMg^9G7;o)BsEB@yjF$Kew;p6Vf!Ysfp z46O#8#^4v6UzyJ|*gmOFLXr96^_=Jnc7+dY z7(^0~mkrZg#z4rULTSucRSHPTB?BMGh(1r%KcsC`<(j50b;LWrWmtGhx&;JIsCr3d z?%3BXFW4We##_cJt98;-m1SRM!^LIIxZ>A}Y1xp&ze$eUDR!Zn;wf6(;4h|%>0cNT z2Upj`w;TWlMmaAJyhpRoGVU7NljHuU%-XJ}Q0_6P$LzFl|Mne#Xn=ppe#z+KgVh1` zk1kD2mSF3CuNkURgtqBHmFVBd6?8qD|7ojW`P#eI`@sPD05f$vFot#n)f7}z7{_R5 zxiXD|hA4fVAqvVlxs@I}7t@a3U5)Fp()oJzN&P9Q_4VVZ$CII<804R5WA~Y|MVsS( zH=(%23UAA7Hkj@jYi3Qk)aV15r!a}B{=qu2zpvya`K6+_Ru5ygspmNMI-8SIA+9HP z73c^FoM*B7c3-&%F+kn^1Lt*tPohi`_Vl{b_UvWNC0bpoSgdKo; z%t$Z$oZQ`a-otuMonS0VQwpvtoPws%Z!~LTaxeU#xU2VJQP)iY!Cnj3d?QUbNEqYV zGi|5u5cnRCj1ZLP57%@#9-Fp0OqAnGh!+@)SF5kI+~zZkA2=du*xJFY3Ou`#3lt(y z?ba7yplZ|Sccc1|XvQ6)^dG(1n5^Yz9>QY}PbLr`EFvhJz1>$U%a8ocNfEIcGl#Mh zTcyUvl75sRb|J%!Y_KH*+C8LhFx;CFs5}tB3co$l1zug=(V$7YVEBFd)LyOYLF&w= zh3FX|cmh04k$!31>@TGA9#;8YOnG7PZK{*;UTg{p0?8O1uO{I>gm#V zisfx?o|`_8i@w(u#crG;;)oII0~fTx_p@L~AGsxllVN3ixNdF%*#mi4uD|kit<4r{ z(G;p{_+o|Q{BHSUulWSYnE|v%SCboXAFjXFXr+$vbrn?hFi_n4npZUU0 zze-mSzHv-SNva{#rxDsf7N9pTUev=i44DCZ`4x}JA#XRL6~+gv!WwO5SG0oB*FV4a z`LR4zMH8&;d*^=`DgyWXq72NeBbOE7g$dXVm{|B@)2*9-CB6Uq320$U=qjx7l(9}bdesqi zCCH@mT(XTURKw>hk%{m^NjkyzBVPx%UNljxK?s1Iz`LRi^UN|C5p|{jsqz19ygX-K zoBN=^qRrxnDMJdqi>Wt~_HFfMZEU@dbdT8md_9E{6(B;?!K2LK{~^w1X`024S9u6C zbd&j?KDo@h8p@usYcH<1F9IcF<=z2xk>^2mpnE8t~+<$C8qnCVYw?PxEhOT}Ocnv*+-VICMyp zA%!8%Qq_ibp+#7CJgKmWAe!p~LMBjSweOhaJP~?F@c3v{!k{=_w0RNahzIBwp&_6i zL2f2vmM4VxN7`{;%SW%VoeDnvxvmGrFrSM6OH9YTK4&?;J7NFw1I~=NDQyK|LoRxN zIO*IYCrdT$jf0om@rK%q_MtgTOG=~aPih(oYCz?<@>l>=3gw(fDxSvwfQ6I-DQVsD z8vNk?&vu6wE8WbwbC{j*PLIM%g4n|TmFgm&!l^p6)8g1jH_MY=3NQNE_5%6}ze?Ri z{MPg*5$jvqyb!LqIljbTVCvw1<(-0upyRUP>%{ZSq71B@1YuzbfYLxr-yv z@W+-pj(RlOy)2HZX|HZb)85ieXe{&{SV=THSVD--BG>F6bEC!{EjmA3ZD=Kx5w>sxh*t70H?&+^is>681(d$|6RV0$k@fNLEu`V<$*d{$M{!1X_@hyE!Q0ty-71Z+^$Z{77Q z*n1Pr9Bj5S;SR>I<}Nm;c|j+O2tkX*bMu6#Eq4hQ!@)Xbwtg;hJ_XO)?JZUVs-4EZ zh%_D|pqq92cCN0nG%>U9{~0G{wEE%gB|;2ezf51iU>$UH#p!Z7LS`Jogu9ig_$BJ) zJ0NXv4w#tLg77LJ)d&Kt!5T0?@%b5l82-d9;#vywf)()vfws5-Ex}Iw252#|ifY2F_o52{* zs$boL@tk>_j|Bt@ul9MDO>T`f4fM)++Im3^3J8z?^_BBO1ze6(zS(;G=6O&)-3rsJ zx7BbD+O>0h^DGwKk9xO_UCehTK0K`-LRRhv65{*(rc)gMvWt1=UtmWpG~cQ z#@l!Y8x?x9o{(ujIbO&$>>p!orj(}*2vCCpifQ?4#u5E;2y0;%U#*h*myCC&k=gBXgstkGzAF%_-B-;D?+ABfr}R-RVDH;phseE1 zdalVIW!Uk*JVET>Xr%{URM}W$y*~nfSlzfyLf{Vk`U-1mG?+Vj+ZRuRG!yS&QmluA zm=+JYzU?t?TaabtV^~xwgHi#U+C8@APcOMvZ8*%p$tZ+-Xsm<(Y{88`1;+ zcdNN!xC9|j2_r4g`U)3KSG$V?GyNz+l`rdaA4<#FkL2S%nUv7!l07i+5-57x7ycdA zp+2KD+=Ad`Xlw&@3QBVvz5S-h=R8S0$}+A&vm&^4Dk2I_ek7R1hg-)F!j&}RxLLpIDVuH zp7`nO=g)HTs$OEh07Vs#WonXdY4So4js;jxRqccE7u!2|Rcx?Y@WJgef=$njb@c-a zE0E*my^QbPT=u)40rvpZ0rBOp5cmCEQy8Hvn6Pb5l4+_tPGDddMd0yf?jBIPsFM6s zz*ngw9s?9(;e(xTLBKut4Xd;pkt)^oyo-F^Dw_?wi&6=fMm}8xM;PW%9e4E+_1FEM z3YgU`@GYA4{3s;g5@4QoX0CH*U^i>V{=?!y9Si_&M52Z@r`cn5&@jTR82)Ej9RT*` zc3yJ<0R0417_rapu_vCkFMNg0ZHrM5_=l#)BQ%8p&>S8*+g^HmA8j5w{_y55!%=TA zj^)sGX;?ebj9uOnj96Zp92y)6#;vh$$)GyNwf<;XoPo)GuWO5W2(h5sVqj*}q^)+O}i2<~$ zSN&P-27aFzp3()#w1Qhxl3G-zTV+&3LKVwBwPN!(hwfZEuQeyqNOFd7!p&A4dk^q6@SOCcQrLc~iX) zDRywlR!vRK&TBP5K_M6~7F&KBIHR3rs_~MvMMYCIhT>xLu^~_-Zhu7V0 zB&vasJ(x7ytskbzdrMzmKLX}Mta8FCw7e1kI@bE;EhU6rdVR09{^44m0TA{Md_^XF zML+|SgH)a@@K-iznhd%vfDZvZ_LY&#B7($)ivfTPsA6{Fpd48?{x%n&?LUm@WIIT4@DT9xAaKw(W z`})fbT$}MvyYo1$NNR97IT=H-xbALD+@ybAa5%7 z>J^+UE}7~TGoekG|U67ui@*#x`b)g4(VLKi2*egIKcr@T2M^8D81 zv!~w8Xk3`2X#d%ge5r)xi@3?B;(Phxdjp68)vtKb3-B}vw<%~YeX+5E08efl&xj3n zi~_KhXkhrt^>5p-<ae~2ACeev=k8jkiuGC8KGQD0Jcmi zFWsv;H}8Jc`ZqV&Y6tjmmc4#w1M;T-?KCNx-5rpulb#9tI-X8YJZ&&aB7A6heg#ne zRkY;TklE39uyT|1vcSCVKSR_cz#{!dQK5#OENT*Ebx&Xd5J#(zX1tKy=Wor3a@ge! z$&G!@U2xu^pO9r!;v3ZS2R7m$j+|VJP@s)$xK*y&ZhRq4d}Vlhr+YGw5G*Z~L1g_C z#^N_~og#t>U}|(UG!U=!x-qOTPA3I)FWDO&UvYQ$-~kJR_jWSakdOO*@OiW%vh*DEpm3cO3mIwS?|ElrZ+M`ktfQBj&2 z8t|D-(I=<1m~UdonV1fBTj59i*mK}#ANh2R2T@{ObqPQnvyw3l#d3_V+*>-jiduAQ z$xq01_7&P8gTU5?hQqZ~0`UsX1Xzj{@z*&&DS2l-FP1}5&P;!v;0I;Dr_V|IAo{8w z-rNF+q67ggVBvZl6><5^;UgCoO)~4>_$2uI??n)B5GtTJ*&z_PSv2ww>Q9A>7iDFR zil)q_KtlUcel@6k!`E#4)*vO|0}}evdDc#T7cUQh7_-RJiWY+}$~Lf-tcNRU5bT3AEp}FO)(?Bt!=9j7gZEfn~>yUw3bOQRD(R z7}0D5vHr=+VR^86e@;U@Mhp0{R?O=KZ{JOW{;?e+eRJNKHTT!3fAa>xq(t%~3AWz- zXHpl&tI=p6vdISn4I-%aA?FKTYt$&;g1tMC3lxKaIx2J+Tq&T01yf_E61Pi!6yreF+QL<>i~yAZXkk^C zm}g4!`cr^h!LzQ|PaQ-9AYZ`UbFZ+zDCHk6%Mu6);k|qSE!tjPq@R&+<-R<^7mPCq z)64GK-Vv?1Fpj=&-|c|J2~X8c{<$i&QhKR6CHAF0YpaXnfa)Z7zp-@R?W#uaWHFOV zf#}t{GG0X`Uljt5!bF5=z#OrAfc@rbhZV&g|^%@I*bkk$n;| zWugH(&%Hfa%?MO$R6vN$a~pdo&tDyL_TrLMFUZv{7{`4%lbv!f1qJunu0`Br0l|GT z>OZf#s#cOP_?kJjE26b|L$ZY%BCUYvIr7#)0R{Ghjk?z?y@!}*IAafJNr#Q*?d4j_ z>x_w{a~a^qQ!cBYAskYK$TR=sC97S%CiaX%LY~UL*y{XJDI08)PRrs6EK#Lie?_R< zpY)keeoxERTv}#N4AK5$?Gmft#z@ty&y7YS@)AkJXzR0bkQnHT4$LUnSz2pc*b!su zc`R>E8d=;SRA>NV+?AGDm%>xFi&E=9s=4@$w2GvGKX>PQC+W&!s_d z5RSH~05i3kIGIa7R%dqj5Zz!Q@P``vP_pLMpZb?7B9alcQkS)M$i{f`U$=HW!t3ivJD&S*6#DOJK>pQXOL}0q01lWpVFlh zlPe-x8`p!T{J}bKeee_@kKJAyKW@+~F(|1y>M&nAEOOG5O2FWLJLwn(`U)w zH3Zd!h|4GFfaE;8W47loQGZJjAwBqot8Lc=KvBKuZ8@Hma6m~T^-7^2jP!Mk16S9P*Ztcyt=X#Z3! zmopY|fE)fmb+Ex~L9i0cav0rH-MV8pyN7dTuKt^s1kFM5UDZGzM;?<{I~dVO4#VbL z%Cx@AkiQvOe`rK}8N4`chAbIeyvIwU%?&C6@Qk*)lr|&fX!e`qA5F{nsfnDU#xnrG z-hFx!gG4WhhFjcL0piwnRjTgp>Mrs=jJm~dfYhjG5o+PE=Yj5x`IBbs%<3UcZ0)ke zn=NXtMNOugtggei^gQeS#Gy|n5!a?T z{-mUAYjM7D$DF^pKAKEDM z0bfBhEV%<+CWCZMhpgp}ieN0b;*G%xZ}7s_)q+>0HL*^73bv%96Nl4F3vuAr#pO71 zyg}o_LE1qqa}&{Kb39_HsHiX<8*)GXTh<`tF*iZMqcq+82Z|XmVz&*Ctg)O-KdU#J z8_jO!-@W7fA3|*H>`VZl!C$|ix8t#cn`+ue0ID0z=g^?{gr0x#$@L!4w?%KyH|lUt zK0@#Xg3f_XZewsadhgLhQrLLI#if?l)shM+9eiN&77hwV(`3}>qVQd>NIY2H`JQA# zwwHxZm}0C+g6E13$u6u_>Tt(ZHWoe2wr7|%brAAKWr(A7c8BVp{LF zf%-*cI8KuDH?29*^5WW8g09MUdvd5V>H4^~ZsaEHUN64uCpEX@%c{&EY!o#a;ud&C zIM?Unq>UF}hw~L<<58(`waa}fx^-15k0jw!Lk(pc4Mqr*(Xa zQ$+zXn^n%cD}Q2W26jx=R+l|nii75dOAicDm@FfVy*f_((x+;CHeCFg}PCAorjEY z#5MkO{UYQ<*+TPv(5$XD>IO<#qHZEaeEn?`Z`mgIz5>X7B9i0Z5#z2R<>V|=q|FF4UorG!q7&}oTPsSYmncG__X<*p8eA0U&~>l_jp?D#71 z0`hwv8lOv4f!4l(h8!%)rHIa{;Vk&w#>5^Cbt~89POSgD1R6Ep!Hk7*nv%2o7KJ-P-n z3+1VVT#I$1%nG*b&3Fb^tQ)^^>lyqg#mS0>sdl1g0F#5k42Ci zUt>k>sB}hlyUvNRR1(3GNqi&v4fV;=FgZD0M+%O16v384!bKIxKTv&*J>l2CWm?bu zs=jrx@460Ec#wxQkvw$eOT%B?(Z?9K^{`Hgol*Ik^$~tsrQ+_^SB~5Fawhg3c z{}icnt+`153q~3-$>pS(RInc;5;hmP)92nN9mo>aU1J;E_Q^;{q;rw|<{7;FFOkYx z2cM;_r6=)Ph*3}M!Pptf10ypm)^|#w+9E`Q94%qR&;LzL1W@6j&ww`2+yv9@EAwt* zIYPFlQc=KDpb-JcHvo%LlzecWVjvLCX!_0US~KYbuEouM^G0UM48QLs_C%*#J^mhi zXWQJ_VrhJn_e~L=*o+3FrdCo%q713f_2BdC!?=hJaSA@xbsK zXNg}>nFGB8kuThTr-1Ko+f>1K7QZ# zdk_}kjWPl`9=2oZ4}Z7n z_gk0b+<0MoW9xN*0KmtMOiM%z(uKZ3@qct(qXo6eGS4# z)5AE9+>rD#97G( zey!TF%b!(guP!$14|0!T&MjZ1#aKDDw0n zKwA9EP9W+zq)O2^J~pqMgGVU(_sB3-NACHD#A_7{e$#btdt;`ET5l`^Y+6H~J&Ul4z;4R~=8Do4rPc`3cB(4wOqI;t+0I*p2_-^_?9 zMeS4uQG6E)sP`nA?BKx%?4d`#%#G{LX?sK4;G!0Y7mMy|siB%Z?|r;P=Z56FMwDcf z_K1I}<5yxrm*u=@IFLfnKm$`4U}OL8!M#vREwa6!vb9 zxHI)y(Rzr6>c)ZoszCqq`MP6odI&(e<~kZzuS9S2>2iY}j#vBboj6&*LItl%0aRH- z`Z#+=PgOmxp&jfGw8xp&R&SP}w_ZKiCL}zGpE6!Hp!@jS|GY-EitNe(8KzJ)Q;_Dh zqK>=NUc?5mg!HAfsY#|pZIy>XUNXYYVSEJ0)Bt&L)^W5_mxczS^G`fE8($XNYe`sb zw7ywUoa_>_;<|P=aC$PB*GUZ2ML^#)dj_V5pV4?@A*H4b;(or!lko%Bt| z>?^jR`B%s*Ki^sVFyE%V9+j+Rp9}BZ{Jt-0?xo)bT5hz8^h-v>tWyEiNAdJ@;8uv)Ec@wze=;X4R_}$w=m#9dG zSNcEePL+6xfAOUp*jXzI@!|Wu`x@cbJ&GaXXL}xP9jW1ug_doAQLWQmw@fj=LXI2H>xCF_!m z;z2%4!`zM2W|ZbWVdP$8-@2w3ofJkr58Oq+fX_@53$C(i?+i`8dFS*P1kR}{8d+M^ z?$Z)a%RTKGd~qEI2zn3=>CAKNM1Wl2;PQHozxA>QC7b|;T^+Jl`=(-X%PJBdJVov2 zp9(`Doi8)nbYG0n3tbZGBuoe=t92Gl1q)Ui`;hRB5&menE1DF#rf#%5&8=@q&b zpL4g|r~J-S??mIbXNS8e&q+e5%dF;_-X5gt?4Nj{iqrM`w+)%off&Kq_Cjb8~U+GKO@#>iuh#wjr(vaR%OlhBm) zrM=#2AOMS{!3J%O%3R|Hlc2L{C-ux7L508P3oINAyzB2&+<9D>pi*b4XEvMns#lcV z>m%O1TR~8*38-)0U0f2HjbHFS61RQoF}`&N{QLKp3%DpfznW&I%qt6igcYLPLYWJD zSG7LDGBh_YuhNCY$y_)4OsyjH1k}ikudFQ%u}2&~>09$r0AsPb| z{7gd;3bIgJsb|g(-k!(6$%c1?md7^DXJ7_#U2EdOFZ_Ha^1fSp;XflbCj7*%NdqJ{ z5c0#pTLvvNF0>93m5nD=ICUd%vTu5m4ZPW%rTjAnRKdxQ#-YvjZcgg)cHq6J78tJ$ zd|varuuky-_cZLn(iy$B_+xuV9ql%U*O4F25+3m+jJr^3?yS{J<^R}zU|DXjxf{gisB)Ivhx@1s@Ca|Wh$m_Hi*m10gF^j&F^b(UrZ%;+u-*IZ zX5dP@#0JGn$ng7!XFPr480&TkvA#uR*YBTIEQv@}nVtIG(s`&Vp5tzhvBgZ+$13MA z;7^ZH54eUxUs(L@`F=Ix5K8|@e(#2Z&*v(pbz*UFVlQ#2&=ly_PUNoox2sRK=W$BFrPy;+#d zik1o!NKQ;0?p+IB0(vpH`-B;#6_S|;UYY&==UzcJBM3ITAKCwiG zsgGg1%xJ$9TZW$0b5#kLV9L(LR6u5McwI+1<^SGww3umX>i4PV$0yPb{UiVf3%9Ow zyt@3b+kb*P1*M;bp$zNP1D6gMepQC%Wt!du+STwXy*`jWQXzddx%nj6OBeQhdg7c& z4wdrzwh+Pd;n~H~-2H$1b1@xzX^qxM~KRfVll79F+g zxoba4_mzRLQ1O%@TXDFIR^gI~P=44{heD&WZ)}ygl3H?Wgohnb=P{p=VtZq~T z_SQC1a?pgcBX#y$NvtDIk7869Ad;-%x@)fsS+=_>h}zrY>{54c*MvqWLlgY{q<4P{ z4TZnY^SSxrmFA9d(R%J>>U5FG*H+#k4#Guf9zFY^4{AV%))D84Ee7NY{w-NozJsaS ztFML_R?W&I(72sIr#4WEAZ=6rmJw>3+si<9vWpBoCUWPQyZ7%qrVrbBQv`FnP#ceG z^T@E<6rmd-eyC5SVQ29!)OS8ot~ZKJrtqywge>I#NkFqwzt(v$heo3dN>ZreW}k&? z*A1U8!I&bTnXvfJP{EGAxdDwOrQ;(j<-d1Qs`NjaN%rZG!h&}xu9VCB^xrWx3V8wx zBmQ>zhCBl+;_hZl4g|Qv!|=kX2LSWnQ>WhM0^nfBaikg+i|t$-B|m}XfThnWt+7rP z1;hUY0{sO=e6wbq8XwL0`#lhP=KG(y5$M}B2Pr)^%}5HPdRU3zYTyYp z?;qjq0#1t$k>1p5xTYezYU#Ww1~~Q#Hy+3m28Drd0GM}nTLhKigxjO>ZjhAU#B6ff zk>+#L59*xYG==+>cAN`WiS=eGu-6#AdSPh06mZ!W2#{hvD)d2M8n&XRKIaAEAD6*X<1Kcix#> znqFq4PtmO+(R%~D&zl+-m@MbLzh$Fd(8WIcS>-#rmBjz}*yrYn$4cF!QCedjD@u(;B4pL(Y!Au3!Rl_yvDBOSa}yUYGfA1vXNX8ui<-!yN|Ko zDsIt@NilrQrezB_^*75cdO;d>l29@_LIsvT-ruPY_RlKYyzcG}g^9LVKe5_uC^UDc z8UP2cvb2g+Kwy-EbgKnx?x~M}c$9+5CQj7aJxLcA$v9rAT9CeUhH~gzoi62UUCG&1 zRx^z-`|a0$jSD8?U%oD`ZlgAYok2R@QhUa2!133@c^*JGoBI`edK$2@9%%jpZ?rp+ zW+vfw8O}1{5Fc@bA=}}EH;CbY!fElG3+oePU)hgq(Tu?8%(;pz*};{UeOg#>jTfn+ zn(%+#*!X?27~OsKfc1scwE9oQ?N|MH#H<}$4JfQcALZjqooKK8^F0@p62PJD85hz9 ze%;pBRn@eEvTyoTBsEGrf(_ZV@;%-Jq5a4h@`4`{#7rlQls=5UGzc6FTtD=^fNQa& zQ$9ENHT;F!YpaM>qVSng{{7VEmGO0mP-|O?;4yhhFjZWE^q#L2;_cBB3IYXpO4niH zRoC) z^^#jJOQc*8#;%wlzz7b3_#l%e7j3*RYX;)=e=B9ki2P}kJC3~th-Fie=`$PGcj=D% zHwJdjx-YDLSqIMHem^=xagD%}(AOcq`}QOP$ru2Hc(=jf0OAesl?Z>2JBQS10;hs? zc=BBB8uYv~6E?;)BynStvAtzb70W#t=__I9m!3RD^7^{0tOY4<&evtGY-L5)==PQ* zsi!1!^=%8tka8#ERrAr#7JV0o*J`7xZq9L4^4YIf5SI%j!Lu$bz?TD5RA}>DOaOY) z#VCpY7=W}Q33YCa)b4~OeFGLnL^Nf)n@O*#a5d;jdBN_^Vd0`i%L^oZ{o= zCzzvZ-yU8Od?LY*x_pNLsQ>gmGba(<0Vbr48m#*e4HBg4Cn z=Ii`wd#n@MHjK}#iwY{Zy~)rzJx=`9i?FwAyVtz8QbRSF^|p?i;C&=VPylL2b2n2X ztd6}tYD~fgge=%?VQ^g8(dGI>jd~bJxD>b@@@1}_Ug%A}YtZh6A9KN%lID7E2Mb%uG@!in3)J6|#lw3}Y%qi=`4m zX2=#|LdY_va*%cGW1X=NgBjZxX3Wg*nLgjwIp_C!_3EEu-t&H*=f3ajy080s3`#N; zN%H^fw_wp%^$AT`t8-*>;ccB02MeObaFH_!x>YTja8^KQr}?Ju56Qzy1vHbkqsSk3 zsq=-N`O-IHumqXdDf*{d{!+(0XeT54?kaZDQj6~kiM9!MKx)LoF|_ye3a(%va(A}w z2~!FQdZ_kHE%H1gAxa{Ir2hJ;KhNRnxQ)}YT1wu$48yUbY&5^!+TJLX zM|pUu=d9{Qv+PT_fWK_|YOY+tDh|*F^d7={h6h6S5+n|`*KQA2TiaTICto@wL%L{W zx_;X-(`HmAKHEvf)H3f~Q%>*5fMTdF-2Agf;6%mlL67dL z?PWP7X%**i0<-Ylh=?nwvPNa4Hfg7jwXSPxuI8v;KY#6p87f=8x6%%Ke*7Y~iux#T zDIkP>v{LAHL*9FXcOPd^UZimCAUBzl7lc*fwuAXh$E!`3T^yzUjiz#-%TQ9Q3t8`v zs9GuVF2GkfSjITN!$rPc`B7MrJsdG@BJ5{~bT8>YV2-}<+(UTi5*2soj=nm|Whjf1VcXCYY5+Bdo{`JcMIJ`V;aXR$T* z6UVBOh-X41DnKLe)31U7kNH%uKWMfNMx&s<5K#Rn@%2kSPD{S4Zr$BsLj3eJY>2e} zA?_5$YIgr-3Y9e6tVv9+nCLH&G)Qa8x|dl0-^F-6ae)ey-P|`ERyzTo=LEz|`BIuJ zVOgAuq3-Ff0$$E^k{xTwGDbSwj>?fP`^zvXfBS4%K?g2iW(peRmywv{+`CP=OnN!@ zuGi+yK4;9HNsfZv=$v*}UU;~kMsO|iwV9~@&5fwYDB*iXQO8jDwXkL01?*7G=U*3&oH0d6yEoHFCRau!-kq=w!L5tiwL4hsFp)7R0Ztma%mJ)yU1kd>mPy}?EhOJ&5)z{4zG!pIllAZT{P`Q9yHGP#+6Xm#87!5 zZ~{5-;=+GCrxbjFQBHNWLES_hi-1Mx>+7ebsTx(LY8|Vvz33L=YUZr2))=p|V^Ark zhVuG`b!Y{2B>0TJm;G8FK!4`a%eOxl-bsEq3!T+Zm}rQwZ~m$K5qj*2SEg}4MA?I8 zs6xse_iGPlGjv=kU=a7#yI#Vp7ye@+Wc2t=54jtQ;jGCI7Q00i>G0g0{RRg1A@6>+ z75_-cGVDDd+t_+&8|Vd%=G|iO3jmM%@(^+kLTQ?06(Sta_<7K3L8oXn!G>9}VQl@} zEA-{Tx@2q;vzIY>K+r1vAX<55&@UJ|M4Gb|vj|qgn7ABiA{8{U_xd z`rFZm;lDOh>c9>fS@}L$j5DzV15`>-RzW-_puLY-~n?Tb66?=Wv-LFHQfNhS-VTCm8C8btIhMj&aD`nGZa2!9MmR$-3>~`e>>mt z{Qa>z1t3Lk5J zBN00EXalgFtv_K$s4@*EwiAwnXmJE4V&Tx&djr0}k4C+Q`LB3;&-&KnP;E%1IZ5bloyKZ4-pue)D5xAY8k zXNDb<;r_EBwz!G`J?KbpVOU1GcI}3YxHu$zYFkUoC4Yi$jyuTm%7#pdkJW@u+vhZf z7EV;ls%Y;B>26g^2~)RVRAe&+cc{oV{Msf*Y3n|!aYTEQNB1+oAV>|$k!6452mJ#Q z2lFe|C{e{O1P&K~f-2~(^BYXq#X9GDpChJ3*mA6$~9~KT&xsKxt=(FnQFc_e_wAVNjGDRf zn2z9R~woSlIi2xt;9=4%3EFa*cL4)k*Y)R=WsmCo1*6HRoeFFY}=mBS79O!1r08z zyX1xcD$$Sgkp6dTStzeXHBaxi2nBrohlu37;R43zga-!H9Y{eud=j~^_( zCq6IL5r?mv0*!p=iUeh%lp*uknPE-bn>{*y(- z8Iia~dp-XOg)f03RgK7>dIgs-GNr}Y0~}xRB7JW!{rO+M9})#-8{SFEIm9VHkeoHP z8Od%u_{a6K`Qy2Rq7e+Ku@5n1n4r#AW|w1zsj0$YVq#3Ha~mzf%Q{Bs%RklXqrmA4 zvE!C@5u9zTX+mvYEiHUx{i8%#P%y@KqsAl9*OVeWaV_r(72{TBF^rg;OfX zUFe!qGNo^PGF!{iw!gV^n{GVfayCpzMKoPGr+KCPlR7ix9=mP8I~dLuPCDv$^3d{N ziCa7ifp|xt0AtiYXa0>;uU^O+0PqQ1APHeBswLxzMLLw-f^mW^ZzjY^;>lG2kt!Mn z#XXJ56aCqDqmCLiGv&hGlM`daD{J_GDZu-Q#!7mRU9IaA=@8Pm3rC2aYSBV^nna__3lewjp)YkxdBb-4-%C+o2 z;Qx*s9+m*nt9KwfHux5gd4^}j)LEA(bil#OJwtze87{3zpOY3%T3JJ);{r+5%EF^K z%-lPv`WoLcB2JP^P^|152%WuM2AF9-ugSAHlRJYsmfDtRgR=JU8BR(*ey_#4pU|xk z={3m*U@D++#v#KoP7Bz!LA$b#{&TcC;6ONU5)=n0?OYx?moe#Q;x@Hx0pwFr-!D|{ zv(G=AWwqmP5y~&rYueP^$NCMs)bB6)xjdO$4t3FVAAnP`-9^q=Ri7|wxS3_}D0k~m zN&M>UAH?h+B2ggtT z^DwSKAh}-Q`9d~YCs?ESa8m*OHIMq`gc7N01&spf<|`5(jaGD7n>P>ai}L@*w1U(< zaFV|J!FJ*OP0rnjKoIh*gOh8a8ppy9Psf!=h)a`yU>mQRbGUmm$X&HK%;GWg-ycuiEWea_43W($&|tT-ueJM0sJ1SNLo_}G3U$5GLEZnWGUS-Q&6)R1 z;?*g!HX0E{-m|uUvDbS62p9HF6=3G3^5R1(?QYoHOKH(&9FJQ&qxStnos5o-UWm0+ zbSN}H4`&L8FQaBEw-NI3fVEP^*jfm8x>!{O&cgEd;n3;F5DP0mZ7)Gv{X7a_+Jb;SLrWrUT(!y31?%Xlf- zq3FSlzRDdj;}7>l+Qa1EJflFhV<(#g9RHfLdU?M+oBdXU6x7ru3awi~Bus^8-Rd6v z<`og!Uu$NTH@k+g`6mi)xjtcNQ|X&6J-m_*UCK5Aep_ZumrDYl*FH*me`?d+-&;IS zNSOlZ-s9c6s9A`RokW-RrP&ZEwkvshA)P9p02^c3boHc~`1m5s{-3!jA!;e)iT!){o z0iS8~OY~XA-w3};tBZgA*x1mr^r&08RaR6?UH!QG5$CzeQ~3Jz!*B`-uNxL5r5g-& z(4|eJDopMa z{c`(Sh)?FRszY9{Y4Vr7&-bX8I_}U`?tdTStB~vYWaZi6q8TrX(Bj^Yf*F~iE{AP{ zNzs18ELHtxrxNNMtuw?0ogJ)`V+WO?UHs?6Zl4E7JjkV@A-93?j2?Ewal#S6=2N!K z_W22IA_YHjQG}|1{dmJUxATe!%d$TLU!Rk>I==bAR%}DF^e$rC z!RPOLzvlaaAxM49=TArOsh@NRZgsT`hC3B>9>sMo)*LZUl4e+-u4TVb7@Cvpn*Ex{ z6sA5YB_ucwHH&`wSK@Nvy_jRq&`>Uh%vR;BqGbSWf_MLP8`gZ1-Mq=-Kv|n2}vH7LuGrJ_cCgpwJLyt5|0+{ad7JqH_gUL|vMgIQXB!Lh^602taI{=sX+iJ(9tZ6#%^K=X)@J zH}%xz4wnt-amF^vmo-CW!c|<AUPte>5^Tunc}9ar2fXl0Mc>V!n*8k1 zW72TgXSA3>zRg`}I2kTXcN`)KJGLAdVs;6P-EYe#QWoBaD2t~ynxDx2@p!9!7-_?I z5{z)GA&&jKEBFuOV1hwI7HhZ*Ef_FgSXk6fdzn2fmmtEZ$|D!)I0;pQvhEp3MPW*i_H^U<<#YoRx~93gB6f6B!I* z`|FoiYIn;TCSB9({q$sY@G)Y+Z*x`VDc;X$dhm%W!EH3=RKYb2#63_nBV*Fz4um&nZlQCoBfjC&Y{P{L&7T?643-F73%D4A0x>jkA#L_H!(T*uU=Jh z5>zN7X(OyPLTzC#6PjI16StVTa-Zw4Af2WBK`-QoC*$SnQC-CAzuVX$?H~6LL{GyD zdfzqsC?Cu};I2V(DUk#RF+vpG zv!oze+iyMD`wQE2uBM8je%sX+aUroncK1!l(Xp$?+3#BvCB1Gul4hYN`v3HVc^MB!t5E?`b+)BMgY|mHR~5r(!?8UD(|_80z#TKaV^D`J3?1k z?4{_yVv`}8Pl?XYCZLrVil?-f*vF}NGHnOENv5hF?JkXkn%aKQ`!?(Q?#IR^(og32 zV92`L+^098Iy%stSM6FR%uQMlixd~0-dkWLKm$6|uW`6gW>tCRM6CAevInjqPR&p=dT>F>a}tT zdU;e~{bf@4R96sgB_Cr8li&N+MP2-(Xi`{^9m~z;ku-xeQCP%^b>BSNQl^{`;#6Wi zkX8;49}z@MEAd%pn!{2TyhmGxF{16T| zm0|Zcroc48)27GVK9Pei@<*Lhs~iyL8b6C@>eoIEJrw%EDt7;>G0I5HTtcJS zxvPL_8`^$z-cQ<}zzF$4FLsXBKcNr&>je>QZ51cq7y=Pc3g>^GTt@8}?kvVqkYFTt zU>9!Ap5C?8C`0~mm0x6eHowUP5C;-88p2@;*M592V%GZ7!qXO2xwIkKqKMpGH5|e? zH&XfR8$2lk<4r+@Fdr%$si+?d$+OXPo!N>wch+0~AygGUsb?N7dc_q!=>593?!8H- z-zS)`4Ede&%2{z~nO-;f+KWWHz)GO10S2K@uK!N{kJJN30*E2*NruP$TNEoU>qvkH zy5loLpY0y0MrB7yhZ=Gq$bcclt}f2gu9z!+q}`@nfaU<1fMvUrAodV-@BV& zq}Xa8Ve=Cwwl!p-xNg3X^>)`ni6kOG&dBJgbf7`6!<333eEN0E)Oj_v?9`$f{Wu-g zr*Lk81F-v6<7+)#_nfgRG6!?A1-YFE^31OZ2uZp!&TqNw3jQ5Xyozah>Zy#c8fstq zfr)mn-%y>9w!+V3@U&ZA8GvlUHV~c>2;!LODko_j*E;({cE9_%=O?%sAe9 zoEGJSpA94?alJDxJWImsTSjm9mca)80gDS?&8%&2a#GQveVYK*G?Ja4#aAi`$QuTd zK9`Lsi=z?3)L}n@=d9#l{jJUDyKonmTuQmXTwN&mq8HVWBREzs&0%)jOsQkcR+!k) z|JsQvpX+rD;p6QOJN1sd*4yy8@z%mV$glPLfvx&$+Dw11`aVLZe4Fl*m0Ol>vpAyc zgFQ(?L69)U+&T@GKey68WKdR&Yr^?rUSYx`+B3erWA_QBu0~psa@yN(#F*S@2Dur0 z`qvj{ioX41YD!5-Rc%bC%Dxv&{0r*HUjWlQ)q%X?rE{FMIA$KOhHbcwR=LiU8{xQQ z#!Tgr68*7Bf^3-~x03=zsdB{mvnk`Z!3h-?VM))xuZZ2Yat}}Nogi8v+jZHV^H8gH zxnDZsX&_0mBZX()P2A|1^TJ&(x9^zjdG|l39h=Y9)wa25fi~%W%C+m`uU#UtpA-7K ztWF-%sc56D>~H65FK&nN6AA~IKg2;mLnf3pc|o;o5FW8g{ZOK=`_rFS7wn;pZ`z#!^XoRBFzjGi{%ii`4H|x?WoSl;7`RK@eCdC=M}i z&sLKJ)_{U>akC{W$~_Aj_)B@l`g!L6^T1LJs1wxqgvBa%R5r?>YSbU}?^}-k(z7UL z%UW9)qEs#b|7DpmWAKcR>T|0LYzg#GIE>q7(mOO_`=)gVRv&xIiRuXdap@lYSQRmy zh?G{_9coWF<2K2@6k)Mp6yuWXrHeSe6;WEZ>^@;d1fsy+vR+z6v8F(tITnfhF@0bf zr=kxkd~pehUWRh*B`^-81?IEQq_*wnr}}hfrRw>T@05lKpTz#iGf+n(vPt;zL4qfK zDaQNq1^(3+cYLTcTAw|WbBRC;y#cYu`GG3nZjPaDq876;^aMqIUhn{z*-`DS-FM&8 zhF5p4~yUdR+@}oHc%Kq$8joF-(XYo(giPoL` zwY5W3Ay(H*O=fbLTw~5iuhrsi%NI0rh;h@+g6n0@qd330Anq4xwC$WY#GxP=X1w$X zF{0b^EjMR#(NB3(GS&k5!Ss*Sz@6={Ru&t`sYje2l7#%$f{-N2{t;yAfG{NO#+ihc z8Ae6TEea-}JTfx!UCYfEAY?w8uA0qB?EzXJQ<>_(g|7BAZM~HJiQ-U4fhb_xU}gkkmMu68BWe%)Tm&s>AR^h)YQ79U|z^N=P51*O#pZDnMW!{|b8 ziT32r1TzhycgC~&SbSEd^+FVkr){~_D|gngO)Ij`ln$Hin8+?m$Ng&WCw`x1{2IZA6a zo>x~cy`w`wp4W^kJd94-eJH&`?~^1$^5Z-{!01PmW*n9Lunp%OtI*;a7G@WLYtE#K`QT2^cZuhn9Ti3-}JQ#ONr{ix}@nrUm-YL0Tw?hiGxsVYzFCa5Blhtfh+eLNb zf1g)36b_q_${F7?@kFskjFMyCHOuoDG(zwdWoRH^NMy*;d+KECNEt4Qbz=Zqb2?^f zGuyMiFUMU8O0?Rue7|C}<|Ikz?l;lS)^3WKsAtB;j{wiMYE&7P@W$C%JnaaekSpNK zmsa`s3KI-#SPD3(QRf!qz*yR4st7jtN_WFxbr3c;(6;=+i@?9OOb`2aUk7ss0Ymd6 z)mA3ZjjTE8KJCEyju-OiPocC*`PNhFla4a%_t-V~wpBcL4lksV7SVN!7tOCEF7|81 zU*)U`Gu`NmaK$mq!7R$01;VrH{tf}_9`_Ey-5?mgl!m7`}j zqbt8ejQ*&B!9hUz8QOZxsa|b5lk9*Cb7Y@v+=HbzYgXKsuCKg|A`egBu}(Z;b_&$G z)G6XfIQ$p3Q1sEL(J z5*p0EhWn7QJ#Xe;JAXbsmEODUA$I7YgtgyY1fxip;uRdp-J6@ zY}NR7$3Ea)q;$pi&(zUj$*{GsZj=GsBDo+A5dyCLM*9)}KM?V8#G8BZ=-2%)5j zHuQYCyeP&$uUmKuj=)haRC+Ter_1c6^|`CPmj+q7XC3ttv)(l>fI{^)0)hmY|yUH39M$HUT z8e${@+BGRp&p{NnhBfe?^yqt9tP+Gfe-JUAEZ$dE)x%9&MAj4y+X5a z;cG5dj|fNjkM?KxoB58#^-nbN%A*6t-=ZzhdlCf7NKfVwk4uPhBiW$&o+6<=coa~q z#-Rk#>2}7=e0X>fp#~d#`2#yKWlwiRV27)kKT;ZVX=ldiA?)JX*|?A7YYQsm2Fgv2 z>P@VJV{~MrenJz)zlEVOGvdurEp({1WUnolsVB+uM?f#$;iuw2+OTy+%*2H%fP$vO zd37>eQxgc|od?-mKyO@?f2rA)7$DE{C(Giy`&Yk>Th`pKPEPL&eJ-W1hPcU?8p-T6 z)S9lf3;i`wezLjriGm*~f4I2U?>Y6@<250|t0x4Fnvi!tR)ZZo*VWCY%@Nt&kWP~vE(@1qt5^_NRw*J_ITwsOmd*!e> z9yuLVANRjkcs>VodrhD#S!+5Q??Ljj8%jN45n<)17BZY1wIi%(w^u&5%SCj|iz2nX z(VeR&2z@6|Uf6y?)Zmv?0RG0Fx|L~F$7Phd0;nn1Fu{F!r$bLV&e!A@Cza{Z_7>K|RuC>u!H zh_BAmik03OT4*LQyluHGEA)+A^>#4GTwz+>yq$f!3D^7{Ev}xX%HHwS=aJI(T@Nz% z+5eJiGdtW#Qk4n)>$18q&+n{?s!>&3oZCIbwWJRyG>Iun?})L2%e5SlIwEbEVS1GB z5b>y>lmN8_u`+L{q1+QWt%}K8XN?4r3n8Iv!Q!&gSX_-{qWb?L%|4+shlzS7TwSxg zQ*v_(6Sbxxpf#-UV4^RMe00RCvxIhIVa})W*BwBk2kSOOKQZ&|9#X%E!K!$9oDr(DI`37%b25=i2eO1pBzS)G45qvX0RieSg>I@bG-OU`I>Y2{5{? zr%2cSFz4YlJ+#TpT4qrR8GW3SkrVOpW_-lAt2%IY1hwXZm{`E}^|hq}d!&zJZ}y-5 z{fxbuln)bw)7s>X8*M}=vy#x{GmJvtkE2G2V$Si`cqboLg+{GW^KgVuxdq-{V$7;u zf<=#)#=)%AfjXQFR+nXrw`{s8Mj~oI@y!}=9&xekTJt-E?KIf|MTLJkC!u+t;&I&L z2k%ma^COZ_vh&K%m5&X7%uW-m^3^COrw`OiMxO(YTMH7>w{&BRLOSJG9o3|44RUyO zY=5O$yji!nv>0$7mIq6J=MA{RM9S!pta%a~k=IvfYgKU_=#E`r?12<4Z1MXx7Ke_a zYxT|MVv1-qFS6g?;|(r*U)iHjsDj*%zV!is3DPSMEIn<=J+WFHMYn1#aY}A>?eQ3$ z^K4q{I*SW@E%hMIANIpb_E^=lQV;3~ob(L4A{s4*RIw88CjjS@qqv3edqKk2GV%7E z$}sq=%%enN%3{r@u=X}Uwm<=)ENv>Xh1#REyth4s<|WNrn9 z*@0;ls^JM|YtM~g(ESo9bW+JHz}DITFq0BE-=85Uq3$|R;tVdxc<&KUpzz0@k?ghE zyj*k_j!7!erq`G;Nul0zC#2uT-_W{BNee=Qn3ks}qXBMaueA+j(h7&B+qLOEHw~mLDgY-K z=T$X(0=XQISyjEF;2YM^LE9l95YTx=bT%vgMi+Sh6mInpne1?QFVF&+pUz%d@(~mi zoUH_KxK0@MnN7z#kT<6_60T+21dDWPy+^4Je7PH;R5^KIVX(|dLj6Gpi!rBm_G~&> zEMN!$d_SgELVz^}@CW5{PXwKn=(YKQOb70A5{njuFL68Qp9d4#mq-}2vR z_el2Ai>o6@x;G=L0 zD}N4yIQP!%MrU)vnQcr}P0c(|_8B;U%6xT$fI{QH2keh)4B&B?;OeTWfFT^f8oe-1 zH>}sQG-TyIXOjX8D!jDWWD;KTX)O zWoRIS{Q9=ZNsj~GJOmt~s+D$a2A#*H58_cMLsh{@%yn@;uqS4xlu?!K5T>2yKuLB6 zUKSMNECv=;=#8ASWv%AIM#}GM!Cr0M^5vUTi5OtGIK7_U#P;h^?ymRD8?qY)JeDU0 z+Yb#@@}hfQer@tP8l;$t%~NMn$B?o_YlPSN&Pn6kX;t3p(l3%Q@1QXAS|&Uo^qjrJ zV(3`-y;Td!7~$@T^H{&G`G^xuMM4aw|Cxlg*(G^&4_$g47al^#u_n+EFa=}|lsG|F zxd%$`0;7qWHm84>XQHm+?zf2}N4LpzWGBJ%Zz~*b{?O3S;NK_}Gy_5gYKVKqQ%9O8 zL0a5_+niD+g33ydj^c4StYHc?7quRR>X@8#n&BvKCpw^TP*!JLpJ)8FZ2#7CjR3R^ zm*Ks`S5mdco*tx@{~xV$`1&<4`uf@eLpw8zS$!z>G z7#t^@3_rYW%bg_vB(Ax1BQ~-%X1jn9@#JdOZnamk6jYJh$;(*Q#G9oa%Evuj1(B4u zwv13cqL|xp7bh{*gHU~+by1SRU)1J#OPB1nT?E_i3Z7g)rwoI=fL#euee2k^8Mj%R zaW}i$4R~#pdeyK_a~3do3)D(^1vRIjs3+FbcG3_SOajCBPbW^uC$vok-#fD9(Q`Y* zY&Hv&fY=sgyv|pAdSce&$6Il0W!T<0)TU#aPlH$nLn3j=tNMBn8Ck(yR_3X^#eYf2 zvM8{eHQ}wA1OPLjSwZh$z2lAwfmU`t&pc8=4J3+wa{Vf+ucCHpFb7aeeAt@H{j$C! zrdK@!7>X#^=3OK`l-vz|TGTpNsV!`Wa`n6ll08K3Gk~#f3JMA7t6LrtYQS7?zc8^E z$(eH?=0X{#(t^idyb(F1;81H<0n!bvYEB6U$d72Jz1Vf@y?~fe1pUzX7HWn(_oS?> zqj4JN@3hLgR%x#d=X&%=KzYGhc^qQJ+Sh4&liPKihwqR8bQDf`Lq011>nHQ3ht6eh z^7npD>gP}2ZgPIsc?Xl%ai1U*eO6Hr@@9L6Z{=EZxRl5A$(K#P+NadiHFLHJ2pPV; zF&OZbJ1L?u=S^M;#IY5<`xcZ@c}f@9#-5}vx(#m{8syKPSNXW~VpsMpH)lWKYPdZy zRA5W`R%|$yIx8F?^LWr5+$yD$LCRVg{Q*ZQ|Od!j3K9Zyl%@2T-|}^agpYfl_gNxAsZTfURDce>|Hp zGL_gd6XQl+98SIWS~4=QS~OcXL@kzJ;y5w3G5ibNUVLBvJ@5wsuO;KnIfj4WY?fne zr%};2JMYjDk5y6yFPTdvkg}|B^ZIG1hS|Yl&(s|(Hvj&vw7!mC&xQ61dOQfTGwbe7 zxsmQG1i0pJfZaFzx}$n?*!%h~?Ptkp6J>ftrxgTCh83 z`fR-|bfmqTByT`BoRAA14&4JTn2~o&zqf35c6F&yoDSnXI+%7fKsng7M-iQp_ZE#c z#txZ!CG_5~PGvckM^fBZw;NRuYrU8jsSpS6c&}?7;o|{n)mzI<77iaFT5eu!^QWqv zWga{mg;JiTNWveE-0*w9(JDeOwheWR{xD#wlW-ki;@hoVCETrrwm6$yNz`YRfzKeQ zs;R5xz3JSwAS2#Yo3Tw?T)eM#o1VCsjG0y%aJ4l9;wUHvBS=tf7Tw(}`T#g`YL+V| zC(B*ApLiv8AoSSbQXp*uR{#S=ma}!=@Gv0yu7R3Fho9pF1FX$8ifGY2xh^PTC8Fs6)PKS z>R0QnU#}=`Iy3yPwNb!zdTPoP4TE!+vHdc*X*5Od`h6aR+?AMAMN1(LP0kct-{ybH z^||!3lPkYYf}!CnB4~q+hmV+BP}8au`Ng37656quVYTUD(Cnt3uL>R~hH139&e73F zLL-NgiWTbbB`#OiG~}EBmDfAvL;THr!zH2J=^aoWgTJrxcX&e6)Vn6I$z2lKrd{%T zRzg6mUyzaRo9X{{A~#nJG-&Lg${y->OpcF(ONxM?jqio4;2seX!CH)heU6Qd&54tG zRlf>?y@RmM;-f%1Y2>R98ANHS6g}8rXj7vGglZHs2$g$VAqT~!pu8CVHupfiqO~y@ zZ$E@&6gV(Om{LK*89|^I2AJleA==M9%EyQ8ey&Gn^bVfVQC4Y~@$?Q&MI)%E_zaCJ z!+%=x0W4KA6!c{;0;uH*-`_M_JF%=d2aN{+H zH*fbfY^|D9yX>HoK$%j=Z9aI~;xg`QrBx!hB$gc^2!G-VBU;WA&XMpxY6RBXTczh? zCn~*j^(pn#)i9{Cb`r5QHX`=Jz;2(Gl6TSdy#uhL_0jiA?la3P4wXhn7dwfZX;(DT zf9pvw&l)OM94fZ>CHk&u5;#(1AnWSH#l`w+Gmi03(c_G}kd;k11RsRyN(R0!K=W<( z;_}Bllg4dZ_CY+{nHqE-l@+Iv?TOa3mlo$fN$Hh)wwe>rwoc1v>qA6b{Yb zD_G}QF_Ke(Tkx!<%w33;M$8-oz!}MhO;{LrDGouar0{!lV8s}7#JLVV;a-3RvOyNO z!LJgrQ&x_}?@1h5kO#RI$y!dr&#&Yk#;1B!H3i6wj*Z>rFj2e;dTnE4BLi?3mnaxi z_(3Iie zY&DQA)I9oJ0j?RW^vf;x8quooO|b$YfH#5K6dnns;}Gj(QAonM-2&Z&6LUmcT?rV3|jm&xAf1v&ZeeH5;|ri0YY2awq~{ z@O;N+{+J5@zKKe}GA_2TIPculLfD8xn~@sJ4!?{}<7>^}OJ;7Q{QTAN(@n9I>eA7$ zyh*z_*fw#OwVLUi8BghSqXqL9(m9__6J!Mml<9FU`f0_3(8`UDLC9sMYSeN$4N2Th z@L!ndkYT|G@}&5 zF@}MPm1=pn(6-`+s6$w>Qq{~~X(7|eMaOzC$*1|h^}=%kk>dw3ivehdTr?t|-xF9z zjC%U}oBzff`~W8mSv747jDvB%g>zRh1Wx!wLkt3(;X=^b)CF*YdEQbbxhD#`no)^A z1buJk+aw3#EjW!$BxlzOAh9egvWO_iYN7?xBNzxdW3Vajz zVID1g_$0V5iqYc0y~XFAYZ-;!vwX^Ys1}cR5Vd>w7{2~fl=@_kk|_#>rxaTj+2zF{ z=N+r&OIrTmZQOpz$CVe39BDEHHY|QriVj-O-^{pG(&U&o!`;tCcaL|9SeEvEsF{kK zSPJwC{FXa8H zdAX6xNu|B~dYBBd=~r+_OcqK9K66)KJTp*Vv;P>0`Uu`XXN1g2E5dUT1eA46DAUW{ zzw^qQkynAGpqAl`i{gPp@TVbKqODhF1z3ZNj>qG#@^NKR#t;4>S0(7Eb{uK@jgC%0 z9an0&%&|6rpWaI1Mf}!TL_D~-SF6cvC`u;$whXHyYPAfDEX+8k*wST7T0V>$6ZAF( zO(Dt(oIOa?w+v|^oJb(?xXd|zvu79zqKT0M>n)eb2BvgkfT#GJW&rP%ts3hb`i}*K zXN}SxdM-i#T_mNfQHWc5wKpVmr(5REu2;gM${!E(JiB}MYo;1Z$Ge7{K2`}tI(tAX zw#27n&h~W5YOhle5%nEm@-W2)ct z`%^_fru_&I(F^_W?sE@t0R@-rQ4LVU%-;u1_UZ@?9>kpc+T5l=o5c?C(BpM~=tD%i$Oxd_EZO?53)*7?qtkcnE7 z1?$l2Q)pSSiQp8!jm?oW1kRsaphc&8${EC}B!AY|Zv-CXTLt5y-M?TRlHkE;E=v)W z&)cw~_t<)&657LlTm_t9z@6aR2jk;?FM}IQTnoWz2~#o^my+r&fHO|xC=fcJo&~dc zdE(yQsJc5`j6c-a) z>fx$kLt@H3hYnLE2QA!g-)a#?t=C01F4l_~3!(TTvB=r3G^X3)TPbYLa zY}Px>q|w82mp8&bO_0GNR)K~T1Z(F5Vg|L}F-|Z*D4ZXKHy6m)9S0@=$?P>=BOAD>eY!qM5Z zY7=incd8Drp1Di@L%O1E`BP{do>hQ<>s-lOEaL}7uq?It-J9R$imF#rh&B3o@7T-E zpaemHUm@M3GuQ-F17#jWC1N0t;lS%%yzRiDT0w9XfX{{3Ic6Xi#q`bqS(ZItYT&-3 zf8c>7pJZapnxM2wG<7x?>-fKj=61^6(b!gJw73VQ&hHckEH}xAx`%>aLgmwSxfrR< z5>Hz`N?iq9-G~|6NU8Gp!}M0dy)9cLb)w%qXnf;2q@pG}J-D?@4mL2nSs7!QNrd48 z-+N6?ZHiB%j7MxE?Y1)7bIYYcXkV7Z!K)%j&bh*5$E_x+aVmCbO74M?R7*j*Qk9NTq|JO=1`o%?2DHRzxNeL-0=k*p;w2w`=R$D> zVDInUC3U)-Q2|&7h(6XPo}e^U!f!5{Hsbm3;qUzh-^zzTTivU2Dlsx?SHKFNoZzjX zxF#l^e0qq_#l30I?e(fz(kJ3gfrOxu5s%r-8Y>1KZG3uz7$~9P)dM;t-HXAl!k}t( z=ZhhWaBDUY5H3ZqzcHiT*5T*gDE1J#ZU$g}x$%K-wp3VZ4b=j>+(YBC=|oU)AKrit zV?#&gR)MgqsysC%WqDP#_tJ0H<44mQ%t)z=uUKQNl~bs22nAf208CTP;hxQM*~%W( z={{Gshucp*uA%^|fb{FTy5{zdYE9IqB$wSI(OTXTg<-g;?_7$AJ|3QAj|H{HY%px0 zE-k|CS}=TB`zkH8Iy6^Z#5iw;=ko$_a?~3ee$r4reBRAJT@5%Dtr@96M&md8^cHD;FLko zf8zjgXf_skPhzP!4%ymWn+c?0h!$JY0nSsK8Gz^fJy!s_fPG!6UCmYwaSsB_c9i-F zn^%M*gTKpxf}*PY2Xrc5xykBpg!X;a3RP(*^cn_BO5v5Vm zFWRFTcti4uy1kwoEJO*YPc{iWyGpwv>Kp(MtQiAXe!K~Ez^@E(iqDdc-f=X4_+a4K z6M|&%lBt#M@$oDakIoBm5ADAj^-P@x z!uMp}_$;59s0DoKGxZ`-nf31iIu`HjgU6l$6PfGpZ?5o#E&vF*jHrWa1p%oR=ITfS zVgE)APuV zlwKy3X4R{At5Bp=BII_uqMEFZ_wWAttw-TPoToD*oSx-<1_{E zN0_G+`eB)m7i+@o_!k9hL320)LavPb1jIyvS7#J&S~*~Bz{UOEy<2*9vc8g0N2Rvx zOYZEviQH&$@EQ!}GoTQQT0ZOnyhTRztg{Re@a^Eea5ADPjrKt!+5Dhew2-LmK-*9r z5=~92nUpJn&20i6wTFMKO&dACwHEgo)Lz8WD+fvHH&-a&h(K8)*^yuc&*S%VQqX8G z);j#Omz*0=8-VJ&DjSrD0AujkW?~?JQv%9lcriE}IVmdxdYQs<7nH~OI8z7;pax$K z3z2i|)b%W#`j)Rba&d zbsH}(jRov51sz)CQ4M+{Yy<#q64J`g`6L{A5V!bDIXd`6p%2)PmE{|tTPMN#1}}&K znt|qyMtwiP)oX(rbeNJ(Q41g}0$J8;J)sxDCwdhbnCpB7&ZK1m1v(=y!(W#E&O>>qN6OK8RKvylQq zrZGZWc8&m!Aq6^38>xnr4Sn-*taG&YsTTnxLx3kUnGlvUR{Vqo0MVzsyi>$LAU+8@ zc)!~YC6{3d+L&1nq5OHuSL-y2&MS>C?sWH z`zf(sb*kIc5-@YVZ59m=f<>4rs>yBxZ1`R{XUC7ud|r;tjq_ubWcQiTtw9{!kGtDl zSb^6DqeMR@G3S(k8<&rDxMRk$cROq0335_LX<@(XsX(SCd$zjE_#(R9X|>gl0AjR} zcO}P?gF>w+NfkR*uhCt+LH_twv*~=dzh)kH`YK>%yn_{#*?Z_@JnSvi3=6_G=z5VW z%Ylv~S*d36=ZV%&A^hA*RId)A_sQ_q8x0$H0G^Bv-Unht&=#^kJ|T+;Yj|`Go?j>j z6vndS$>#j%rMcGcXg{R0(yCeoHmA6Bfz;yv-poX+!j#wKucadjR%B*%bER6+1FWh{ z67dfU*8-bF5w9bZp31&-%@mK<(z<_IAZyoJL+!^pL18Y%7X&y__Z%VE<-rhG97sI@!@nyEf990^HfQ9Gsc`Sv#GhLnEHb$;tp>XsDXDW=Xvi7 zPuj(s#U33Vzs9QAkht8btFsZCuWl5pqe}Srz|*i|?;>+dCp)TcyU_8ZFBuT%Vj!jJ z4eZu9T4soKCIQSXx8*jG#L}|dn6k;3*qE{|AONHz)OaaXA#-dH?ql)E zlE`u+EFyxdV!PhM1zp##dHm#YJ-IyTFSQ5H3?Ds8D?9zeS-pM<&-(smX)DE{Z)<;v zr#opi=X**{K>@``VG1*y_m3!ooBFbaUWrM7B9&T|@6Xm<`EA4H`vA-L0osWA{E@g2 zd}W2_uSl~AX* z!+ku~i@6`y*{aH9%BY*xZ(N8FC8|BD=xtwG*dTRScCA`zDvOe8GtIB+A@U2!nq5`6 zty8JnGgVOio2J;xa5m{r1w{%fO(S=HLd4x}F9f;Uc(svVHNVDUxAOZT;lLf=2f>n( zd`9tkOI|=#{g?6(~Y)FOZEjP+6RQAIo4Uo{6s0b@4vQT*>n<=%{BXpJn1y-euWkvAI~&OfMIN6 z5-|v7Q`Y^XVjLg9y5G%J$$y=dJz{y8~JqpHHdNT5Cc zzC_2G&P+v_`*bs7em2c zqB+XPACIxk7*)-D;-rP+26c42${*ROxjrJiSe|w^FgETOc?bob0IPZ}B3~Iw@&$TI z2jLMB6yKjtUpYN=*ze`H7=j)Aexb7Y5s1I%aVB{&Ffgh>`{FitHyU%e6U$dEI8Up3 zkZF3pL}uooavV^wI7brw(MSLJSeFxFk_W$2Jf!uAqNg60Op!!4GJMe(ebe$rlKh=- zXBqE$TvoV!ih&vFfKbYa^wDzPYcE9lf@_17R`_%iLK&GGwrL-na%0SjGQ1>n?^dMX zS(-d!fv&BNA6K9#(rTBz^)SW%R5m3jd)4fuAxgFW#48*ZZ_$tTT;TTY+dWD2P;9j( z0X~Z|^Bhq2uZtK@ON@KJoFX0)f%Z}0`eMI)RrGwK|EMXE56C30{Z$*!Mpo9>-(=M; zf3es}Ij;LItwT`oikAMK37_>;utFlA{z%Td9T*;f=2LCruwFz8tuZZL>xgNQ{!F|g zJqLD#x6lt6_x}6gN^mGY`GCt^oy7RMz0!uiGOl7qk)EHlo-S@zJUP&8s4HaI%EFwE z#Z1?a&*|=`tyqi4Utc;3B-pig{?drGntC-)mxAIz>uwN!z#wgOnNjdDCDXo$ zM!h7&voYS)ie}~iKE3slHyPy`pO7q>JJKSz?fEd4m7>L6?4WAU_3Q5Vab|Z0_ET4OY>k;;6%)8HhhfP%1r>fH11d5lWeW9`J`+ zE9n#hc5n`)!XVaL9>;0<4k-%XMONB$2HvGC0t6DMKiEJz(J)OJsO8+F; zk$X4YPwVD^f&aQe#_uq~%CM;$$y~9=#nWiZZ(!S55&}Ksb314&?faZLNLfz4DXEqm zui_hy2!Jh0r-WGwpHMaL!`@mv-I(@9JD&Dp$tk~owY!+g>=+GQxaX|5f#(GLg5qi$ zhY;#kZWha`?#r0!QGz)$uFM{1H|u#k57^dDk6Ll2ucA_{Qi{Txymg=zZvz^n$dFQ#uO+$KK3ng z1!~m$3>4ed9T_zS3?bMH*nUF~OlJcqO%(DLT{9RM$UKKff!!&56It0`N$G!c4c=xj zzg4^4;oPuKU3a-@(+TiFoW!UHr1!!+E$#nF!fnwCr4wz+xnugKdiV{q;;I6hbtShv z>|MCr?RzBk-%+{261zB*MfT6iZ5*ttwMqvo)mgn$uCqVZP%MW%O!_5Vh7hqARiYi_ zbP2dK<+FLQnR9c_GQyCB71MR^=(#>DMkPgJKIoH+^{3{gk_TtV5>q>h+hO-{J$A`o zWNI|`Oi|73eNkP=)BgTD)CRgV4@hxAcRuY=`+=f^96Uh7DZ=jqs3dAD&`qPgT#?@8 z_ul6pFEQ%&sC@yV8u|)o_N1j8E9kVnM)P1FrBzpz;U{wXN44#nC90%FV(tZ9@jw9~;UYr#Roi8e`hyRVJ&}{dWp<4Dpf=}zD8WMUiRL2d z6HZRcRgt@F)+x<$)9CR{9b!9|CHZHka*xO z-C%;^>>aw!Ls4N1iT5$_G%FJGzUasHi}AOr*La_Ka}}Jlx9ZNT3XZ5~Q0g}t+f_so$WyJ(PpYgw z30tV9*y-wL^S_=vjwCDHtdDuUZhPfBQfg?N>_f@Yvpgaf+D)3aIY~7@8CTf<{#4}i zV|ci}z4?8XIJR~+RULm_v2!XQo6}7Ycm_pf(5=$aQYlo#RlDwmBwpRag6d_c1gmZ} zoLdv}laYh86wvkaCl-)T9}9+{z&E>W6nE|b%4-fBQFEd9r3DO#TYjkI3OKId1CKQq z7ni=3GtiNax&~YJfPX4+M1ua)PPIkj24OOY7^pm!H6a=Fsc70@+!qRIF{X3-?ynZY z=YO>5G_pBLrOT_Qs`E^(K<-<9OA&+mt08*=y6gxSYhACcw7yNwOYuG#n`@#;MA*I9 zNrY_Pkx$xq1?TR=*v=aK);js^AdhY=JDS9DbjA9nEHCXgC&NLp@X)x)h|G86M&Kxn zNjt4){A+D$ZhK!x!O3YUc^v%z-f2MqP^y(0_j=SmM;mYO6b53mKOpi|A%q=7elQgI zKkN3Bx7)xNW0TY{U^>@~NelSp-8&vv(_#1dN~@831S2j}dbzGifO) z?4vCH|GWO#{P)$WJ#O*k3u8MxJyqso4te3xdu4gBU~UctIm@;0uM#Jy$w zfOR)1w^vy_kzW}7S}9hTL4R5C^T>m)eA9oJYSWzP*Ls|VM?JSebpjOJ~i<0pn~-LS(?@MOZvr2!k46fds_N9mE3?B zxj49sEq=qJ8zRq0T-h3o3v0{$JX)utz?)~u;&3?qE|i4_KIU^fIZWodj+%UP_LJ*H zG9`?CQEZrsZNWr&bkld|vk5J6M?OH93M|G@NQJbVRZEE^*3eaUD-b@}G`2yVcvcXG zs-t4$G>})M>Lc)#GWE~i-*nZ63oUdL=w5eDc|;z=DQor6_Q{P=%SDccH^;Oc`S@&v z?tcdx>rLr`{zg4ZmS!f6Ll4(2cY8wz0HebJo;&FXq$t|>EevSz=8x%qWVioj0bpFP z12$Un%u4|6$}gM}Gyy0ud@vz+BMkkFO$y2;((Db}@QIHE2Zx6~4!XIy#MB`vJr>`b zpX?)JQWcIJ3v-nvYQFVcIBGnt##-@lNfA5Z7n=2#MDo=Qu#@8yT5EQp5`SBVg)9sT z9q>~&kGJ3<&(tR>iK`E78F%Z>`Qh>LDa|jD6$`^wnseu(io%zUJn+APjdco^4j6v! zdxZVj76nG4hw;s>ijWnF@-={fkO2=3t4J{ zH*=81f7nEC&;Thz!Uw6@eYyYd6D2+7`aKp@g7Vpyc>mQuUBa;dKiKK|arV)Z@kx=> z*T_$?7UaZhzHep5K4)8Iu(nt{vN1+aPGj1IJ+qmTedZWm#_n4&okZEsZB9|V`4IOL z>ID|BkP}PELPWz)7@AL^*L(MCa|7%y@cU;bQ$Ls;jb~RQJTpQG-!l& zJUknry;b$0$udnmK#p_5^?PRg0Z$7Xq+{b<{DSCB=s)C`Rm8JYvS!8dAAPKd_)NP zGul*re^x#$LVkHBrMysg_PlGZbn{XsQxzxI^)zj(=sv9_eSh-#kMv6%bN*B2OiM&N z#h^*Q@Y5JcP1EyRaB}L@CL^-csQo?x3f+^1INQOOj1*SxFQNMr76BO}CV7D(jTv}j z+~<0ufnQ@v|FiW&t9)v`n)ahm5|$lbvbwK&HdqwUtqflk92Em9cbp@CH6{;0k9Pp+ z3g7gT?@5CgHf|XIjo>J^QXjB;%b@!#<5l*%%+){9$O%cu4&450#XoQK)4#@BJcAjP zsnQ84fj8Y3VyzlUiY|$~&N&bnERzrw2np&@RNJn1VQ-l-seMPmEWJ^Y_3AOA(V39e zvVFe?OTxGn5jHZ?^zahY0mhaE^ip%27m2;bL?h-Tjh@%_YNFiXh2D#a z^{Q1se~#-^rNpaI+R;g_a?5K-ltfU3{if>QFEVHk?Ln+ml0z4S%9S@!fmN5=cZ4N2W5Sea zDCY)^6?j~<4i{O*T|K%iX}?gmt{5!Gy#0^ZF4`jRtQ93|Q})PI>kJPEr9ULz(%^aI zTl)0$^>O{#O1<%n%4*9t$<*PoNy%8xk@K9@USFS5fr_W2%}6a(~!OntkuBWT^&{A$~m|JDhaHv9s7j8?uVwsG7SGnv{qMUF>8Z zAD>gi^PkJTi2yU8{{lG}q*kGU#8*Ul9};YLLL$T|poK};_-}>YGcD5?FEXaSeSUk+ zL6_sU^sGd?Q3O^mVIh7s4V*N_+E%eP?b&xFV_Ra|JqJJgk;CD*Ct6H%?_a(u>8!6h z!}}CBGP-(3c05_Qg&kg}E9EarUhZS0$@wO2FvmKXkH>1g&(CU-h7XZ{!I=dgGB}h` z>%X|rlPSdI-kWH`Of*3*|MYD#f!ocbizTv~nx5+o^=*0!2!M66c9$e^a~nMUO%DB{ zK@$_|xcBbeN78`;9vlGFzRiCP6g3dI0ooC(-Fr`57Aa?g-zbTYq@J`f?g%&T3-7PV z(ZnlOakS-^W5`#I>y#MYk?iZmfUe3tl<{>k9}xKzG1>uX*T~RbumJ7VPLOi;+p<+a zM+t?8haWU$@Y2)My8tpZGJ=wS;rb%=+7A+9fyOZ66Wf2w98IqjHKVoAy>98)v;lK; zV5oS44twvsKbdjGW?fS5u4b*VZy!?Wbhjydxl|-%Oj1HAX8pcI_kxX)eF9tl9Novc<-}cAr*{QT-2mXD@?E9 zqk?&!6~z|85qNz5oBGA%H{b8RAA8wP-nyZ6OD>MJSwU4hyx|I+3g&_jZk?y6XN5Hp z$SQ5VOZ2p-!F+e&xS(HOpLaF>4qxg8FXxH`N(Ag@?%lIu7p-D#ouWrvdAf~WIv2lW ztF=1X$#gA0AL#<64$e^rbs}3uVdK@AZ~en`XdJ>A$+@WOWCElH^Y|x$I9)GSrEdBK zc?E@e&Dpb9zG>hQ*l}+>b{E-U>P6089c|g*caTGzCqOoI?IH=k|5J7TfFdrtBpQy( z;j?`%sMbT5o@;kC(#(qCmZ6@hdO%l`??Uq+N{avY=TK9ZHlvQ7#;c@uRV(psQ_bdX zwctw26^|`BZtkf;6Ux_g&i9NsqqQkpnkAVv60ryP%pQBi8-4h`d5=)hE52}ntAvuM z;O<)Ip!eE#$aBrMSKr9WDB-xDhK8z6l6dU8ULprf&*GC4CG%B4BiUG^__zGXoB*>> zD71)W(h)#0ZNQSi?5`rbPBN+-@>LouT)M<(~)fq3byuLqfj=K8`&~hJi9vVLq4V z$CR112ZM6pJN_tL{ZTS~*l}adAr%a>Ks#eLbQceA(FSNP-7A_r#|pGvI)!H*M%*w7 zpYNcwX#={~MosC^|DGE6kEi$5Y7I#E3Uq?pGGp;QOy4Z%+o-LCB~rS# zQ_n?|@8Y(U$y#2>8td@?DlHE?P64=v<))}%+!WiNq(XyL&9k*+- zBTr3gd*-bvkox7z+NrAt6mrTpuYtNJ9Ku&79WO60UB+r>My6XzWk5%;n}+8p<4&57 zat&Jpy0dxxB=4(JDKoL%5GCRb1%%g0EA7I7H0@Jacc6$T-nfenT~<7XSz$C=AbS={ z<*;hKJf4jL6{2>>9*YN35mROgFMWOk;>zRePJVBt6*3UdV-7ci!8&^WeUncjS9Yt}WYB_lN2 zdZ2+?$8bKPcMcCQ#Z0SZLdGsspR%KmTK{26VZ7k%(i3|yIThv6?%<3xrr1b*^66VR zx$U!JxfSe14&-|%>UlSFghV}G)QYiktq!5Rd=u0-Ds>s zt~GdA!1Y<-HMeY~D#fp%v&H?jbIyJ`vv-_qvf~Y>eb1 zZ{6A9G&VNo6cMrFRsP##;>19{$rCUzn0-bV8s3Cj&Rs~o(jCjzJrV`j=S9fD7(t)V z0FuufFjH6-h!X#b;GZ%5Y+a0%h_=H4<|!#nOYkn+NrPI2Ay-sk-C^77=F zp1>>-Rav*hR(;ON&F$NGUfbB3dO4BmREd7H zCIh`k-c;8y3=gVOP^4o44F!MKK9D1gyNrcD`iGIcXOnYyAG*7XkwUlMIPmBtbMAkB zHaWs}AYOB#0ZY}k{jT#}&dM%@sY&!?#EZ;wbcEIc7CQMu{@iM%wT?X?=d2SpC`@}` z@`B7KVkMzNeg#pPFAye-!h+kKo=!MMmGNzm$tRDteUUL8{DN>_+GP!9n39hGy20ms?JerM(35)++VDBAF@AsgI?_y$uFwU;V-H~rwOCD`JvP+UdU8LX*1$J*MwdNbZY%?tvS@o%}M%1&n+{`!t^aR-$PZW z!{9kbMUu$JG|^ZkT8nax1S{6%J$Fd}i9<5y#REv=zk_$ZgQr%Duv#wZUgGuw1~f9r zm1YYhu?R*E^ttodYtfnWnPX#izn^_TVjT`T!|Ou3GoUt{1FNELUM<^P-PWwM?tOa% zV0x$}r!E9GOD+Kc)6XaXc6HKT@6wtu$NdB2&C6w~v>x?p7P(H}e!E^iUVc!GR6g*{ zhus$;9@^w28Z-)=zM+4&-Hg;5iSsbIHa5W&D;Kf)h*f%qEGp}3%1Jb{f2SzxU{D_N zmVcXPWK6W&t#p(|>0AU?L9Sp+Ny5p;FhLY9-=(;nn5A~G(cA#bm$LiFFK0`BlUXiL zV;iOgP(Q{J1#HH$Pfko4-n(V^_(ZDpLHMgLVA>KBU+C(lD*NO9ot1fkKXWHXwf-+G z&jo{7el`KTxJxVL%zH@r2DvXH`@OIBflsF4y=-QBZ>bx$vnV9hqHtM2wLoUj#yu*gYrQKaPeqQf7&~$ zY@8O@1l;Q`u!$X4pMPK+?wmST`<#$K0eMammVqrOrQ#ZPwvutu34B?Ss$Lx6uV(y! zXNUqca8j$F>vGewZN3E>Tu~oL#y5I=x|Unmp};@w4`m{-G>0_Hb@qHF2-5XwXy&-@ z0M#!!R7CSU=-cXmzM=yHvw8XiTA4h(y~QA8cgpL0^Q7?ljKc#6{Mt}r*RJ_Y+JIbx zLi3A7K{Jr~nR!yRO-)fjmXrI^J>CC>2~HOHDaY-m?vPVx_=ZeSr0MmM$8}BTWf=YZ z9P}XW#7%F+n0EHZQ=gK-kQ|kXH|LKOk%}AxR>Z!Z@k-IZ(YG|RT5eg@O6v=p$jmMSQ=de&u$xFaZ9S0{(x>U+insn z;W#?azKbr;bf#}0E0tLEQr*_F1%Q@1#*D^e=Q$&~dqem3-Ia_e=ywG&ho-i+n?Su8nU?ktwCgkwa0?c01OZmfqO!&d zcmr!SO}7E{2*Ak?S?{L(`hf-b(N~oJ_PGoAw8Q(s(5aG+0FeNxLbQO(9qMBPffHX3 z1UNZ0HPDhkR5hp@;9W*VZinWUlV!gIeG?rbAs6LIpL4_FXR$l~APcQg;Pz#9$HDg} zBYq6$iti?s&Ry*FZB>d((qFt~FU!5To+s|6@rtjQjI8tU=6&rA31^)8U`qE4DTWk_ zZr)*@fX$CG8l$xz2+q-#UH6)`%gXPb_eVwc_slr*rGCOg3%jsb_2d17yev9;p7?w& z$fy4_6gAKM>buhUsmZecrP_I<8a?1Vr7)p7?$*awMY+WWwI zspmipK?o_*lN!c={-6k4Rm<515$9O})Ja(5N!Tq8Lxzd}&|Quo`4QCxulcB27`M_56_*;4hOU_tDhJIg(1P3tnf&@g zuEIZ)W)PV}IWxjikfvYw=%##sZ&m^3f-7K8<% z9($%9u8}g#-Kl!YWJ8aG4|~QLKkmUeBk6Q;sdihZc^Z;DIP1$1UPXP~<7Bxt_ggk5 z<6hF9e$!U_(NrNi9$brXDmByHzrMFNg_prsY=h(Qe5!<2eY#QcP)$u?q`RZQRl}*V zaBNLreK=XI){P`*`P4h*g`T}k)4-NvyPRM`y52*8by)l%&vWBV>e*+98Cd-Go_p``FtHBUCjjIy z#yXcSDB)R%kgGaB241RY*MmSAK-@*mfn8Irz`FzeJaAnhawhfqG?mOC^}n_1MTSay zwx&{BSM-u;xkj-C-7YLtu~d(s{)wjoZLn!hWxTn%&r1Ffxz!EJ)-uwX$ChQ^sp9U`IOk&nj<|610=xr9f9GvQ@E`psMB@@-i%j^5C zn#ZN4*g7yf4*X);No0%LpV!&J3a|-iPwsAhfsCgd3}0g?Zd94(}u@dZ)#Q_x!lMCR#SS`bYO@PzKU5)Fuf&i-42Zo}C~;R4jeqS|T2 zd+4KJzM3}mBvF9<^r-a(NXy05_O&RqoTTKp{XZxgtJhk@?Lg^RfVB(HJIsjOAT_m+ zV7QU3BY`>f^ry_%%-eXzz6IHH`D~v;W+ummq$Hx)i8=FaD!4~Dj7}v(=d&bkEm|59 zVP*_eyQW*~hVpbGtLC44=oXegek_pXOug#^b2}VtbJuU^`PASSlO^nS=J1TU8tONVL2!4^N;H z>$?9C2U5NOoq^?N1Qcudmc>>r!0oJ4#4k-c+&O5t35R@4oKK&|{OT}Z_ZB??!XSU> zP69>vwt4~xBQR35Q_h}9%^&jD&EJhrO4>*e^G^Z&95(-yEymS6?G<{jv4f7s3D`^& z39M;E&^X}sn&zLJ*xqaDbdS+ml(b*inuWnQtBD-PId)5rZa7fbs=ENAq-n(TSsu)Q zZ+!QDiz+dXw_hC$H--3f?!ik#qGsP4lJ9fAQC-Sej>*WVo>|0ks8{4Eib$`$z)Oxk zilOrOnHk|g)Grxa>E55A8;tx76Bnv%cyjQZI)au1xh#YBf~>|%%?O{Nw3uysY=Vqm z?Nl$iVZc(a^Nwb*{i*$13nzEfUrH=`7h-XNWwr^jJyHqSel=MV1^YQ%07Mf4O#z^7 zSXHlfbpRfq*8KyEShD@mN%SmDOPiTG3V_m@757m+e?=?z38cl7PO%Qiu_v#jB#ivo z;t?mN3p<(ftC|m_+yVO=i+4((HVk;eZbKhhrWx3ks5=MtfVLAj(~=4SunKDV?SQCa z9(Znb`n!_9d}#sGmbI4C$h+drD|ht&9<5x)K$97`&Us)%?IIo>c#z7kYvB4`g}8S_upRqDU6|~+ zQ)RNtIF(1y%lM-)gIotjX*UNkUlM*5*Lc5iE4`sIHcO8!5XTibZaX6kLx*pODB6T` zKQNEn=c6u1@3a!a9$~gxRD=*`!M{NRoKt>~C9VZh+p(a4NsD4;Cy;**45clQOP^Fl zv9M|_CpUZ$+6BQj{%N6j!r&bA4Xopd^q6aKgOa0S$XrkbH1a!;hv-vsyT+BrE|ADC zK$)&v=ZO0PxP7{&y}&s@3wC}09-gg}7hEu82GXiHTU&`{ZdtyzoU zTvK+(^}5H$$srKw@2>=*n+`K{v;U>J*}i;ME?vrTE9zA_zlwyO$8*-!a9 z@({!andQqB*-EUxXv2Gv>frRyjQ_X;Yu#ii=pi4%Du+}-vydNzC02#iG^}!sFJ!`;D;rX5WzpHi_5gTnpHbpGbOj-KjUCw8KDXD+(FrPhbL+y7&wwAI2G^cn z_8eLVq-PV_X&h!1`m7(Esr}vx9OOAH$h}>+BFWJL@nA3z`y$#B!m~^Lj6Od-x9g7= zcv4SsL6CA!2;0t~LHn*2LRku$pc98dD4we~u;9;4S`@b1T#nkzL*EUN{q)PCthb>x zLyHj51p4L>Jg*%;7hp-`30sBK597L16~G3#$sT`g@Io71Z-XN}(X+t-&$`S|TbT$CV;h?}n<2y>4iI>H^3?ZGgWhHXmWmQ!Bm! zRIJmyfJAn4yAL)NyMXRs2LKSbx?l_mue`2I(_)7MIwZT_#KeRL=SqSPl0X8x={-oE z1N}K8QV1L9KRZG93Y2F+FgRezr<^+ivVA~tF&AW+_}fhbg8?SAtcY~l*Y%%P3kPTR zm`mts2>;aa>nX?irExI?ngM#N7Rvye)#9|wJG;C}Sn6HuQ(?Q8CS%{GPNcS%*(bIn zE#*oII*epRW6LF#ZXE;-a^oa{J}9f5#^i zB7r2O4-mI2lhE@VhG!{Pp;w`hIpRw*1>K`gzoQ9|;q+Iaom;65eDDZ@$<&f;%bX+U zl3MX}yw0!v`rT{tIiBOIyv=c_avYlw&|hTeQDM0)xHmDW{Wxaj8?kUN<8Z%Yx;<&? z!YZMaVSbu1Weba;rHyfBuVo93Ks3D<=!|QL!y>0%&>nAJn!R=Z^!=j8hzrNq2 z>d_wwG2(6$cHQbAajgnSqnZ@2QKLh$-`RU4+B5e1+htMYfJr(!_og4aRmLiOr0b#O zY|Sm*t7T`vQoss#%AbK}`TxFH4Q}YyjhO2f%sdOLB&#aZ5UuJLCi)cOin#64g8_dQ z=Fp^sZMCWXI*QAM24h{q>F&WH90>OA9DM2D5%(1+iO=tuU%5+ZcQ}F4ce5rMR~Y(JC0%(-UXsZJLEOLON{At=d{)8Dozy<7PCh0bg2d{im=sUovmWCu zna*?JCzy6)^LvG_bguWMVqy<$$#x>YPxUP9rXxg7{_ji3_8zY%t;6Ac4K`Y~Sxi*2 zLNG<^P7_+BZY8N)&~4=#t;-|1MP`SxXia+Ac$Z6rXWd4hWNw zgk{W_r_Y#vU9N0GhdJ%wAIZyq9obX1;VX9bxN-hHOL)n?Y5$c0uBXnOR*Xv^;-#vD_ZZG!p?-2;H3vVJapp*z(+y-|{q_CbGo@JILL?IFXnVQbC1Ly@m+ciLHu>5c3VvQpk}3Z2*A5HP2Y#k&h1`AN6| zbEA(vIBvz{93G4Exe`TtkBO%flGa91g~>^4TKsHHe;WQm5M_Ewm2|#?-ZMh^ga7`H zASN7FX+t=;6K_Mh73E@iEedlo#f@>J&fwuWIZRW2yY6J$H}8tuis47T^;rquU%1?j zx;rp#u8XHHj4i3S^R+~rrQ(K0jhqf1RYM1gRg?tYZ|?qH-oN2~?63EG;%a~1);%bk z1uxtV5^ujk^JAOPrpwPC)O6HgA(*tRbzOJ5sX{Q|vywv=nXuVKoLHe}yii_^zv)(J z#jSRtETPf&`#@8z+>#=egR;4KfD7#a?_}{5Z zDWutSeZmx{Li5*0=f|%*$1vrO$}jPGJ@dc(GUAgG zTPtbLNxYoq&{ANw_~#uR&9XGG{?=FCVu5F8rt8kWMTX{x+ha-Y1c+o?!mMRugRzZv zoiUk%lgQeF=;h6I`^(@v2gHRATh3ZCO4~(wdv{9KTe7gC_$o*Shoa|q#U)yGe-loA zkd64p%);|h-{foJtMQ$}>3hQRe;Q(3*ni;?U{&2ZBOoi-S4XFtMQH8W3Xpx^aOKDg ze!P0mmXBbLAs%T^v2-72!Fb@0qM1mfRB3>bT$~JtqT}LG7%~3;w-RV4TF`n% z*WyC1pOmZ!8cb zM%h8zg|7=Y8wlBd)wcR$vscE~JOjO_58-)Cj=>UBWN!GR0@R$3sQJJlMalY!mj2_7 z_NWxM`?KC>Pc~BHTZl063})MI3Sizo>rxZql|a@L`2+oTWc0kgmUG`NCRds-y(+T) z@37m%56;L<=#+(U=X#jagSy?s*`yz(Nbd>>dc3?d|9$U0Jmun}As1<{*@(}R5U zpB4RN6D`JI|28$aTzglw@olrp5P4_3LZ4butC6NVFc1VKT10HrZndDi$}%Tc z=fL22IZ;{q{%DT|?jo8-k{^E}h`IQD74$MmC(gh({L~Q+l{7)w<|N>M+&JltuLOp9 zY3Kyq4!B@7Hnel+YTUg3kNx~scU*i0TJ+HvOiXOs6Hp6fM2aoLJ#WQTxuRMW>Bl-< z#K~ll!>J(!q=y;N8`PSl8WHB2#}x|I%Oi)~GCQG_(Vk`A-{j3)ch8>?4^V%5J!0S^ ze)GUp6UT`5E8DX{eKnO@w<$@}ZnlnhSux2&8j}@@KXf+q>V#UJCTO}DC+hGywn-is zoNJ^IY~QKP@)h8rmHLG6?BjaH4!`^ov!mvYWSATb{?|<=6=R$2G|coh2J`ug)+)<$ zgjT%+Ci^&o3X!J^Wi(z*Hu-lJ@!9XVloQsMji}3|D@O|5-!hSD@e@UU9P{WyPla0= zlg1}VX8-Zw!V``Xy^o^trrHu%mxp&Vca}6i2Sp`2 z?xx)%WvgK>aC#Q~)o7PX+zc8DoTSp=9IEYvY3l{Ol)OXWfNBQb(WZ5h=tl=6AAkg(>W z>m#}0{*D5b;Ru^-{k0$`Im**{iZd#gVj22=>UIaTxv3z$xgSmzzg5{=j|F8j1GusO zTE_mbD(GXto8-#_CuB)3FFge|<9h{+hLo$!J431r&+n*J8zVCfgdLnS$4cNk~YG$U3~YSc_Q zUV#hGJrMAq+3Mx$kQGv)2rM1~5o~GuYxg0((C-yL*B@+`bvo1hS||5qKlwz@i0=9P zr;23ARCujS$MUj+64p5Os_}yBhtWOx197^xAv_zMakX-@N<`r4^&Pn9b@(P}xm7Ls zOm@eh5&e$rJzF-E?KXx@){Ai_VcNPmT(qDazMnx3E zoI*n#wG=*@D!?q;3OVh3YWa!1LYvsUco?A^=%h(Zmy)rMA4;o}rr`Iy zLo^imx~(#TfuqOdnbV9L?1i##745lPGM@~G21&>7v9Yl$?r*dK|2nE-COy5K>ZlM| zl0%KVnxpy6y>VLah5LjszSGnbpm8ea&;8!Wizc_^e)@#0cGzM1GO}JZ4^2?YRmUIolKJUhFFEWCzi990TpXEgDN;(10ql@=pT0@x^md z(46li@=piKAyNYCi85L;bgU#CB?@eV4Zr5mxgBWmI$yZx>O6avB`aY=mc;rd|8YXt z<*o{LS$^JA+=>A*oPAP*nwubG9%7-?>GmSJ@hAJFWjG9Q9Jy9~n%a{DqSD#0N%}F` z@N5PyOW7n)jdyE+v|o-XCDHh&_qogZ$`$#p7uAI=&B}JhX2`!1wE;mB`HPH^mbMKl zkJ-+b(l%|$CdrYgZ6ONaI}DPo_wju5Mu?@j(Q?6j*dWd$O78aIMMg|;U&h!+BjyVC zs6T~#_kZx+M|+>?hv70eC}+D*@qIp5?EKc%ru%H`izu;3^ZLll)>iVZ?eD>k3q}51 zfx8J$s2mQAryQ>`L2_@>6rD?84;W`A zo7f_tvNW4z(2_UQQJtVTXelf9;a|(vm}Ta;$u)JG;WDGi-v1|`)34SFiv4}{@%Yzdg9y!l1R2S1$h%$=3!*vUg=ngBIRuoN{L5ZGqd4lb#2lOBQor{@# zY(@Ea!t8&wwgWbd+9V|~tRnS2(P&}2V`eCdf#L3PZ@A@XZZe@f*kcuww4urP|nXHNeG6sqUNRgZ|~k z<9jRs6NW9%r?3<>154Ii(}{~orABcTb}(HG$^8J88YXdxs5oRp%JtSb7lDY=s4G4- zO@6eF(rfF@0-wiH&$P9Tj#aJ2Ts}n>MR^kz!r4u}k_D99b)#{$7GE>;FSBBio~px_ z-j>B(F2!+w^x{>lX;rYz^LgVjahT4dg=(vmjRn{DdcR8#C)8nh!QRgk*hclxV77e& zy384ch2a|c1-*Y&4*z$LB)0X!)0WN!c%KFU8O9jQ26IaY#j91mD3PZwK!wEJ}W z@D*C0YE`7=4QoT>@`desX$LxdzQ#(0?*e=9e!*@1olTWUP98C}Kf0b8NZMkm9nS;s zLbGj_*6+0L|2qkADqPzx;rdxBtvx-UUDouwM*Na=S#2lN`!$Dlq@*-IvCGBTVK8s3 zKb%If^~OhEN{I()UcXraa^OMI1S;YWZi0iASiS|YC1K%+xG8(GKBOIU3bhD6K|fI~KY8#9I_&5ABReDF zfrNywv^5>@3_q5vFsy}v6>9BX*)eXi!J%2q%?hJvO?cKv$%x6bN%m&e8`CP9i6)Z^ z`lCK#Za7qun?0g`!aHcmc4ss=5#~g#@7N~KCf?M!+>6gkFE(GWHh57RC_0W${c}H0 zlh-rM;lPRRw^{k4|35aK_t1uO@m`YNlb45|e$=m9SnJ-^BufeU#Fy8((nBSMTAt&I z4JF)M9t&B4eNj0ne!Q7v1r{BBstu+Y>LoI&*q@B0Smx|qN1scA_n!#dK0mYV6f~J1 zq-LBS!trZ>3CdBRg`0|qYs{|`HIb48KG_ce;CA5~k7JHFr=zZ$&g9Xn7 zJL9rL{`EgjWLd2bnzi~R#Ax{H;(gSm%sJ}y`)YM~ zqo%n6eP5v~XewZRN9B*}6@pn#c>p!&fK?Ks`q_n@FB^a07NU0=d&_DP;f9GJsj*%m z_*pBs!zjO9{vJGJ6^%XAn(hcLix})w0{M z#)D@QF%ky2DlN%ME#MG`XEa1v=DdtCf#6HtD3VNjh@H)8;S8vUyOjr)!E?r z&`gczJvnKqodrtk=C0^Wm!mm!7ac|+jY+5K;$WJ)&rp#qj#UCd2_Y-;b_#yEg}W6y z^aRTc0a9c)Cg6!m6)Rm+?~(BxXrE&wIc_?^d`2?^@DJ-hwC($De7^;+u1cb{ClJ{# z$eF>H{=i3uIq0Xwx2pwLjThB?R0A`qs0kT77ww#TMuCChxpR4IXX;-$rH$Yw95+G* z2R_6jpx-J~_a}Yd?)uaOz+8C!kr8Q2VZNW`{f%zh?!Tw7Gpv~2fD5N9lLi|gZ?x>?OiIVXH_+}Cc zBb%^6_8~gzf3l;w+(yuw0rNWJ9n5NvHir;xqqDYW>r}1 z``PUJefd{$4z>h2CP$-Pt2}UB(Us=vB$l$sVn}&hSTN$3?5%Jv7x{-Y4z5^l+}U5z zWV8D@Jzn|-gYz|K6B@z_kRR1q{e#Bdxn}INJ+0mz9oWS(*_1ZP;`(K5H*jPH5;2!c zr-^9T^?8I%dLtNc=k=lU=}h}|C&{~ueadO|U3`4P4V0*wxZb<46|_Yd-2)u)MoCvR zLjb2f{m3QBWI{kE^d|h5oiIX3w@l)kZN=!$L5q!qUUx9kqSlt{A?mb*RgmnQ=-?!Ae$*iRRkE^#1iz@8C zKv6_g8l+1B5$W!bR*;hJ5~PL@7#LDPx&)+4x*LWVy1RSm8oGwgd;IQmzu)J5p7Y1~ z`<(s0d+)W^T3b#drNN&g&lvxVghqlNTn1&yAxW}nH$^QsbPapwfj49M_HfH%O7zPo z>sJ6`vD_+|Wh<~9wf*cAjgyfTmv67>4~v~#8}j@1VtHbu8If*tH#Qv+Jl zy(B~a@7Dc$1J^Ed_ydO~Mvm}8--+seE2j|X7CD7Q7K1bn6gPV_sO#LU%`AsX(A{2( zIMkK~1x7EriCBuS2mO_FA$+6;K0i~EE$Ab{v;dSq${_CJ`O7DYGiBI^^%u6chhe)% z5lh!f6p0C~1#jeE);-VQ*C{3f^vn(qSbS^e7;Np1nE@se-*4-l`8jRZu63f4fuI)C z&lkr$1~y0|4rh#^XzuZ!p{muhq^qM3m3EmU7@j)VU+{+^L%IW~D$bK&w(k_iL2>$< z9vw&{A(Cm3vCZukXdQB1nGOS|yc|bK-4^Xf&dA)!U+ebOx{_l%xZSV_4ZtPJd6ei| zm%5hhlhT8Pzj??p&%&hk3ih>B~SHQtP9fbuRr4d}3?oe=xW30tDD z1vdIS+V_nWQt;{DX9TxB_7)K~o(Ami&GCmj!O>SIZiK zq_HC3IQ4i*?Q-H6HNd|bB7Z|e$9RGUkqQDpuFty_7<=eUBjeEOq3`d zeTA2@^&GQhYl03+;mmE|-ffGCb82dCt1Mn`{Pdw_ayVHjprS{ zDpnMgW2t(?}< zhRALd>Lp8f1`)M{tc zi`#AQEyln9RPH5EGZ1ibX*JrQ8Ql2590uy0`Pl^?4XXxN7Nj{~yMl+6Z%LgX_j54b z+RG%%2F{6wj3CsF5e=SdOWF%T>BeB|WZp;wjg#nX$`9LoMYABmp^)3o36v#9)ZNYA zIOu!JodC!cv|U`&r`nAlYoBat_&OPE3hU*ATpN!E3=nhAEaC|DE}2+kuQgfLq2XHN z^Z-L=0Q}YB6b4`+zk4s(>#%=QIe#d}1ewC8fq`W{R(^EvE1#qh!-IC!%*>Q-e__7#WUm2DD;OKD#`q*f9|-ydr}#i2_ZEFN`N3U zNlDj!P>oS<3(6w0lP!JL%J^yo*8|An$;W_naGv>E?oGocn#)>SO780NCBMXvSlR15 zqrD%iq=*KttlChf6F=q(PT&3U_R21nI|coan^zRbBIo;#T6|q%v)r`&Ifg`yjZ!ZP zY#zm_$mTB~>)?Wc3I{bO#jjzo&ss+LVdinybducF15MEam6Mdx+$Qt3=jTRkViVvL zxi3~QOR)heFZT)5(vah$RFd}CZY4X z!$mBERE~Q!zD#2T{n}KJ3GV_)^)qw$=gXlr9j@_A>-(-v6}7@euijB4rnc^6)4mK+ zTz?8Eh$k6=;bdw38mpemIb=qRH#lbrKh>R;z-E$0a87_Flir!ep<>`mk&&*H%aNul zOG&2F_?KTU8KzZXuc+Rnut7R+P4~lTA{z{HCjzTVdRbiFXqU{^3=0P$n2#BYegXZ} z3~vG><3%Q*>E^cG3}A+pg>lVI5|NZAowjyH6b)JHL$}m4&= z^*$@m00cc6NLSHwK0zKWF5N2F7*yj2 zra|x~XHim!#UcPFU(wx&Vj<9pd{q6a!LsjD@-kM*zt;OGoKs#R!bpRI>~7e|NUl%#g<0`ftkm`(hl{ zO>(ZFV0v|gyXZO1;(8WCY;02Ev#rDOCRMgPMfb1|>+v02E%=$#OH~e$%0Q~5C~WC0 z6X{b1bF+ezSp*jHZ71E3004TmYwJd|8!ox9g&Q=I0pElW{7gdeRcgfWr?o4DexT+O zn7D<++&bofboKjnoeJyYa@;XE8`r4%T|@rIY3T+FX+v{iyHN{Y@$BtP>cmMN%XYBM zF)rcwKKw0%>M@o|gRAJ$`k^m8tS2p0euXAakl1%`|jq{;xUO|2-Iwk8ihP`j69>8pzoiw`@X()!8-w z4s1dZxB@LN-D-;I@al7k##5x7vc(SC)P?0fuSYk0%E4`)ybx#0=zk)plHlIe?QnkF zy{ZqmPECdFI@nviU>UNMcWEQ(A|V^3@A{hKa5sxssb;GsPwi$G;S2d(M6DgXwIH@C zQD1IYp6Argsk%{sH{EGmE}u1EAObng^Ue(=Mb3><*->^`)5Da|f)FKzXx}bq+hd=) z4b-qR&`1c|tles+&RkQJ$dog*FeE@0glA+f;qzi4EKEg&-XX>8%m?U|RyDVWls5Z5 z*6@r`i`9-bsL@qLb{-$Yi~l$>{r59`+6qQ6#jd0odf=1@TQULZ`F-W&P9UOpzhjau zzt+0EzdR(6D$V`OkB$DSVP8ptex(RjQ*Ph{wa&DV1Y#-WS4m%C-&g7l#vz!U2|mI` zgzB*FP&65~|AZnjSwhvpoJai0lSqUqpo=|7Mjq9}4yAjUj7`8AW8QPa;a0~%R(Q`^ zilvYbG0b88!%v>9px@IwuEE5O?!b`W#{31)LmIyLtF>{-Z>Wrn zwo10jW22&^y)mFT5{Mr*X@fAP4V4fYFEkAGcS7YnKBIFL_%RV2r~YV1F9V7e-RaU! zckf-Vd0>@5)`D#q0~!NG(rAD&rH6O>RK)2{i`-w&eTIvUNu% zFiaxHMI7lDj`CL>PoypQswsWo?W<#76eXHQCFv^OK>@~q#CFaDMzMXGn{zgVXTC(K|WUvwfB#q*;9 zLrNm~r%#U&Y{0pzJ@N=uP{^FJ_!X#_b@bOCt@Co?Wvch0pX&m~p-f!|JC8^hekF$V zCl*oT;~K`-B8)jn_z@o>;;iX2LehBdrcTe-B5bQL@M2_V^CJifls!Vkf5*|hrV&Hr8_KKwoaLSJGaTRqxh zxadG@E3yx9HFu(r9)f?x8`Z`|5=$QLn!FtSk@qJWT5Km!TszULLqf-DN;@u7=VV{u`-XBy!N4f_c#%L_`Vm(F2IE`Y&u4X=j8f$rBavP zX*k{!?;iF7ew1gDGHy%zfYCv_c* zpamRjPGR41^*+HXpJa-~{4-N+z&7c3naUtgH>K|eKn1% zm-%B`4$Iqqfw1>Yi*$8`;eJ9ETh|8p2{>ea!#v!O6&Mb z*iAozQGvl9V`t*ZTjiOGEBXe+d82;a%tDq(X>jNV4))4lG5pHC*X=@F6XuWrpdS8? zT=iiL@&nQ@&;u~U$h+iJ2kM#m?o_!8scYUQHOg^QJ3%^j6Q&@WU8l{leI z*J@ZyjgPMtp&vU^Rwku?@)W!%7c&zwrzv?Ds411OX4Wy^va7pjgMiyHOb7A#V%4MJ z0`W#{$w?dbI%uYJQ#w#Tb)on-=PhC0xDZO1`F5um*>5kBT%NPnN9_ZINnlj|+GDx* zwlyDG+gMQ@y=s}x1j84q9+6L%wyrgMJq5=2w*LRUhyT8;vj2Sam(i4%+Igr4d49iq z-OsL)pD}0grz8G-?WlYMbYr(u*Ez!?--<&dDnOF|qE{IEAY>O$Dxq)lJ!u0pkW~fl zQ>PtGzP}#@m?}6`KTdOOIPfQ5=2*6CK6=BQs8FO;@ly(z z0YVuD%Ym`eu0~16?%{lx^$n8yuww*VCSGxK>gtP}-g?}uje8+;TBkf8QeCGk)`{8*zJbz*WRYR} zNhv(9UxusU7(xRemY1 zwzhHFi#V|#bPIXPz-KRPM9wX4PeEW+mp8iEYxp0 zX*t%eoc^}rPz|(};{re)nfONj*v0Uk^IS>MWPdFCNI2r>DeaRklEh*nnYVAtke9`- z`};1dp=(Mli^m*QI>q6xLqbZyuf*0v1W+a)6W2(;!s`e9&{KQ=WjyHA(dackMjvL# z2WAVoXAKpdlDuY#VQJW_RmLrhyZ42|cHrTtcLTTTVJnzB#b+44Xr+*s!`kaHgD4T? z(T%}JlJ!xv{Nu^GVmTbSFXQw)z|BiLg6x|#sY$cYW8beQl9J+}uj54Lt91$bvF&$& z8WEU2wAaDFCVxtC0K39A?EjrXh*LDNciG#2BO|tj2fHjBdrWvzt4>;J3gc|0qU}D3 zXn5H~7u{b%Zp5XOA_{Ndia59$;~IrQJgAy}^KOXB^uJV}_h=GHHFOzX<#qnnG>}#` zT+r~Q3m{Y&=je3ym(*fD?A{Zv{2olQ2MVNW8Q&pkvB$s^^>eX_lgVSvRA=5r;A$Pr?pn~HI{2JNhkT}5GGC>end9z9s6ypex#zvV<#%Gf=7wY#GBn^N&wPbaff^2*vlPoA} ztk+Phz@WPiMtno>>`M(rSL<2=<_~0(0EUumsbR>tk|Wts5G=}SQ=%`~@G0hG0pfr?1xbKUdSkx|m59+tum{WF z^o?3FfI+rYk*s#A&I#IgBESgVto=Wj$7+OaBU=B{fHH3zie$%N8L?0xye6$yM%L*x zSapN><~?x?+;1o?zEJ~ZC>qVHS6b?K4QjmBr=B>@Y1&hU6#Fm z4FB}Z*uv*8j$0>djoWDM7&dQy61wu%9Wav+$E#1&q*#Csil*zP{jMUDT&d1l&10T~ z6qWRi;{j&UB|2kfD--~SFVL;h&rbAI66Jk9H(RdSf4|$`myQNNDseeLVF20ibKS^B ztd5*g=+q-~{o)dk9xkzYGMV`w_j!*jF>Gn-S^XMMUn^Nr_a+QjQ$>yDnNZ3eor2(|33zKNVz5_YN@LTn3J zj@bM025^^c$N0y-^>QVNZ+IicPrt>wMPvAts#XwjA6v z2{3G4UES|qySte82R`Jin{E$&uqF`#0`G%qOPyNOad1EFe4OHSZtyl^cXJH3p)(Lu zAkALWi7{&GJXqr#v8gc|8xmPz9SYQW5&3lj$+gC)sovMy@r9E|3vbh;s%JacLEB9X z#zxD@Ys(XKeH)^;=Yut?lQr|f>a?^ZDXIR4H}8&xQw_~@v)|B3pW0iyqy!$+f2TW8 zJsDpYaxj?84Xq1$s6T!!YWwz^#VKfm-I|^KV>27~M*XwxIrp#1=AS8~<{_Q$~6rkOmH%Nm4;>pZs$r&CD{Tp?8>#wFd?ARvy5&UXh~;{5U$lKIShYJ@ zKT9OR6^d?n@$CHBRr&Bf7gn(45DUe&>c^fA_unJH~I-h{>~LK8(J<$7;yj(08&Bw9iU|pOms|dBay6} zY}-2Jj%6in)sHg>UxMAC%|Hf-_QUTO4=t(WG(>{AJ!DJcY5D*Gs z*_~SL8V4IAaui6?655B;JfA8Iam-9l>#_tY<1@FBCZ);%E!qZ5v0e9|3B4xSTU4hh zVl@9;g7S>@ajeVlN4<_iojur$_QWIADqF^QZQrUPz88;+r8XQ{Y3l2?2$8ZA^croA z=@zBsCNX2`M+oLzu8|o2#c~Ks&zU(6Jn>FJ;|`!+Sv| zE5?k@5h=n&ZQ}t|=_RDL-pP4LSb)6!FmvL`tjigiE$@Fcd3cL5sDZKZ`J-jz|G-p$ zJGfBjqX2V+eb=Uf>)}GppVD>X0s%cxr+na;?Clv?Hp&SDfRuc5lGg{Pu4V~~5Xtp^n7&WZuKV{jD zc^itnrT6Q=&FjDghI5}B%kYd2N4Bl>uI)i@z4+_o`B)J)Sl}EtZW!nw0Ca~k?w)r< zYfWvmc_GOEkxsQa8uQfLvK=SPdqA#Wdhu~ykSQOiqtxq;+3Pl>``y0?7yq7Rl@1`^ zaJ``9Te&smTd6yK_d9+!XUSGVmOD*Rc=i2FvVE4}tdpaAo%BYjjuaw=Yt%PR+(Nm8 zrrt8#Rj%$&p26evdMmb;n&ZFwLrg0xzav(H5&JD0LW&ZNvn@DjZcoQ!UOc_IQO*D@ zxMQO#7fy5V^7yGU#jc?d8~98w+&@lsUk!?nPw70}V}2DR$mhPueP!aEm&&GIx(OCy zlZq0O;U&)sS}LN7@( z*Yah*a}e)f;@e&egK^^F^-qGCDO&SgSzPrKZ1-IQO)0}W6j0vceKK%PEwx)jtuYJ@ ztZ?&d3MarT-T=h}TnZOWy1>wWz!w|ebmqDfSfVmqx6~~rie(|~T7EA^bvuMJa^e{* z@sCObTNmJ1aSQmthDEU+)+#XUEo`y9Rzn@9E$x!()F6w`^z4d-4DIwYD%L6H-hXRM zdL@RZFB?l%Fc)jNmv@+?D~fUyACPlsTK~D#f1}@Fawr9$vD1GVQa?g^x^oC=w!Zfk zd%i95J>64n2LMQbJnztdMZ9`p2cxV>b)n)%Jy-gKl3Y_`BU{B*{+kkskLF$eg>fP8 z^}*z)*BQB8U1}A~!kq~?%#M&#S&M19fk*QnzO)aMXL zdu3RWDzdM5L5Ct0a3p;9!HcJMR%0o;{xnc z8S<0#5~aPK<1ZUNq|#--1(JK%5!ZAjQl!g;Vz6%f@t>s1fy0iXI>|W2YUn?00DcV| zvx3TE``vRXofd<5Y{bF3Ndh;UW=J)op^w1FrMxT#l|oC0p-yU5j*#vK!r=nWk~Dc< z?f1VFX~i(+{GrPX!)zB})@bUG6jzs~>*dpz*Yak1o;!+q-^Rcm$8W{j#l%kaJ$6TB zM=f~Et-d_JmfMJrlM)5AT%QI9O*VQy&wpD)tKDcoIt)QUdDV$CLZaA10)0W!m{dMr zxhHyXA-Uc;pPW0EXDc+BgfEXMPdK_-d2kAEA=tYyR_GvSIHVmK^E;)AiNUAx)RUu} zwlunk4(0|OpR?{66U-fmj|j-9*TLAb6*Oz2ssBiP=;z9M;VbXK?pVNg79BFi3YART zxNv(tqfk@qvHWbW3;E?j(!=`OPCRm}U0X(Fjoi$gf{{#%JdhAcBM zI5aO%FEW5)))?C3*$UoJBs;e~Ul#5D(fj;TyrV8ltjlll(z9llY3Dxs;83t`Ho!?G zq_108+KDNJ8K6FHF;*Z{%)1wdM_z=)^O3VT;*N$@=EC1=Opl4w7~E+1v!Ci;^vUpI zSa}+qc(CgY#xaZ0lu}seSUEdi=8PS>>8>7S4TKpNMgx1@+@8(B=u|> zbdQr6t2C__^EPhZp;$lQT6630uhb5@u5Kfa*3#}?(9+5~DgHxH?8pFA4##yb!VO_$ zhqW6zm}fD{meA0ztA5BbfAL0W;-ipTrY3XSxAZ^ki8sWXMJftzg~w2~Z0>B?9g9DH zrSXSljZ{bOihwk`TbO``mO45{0HB2`ih(goL^i(c&A7fK^CD0R3pe$!A`?Xg0-7LN z>Ped8r=dY(D=?9@W=V$vA~{5J;nHK?^Z3n7naLX&U@L%b@niPG!f)yGIS)He9>pv( z9+u0P6sOzLG&0JM30%xohj6mr?9YRoNooUcX`<5~-5ifK*vGn=Mp*s$91*uUQ%X}7 z=D{K-JUkt7DMv;QznW&#YmH)w(zPKb0uRome}JL1_&C@s-t{ya&dl$!gS@gdePS9qi)Rxe#`-jOGfCeOUfRoAAyk%pf3wtrFpeSVd zT>KPFBtA=5YGrLtE)L&)xh2|9oc8ci+NGfLJ^aI|O;x7unULqs6W+=5ZBF?0*7R~} zu$i(Y`M1S{+}OU{g$5uZp*k~Myx~8ZIBkXR)bzYgusx8Y-ABcSqQQ2;*CbT#wm1#n zNc#hxj>@WR%K=lU945jl{_gy4ssN;t;Pbfs`5;v&MF@c5N~)?_Ts6H~ows?b@8G>6 zhsVFDIX9eJKirqudse&2GxI`(G-%PYbY^IwY|p-7Ec6lnMaKrc6P%eW>rctaH?u7` zzXqKn^;h`C#}eJRgSxZ18o{}t@7kR>N&s6#vsp#X=kd-Ak=o#4P#6Z_&%j=dF~gT& zgAv8-Rg2ll>lLptc5a|sow`sV=h#26`tD;EKn>R^G=-NZDHrk`g#~y8rl*U;pl|*c zCJjUj>?Q#^1wiD}y++Ar7*^+or69(r|8cYBr4?#4V$38_lQMz1)@s=fIxAY8m&>SY zH~T6~{EOYM3|-BzqvTF%6>I_rgYzILmg@6$fIM;J86E^M0+!l7%7R*W0Lpb;H+4j& zM(N|0qk&6)dh@TNs}ygBeGwbv^iVBJs7`!=8at0r2(U~ZXkhq-0mDJpPAtCF0#&f_ z_A+i4;Et$S_y~84pdJ^|k$e5M?+>3`)sG{t$V*G8n$&O2GX_ro4s7%ncp|lodv3AU zfgL_uT2EhXXBIh4N_Q^+$Ah-H{2j}=5DS^8NtQ#stOZP!DfhK4vxKVZ7?X2UG zwo^I8AjF!KW<`>~wy7Ya2o6?HE9~dak2nb3P;-<1mhkG!no=T^MO`SLcUU8~cMo|I z$kzW9z1+n08G$3A$68#(if)96|Do6!w^y~dSivOOQ}k<&`K5?&`B^8cM?Q`dx-1ik z3Tivf%%mhOK}ozT1I2Hb_lk8LPGVWKcp9FVR&oJy-4%}G&%bTqyD`%*ubVO$aJIs~ zR@_iWsTofwIo?{)u&vE;{M;pbWBi#O98#JPU0~Khxy$js?3XkjJy?}9Na2UEzGv8+ zB+XP3G<(aMv&dSiHPQQ#$e;a*$hWEJ>kOZDV(n<2z+Q|Aw({QG4Sjv&f9aBK{)@XO zT0vOzW~E}I>83H3*qk=Cn`Jvr;`x;K^N)7&fEJLiL>E{RfP`J%iQNmGp2cx+^M9cE zN77x+V2pAep|qMEml|@>w0t$gCE%CyrGP1dl)W0uX-c+(hIqGKBSaulKPo{yMFUut0QR6`i2M?8z0Ro;v* z>DfFJ%=q3W<$WW=xPF7;^swz8m5o8x)R6tTbETRd$3}gKZXofe_=#dbdDzo~yLdfK z-O??FG%M1r(b>WK2eM}VVs7Oeig~)m#ny-}#8=eanjnz5jI@bdD7nJy(C~AJ`=;;& zL>dqsSaQMFFM(RK1y--SuHVYk7O)#;V*^60XXI7O4-tas%L4+X)m-<~cBNEL?1+7M zK!O#PV`U}71&+}dBb1G?RrtXI;5nefqDGE2QJ{{AiDle*#2yZ>#rtYA>%*nQ|ERlE zH-bk#E`1#mpEr=MQz{?9uO7VBrQfM16&Djn1m1w*c5ncKV#Doq9^8>f(l6`Fzf%qG z3N~FoChpj%XA4yh+A@FaruEBGBzwCm#DBn3A?oEw|IYfAsn~4~PN-Nzha*Z<`wnQ= za;JITc1yO&ka%|Q>3t3|7|udH23_btwh()t~1 z4JiCWvZi`YtzK+xj>Mte5%a*5ReZh%pe!G2eKhZS4baIK1zc^NFwqg_N0nbw+i8_V z!n$!N+StwyTGg_B+^U05T2KH}15}j0)PN{N!lz~87YGV~&an+x7)yN966rEF}GPbHWb2;IvE=_ji7U+)p@d)z_2hdaja>Vxgpm)MNy#9s63Kt|J*I@3p1hOX&EiJ#*h8(w!=*}QLW0>2z9+JUa zrKN2*7};}Hg`AVh$j!_IT}!KFmj_A6W~CAh8!Q+7;Q#GH=XNx&yQFGvXg*@FUzCVY zaO*6gPO#xBWiqU`kn+d*qj&57a#lk($VekY&tc}uxW)lN6dlO$#n4H4*_IX4-MKUV zjd;@*(lYa_&lJ@jgjT>GDSo;WMxRPaEveSZ@SK5(dOm`AgVS%Jh`k-`SYvH2lp-2KlL;tO z^Hvr*AGJR8AKKpr&*5AVT{BW=7^>lGomzij%czV8HS!s(vMpK}+jzWSYubG(e7(+f zIUn~xusc;UHuvuk;3{X)D&6i6HD8(s%`Fjnz*1y(MP$IQl7W8bZP)esbc+~XyKTeI z{tB7!p#?<>C_#8VR1ld?FHv6@2zX!;SOzTKH$a4q@^QLrfn4KDGjg(2L459k^m8 z+Cj}S5}GFVtOwD(xL3W9biOg~Wy(pJM&-gEHQNYDrM|k%CK^)p zSio!T|4Cd~49vuf&MtZ;Xt3g~VIuDZac6>|Hj~zNB zDsPj|7gu%3L5a-_`G{TOuR!OMm zIrf|%5ua&qWKI?e>!m8-T(%fhP$QWAm^M({kN1SM{&~m#0QmKHX7FHychS2D*|}MX z9l%>2O(8f=^=;b|E^C8nupv8SQ67esK~RtV4EQ zxK$f{=Zf)k8P#B6{z~Ax0S&20Qo81?s8*r}cb;*b`Q~dkvcwtrNx$i%l>12pds@gV3su8jVRj|&f+?oG3>p}iM;Au? zHUm8nm3ETG%_+eLlJ+6Efbok@p>Wz4#U|_A#&*f0_`!*t6us3%&f#&YbaJVBjM7d~ zTlhOt;k5!NR_TRkY4DaJiis0Vy_Typ;g7QrG>U3&sxA8SCi?F2t=Y8_m}wR9w?Lw# zFNCA0Lg^7XqR*T8xbFN zp{cofN!i2JKhV)LO_J~Bbpm>Bw?y-`rsQ4bo608pms&}2@^!OF`>f56So>vP&TC1f zuTC%vD)hfT74dWYv?8|Kgvmr)-Cz4{QH>|NpfDFA)ZsZb*e}xt{nN-6Nw@9sO+fXw zu9ic%vw9>v;&dMR#anae(Gt35!*YKd=~hH^46POIv2%1o#qK%eEbms0B_K$Y&ob@P z4g1$3*p|4y(xT@qzDySUrhrT-W-Xk7ji4!Ph6njELYMkW`Ol0W<9|}8!n;AT)%qK* zyv-(6ckNJDpbWHCS#?gzaC+|ui$(Pi2k$SVRVRh%-&}8Z?(%MW*4^FayRh4*BiC9+ z3}IDZj3*>(fQc;$d0L0vJebGpa0AAnS)8s@92xj;SID4~GBR;9BuH2&>(4QrCp7DT zH>Th55^|k~QZRx-ljv`KW%*i>t?4O5|C#SomW~w*5y&g3V{6DqLlC^_sM8hEIIPOH z8Pd1H;f={tG=t`dCo+p01&zCIZ{;Vx?)}-+C+(#4xx7|v6pAHvDg_b(!+AxVNZkpVN`ec0Q~9TXugtep0}XR8Jlzcm+r5#l4KKHHghu{mt@>}cm%$s6M?VCuB*lt2YEJmWs=Dyys^0}Cam%STjS^Xcw@5qJivJld(lpR!2);$STW(fw$m^#v!XX^o9Bw%!?{K<^UeQ6(lrt$=zC5{r}gh| z>Na0Rh(=_T0&=m!B}QQ;sE?EAW9S|0i_uo`Lto1$9+5Mb`(Ya~X&#vhbB1*i%n1x8?C49$B1Vx^Uv#i$- zLV|fv+>IAMy_XBwme5TsUfhV|c`L?rQun;^n)3`s{$UKvhIo^KDu*Z1lO!$`muaU9 zSpq}oPkIYw0WNkQN0<*zMxC?lC%8!A=9-_|s9c5~#)gg-wK+X=lBg==#r8WP{B{{L zdN4lw83#*pcjS3w5j@?!N1i`|=4N%h?m8)V7!2Mxt8CRrCZz#L99gy-Zq@61TAH+H z_QwL;P%-m~LJa4?o0NGOJ>iHPV$({`hQZ1hmf{9m8t=awVs)hpXWOXnhC=MO(Y~&Y zq)S@xew6xWda@a3-Y;8Mio=&&MQHS%Dfe=V0V?6fN+p%kJoqz#CZhuc#TW`sTH=k| z?b{s^S5EZk>pw8lv5RDRr}~Bt;foWiEsu-PR8oMmc|AV?7ON4ch2V}3LLD_}!*jy* zl<1U0w$4HQ4a_ud$|XVz*BwvQB-4ItuJN9XD%0{}*;ag2e6Z!@qDc zbbaNZ_@l|;1@~IiYVi3!%VmA8&i#;&g`!T*B);S#~6JWHHRCAi0*n_ zUW3y$O^>Wa#7!Y`68XKn_ucQlH@8%yVo;TbBq`}2R-vHgEf;FT#LS{@3s zF5lh4B1tOd4>m^z*k2obMnh`XvdblJXJi%c0b&BQ#$MXdv-{v%cI_{}q@^@%&q@kw zXiE1yj-mQIoOt@NY&Mxr>o&xxZUmBqeh2gvE;NI0MmP5z=Qrw{RmV&A`?>G5-sTk$ z@z3nx<4Ut->=KUzN;y4M`D3b;^U2g+aCd%9Mxy@PbO2`h;;LIB%OZ#2rw&+1NyXM5 zOg)jKXSX3dVQni%i$UG2XRJ>^4Ni15j4yO1_|3P^*!b4h88q4+;&cpv0q{kq9do#E#l-idyoK0ZVGgc+&MKtOrR4@(%Mn6AlFg%Ck|%w}ZL{ ze#G-0JY8LHRf;E9{(txEDWDoitQKSy1!M5C>Ic`k5hPc(8MJ~I_v1=EAoH@Wwsm`G z-@k^@@T5B~R+*3)zVWQp$Josuk=?i#+@VFj%?Rn-W({sgXJEmt_;ap3rD$#fmg2*` zW&{f!lny`(^m=*r!3V3~1sVgfdv-D|G#AkaiTG>RV-Q>+QpEGB>a*n*HpG-&D*`;Y zV}8TB2yq^xwvAFVISnwFmytm_*WGf9K- zg7?WSyzW5lB)Yhx`O;U)pYHfcqCxVue^ug=c&h>KBI6(IWQlGe5Cs|4jq%>zSQY{s9jD4Ky zz{B|hg0Dr+8{XJfgpox~*tjueymfweBQ376-ye0w+$U$Y{8^!RfCg>wEi28w$F*LT zQ6nxxiB}Fzc%5+HoIhd#M;Erj7;vBORnf?8qAzj4E^!Sf{ffuI zee_3!)|MvY2K&CN6uuBw1Tjm=(I+l%wD|ZVFg0o{p=8gAJV7+~7_Y;A56NF^_t3Bn zSE4%VX+e|6R2vp=(6bl|R6Y}*P21+&KS`XD_9~pKgEs{Pxq0eAg8lGYL6YUG-&DTZ z!Y|8#vL<{5Z6#okXzv_ejaXviH&tAPEWWJnbm#RJ5XOm5%r~;KdRp4>z z@(4FM$hHagv%wQY8!?!9SGhSUW_^udhr*sj=Z?qN6};=n%)vtT(2R;yD;Bu>PmUrF zBDciJ;2a-k(Xm21``3>#f`xT5pSogursEQ2qD+!I2pkrJKY23Pa!4*B+)+~kEJlM6 z+Sr6WrG`(K=84*3w|QT_PVJ8~Ba_ujWr5z7$H`Wewy>R=j5t4%H>kNwa z|6aks3(zV7oFZVp4hHGrJoVQYg3$~i24X7%hY2JS#06$cwS&ie8lW{pP*1&1n^$&t zlqrO$JE13aaInG6P0mp6%TcuHjP*k%l#(HI;96}_qg8(Xz>1+YpT_5SY+yFN2LxJl z?Z}XIrr#GfF3bLVvOjPi(WF4Ctjf9o$Z6{g4H_zzqSbT-60Q67KoUKa#4mR-q#sF} zg$M&!-lK1bQ(O;XMHNKv+GIjmGY;7XdXT?)*t?XitI8gh8HV`HgzksohQ2U67+G}m zczklA_HR?t|AmFij}l6z%69Xx_}8{F*){TC(zqf>!w!DvN@tMAu{|rYMG(m9h4k6K zGh}^QFD-}OEio7D$ZMjSs9d(APv_QPL%IWA#vfHO%waU-*54~ur2}@gX?qZcY?+D(|)uL-q{I`pEu^ z&rh@^j3f9r`8Z*&uRZT+hX-M_l@->z0hC}kv@-e5ewP@-7!KA2NJFV|&%5|_l1(4d zIYL7**Y+RQ9s%)e7z}JInDI7x*>o8F>z|^0T@E0C#j5uMfWosg4T5b@Ju=BU`7nVc z{ky4hXH^-EmsyY(;Tn^hb9XS%A{l>)$s<#3Z@r|UbJVrbN$Eyc-xn06m|DN zX{W~bmWS31a`Go~Kn{MnVwc2x(b)kVDCze}_;U!4h=YdsXcY{@LPxC@-g@IvvfI+q zd+csSEQsJ8zK9x1L%7UJjC2tRW5|*)$w;L=R8E72h1qn3`K&SAVbVdD;EN&i7B-Xb zMg#Ncwvj|-^47lSiw4@ABwh5m8~~Ssc)@}4{(ir-QyT_e9!YojG&t}${^4Qfe^2l$ zA~8_}iYdQ4Qe}%RX3iT!1*4nSF{*CB+Tm#gDiwN*C-6DJJJs=f z?sgMOo4(X^Tp_`zy6S3_DrdFXuAe2uppmWKL+?`K|xapy2&G`-j(W ztIUu2t2-SXgRRy^0-*X49BNk1!j%^&L&9d{_ZMkRPfOi;^+~A6I)3>671M`Uh5p?M z{@;g)YA`lp<%idvUh`9m{r%>J8eKlT*-X4ZG7iz1IhE7kWr1FtR^G1txZ{Seo7{;E zM#UglL#tchtG3C?TG=0^2YACMY7idBrCBK_$gEpBU&{0?WI6csIo^Wu>HkC3TSm3n zHT%PDp``_iYq27Q;#S-W1Swi*ad!<4MMH}QhvHs>LveR^NpT6mC3qpYzPZo;J%t*gruVpkd3kwnPNt?wMc6_i&Pgc6G zl_!|_^w8@hEL0%bhpZtTZYh4xa{u1uMVnHLp+~lk0$wt%vCWC-F{d%_B%1k7D2W+L z1?n;970PINV+MEW$7S2brPG+jjN$C_;r}fN)XIqdP_WI?c+8#{wTx! zfvF@gj8kcsIHH61eYYs4wt5Id{O^l`trs@>hCI9K%n&Tj>Rxx5GKT&rI`wx#8tz{y z>f=V(%UK;fTj5g+Uy*ALhXc)zicCCH6>j3J6)F5tU2R+-7WCKehU2Q4JeqD(k9205 z5**}YD2hj2nsV3ePfj!+^;4Eyz3ftU!4uZUwXR(?D}2P75X`I9 zd#yC`;GqHfTQh93ps`M`y>uYFk?B=7)m(a zRtZ0Y)n67wouip;GBKNdKQ=qg;r?36x8yUTan+gqNNso)K!F;_en-QQ&dDWVm8zz-Pd17ESO%8aH zqZV`30GgJ!DH0kCGdHC|ga+Qq8s%qcmZ2IrgWuZtV>C56`{d`rt&T-P6;1|sgr(VEw)?ToY=#P}x--tZ8x+?vccFK4lybIQ z_XjJdFq&1iH^GY+7?oBlv5JCmAUnkidF=hJqqPi za~{GN`qnZgm{Y5I%y{S<4G`L}IFO5#`|i1{Qm*15;OvTcm#=^@2Dq&_rY4iRH=F?V zm)kKWE-T@3;3U}p;e*bd}q@af($UVm2+2Un=C*A_cyUaB+UB zSg3wmbo@=1Rp}-)4O~$oyn83W9Ks}lcP^XAJRS_Rdm-@tZLK|J*!WNP&oNw8JY*v> z0ZO=Xr&Pa{BU4KwX)SU^liak}h|2M0w6q&Brb7K{$WE3FeV@C)ImFLHBFeXo^&IC8 zG17k+T<4G00}n~^qpBS!_OYzxTwrH8cchxN1E2K#O%mFRg5Msh^)7i-N9kB~bzW_L z7~bMhfjf(;z`ULvwXUiAZY!>ITXozR&DU7b++d)zo_Dzv459o_|7%h~@{0FdczoH7 z$OEX2(qo-@8>)+mwaprD<&bX7m_Cm;zU$MiO5FbUVkup3w4gC6W!+XJ7@>=2!U~2* zDv|2$jDaz9U@3`1o;5NG4rO@9l3ns#;c6folTd(`_VBgSY z6st6Ggpti5mc$Ix6jRjPCWcbIJ_G-nwqoq(Nw|JfmMDqVUiF?<=H^VNpZf zvgL5AeGm3Ao=IDcRf`v*wfS#^s*&c_ zWtf$#_u1!%N1Dq!Iy;Q>i)e=K2PMx2E)j z#aR?zXaF|PqGazgVCT{r5owo_eWp(g9=}n3PfTC4Q+^YP&rA+D&%p9lqB~uZ&EuC` z>1fiRs5+CA!d&PUbKI6wB#=oQ52g7ynYTD7xjx5H(c{8G41UxdSELD)}Vi1y}^BGJBLCA$|K39zczE88#$f6=Uu|l zR=SXPlib!GG+`RAiI3cAEpz-RGO0$gPnKjuzugP9RE@}<#qZ5zmNrI@-djA`SqCOWL;-M}QXi8e9&QF5ul*cs(4S86%RBBIQipNGu)OG1 z>+zr~vYgWoE_2J&Imq-b^}200_JC@bPh>B7yayjq!Y3Y}e^ujLWe8_$gs{!d5? zV;0jRzfP2lwG1@sp6afy z`oApGn4W-)7y8?MF7R=KZ)^^7_8OTL`{5X>bdUiFSJ?WT#+}lr7X=uhM)3)28;s^V zP3K+xVU{mH{NeSjs;=>V6nNRATCZa;8iS4^$GU`oQB> z9kDg010cO-WHFj)r#;1It!wwrb1B_2;tRoUTfET-zAjfB zs5PzDvR?DP^(_^<+G8fYUT^I$lsgYS?m45kmW=P%n6IgTC-GW&n}K3B`$1YniU%4b zlV3N1%kZoJ#$PtyO1llyEZp$}-`V`vC0`vse9p{3m)3hLu|G}dyi6{lR;=la>RDv@ zTGD`S5EUnbQ2*e8EMFW9oTwa4$IeTk#^VP1ncLexD_XL}Uu|I)*x0`*>Qtme{&o57 zUGLhV4BX;L!bw=8$nak#F<;v5c4x@|toJ^?z<`Q!l z#c+X)5IJNz)FkwtiKDWQ)H5Z)&O|}<=`@ypFPjz? z%YqO0a0aA|g#3ou-iG_pV2>Qii1pOhLs@n0jhAKP+B*YWx6Zdv?fRN%zFnb%I5+2$ zmAe+kv~OLQ2$`@7j>@C(*lTBS-}2@ThGH9c-@(Wr^*!40GRicFbb(~|Y%gF5#vzd- zG_C)<6gP2KnOXfTl)o*i!{kF#Doyo?>+Yx?&tljDSdDwO`t#2C@HB1a;ljBq3!DDzgW3kyA{{Xe7w{H-D07&wxL4T{ir_kJD&%*^?Q61M3`_4s zS=JV>W?Q9xzr7#YX-|{O8K^QsC(w76?C6wC8F5CL#-#JqMB#2fV9K~*Kpg6z+!P$QIEOsi}Dim0El0M$1_ zFDNDcTI&9l#eGzxG^K3zbJ;A46qKV`maFOb%h2)Hg!L~?N64)8qk-KAF0En{hx%}Z zI?N|1A#tEuo4%C4k zMb@*7mOKB=2|GTX7j?e>SiC}SRVSC04kUYX5V~{j62bmo$2{7RD;pJ}$H|}kJjs!d zDxbtML8!-{3hn)~sBRf~+}sJYrR~fEz}YX0>1XY_qw8V&yG<@8hB$6e?xf|pGfEFl z+BS9}o$(469IiHbMx0ig2H-6<$|TPx2QBc^4lYzm4%I(76L*UrrqOHy<5Z3ZvJ&^m zSQPjY?<8*Esg2*KkS&Pdx9xuq1TT*l?se?#D0V1&dB+9lptpEBhv_UQlqu19x9D#L zVCPHxXavq?|CVt}Vp}+7+v6HNn&-#HQu=80HqDE)X`Yx08`Afk?)eH6wD#lh6jMFq&@7%Cc7V{j|g45Y%8LK^&Mlb9q9Tu+!RDrlk!Js ztdkvpU&fmqm^s4jJ#Kventy3J24f@wYZLYMahg?%@9@AyuT-BZ_Rbl$hP zHhCqQ0Nhrt_k@x#loEE;?K1wv46uS^<~ND#%XHrRoK&!bc0qAP5?%8Iaw<%A?iyW& zVxI)N2<*t>*fQT~g8wO*%kk?Qyat`W3Gz3;Fs|v+z+h^24Y_tYZx}?UX{b-0rS+(z zB;h2J+|2^>HNzyVLD`G?d{0o5&gO@;CZkR&i(pNiUj(+yVm$$2Sv>h-efck72UkRY zy@Z75qxIn*j2g*_@twOYCaso}n_{F>jXP^x?ZUC#v4E87E&lH<^hKljvZR&eMXJ}o z)cbljiBR?LM}Ha>p%cLjuVD|A`U~Zo>|Q91ALh!~B7LKcfUXZ>AqAcM0K!lyR=dKM-`mc>)R;N(iy+=;!}66XqsRpj5|I{7FQ(Ra6aZ{mjhBb5*GbKWv%rYqzm+&^Rs-)hf~ow zoB$8Cm)i9}Gg1~olxJBL#DVDB1ZN^^Jgy5`8zGbrShaevZ3SB_PdLNX@mX6kiTf_8 zTSc>8fkB$B?2DHS{JC7`@Y8BoT@*L;{En0_r6B6|$;jDh?McP&@ff9X)M%GmtF#C0 zGfQHnxiwz0q0<|Vj=ydPVq77|kBDT?zd1B(A}f!~S-#%5oj(#;lTZ>$G5_6?dQJI# zhZ{R#Yv*o{9WW85>7k9aJE`z~8_}5VsKXuB{Cbl<2ag&I8x^~mdGW%1vqbmLK^_ri z+lzqAAGY?(1N!yj$(J;1ew*I-ZNQmruUGUz!DIO5MB9OPY>qY(m{DmFh@5P1${4QI zL*Ek6%7r331kL5dNahYSu)o(l|1rIxlpc&WQ)||cm)h4N&=`i$`Jj@h40m|LVb%~j z?p)Vp`UVC6vsB&*KJtn&W&8!LaXQ+RvdliGQqluR9?puKh`zn;v9u7V>F~0Y|0%7P z_u@%go4skfV3{97(;_`7P4$MU*5APK?w~8*vunZ$<)M+CPL(Og932~z0(F@oWTm}1 z8MI?tO5eY)>FT`Z_5>~m3RArw5coTG{P41Mru&q5gj?_r?svro=YQt|!JliC?|rCm zTGdsMOfJRr?7FG+#FNCsY9w(=+kuLJR?Mlgl?^G+b5b^k6h57yE62Ftj%FWX}FT?oH8@4f`O3RT3v|i@`5YD|qrt4i&?| zdt{e7dr&E`IUE7>U5jgyMt_0xe7i|0?oMmBm{ksTV zUC=|@2x=et|t=%qa< z9oUWdDYER0{y%@-I&@r^>bp*)UiJImzodD*tXQ*qyncy8N!AxmJi>)qirL*0|85sN zdBW~==0zPc?Duy<>aB4}LGWpYj>#(>2F;>^UvKlnB!o|z#6oQtA!x$*^EgxQ-99pz zo?M*=VGjJdY|1oxFClWplszyLfhac>kI}DT7ih#{ z))ta{_47CH958yCd1l;a2)?go>H@T|5Xj$epdFsnDRo5Un16c~F<4>zPAM#vSUnB{ z^?fnnbO+D+XQbWSzdR7_)|gP#Kme8;OY72UX$zTqrdjp!_;5oaf%6_-gCo;ewnp4K zh1XC`Tw_nCCv*DV{3tZ$2hp=0qgDFs8y@l7Ek`p`+c$Pv6+t^*ZnFQTOUa35xSk~{ zqR0wpJ6#7VR^xdh?gZHxRruw~uYke;v^O^p!feubFir}y5`o$QW>{TZslEWz?KyYc3w{9E_;!0S>EbO zGH1X1P@uw(8mjKot$|J}#MU!jGN9*Ay-ZCS1W@7+DVa)JlQE+M`3})+@WlK_x8hP; z=e~f*kJ(mmaoN0&#rm)YAQ10n|yPMbE*eHel^yyTgLsH z->OEvQo&c6l>86dobo=;ITV;7AYfNVQ84B9~X) zlSAVH<=x@qJpmFr0u$9gQOo$VDVCxABhbyq?HJM54|S2a&oxdocKYKD$`OSfyhtMXEP{i0&VEF zKE^qjm4|O28%ihN5U|4K&oMR}=N~Z|AKu2*hkQ>ttQTwce7fKR$h^K{gn`pXa^di2 zTbpTb#*o%YJZBmnL#=g!o4QweV?*8gLw;llY^;%r&37s#;uL)>r;jq_j58P2csI7jTPzQQcbK+1Y0)3A+T>6f95vKA{+g@e;IKNvBq~% zPNWmwahdGlJXD~V@W4x&pPi3dfHJr!+AI2f#3tw!hLFC?Q{1zf2<_DyV?C;?goj&;G#Q+bDvFd1klEI~0NpQvuyJr! zl`C3FX}mAfosj3r#@?1B7z2z?=fwp69otZ}I!!FQkkBgU-Iumet?Stvy?t&CUiP;< zXiGa(W#6upUhO&@+E5HoH>YxZVG=|kK{L~a-LrVvr<=FkhYAVs;t`|)DE2}tD^}i4`q{R7Ur+Bz`7~SU(FHX8B73Nf(Mw28SjSv%7+VJMYqrLLyMqyk1nO4)043R)ro(@fhpCTp7>>jif{k8T+I;C zI4k7HKKvbJyF8&CRE77s*~@gsg>Y&^t?OpmnRH_-RW5?D*G+lZ7cj_G5!PAKQdrHi zb?x$pyZK^rFc1{b$s=^yDUj@o03-JJlWsQWt=$Ur9XCLT*CW8G*FW zUN!z>$%0Q6ZdU?AZwyCpKyASe_9KeClMShuw^gGTJ_-r-8TvYL0>Q&H!B_jn)1UEb zYV;#%RK&?%{=(|vi1e3SaMa4v@tA%$IWD`avuQ*KV+5hQo00dq#wlY3T06pkX(YxW z4KaGx#>ulu>w5!{&HCCB$Y4xHmB!liGp3)S>?mS24TkIhx1iv6l%~+LLVF1u$J>4X zPObJ6ypUwJzUus*zxTn_WdEu*UP3%YUpOt>M%X{cAVZ(^+FZFJc3(cI;a~GD*~Rww z!%$#{-MfP=C*#KJC7Pzd-sO{d1Nb6?LXR&v?0Ou65lVjLl~=mH<@4JhZfbiu_70{! z9$0=_(n7ncrE3ZVIXxwwSAhlfJ7V0*ya68$!=QXLztU?Gv%j!&ewp?MT;}-s1N)Pm zM82unJG9tery@*Ol**seHQzLSBBavOKPvvTqA`{maa>lS^kkTKk6ba*2ky2fUc{mG zjk-DVmmhnU^OL1dc9@?ZeTyx-9$F61!+kj_qQ^udxffVf{qa9Eff7H}g7`u6 zv=@@I;{~7;yv41E(el2w$|L`!_7#e2her9%A>3#u5&wLf(g*S@`)QmI=`V9Dk>cP~ z|C5;l5WkJrrq?jdwSw}=$f%W?Za*1{Qk~^#%USOrg!u>+F$!JrIx#2`NSps=4M`9A z&t(~e-BGTCg8%AOPt4g1dh=+Yau_Qde3-h6$!4=PY( zX7fJADB2dG|5Z!JkIVb($Ik87c229Ev?!n1|H7^d{$}=}F0gZt)GS4C$`l@XX^ASg zF(5&^$<&!wC0S+(*JP^W9~?sF#`YI+xF+T_Br=cm+FAz{bqmx1S`j}cZ@XrY&0gUK zAHM>iEFR=9eTo^HoA>O)EB0m1Rs-EYyiWx)1tM0{RK*wE8*UdJq^n{LGr-Z~t{V`$ z#wAt4vhH5eWGj^nRpQRnBmbXw&#J@w_#qxQg5TNv#P=`t=nNQ49-cMlwpVeXyP`GY zkh~jQsFxWB5xJrDTGreGsoXQXER@B8z$NO@N!-HQ_`ot2ce5+$aCFyeV($p6O9a9LkJNWv#4;n7c!o^Z|P%(Y3 z6GHeat}N{nbw(ny4@f$~_PVgK;aIGJpIWh;^{fQ|Q5I|OKYVn_?!j(DcMvxEIXTgE z8O3yb#|GbC6PSUTLHWCpNK-}#22I+W0BEfIc;vJ=_fP!w<`#I7g=2P6>}`(G?gLa< zj(l*C5z@kmsO-r0dbN3d_PnKa;x6p1L7~h`Mw{woQqnesa~ZP5=~>#iw?%BG(+mG^Xn-y`%7hZ^sP!G?d-L9zk$B8P?jZm3-YfmTQtv}b-Cxq) zT({)K=GI$?9;W?OX8Mgf0W)}WNqt}RlauWPkghu8t}5LH7-A>Sh)`A0RFt0?(pek1 z`q9r53HSz|^DgSV-D`v>E!+?N)9CmrF5pDkGvzlY)l0a&L1LN(q2z3(?%RHNsqFCy zb2rQKX;=o^vzpX4-|hZX$+TMbnjPf~RS6FT&ODBOny+x~vI079efebASGyNp`-0)e zSpXQiYfLR;6a)t!E}=T-28#Bup81$(`&t0KO`m?* zRcUb}&jrMtU=<}NN|}Gr@TJYU(TCmIuB0QMi>Pj-=-qj`(T|nJeOV=yNHdS}XHY%2 z6}o>H6ACE9^(%4P^MWZg4|Q5NnN}QUuXu?zXSMdV=?8;h5i5xu0lA`Oc6Ivi{eUwr zKcW_})y%mYkI&Q3=A$21iT5;7a%~JTiQmZ~df(|t49BtvbqpJJMm!ueU5=XKzz$lL z&G+k4&9FE$CHi(IV6*5Hzc4tn&3CE*sY}(j$^&LmN|npq2bK&(9R#!sX1gUSMc$#i zNvo17_IiD9>#)q6EvEV{($rT%VFugwNR2m;&MpImExgXqT=#W|+ZpQRH-dP$^VZvK z1ol-cw;cYkhi)=6mcjii=C6&-(sd5GExvS^9=KRG@Te!uB2k)0^-4(Z_mJb_xeD9q22 z#DC>C!ly#*FN{MwdPwNC{fL^H{uA5TVA1M6hH8m3Pt2Bj%MG*2)^Z(yo7SRm?xF{j z?hk3Y6HX&|sfnD80^|tw1BrQLH+_URVIq(#}FR0Ud;lN`GY6jrbdm`Ss z1xmT@Vw-GMGjG}2uTlOdAMYju!JAmqD1mdnh~iz$2ZTlk%7XIH5v2`mV(Xn$@A|Ly z<9g)}?iU?fxr_E#2rM&kG4gi~)GsZ<^`{Avb@W?`_EVE%%Lym?#8DEF^Lz%8c#3qR z$DkOoc;Cs9ux6G~bJ)0neinamcZeOJX`hbRbw$I5;YKAy2FC^8Alqmu1hkU|r>wk> ztg_L2^Kw?@@@ut|ycx^16Z$LOi0T{XPCusSq{@KyMivTF81~17`-tdQD=g~lnCcIf z1a>{6sf)C(^o$+G$X3=N8g}e3T%Lv3CJyUfEPjjS5ev1-GqUvCdHY5621PX7Etps# z4+Rn$F!xKzjZkG>XB&lei4Vx8Z%4a)K>g1x`BPSoD8cuXtW;@~KcSt`=`-xtXKTuj zNI%pBZ+DQ(x1*@<-)RP~?Z;DVmuT;rnd@FTYHp_=&y7+Qj^cf1W!&D0f3X)fGt1%^ zrvcIxm)c`IO9WwE$WzZ|b*%3xDTvA+VOSYQVlgZrC_D5$i0AmM-$}Ojo|y=DSQ=_7 zOozX9G{@uuac&%wSxx%%ytQSz=S!@hPB{}&yChz=5xEwvxyy3yc}KAB;(l!o>=ONc zyWXVTzjYp|OG0}HdqQ>>{rsen(SgaxS=mq`k;b%ft;T|9uFSEp77l1PzSP*TIhHpv z_SkUz=>{7b@Q!!+x}k17a0kl2ZFM)O+n{O|7n)StY=M~}j{-svcC=seI)FZ+EpY7A zt@DWAMc}250}tBD)R>|^%xa1TD-$i&QN^D+utXS1JRG<5Fo);X&SX}&%9!t`3<@)d zWwjZBuH>ZSzLhmwz-|vy&OpJEJgIy1^F!Kh2mXeW!XpJ9#@kXdQ~UMvx7|3%{yhSg z3gCWmbZdPr{^UhAuhX~)=Xa|N4_9Ke151N-*WamyZ(g6K*av1jj^bmOiIchNB>j;k z4l9pV(p2m@wF?LD3=XW{=?G`%Nsy&Z!?mv68xRgBB)i-#;UjyziyGGf`I}Ey4Sz>s84zr%i<0N_c)*2`Xu{%57fVZUqF3?g9C}YUU`WIXdl@7OTbo zaXn6BBA)DZ*BKC^J#ph()hw@7L`3CFQs1i3oZR4ZJ9Tkiea?4dkgLN_&sDaEHB0aP z?VZxZVJ3ZF<6b*K-%GQN=pA#idqice-C9lJC%u-Yl@u^ssoQrJ+XKIK%~l{@3tt>2 z_Z5cu(C-1vE}VA2IQ8Il?K@gtFj?Sad$UjgxAz@X2;&~rC`n1l>Z55pHEdnI)-v<; zMOnMX)BU@#sJ+C6s~V|lTEFm-na77SEzK=TAtvIP2QqYco=)bYt!Q?;C`sn!?7T`+ zE~cB>SSrslsOeAE&(pPPwRRr{VS@8dhF`V<1!+_Z;)I#lrh>jE)JvwaRlS$CpL$3O zzwnEjj!&<3WT;xxuV%>>2J&RHwf)NWJk)9(1$Xq1C0}U0`xx?Yizg<66dAFbJn}eC z+zMMrBr_ge^@{(Ha;78D8Q+rU+ym5?VsjME{$#j|JgQ!0dp~_Pg^tA1HI5xtCm>&~*Nr0kd!7!KIyh7qvlZ*$9hX~+@F+Wr19TLPn4VCV} zj2^iVyIjIB1uGO;Yb?J2)zy=u0hBnm-L`=4J4(_O ziz&PvwW?_LKWKw4+f|h4p3ms+XZYzJAD<+(T$bGImFm{n9+o$>vxLDJPz`NNE2zQ8 zI+8V9f27fROZ$Dg)83|yY!0E+OWGhj)Q9;10dp{N#7D8){xYro;(+YS#D17xPlh zd~jGM9XVH*aeHfYi?fX@G$0PAQQp1VE_;U>PL?SFXomOYEkK&Lx^eP6glyY`yn*%| z6+fNb<*fo+qNY%3rIn{%7jT@I>Ry`{zXg#p{5f1w=$R(X5;Qx8W^KI*R!(lS=vyy9itxONQ?a|0G@Vm=s0Y&pe<_5T znYMRS{X-y z=+bzBkLI$}v~8i;-?QZa7%vKI@Aqv;Chh|UPQeIiaxO%LQs=>|#Rad!Ef1%#U5auRu%%Ksmqpjaxo zT=lNvzIUSj4|FAUEDS9kIM5&><~&@7@3zA*_KAwhEM+xYJ#h(IG2C5YA9QkE)?_o% zS!{f`m}4sYY?_&c6yOY$Drv3i-(Ud1@V@*Ky!55*nufmpya8({EP!AuBn*+sBON1% zNY?sZk4P-^S2c$X;u>NVmmYDjVM?~#x^HLrUR|wzQO%UQRFe4<`j#dpG9s{ba+}~! zd~g^AFx@?>o34w{4a1{&o=MV^VDt%MppUb9qAP-$Ch9YYXt0^-n`FRr+y9mRrPjt&SC4uZXFTE zdzI7R#|qlD@+TwZWHZTylgz*Sp9S>K#{wwf*{>gc=k6bI!@&gxA}I4x?xde(aAm1x z=$S)MCHNnCmdp%nJ7&4KuNs%}KgM&6 z*pbG5rSpPE9%JFUU?SSOkxQ{1DRbg55R^z6T=__G>{9#_>(%=OK4l)~#(09pzr?tW;boE#fkptXUM zwv}tk4DmkXpI85H3kBg-*L+rZs=IMFX)E^;Hw{J>8Gbklw>y0N5iLNkT!Su5I0QaB zP~G!&Rc-5PX0IAYR<#&sdyn!CkP zWMb-^Qi+u9S2}&8m`FGOF1f|>pFH3rud;b?(1Z0~T9{Uqry)URJ;wmGX{;d8i_;}6H z^2|rLEi7DJyRk9IyDZ@GZ-xI0Eq!O9@hrVnFU0>X4Q{t>V`6F{uQwz6`(VhOX|Y>5 zC)EQT>GwRVQoX*vv0#)qNR*lUXRX;{|3JKrL;Xc-OPEkvA8QG3!!N4l%I=K0A~>RJ z|Kc=(T0zu&4pgQcMO%jJRlR`fZe6jta4*+nc^ajVQU4T3<@BNb-gIm})kLEMP0R)# z8O@n{_0{695(Ybrv(j*iT-UuRZ}~-?+OjNME$ktW;{`e_PuVN%K|j-nkvRrNt6eC7 z%}sjTIpqN>1Z#^&cCnuAJ%CakQktOK)k^jQJ3Utc1_|qYEU9pOU_Q(}s6o#e7EFA#NlH}x-&}(ClayFy-v5SDb5;P4Sg0Vl$ntUdE(bi~qvcpFU7i+FKK=Dv4bkHj z46+}h^Z?H zUe>asMz>qs>+UtZTF5ytrN%HTZl`aW?>>N<_@s533O$dulKDWd<~_8YF!AWXjszBf zK>BKfip<&Rm9Eu9)zeQ0ktUQ9i=r^8)4=YB$OKwrMc^CIuL5e3n5yxO0_)e55?&<7 zS3i!sVUI@*8waVbOT(G}IhsU5PP~aR#xn=#2UN|Pml5w@^<;nS_Q;}S)C2GC4yqq~ zk#Trhl#xo~lM0dy0R<%L0Aj>)X~u*<6=Zu~c`wdk!$(u+WV|E%p*+09!z2?x3z8G1 zMmz^v!xFGV(a!2Kk{+34umcm|_u;E*k5h@AYk-@pku!?sUwwMk^tTlPmv7~J*IC)! zAKMRQ@@nGoB~8yeGAQnLeWf=2scPu~@;v>Ki$izD0z$k!Pe3P{DaF@YmFXOlS4cq6nJ@Ckr#MgEE8!g?GX;RE zvQ}`|;&qVFk9iS$JrTglk-noY0HfLs$0BiiQZiIFQdg_GE7M&mto#8PzFk&!Yq4mW zcr%AO$ai@}<}9e@I5FGgc0isIRn)L*ijfPFi7}~W9uI-n#5!3`N&?bZ8rjXEViAEv zq+vKgvfm2PV(-<4vp5@ZvAr4Xr^l>#wOMC`4DFsC?!+bd0`jFIU64g9@gOA-Ks*l0(;?UlU zAB8oi^?&WqR-QlGJ?q0~gecO8*xbBV7xdbuT)qpj`-?oj5@%!QppS0wG$H=qTr4I3 zJ`s~z+?#-+)UL=ak-DZx@RuMu=3bZ7P3H%l1H3RSdOki<4qMU<05@H_BH(!GMs!gr z#A!cc{a`Gy`4!xDkU<91E$)a!g!%uM)U=(5+rja)y=i&J`?_T5dl5K#D#i6OM6^7 zhr)Hyi3gZ{x0?aU2Cx z4RDhrYo54DT=-pu2`Z1{8Im%R#*Q%Rh1NRO+)44wi0@f>hF!FtDVxC8w1e()Nmk)GXsqOBBn*7rD( z6gIMWOm83h5Q997!n-gUU2W*JsB|3ki@if!s@nNzjuDBFywmFaG#Q#y==88oz_HSR z)p0c?5u_kv;tmwcR{P&tIVhI>mqzJY6R*|DQff^~(cG80wjDL)okA;L{=!gY8jOkU zfh3)axK~jKaFp)1psCInU)yD<7VLVmK$Z%%pLp8>^=cKj1K?84C~xS9ksP`tz1G@I zB;LeY<955z;<9X3{n7U`1Wx2ZA>F$WC-MVG_ zNzA4I5J)EUIYXL=zA#AfMN(8^AkX<~%ngs@WXK;=b^|y1w)9-;i-VLGeEKUM(8A5| zrFJxbl1t+J`a1FE`z4A~6LKs~drI#f7|trqyoRRs4Dyf+y6xPm0ent;d(y--eM7;i zDvBb)*BFF>9XkAX`8ie%zYRz&+`q(!`pAO-^8QX&%RWP%YmGGhR!|kS{m%(6#xq*J z(_FW#M0ea~I(99%Vu@n?UrMJ}Mb*-~Tf~&2KGbR`!$IJWngG$fGvrXiyYcY7v)l~p zRi%@!``?+}aJz=Rb)<{UZ!P5@mk8hlM`rw?4L-A0H7S}P0O*g;8dlnI_ADT>V3lOz z7S>c)VKv7K)m&PjYku!&%+TBcURGVPV~qzNu`mI?4TIX>At%Ms3GQUvj1Hitv*XM4 z%@-uhLF``#ZOv}KdKHeo*G8wQHIsK3Otx?00k{!fwC~T*$Qm#R#1RaYy&A#y?E}6e z@@N|qrW&&8=$xU|3;0`*@Gfg4BUZR=3YERC=_c~O0e*t^dy&*XHGWPKC+Z=8C;2UV zC6y)4@J;XY-A%`|zBV&c{>_c~uXw1uQ~%f!C1NCqSt}syj}g1$3;)BMys6*v`@j^v zxQsv@+X6FOMHcxYK`2ifCmgYGNJa-5r|R+&APgU(hoo2BUhB@57kBgj6@)Em zMk@i1Hy6x*-PG?s`ts;${z*U1_*O*NGeFnq%N(#iE`N;Q?9|twqKOYTeY?Nhxc%55 z2cTiAFe-2bumeT*2u?`Gf8diqF@|ot$LN+kW)<41he*A|m8vtzy{KdBxlUT;v>BSu zENGkNARslc=W$_goh7g@=(3VeWp)muvrO$ zws=))?P*u*K`lpocr0nVA6q7;4+XHsI=j_jFdc7V3fZ#&DZcf>!Z!%?(0aKzPKA)+ z9+7eDX&dwX<-VTlcHvidWc%dOk1v@@c>FpH(KA;Kl{${U73a zOpl5rCtMKKZKtw&E@}V#Cy{-_8eX+^}$m0!hv$*_eY^LT@FxpdE7E>)>&?Iw&xWi(*&HbGlgi=b!F) zx^g}1*tvitB@h0;$|bHqqhhW18tdw`i!_IYxB}QJO*bjMi+BmLAjuaz+tIn-v5+p$ zAK6bz-C)}r`$ZZWcIKv02&|ihxNcb>Cwg#R1D1Uf%*O3njvy^%?szOzPVL zkG?Ayak{!(`Tjy4RsME%!P~d_f66Vhwh$WH-^3A&D=sek?$0kK(n(&vz3P9?=}uwL z(#|lonx)a%s47>gMr~kG7%Ii|zqg}71mwxva3`cIr?G|m>lp=^SUo&+ z{8c@P<5kM#Sui5g#b+};IT2m#Ji;w`mtJZZaAsHqlFIAg4E+D7ddsjVzb|T-kPt+q zks3mzK}EWx1(fcT?xA}aKxrfe0TB=s5b5ra?xA5Ax`wVHhJNnss|oWh+1nDc{NSNq%mOJTUys#M+R+kt}Xm_w0!O365M(B#NFn%eE|+Mlv<`TBAF9 z*N7|Y;;l7Me7>?YH9W)v=GEB>;?kmL_3U;G5#&8h^T*ZeUv=#Ig* zYqEB{yLqfxwmi=ggc)PRBgUtxssv!qlRyqhqF}XWS4Snf$}2Y=q^;M8rAU{6!QFCK z^NM8tnSZUcOteKVyuC$HbveY6?FFK5u4f^1srg+6b7RYp`~OIUp3sNwo1Xo%1*5N; zJbE98z$4v=#u zg3hy)DsTIN-c!|fmximTXjVWhtnH$%?dj;7rWShS+&?H5iXQu;Ph(g;(`dg=oLuNT7e<;_NW}ZKNE@G+t*z)S zKja1OMEwIX96htXZ@Risg6G|t(|qIej8Oju#xt)b`BMhJt5B2R8XU&2Ou58Y78gv_ zS?(t4|JY8#9bPn}h}X+4y&iv_+^mmE2$O;FF3>16kM5bSXUV<&SSE^i=RAOI? zL+L@ol9zOP)URz3V=0n_?^H)5V_K@SgU8Bi<#{?t?Dk2j8_TMj!!|RsmjxOj*7-Qn zX3^whJhy)lrN(M~14vS*+ldPlT!FCPV|J!Orf){!&boC{?ldctiRj&Tp%1-D$rY_5 z+ktI(PICEtCYK5;{Q7QuK{{rkJd5#8q)=bP%qvhcJ*gyyHT;aXO+3i@)6NfeGdg8^ z16u-y$tpUM>WFsR?dju1CDvORdkz2o+H3FwDMl^Tw^SL4(|xtzw7f_azqazF;N^mYx2;O}=0iOB)9+f55&HpHk?oumI|$4#o|Z zpDayF_HjIgz>RprL|L8Xq@&LNg(Uthao$ZlrxE|YE2~{QZBBhtgHEb*DL{}uBNJhf zCHw9o14b}A5`d8&`PfPah!dP%^LGdHR}ZPS4vF+8M@s60FTTAsb3G(47x|)>7MaC8 zQ4rXqa5L!jY`8l0O7!~g+d7{^)2k%CUvOX%jw!pyOTGNx+(ywtNDv*o()fr}NtI@K+zt7M~FC*&XF+ zcM#y@d@!Nu$VgT-G;aD8RGt!YP4ske+SFz7^G#>A(-7aXx?Tt5MP0@(iDz7mdtCk} zm&;EqVl~c6dGckh!PA#&S=2#+=(%$;M9ch>)-F`@=|ugGxnF}J?X2k%etUN}1!OS8 zEXJ`E`V^od&b<=;JF0-+3iTTeRIWB|B(cifNqsNxEx*YOp*?fMQhF7M14UPJ)E3`j zkGX#SK2t#DoOxraE7WO=fois%rL)+)T>1nx7)Zu#@uQcwf8yJMREk}7J)E~SOPtZ8 zp8i-hNOb`bU7K{G=y6_bG4z&$a&@C4h%cbYb>7=^9zNpMcfbW^Qka~Ye%JF9&D z=YS&1J;}o@%9}KLD{4~Lt)B0fE#i2}r5dSSz#77zEv>JMor>FbaU#&*%A_LaQ#ax2 z2M^?Hib0>5XGDT`f95bZ64@W+*O_jFt&1!Hc(xiAy4;vudNNTWQ2zTjwQabQk0h&8 z@v@TAYC{H{kgpNIihCxwwFy4#3}|PsmQM1HG5I}OXGAwHiIlSIyG@u)sg79hwa}m2 z>%x}8Xc_SUiKp6TbbIh&!L+Ed@_2J*`%u!ApICR4mq3>M=WOM*txVM_ z{|L}ZugP5e{VA{cqf?JJkF=Y$Cz+XbeLhA$el)GanOiV$7H3QQq(Cp3C#=guTU3$6Dq70qyCw z*$LdEs`D=J0gpqr6drACcO z{U_|M*jXQg+CG4RP?UT+urKZD(273|dbY$+8y*Y8V zysu`K>e}B#MrK-KL&e(fKSIu%ne2=vF59TxOzP&@;>pP%7Sf(X7%%t7k53j- z8>}1IKevZzF2h|;2kFw9$ls6cloH*aZ|6zYY}G)WUJ2GSPewCy>Wp^t-KyV<2Er`y4~oJy3HGAOCXeOI>MnjG$j zwnBQ$j6gf7V^zIIU(eFE@@8D2mE9o&|UkU$8du zoWObWQ^t!_2#g;v8NXY0slULBa*nSiHJ_0x?2A8j=zo=k3v7W#-#uhrPI=AU*u^v5 zVv>Nr`cYooT}ozrlWa^#aPIfaA9VOk8|j(a%xIjY+?a}|CFQ>l?z1>e`>Z}0$ZyZ! zX4PmhxC|i?p*1)tUAxZgW%do9WbE3aBIt_QW@KI_zG&#cc)UG1DPD~ilfB8fYBYl< zm-fVe+&O5wcBu(y*!Xx?j~Y;sH9g8rv1ez3(+FC9=eml;xG``YCOe(57cLv0>6>57#x0Ii z=c;ON9DnG>s26H$6v^4iQA`%;0DG0RnZp9L$Yv4W=8Ffz<8o?xR(Ck31?PgJKcDT* z1Z_cS%B83buv~*9!Dk(t8QGEGK=ATK@j1jZx~9i{pO8o<%)VbZrE-@JG(a|%DfzeZ zMPFyD2a`9_Z+;V89TZdr|3gsQpVrhvMC9+TU^niP7psa{8u5y;W>#=GHB-NLW_q zN)@4SQ*&rljEe7hmpz?PJw{&enfK?|`dHybAd?~iXejH_&gOe+E&^IKY`Wq)g*YVyee90WU;BF2Iev4R%W0;6#P zlry>&wTleDEft{$PlzGN2$kk{wM}p26#For$fD|BEa~lfto2#KW?)=runWVvf;--Z z6=wfQ=b*ut4_N_&aTDYhmGEin8EZPsw(g-`P{NKqjSeG7 zs*>gq%-Q^KZ;9zw58yRHCZ^TSU}@1*Uxw&k661XJm5}m`l~bnVX|@_2yjVx@>!QVH|_;pk$qe(VT9j#g}sP%c-Z@1}S4jg9au7BU$UhegAp zCo>`N#8SV(c_>Ls%yh<=@2!$~IL|Ixlo0gzv6N9;ch*?>wc8^#_ERKF52PI=nHxC> z7AEuWE=+w8JynN}KTL}NQaQ)4@P}^6%IXe5mV_HAA(vzQbvq&b3dE8=9>5M^DHO)W zCY=L43bq+%!U`pZ@;`OM!ewwUaz~tsbm=vkb472higkDSUW_iV<#UzRS;n6E{%ood zYcy(b+>`PmXeVY_iMK5|N8rPe95 z(m0V@4846c@}8+u@EOR9czc@6Z^{G1Kc~)m!5mW-rcw;atXQemQ|Z>ezI@o(IwVN~ zPNYpebWbH8{o;JbzE8`g8=NvrbbGnwi12yY6AUulXDrD!roI@iXpwwSU7=2NA*T6Z znN?SLz2UP4@Mpe#+j_GA4UO7z+}%yf$Y`HwJEy3>&FU3L{nG`7IuX;fALx=1H~T(1 z3^?Mrne%CFVEKVa#I^4yj%%&!IoFsqBL;{71Dqvxc_4G+ zQ@Cm){RwXK0Hr%S#uN{Ud#w`B4iy*qR;|&(jz)A-Lhmz1I5Nsouaf;aMKcTr!v~2>tIq@K ztTYts0lqDCg+WiId+!%fQ~SZdgbFK5(=ELpy<|gan2Q96GxtLL)tB4SBbTL}+9DCn zS2t(TFU|yX$)!b|(Xtj^EEF6W_1`+n?JHzndS6>1QesA-d}is()D{SqlCFoWE+Sz@kB^w#jh=|brj|l3H8fMPwOxf}_Uu|Zh;_U&kL*vHG)EhdUB_2mnPeES8 zCA+m9t_yRA$}mEzRE{72D#z;A7)_d^fZNQ`tKRs_&TUu7`w)`(_Q;qHJ zNT7H+73nx68{O0gDpEnbSBx*G?B?R;6)H>bWL90_%Gja=nYNzDLDDfX%1{{q9B9%3!FMmFXdO)!HH|P-n&orYYoWbQ9{L0u*(n4!Vkr!vMri_Zzi>m z-9lKk3gv!l2RF}m;8sP(5+?nqRrbIddq(n_(#?2 z%PXVvrUWn!knOCw1=sF`BjL7}wI<=XHR~i8Z-vV*@)5BA%7h5i1~YYAdXALdzuvI*h+bJ251pMmmAnkPV56 z0mQjZ=!KX_Tthm?cL^U%44CwPjIf{r59eOe1_)}Rc>6bGa-qKP8e^;Ey_YiyX zCc8v>#xEmCHVwq!XU**o@5Ryz^hyhF`qDJ_jAY~vqwGGJD(|tP1}G_hA)oGRY#l%( zjG6s=+k#8#iGX+s)oJmvz#N%k0Zxrj`0?`|T7mDvZJ|b4BEe$WVxeW?*H}P>JmOLr z{4KbX1}uQ9o|tqeX3kSD)72=`4Vk94C~=_UJGJ2Sc~8SmX$gMcSlR4nKXa{Ir|utS2Mo_uJ%p`MD=! zfwQckv=O_be<5+l$B56$?sF5HRAYm7mhGqF=>vyQq*Hte$ylC+@6*-GX}K)owKklg zt1I06d_y4G3s+6j17Ept*dzQu@TEXf5^||ab^%=5L7o?#=!L`k$K0hQ0r&;D;U8-k znEBL;?N$aH19?xm1(B|H zk1+}6u`2nhxT)G{>LQ&A$7URi`s-0b^s3gi8`1-|mO~Y9ZtsUPWk@t(N%T&@%n*}5 zQIoo8>V+UbQHem7R3N2Vi!b@i0t&;l#)Y_bdna|xrDc-_GRP%naRu*|=jJYxmak=b z8;Gowy>62*8)I%9D%)%Bw{1%kg z;MOrpY0dK(pAz=o8&A_}?!Ba4_o7(TevX+5=>r+4+u0X%hN=06vr$@YvEWx{1g}Uz zi`_G1gy)1ZOTXf)6G$3VY&I7bGD3MUp|zHloh=>k)8xbDf279-2}hVhRmi>9{ZI7R zOf%NfX{Cg)w;PE@mPlc#!=K!e&o`+4jPHjhWMg=!x&8BQi|gj(vdG8iD0>5oOcloY zXEj=Pqc@Iq=uu&k-B+QdPk7<) zKWt_F5=Z+F{TKvdYUmhbAdslDdhqFc3vdXT`C%seVV_rienQ=4`k=q3oX3o zXqthZ>cRZ-QfkBW+;fQO2N&&c5$~C~2jx%q?bnzv&1U%qI+onI_b%?r=%W}-i+vYa zYQfTzvW~G1tQ{LD5A_s$w_>092E~8J?6;kRIV4Cc>-~ zpw&{>oDb<%?uwru=O-ip`8{_bESmG@fpVu-qCS(YF2B57Z2HosOD^u;RY)q<6gFo*3%bjr*fi*jR4lY2Gt%Z^;5Js9(VfCYx*WtJO z16dRMw21118}$ar5-&glbcrg+r<@VL{MQvHtO8BxUY9V~cL$?15NM6pgxVgfAbBYT zhjTr@_Nm`|?SOYEh$oB`% zY%K6CT8!~m0S+44u3I*revI4mM@Ky1gd6O4ZVuTBQ9N2k@nI>OgPX(Vd}9<}5fsXi zc)wR=1kTQ9^%?X~OK7FjXDJ?ZnJ={B(srPOZXCSG)o@(7S$*|&MyOF#&b=mFj37|G z>;0iBZDnV-Yh!UH&E6O)2N9midXypmp{?&CVHuI-YPOgA3u2pteR-B_v82et^&?*4 z^pX)u)Fz-212!9Q5=)^zBH)($AXKbfXcB)-PyUP0Uti^B*o6bY@J}Igo@-O!^g{A- zOH0^y=Mk_H__F_@+#i-7K<1XLBT*hX0MfQ}2^B{&J3)b)G3a)BpZ|M#-W&MeJuU$9V^Ay@OGW5+@TblPMok6JExuL`Sb_k7?b&8Xh{ktX>KFv(B09~XU3Nb9C-bxM7~)h2Ju70BYc zF&mtaHASTNRO>QdL*5}AmfN7M2C^|4VDvAo}H)~6-~JUlc4PD6Ks7$Q~46X%H6^L9xzQ{r}6)q z56&rqJHSxUF}{PV`B6EpaK79R3GwJ{ZJ4r|v%s<@PiCr6g^>H(1|zw&hz2!spI1%J zt$Zb2=;J0S(o5L6lAwv1)4i!T`?|VDZ^!363`ewIf>FsqyVTo$JEGHe+KzUwcOusy zw8Q`A8=+1DiC8qlxOaPZy+;!+z5=E}a4?-z5J@6U0>8E`gBZ8I-a{6e3IlNdk5zW9 zucBhPlQUF#6xF@w>jcMd(sliWS;oB?4@W&STo$!O6@$w)8xeTxs4IDAWR``8iqD6` zNnydcmy$Q5mgot@;on=BL_F|XO7LsluCK5rJ|Y*Dxyst6nHCg0%InQ)55#-Cnz?lA zj7~p#I#lUIIoXC}7m*-QamN@@I>=B>fCFE+nSs_lI0_U@sA=M&Zk#nm2N&y9f}XKM}0 zMl1aLfL|GYp86wPQyxi3y9)q@7E;k^{rHI!ZM3!v`tk1^Yh_zEkD)6XC-~-N<-m|u ztMW~Dn}BSnqs_C%__NcqYU-3YIT$HHM3iN0zYRT#Y|VFXOX=n+R%opaa_mhf5rm1F z_(EM2Z^gaEs>T{U>M;2~j-yQc_|XAm6T|RKv~}ZKkwz>tcZoB#x4?^ebJ!*HdIs7U z6Bwa?J;O1W?$O_Q8|2!G$eh`U@<|Uzj&6QLaO z)p^}g)Ys><(#o+(&WojzD59PPlaW$(5LyB~bnm?L?)H&OkoGi{Rd(a<;(R7KcxoO+ z1?9sl*f8#J;A?O(dJ8ExPS~mZiZyK3WY!Ju+p%q#NeW0(dE?{%QVz+Q%##&yY5rOK z;t8T?3g6L@7CppsvAUj)vJ>3Nx+D4bxP5*+>`!49c*p*nmIwlKEbTcN`18^P93}KY zW-h>g>KjZ?*}EWhWc+d{5iz)H=0+G4?t(?bwGrWHI;0|3S7**Z(xTYZWOA*;KcR1E z)C*elr@GrGGHbtuf&T8Hsq=fkr3=2jeEo-_n#QZyb(0$m-Q%DW_9G~3fPjG3*tFQi z>4Wvpg;)hpR~cxIl*9AtxBcMhI}#K0-ZSoi_4hER>zG5POJi$)CC-5>Dwvb3Q8wNs zf`3k|zJs%Z7P1%56+-*lcc!r|K19X~akj(2vi9~|m!M^EqtR*ZUB|M5fvVFqACht( zx9Q0&MM|;Ep1+eN6N6Kpt?;#T9#d*3D-^wCyK(usFYrhW2w|NiW~vO(91+|Zzq-8E zkfC*n<8t$!drx=${^{+JrLZ%dBLEU!?@)kO{(H&jRcbV)f0}k4E<&a5rYWwEob?Vm zkHfkTbPtq1cH?6x?;g|+83|RCHD>T!+-;^V>S2tOZ&c(pHHgFMjM^S7WP-KA9Syww z_kX=Am=-m&jXW*j$zoOHXUm!)nXeHos+!8<^N(rvzS>Viml7u}}%4ahDbj z7B$f@zgT~uJ2P`!A$HI$aZS8}1e7yJYfC53jV1ZR$Ox%M69@GEg<|{pUzpQ&0|I2W;@)!mjXTFl{Ra;l2Xo9u%WIljZyBP5xUGH9Uou z9lGJLo}11K16#DyYYA;OGpR}h&z{EcxpY!%b?uYf2ZAlv@>tpYUu7n!W++#jxs`UI ztk17)&Ug8@J=g+^Ehl#=CLIL2UIwN8$2-{O0*FkX4Ea^}2nKGZP^6-)@M#X4WtIyc zzVJdhyx9(E&|ZRw45W;>G^omtX!-d0)e@!g8zm7wM6mjv}F_cN>ZdY^i&dt9R4=r zB~dh=R83p3u;=Gng+cGLKeu6jVSm2z7V+B`v*mN0D#qnPx#u~?SR;9|^d3(Kv17+~ zsq#?o7Nw|L95~L8WCnC1iRg!Kk5sP1?pw~mgw`mQHVlV5OeYt@!hKIsr6q2g#-W7^%>L~+;JQE{FN2gE zql;mKk~0^ZoI1AV9FfjZyBfNsI=aY6peBtxokmWS)U1SX%ogP#Pv;sGxwTc+xuiF0*6;SGH{THY;3_` zb@;p9yZ5;?^5|jM(nquUb6h&%z{dgk&o#=l*}osYc#V-qzFEMgQKWl(JrhKEf71f$ zDh!LMcYx95vMb|oQt+EG%xTn$nu%C%kQ|uQpTtF;Hf=bCskh~k2eCBq{YnHRw@R&V zVt_7vpK#xwmGZI7z)Us7b#O7)?208XqxQ)$WEQXgHUZ64mc0cfUtCIZ)=+3WLRr3W z)_poI_;qR50>L~Q(Q$2LHa}8}Fzer}+EH`lp?aDgU_}VohxgdDm;U z+Sqi^yST0NuJ&7|-RZDATWg3)_i#yp&letEngt%42*UG~s)?s-O)LZwHyoZzTB-Q^ zl>38EDV{kSeGitz^6$j2$M~Slyo^Jf?(5cmu2?cq_l6HU9mCM{wYvcne{W845#r5M zlwHkZ1w|v=orScrh&!VO?PD~K{@xFLFQsL$&wXp|>`Y%&1o+T2{4)O4M`-BJnx4{% z=c?b^BF(N>>Ge%bdiV6{E8-F|Jd_Rrr(K?1qL*&T)~#PP;ui6S&&bK5 zBqIwVv;HVVMjm_t+7va@x`*%oR|JADHC&c&FQh)V-M132gezus9l-713DQPB^@b|_ z5CCRpdzqPkbF>PMgWB#zZ|(}Di1P%_hu?XRJB9PYar9;YKb7TpaG8~<7K0LFHZh#g z-gv`FV&(2@)z6~AY$rFd@IC$6gjW!1%#s{!DnZyiexSLFM8A%cJYpZtiybfc*uknT zfUR!7A^H{SQTmG;U7XG1&O_+wbw)hdoqfx71`Rl7@3g=Asnn0bS$XL+wTC@SZ+z9n zCzN|rUO_NIombKYqnV3K$}Fud=`}q2ok#uwi-c5m;CIZX>(zVA@V80QN6bMZv=C6r z8$V~s3d3aTL^)J!V5d?uFhdJ&&q&5%zAvT5Xms8gj&{z3p}ZcGNIWH8W2r<;*kPo; zS7p{DxIgIOTS=AlXHhlQ@5)M7(q>L+pv8jw*_Bi{x?=$Z!_BrWxJN4JFyd%^Y%MLr zj!F5{E<4~5A>|+Ax`&P}rhOFb*o>4@`f}B8 zMQP)6Fldv_>Q~IPQ@iG1V(wX|LW;gk{r;^LmmY|?=8_6b@QJp3~?-{qJ5wL zZfj|JL7?R~wCx$@X+8B}-a^m&wJo3K6#pnEzmAZz!ZUw;xq^stA;#Q-Fwc0unc;52 zIf~!*)hW|0V%7@SL0Zb@hiKs}u|Ueho4zw&82yF0O>q=lmuwV4VWv`xRU+{1Ow?OV zZ6%H^`|tgwZBVQtG3aj!s_BW&Bmjz+s=n{Rz|s>77q`9mX3wPSnAW~Zma<{oNprCn{!6q z`+ac1yS`;N-g|uXw~nXzIs+De`1kJcU6B^3reP-e+3K9t44#S+`fw&Wagk~%fcaKh zGnlxeG5xw(B=8sc^t51kZ7pUu&-_1~ulvIs%t=lP;5tADxddU{ueJ8R6cEYcie%J& zd!d}#(Ag{qE&J~0f0-<1!YIMCaO!rQY(66^cle9nBzZ{Xd?Fu55Jb}AqKH{<;XvTS zApSY%NN;8(zc;JnU|Z?6gMf;pdtpwE!Y}gkcWNt>9XK~d7lG8EwrlCVj4Xu`O?fjb zo}aSo=`iA__|*lY-xMFIt+BlY*f_z*FGx&o zT+)Vcuv(uX>V<{ePYLZ8LRA$LJ9c_-0T(EB$bVQ<<#CCCVGRw<6ajQ?I^Za;fY{<< zQV!e%DZM;|d*0MP|1h-~v_~;F&6T!U2ZgX<7s05;iK{Wxb_)4aj<2fE#@8HO&-_=lm|Q zpe0qY4>J?BzD)!nuvTx1*V;Vgh$#?KFxDvVmui^O_H>lc^_ zHDM)>5j|ucV|Ml?* zu~|IX|G=mF{Lgpp9ArK)`S|3HvLLh;Iy<|K2xuqm1RNuUdb6ySDy4jwET?{yZYgTM zIS&9cuiUgXG;^C-35U75c)SYQ?}~g;-xAq2e2SH85qeqdA1eRDY#hlDBP)9;v373*FUPmcQ$Hp39O$Irn{@+`lFLrbFbkZ!)$)Iy?&}*=RO^D zeT<}?m2-X8-1JA4B#y6h2}~;-aY2FW_BZQzl2KYJDzjoDBRq(Q!6U1g+tbwFra12= zyo8o7T+mnm!}+06AiUn0a*TfZyG70G@`1XcX4DQ;+SmH(Wip>7K{IubNm_59h=loK z+!9vU>nZ1@!dmVzieLgmkh<$9b_p41=;*HRSJ7mEHyV$a1q-D*N5P)jGu3x;1TCCt zaY#X~v%URO=(y(XzvO}y=8}oa3xuM(^RMAbtTD-{XX|&wI@@F)U@Q)6a#z5*7IZ@O z>dL3~(!L0u1D6zKoB}|0(-9{BdPe|u^N(C-5+g1VI9IK8UEafjUVW)s)&k6?KwZ)F z^6?tP)e@#-@2-!=6)XQ`Dpy7}g`)PD z_|3B)!Z_c`+T%Eznv@&Z7&!uq6w>G&ms@;-hz=X?Q2GmYmWN&FH=Zw}p_he%kw^<00+f zdq3G*uZ`VmGrp7{NsP!RK8h2oAJ?dD^q&7+^?M3UwrV8*=?4rUzf!P;%`VC`={_6V zz>&)p3u4ckxQd#WkxQKJEYh!XR?!u)zD~4e3tT8(65Crpkh4K-2Cy{*;rybgl{d`} za1KJF?E!G$LFn@j78sw{5$&Zrtt48q9aqgPeI%nwE%zB<^$(YS_&k5%kwIWw_MTjI zO!WTxr?ov->>lTz^0v86H5eCDiw%26;8o8LF{&HG(LKX)(=`**FY{@M-U-p7TZ|66 zq*@LXx+;2Zd}CHcUgp*)6q)w!$q|C?2U^f6ZH<(+R8$o%-UMz<7sZ!nnRlpU2IJ4L zllB@bNqe&t*loe!c})tRnXai{u-8kNm$zK~Wh=VDadA%K8A0In+PK#&SN{Y?*iRK-hjf$Nn4tL|-rs z+N5n9$NqhP$r)+$+sqXHnEg%e%Pw#~vCT|;!UvG{n;^2B8=2U<$UAkxalzz_8 zvQ;45;nxwD5cFZ&b)MLZv0_V`Vx{Bn!efR%O-n2;N}obD#tM%3?rvm-ySv-0;sUfGSgz*m&-U>h?yqRfrq zhnTC|=pR;M8|hU#xS;CkdM9_RUANC>SL?RNSpf6lSrm2bpSdb>EaMm(t(mqY5ObXk zkN0Uglof8O|0u!#C6|9}Ld|Fv{p9NmMKBfRJNEdb5tdM&!AH?DO9M!8gRDUl)Yfi6 zO!{72@PHBbPe$YTkHl{bilkOQGQ&_B`OO(eM~~rOF(jy9#>TxZ zw{@T+21$g~nOzvnLziCw{h|1$NA8gv(#-xYJFn&B4mSoz9LdK#6!@|3J`UMTLclzu zb)|RAS6NXHzc-gh23=LamVaJIg_~%R+39kPlEb1fVh?z!tN81Yg}3M+$)lIR9QcEO z^Fw;%z6w}+?ljQd(I=p>x!%Xj3zmo^8QZsR5FLPrS6vhF4NQp zErkg!T5H0dU`(m2G1wX*jIQGV&N0cAXshkEJipLh9m^hPqeb_4f$8-d^voONyVDTV zKB5{hPSjS5W2)Nw)#J5-qc~#Icv=QOf+pMN0CPK1kobW)uROqp zrcUyN8j7?OvM4s~^sNFm^GJw(z4aTQjb+Htb7m@0@BRB-p-48 z@QW`of$EJUFf0p_qjd2R4y<6V>WfdJ@pGK(P_3a^S%>3%H`14@G34ob{;xjzRDpSJ zAlaI5OLeplWG|-v;4d3s-1$(cK@qtHX6ofR4UgRVwBf(0LP57#B*xi7P13R!k)2>C ze~q&#T&FNip!ZH~xfYq#D|L5tR)2p4KpnN*+*(~pmQ)6sH+iJy-tJi0jYy`Oc-T@n zJj!j-F-7L;Ye_`o&(VOaFi=Q>?PG-3dT6#3rZpHBo`GAx2#H%aw3wU#8V)FX(pP}%GaY_Mp zD#lf@3xT?3*YOB4_#^6fR8Im+oEBy+#A*T|FG-d!sg&2v)YVJ0kJdf-R&T=OCmqTE z3(q+jXPu@AVCyNbZjH;n>7qIot6PlMt%=@N;8}+3zF|^K5;Qk$q_xmrG(Fk-k((=j zTKxL4xcupgjHl1z;{mu5tWUDRUvOOJm%QFc23i@VX{3Y&!_%EdIf1uFmUC zo08LwiPgm7))RTQclIifU2uHyYb_vX^75jO7k9(h-QE4It+0Fh@2+@KIn`xo2`-KT zy2txt0QftaHPQ|P>`6}sCbQ@ZaTjEC=^h|aB~E4Ik$q8@_LkB}5^Tlnf9`!?z}#rI zAZl-6SN%r^kWW))LvEhl+$e&(`ny^8GU*CjRS6XT$HZV;4vXHQ*uWjV2YydbT4a#~ z>ay#-5zoa@r|lQ;lUOGqU1^^TT*5!P zVQz$jJ6g}&`79PSpL^=LjojG{7DSXKWU=NFTG)P0{i9y*_~bJGIjnW%89VTjG@=ESS_kq=o-f!7#%F5q>1G#sF-qXE&6C3V|81?xon;v!wViSAKq`U9gRgW^p+Mrd?!dl4(tC4I1{qA zmG**;*`XJfLb)0x7R?$k@-f-mcxPCiv+)US%r989wedh7g=hpw@KEye{L+&Qqc3%U zW}1(;q0e-ru~)XQ_1e6pgO81HS2{fhe~ zDF^wT7;M5fScny8@Rm8srf%NRvdwk9n%Hnq=kF2vq%Y6?hh%av~Sw&&GleW;Rc@AHL?&xw(cxaima*v~EX3 zetYRzastuy&SG%)YTQkm0=M0tYAX_Ejr0?1JleUC=w#=`CUKG$5c$?gzd&o>0Oxb& z1^O`XfYCD}w%jHvm+efpAGY!$D*bGRwxJiDO9fbQ%G(C7u2yzGEyR0D`=YTn z#kF2=FAH>U#1zr?KqG|ts(his2AfSatCQ@S_@{>LsmQ-aJ2FP!ap<$a3;wZ=fWyE? zLC8xYfHo~97#=0KyxBCpYz&Ba&`nJIidMXM*aH8TG`q=q zYcaTY^>iAYqYNhcc2_FCAdaDTzW!R=GyO!}o7}(b^C-mHBLi>nN2#@;I0Fzb%eAcy

$1+ayd&hWpc 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 diff --git a/docs/assets/images/favicon.ico b/docs/assets/images/favicon.ico deleted file mode 100644 index 051f8f773d993f2dc2a86d638a1d04ef98ad75a6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15086 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 V{jT;ceqF=9FY}s0D3p}+{{STuo_+uT diff --git a/docs/assets/images/just-the-docs.png b/docs/assets/images/just-the-docs.png deleted file mode 100644 index 81c33065f2794814cbe1a53791d8bc4bfbb91cb1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 20992 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 z %e4Th^)+U*Xm9<_F_r%u5Z{!kJ+k>*(cDoOCo>sadqR}XcE!-Q?0Gd+XD1SH5% zQx_FvaGi48=&RSb?++IWSJwels3$Y0K}C{gbJY;Id2KfF?l?IMVHo&p9z0T#^Gno2 z?zSQ7=ZmXeDyBz-H(&cLT0F)#x4?cv4Il(1d17GEFhA4sG%R^FP+*I>lV&sqS1g z+y_4IpM!liS%8GnlFJBupa6i)msB@!GLAZ}iSyro?=RbADvCk(t5RxhhG=(-9ahzp zvwXcoWsf-~%+sa+^qNx;;2q%b4Tw`Wp2ORYe1R>WBBdFIS-M~#6DnR}vY?|-z{ zvIstDX7|FF$w^5S$8D|6Yk>O1!G2`y|A#l`>|f$Zi3K1frQepx{mWwk#L`c5ik*LX zuOtniePQ2qqW=;D#{jPt*)KeW`Ii`A`3evT=q{yXf7|cisx;@=2(ldWjau*7J=?L3?s#2zew2my7(j!yhSNCybal1F%tI-< zM9B6%FnCXRfB3B>OYcV6ik|7&LcURhGiIE*iB?l3i-C?kAS>dMw+c0)nSHy-z$cTZ#ViYB38@QCPr?f0!E>P z>S>fMrbO%;dn-NCH`*!?Ue5D_a|YsDNnd&RTTiWpG5M*D-?=rYHvuSzi{X@04A z5?U1yu>M_P*;t!>Me_TY(1wGCIZxdz}GJ~X~bHXOZ;;0j-jRW+b!yWj-vx^gLJzYdcP^t=gRIR=fY`_G(zHRNGOWINy2GiiYlLUwDJTvmlL)IjV z2)WiAFkg#6z>X$=Cxo~+cElCY8CtcC2n(Et^GDiSqf>;`Vy1O2H8!tp)(Vm5cLVDe zw+{1|qlP>GPl2-bdTWDE=MHl(<0uZR-FLV5FQ1l{{nYYk1y2fOf@Xii=gVtm=Od6^nZh@jC3?n>Xv^_$$nV9`sV zi&sdyf$nt?&tYEA2fqQAHTlB^<^pdfD-+_BFDzbFmOySj#G1tM>8(Igo-v99O01ztMxqO>N$}`Nz&( z!VCk#r6{D%-2pzBixYs+3+BJQz5L@fIDGY<+@oDT!e8CtjNj=F*3}*c)1sfrt&sn7 zAw0kDc;xWiAHuQVAh6hgx;ie#pxQ&QugT!6hq^8vq|jKrtIgH7<=^9e)}&L1G?ZT* z`90gdFje0pGTHZ{^z~eOk^A{YK;w58ukSUvJc{F4luwsn0LAkCBQaXXt9~HAUWuOO z@JdZBK{%I(G+Dg%h0Gt*ioU2cgp<{q$#_!Bm661AWiF`gh}}i6t2c$cm!R-CUegis zxhnzxpjq>gbCMJd_M>oX z@2W|~ikBxv`T5a#WLZVPXqT%gZb@Z$p$RStqjXf6RO=S?fx#ZI5y?@s_jq36e*C`k z7!7pe!d+3GnO>i1LaV;}m5~I?tH0aR`b!&6%)T=n$fWvv0^sl@IhxAicjON2AP&kxuv0CJ_0X(UriT6iZ_dgX)MLvu7{lYGOFS{^K?z$Ut-C6?g#&A zKk(l<4xWFzI~_^#}iV8g5_&vqT3MkF1;+>@5pv(Z%zqinF=Y z`KQ@&j!p<`fi)$4HkDSa*vSg;UH>Sxs(&B3#!p&xDXGBuQn|%gg;EUr)Fn*tyh$B( zNp!uoZy`X?S%^F2oI%A$qy`@u6`f>b{UaNFJkMZDPPrP>c&a{rD={|vdxm}Dgz+-= z2yb+7acJjG$d0;V_}%l?N#C;KeZ0b2kSCZkuTk%O!8SsoC^(_{%WG>2S2*n+eR{cW zm4kUBL)6k{n3foR+DBe<6BKE*WtY=&Cx5yhca}>6z{yPB@iO7Hh&tGf0lnIv6NoYJ z)i_Aiw}ioID#QmU(_OFk4F$ombn-C)T~;LVC1ClJZ^UKvr?sT$+8-e<2tmFZze*YGGMup}hohvB_zp)pmhg>mcC{$M9x(~FNe#Z_?#NDADl zX++a#Jn&UI*RY<6h(gu+9}Zw+RB5DfW3)l0k}q<%?tx4w_WSr z5@v{}nsXsRUv)bC_TwmJ>cz&n=hurfd7>a*k3WefQ{=9Pc3bh}_dL5x#vWywHUXhC zZ*F{YzTtHSB*1P?n{*B_t=T)>K4eR|%_M-%Z9^qMw?7dd4fc)L4i5#fB7T@txW;{i zW}P?K`u)@0BsHF|I3|=&JKhUoX9M(PEYDFyGulvE7ZiWl`*`_C{XK;>J|2=2zh5xjyM#TgYYmG&{*rUY%O_@q2NKT) z6$m;}2?l_4^_KKAC{A7GoxWpUpAYbIM+NOBN#+XYn`tXg4bL#)XWPDCF%a;ar%Rqc zj5=(v-jax)rjLDD#?`)F+h(4|XIa~_)$}-b@^?S=-5cmRVXOHOVYb7GN+9P(X+^m{ zTT0>y+8#GeG2b+{FZ#KOWb;P2-$l^G&(#%Go|74aGud`&&*y>PH)wf+Iw;gNVUt3E zCoJ7ug*cyjgwrC_REnB7vK;vCes?I%bR0NKarrB=`n%5h%(#sETe|u6mPF;UEYOLr z!uiB}!Co&r1NO=&(_t^Mbv7f@_JIt@DybgjZ^?&M>N9E9PHo5G7Xj36w}I>UOmiWh zv4Q-+?L;c9gx$`zyXkwBToL7D0W;t6)D(aEvYa2lGJcZi(=u7ndpCUXzf1DhKw2Ja zWP#ksze{#qV98$VI!*GQ_y3S>|KIzECf#YGZv;No6yO#HP~q| zx-%0C5MWx{1*l^33KgaF99+eQyK37*0mJha4RtTUWbb!#lk)c4R03=j39Q8Lh6qD7 zhxU}d`KCN0Z@v@4$Bvy9UWd7*?H5pA!%utm4tqKl=h}x(AwKk@b>vpJ$`P2nxIp@G z7_spCo|%R`tAvwjJdA1t2E1bcb;S?r3d*0QmGE5-g56? zuyXc_^z?TjnOkv7z=UZ`^G2T`R!d@?m^a&b%^Jwz8YlTALWG<#B>8Qg-d%=?wt*xU z=Zc6W%&ap9&_Os28Wx7+qq)USE%v6!yZ`qfz?VrunY7a^;jbc#NY>Qsa zpFxF_c)*JTJT4AzSUf}05NMZd+4E(d5Dt(ScqyrB_^5xmI3UpFwUk6c8GSVG*3kF| zV!d)B&+ca8Q8xy`9uld%)v!U1_ocAwpPf)M|5HoFl(Hu*<1&l{+sW{OFUDsx@Hv}g zsCb=TPv3QEi}vFE30cLRWimw-dDsO4eJ3yTX3U`B^eJ&^&d2_N?uu{3237P)^t-s_|I zr_tBz`?!N|l_&1MgLeE@fK#=$kry>TXdTTB6@sEpxH}PJh`=`r`a?f4P{4cbAee9jdiZ*NHu*SW{LLlvuE#Fw$Pq>~#qIG%yMWf*s>#C(L< zKN#iO->CrCoO9VM;=hx<3HoCKB<;SKXoo_CJt8^?SZTg=g-%~OyQ$=<_b_a|ez{n4 z$;OxUGy8x^MVTU+v+iOd(zo(O6`fh+bnsKmF8v$IVqDHzZn<`&vC$twGhZy~joN@; zCdW3eAf10Co`)Un=r?}rg%?vWs>mCOWVjSX$Ggs_7`CBAxt_(c8;{`bL@QPr)p$z3 z{!o#|gJ4oI5V_Gc;x*4tI8fthCePH<$NajnoVEOp`PUJ3;9mL4p+;;L3G|kQoxP_6 zJyFY!4UBNSxX_4Teiu4i^xgY3T+F$rjIXDh`e&vcY4h+zl5UR6C3fdCY{1I!MfZl?$dC#U2W5x7op9DxnYWapT(Z=lPm@r{d(NHqLTJO=3}uinc-~t7W?K7 zK1Gb**?Z{QwHLoY3z{x4tN>OmDRK|Jc#uXL3UUBmQ3k(X3VWeqh7uBG(NKYH@^#k{ z593hXp-(|HSv-fjp_!qgK!widUdTsIqQTpsE2;|57jZnYu1DAC2AN4^im|&}xPqYk zV8~+X&wL@BcdJH+ZnqB-!0x-hX3I$`$!BnqDO( zJDk{fceXl2>1AHe>$|ibw;d~?RBO>Yl`IOIk{{?6);(_JqY9;rcniB>mb~40uKZLC zYf)0;S8&sMMxCFox4~^i+oPX|>@6wG;zpJDMBSjE1oG7z46L8G-jP*(!gtxxGn!zX zmDQWEQkQyC6=#-%y4>R#h#8O`Z1l9Q5;h_XqL*C8K|@&&@X}Y6IpKf*oz)pQlnc`j z@VwCLV;GC?b~}?MaeTKJ1FMo}Iqw~m17ZI`tZDcp-VJJY_+}P-X@?6{iQ9ZF6T9u0 z9|h8sY>K!#d$h-2VE;)p3$hR7R>~9Qe>DqNV=cqN=$Drwy6xO9OrUN%Xxa7rQLJ|i zQ|tuDm7gtczD}nJpPL40BuJ{bawB@q&}ns+t|^ z%rl0|&+`ryKM+Yb-|vh_-DLIWL}Os0zi&Q8TipLncnm+(dStj!qFPmsA6U^Maa>Lj zxLY2~)nD|*hf$?whm#T@?G!MVPwL2>qTQdOQ9VMTWAAEnwup%70z@7Ur$q(%rhbkhtbF5!DOO@N%tV5*WYsuL8g6uy|7 z{h%}B17s-4xS2&bB^;0N+06Kq^gt=t?SMR+1t3>sZR$S}hM=JX=@4P)dKc7qRzVlC zK-d}r#3wpx4vW%x2`K*jY${%sqtg?>-5wv`!U>8{|1rTJ2K0!_F$riiJi)<}w#!J^ z@Y6VmgM&i>!Y5c2*w}XE0RpY(*El#x$S#CD^5MJbx*dlfIq)k{FCM5b3_z>S_8{`5 z;i(Rul*el84UDxdh#FK|bYky(p!U=NUQC4d8A^y$8_MQbcIMQg3i>R20fX6;>er!a z{s;bu3D`FCy_$XoG<#wp-SLIoM@iM-Dl6Rt`~aYV+du)b*5#iFLI%*@ujU#lRM%>> z<+*;Wmn8*aF-;T@heDJ^?PolSt6N0P{lC}TqG6W>#uPB=%>HKoKPUC2x_qo}Yzu|rtSIMn_6N2#{ zg5a~quO7s=Ib&ytLZOyVRM`fv^&=nJ$cPI#0i8XWPNNyQLo>)o=g^XJ`fO)9^GjK1 z&%@6x0g=#fo=$`mBPK=A&2fWLCN_~>+|KN2WJT!7gTcQlBB_s<_DhYYRqHp(&wuh? zS`(T)6?hnE7l5d4PhSfk8SV1gTo7md+v+qKd2#3L|4ZeWXEmDPQNkb!A+onK=L!L? zvcPc$nAXAMcp5AeI&6_<= zyHp9AY5F&qv&~=xzToaZ`lmb%prfQWSOB;Ap*A`#_ojq zEqf5TVh~je1sFS{0qV^V7EBcMQHX<>Q>w%>&R3G*j;l3pYn!9w_isP6lmhq1;0zcB zlNPm=&f@~NZs2?G6gC8L+odvHz|)c)`uxq{SJ~w{a*TkF0LA|Z58-nx6qJoyIgr(WgXXP9Y;sMwc*QKF zdLz0jXny&nm-M{r-h%{}fE^gf+QAHrQ@z@2ibLd-g2V4MDsMu zt<&#a9`oqc(^J!Mc7J`P2i$xF1}~wbydnylT3+Es+HuE;Q*um1;QmC;UC_g&5UZhr zJ|||~21ThCH#vv*e0Apsz>imN7qEezsiwubmK~QXc#u#};-^Ulb)*iuLv52ti6wm7 zxA*EKeQ!H94gl#f757((ro+az!{KLoZl_V&C(vBVhoD7=>K?zr3Ml9a=_X!yTw^on zx3mQxWPH;-v^RpbRCm@!M{~l5Xgjda;PX;T7SCsh3hbAfK$2_V$UYxcR`3Dh0@=%Grxs+1_>@>$y;l{@gr^mT2V;V=i}*7g0t zdg%Vr;hF)r{ri%@)oFFfm4(AK`-en_NP=H+Z{vdr?ED+@fEEmjq;@2# z*AiR~(u!znC*HJ5kB!zZt)}6NF1AwJ+lmVASsMHi^*;k7iyT1z=|3qHMfpQRQzxFA zm|h6nyuqw*8g#eEn0arKR{MpB(-%bKV!~p%j%IY3Ngz6wHr8LHo*Ve)aw_Rz>G}ka z?~=_&$m5o^4LgZ6rtB&)aP+%0y{OXTCWe!PLW@ho&WoFNA9s|&!6MA`F>Tv<=zX6WrQ=`=IOo}<5!77u9 zSf-AO`a1qRqXWAEA}g;p?m9;7;QLpxMlX(}bq8PC4R}(#ht6uMOsF0K-%>*{*4;yL z0WuI)bDpBZ#anw_GO<)VB6HaQh|2f4?q}|_P8QP$bUhku&Myav<)3YJ4 z%)kezX~*S8!0tcE3pjGX8EzC2f)0m1`7r*uVr;@327(Z=d3=Ji9R%0ni0N@ZB493X8#JH zUZ)ZW63Jp0XKl!+WaQR?3S7)5l<74-Uy={(+D&`HCbz_Ij(SPi&o@fG71nHoMQL^> zM?`GSGybs3KCi!aDO*I8aj315%m zwIb5GA|rpqev`GstcZp z(3t%Z36@ep{UGB+N!fmybQq*YL^N8npt@gbx44)R*hmoZ`$?qRV!b{maMP2qh(~Zk zqP7yX=+CVpi&|I)1Y&JWQW8J~WDXBKTywKrQ@q7X2sl?@Hf^N8VUjwLG|45Ub;nLU z$akT(@ZP2w+6K0>&vN@D*xp%_jiQ7k*Rcbaa{lhP7dGiNXx4Yo7Wz&e08=}#4%mxG z!_xgARGLQM#(A2#qy9=BYx3A*VksBzAZ}!NT*VBLcp3{0(0|^FUBmV>i;X*119_r zd-8u)5Bc-*hLVN^*bwfq=CY8-*t9p78wQ`k_k-qPb z*4m#Sxxpmm%UQU!mNQ?Q>5?D~DYBisi%YWfzg5-VXP)fq?9F0w zNST_INj&|soc4FI{J+9eW|i{vYA@?=@~XWp>2&Q5IR|L(atI*MzW@nS|1NArpdf+9sV(wm8jqVKO52R`E|m-7{-5hTYHB)ml=3@& zT&hEKgVBFE{Q03}%UbUqjJ9bL0R#>dDA_djflaXm0R$o=p!JX0!09U$Ow=yMP{f76oJwU$arlwgAUEX51W@u*+7C#K3_pkGEA<>?hqZ zCf%_uO*78(jrpo9E<37ptx+=q2*h208K$_8F#SWI9|4(p$pnY3yhO5j*^1T+9X|G1c&LyA2Oy{X3#E{Z?(O+=P~|A009KT2#_#^(PCc&A}$b|kWtnseK(P;o)R3k za_PKErKAlm4&1hU=?&+cd&bmYjg}-*Pn5Df>P7&8_z7@Yf%uInJsLy-hfgc;XZdvW zV=p!47o4^F^(Tm2mu`-n^Xd|1%z3h9=pa6A`fZxi3iQjuMg#^;fHh2mMo+^ClvY4y zQI^Yji5AF3WhF^^_W9Db7QNb^e}2)k67?tLWTT(!+ST(x->BfSGN;OkL2IMe8zM#k zfl>>QFqK-E`VlCTKyV2UdBcB95~X`RFLAFV1g&LiI?~NN{q)nF(t!oRPjHPoKfUD? zqs<2-aXPismz;?-9Kj<{VFDyf6*k~>H$DQAAgz%_%!}kijZa9Dv~c+FhNqr*;)$;K z^sxLrdE;>9ozimfqnes#9~oS;Pm-q-z)0 zc|%PX*`c(|YRJW2cmK4@SN=B}rMF0Ov_UTZx=Mb3+0*8wnueOCGBdKH$hIhc5P@aO zo?9im1V6XRkCJP6O>8c+BOcrkKmY**5I_I{1Q0+V?gIZGs%`UV2FoSA00000NkvXXu0mjf2eu-h diff --git a/docs/assets/images/ref-stack.png b/docs/assets/images/ref-stack.png deleted file mode 100644 index 63fdc37d4cb40f934ac04797e351787b67e999cc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31620 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 diff --git a/docs/assets/js/just-the-docs.js b/docs/assets/js/just-the-docs.js deleted file mode 100644 index c287ec0..0000000 --- a/docs/assets/js/just-the-docs.js +++ /dev/null @@ -1,471 +0,0 @@ ---- ---- -(function (jtd, undefined) { - -// Event handling - -jtd.addEvent = function(el, type, handler) { - if (el.attachEvent) el.attachEvent('on'+type, handler); else el.addEventListener(type, handler); -} -jtd.removeEvent = function(el, type, handler) { - if (el.detachEvent) el.detachEvent('on'+type, handler); else el.removeEventListener(type, handler); -} -jtd.onReady = function(ready) { - // in case the document is already rendered - if (document.readyState!='loading') ready(); - // modern browsers - else if (document.addEventListener) document.addEventListener('DOMContentLoaded', ready); - // IE <= 8 - else document.attachEvent('onreadystatechange', function(){ - if (document.readyState=='complete') ready(); - }); -} - -// Show/hide mobile menu - -function initNav() { - jtd.addEvent(document, 'click', function(e){ - var target = e.target; - while (target && !(target.classList && target.classList.contains('nav-list-expander'))) { - target = target.parentNode; - } - if (target) { - e.preventDefault(); - target.parentNode.classList.toggle('active'); - } - }); - - const siteNav = document.getElementById('site-nav'); - const mainHeader = document.getElementById('main-header'); - const menuButton = document.getElementById('menu-button'); - - jtd.addEvent(menuButton, 'click', function(e){ - e.preventDefault(); - - if (menuButton.classList.toggle('nav-open')) { - siteNav.classList.add('nav-open'); - mainHeader.classList.add('nav-open'); - } else { - siteNav.classList.remove('nav-open'); - mainHeader.classList.remove('nav-open'); - } - }); - - {%- if site.search_enabled != false and site.search.button %} - const searchInput = document.getElementById('search-input'); - const searchButton = document.getElementById('search-button'); - - jtd.addEvent(searchButton, 'click', function(e){ - e.preventDefault(); - - mainHeader.classList.add('nav-open'); - searchInput.focus(); - }); - {%- endif %} -} - -{%- if site.search_enabled != false %} -// Site search - -function initSearch() { - var request = new XMLHttpRequest(); - request.open('GET', '{{ "assets/js/search-data.json" | absolute_url }}', true); - - request.onload = function(){ - if (request.status >= 200 && request.status < 400) { - var docs = JSON.parse(request.responseText); - - lunr.tokenizer.separator = {{ site.search.tokenizer_separator | default: site.search_tokenizer_separator | default: "/[\s\-/]+/" }} - - var index = lunr(function(){ - this.ref('id'); - this.field('title', { boost: 200 }); - this.field('content', { boost: 2 }); - {%- if site.search.rel_url != false %} - this.field('relUrl'); - {%- endif %} - this.metadataWhitelist = ['position'] - - for (var i in docs) { - this.add({ - id: i, - title: docs[i].title, - content: docs[i].content, - {%- if site.search.rel_url != false %} - relUrl: docs[i].relUrl - {%- endif %} - }); - } - }); - - searchLoaded(index, docs); - } else { - console.log('Error loading ajax request. Request status:' + request.status); - } - }; - - request.onerror = function(){ - console.log('There was a connection error'); - }; - - request.send(); -} - -function searchLoaded(index, docs) { - var index = index; - var docs = docs; - var searchInput = document.getElementById('search-input'); - var searchResults = document.getElementById('search-results'); - var mainHeader = document.getElementById('main-header'); - var currentInput; - var currentSearchIndex = 0; - - function showSearch() { - document.documentElement.classList.add('search-active'); - } - - function hideSearch() { - document.documentElement.classList.remove('search-active'); - } - - function update() { - currentSearchIndex++; - - var input = searchInput.value; - if (input === '') { - hideSearch(); - } else { - showSearch(); - // scroll search input into view, workaround for iOS Safari - window.scroll(0, -1); - setTimeout(function(){ window.scroll(0, 0); }, 0); - } - if (input === currentInput) { - return; - } - currentInput = input; - searchResults.innerHTML = ''; - if (input === '') { - return; - } - - var results = index.query(function (query) { - var tokens = lunr.tokenizer(input) - query.term(tokens, { - boost: 10 - }); - query.term(tokens, { - wildcard: lunr.Query.wildcard.TRAILING - }); - }); - - if ((results.length == 0) && (input.length > 2)) { - var tokens = lunr.tokenizer(input).filter(function(token, i) { - return token.str.length < 20; - }) - if (tokens.length > 0) { - results = index.query(function (query) { - query.term(tokens, { - editDistance: Math.round(Math.sqrt(input.length / 2 - 1)) - }); - }); - } - } - - if (results.length == 0) { - var noResultsDiv = document.createElement('div'); - noResultsDiv.classList.add('search-no-result'); - noResultsDiv.innerText = 'No results found'; - searchResults.appendChild(noResultsDiv); - - } else { - var resultsList = document.createElement('ul'); - resultsList.classList.add('search-results-list'); - searchResults.appendChild(resultsList); - - addResults(resultsList, results, 0, 10, 100, currentSearchIndex); - } - - function addResults(resultsList, results, start, batchSize, batchMillis, searchIndex) { - if (searchIndex != currentSearchIndex) { - return; - } - for (var i = start; i < (start + batchSize); i++) { - if (i == results.length) { - return; - } - addResult(resultsList, results[i]); - } - setTimeout(function() { - addResults(resultsList, results, start + batchSize, batchSize, batchMillis, searchIndex); - }, batchMillis); - } - - function addResult(resultsList, result) { - var doc = docs[result.ref]; - - var resultsListItem = document.createElement('li'); - resultsListItem.classList.add('search-results-list-item'); - resultsList.appendChild(resultsListItem); - - var resultLink = document.createElement('a'); - resultLink.classList.add('search-result'); - resultLink.setAttribute('href', doc.url); - resultsListItem.appendChild(resultLink); - - var resultTitle = document.createElement('div'); - resultTitle.classList.add('search-result-title'); - resultLink.appendChild(resultTitle); - - var resultDoc = document.createElement('div'); - resultDoc.classList.add('search-result-doc'); - resultDoc.innerHTML = ''; - resultTitle.appendChild(resultDoc); - - var resultDocTitle = document.createElement('div'); - resultDocTitle.classList.add('search-result-doc-title'); - resultDocTitle.innerHTML = doc.doc; - resultDoc.appendChild(resultDocTitle); - var resultDocOrSection = resultDocTitle; - - if (doc.doc != doc.title) { - resultDoc.classList.add('search-result-doc-parent'); - var resultSection = document.createElement('div'); - resultSection.classList.add('search-result-section'); - resultSection.innerHTML = doc.title; - resultTitle.appendChild(resultSection); - resultDocOrSection = resultSection; - } - - var metadata = result.matchData.metadata; - var titlePositions = []; - var contentPositions = []; - for (var j in metadata) { - var meta = metadata[j]; - if (meta.title) { - var positions = meta.title.position; - for (var k in positions) { - titlePositions.push(positions[k]); - } - } - if (meta.content) { - var positions = meta.content.position; - for (var k in positions) { - var position = positions[k]; - var previewStart = position[0]; - var previewEnd = position[0] + position[1]; - var ellipsesBefore = true; - var ellipsesAfter = true; - for (var k = 0; k < {{ site.search.preview_words_before | default: 5 }}; k++) { - var nextSpace = doc.content.lastIndexOf(' ', previewStart - 2); - var nextDot = doc.content.lastIndexOf('. ', previewStart - 2); - if ((nextDot >= 0) && (nextDot > nextSpace)) { - previewStart = nextDot + 1; - ellipsesBefore = false; - break; - } - if (nextSpace < 0) { - previewStart = 0; - ellipsesBefore = false; - break; - } - previewStart = nextSpace + 1; - } - for (var k = 0; k < {{ site.search.preview_words_after | default: 10 }}; k++) { - var nextSpace = doc.content.indexOf(' ', previewEnd + 1); - var nextDot = doc.content.indexOf('. ', previewEnd + 1); - if ((nextDot >= 0) && (nextDot < nextSpace)) { - previewEnd = nextDot; - ellipsesAfter = false; - break; - } - if (nextSpace < 0) { - previewEnd = doc.content.length; - ellipsesAfter = false; - break; - } - previewEnd = nextSpace; - } - contentPositions.push({ - highlight: position, - previewStart: previewStart, previewEnd: previewEnd, - ellipsesBefore: ellipsesBefore, ellipsesAfter: ellipsesAfter - }); - } - } - } - - if (titlePositions.length > 0) { - titlePositions.sort(function(p1, p2){ return p1[0] - p2[0] }); - resultDocOrSection.innerHTML = ''; - addHighlightedText(resultDocOrSection, doc.title, 0, doc.title.length, titlePositions); - } - - if (contentPositions.length > 0) { - contentPositions.sort(function(p1, p2){ return p1.highlight[0] - p2.highlight[0] }); - var contentPosition = contentPositions[0]; - var previewPosition = { - highlight: [contentPosition.highlight], - previewStart: contentPosition.previewStart, previewEnd: contentPosition.previewEnd, - ellipsesBefore: contentPosition.ellipsesBefore, ellipsesAfter: contentPosition.ellipsesAfter - }; - var previewPositions = [previewPosition]; - for (var j = 1; j < contentPositions.length; j++) { - contentPosition = contentPositions[j]; - if (previewPosition.previewEnd < contentPosition.previewStart) { - previewPosition = { - highlight: [contentPosition.highlight], - previewStart: contentPosition.previewStart, previewEnd: contentPosition.previewEnd, - ellipsesBefore: contentPosition.ellipsesBefore, ellipsesAfter: contentPosition.ellipsesAfter - } - previewPositions.push(previewPosition); - } else { - previewPosition.highlight.push(contentPosition.highlight); - previewPosition.previewEnd = contentPosition.previewEnd; - previewPosition.ellipsesAfter = contentPosition.ellipsesAfter; - } - } - - var resultPreviews = document.createElement('div'); - resultPreviews.classList.add('search-result-previews'); - resultLink.appendChild(resultPreviews); - - var content = doc.content; - for (var j = 0; j < Math.min(previewPositions.length, {{ site.search.previews | default: 3 }}); j++) { - var position = previewPositions[j]; - - var resultPreview = document.createElement('div'); - resultPreview.classList.add('search-result-preview'); - resultPreviews.appendChild(resultPreview); - - if (position.ellipsesBefore) { - resultPreview.appendChild(document.createTextNode('... ')); - } - addHighlightedText(resultPreview, content, position.previewStart, position.previewEnd, position.highlight); - if (position.ellipsesAfter) { - resultPreview.appendChild(document.createTextNode(' ...')); - } - } - } - - {%- if site.search.rel_url != false %} - var resultRelUrl = document.createElement('span'); - resultRelUrl.classList.add('search-result-rel-url'); - resultRelUrl.innerText = doc.relUrl; - resultTitle.appendChild(resultRelUrl); - {%- endif %} - } - - function addHighlightedText(parent, text, start, end, positions) { - var index = start; - for (var i in positions) { - var position = positions[i]; - var span = document.createElement('span'); - span.innerHTML = text.substring(index, position[0]); - parent.appendChild(span); - index = position[0] + position[1]; - var highlight = document.createElement('span'); - highlight.classList.add('search-result-highlight'); - highlight.innerHTML = text.substring(position[0], index); - parent.appendChild(highlight); - } - var span = document.createElement('span'); - span.innerHTML = text.substring(index, end); - parent.appendChild(span); - } - } - - jtd.addEvent(searchInput, 'focus', function(){ - setTimeout(update, 0); - }); - - jtd.addEvent(searchInput, 'keyup', function(e){ - switch (e.keyCode) { - case 27: // When esc key is pressed, hide the results and clear the field - searchInput.value = ''; - break; - case 38: // arrow up - case 40: // arrow down - case 13: // enter - e.preventDefault(); - return; - } - update(); - }); - - jtd.addEvent(searchInput, 'keydown', function(e){ - switch (e.keyCode) { - case 38: // arrow up - e.preventDefault(); - var active = document.querySelector('.search-result.active'); - if (active) { - active.classList.remove('active'); - if (active.parentElement.previousSibling) { - var previous = active.parentElement.previousSibling.querySelector('.search-result'); - previous.classList.add('active'); - } - } - return; - case 40: // arrow down - e.preventDefault(); - var active = document.querySelector('.search-result.active'); - if (active) { - if (active.parentElement.nextSibling) { - var next = active.parentElement.nextSibling.querySelector('.search-result'); - active.classList.remove('active'); - next.classList.add('active'); - } - } else { - var next = document.querySelector('.search-result'); - if (next) { - next.classList.add('active'); - } - } - return; - case 13: // enter - e.preventDefault(); - var active = document.querySelector('.search-result.active'); - if (active) { - active.click(); - } else { - var first = document.querySelector('.search-result'); - if (first) { - first.click(); - } - } - return; - } - }); - - jtd.addEvent(document, 'click', function(e){ - if (e.target != searchInput) { - hideSearch(); - } - }); -} -{%- endif %} - -// Switch theme - -jtd.getTheme = function() { - var cssFileHref = document.querySelector('[rel="stylesheet"]').getAttribute('href'); - return cssFileHref.substring(cssFileHref.lastIndexOf('-') + 1, cssFileHref.length - 4); -} - -jtd.setTheme = function(theme) { - var cssFile = document.querySelector('[rel="stylesheet"]'); - cssFile.setAttribute('href', '{{ "assets/css/just-the-docs-" | absolute_url }}' + theme + '.css'); -} - -// Document ready - -jtd.onReady(function(){ - initNav(); - {%- if site.search_enabled != false %} - initSearch(); - {%- endif %} -}); - -})(window.jtd = window.jtd || {}); - -{% include js/custom.js %} diff --git a/docs/assets/js/vendor/lunr.min.js b/docs/assets/js/vendor/lunr.min.js deleted file mode 100644 index 34b279d..0000000 --- a/docs/assets/js/vendor/lunr.min.js +++ /dev/null @@ -1,6 +0,0 @@ -/** - * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.6 - * Copyright (C) 2019 Oliver Nightingale - * @license MIT - */ -!function(){var e=function(t){var r=new e.Builder;return r.pipeline.add(e.trimmer,e.stopWordFilter,e.stemmer),r.searchPipeline.add(e.stemmer),t.call(r,r),r.build()};e.version="2.3.6",e.utils={},e.utils.warn=function(e){return function(t){e.console&&console.warn&&console.warn(t)}}(this),e.utils.asString=function(e){return void 0===e||null===e?"":e.toString()},e.utils.clone=function(e){if(null===e||void 0===e)return e;for(var t=Object.create(null),r=Object.keys(e),i=0;i0){var c=e.utils.clone(r)||{};c.position=[a,l],c.index=s.length,s.push(new e.Token(i.slice(a,o),c))}a=o+1}}return s},e.tokenizer.separator=/[\s\-]+/,e.Pipeline=function(){this._stack=[]},e.Pipeline.registeredFunctions=Object.create(null),e.Pipeline.registerFunction=function(t,r){r in this.registeredFunctions&&e.utils.warn("Overwriting existing registered function: "+r),t.label=r,e.Pipeline.registeredFunctions[t.label]=t},e.Pipeline.warnIfFunctionNotRegistered=function(t){var r=t.label&&t.label in this.registeredFunctions;r||e.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\n",t)},e.Pipeline.load=function(t){var r=new e.Pipeline;return t.forEach(function(t){var i=e.Pipeline.registeredFunctions[t];if(!i)throw new Error("Cannot load unregistered function: "+t);r.add(i)}),r},e.Pipeline.prototype.add=function(){var t=Array.prototype.slice.call(arguments);t.forEach(function(t){e.Pipeline.warnIfFunctionNotRegistered(t),this._stack.push(t)},this)},e.Pipeline.prototype.after=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");i+=1,this._stack.splice(i,0,r)},e.Pipeline.prototype.before=function(t,r){e.Pipeline.warnIfFunctionNotRegistered(r);var i=this._stack.indexOf(t);if(i==-1)throw new Error("Cannot find existingFn");this._stack.splice(i,0,r)},e.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);t!=-1&&this._stack.splice(t,1)},e.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(se&&(r=n),s!=e);)i=r-t,n=t+Math.floor(i/2),s=this.elements[2*n];return s==e?2*n:s>e?2*n:sa?l+=2:o==a&&(t+=r[u+1]*i[l+1],u+=2,l+=2);return t},e.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},e.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,a=s.str.charAt(0);a in s.node.edges?o=s.node.edges[a]:(o=new e.TokenSet,s.node.edges[a]=o),1==s.str.length&&(o["final"]=!0),n.push({node:o,editsRemaining:s.editsRemaining,str:s.str.slice(1)})}if(0!=s.editsRemaining){if("*"in s.node.edges)var u=s.node.edges["*"];else{var u=new e.TokenSet;s.node.edges["*"]=u}if(0==s.str.length&&(u["final"]=!0),n.push({node:u,editsRemaining:s.editsRemaining-1,str:s.str}),s.str.length>1&&n.push({node:s.node,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)}),1==s.str.length&&(s.node["final"]=!0),s.str.length>=1){if("*"in s.node.edges)var l=s.node.edges["*"];else{var l=new e.TokenSet;s.node.edges["*"]=l}1==s.str.length&&(l["final"]=!0),n.push({node:l,editsRemaining:s.editsRemaining-1,str:s.str.slice(1)})}if(s.str.length>1){var c,h=s.str.charAt(0),d=s.str.charAt(1);d in s.node.edges?c=s.node.edges[d]:(c=new e.TokenSet,s.node.edges[d]=c),1==s.str.length&&(c["final"]=!0),n.push({node:c,editsRemaining:s.editsRemaining-1,str:h+s.str.slice(2)})}}}return i},e.TokenSet.fromString=function(t){for(var r=new e.TokenSet,i=r,n=0,s=t.length;n=e;t--){var r=this.uncheckedNodes[t],i=r.child.toString();i in this.minimizedNodes?r.parent.edges[r["char"]]=this.minimizedNodes[i]:(r.child._str=i,this.minimizedNodes[i]=r.child),this.uncheckedNodes.pop()}},e.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},e.Index.prototype.search=function(t){return this.query(function(r){var i=new e.QueryParser(t,r);i.parse()})},e.Index.prototype.query=function(t){for(var r=new e.Query(this.fields),i=Object.create(null),n=Object.create(null),s=Object.create(null),o=Object.create(null),a=Object.create(null),u=0;u1?this._b=1:this._b=e},e.Builder.prototype.k1=function(e){this._k1=e},e.Builder.prototype.add=function(t,r){var i=t[this._ref],n=Object.keys(this._fields);this._documents[i]=r||{},this.documentCount+=1;for(var s=0;s=this.length)return e.QueryLexer.EOS;var t=this.str.charAt(this.pos);return this.pos+=1,t},e.QueryLexer.prototype.width=function(){return this.pos-this.start},e.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},e.QueryLexer.prototype.backup=function(){this.pos-=1},e.QueryLexer.prototype.acceptDigitRun=function(){var t,r;do t=this.next(),r=t.charCodeAt(0);while(r>47&&r<58);t!=e.QueryLexer.EOS&&this.backup()},e.QueryLexer.prototype.more=function(){return this.pos1&&(t.backup(),t.emit(e.QueryLexer.TERM)),t.ignore(),t.more())return e.QueryLexer.lexText},e.QueryLexer.lexEditDistance=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.EDIT_DISTANCE),e.QueryLexer.lexText},e.QueryLexer.lexBoost=function(t){return t.ignore(),t.acceptDigitRun(),t.emit(e.QueryLexer.BOOST),e.QueryLexer.lexText},e.QueryLexer.lexEOS=function(t){t.width()>0&&t.emit(e.QueryLexer.TERM)},e.QueryLexer.termSeparator=e.tokenizer.separator,e.QueryLexer.lexText=function(t){for(;;){var r=t.next();if(r==e.QueryLexer.EOS)return e.QueryLexer.lexEOS;if(92!=r.charCodeAt(0)){if(":"==r)return e.QueryLexer.lexField;if("~"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexEditDistance;if("^"==r)return t.backup(),t.width()>0&&t.emit(e.QueryLexer.TERM),e.QueryLexer.lexBoost;if("+"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if("-"==r&&1===t.width())return t.emit(e.QueryLexer.PRESENCE),e.QueryLexer.lexText;if(r.match(e.QueryLexer.termSeparator))return e.QueryLexer.lexTerm}else t.escapeCharacter()}},e.QueryParser=function(t,r){this.lexer=new e.QueryLexer(t),this.query=r,this.currentClause={},this.lexemeIdx=0},e.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var t=e.QueryParser.parseClause;t;)t=t(this);return this.query},e.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},e.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},e.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},e.QueryParser.parseClause=function(t){var r=t.peekLexeme();if(void 0!=r)switch(r.type){case e.QueryLexer.PRESENCE:return e.QueryParser.parsePresence;case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expected either a field or a term, found "+r.type;throw r.str.length>=1&&(i+=" with value '"+r.str+"'"),new e.QueryParseError(i,r.start,r.end)}},e.QueryParser.parsePresence=function(t){var r=t.consumeLexeme();if(void 0!=r){switch(r.str){case"-":t.currentClause.presence=e.Query.presence.PROHIBITED;break;case"+":t.currentClause.presence=e.Query.presence.REQUIRED;break;default:var i="unrecognised presence operator'"+r.str+"'";throw new e.QueryParseError(i,r.start,r.end)}var n=t.peekLexeme();if(void 0==n){var i="expecting term or field, found nothing";throw new e.QueryParseError(i,r.start,r.end)}switch(n.type){case e.QueryLexer.FIELD:return e.QueryParser.parseField;case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var i="expecting term or field, found '"+n.type+"'";throw new e.QueryParseError(i,n.start,n.end)}}},e.QueryParser.parseField=function(t){var r=t.consumeLexeme();if(void 0!=r){if(t.query.allFields.indexOf(r.str)==-1){var i=t.query.allFields.map(function(e){return"'"+e+"'"}).join(", "),n="unrecognised field '"+r.str+"', possible fields: "+i;throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.fields=[r.str];var s=t.peekLexeme();if(void 0==s){var n="expecting term, found nothing";throw new e.QueryParseError(n,r.start,r.end)}switch(s.type){case e.QueryLexer.TERM:return e.QueryParser.parseTerm;default:var n="expecting term, found '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseTerm=function(t){var r=t.consumeLexeme();if(void 0!=r){t.currentClause.term=r.str.toLowerCase(),r.str.indexOf("*")!=-1&&(t.currentClause.usePipeline=!1);var i=t.peekLexeme();if(void 0==i)return void t.nextClause();switch(i.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+i.type+"'";throw new e.QueryParseError(n,i.start,i.end)}}},e.QueryParser.parseEditDistance=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="edit distance must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.editDistance=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},e.QueryParser.parseBoost=function(t){var r=t.consumeLexeme();if(void 0!=r){var i=parseInt(r.str,10);if(isNaN(i)){var n="boost must be numeric";throw new e.QueryParseError(n,r.start,r.end)}t.currentClause.boost=i;var s=t.peekLexeme();if(void 0==s)return void t.nextClause();switch(s.type){case e.QueryLexer.TERM:return t.nextClause(),e.QueryParser.parseTerm;case e.QueryLexer.FIELD:return t.nextClause(),e.QueryParser.parseField;case e.QueryLexer.EDIT_DISTANCE:return e.QueryParser.parseEditDistance;case e.QueryLexer.BOOST:return e.QueryParser.parseBoost;case e.QueryLexer.PRESENCE:return t.nextClause(),e.QueryParser.parsePresence;default:var n="Unexpected lexeme type '"+s.type+"'";throw new e.QueryParseError(n,s.start,s.end)}}},function(e,t){"function"==typeof define&&define.amd?define(t):"object"==typeof exports?module.exports=t():e.lunr=t()}(this,function(){return e})}(); diff --git a/docs/assets/js/zzzz-search-data.json b/docs/assets/js/zzzz-search-data.json deleted file mode 100644 index 6235244..0000000 --- a/docs/assets/js/zzzz-search-data.json +++ /dev/null @@ -1,72 +0,0 @@ ---- -permalink: /assets/js/search-data.json ---- -{ -{%- assign i = 0 -%} -{%- assign pages_array = '' | split: '' -%} -{%- assign pages_array = pages_array | push: site.html_pages -%} -{%- if site.just_the_docs.collections -%} - {%- for collection_entry in site.just_the_docs.collections -%} - {%- assign collection_key = collection_entry[0] -%} - {%- assign collection_value = collection_entry[1] -%} - {%- assign collection = site[collection_key] -%} - {%- if collection_value.search_exclude != true -%} - {%- assign pages_array = pages_array | push: collection -%} - {%- endif -%} - {%- endfor -%} -{%- endif -%} -{%- for pages in pages_array -%} - {%- for page in pages -%} - {%- if page.title and page.search_exclude != true -%} - {%- assign page_content = page.content -%} - {%- assign heading_level = site.search.heading_level | default: 2 -%} - {%- for j in (2..heading_level) -%} - {%- assign tag = '' -%} - {%- assign title = titleAndContent[0] | replace_first: '>', '

' | split: '

' -%} - {%- assign title = title[1] | strip_html -%} - {%- assign content = titleAndContent[1] -%} - {%- assign url = page.url -%} - {%- if title == page.title and parts[0] == '' -%} - {%- assign title_found = true -%} - {%- else -%} - {%- assign id = titleAndContent[0] -%} - {%- assign id = id | split: 'id="' -%} - {%- if id.size == 2 -%} - {%- assign id = id[1] -%} - {%- assign id = id | split: '"' -%} - {%- assign id = id[0] -%} - {%- capture url -%}{{ url | append: '#' | append: id }}{%- endcapture -%} - {%- endif -%} - {%- endif -%} - {%- unless i == 0 -%},{%- endunless -%} - "{{ i }}": { - "doc": {{ page.title | jsonify }}, - "title": {{ title | jsonify }}, - "content": {{ content | replace: ' **Tip:** Use the search box at the top of this page to find specific content. - -> **TODO:** This is a work-in-progress website for the MICROSITE_TITLE. - -> **NOTE:** The "boilerplate" text on this page mixes content you might want to use, as well as tips on writing Markdown. - -TODO: add more "welcome" content for your site here... - -This site is organized into the following sections [^1] (with an example footnote): - -* [TODO - second top-level page]({{site.baseurl}}/second_page) - * [alternative link](second_page) -* [TODO - nested]({{site.baseurl}}/nested/nested) - -Note how relative links are written. For siblings (like the next set of bullets...) or subpages, you don't have to use the `{{site.baseurl}}` prefix (like the `alternative link`), but use `{{site.baseurl}}` instead of relative navigation hacks like `../../foo/bar`. - -Additional links: [^2] - -* [Contributing]({{site.baseurl}}/contributing): We welcome your contributions! Here's how you can contribute. -* [About Us]({{site.baseurl}}/about): More about the AI Alliance and this project. -* [The AI Alliance](https://thealliance.ai){:target="ai-alliance"}: The AI Alliance website. -* [Project GitHub Repo](https://github.com/The-AI-Alliance/REPO_NAME){:target="repo"} - -Note our convention that external URLs include a target, specified with `{:target="some_name"}`. In fact, Jekyll is configured in `_config.yml` to use the `jekyll-target-blank` plugin, which automatically opens external links in a new tab, named `blank`. This is good enough, but it also means that every link you click will open in the same tab. So, explicitly specifying a `:target` provides a nicer experience. You will also notice that external links get a little box and arrow adornment. This is done automatically through a clever CSS hack in `docs/_includes/css/custom.scss.liquid`. - -A table example using standard Markdown and showing how to set the desired alignment. (The extra whitespace in the source is only for easier readability.): - -| Column 1 (Left Aligned) | Column 2 (Centered) | Column 3 (Numbers - Right Aligned) | -| :------- | :------------------: | -----: | -| text 1 | centered | 1 | -| text 2 | also centered | 20 | -| text 3 | and this is centered | 300 | - -### Version History - -| Version | Date | -| :------- | :--------- | -| V0.0.1 | YMD_TSTAMP | - -[^1]: Use `[^N]` (for increasing `N` values) to mark "footnote #N" in text, as shown above. This is an example footnote with a link to it from above, and a link at the end of the footnote to go back to the point in the text (the "curled" arrow). **WARNING**, you must include the colon in the footnote definition as shown here, `[^1]:`. -[^2]: A second example footnote. Note that you don't need to put a blank line between them; they work like lists. - - -{:toc} diff --git a/docs/nested/nested.markdown b/docs/nested/nested.markdown deleted file mode 100644 index 8fa3686..0000000 --- a/docs/nested/nested.markdown +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: default -title: TODO - nested section "index" page -nav_order: 20 -has_children: true ---- - -# TODO - nested section "index" page - -TODO replace with your content (or delete folder). - -An example of a nested section. This is the "index" page for the nested section. Note that URLs elsewhere, like in `../index.markdown` are written `{{site.baseurl}}/nested/nested`. - -Note the [`nested_child`]({{site.baseurl}}/nested/nested_child/) page. - - -{:toc} diff --git a/docs/nested/nested_child.markdown b/docs/nested/nested_child.markdown deleted file mode 100644 index 5260dbc..0000000 --- a/docs/nested/nested_child.markdown +++ /dev/null @@ -1,11 +0,0 @@ ---- -layout: default -title: TODO - nested child page -nav_order: 210 -parent: TODO - nested section "index" page -has_children: false ---- - -# TODO - nested child page - -An example of a child page in a nested section. Note the informal convention for the ordering number and `has_children` setting in the Markdown file's header. \ No newline at end of file diff --git a/docs/second_page.markdown b/docs/second_page.markdown deleted file mode 100644 index be53b36..0000000 --- a/docs/second_page.markdown +++ /dev/null @@ -1,11 +0,0 @@ ---- -layout: default -title: TODO - Second Page -nav_order: 20 -has_children: false ---- - -# TODO - Second Page - -TODO - your "second" content - diff --git a/finish-microsite.sh b/finish-microsite.sh deleted file mode 100755 index 45d6824..0000000 --- a/finish-microsite.sh +++ /dev/null @@ -1,267 +0,0 @@ -#!/usr/bin/env zsh -#------------------------------------------------------------------------ -# Convert this microsite template into your desired microsite. -# Run finish-microsite.sh -h to see the required arguments and options. -# Note: This file defaults to use zsh. If you don't have zsh, but you -# DO have bash v5+, then use /path/to/bash finish-microsite.sh. -#------------------------------------------------------------------------ -set -e - -ymdformat="%Y-%m-%d" -tsformat="$ymdformat %H:%M %z" -script=$0 -dir=$(dirname $script) -cfg="$dir/docs/_config.yml" -index="$dir/docs/index.markdown" -work_branch=main -publish_branch=latest -fa_max_number=6 # FAs numbered from 1 to max_... -focus_areas_url="https://thealliance.ai/focus-areas" - -declare -A fa_names -fa_names["FA1"]="FA1: Skills and Education" -fa_names["FA2"]="FA2: Trust and Safety" -fa_names["FA3"]="FA3: Applications and Tools" -fa_names["FA4"]="FA4: Hardware Enablement" -fa_names["FA5"]="FA5: Foundation Models and Datasets" -fa_names["FA6"]="FA6: Advocacy" - -declare -A fa_url_names -fa_url_names["FA1"]=skills-education -fa_url_names["FA2"]=trust-and-safety -fa_url_names["FA3"]=applications-and-tools -fa_url_names["FA4"]=hardware-enablement -fa_url_names["FA5"]=foundation-models -fa_url_names["FA6"]=advocacy - -help() { - cat << EOF -$script [-h|--help] [-n|--noop] [--ns|--next-steps] \ - [--repo-name|-r name] \ - --microsite-title|--site-title|-t title \ - --work-group|-w work_group - -Where the options and required arguments are the following: --h | --help Print this message and exit. --n | --noop Just print the commands but don't run them. --s | --next-steps At the end of running this script to create a new repo, - some information about "next steps" is printed. If you want to see - this information again, run this script again just using this flag. ---repo-name | -r name The name of GitHub repo. If you are running this script in the - repo's root directory, its name will be used, by default. ---repo-dir | -d name The absolute path to the repo root directory or the relative - path from the current directory. Only needed when you aren't - running this script in the repo root directory. ---work-group-url | -u work_group_url - The URL of the work group sponsoring this site. - If one of the "FA#" arguments is used for --work-group (see below), - then a known URL will be used. If the URL isn't known for the - specified workgroup and one isn't specified, the default URL for - focus areas will be used: $focus_areas_url - -These arguments are required, but they can appear in any order. See the example below: - ---microsite-title | --site-title | -t title - The title of the microsite. ---work-group | -w work_group - The name of work group sponsoring this site. - -For example, suppose you want to create a microsite with the title "AI for Evil Project", -under the FA2: Trust and Safety work group, then use the following the command: - -$script --repo-name ai-for-evil-project --microsite-title "AI for Evil Project" --work-group fa2 - -Note that just specifying "fa1" or "FA1", etc. for any of the focus areas will result in the -following names being used: - -EOF - -for i in {1..$fa_max_number} -do - # By "coincidence" it works to use the $focus_areas_url as a prefix! - printf "%-35s (URL: %s)\n" "${fa_names["FA$i"]}" "${focus_areas_url}/${fa_url_names["FA$i"]}" -done - - cat < 0 ]] && error "${missing[@]}" - -info "Updating data in the repo:" -info " Repo name: $repo_name" -[[ -n "$repo_dir" ]] && \ - info " Repo dir: $repo_dir" -info " Title: $microsite_title" -info " Work group: $work_group" -[[ -n "$work_group_url" ]] && \ - info " Work group URL: $work_group_url" - -info "Replacing macro placeholders with values:" -[[ -z "$ymdtimestamp" ]] && ymdtimestamp=$(date +"$ymdformat") -date -j -f "$ymdformat" +"$ymdformat" "$ymdtimestamp" > /dev/null 2>&1 -[[ $? -ne 0 ]] && error "Invalid YMD timestamp format for timestamp: $ymdtimestamp" "Required format: $ymdformat" -[[ -z "$timestamp" ]] && timestamp=$(date +"$tsformat") -date -j -f "$tsformat" +"$tsformat" "$timestamp" > /dev/null 2>&1 -[[ $? -ne 0 ]] && error "Invalid timestamp format for timestamp: $timestamp" "Required format: $tsformat" - -[[ -n "$repo_dir" ]] && $NOOP cd "$repo_dir" - -files=( - Makefile - README.md - publish-website.sh - update-main.sh - docs/_config.yml -) -markdown_files=($(find docs -name '*.markdown')) -html_files=($(find docs/_layouts -name '*.html')) - -info "Replacing macros with correct values:" -info " REPO_NAME: $repo_name" -info " MICROSITE_TITLE: $microsite_title" -info " WORK_GROUP_NAME: $work_group" -info " WORK_GROUP_URL: $work_group_url" -info " YMD_TSTAMP: $ymdtimestamp" -info " TIMESTAMP: $timestamp" -info -info "Processing Files:" - -for file in "${files[@]}" "${markdown_files[@]}" "${html_files[@]}" -do - info " $file" - if [[ -z $NOOP ]] - then - sed -e "s?REPO_NAME?$repo_name?g" \ - -e "s?MICROSITE_TITLE?$microsite_title?g" \ - -e "s?WORK_GROUP_NAME?$work_group?g" \ - -e "s?WORK_GROUP_URL?$work_group_url?g" \ - -e "s?YMD_TSTAMP?$ymdtimestamp?g" \ - -e "s?TIMESTAMP?$timestamp?g" \ - -i ".back" "$file" - else - $NOOP sed ... -i .back $file - fi -done - -info "Delete the backup '*.back' files that were just made." -$NOOP find . -name '*.back' -exec rm {} \; - -info "Committing changes to the main branch." -# Use --no-verify to suppress complaints and nonzero exit when -# there is nothing to commit. -$NOOP git commit --no-verify -m "$0: Committing changes after variable substitution." . - -exists=$(git br -a | grep latest | wc -l) -if [[ $exists -eq 0 ]] -then - info "Create a 'latest' branch, from which the pages will be published." - $NOOP git checkout -b latest -else - info "Merge the changes to the 'latest' branch, from which the pages will be published." - $NOOP git checkout latest - $NOOP git merge main - $NOOP git commit --no-verify -m 'update publication branch, latest, from main branch' . -fi - -info "Switching back to the main branch." -$NOOP git checkout main - -info "Done! The current working directory is $PWD." -next_steps diff --git a/publish-website.sh b/publish-website.sh deleted file mode 100755 index bf1a4dc..0000000 --- a/publish-website.sh +++ /dev/null @@ -1,180 +0,0 @@ -#!/usr/bin/env zsh -#------------------------------------------------------------------------ -# Publish a new version of the site. -# This script can be used to publish a new version of this site, which in -# this case means bump the version number and corresponding new timestamp: -# 1. _config.yaml: sets the value shown in the page footers. -# 2. docs/index.markdown: -# a. Authors and latest version table at the top of the page, if present -# b. The history table of versions and timestamps at the bottom, if present. -# -# NOTES: -# 1. While recommended, it's not required to use this script... -# 2. This version of this script assumes the newer format for the history -# table, with just the most recent version at the top of docs/index.markdown -# and the full history in a separate table at the bottom. -#------------------------------------------------------------------------ - -tsformat="%Y-%m-%d %H:%M %z" -script=$0 -dir=$(dirname $script) -cfg="$dir/docs/_config.yml" -index="$dir/docs/index.markdown" -work_branch=main -publish_branch=latest - -help() { - cat << EOF -$script [-h|--help] [-n|--noop] [-v|--version V] [-t|--timestamp T] - -Where the options are the following: --h | --help Print this message and exit --n | --noop Just print the commands but don't make changes. --v | --version V Use version string "V", which should be of the format - "X.Y.Z". Without this option the current value of - "last_version" in _config.yml is extracted (e.g., 1.0.1) - and the last digit is incremented. --t | --timestamp "T" Use this timestamp "T", which you'll need to quote on - the command line, because it must be of the form - "$tsformat". Without this option, the current - system time is used. ---no-commit Edit the files, but don't commit the changes to the repo. -EOF -} - -error() { - for arg in "$@" - do - echo "ERROR: $arg" - done - help - exit 1 -} - -let no_commit=1 -while [[ $# -gt 0 ]] -do - case $1 in - -h|--h*) - help - exit 0 - ;; - -n|--noop) - NOOP=echo - ;; - -v|--v*) - shift - version="$1" - ;; - -t|--t*) - shift - timestamp="$1" - ;; - --no-commit) - let no_commit=0 - ;; - *) - error "Unrecognized option: $1" - ;; - esac - shift -done - -[[ -z "$timestamp" ]] && timestamp=$(date +"$tsformat") -date -j -f "$tsformat" +"$tsformat" "$timestamp" > /dev/null 2>&1 -[[ $? -ne 0 ]] && error "Invalid timestamp format for timestamp: $timestamp" "Required format: $tsformat" - -old_version=$(grep last_version "$cfg" | sed -e 's/^[ ]*last_version:[ ]*//') -base=${old_version%.*} -ext=${old_version##*.} -let ext1=$ext+1 -new_default_version=${base}.${ext1} -[[ -z "$version" ]] && version="$new_default_version" - -echo "Using the following values:" -echo "Version: $version (previous version: $old_version)" -echo "Timestamp: $timestamp" - -branch=$(git branch --show-current) -[[ "$branch" != "$work_branch" ]] && error "You must be on the $work_branch branch to run this command." - -cfg_temp=${cfg}.$$ -if [[ -z "$NOOP" ]] -then - sed -e "s/\s*last_version:.*/last_version: $version/" $cfg > $cfg_temp - sed -e "s/\s*last_modified_timestamp:.*/last_modified_timestamp: $timestamp/" $cfg_temp > $cfg - rm $cfg_temp -else - $NOOP "sed -e \"s/\s*last_version:.*/last_version: $version/\" $cfg > $cfg_temp" - $NOOP "sed -e \"s/\s*last_modified_timestamp:.*/last_modified_timestamp: $timestamp/\" $cfg_temp > $cfg" - $NOOP rm $cfg_temp -fi - -# Sanity checks: -if [[ -z $NOOP ]] -then - grep "last_version: $version" $cfg -q || error "New version $version not found in $cfg" - grep "last_modified_timestamp: $timestamp" $cfg -q || error "New timestamp $timestamp not found in $cfg" -fi - -# Update the index page table with versions. -latest_history_line=$(grep '\*\*Last Update\*\*' "$index") -latest_history=$(echo $latest_history_line | sed -e 's/[^V]*V\([^, ]*\).*/\1/') - -if [[ "$latest_history" = "$version" ]] -then - echo "New version ($version) is the same as the old version in $index. Not changing that file." -else - mv $index $index.$$ - found_version_history=false - cat $index.$$ | while read line - do - case $line in - *Last*Update*) - ymd=$(date -j -f "$tsformat" +"%Y-%m-%d" "$timestamp") - echo "| **Last Update** | V$version, $ymd |" - ;; - *Version*Date*) - echo $line - found_version_history=true - ;; - \|\ :---*) - echo $line - if $found_version_history - then - echo "| V$version | $ymd |" - found_version_history=false - fi - ;; - *) - echo "$line" - ;; - esac - done > $index - rm $index.$$ -fi - -# Commit and push the updated config file: -if [[ $no_commit -eq 0 ]] -then - echo "Changes won't be committed to the git repo." - exit 0 -fi - -if [[ "$latest_history" = "$version" ]] -then - $NOOP git commit -s -m "Updated version and timestamps in $cfg" $cfg -else - $NOOP git commit -s -m "Updated version and timestamps in $cfg and $index" $cfg $index -fi -$NOOP git push - -# Merge to latest and push to publish. Also tag it! - -$NOOP git checkout $publish_branch -$NOOP git merge $work_branch -$NOOP git push -$NOOP git tag v${version} -$NOOP git push --tags -$NOOP git checkout $work_branch - diff --git a/update-main.sh b/update-main.sh deleted file mode 100755 index 6384d2c..0000000 --- a/update-main.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/usr/bin/env zsh -#------------------------------------------------------------------------ -# A simple script that merges the latest work from "latest" to "main", -# pushes the updates upstream, then switches "latest" again. -# This is mostly useful if you tend to work in "latest", so updates are -# published immediately, and you periodically want to update main. -#------------------------------------------------------------------------ - -git checkout latest -git pull -git checkout main -git pull -git merge latest -git push -git checkout latest