From 17a40663b30fd7a75125a59bbddb1ccb39d2dd1c Mon Sep 17 00:00:00 2001 From: Orni Ringer Date: Sun, 2 Nov 2025 15:09:33 +0200 Subject: [PATCH 1/2] Another one --- Labs/index.md | 117 + Labs/welcome.md | 77 + mkdocs-site/000-setup/00-build-containers.sh | 62 + mkdocs-site/000-setup/01-init-servers.sh | 61 + mkdocs-site/000-setup/02-init-ansible.sh | 98 + .../000-setup/Ansible-Controller/Dockerfile | 36 + .../Ansible-Controller/entrypoint.sh | 30 + mkdocs-site/000-setup/Linux-Server/Dockerfile | 43 + .../000-setup/Linux-Server/entrypoint.sh | 79 + mkdocs-site/000-setup/_demo.sh | 3 + mkdocs-site/000-setup/_setup.sh | 12 + mkdocs-site/000-setup/docker-compose.yaml | 52 + mkdocs-site/000-setup/index.html | 93 + mkdocs-site/000-setup/usage/index.html | 74 + mkdocs-site/001-verify-ansible/_demo.sh | 27 + mkdocs-site/001-verify-ansible/index.html | 228 + mkdocs-site/002-no-inventory/_demo.sh | 33 + mkdocs-site/002-no-inventory/index.html | 166 + mkdocs-site/003-modules/_demo.sh | 33 + mkdocs-site/003-modules/index.html | 178 + mkdocs-site/004-playbooks/004-list-files.yaml | 45 + mkdocs-site/004-playbooks/004-playbook.yaml | 31 + mkdocs-site/004-playbooks/_demo.sh | 38 + mkdocs-site/004-playbooks/index.html | 292 + mkdocs-site/004-playbooks/vars.yaml | 6 + mkdocs-site/005-facts/005-playbook-facts.yaml | 19 + mkdocs-site/005-facts/_demo.sh | 30 + mkdocs-site/005-facts/index.html | 117 + .../006-git/006-playbook-install-git.yaml | 27 + mkdocs-site/006-git/_demo.sh | 24 + mkdocs-site/006-git/index.html | 66 + .../007-create-user/007-create-user.yaml | 38 + mkdocs-site/007-create-user/_demo.sh | 21 + mkdocs-site/007-create-user/index.html | 66 + .../01-solution-create-user.yaml | 18 + ...solution-playbook-create-git-repository.sh | 27 + mkdocs-site/008-challenges/index.html | 67 + .../009-codewizard-role-playbook.yaml | 11 + .../009-roles/009-create-role-structure.yaml | 37 + mkdocs-site/009-roles/009-roles.sh | 223 + mkdocs-site/009-roles/_demo.sh | 27 + mkdocs-site/009-roles/index.html | 251 + mkdocs-site/009-roles/script.sh | 9 + .../010-loops-and-conditionals/_demo.sh | 31 + .../010-loops-and-conditionals/index.html | 127 + mkdocs-site/011-jinja-templating/_demo.sh | 35 + mkdocs-site/011-jinja-templating/index.html | 114 + .../011-jinja-templating/install-nginx.yaml | 53 + .../templates/apache.conf.j2 | 8 + .../templates/index.html.j2 | 8 + mkdocs-site/404.html | 41 + .../images/ansible-architecture-diagram.png | Bin 0 -> 66317 bytes mkdocs-site/assets/images/ansible-engine.jpg | Bin 0 -> 41881 bytes mkdocs-site/assets/images/ansible-labs.png | Bin 0 -> 130893 bytes .../assets/images/ansible-playbook-yaml.png | Bin 0 -> 111934 bytes .../assets/images/ansible-role-structure.png | Bin 0 -> 97179 bytes mkdocs-site/assets/images/ansible.png | Bin 0 -> 34395 bytes mkdocs-site/assets/images/docker.png | Bin 0 -> 9022 bytes mkdocs-site/assets/images/favicon.png | Bin 0 -> 1870 bytes mkdocs-site/assets/images/gcp-1.png | Bin 0 -> 8141 bytes mkdocs-site/assets/images/gcp.png | Bin 0 -> 7348 bytes mkdocs-site/assets/images/killercoda-icon.png | Bin 0 -> 1537 bytes mkdocs-site/assets/images/killercoda.png | Bin 0 -> 70953 bytes mkdocs-site/assets/images/practice.png | Bin 0 -> 232024 bytes mkdocs-site/assets/images/tldr.png | Bin 0 -> 2354 bytes .../assets/javascripts/bundle.50899def.min.js | 16 + .../javascripts/bundle.50899def.min.js.map | 7 + .../javascripts/lunr/min/lunr.ar.min.js | 1 + .../javascripts/lunr/min/lunr.da.min.js | 18 + .../javascripts/lunr/min/lunr.de.min.js | 18 + .../javascripts/lunr/min/lunr.du.min.js | 18 + .../javascripts/lunr/min/lunr.el.min.js | 1 + .../javascripts/lunr/min/lunr.es.min.js | 18 + .../javascripts/lunr/min/lunr.fi.min.js | 18 + .../javascripts/lunr/min/lunr.fr.min.js | 18 + .../javascripts/lunr/min/lunr.he.min.js | 1 + .../javascripts/lunr/min/lunr.hi.min.js | 1 + .../javascripts/lunr/min/lunr.hu.min.js | 18 + .../javascripts/lunr/min/lunr.hy.min.js | 1 + .../javascripts/lunr/min/lunr.it.min.js | 18 + .../javascripts/lunr/min/lunr.ja.min.js | 1 + .../javascripts/lunr/min/lunr.jp.min.js | 1 + .../javascripts/lunr/min/lunr.kn.min.js | 1 + .../javascripts/lunr/min/lunr.ko.min.js | 1 + .../javascripts/lunr/min/lunr.multi.min.js | 1 + .../javascripts/lunr/min/lunr.nl.min.js | 18 + .../javascripts/lunr/min/lunr.no.min.js | 18 + .../javascripts/lunr/min/lunr.pt.min.js | 18 + .../javascripts/lunr/min/lunr.ro.min.js | 18 + .../javascripts/lunr/min/lunr.ru.min.js | 18 + .../javascripts/lunr/min/lunr.sa.min.js | 1 + .../lunr/min/lunr.stemmer.support.min.js | 1 + .../javascripts/lunr/min/lunr.sv.min.js | 18 + .../javascripts/lunr/min/lunr.ta.min.js | 1 + .../javascripts/lunr/min/lunr.te.min.js | 1 + .../javascripts/lunr/min/lunr.th.min.js | 1 + .../javascripts/lunr/min/lunr.tr.min.js | 18 + .../javascripts/lunr/min/lunr.vi.min.js | 1 + .../javascripts/lunr/min/lunr.zh.min.js | 1 + .../assets/javascripts/lunr/tinyseg.js | 206 + .../assets/javascripts/lunr/wordcut.js | 6708 +++++++++++++++++ .../workers/search.d50fe291.min.js | 42 + .../workers/search.d50fe291.min.js.map | 7 + mkdocs-site/assets/stylesheets/_dark.scss | 62 + mkdocs-site/assets/stylesheets/_general.scss | 172 + .../assets/stylesheets/_github_avatar.scss | 133 + mkdocs-site/assets/stylesheets/_mixins.scss | 47 + mkdocs-site/assets/stylesheets/_nav.scss | 54 + mkdocs-site/assets/stylesheets/_print.scss | 151 + mkdocs-site/assets/stylesheets/_social.scss | 28 + .../assets/stylesheets/main.7e37652d.min.css | 1 + .../stylesheets/main.7e37652d.min.css.map | 1 + .../stylesheets/palette.06af60db.min.css | 1 + .../stylesheets/palette.06af60db.min.css.map | 1 + mkdocs-site/assets/stylesheets/theme.css | 651 ++ mkdocs-site/assets/stylesheets/theme.scss | 12 + mkdocs-site/css/print-site-material.css | 38 + mkdocs-site/css/print-site.css | 144 + mkdocs-site/index.html | 66 + mkdocs-site/js/print-site.js | 42 + mkdocs-site/print_page/index.html | 3787 ++++++++++ mkdocs-site/search/search_index.json | 1 + mkdocs-site/sitemap.xml | 63 + mkdocs-site/sitemap.xml.gz | Bin 0 -> 342 bytes mkdocs-site/welcome/index.html | 80 + mkdocs.yml | 239 + mkdocs/01-mkdocs-site.yml | 12 + mkdocs/02-mkdocs-theme.yml | 57 + mkdocs/03-mkdocs-extra.yml | 53 + mkdocs/04-mkdocs-plugins.yml | 34 + mkdocs/05-mkdocs-extensions.yml | 43 + mkdocs/06-mkdocs-nav.yml | 20 + mkdocs/06-mkdocs-nav.yml.backup | 18 + mkdocs/mkdocs.yml.schema.json | 1 + .../images/ansible-architecture-diagram.png | Bin 0 -> 66317 bytes .../assets/images/ansible-engine.jpg | Bin 0 -> 41881 bytes .../overrides/assets/images/ansible-labs.png | Bin 0 -> 130893 bytes .../assets/images/ansible-playbook-yaml.png | Bin 0 -> 111934 bytes .../assets/images/ansible-role-structure.png | Bin 0 -> 97179 bytes mkdocs/overrides/assets/images/ansible.png | Bin 0 -> 34395 bytes mkdocs/overrides/assets/images/docker.png | Bin 0 -> 9022 bytes mkdocs/overrides/assets/images/favicon.png | Bin 0 -> 1870 bytes mkdocs/overrides/assets/images/gcp-1.png | Bin 0 -> 8141 bytes mkdocs/overrides/assets/images/gcp.png | Bin 0 -> 7348 bytes .../assets/images/killercoda-icon.png | Bin 0 -> 1537 bytes mkdocs/overrides/assets/images/killercoda.png | Bin 0 -> 70953 bytes mkdocs/overrides/assets/images/practice.png | Bin 0 -> 232024 bytes mkdocs/overrides/assets/images/tldr.png | Bin 0 -> 2354 bytes .../overrides/assets/stylesheets/_dark.scss | 62 + .../assets/stylesheets/_general.scss | 172 + .../assets/stylesheets/_github_avatar.scss | 133 + .../overrides/assets/stylesheets/_mixins.scss | 47 + mkdocs/overrides/assets/stylesheets/_nav.scss | 54 + .../overrides/assets/stylesheets/_print.scss | 151 + .../overrides/assets/stylesheets/_social.scss | 28 + mkdocs/overrides/assets/stylesheets/theme.css | 651 ++ .../overrides/assets/stylesheets/theme.scss | 12 + mkdocs/overrides/home.html | 106 + mkdocs/overrides/partials/badges.html | 19 + mkdocs/overrides/partials/footer.html | 108 + mkdocs/overrides/partials/header copy.html | 59 + mkdocs/overrides/partials/header.html | 121 + mkdocs/overrides/partials/social.html | 28 + mkdocs/overrides/partials/source-file.html | 166 + mkdocs/requirements.txt | 200 + mkdocs/scripts/build-multiarch.sh | 224 + mkdocs/scripts/build_nav.sh | 556 ++ mkdocs/scripts/init_site.sh | 511 ++ mkdocs/scripts/init_vercel.sh | 22 + 169 files changed, 20124 insertions(+) create mode 100644 Labs/index.md create mode 100644 Labs/welcome.md create mode 100644 mkdocs-site/000-setup/00-build-containers.sh create mode 100644 mkdocs-site/000-setup/01-init-servers.sh create mode 100644 mkdocs-site/000-setup/02-init-ansible.sh create mode 100644 mkdocs-site/000-setup/Ansible-Controller/Dockerfile create mode 100644 mkdocs-site/000-setup/Ansible-Controller/entrypoint.sh create mode 100644 mkdocs-site/000-setup/Linux-Server/Dockerfile create mode 100644 mkdocs-site/000-setup/Linux-Server/entrypoint.sh create mode 100644 mkdocs-site/000-setup/_demo.sh create mode 100644 mkdocs-site/000-setup/_setup.sh create mode 100644 mkdocs-site/000-setup/docker-compose.yaml create mode 100644 mkdocs-site/000-setup/index.html create mode 100644 mkdocs-site/000-setup/usage/index.html create mode 100644 mkdocs-site/001-verify-ansible/_demo.sh create mode 100644 mkdocs-site/001-verify-ansible/index.html create mode 100644 mkdocs-site/002-no-inventory/_demo.sh create mode 100644 mkdocs-site/002-no-inventory/index.html create mode 100644 mkdocs-site/003-modules/_demo.sh create mode 100644 mkdocs-site/003-modules/index.html create mode 100644 mkdocs-site/004-playbooks/004-list-files.yaml create mode 100644 mkdocs-site/004-playbooks/004-playbook.yaml create mode 100644 mkdocs-site/004-playbooks/_demo.sh create mode 100644 mkdocs-site/004-playbooks/index.html create mode 100644 mkdocs-site/004-playbooks/vars.yaml create mode 100644 mkdocs-site/005-facts/005-playbook-facts.yaml create mode 100644 mkdocs-site/005-facts/_demo.sh create mode 100644 mkdocs-site/005-facts/index.html create mode 100644 mkdocs-site/006-git/006-playbook-install-git.yaml create mode 100644 mkdocs-site/006-git/_demo.sh create mode 100644 mkdocs-site/006-git/index.html create mode 100644 mkdocs-site/007-create-user/007-create-user.yaml create mode 100644 mkdocs-site/007-create-user/_demo.sh create mode 100644 mkdocs-site/007-create-user/index.html create mode 100644 mkdocs-site/008-challenges/01-solution-create-user.yaml create mode 100644 mkdocs-site/008-challenges/02-solution-playbook-create-git-repository.sh create mode 100644 mkdocs-site/008-challenges/index.html create mode 100644 mkdocs-site/009-roles/009-codewizard-role-playbook.yaml create mode 100644 mkdocs-site/009-roles/009-create-role-structure.yaml create mode 100644 mkdocs-site/009-roles/009-roles.sh create mode 100644 mkdocs-site/009-roles/_demo.sh create mode 100644 mkdocs-site/009-roles/index.html create mode 100644 mkdocs-site/009-roles/script.sh create mode 100644 mkdocs-site/010-loops-and-conditionals/_demo.sh create mode 100644 mkdocs-site/010-loops-and-conditionals/index.html create mode 100644 mkdocs-site/011-jinja-templating/_demo.sh create mode 100644 mkdocs-site/011-jinja-templating/index.html create mode 100644 mkdocs-site/011-jinja-templating/install-nginx.yaml create mode 100644 mkdocs-site/011-jinja-templating/templates/apache.conf.j2 create mode 100644 mkdocs-site/011-jinja-templating/templates/index.html.j2 create mode 100644 mkdocs-site/404.html create mode 100644 mkdocs-site/assets/images/ansible-architecture-diagram.png create mode 100644 mkdocs-site/assets/images/ansible-engine.jpg create mode 100644 mkdocs-site/assets/images/ansible-labs.png create mode 100644 mkdocs-site/assets/images/ansible-playbook-yaml.png create mode 100644 mkdocs-site/assets/images/ansible-role-structure.png create mode 100644 mkdocs-site/assets/images/ansible.png create mode 100644 mkdocs-site/assets/images/docker.png create mode 100644 mkdocs-site/assets/images/favicon.png create mode 100644 mkdocs-site/assets/images/gcp-1.png create mode 100644 mkdocs-site/assets/images/gcp.png create mode 100644 mkdocs-site/assets/images/killercoda-icon.png create mode 100644 mkdocs-site/assets/images/killercoda.png create mode 100644 mkdocs-site/assets/images/practice.png create mode 100644 mkdocs-site/assets/images/tldr.png create mode 100644 mkdocs-site/assets/javascripts/bundle.50899def.min.js create mode 100644 mkdocs-site/assets/javascripts/bundle.50899def.min.js.map create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.ar.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.da.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.de.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.du.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.el.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.es.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.fi.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.fr.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.he.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.hi.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.hu.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.hy.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.it.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.ja.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.jp.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.kn.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.ko.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.multi.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.nl.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.no.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.pt.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.ro.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.ru.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.sa.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.stemmer.support.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.sv.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.ta.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.te.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.th.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.tr.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.vi.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/min/lunr.zh.min.js create mode 100644 mkdocs-site/assets/javascripts/lunr/tinyseg.js create mode 100644 mkdocs-site/assets/javascripts/lunr/wordcut.js create mode 100644 mkdocs-site/assets/javascripts/workers/search.d50fe291.min.js create mode 100644 mkdocs-site/assets/javascripts/workers/search.d50fe291.min.js.map create mode 100644 mkdocs-site/assets/stylesheets/_dark.scss create mode 100644 mkdocs-site/assets/stylesheets/_general.scss create mode 100644 mkdocs-site/assets/stylesheets/_github_avatar.scss create mode 100644 mkdocs-site/assets/stylesheets/_mixins.scss create mode 100644 mkdocs-site/assets/stylesheets/_nav.scss create mode 100644 mkdocs-site/assets/stylesheets/_print.scss create mode 100644 mkdocs-site/assets/stylesheets/_social.scss create mode 100644 mkdocs-site/assets/stylesheets/main.7e37652d.min.css create mode 100644 mkdocs-site/assets/stylesheets/main.7e37652d.min.css.map create mode 100644 mkdocs-site/assets/stylesheets/palette.06af60db.min.css create mode 100644 mkdocs-site/assets/stylesheets/palette.06af60db.min.css.map create mode 100644 mkdocs-site/assets/stylesheets/theme.css create mode 100644 mkdocs-site/assets/stylesheets/theme.scss create mode 100644 mkdocs-site/css/print-site-material.css create mode 100644 mkdocs-site/css/print-site.css create mode 100644 mkdocs-site/index.html create mode 100644 mkdocs-site/js/print-site.js create mode 100644 mkdocs-site/print_page/index.html create mode 100644 mkdocs-site/search/search_index.json create mode 100644 mkdocs-site/sitemap.xml create mode 100644 mkdocs-site/sitemap.xml.gz create mode 100644 mkdocs-site/welcome/index.html create mode 100644 mkdocs.yml create mode 100644 mkdocs/01-mkdocs-site.yml create mode 100644 mkdocs/02-mkdocs-theme.yml create mode 100644 mkdocs/03-mkdocs-extra.yml create mode 100644 mkdocs/04-mkdocs-plugins.yml create mode 100644 mkdocs/05-mkdocs-extensions.yml create mode 100644 mkdocs/06-mkdocs-nav.yml create mode 100644 mkdocs/06-mkdocs-nav.yml.backup create mode 100644 mkdocs/mkdocs.yml.schema.json create mode 100644 mkdocs/overrides/assets/images/ansible-architecture-diagram.png create mode 100644 mkdocs/overrides/assets/images/ansible-engine.jpg create mode 100644 mkdocs/overrides/assets/images/ansible-labs.png create mode 100644 mkdocs/overrides/assets/images/ansible-playbook-yaml.png create mode 100644 mkdocs/overrides/assets/images/ansible-role-structure.png create mode 100644 mkdocs/overrides/assets/images/ansible.png create mode 100644 mkdocs/overrides/assets/images/docker.png create mode 100644 mkdocs/overrides/assets/images/favicon.png create mode 100644 mkdocs/overrides/assets/images/gcp-1.png create mode 100644 mkdocs/overrides/assets/images/gcp.png create mode 100644 mkdocs/overrides/assets/images/killercoda-icon.png create mode 100644 mkdocs/overrides/assets/images/killercoda.png create mode 100644 mkdocs/overrides/assets/images/practice.png create mode 100644 mkdocs/overrides/assets/images/tldr.png create mode 100644 mkdocs/overrides/assets/stylesheets/_dark.scss create mode 100644 mkdocs/overrides/assets/stylesheets/_general.scss create mode 100644 mkdocs/overrides/assets/stylesheets/_github_avatar.scss create mode 100644 mkdocs/overrides/assets/stylesheets/_mixins.scss create mode 100644 mkdocs/overrides/assets/stylesheets/_nav.scss create mode 100644 mkdocs/overrides/assets/stylesheets/_print.scss create mode 100644 mkdocs/overrides/assets/stylesheets/_social.scss create mode 100644 mkdocs/overrides/assets/stylesheets/theme.css create mode 100644 mkdocs/overrides/assets/stylesheets/theme.scss create mode 100644 mkdocs/overrides/home.html create mode 100644 mkdocs/overrides/partials/badges.html create mode 100644 mkdocs/overrides/partials/footer.html create mode 100644 mkdocs/overrides/partials/header copy.html create mode 100644 mkdocs/overrides/partials/header.html create mode 100644 mkdocs/overrides/partials/social.html create mode 100644 mkdocs/overrides/partials/source-file.html create mode 100644 mkdocs/requirements.txt create mode 100755 mkdocs/scripts/build-multiarch.sh create mode 100755 mkdocs/scripts/build_nav.sh create mode 100755 mkdocs/scripts/init_site.sh create mode 100755 mkdocs/scripts/init_vercel.sh diff --git a/Labs/index.md b/Labs/index.md new file mode 100644 index 0000000..4d3dd53 --- /dev/null +++ b/Labs/index.md @@ -0,0 +1,117 @@ +# Kubernetes Labs + +## 📋 Lab Overview + +Welcome to the hands-on Kubernetes labs! This comprehensive series will guide you through essential Kubernetes concepts and advanced topics. + +## 🗂️ Available Labs + +### Foundation Labs + +| Lab | Topic | Description | +|-----|-------|-------------| +| [00](00-VerifyCluster/README.md) | Verify Cluster | Ensure your Kubernetes cluster is properly configured | +| [01](01-Namespace/README.md) | Namespace | Learn to organize resources with namespaces | +| [02](02-Deployments-Imperative/README.md) | Deployments (Imperative) | Create deployments using kubectl commands | +| [03](03-Deployments-Declarative/README.md) | Deployments (Declarative) | Create deployments using YAML manifests | +| [04](04-Rollout/README.md) | Rollout | Manage deployment updates and rollbacks | +| [05](05-Services/README.md) | Services | Expose applications with Kubernetes services | + +### Storage & StatefulSets + +| Lab | Topic | Description | +|-----|-------|-------------| +| [06](06-DataStore/README.md) | DataStore | Work with persistent storage in Kubernetes | +| [09](09-StatefulSet/README.md) | StatefulSet | Deploy stateful applications | +| [12](12-Wordpress-MySQL-PVC/README.md) | WordPress MySQL PVC | Complete stateful application with persistent storage | + +### Networking & Ingress + +| Lab | Topic | Description | +|-----|-------|-------------| +| [07](07-nginx-Ingress/README.md) | Nginx Ingress | Configure ingress controllers for external access | +| [10](10-Istio/README.md) | Istio | Implement service mesh for microservices | + +### Configuration Management + +| Lab | Topic | Description | +|-----|-------|-------------| +| [08](08-Kustomization/README.md) | Kustomization | Manage configurations with Kustomize | +| [13](13-HelmChart/README.md) | Helm Chart | Package and deploy applications with Helm | + +### GitOps & CI/CD + +| Lab | Topic | Description | +|-----|-------|-------------| +| [18](18-ArgoCD/README.md) | ArgoCD | Implement GitOps with ArgoCD | + +### Observability + +| Lab | Topic | Description | +|-----|-------|-------------| +| [14](14-Logging/README.md) | Logging | Centralized logging with Fluentd | +| [15](15-Prometheus-Grafana/README.md) | Prometheus & Grafana | Monitoring and visualization | +| [23](23-MetricServer/README.md) | Metric Server | Resource metrics collection | + +### Advanced Topics + +| Lab | Topic | Description | +|-----|-------|-------------| +| [11](11-CRD-Custom-Resource-Definition/README.md) | Custom Resource Definition | Extend Kubernetes API with CRDs | +| [16](16-Affinity-Taint-Tolleration/README.md) | Affinity, Taint & Toleration | Control pod scheduling | +| [17](17-PodDisruptionBudgets-PDB/README.md) | Pod Disruption Budgets | Ensure availability during disruptions | +| [19](19-CustomScheduler/README.md) | Custom Scheduler | Build custom scheduling logic | +| [20](20-CronJob/README.md) | CronJob | Schedule recurring tasks | +| [21](21-Auditing/README.md) | Auditing | Track cluster activities | +| [21](21-KubeAPI/README.md) | Kube API | Work with Kubernetes API | +| [24](24-HelmOperator/README.md) | Helm Operator | Manage Helm releases with operators | +| [25](25-kubebuilder/README.md) | Kubebuilder | Build Kubernetes operators | + +### Tools & Utilities + +| Lab | Topic | Description | +|-----|-------|-------------| +| [22](22-Rancher/README.md) | Rancher | Multi-cluster management platform | +| [26](26-k9s/README.md) | k9s | Terminal-based Kubernetes UI | +| [27](27-krew/README.md) | Krew | kubectl plugin manager | +| [28](28-kubeapps/README.md) | Kubeapps | Application dashboard for Kubernetes | +| [29](29-kubeadm/README.md) | Kubeadm | Bootstrap Kubernetes clusters | +| [30](30-k9s/README.md) | k9s (Advanced) | Advanced k9s usage | + +## 🎯 Learning Path + +### Beginner Track +Start here if you're new to Kubernetes: +1. Lab 00: Verify Cluster +2. Lab 01: Namespace +3. Lab 02: Deployments (Imperative) +4. Lab 03: Deployments (Declarative) +5. Lab 05: Services + +### Intermediate Track +For those with basic Kubernetes knowledge: +1. Lab 04: Rollout +2. Lab 06: DataStore +3. Lab 07: Nginx Ingress +4. Lab 08: Kustomization +5. Lab 13: Helm Chart + +### Advanced Track +For experienced Kubernetes users: +1. Lab 10: Istio +2. Lab 11: Custom Resource Definition +3. Lab 18: ArgoCD +4. Lab 19: Custom Scheduler +5. Lab 25: Kubebuilder + +## 💡 Tips for Success + +- **Take your time**: Don't rush through the labs +- **Practice regularly**: Repetition builds muscle memory +- **Experiment**: Try variations of the examples +- **Read the docs**: Kubernetes documentation is excellent +- **Join the community**: Engage with other learners + +## 🚀 Get Started + +Ready to begin? Click on any lab above or start with [Lab 00: Verify Cluster](00-VerifyCluster/README.md)! diff --git a/Labs/welcome.md b/Labs/welcome.md new file mode 100644 index 0000000..f258fb5 --- /dev/null +++ b/Labs/welcome.md @@ -0,0 +1,77 @@ +# Welcome to Kubernetes Labs + +![Kubernetes Logo](https://kubernetes.io/images/kubernetes-horizontal-color.png) + +## 🚀 Introduction + +Welcome to the **Kubernetes Labs** repository! This is a comprehensive collection of hands-on labs designed to help you learn and master Kubernetes concepts, from basic deployments to advanced topics like Istio, ArgoCD, and custom schedulers. + +## 📚 What You'll Learn + +This lab series covers a wide range of Kubernetes topics: + +- **Basics**: Namespaces, Deployments, Services, and Rollouts +- **Storage**: DataStores, Persistent Volume Claims, StatefulSets +- **Networking**: Ingress Controllers, Service Mesh (Istio) +- **Configuration Management**: Kustomization, Helm Charts +- **GitOps**: ArgoCD for continuous deployment +- **Observability**: Logging, Prometheus, Grafana +- **Advanced Topics**: Custom Resource Definitions (CRDs), Custom Schedulers, Pod Disruption Budgets +- **Tools**: k9s, Krew, Kubeapps, Kubeadm, Rancher + +## 🎯 Who Is This For? + +These labs are designed for: + +- **Beginners** wanting to get started with Kubernetes +- **Intermediate users** looking to deepen their knowledge +- **Advanced practitioners** seeking to master complex Kubernetes patterns +- **DevOps Engineers** preparing for Kubernetes certifications (CKA, CKAD, CKS) + +## 🛠️ Prerequisites + +Before starting these labs, you should have: + +- Basic understanding of containerization (Docker) +- Command-line familiarity +- A Kubernetes cluster (Minikube, Kind, or cloud-based cluster) +- kubectl installed and configured + +## 📖 How to Use This Repository + +1. **Start with the Basics**: Begin with Lab 00 (Verify Cluster) to ensure your environment is set up correctly +2. **Progress Sequentially**: The labs are numbered in a logical progression +3. **Hands-On Practice**: Each lab includes practical exercises and examples +4. **Experiment**: Don't be afraid to modify the examples and see what happens + +## 🎓 Lab Structure + +Each lab includes: + +- **Objectives**: What you'll learn in the lab +- **Step-by-step instructions**: Detailed walkthrough of concepts +- **Example YAML files**: Ready-to-use Kubernetes manifests +- **Verification steps**: How to confirm everything is working +- **Challenges**: Optional exercises to test your understanding + +## 🚦 Getting Started + +Ready to begin? Head over to the [Labs](index.md) section and start with: + +1. [00 Verify Cluster](00-VerifyCluster/README.md) - Verify your Kubernetes cluster is ready +2. [01 Namespace](01-Namespace/README.md) - Learn about Kubernetes namespaces +3. [02 Deployments Imperative](02-Deployments-Imperative/README.md) - Create deployments using kubectl + +## 🤝 Contributing + +Contributions are welcome! If you find issues or have suggestions for improvements, please feel free to open an issue or submit a pull request. + +## 📬 Contact + +For questions or feedback, please reach out through the social links at the bottom of this page. + +--- + +**Happy Learning! 🎉** + +Let's dive into the world of Kubernetes together! diff --git a/mkdocs-site/000-setup/00-build-containers.sh b/mkdocs-site/000-setup/00-build-containers.sh new file mode 100644 index 0000000..331a23b --- /dev/null +++ b/mkdocs-site/000-setup/00-build-containers.sh @@ -0,0 +1,62 @@ +#!/bin/bash + +clear + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) +export ROOT_FOLDER=$ROOT_FOLDER + +# Load the common script +source $ROOT_FOLDER/_utils/common.sh + +# Get the current directory of our lab +CURRENT_DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd) + +# Get the root folder of our demo folder +echo "ROOT_FOLDER=$ROOT_FOLDER" > $CURRENT_DIR/.env +echo "RUNTIME_FOLDER=$RUNTIME_FOLDER" >> $CURRENT_DIR/.env +echo "CURRENT_DIR=$CURRENT_DIR" >> $CURRENT_DIR/.env + +# Set the docker image platform we will need to use + +# Generate .env +TARGET_PLATFORM=$(detect_platform) +echo "TARGET_PLATFORM=$TARGET_PLATFORM" >> $CURRENT_DIR/.env + +# check if any running containers +if [ $(docker ps -aq | wc -l) -gt 1 ]; then + # Remove all docker-container + echo -e "${YELLOW}Removing old docker containers${COLOR_OFF}" + docker stop $(docker ps -aq) + docker rm $(docker ps -aq) + + # Stop any existing demo containers + docker_compose -f $CURRENT_DIR/docker-compose.yaml down + sleep 5 +fi + +echo -e "${YELLOW}* Removing old content${COLOR_OFF}" +rm -rf $RUNTIME_FOLDER + +echo -e "${YELLOW}* Creating folder structure${COLOR_OFF}" +mkdir -p $RUNTIME_FOLDER/.ssh +mkdir -p $RUNTIME_FOLDER/.ssh-server +mkdir -p $RUNTIME_FOLDER/labs-scripts + +# Start the demo containers +echo -e "${GREEN}* Starting docker containers${COLOR_OFF}" +docker_compose -f $CURRENT_DIR/docker-compose.yaml up --build +sleep 5 + +# Sleep for few seconds so the entrypoint will finish its running +echo -e "${YELLOW}* Sleeping 5 seconds - waiting for container to start ${COLOR_OFF}" +echo -e "" + +for i in {1..10}; +do + echo -e -n "${RED}." + sleep 1 +done + +docker ps --format "table {{.ID}}\t{{.Image}}\t{{.Status}}" +sleep 3 \ No newline at end of file diff --git a/mkdocs-site/000-setup/01-init-servers.sh b/mkdocs-site/000-setup/01-init-servers.sh new file mode 100644 index 0000000..c97ec8f --- /dev/null +++ b/mkdocs-site/000-setup/01-init-servers.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +clear + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) + +# Load the common script +source $ROOT_FOLDER/_utils/common.sh + +# Get the root folder of our demo folder +echo "ROOT_FOLDER=${ROOT_FOLDER}" > $ROOT_FOLDER/Labs/000-setup/.env +echo "RUNTIME_FOLDER=${RUNTIME_FOLDER}" >> $ROOT_FOLDER/Labs/000-setup/.env + +# echo -e "${YELLOW}Creating folder structure ${COLOR_OFF}" +mkdir -p $RUNTIME_FOLDER/.ssh +mkdir -p $RUNTIME_FOLDER/.ssh-server +mkdir -p $RUNTIME_FOLDER/labs-scripts + +# Start the demo servers +docker_compose -f $ROOT_FOLDER/Labs/000-setup/docker-compose.yaml up -d +sleep 5 + +# Verify that the ansible container has ansible installed +echo -e "${YELLOW}Verifying Ansible version${COLOR_OFF}" +docker exec -it ansible-controller ansible --version + +### Add the certificates to the authorized_keys on our ansible container +### In order to avoid adding keys to the host machine we are verifying that we +### are adding the keys to the demo .ssh folder +echo -e "${YELLOW}Connecting to hosts with ssh keys${COLOR_OFF}" + +# Add the key to the authorized_keys +echo "* Add key to authorized_keys" +touch $RUNTIME_FOLDER/.ssh/authorized_keys +chmod 600 $RUNTIME_FOLDER/.ssh/authorized_keys + +for i in {1..3} +do + echo -e "" + echo -e "${GREEN}-------------- linux-server-$i -------------- ${COLOR_OFF}" + echo -e "" + + echo -e "* ${YELLOW}Copying certificate to linux-server-$i ${COLOR_OFF}" + docker cp linux-server-$i:/root/.ssh/linux-server-$i $RUNTIME_FOLDER/.ssh + docker cp linux-server-$i:/root/.ssh/linux-server-$i.pub $RUNTIME_FOLDER/.ssh + + echo -e "* ${YELLOW}Adding certificate from linux-server-$i to known_hosts ${COLOR_OFF}" + cat $RUNTIME_FOLDER/.ssh/linux-server-$i.pub >> $RUNTIME_FOLDER/.ssh/known_hosts + + echo -e "* ${YELLOW}Checking ssh service on linux-server-$i ${COLOR_OFF}" + docker exec linux-server-$i bash service --status-all | grep 'ssh' + + echo -e "* ${YELLOW}Connecting to linux-server-$i ${COLOR_OFF}" + ssh -i $RUNTIME_FOLDER/.ssh/linux-server-$i \ + -p 300$i root@localhost \ + -o StrictHostKeyChecking=accept-new \ + -o UserKnownHostsFile=$RUNTIME_FOLDER/.ssh/known_hosts \ + cat /etc/hosts | grep --color=auto -E "linux-server-$i|$"; + +done \ No newline at end of file diff --git a/mkdocs-site/000-setup/02-init-ansible.sh b/mkdocs-site/000-setup/02-init-ansible.sh new file mode 100644 index 0000000..fa5a166 --- /dev/null +++ b/mkdocs-site/000-setup/02-init-ansible.sh @@ -0,0 +1,98 @@ +#!/bin/bash + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) + +# Load the common script +source $ROOT_FOLDER/_utils/common.sh + +### +### Create the required files for this demo +### +echo -e "${YELLOW}-----------------------------------${COLOR_OFF}" +echo -e "${CYAN}* Creating the required files" + +echo -e "${CYAN}* Creating $RUNTIME_FOLDER/labs-scripts/ansible.cfg${COLOR_OFF}" +cat << "EOF" > $RUNTIME_FOLDER/labs-scripts/ansible.cfg +## +## This is the main configuration file for our demo application +## + +# This is the default location of the inventory file, script, or directory +# that Ansible will use to determine what hosts it has available to talk to +[defaults] + +# Define that inventory info is in the file named “inventory” +inventory = inventory + +# Force output in colors +force_color = True + +# Specify remote hosts, so we do not need to config them in main ssh config +[ssh_connection] +transport = ssh + + +# The location of the ssh config file +# We will create this file in our next step +ssh_args = -F ssh.config \ + -o ControlMaster=auto \ + -o ControlPersist=60s \ + -o StrictHostKeyChecking=no \ + -o UserKnownHostsFile=/root/.ssh/known_hosts +EOF + +echo -e "${CYAN}* Creating $RUNTIME_FOLDER/labs-scripts/ssh.config${COLOR_OFF}" +cat << "EOF" > $RUNTIME_FOLDER/labs-scripts/ssh.config +# Set up the desired hosts +# keep in mind that we have set up the hosts in the docker-compose +Host * + # Disable host key checking: + # avoid asking for the key-print authenticity + StrictHostKeyChecking no + + UserKnownHostsFile /dev/null + + # Enable hashing known_host file + HashKnownHosts yes + + # IdentityFile allows to specify private keys we wish to use for authentication + # Authentication = the process of Authentication + # We will use the auto-generated ssh keys from our Docker container + +# List the desired servers. +# the hosts are defined in the docker-compose which we created in the setup lab) +Host linux-server-1 + HostName linux-server-1 + IdentityFile /root/.ssh/linux-server-1 + User root + Port 22 + +Host linux-server-2 + HostName linux-server-2 + IdentityFile /root/.ssh/linux-server-2 + User root + Port 22 + +Host linux-server-3 + HostName linux-server-3 + IdentityFile /root/.ssh/linux-server-3 + User root + Port 22 +EOF + +echo -e "${CYAN}* Creating $RUNTIME_FOLDER/labs-scripts/inventory${COLOR_OFF}" +cat << "EOF" > $RUNTIME_FOLDER/labs-scripts/inventory +### +### List of servers which we want ansible to connect to +### The names are defined in the docker-compose +### + +[servers] + linux-server-1 ansible_ssh_common_args='-o UserKnownHostsFile=/root/.ssh/known_hosts' + linux-server-2 ansible_ssh_common_args='-o UserKnownHostsFile=/root/.ssh/known_hosts' + linux-server-3 ansible_ssh_common_args='-o UserKnownHostsFile=/root/.ssh/known_hosts' +EOF + +echo -e "${CYAN}* List created files and folders${COLOR_OFF}" +tree -a $RUNTIME_FOLDER diff --git a/mkdocs-site/000-setup/Ansible-Controller/Dockerfile b/mkdocs-site/000-setup/Ansible-Controller/Dockerfile new file mode 100644 index 0000000..52382c8 --- /dev/null +++ b/mkdocs-site/000-setup/Ansible-Controller/Dockerfile @@ -0,0 +1,36 @@ +### +### Base images for Ansible Controller +### @Author: Nir Geier +### +FROM ubuntu + +# Update packages, install OpenSSH +RUN \ + apt update -o Acquire::http::Timeout=5 -y && \ + apt upgrade -o Acquire::http::Timeout=5 -y && \ + apt --purge autoremove -y && \ + apt install -y software-properties-common openssh-server vim && \ + apt-add-repository ppa:ansible/ansible && \ + apt install -y ansible + +# This directory is required by the SSH daemon to store its temporary runtime data. +RUN mkdir -p /var/run/sshd + +# We will need to use ssh +EXPOSE 22 + +# Copy the entrypoint script +# Generate keys when container is created +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +USER root + +### +### Debug +### +RUN apt install -y inetutils-ping + +# Run the loading script +ENTRYPOINT ["/entrypoint.sh"] + diff --git a/mkdocs-site/000-setup/Ansible-Controller/entrypoint.sh b/mkdocs-site/000-setup/Ansible-Controller/entrypoint.sh new file mode 100644 index 0000000..28e5cc8 --- /dev/null +++ b/mkdocs-site/000-setup/Ansible-Controller/entrypoint.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +mkdir -p /labs-scripts/ansible +mkdir -p /labs-scripts/scripts + +# unlock the user +echo "* Unlock root password" +passwd -u root + +# Create the sshd_config +echo "* Generate sshd_config" +cat << EOF >> /etc/ssh/sshd_config +PasswordAuthentication no +PermitRootLogin yes +Port 22 +Protocol 2 +EOF + +# switch to the labs folder +cd /labs-scripts + +# Start the ssh service +echo "* Start sshd service" +/usr/sbin/sshd -D & + +echo "* Waiting for ssh service to start" +sleep 5 + +# This container will wait for input +sleep inf diff --git a/mkdocs-site/000-setup/Linux-Server/Dockerfile b/mkdocs-site/000-setup/Linux-Server/Dockerfile new file mode 100644 index 0000000..9b9cbd4 --- /dev/null +++ b/mkdocs-site/000-setup/Linux-Server/Dockerfile @@ -0,0 +1,43 @@ +### +### Ansible server based upon ubuntu +### @Author: Nir Geier +### +FROM ubuntu + +# Update packages, install OpenSSH +RUN \ + apt update && \ + apt upgrade -y && \ + apt-get install -y openssh-server vim + +# This directory is required by the SSH daemon to store its temporary runtime data. +RUN mkdir -p /var/run/sshd +RUN mkdir -p /root/.ssh + +# We will need to use ssh +EXPOSE 22 + +# Add healthcheck +HEALTHCHECK \ + --interval=10s \ + --timeout=10s \ + --start-period=10s \ + --retries=10 \ + CMD \ + ssh -i ~/.ssh/$HOSTNAME \ + -o StrictHostKeyChecking=accept-new \ + root@localhost \ + exit + +# Copy the entrypoint script +# Generate keys when container is created +COPY entrypoint.sh /entrypoint.sh +RUN chmod +x /entrypoint.sh + +USER root + +# Run the loading script +ENTRYPOINT ["/entrypoint.sh"] + + + diff --git a/mkdocs-site/000-setup/Linux-Server/entrypoint.sh b/mkdocs-site/000-setup/Linux-Server/entrypoint.sh new file mode 100644 index 0000000..07cf7d6 --- /dev/null +++ b/mkdocs-site/000-setup/Linux-Server/entrypoint.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +# +# This script will create the required keys for the ansible playground +# We will connect to this continuer using ssh key +# +function create_ssh_key_file(){ + # Check to see if we have certificate + echo "* Creating SSH key for $HOSTNAME [$ssh_key_file]" + ssh-keygen -R $HOSTNAME + ssh-keygen -t rsa -q -P '' -f $ssh_key_file <<> /root/.ssh/authorized_keys + +# Set the required flags +chmod 600 /root/.ssh/authorized_keys + +# Create the sshd_config +echo "* Generate sshd_config" +cat << EOF > /etc/ssh/sshd_config +PasswordAuthentication no +PermitRootLogin yes +Port 22 +Protocol 2 +EOF + +# Start the ssh service +echo "* Start sshd service" +/usr/sbin/sshd -D & + +echo "* Waiting for ssh service to start" +sleep 10 + +# Check if SSH is running +# We will try for 5 times at most +for i in {1..5} +do + # Try to connect with ssh + ssh -v -i ~/.ssh/$HOSTNAME -o StrictHostKeyChecking=accept-new root@localhost + # Verify that ssh is running, if not restart it and retry + if [[ "$?" -eq 0 ]]; + then + # Exit the white loop + echo "SSH is running." + break + else + # Wait for the service to start + echo "SSH is not running. Retrying..." + create_ssh_key_file + /usr/sbin/sshd -D & + sleep 5 + fi +done + +# Continue with other commands if any +exec "$@" + +# Keep the container in idle mode +sleep infinity \ No newline at end of file diff --git a/mkdocs-site/000-setup/_demo.sh b/mkdocs-site/000-setup/_demo.sh new file mode 100644 index 0000000..b391b71 --- /dev/null +++ b/mkdocs-site/000-setup/_demo.sh @@ -0,0 +1,3 @@ +#!/bin/bash + +echo "The build for this labs in under .git/workflow" \ No newline at end of file diff --git a/mkdocs-site/000-setup/_setup.sh b/mkdocs-site/000-setup/_setup.sh new file mode 100644 index 0000000..a6d4495 --- /dev/null +++ b/mkdocs-site/000-setup/_setup.sh @@ -0,0 +1,12 @@ +#!/bin/bash + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) + +# Set the root folder for the demo +echo "ROOT_FOLDER=$ROOT_FOLDER" > .env + +# Spin up the docker containers +source $ROOT_FOLDER/Labs/000-setup/00-build-containers.sh +source $ROOT_FOLDER/Labs/000-setup/01-init-servers.sh +source $ROOT_FOLDER/Labs/000-setup/02-init-ansible.sh diff --git a/mkdocs-site/000-setup/docker-compose.yaml b/mkdocs-site/000-setup/docker-compose.yaml new file mode 100644 index 0000000..c557c32 --- /dev/null +++ b/mkdocs-site/000-setup/docker-compose.yaml @@ -0,0 +1,52 @@ +--- +# Build up the ansible container for our demo +services: + + ansible-controller: + image: nirgeier/ansible-controller + container_name: ansible-controller + environment: + ANSIBLE_CONFIG: /labs-scripts/ansible.cfg + volumes: + - /var/run/docker.sock:/var/run/docker.sock + - ${ROOT_FOLDER}/runtime/.ssh:/root/.ssh + - ${ROOT_FOLDER}/runtime/labs-scripts:/labs-scripts + + linux-server-1: + image: nirgeier/linux-server-1 + container_name: linux-server-1 + hostname: linux-server-1 + ports: + - "0.0.0.0:3001:22" + - "0.0.0.0:5001:5000" + - "0.0.0.0:8081:8080" + environment: + hostname: linux-server-1 + volumes: + - /var/run/docker.sock:/var/run/docker.sock + + linux-server-2: + image: nirgeier/linux-server-2 + container_name: linux-server-2 + hostname: linux-server-2 + ports: + - "0.0.0.0:3002:22" + - "0.0.0.0:5002:5000" + - "0.0.0.0:8082:8080" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + environment: + hostname: linux-server + + linux-server-3: + image: nirgeier/linux-server-3 + container_name: linux-server-3 + hostname: linux-server-3 + ports: + - "0.0.0.0:3003:22" + - "0.0.0.0:5003:5000" + - "0.0.0.0:8083:8080" + volumes: + - /var/run/docker.sock:/var/run/docker.sock + environment: + hostname: linux-server-3 diff --git a/mkdocs-site/000-setup/index.html b/mkdocs-site/000-setup/index.html new file mode 100644 index 0000000..5ce5dcc --- /dev/null +++ b/mkdocs-site/000-setup/index.html @@ -0,0 +1,93 @@ + 000 Setup - AnsibleLabs
Skip to content

Build Status


Lab 000 - Setup

  • In this lab we will define and build docker containers which to be used in the next of labs.
  • The lab structure consists of an Ansible controller & 3 Linux servers, all set inside docker containers.

01. Usage

  • There are several ways to run the Ansible Labs.
  • Choose the method that works best for you.
    • Killercoda (Recommended)
    • 🐳 Docker
    • 📜 From Source
    • Using Google Cloud Shell
  • The easiest way to get started with the labs
  • Learn Ansible in your browser without any local installation

🌐 Launch on Killercoda

Benefits:

  • No installation required
  • Pre-configured environment
  • Works on any device with a web browser
  • All tools pre-installed

Using Docker is the easiest way to get started locally with the labs:

# Change to the Labs directory
+cd Labs/000-setup
+
+# Run the setup lab using Docker Compose
+docker-compose up -d
+

Prerequisites:

  • Docker and Docker Compose installed on your system
  • No additional setup required

For those who prefer to run it directly on their machine:

# Clone the repository
+git clone https://github.com/nirgeier/AnsibleLabs.git
+# Change to the Labs directory
+cd AnsibleLabs/Labs
+# Start with the setup lab
+cd 000-setup
+# Follow the instructions in the README of each lab
+cat README.md
+
Prerequisites:

  • Ansible installed on your system
  • A Unix-like operating system (Linux, macOS, or Windows with WSL)
  • Basic command-line tools
  • Google Cloud Shell provides a free, browser-based environment with all necessary tools pre-installed.
  • Click on the Open in Google Cloud Shell button below:

Open in Cloud Shell

  • The repository will automatically be cloned into a free Cloud instance.
  • Use CTRL + click to open it in a new window.
  • Follow the instructions in the README of each lab.

Benefits:

  • No local installation required
  • Pre-configured environment
  • Works on any device with a web browser
  • All tools pre-installed
  • Free tier available

Lab Breakdown

  • If you choose to run the labs locally using Docker or From Source, follow the steps below to set up your environment.
  • Make sure you have the necessary tools installed.
  • Follow the instructions in the README of each lab.
  • Review the Dockerfile(s) and docker-compose.yml for container configurations.

02. Build From Source

  • Clone the git repo: git clone https://github.com/nirgeier/AnsibleLabs.git
  • Navigate to the Labs directory: cd AnsibleLabs/Labs/000-setup
  • The lab contains the docker-compose file along with the Dockerfile(s) The containers are based upon ubuntu and are published to DockerHub as well.
  • Build the demo containers
  • The docker-compose will create ansible-controller which will server as our controller to execute ansible playbooks on our demo servers defined by the names linux-server-X

Labs containers

Container Content
🐳 ansible-controller Linux container with ansible installed
🐳 linux-server-1 Linux container with ssh only (no ansible installed)
🐳 linux-server-2 Linux container with ssh only (no ansible installed)
🐳 linux-server-3 Linux container with ssh only (no ansible installed)
  • For the demo we will also need a shared folder(s) where the certificates and the configuration will be stored
  • The shared folder(s) will be mounted into the containers
  • The containers will have access to the shared folder(s) for reading and writing files
  • The shared folder(s) will be used to store the Ansible playbooks and inventory files
  • The shared folder(s) will be mounted at /labs-scripts in the containers

03. Core Concepts

  • Create Ansible Controller container, which will be used to manage the other containers
  • SSH Keys - The SSH keys will be generated and mounted into the containers
  • Initialize servers: Set up runtime directories, start demo containers via Docker Compose, verify Ansible installation, extract SSH keys from servers, configure known hosts, check SSH services, and test SSH connections to each Linux server

04. The setup script(s)

# Build the Ansible container & the Demo servers
+# The `_setup.sh` will build all we will need for this lab
+./_setup.sh
+

05. Setup Scripts Breakdown

Script Content
🗞️ 00-build-containers.sh 📒 Init the shared folders
🐳 Build the container(s)
🗞️ 01-init-servers.sh ⏯ Initialize the containers
🔐 Extract the ssh certificates
✓ verify that the ssh service is running in the containers
🗞️ 02-init-ansible.sh 🚀 Initialize the ansible files
📚 ansible.cfg
📚 ssh.config
📚 inventory

06. Verify Containers

$ docker ps -a
+
+
+# Expected output
+
+IMAGE                       PORTS                                                                  NAMES
+---------------------------------------------------------------------------------------------------------------------
+nirgeier/ansible-controller 22/tcp                                                                 ansible-controller
+nirgeier/linux-server       0.0.0.0:3001->22/tcp, 0.0.0.0:5001->5000/tcp, 0.0.0.0:8081->8080/tcp   linux-server-1
+nirgeier/linux-server       0.0.0.0:3002->22/tcp, 0.0.0.0:5002->5000/tcp, 0.0.0.0:8082->8080/tcp   linux-server-2
+nirgeier/linux-server       0.0.0.0:3003->22/tcp, 0.0.0.0:5003->5000/tcp, 0.0.0.0:8083->8080/tcp   linux-server-3
+

07. Next Steps

  • Proceed to Lab 001 - Verify Ansible configuration to start using Ansible with the configured environment.
  • Don’t forget to check the logs for any errors or issues during the setup process.
  • If you encounter any problems, refer to the troubleshooting section or open an issue on the GitHub repository.
  • Enjoy learning Ansible!
\ No newline at end of file diff --git a/mkdocs-site/000-setup/usage/index.html b/mkdocs-site/000-setup/usage/index.html new file mode 100644 index 0000000..71fffe1 --- /dev/null +++ b/mkdocs-site/000-setup/usage/index.html @@ -0,0 +1,74 @@ + Usage - AnsibleLabs
Skip to content

Usage

  • There are several ways to run the Ansible Labs.
  • Choose the method that works best for you.
    • Killercoda (Recommended)
    • 🐳 Docker
    • 📜 From Source
    • Using Google Cloud Shell
  • The easiest way to get started with the labs
  • Learn Ansible in your browser without any local installation

🌐 Launch on Killercoda

Benefits:

  • No installation required
  • Pre-configured environment
  • Works on any device with a web browser
  • All tools pre-installed

Using Docker is the easiest way to get started locally with the labs:

# Change to the Labs directory
+cd Labs/000-setup
+
+# Run the setup lab using Docker Compose
+docker-compose up -d
+

Prerequisites:

  • Docker and Docker Compose installed on your system
  • No additional setup required

For those who prefer to run it directly on their machine:

# Clone the repository
+git clone https://github.com/nirgeier/AnsibleLabs.git
+# Change to the Labs directory
+cd AnsibleLabs/Labs
+# Start with the setup lab
+cd 000-setup
+# Follow the instructions in the README of each lab
+cat README.md
+
Prerequisites:

  • Ansible installed on your system
  • A Unix-like operating system (Linux, macOS, or Windows with WSL)
  • Basic command-line tools
  • Google Cloud Shell provides a free, browser-based environment with all necessary tools pre-installed.
  • Click on the Open in Google Cloud Shell button below:

Open in Cloud Shell

  • The repository will automatically be cloned into a free Cloud instance.
  • Use CTRL + click to open it in a new window.
  • Follow the instructions in the README of each lab.

Benefits:

  • No local installation required
  • Pre-configured environment
  • Works on any device with a web browser
  • All tools pre-installed
  • Free tier available

Lab Breakdown

  • If you choose to run the labs locally using Docker or From Source, follow the steps below to set up your environment.
  • Make sure you have the necessary tools installed.
  • Follow the instructions in the README of each lab.
  • Review the Dockerfile(s) and docker-compose.yml for container configurations.

02. Build From Source

  • Clone the git repo: git clone https://github.com/nirgeier/AnsibleLabs.git
  • Navigate to the Labs directory: cd AnsibleLabs/Labs/000-setup
  • The lab contains the docker-compose file along with the Dockerfile(s) The containers are based upon ubuntu and are published to DockerHub as well.
  • Build the demo containers
  • The docker-compose will create ansible-controller which will server as our controller to execute ansible playbooks on our demo servers defined by the names linux-server-X

Labs containers

Container Content
🐳 ansible-controller Linux container with ansible installed
🐳 linux-server-1 Linux container with ssh only (no ansible installed)
🐳 linux-server-2 Linux container with ssh only (no ansible installed)
🐳 linux-server-3 Linux container with ssh only (no ansible installed)
  • For the demo we will also need a shared folder(s) where the certificates and the configuration will be stored
  • The shared folder(s) will be mounted into the containers
  • The containers will have access to the shared folder(s) for reading and writing files
  • The shared folder(s) will be used to store the Ansible playbooks and inventory files
  • The shared folder(s) will be mounted at /labs-scripts in the containers

\ No newline at end of file diff --git a/mkdocs-site/001-verify-ansible/_demo.sh b/mkdocs-site/001-verify-ansible/_demo.sh new file mode 100644 index 0000000..9c7f140 --- /dev/null +++ b/mkdocs-site/001-verify-ansible/_demo.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +### +### Check the servers with simple ansible configuration +### + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) + +# Load the common script +source $ROOT_FOLDER/_utils/common.sh + +# Spin up the docker containers +source $ROOT_FOLDER/Labs/000-setup/01-init-servers.sh 2>&1 > /dev/null +source $ROOT_FOLDER/Labs/000-setup/02-init-ansible.sh 2>&1 > /dev/null + +echo -e "${YELLOW} ----------------------------------------------------------------------${COLOR_OFF}" +echo -e "" +echo -e "${CYAN}* Check ansible configuration ${COLOR_OFF}" +docker exec ansible-controller ansible --version + +echo -e "${YELLOW}----------------------------------------------------------------------${COLOR_OFF}" +echo -e "" +echo -e "${CYAN}* Check the setup, execute a basic ansible script${COLOR_OFF}" +echo -e "${GREEN}* Executing: ${YELLOW}ansible all -m ping${COLOR_OFF}" +# Test that the servers can accept connections from the ansible server +docker exec ansible-controller sh -c "cd /labs-scripts && ansible all -m ping" \ No newline at end of file diff --git a/mkdocs-site/001-verify-ansible/index.html b/mkdocs-site/001-verify-ansible/index.html new file mode 100644 index 0000000..56ee8a8 --- /dev/null +++ b/mkdocs-site/001-verify-ansible/index.html @@ -0,0 +1,228 @@ + 001 Verify Ansible - AnsibleLabs
Skip to content

Build Status


Lab 001 - Verify Ansible configuration

  • In this lab we will create the Ansible configuration and verify that it is configured correctly.
  • This lab is based upon the previous lab and its docker-compose.
  • In this lab we will learn how to use:
    • ansible.cfg
    • inventory
    • ssh.config

Pre-Requirements

  • Complete the previous lab in order to have the Ansible controller and the Linux servers up and running.

01. Create configuration files

IMPORTANT!

  • In this lab we will be placing the files under the /labs-scripts directory.
  • The directory is mounted to our docker container(s) under the <PROJECT_ROOT>/runtime directory.
  • You are encouraged to review the docker-compose.yaml file throughout the lab session.

02. About ansible.cfg file

  • What is ansible.cfg ?
    • The ansible.cfg file is an INI-like configuration file used to define various settings and parameters that influence how Ansible operates.
    • It allows users to customize Ansible’s behavior, such as specifying inventory locations, default module settings, connection options, and more.
    • The ansible.cfg file can be placed in several locations, and Ansible will search for it in a specific order.
    • The configuration file is divided into sections, each containing various customizable parameters that control different aspects of Ansible’s functionality.
    • Below we will create the ansible.cfg file, the ssh.config file and the inventory file.

03. ansible.cfg locations:

  • Reference: Official Ansible documentation: - Ansible Configuration Settings
  • Ansible searches ansible.cfg in a specific order.
  • The first file it finds will be used while ignoring the rest.
  • Ansible will search for the configuration file in the following order:

    Search resource Description
    ANSIBLE_CONFIG environment variable if set
    ansible.cfg In the current directory
    ~/.ansible.cfg Under the home directory
    /etc/ansible/ansible.cfg OS common path
  • In this exercise the environment variable ANSIBLE_CONFIG is set in the docker container path /labs-scripts/.ansible.cfg


04. ansible.cfg structure:

  • The ansible.cfg file is divided into sections, each containing various customizable parameters.

  • Main ansible.cfg settings:

Setting Description Ansible Docs
[callback_plugins] Specifies directories for callback plugins that customize output or trigger actions. Docs
[connection] Defines general connection settings that apply to all connection types. Docs
[defaults] Contains general settings for Ansible such as inventory location, verbosity, and log settings. Docs
[diff] Controls whether Ansible shows differences when applying configurations. Docs
[galaxy] Configures settings for Ansible Galaxy, a hub for sharing roles and collections. Docs
[inventory] Defines options related to inventory parsing and caching. Docs
[logging] Logging configuration, typically under [defaults] section using log_path. Docs
[paramiko_connection] Configures settings specific to the Paramiko SSH library. Docs
[privilege_escalation] Defines settings related to privilege escalation, such as sudo or become. Docs
[ssh_connection] Settings for SSH connections, (timeout, control settings etc). Docs
[winrm] Configures settings for Windows Remote Management (WinRM) connections. Docs

[callback_plugins]

  • The [callback_plugins] section specifies directories where Ansible looks for callback plugins, which can customize output or trigger actions based on playbook events.
    [callback_plugins]
    +    stdout_callback     =    yaml
    +    callback_whitelist  =    timer, profile_tasks
    +

[connection]

  • The [connection] section defines general connection settings that apply to all connection types.
    [connection]
    +    pipelining          =    True
    +    control_path_dir    =    ~/.ansible/cp
    +

[defaults]

  • The [defaults] section contains the general settings for Ansible (such as inventory location, verbosity and log settings).
  • It is the most commonly used section and is often the first place users look to customize their Ansible environment.
  • Here are some commonly used settings in the [defaults] section:

    • ask_pass - If set to true, Ansible will prompt for the SSH password.
    • host_key_checking - If set to false, Ansible will not check SSH host keys.
    • inventory - Specifies the path to the inventory file.
    • log_path - Specifies the path to the log file.
    • remote_user - Specifies the default remote user for SSH connections.
    • timeout - Specifies the timeout for SSH connections in seconds.
    • private_key_file - Specifies the path to the private key file for SSH authentication.
    • become - If set to true, privilege escalation (e.g., sudo) will be used.
    • become_method - Specifies the method to use for privilege escalation (e.g., sudo, su).
    • become_user - Specifies the user to become when using privilege escalation.
    • retry_files_enabled - If set to false, Ansible will not create retry files.
    • gathering - Specifies how facts are gathered (e.g., smart, explicit, none).
    [defaults]
    +    ask_pass            =    false
    +    host_key_checking   =    false
    +    inventory           =    /etc/ansible/hosts
    +    log_path            =    /var/log/ansible.log
    +    remote_user         =    ansible
    +    timeout             =    30
    +

[diff]

  • Controls whether Ansible shows differences when applying configurations.
  • This can be useful for debugging and understanding changes.

    • always - Show differences even when the playbook is not run in check mode.
    • context - The number of lines of context to show around changes.
    • ignore - Do not show differences.
    • diff - Show a unified diff of changes.
    • unified - Show a unified diff of changes with context lines.
    [diff]
    +    always              =    True
    +    context             =    5
    +

[galaxy]

  • The [galaxy] section configures settings for Ansible Galaxy, which is a hub for sharing and downloading Ansible roles and collections.
  • This section can be used to specify custom Galaxy servers, caching options, and other related settings.
  • Here is an example configuration for the [galaxy] section:

    • server_list - Specifies the list of Galaxy servers to use.
    • cache_dir - Specifies the directory to cache downloaded roles and collections.
    • role_file - Specifies the path to the file containing role definitions.
    • collection_file - Specifies the path to the file containing collection definitions.
    • requirements_file - Specifies the path to the file containing Galaxy requirements.
    • role_file - Specifies the path to the file containing role definitions.
    [galaxy]
    +    server_list         =    release_galaxy
    +    cache_dir           =    ~/.ansible/galaxy_cache
    +

[inventory]

  • Defines options related to inventory parsing and caching.
  • Inventory is a critical component of Ansible, as it defines the hosts and groups of hosts that Ansible will manage.
  • The inventory can be specified in various formats, including INI files, YAML files, and dynamic inventory scripts.
  • The inventory can also be cached to improve performance.
  • Here are some commonly used settings in the [inventory] section:

    • enable_plugins - Specifies the inventory plugins to use.
    • cache - If set to true, inventory caching will be enabled.
    • cache_plugin - Specifies the inventory cache plugin to use.
    • cache_timeout - Specifies the timeout for inventory caching in seconds.
    • inventory_ignore_extensions - Specifies file extensions to ignore when loading inventory files.
    • inventory_loader - Specifies the inventory loader to use.
    • strict - If set to true, Ansible will enforce strict inventory parsing.
    • host_key_checking - If set to true, Ansible will check SSH host keys for inventory hosts.
    • enable_inventory_cache - If set to true, inventory caching will be enabled.
    • inventory_cache_timeout - Specifies the timeout for inventory caching in seconds.
    • inventory_cache_connection - Specifies the connection string for the inventory cache plugin.
    [inventory]
    +    enable_plugins      =    host_list, ini, auto
    +    cache               =    True
    +    cache_plugin        =    memory
    +    cache_timeout       =    3600
    +

[logging]

  • Ansible does not have a dedicated [logging] section in ansible.cfg.
  • Instead, logging is typically configured under the [defaults] section using the log_path directive.
  • log_path controls where Ansible logs its output.
  • If log_path is set, Ansible will write logs to the specified file, where as if it is not set, or left empty, logging will be disabled.
  • Here is an example of how to configure logging in the [defaults] section:
    [defaults]
    +    log_path            =     /var/log/ansible.log
    +    log_level           =     info
    +    log_format          =     default
    +    log_date_format     =     iso8601
    +    log_ansi            =     True
    +    log_color           =     auto
    +    log_file            =     /var/log/ansible.log
    +    log_rotate          =     True
    +    log_max_size        =     10485760
    +    log_compress        =     True
    +    log_backup_count    =     5
    +    log_http            =     False
    +    log_json            =     True
    +

[paramiko_connection]

  • The [paramiko_connection] section configures settings specific to the Paramiko SSH library, an alternative to OpenSSH for SSH connections.
  • Here are some commonly used settings in the [paramiko_connection] section:

    • pty - If set to true, a pseudo-terminal will be allocated for the connection.
    • look_for_keys - If set to true, Paramiko will look for SSH keys
    • banner_timeout - Specifies the timeout for receiving the SSH banner.
    • keepalive - If set to true, keepalive messages will be sent to
    [paramiko_connection]
    +    pty                 =    False
    +    look_for_keys       =    True
    +

[privilege_escalation]

  • The [privilege_escalation] section defines settings related to privilege escalation (such as sudo or become).
  • The become directive is used to enable privilege escalation.

  • Here are some commonly used settings in the [privilege_escalation] section:

    • become - If set to true, privilege escalation will be used.
    • become_method - Specifies the method to use for privilege escalation (e.g., sudo, su).
    • become_user - Specifies the user to become when using privilege escalation.
    • become_ask_pass - If set to true, Ansible will prompt for the privilege escalation password.
    • become_flags - Specifies any additional flags to pass to the privilege escalation command.
    • become_exe - Specifies the path to the privilege escalation executable.
    • become_pass - Specifies the password to use for privilege escalation.
    [privilege_escalation]
    +    become              =    True
    +    become_method       =    sudo
    +    become_user         =    root
    +    become_ask_pass     =    False
    +

[ssh_connection]

  • Settings for SSH connections, (timeout, control settings etc).
  • ControlMaster and ControlPersist options are used for SSH multiplexing, allowing multiple SSH sessions to share a single connection.
  • ssh_args can be used to pass additional options to the SSH command.
  • pipelining can be enabled to reduce the number of SSH connections.
  • scp_if_ssh specifies whether to use SCP for file transfers when using SSH.

    [ssh_connection]
    +    ssh_args            =    -o ControlMaster=auto -o ControlPersist=60s
    +    pipelining          =    True
    +    scp_if_ssh          =    True
    +

[winrm]

  • The [winrm] section configures settings for Windows Remote Management (WinRM) connections, used for managing Windows hosts.
  • Here are some commonly used settings in the [winrm] section:

    • transport - Specifies the transport method to use (e.g., basic, ntlm).
    • cert_validation - Controls certificate validation (e.g., ignore, validate).
    • read_timeout_sec - Specifies the read timeout for WinRM connections in seconds.
    • operation_timeout_sec - Specifies the operation timeout for WinRM connections in seconds.
    • max_retries - Specifies the maximum number of retries for WinRM connections.
    • retry_delay - Specifies the delay between retries for WinRM connections.
    [winrm]
    +    transport           =    basic
    +    cert_validation     =    ignore
    +

05. Auto Generate ansible.cfg

  • You can choose to execute ansible-config init, which will generate a sample Ansible configuration file.
  • As this is the main configuration file for our demo application, it is the content of ansible.cfg which we will use in this lab.

    # File location: $RUNTIME_FOLDER/labs-scripts/ansible.cfg.
    +# This is the default location of the inventory file, script, or directory that 
    +Ansible will use to determine what hosts it has available to talk to.
    +
    +# Defines that the inventory info is in a file named “inventory”.
    +[defaults]
    +    inventory = inventory
    +
    +# Specifies remote hosts, so we do not need to config them in main SSH config.
    +[ssh_connection]
    +    transport = ssh
    +    transfer_method = scp
    +
    +    # The location of the SSH config file.
    +    # We will create this file in our next step.
    +    ssh_args  = -F ssh.config                   \
    +                -o ControlMaster=auto           \
    +                -o ControlPersist=60s           \
    +                -o StrictHostKeyChecking=no     \
    +                -o UserKnownHostsFile=/root/.ssh/known_hosts
    +

06. Create the ssh.config file

  • Ansible operates in Linux environments using SSH protocol, in order to run Ansible playbooks.
  • By default, Ansible uses the default SSH keys, unless provided with an SSH configuration file.
  • Ansible ssh.config file allows you to define custom SSH settings for connecting to remote hosts.
  • In this demo we will use our own ssh.config configuration file.
    # File location: $RUNTIME_FOLDER/labs-scripts/ssh.config
    +# Set up the desired hosts
    +# keep in mind that we have set up the hosts in the docker-compose
    +
    +Host *
    +
    +# Disable host key checking
    +# Avoid asking for the key-print authenticity
    +StrictHostKeyChecking no        
    +UserKnownHostsFile    /dev/null
    +
    +# Enable hashing known_host file
    +HashKnownHosts        yes
    +
    +# IdentityFile allows to specify private keys we wish to use for authentication
    +# Authentication = the process of authentication
    +# We will use the auto-generated SSH keys from our Docker container
    +
    +# List the desired servers
    +# The hosts are defined in the docker-compose which we created in the setup lab
    +
    +Host                  linux-server-1
    +    HostName          linux-server-1
    +    IdentityFile      /root/.ssh/linux-server-1
    +    User              root
    +    Port              22
    +
    +Host                  linux-server-2
    +    HostName          linux-server-2
    +    IdentityFile      /root/.ssh/linux-server-2
    +    User              root
    +    Port              22
    +
    +Host                  linux-server-3
    +    HostName          linux-server-3
    +    IdentityFile      /root/.ssh/linux-server-3
    +    User              root
    +    Port              22
    +

07. Create the inventory file

  • See Ansible documentation: How to build your inventory.
  • An Ansible inventory file is a configuration file that lists and categorizes the hosts Ansible will manage.
  • It provides a structured way to define hosts and groups, enabling efficient targeting and execution of tasks on specific hosts or groups of hosts.
  • The simplest inventory is a single file with a list of hosts and groups.
  • The inventory is written using the INI format.
  • inventory can be written in other formats as well, such as YAML and Dynamic Inventory which dynamically configure the inventory with scripts.
  • The default location for this file is /etc/ansible/hosts.
  • If /etc/ansible/hosts doesn’t exists, ansible will look for user specific inventory file, to be placed at $HOME/.ansible/hosts
  • You can specify a different inventory file at the command line using the -i <path> inventory option when executing Ansible commands or by exporting the ANSIBLE_INVENTORY environment variable.
  • Using -i <path> inventory option takes precedence over environment variable.
  • The inventory configuration we will use for the labs:
    # File location: $RUNTIME_FOLDER/labs-scripts/inventory
    +
    +# List of servers which we want ansible to connect to
    +# The names are defined in the docker-compose
    +
    +[servers]
    +    linux-server-1 ansible_ssh_common_args='-o UserKnownHostsFile=/root/.ssh/known_hosts'
    +    linux-server-2 ansible_ssh_common_args='-o UserKnownHostsFile=/root/.ssh/known_hosts'
    +    linux-server-3 ansible_ssh_common_args='-o UserKnownHostsFile=/root/.ssh/known_hosts'
    +
    +[all:vars]
    +
    +# Extra "global" variables for the inventory
    +

This inventory file is written following these rules:

  • Information is described by one node per line, such as linux-server-xx.
  • A node line consists of an identifier of the node (ex. linux-server-X) and a host variable(s) (ex. ansible_host=xxxx), to be given to the node .
  • You can also specify an IP address or FQDN for the linux-server-xx part.
  • You can create a group of hosts with [group_name]. In our inventory the group name is [servers].
  • You can use any group name except [all] and [localhost] (e.g., [webservers] or [databases] can be used as group names for servers).

    [all]

    • all is a special group that points to all nodes described in the inventory.
    • The [all:vars] & group variables are defined for the group all.
      • When we use a group, we can use the whole group as “hosts” for ansible.
    • A magic variable, represented by ansible_xxxx, contains special values that control Ansible’s behavior and environment information that Ansible will automatically retrieve.
    • Details are explained in the variables section.

08. Prepare for execution


Test Ansible configuration

  • Now we are ready to start play with Ansible!

09. Check Ansible configuration

  • The first step is to test Ansible configuration

    # Verify that Ansible is installed correctly
    +docker exec ansible-controller ansible --version
    +

  • Sample output

    ansible [core 2.17.9]
    +config file = /labs-scripts/ansible.cfg
    +configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
    +ansible python module location = /usr/lib/python3/dist-packages/ansible
    +ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
    +executable location = /usr/bin/ansible
    +python version = 3.12.3 (main, Feb  4 2025, 14:48:35) [GCC 13.3.0] (/usr/bin/python3)
    +jinja version = 3.1.2
    +libyaml = True
    +
  • We are looking for the following line:

    config file = /labs-scripts/ansible.cfg
    +

10. Basic ansible configuration

  • Once all is ready, lets check if the controller can connect to the servers with the Ansible ping command.
  • ping is an Ad-Hoc Ansible command that we will cover later on.

    # Ping the servers and check that they are "alive"
    +docker exec ansible-controller sh -c "cd /labs-scripts && ansible all -m ping"
    +
    +### Output
    +* Executing: ansible all -m ping
    +linux-server-2 | SUCCESS => {
    +    "ansible_facts": {
    +        "discovered_interpreter_python": "/usr/bin/python3"
    +    },
    +    "changed": false,
    +    "ping": "pong"
    +}
    +linux-server-1 | SUCCESS => {
    +    "ansible_facts": {
    +        "discovered_interpreter_python": "/usr/bin/python3"
    +    },
    +    "changed": false,
    +    "ping": "pong"
    +}
    +linux-server-3 | SUCCESS => {
    +    "ansible_facts": {
    +        "discovered_interpreter_python": "/usr/bin/python3"
    +    },
    +    "changed": false,
    +    "ping": "pong"
    +}
    +
\ No newline at end of file diff --git a/mkdocs-site/002-no-inventory/_demo.sh b/mkdocs-site/002-no-inventory/_demo.sh new file mode 100644 index 0000000..41baaa6 --- /dev/null +++ b/mkdocs-site/002-no-inventory/_demo.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) + +# Load the common script +source $ROOT_FOLDER/_utils/common.sh + +# Spin up the docker containers +source $ROOT_FOLDER/Labs/000-setup/01-init-servers.sh 2>&1 > /dev/null +source $ROOT_FOLDER/Labs/000-setup/02-init-ansible.sh 2>&1 > /dev/null + +# Empty the inventory file so that no server is listening +echo -e "${CYAN}* Creating $RUNTIME_FOLDER/labs-scripts/inventory" +cat < $RUNTIME_FOLDER/labs-scripts/inventory +### +### Empty inventory file +### + +[servers] +EOF + +echo -e "${YELLOW}-----------------------------------${COLOR_OFF}" +echo -e "${Red}* Our inventory file:${COLOR_OFF}" +cat $RUNTIME_FOLDER/labs-scripts/inventory + +echo -e "${YELLOW}-----------------------------------${COLOR_OFF}" +echo -e "${Red}* Ansible should fail. No inventory file used${COLOR_OFF}" +echo -e "${GREEN}* Executing: ${YELLOW}ansible all -m ping${COLOR_OFF}" +# The script should fail +docker exec ansible-controller sh -c "cd /labs-scripts && ansible all -m ping" + + diff --git a/mkdocs-site/002-no-inventory/index.html b/mkdocs-site/002-no-inventory/index.html new file mode 100644 index 0000000..0bb46fc --- /dev/null +++ b/mkdocs-site/002-no-inventory/index.html @@ -0,0 +1,166 @@ + 002 No Inventory - AnsibleLabs
Skip to content

Build Status


Lab 002 - No Inventory

  • In this lab we will learn about Ansible inventory and how it affects automation tasks.
  • We will start with an empty inventory and observe Ansible’s behavior with no hosts defined. Later, we will create and test the inventory file.
  • This lab is based upon the previous lab and its docker-compose setup.

Pre-Requirements

  • Complete the previous lab in order to have Ansible configured.

01. “Clear” the inventory

  • Let’s clear the inventory from previous labs and walk through what is inventory.

02. Create the inventory file

Ansible Inventory

  • An Ansible inventory can either be a single file or a collection of files
  • The inventory defines the [hosts] and [groups] of hosts upon which Ansible will operate.
  • It’s simply a list of servers that Ansible can connect with and manage.

Key features of Ansible inventory

  • Can be in various formats, such as INI, JSON, YAML and more.
  • YAML being the most common format.
  • inventory defines the target hosts for playbook execution.
  • inventory organizes hosts into logical groups for easier management.
  • inventory can store host-specific variables and group variables.
  • inventory supports nested groups (groups of groups).

03. inventory samples

- `INI` format
+    ```ini
+    [webservers]
+    web1.example.com
+    web2.example.com
+
+    [database]
+    db1.example.com
+    ```
+
+- `YAML` format
+    ```yaml
+    all:
+        hosts:
+            web1.example.com:
+            web2.example.com:
+        children:
+            database:
+            hosts:
+                db1.example.com:
+    ```
+
+- `JSON` format
+    ```json
+    {
+    "all": {
+        "hosts": {
+        "web1.example.com": {
+            "ansible_port": 2222,
+            "http_port": 80
+        },
+        "web2.example.com": {
+            "ansible_port": 2223,
+            "http_port": 8080
+        }
+        },
+        "children": {
+        "database": {
+            "hosts": [
+            "db1.example.com"
+            ]
+          }
+        }
+      }
+    }
+    ```
+

Inventory types in Ansible

  1. Static Inventory

    • This is generally a simple text file (usually in INI or YAML format) that lists the hosts and their corresponding groups.
  2. Dynamic Inventory

    • This is generated by a script or a program that retrieves host information from an external source (such as cloud providers like AWS, Azure, etc.), LDAP or from a database.
    • This allows for real-time updates and adaptability as environments change.

    See an example of generating a dynamic inventory using Python code for fetching data from a database:

    #!/usr/bin/env python
    +import sqlite3
    +import json
    +
    +def get_inventory():
    +    conn = sqlite3.connect('servers.db')
    +    cursor = conn.cursor()
    +
    +    cursor.execute('SELECT hostname, group_name, ansible_user FROM servers')
    +    rows = cursor.fetchall()
    +
    +    inventory = {'all': {'hosts': [], 'vars': {}}}
    +
    +    for row in rows:
    +        hostname, group_name, ansible_user = row
    +
    +        if group_name not in inventory:
    +            inventory[group_name] = {'hosts': [], 'vars': {}}
    +
    +        inventory['all']['hosts'].append(hostname)
    +        inventory[group_name]['hosts'].append(hostname)
    +        inventory[group_name]['vars']['ansible_user'] = ansible_user
    +
    +    conn.close()
    +    return inventory
    +
    +if __name__ == "__main__":
    +    print(json.dumps(get_inventory()))
    +


04. Lab exercise

  • Let’s create the inventory configuration that we will use for the labs:

    ### File location: $RUNTIME_FOLDER/labs-scripts/inventory
    +###
    +### List of servers which we want Ansible to connect to
    +### The names are defined in the docker-compose
    +###
    +
    +[servers]
    +# No server will be defined at this step
    +

05. No inventory invocation

  • Once all is ready, let’s check if the controller can connect to the servers using ping

    # Ping the servers and check that they are "alive"
    +docker exec ansible-controller sh -c "cd /labs-scripts && ansible all -m ping"
    +
    +## Output
    +## -------------------------------------------------------------------------------
    +[WARNING]: provided hosts list is empty, only localhost is available. Note that
    +the implicit localhost does not match 'all'
    +

06. inventory invocation

  • Fill in the inventory based upon the previous labs’ configuration and test it.
  • Verify that the inventory is defined correctly with:
    ansible-inventory -i <inventory_file> --graph
    +
  • Test the inventory file with
    ansible -i <inventory_file> -m ping
    +
  • Suggested Solution

    ###
    +### List of servers which we want ansible to connect to
    +### The names are defined in the docker-compose
    +###
    +
    +[servers]
    +  linux-server-1 ansible_ssh_common_args='-o UserKnownHostsFile=/root/.ssh/known_hosts'
    +  linux-server-2 ansible_ssh_common_args='-o UserKnownHostsFile=/root/.ssh/known_hosts'
    +  linux-server-3 ansible_ssh_common_args='-o UserKnownHostsFile=/root/.ssh/known_hosts'
    +

\ No newline at end of file diff --git a/mkdocs-site/003-modules/_demo.sh b/mkdocs-site/003-modules/_demo.sh new file mode 100644 index 0000000..74d836f --- /dev/null +++ b/mkdocs-site/003-modules/_demo.sh @@ -0,0 +1,33 @@ +#!/bin/bash + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) + +# Load the common script +source $ROOT_FOLDER/_utils/common.sh + +# Spin up the docker containers +source $ROOT_FOLDER/Labs/000-setup/01-init-servers.sh 2>&1 > /dev/null +source $ROOT_FOLDER/Labs/000-setup/02-init-ansible.sh 2>&1 > /dev/null + +echo -e "${YELLOW}-----------------------------------${COLOR_OFF}" +echo -e "${Red}* Our inventory file:${COLOR_OFF}" +cat $RUNTIME_FOLDER/labs-scripts/inventory + +echo -e "${YELLOW}-----------------------------------${COLOR_OFF}" +echo -e "${GREEN}* Executing: ${YELLOW}ansible all -m ping${COLOR_OFF}" + +# Execute the different modules + +echo -e "" +echo -e "${YELLOW}[ansible all -m ping] -----------------------------------${COLOR_OFF}" +docker exec ansible-controller sh -c "cd /labs-scripts && ansible all -m ping" + +echo -e "" +echo -e "${YELLOW}[ansible all -m shell -a 'hostname'] -----------------------------------${COLOR_OFF}" +docker exec ansible-controller sh -c "cd /labs-scripts && ansible all -m shell -a 'hostname'" + +echo -e "" +echo -e "${YELLOW}[ansible linux-server-1 -m shell -a 'uname -a'] -----------------------------------${COLOR_OFF}" +docker exec ansible-controller sh -c "cd /labs-scripts && ansible linux-server-1 -m shell -a 'uname -a'" + diff --git a/mkdocs-site/003-modules/index.html b/mkdocs-site/003-modules/index.html new file mode 100644 index 0000000..4fe3ac1 --- /dev/null +++ b/mkdocs-site/003-modules/index.html @@ -0,0 +1,178 @@ + 003 Modules - AnsibleLabs
Skip to content

Lab 003 - Commands & Modules

  • In this section, we will cover the Modules.
  • Modules are important elements and act as the “heart” of Ansible.

Ansible Architecture Ansible Architecture

What is a Module?

  • A module is a unit of code in Ansible that performs common operations in infrastructure management, such as configuring systems, installing software, or managing resources.
  • Ansible has a huge number of modules.
  • You can browser and search ansible builtin modules under the Build In Ansible Modules
  • Module are used for task automation.

Sample Module - The build in ‘ping’ Module

  • In this lab we will explore the build in ping Module
  • The source code for this module is: https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/ping.py

01. The ping module

  • Source: https://github.com/ansible/ansible/blob/devel/lib/ansible/modules/ping.py
  • Docs: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/ping_module.html

From the docs:

  • ansible.builtin.ping module – Try to connect to host, verify a usable python and return pong on success
  • This module is part of ansible-core and included in all Ansible installations.
  • In most cases, you can use the short module name ping
  • Now we will break down the code, fell free to browse and look on the full code Browse the code.

01.01. The ping source code

  • At the time of writing this tutorial, the “implementation” of the ping is the following
    RETURN = '''
    +ping:
    +    description:  Value provided with the O(data) parameter.
    +    returned:     success
    +    type:         str
    +    sample:       pong
    +'''
    +
    +from ansible.module_utils.basic import AnsibleModule
    +
    +def main():
    +    module = AnsibleModule(
    +        argument_spec=dict(
    +            data=dict(type='str', default='pong'),
    +        ),
    +        supports_check_mode=True
    +    )
    +
    +    if module.params['data'] == 'crash':
    +        raise Exception("boom")
    +
    +    result = dict(
    +        ping=module.params['data'],
    +    )
    +
    +    module.exit_json(**result)
    +
    +if __name__ == '__main__':
    +    main()
    +

02. List of modules

  • Modules are managed in the form of `collection’, and each collection contains multiple related modules.
  • List of Collections

Note: Up to version 2.9 Ansible included all modules by default, but the number of modules increased so much that it was changed to the current format (2.10 and later)

02. Using modules

  • By default Ansible is installed with ansible.builtin as the only collection.
  • A list of modules that are available in the ansible.builtin click here

02.01. Find modules for you OS

  • To see which modules are available for you OS use this command:
    ansible-doc -l
    +
    +### Output (only first few lines)
    +add_host        Add a host (and alternatively a group) to the ansible-playbook in-memory inventor...
    +apt             Manages apt-packages
    +apt_key         Add or remove an apt key
    +apt_repository  Add and remove APT repositories
    +assemble        Assemble configuration files from fragments
    +assert          Asserts given expressions are true
    +async_status    Obtain status of asynchronous task
    +blockinfile     Insert/update/remove a text block surrounded by marker lines
    +

02.02. Documentation

  • To view documentation for a specific module:
    # Display the ping documentation
    +$ ansible-doc ping
    +
    +> ANSIBLE.BUILTIN.PING    (/opt/homebrew/Cellar/ansible/9.4.0_1/libexec/lib/python3.12/site-packages/ansible/modules/ping>
    +
    +      A trivial test module, this module always returns `pong' on successful contact. It does
    +      not make sense in playbooks, but it is useful from `/usr/bin/ansible' to verify the
    +      ability to login and that a usable Python is configured. This is NOT ICMP ping, this is
    +      just a trivial test module that requires Python on the remote-node. For Windows targets,
    +      use the [ansible.windows.win_ping] module instead. For Network targets, use the
    +      [ansible.netcommon.net_ping] module instead.
    +
    +ADDED IN: historical
    +
    +OPTIONS (= is mandatory):
    +
    +- data
    +      Data to return for the `ping' return value.
    +

03. Common Ad-hoc command

  • Invoking a module is referred to as Ad-hoc command.
  • The syntax is the following:
    $ ansible <servers> -m <module_name> -a '<parameters>'
    +
    | CLI option | Description | | ------------------ | --------------------------------------------------------------------------- | | <servers> | Any server (singel, group or all) as defined in the inventory file | | -m <module_name> | Specifies the module name. | | -a <parameters> | Specifies the parameters to be passed to the module. Optional in most cases |

03.01. ping

  • Docs: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/ping_module.html
  • We are already familiar with ping

[!TIP] This is a module that determines whether Ansible can “communicate as Ansible” to the node it is working on (which is different from ICMP used in the network). Ping module parameters are optional.

  • Usage:
# Ping all server in the inventory
+ansible all -m ping
+
+# In our demo lab we will execute it like this:
+docker exec ansible-controller sh -c "cd /labs-scripts && ansible all -m ping"
+
  • Output
    linux-server-1 | SUCCESS => {
    +    "ansible_facts": {
    +        "discovered_interpreter_python": "/usr/bin/python3"
    +    },
    +    "changed": false,
    +    "ping": "pong"
    +}
    +linux-server-3 | SUCCESS => {
    +    "ansible_facts": {
    +        "discovered_interpreter_python": "/usr/bin/python3"
    +    },
    +    "changed": false,
    +    "ping": "pong"
    +}
    +linux-server-2 | SUCCESS => {
    +    "ansible_facts": {
    +        "discovered_interpreter_python": "/usr/bin/python3"
    +    },
    +    "changed": false,
    +    "ping": "pong"
    +}
    +

03.03. shell

  • Docs: https://docs.ansible.com/ansible/latest/collections/ansible/builtin/shell_module.html

[!TIP] This is a module that Execute shell commands on targets

# Lets get the hostname of the server
+ansible all -m shell -a 'hostname'
+
+# In our demo lab we will execute it like this:
+docker exec ansible-controller sh -c "cd /labs-scripts && ansible all -m shell -a 'hostname'"
+
  • Output

    # ansible all -m shell -a 'hostname' 
    +linux-server-3 | CHANGED | rc=0 >>
    +linux-server-3
    +linux-server-2 | CHANGED | rc=0 >>
    +linux-server-2
    +linux-server-1 | CHANGED | rc=0 >>
    +linux-server-1
    +

Hands-on

  1. Figure out way to run the following (shell) command with Ansible, on any of the servers:

    # Get kernel information
    +uname -a
    +
    +# Get a date
    +date
    +
  2. Use the ansible command module to print out the previous shell commands.

  3. Try to run the following command: git config -l. > What is the result of this command?

Solution

uname -a
# Using the shell module
+docker exec ansible-controller sh -c "cd /labs-scripts && ansible linux-server-1 -m shell -a 'uname -a'"
+
+#Using the ansible `command` module
+docker exec ansible-controller sh -c "cd /labs-scripts && ansible linux-server-1 -m command -a 'uname -a'"
+
date
# Using the shell module
+docker exec ansible-controller sh -c "cd /labs-scripts && ansible linux-server-1 -m shell -a 'date'"
+
+#Using the ansible `command` module
+docker exec ansible-controller sh -c "cd /labs-scripts && ansible linux-server-1 -m command -a 'date'"
+

:arrow_backward: /Labs/002-no-inventoryBack to labs list/Labs/004-playbooks :arrow_forward:

\ No newline at end of file diff --git a/mkdocs-site/004-playbooks/004-list-files.yaml b/mkdocs-site/004-playbooks/004-list-files.yaml new file mode 100644 index 0000000..7f66a06 --- /dev/null +++ b/mkdocs-site/004-playbooks/004-list-files.yaml @@ -0,0 +1,45 @@ +--- +- hosts: all + + # Here we define our tasks + tasks: + # This is the first task + - name: List files in a directory + # As learned before this is the command module + # This command will list files in the home directory + command: ls ~ + + # register is used whenever we wish to save the output + # In this case it will be saved to a variable called 'files' + register: files + + # This is the second tasks + # In this case the tasks will run in the declared sequence + - name: Print the list of files + # Using the builtin debug module + # The debug will print out our files list + # ** We need to use `stdout_lines` for that + debug: + msg: "{{ files.files }}" + +--- +- name: List files in a directory + + hosts: linux-server-1 + tasks: + - name: Find files + find: + # Set the path as parameter to the playbook + # try different options for the path value as we + # explained above + paths: + file_type: file + register: files_to_print + + # Print the files list + - name: Print files + debug: + msg: "{{ item.path }}" + # with_items? + # What is it and why do we use it here + with_items: "{{ files_to_print.files }}" diff --git a/mkdocs-site/004-playbooks/004-playbook.yaml b/mkdocs-site/004-playbooks/004-playbook.yaml new file mode 100644 index 0000000..3c577c3 --- /dev/null +++ b/mkdocs-site/004-playbooks/004-playbook.yaml @@ -0,0 +1,31 @@ +--- +# List of hosts +- name: Sample Playbook + hosts: localhost + + ### + ### In this sample we display several solutions + ### + ### We combine few commands like: `shell`, `debug`, `command` and more + ### + # List of tasks + tasks: + # Using shell it will work, but no out put will be displayed out + # We will need to use register to display output + - name: Execute 'uname -a' + shell: uname -a + register: task_output + # Using register we can now display the output contents + # We must use `.stdout` to display the output itself + - name: Print 'uname -a' output + debug: + msg: "{{ task_output.stdout }}" + + # In class Hands-on task + - name: Execute 'id' + command: id + register: id_output + + - name: Print 'id' output + debug: + msg: "{{ id_output.stdout }}" diff --git a/mkdocs-site/004-playbooks/_demo.sh b/mkdocs-site/004-playbooks/_demo.sh new file mode 100644 index 0000000..7a07fcf --- /dev/null +++ b/mkdocs-site/004-playbooks/_demo.sh @@ -0,0 +1,38 @@ +#!/bin/bash + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) + +# Load the common script +source $ROOT_FOLDER/_utils/common.sh + +# Spin up the docker containers +source $ROOT_FOLDER/Labs/000-setup/01-init-servers.sh 2>&1 > /dev/null +source $ROOT_FOLDER/Labs/000-setup/02-init-ansible.sh 2>&1 > /dev/null + +clear + +# Install requirement +docker exec ansible-controller sh -c "ansible-galaxy collection install community.docker" + +echo -e "${YELLOW}-----------------------------------${COLOR_OFF}" +echo -e "* Copying the playbook to the scripts folder${COLOR_OFF}" +cp *.yaml $RUNTIME_FOLDER/labs-scripts +cp -r templates/ $RUNTIME_FOLDER/labs-scripts + +tree -a $RUNTIME_FOLDER/labs-scripts + +echo -e "${YELLOW}-----------------------------------${COLOR_OFF}" +echo -e "" +echo -e "* Executing ansible playbook" +echo -e "" +echo -e "${GREEN}$ cat 004-playbook.yaml ${COLOR_OFF}" +docker exec ansible-controller sh -c "cd /labs-scripts && cat 004-playbook.yaml" + +echo -e "" +echo -e "${YELLOW}-----------------------------------${COLOR_OFF}" +echo -e "" +echo -e "${GREEN}$ ansible-playbook 004-playbook.yaml ${COLOR_OFF}" +docker exec ansible-controller sh -c "cd /labs-scripts && ansible-playbook 004-playbook.yaml" + +echo -e "" diff --git a/mkdocs-site/004-playbooks/index.html b/mkdocs-site/004-playbooks/index.html new file mode 100644 index 0000000..49d1bdd --- /dev/null +++ b/mkdocs-site/004-playbooks/index.html @@ -0,0 +1,292 @@ + 004 Playbooks - AnsibleLabs
Skip to content
profile for CodeWizard at Stack Overflow, Q&A for professional and enthusiast programmers ![Visitor Badge](https://visitor-badge.laobi.icu/badge?page_id=nirgeier) [![Linkedin Badge](https://img.shields.io/badge/-nirgeier-blue?style=flat&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/nirgeier/)](https://www.linkedin.com/in/nirgeier/) [![Gmail Badge](https://img.shields.io/badge/-nirgeier@gmail.com-fcc624?style=flat&logo=Gmail&logoColor=red&link=mailto:nirgeier@gmail.com)](mailto:nirgeier@gmail.com) [![Outlook Badge](https://img.shields.io/badge/-nirg@codewizard.co.il-fcc624?style=flat&logo=microsoftoutlook&logoColor=blue&link=mailto:nirg@codewizard.co.il)](mailto:nirg@codewizard.co.il) discord contributors license Pull Requests If you appreciate the effort, Please this project

Lab 004 - Playbooks

  • In this section, we will cover Ansible Playbooks
  • Playbook are “Ansible Scripts” and are one of the building blocks of Ansible.



What are Playbook

  • In the previous labs, we executed ansible Ad-Hoc command which invoked modules.
  • In real life we need more that just Modules…
  • This is where Ansible Playbook is jumping in.
  • Ansible Playbooks are essentially blueprints of automation tasks.
  • They are written in YAML, and are used to automate tasks on remote hosts.
  • In summary, Ansible Playbooks offer a repeatable, reusable, simple configuration management and multi-machine deployment system, well suited to deploying complex applications.
  • They are a powerful tool for automating infrastructure management.

Ansible Playbooks Key Points:

  • Structure A playbook is composed of one or more plays in an ordered list (Sequence). Each play executes part of the overall goal of the playbook, running one or more tasks Each task calls an Ansible module.
  • Execution
  • A playbook runs in order from top to bottom.
  • Within each play, tasks also run in order from top to bottom.
  • Playbooks with multiple plays can orchestrate multi-machine deployments.
  • Functionality
  • Playbooks can declare configurations, orchestrate steps of any manual ordered process, on multiple sets of machines, in a defined order, and launch tasks synchronously or asynchronously.
  • Use Cases
  • They are regularly used to automate IT infrastructure, networks, security systems, and code repositories like GitHub.
  • IT staff can use playbooks to program applications, services, server nodes, and other devices.
  • Reusability
  • The conditions, variables, and tasks within playbooks can be saved, shared, or reused indefinitely.
  • This makes it easier for IT teams to codify operational knowledge and ensure that the same actions are performed consistently.

01. Playbook Basics

01.01. YAML

  • The playbook is written in YAML format.
  • Playbooks can also be written in JSON format
  • In this course we will only use YAML format.
  • YAML is a text file .
  • YAML uses Python-style indentation to indicate nesting and does not require quotes around most string values
  • Files should start with ---.
  • Indentation has meanings and is extremely import !!!
  • Indentation should be written in space. tab will result in an error.
  • The level of indentation (using spaces, not tabs) is used to denote structure
  • key: value makes it a dictionary format.
  • Key-Value Pairs: A dictionary in YAML is represented in a simple key: value form.
  • The colon must be followed by a space
  • Lists: All members of a list are lines beginning at the same indentation level starting with a - (a dash and a space).
  • Multi-Line Strings: Values can span multiple lines using | or >.
  • Using a Literal Block Scalar [|] will include the newlines and any trailing spaces.
  • Using a Folded Block Scalar [>] will fold newlines to spaces.
  • Boolean Values: You can specify a boolean value (true/false) in several forms.
  • Use lowercase true or false for boolean values in dictionaries if you want to be compatible with default yamllint options.

YAML is case sensitive, so be careful with your capitalization.

01.02. Our first playbook

  • Here is our first playbook example
  • This example will list files in a given directory
---
+# Run on all the hosts
+- hosts: all
+
+  # Here we define our tasks
+  tasks:  
+    # This is the first task 
+    - name: List files in a directory  
+      # As learned before this is the command module
+      # This command will list files in the home directory
+      command: ls ~  
+
+      # register is used whenever we wish to save the output 
+      # In this case it will be saved to a variable called 'files'
+      register: files  
+
+    # This is the second tasks
+    # In this case the tasks will run in the declared sequence 
+    - name: Print the list of files  
+      # Using the builtin debug module 
+      # The debug will print out our files list
+      # ** We need to use `stdout_lines` for that
+      debug:  
+        msg: "{{ files.stdout_lines }}"  
+

01.02. Writing Playbook

  • Playbook are YAML files
  • Lets open editor and write the first playbook

Playbook content:

  • YAML should start with the ---
  • Define the hosts we wish to run on. In this sample we will use localhost
  • Define the playbook tasks

Its as simple as that

01.03. Hands-on - Our first playbook

  • Use this skeleton for our first playbook

    # List of hosts
    +- hosts: 
    +
    +  # List of tasks
    +  tasks:
    +    - name: Execute 'uname -a'
    +
    +    - name: Print 'uname -a' output
    +
    +    - name: Execute 'id'
    +
    +    - name: Print 'id' output
    +

  • Now lets fill in with content

  • First lets define localhost as the host for this playbook
    ---
    +- hosts: localhost
    +
  • Next steps is to define the tasks

[!TIP]

Like in every other programming/scripting language there is no “right” solution and the bellow solution will work like any solution that will work for you, so feel free to write it any way which works for you.

# List of hosts
+- hosts: localhost
+
+  ###
+  ### In this sample we display several solutions
+  ### 
+  ### We combine few commands like: `shell`, `debug`, `command` and more
+  ###
+
+  # List of tasks
+  tasks:
+    # Using shell it will work, but no out put will be displayed out
+    # We will need to use register to display output
+    - name: Execute 'uname -a'
+      shell: uname -a
+      register: task_output
+
+    # Using register we can now display the output contents
+    # We must use `.stdout` to display the output itself
+    - name: Print 'uname -a' output
+      debug: 
+        msg: "{{ task_output.stdout}}"    
+
  • Output:
    * Executing ansible Ad-Hoc commands
    +
    +$ ansible localhost -m shell -a 'uname -a'
    +localhost | CHANGED | rc=0 >>
    +Linux 1fa29998d58c 5.15.0-105-generic #115-Ubuntu SMP Mon Apr 15 09:52:04 
    +UTC 2024 aarch64 aarch64 aarch64 GNU/Linux
    +-----------------------------------
    +
    +* Executing ansible playbook
    +
    +$ cat 004-playbook.yaml
    +  # List of hosts
    +  - hosts: localhost
    +
    +    ###
    +    ### In this sample we display several solutions
    +    ###
    +    ### We combine few commands like: `shell`, `debug`, `command` and more
    +    ###
    +
    +    # List of tasks
    +    tasks:
    +      # Using shell it will work, but no out put will be displayed out
    +      # We will need to use register to display output
    +      - name: Execute 'uname -a'
    +        shell: uname -a
    +        register: task_output
    +
    +      # Using register we can now display the output contents
    +      # We must use `.stdout` to display the output itself
    +      - name: Print 'uname -a' output
    +        debug:
    +          msg: "{{ task_output.stdout}}"   
    +
$ ansible-playbook 004-install-nginx.yaml
+
+PLAY [localhost] ***************************************************************
+
+TASK [Gathering Facts] *********************************************************
+ok: [localhost]
+
+TASK [Execute 'uname -a'] ******************************************************
+changed: [localhost]
+
+TASK [Display the output] ******************************************************
+ok: [localhost] => {
+    "msg": "Linux 1fa29998d58c 5.15.0-105-generic #115-Ubuntu SMP Mon Apr 15
+    09:52:04 UTC 2024 aarch64 aarch64 aarch64 GNU/Linux"
+}
+
+PLAY RECAP *********************************************************************
+localhost                  : ok=3    changed=1    unreachable=0    failed=0    skipped=0    rescued=0    ignored=0
+


- Complete the playbook, this time use command instead of shell

02. Playbook syntax (Playbook Keywords)

  • In this section, we will more about playbooks syntax

02.01. Play

  • Official documentation
  • The top part of the playbook is called Play and it defines the global behavior of for the entire playbook.
  • Here are some definitions which defined in the Play
---
+- name: The name of the play
+  # A list of groups, hosts or host pattern that translates into a list 
+  # of hosts that are the play’s target.
+  hosts: localhost
+
+  # Boolean that controls if privilege escalation is used or not on 
+  # Task execution.
+  # Implemented by the become plugin
+  become: yes
+
+  # User that you ‘become’ after using privilege escalation. 
+  # The remote/login user must have permissions to become this user.
+  become_user: 
+
+  # A dictionary that gets converted into environment vars to be provided 
+  # for the task upon execution. 
+  # This can ONLY be used with modules. 
+  # This is not supported for any other type of plugins nor Ansible itself 
+  # nor its configuration, it just sets the variables for the code responsible
+  # for executing the task. 
+  # This is not a recommended way to pass in confidential data.
+  environment: 
+
+  # Dictionary/map of variables
+  vars: 
+

02.02. Quiz:

  • Review the example below and try to answer the following questions:
    • On which hosts the playbook should be executed?
    • How we define the play?
    • Which directives are defined in this playbook?
    • How do we define variables?
    • How do we use variables?
    • How do we set up root user?
    • #
      +# Install nginx
      +#
      +name: Install and start nginx
      +
      +# We should have this group in our inventory
      +hosts: webservers
      +
      +# Variables
      +# The `lookup` function is used to fetch the value of the environment variables 
      +vars:
      +  env:
      +    PORT: "{{ lookup('env','PORT') }}"
      +    PASSWORD: "{{ lookup('env','PASSWORD') }}"
      +
      +# Define the tasks    
      +tasks:
      +  - name: Install nginx
      +    apt:
      +      name: nginx
      +      state: present
      +    become: yes
      +
      +  - name: Start nginx service
      +    service:
      +      name: nginx
      +      state: started
      +    become: yes
      +
      +  - name: Create a new secret with environment variable
      +    shell: echo "secret:{{ PASSWORD }}" > /etc/secret
      +    become: yes
      +
      +  - name: Open the port in firewall
      +    ufw:
      +      rule: allow
      +      port: "{{ PORT }}"
      +      proto: tcp
      +    become: yes
      +

02.03. Playbook demo

  • Execute the playbook by adding the required parameters to teh playbook
  • This can be done by setting up the parameter prior to executing the playbook Or by adding the parameters to the playbook itself.

02.03.01. Setting the env variable in the ansible controller

# Example: 
+
+# 01. Setting the env variable in the ansible controller
+export PORT=8080
+
+# Use the -e/--extra-vars to inject environment variables into the playbook
+ansible-playbook playbook.yaml -e "my_var=$MY_VAR"
+
+# Using the lookup Plug to fetch the value of the environment variables
+PORT: "{{ lookup('env','PORT') }}"
+

02.03.02. Passing the variable to the playbook

# Example:
+
+# 02. Passing the variable to the playbook
+PORT="8080" ansible-playbook playbook.yaml
+

02.03.03. Using the environment

  • Using the environment keyword in a task to set variables for that task:
# Example:
+- name: Open the port in firewall
+  environment:
+    PORT: "8080"
+  ufw:
+    rule: allow
+    port: "{{ PORT }}"
+    proto: tcp
+
  • Passing the environment to all the tasks in Playbook:
# Example:
+- hosts: all
+  environment:
+    PORT: "8080"
+  tasks:
+    - name: Open the port in firewall
+    ...
+

02.03.04. Permanently Set Environment Variables on Remote Hosts

  • To persist variables (e.g., in .bashrc or /etc/environment):
# Example:
+- name: Set permanent environment variable
+  lineinfile:
+    path: /etc/environment
+    line: 'PORT="8080"'
+    state: present
+  become: yes
+

02.03.05. Using var_files to include variables

  • We can use a variable file to pass variables in a playbook
  # Example
+  # Check the vars.yaml file in the same directory
+
+  - hosts: all
+    vars_files:
+      - vars.yaml  # Include variables from vars.yaml
+    tasks:
+      - name: Print a variable
+        debug:
+          msg: "{{ http_port }}"
+

03. Tasks

  • https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_intro.html#running-playbooks-in-check-mode

    # To run a playbook in check mode, 
    +# you can pass the -C or --check flag to 
    +# the ansible-playbook command:
    +ansible-playbook --check playbook.yaml
    +
  • Lets write some playbooks tasks with parameters

  • Take a look on 004-list-files.yaml and follow the instructions in the comments
  • Answer the questions in the comments about the with_items the output of the playbook

03.01 Additional Tasks

  • Run the playbook and see the output
  • Run the playbook in check mode and see the output
  • Run the playbook with --diff flag and see the output
  • Run the playbook with --verbose flag and see the output
  • Run the playbook with --verbose, --diff flags and see the output
  • Run the playbook with --verbose, --diff, --check flags and see the output

[!TIP] It’s considered best practice to use the FQDN name of all modules used in your playbook. It is done to prevent naming collision between builtin modules and community/self made ones.


:arrow_backward: /Labs/003-modulesBack to labs list/Labs/005-facts :arrow_forward:

\ No newline at end of file diff --git a/mkdocs-site/004-playbooks/vars.yaml b/mkdocs-site/004-playbooks/vars.yaml new file mode 100644 index 0000000..5b0c69d --- /dev/null +++ b/mkdocs-site/004-playbooks/vars.yaml @@ -0,0 +1,6 @@ +--- +app_user: "root" +http_host: "localhost" +http_conf: "localhost.conf" +http_port: "8888" +disable_default: true diff --git a/mkdocs-site/005-facts/005-playbook-facts.yaml b/mkdocs-site/005-facts/005-playbook-facts.yaml new file mode 100644 index 0000000..40c3209 --- /dev/null +++ b/mkdocs-site/005-facts/005-playbook-facts.yaml @@ -0,0 +1,19 @@ +--- +- name: Basic playbook samples + hosts: all + gather_facts: yes # Required to collect network facts + tasks: + # Collect the facts about with the build in debug module + - name: Show facts available on the system + ansible.builtin.debug: + var: ansible_facts + + # Collect the facts and save them in json files + - name: Gather facts + ansible.builtin.setup: + + - name: Save facts to a file + delegate_to: localhost + copy: + content: "{{ ansible_facts }}" + dest: "/labs-scripts/facts/{{ inventory_hostname }}_playbook_facts.json" diff --git a/mkdocs-site/005-facts/_demo.sh b/mkdocs-site/005-facts/_demo.sh new file mode 100644 index 0000000..8079ea2 --- /dev/null +++ b/mkdocs-site/005-facts/_demo.sh @@ -0,0 +1,30 @@ +#!/bin/bash + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) + +# Load the common script +source $ROOT_FOLDER/_utils/common.sh + +# Spin up the docker containers +source $ROOT_FOLDER/Labs/000-setup/01-init-servers.sh +source $ROOT_FOLDER/Labs/000-setup/02-init-ansible.sh + +# Run a simple ansible script +# Display facts from all hosts and store them indexed by hostname under facts folder +docker exec ansible-controller sh -c "cd /labs-scripts && ansible all -m ansible.builtin.gather_facts --tree /labs-scripts/facts" + +# display the facts folder +tree -a $RUNTIME_FOLDER/labs-scripts/facts + +echo "Waiting for user to proceed to next step... (playbook)" +read user_input + +# Copy the playbook to the scripts folder +cp *.yaml $RUNTIME_FOLDER/labs-scripts + +# run ansible playbook which installs git on the servers +docker exec ansible-controller sh -c "cd /labs-scripts && ansible-playbook ./005-playbook-facts.yaml" + +# display the facts folder +tree -a $RUNTIME_FOLDER/labs-scripts/facts \ No newline at end of file diff --git a/mkdocs-site/005-facts/index.html b/mkdocs-site/005-facts/index.html new file mode 100644 index 0000000..c065579 --- /dev/null +++ b/mkdocs-site/005-facts/index.html @@ -0,0 +1,117 @@ + 005 Facts - AnsibleLabs
Skip to content
profile for CodeWizard at Stack Overflow, Q&A for professional and enthusiast programmers ![Visitor Badge](https://visitor-badge.laobi.icu/badge?page_id=nirgeier) [![Linkedin Badge](https://img.shields.io/badge/-nirgeier-blue?style=flat&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/nirgeier/)](https://www.linkedin.com/in/nirgeier/) [![Gmail Badge](https://img.shields.io/badge/-nirgeier@gmail.com-fcc624?style=flat&logo=Gmail&logoColor=red&link=mailto:nirgeier@gmail.com)](mailto:nirgeier@gmail.com) [![Outlook Badge](https://img.shields.io/badge/-nirg@codewizard.co.il-fcc624?style=flat&logo=microsoftoutlook&logoColor=blue&link=mailto:nirg@codewizard.co.il)](mailto:nirg@codewizard.co.il) discord contributors license Pull Requests If you appreciate the effort, Please this project

Lab 005 - Facts

  • In this section, we will cover Ansible Facts
  • Ansible facts are “Ansible Scripts” and are one of the building blocks of Ansible.
  • Ansible facts are data related to your remote systems, including operating systems, IP addresses, attached filesystems, and more.
  • Ansible facts are gathered about target nodes (host nodes to be configured) and returned back to controller nodes.

How to View Facts?

You can view facts of a remote machine by running:

ansible all -m setup
+

🔹 Example Output (Truncated for brevity):

{
+    "ansible_facts": {
+        "ansible_distribution": "Ubuntu",
+        "ansible_distribution_version": "22.04",
+        "ansible_architecture": "x86_64",
+        "ansible_memory_mb": {
+            "real": {
+                "total": 7989,
+                "used": 2034
+            }
+        },
+        "ansible_default_ipv4": {
+            "address": "192.168.1.10",
+            "netmask": "255.255.255.0",
+            "gateway": "192.168.1.1"
+        }
+    }
+}
+

How to Use Facts in Playbooks?

  • Facts allows you to base your playbook logic on the properties of the target hosts.
  • all facts are prefixed with ansible_x.

Example: Installing Packages Based on OS

---
+- hosts: all
+  tasks:
+    - name: Install Nginx on Debian using APT
+      ansible.builtin.apt:
+        name: nginx
+        state: present
+      when: ansible_distribution == "Ubuntu"
+
+    - name: Install Nginx on RedHat using DNF
+      ansible.builtin.dnf:
+        name: nginx
+        state: present
+      when: ansible_distribution == "CentOS"
+

Example: Conditional Execution Based on Memory

- name: Restart Service if Memory is Low
+  ansible.builtin.service:
+    name: my_service
+    state: restarted
+  when: ansible_memory_mb.real.total < 4000
+

Commonly Used Facts

System Information

Fact Description
ansible_distribution OS name (Ubuntu, CentOS, Windows)
ansible_distribution_version OS version (22.04, 9.1, 10)
ansible_architecture System architecture (x86_64, arm)

Networking

Fact Description
ansible_default_ipv4.address Default IP address
ansible_default_ipv4.gateway Default gateway
ansible_fqdn Fully Qualified Domain Name
ansible_dns.nameservers DNS servers

Hardware

Fact Description
ansible_memory_mb.real.total Total RAM in MB
ansible_processor_count Number of CPUs
ansible_processor_cores Number of CPU cores

Disabling Fact Gathering

By default, Ansible gathers facts before running a playbook. To disable it:

- hosts: all
+  gather_facts: no
+  tasks:
+    - name: Print a message
+      debug:
+        msg: "Facts gathering is disabled!"
+

Custom Facts

You can define custom facts by creating .fact files in /etc/ansible/facts.d/ on the managed host.

Example: Creating a Custom Fact

1️⃣ Create a file /etc/ansible/facts.d/custom.fact with:

[custom]
+environment=production
+app_version=1.2.3
+

2️⃣ Retrieve the fact in a playbook:

- hosts: all
+  tasks:
+    - debug:
+        msg: "App version is {{ ansible_local.custom.app_version }}"
+

Summary

🔹 Ansible facts provide system details dynamically.
🔹 They are automatically gathered using the setup module.
🔹 Useful for conditional logic in playbooks.
🔹 Facts include OS, networking, CPU, memory, and more.
🔹 Custom facts can be created for customized automation.



  • Print the IP addresses of all the machines
  • Bonus - Try print the addresss of linux-server-2 only without modifying the inventory file.

:arrow_backward: /Labs/004-playbooksBack to labs list/Labs/006-git :arrow_forward:

\ No newline at end of file diff --git a/mkdocs-site/006-git/006-playbook-install-git.yaml b/mkdocs-site/006-git/006-playbook-install-git.yaml new file mode 100644 index 0000000..eb256a8 --- /dev/null +++ b/mkdocs-site/006-git/006-playbook-install-git.yaml @@ -0,0 +1,27 @@ +--- +- name: Install Git on Server + hosts: all + gather_facts: false + vars: + - packages: + - git + tasks: + - name: Installing Package(s) + apt: + name: "{{ item }}" + state: present + with_items: "{{ packages }}" + + - name: Add a setting to ~/.gitconfig + community.general.git_config: + name: user.name + scope: global + value: "Nir Geier" + + - name: Verify Git Installation + ansible.builtin.command: "git --version" + register: verify_git + + - name: Print Git Installation + ansible.builtin.debug: + msg: "{{ verify_git.stdout_lines }}" \ No newline at end of file diff --git a/mkdocs-site/006-git/_demo.sh b/mkdocs-site/006-git/_demo.sh new file mode 100644 index 0000000..6c8b293 --- /dev/null +++ b/mkdocs-site/006-git/_demo.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) + +# Load the common script +source $ROOT_FOLDER/_utils/common.sh + +# Spin up the docker containers +source $ROOT_FOLDER/Labs/000-setup/01-init-servers.sh +source $ROOT_FOLDER/Labs/000-setup/02-init-ansible.sh + +# Copy the playbook to the scripts folder +cp *.yaml $RUNTIME_FOLDER/labs-scripts + +# We will need to pre-install the missing plugin +# https://docs.ansible.com/ansible/latest/collections/community/general/git_config_module.html +# ansible-galaxy collection install community.general + +# Install requirmens +docker exec ansible-controller sh -c "ansible-galaxy collection install community.general" + +# run ansible playbook which installs git on the servers +docker exec ansible-controller sh -c "cd /labs-scripts && ansible-playbook ./006-playbook-install-git.yaml" diff --git a/mkdocs-site/006-git/index.html b/mkdocs-site/006-git/index.html new file mode 100644 index 0000000..4a83583 --- /dev/null +++ b/mkdocs-site/006-git/index.html @@ -0,0 +1,66 @@ + 006 Git - AnsibleLabs
Skip to content
profile for CodeWizard at Stack Overflow, Q&A for professional and enthusiast programmers ![Visitor Badge](https://visitor-badge.laobi.icu/badge?page_id=nirgeier) [![Linkedin Badge](https://img.shields.io/badge/-nirgeier-blue?style=flat&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/nirgeier/)](https://www.linkedin.com/in/nirgeier/) [![Gmail Badge](https://img.shields.io/badge/-nirgeier@gmail.com-fcc624?style=flat&logo=Gmail&logoColor=red&link=mailto:nirgeier@gmail.com)](mailto:nirgeier@gmail.com) [![Outlook Badge](https://img.shields.io/badge/-nirg@codewizard.co.il-fcc624?style=flat&logo=microsoftoutlook&logoColor=blue&link=mailto:nirg@codewizard.co.il)](mailto:nirg@codewizard.co.il) discord contributors license Pull Requests If you appreciate the effort, Please this project

Hands On Lab

  • Understand the Git Playbook (006-playbook-install-git)
  • Try to write it yourself using the sample playbook
  • Review the playbook vars section which is new to us
  • In Lab 008 we will also ad task to clone git

:arrow_backward: /Labs/005-factsBack to labs list/Labs/007-create-user :arrow_forward:

\ No newline at end of file diff --git a/mkdocs-site/007-create-user/007-create-user.yaml b/mkdocs-site/007-create-user/007-create-user.yaml new file mode 100644 index 0000000..c1f62d8 --- /dev/null +++ b/mkdocs-site/007-create-user/007-create-user.yaml @@ -0,0 +1,38 @@ +--- +- name: "" + hosts: all + ### Those are the important lines. + ### We need to be root (sudo) in order to be able to perform + ### the desired tasks + become: true + become_method: ansible.builtin.su + vars: + the_user: "codewizard" + + tasks: + - name: Create User + ansible.builtin.user: + name: "{{ the_user }}" + groups: root + shell: /bin/bash + state: present + generate_ssh_key: true + ssh_key_bits: 2048 + ssh_key_file: .ssh/id_rsa + create_home: true + + - name: Set User Password + ansible.builtin.user: + name: "{{ the_user }}" + password: "password" + password_expire_min: 14 + password_expire_max: 60 + + - name: Verify Users Creation + ansible.builtin.command: "id {{ the_user }}" + register: verify_user + changed_when: verify_user.rc != 0 + + - name: Verify User + ansible.builtin.debug: + msg: "{{ verify_user.stdout_lines }}" diff --git a/mkdocs-site/007-create-user/_demo.sh b/mkdocs-site/007-create-user/_demo.sh new file mode 100644 index 0000000..2d6ab97 --- /dev/null +++ b/mkdocs-site/007-create-user/_demo.sh @@ -0,0 +1,21 @@ +#!/bin/bash + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) + +# Load the common script +source $ROOT_FOLDER/_utils/common.sh + +# Get the current directory of our lab +CURRENT_DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd) +echo "Current directory $CURRENT_DIR" + +# Spin up the docker containers +source $ROOT_FOLDER/Labs/000-setup/01-init-servers.sh +source $ROOT_FOLDER/Labs/000-setup/02-init-ansible.sh + +# Copy the playbook to the scripts folder +cp *.yaml $RUNTIME_FOLDER/labs-scripts + +# run ansible playbook which installs git on the servers +docker exec ansible-controller sh -c "cd /labs-scripts && ansible-playbook ./007-create-user.yaml" diff --git a/mkdocs-site/007-create-user/index.html b/mkdocs-site/007-create-user/index.html new file mode 100644 index 0000000..ab045a8 --- /dev/null +++ b/mkdocs-site/007-create-user/index.html @@ -0,0 +1,66 @@ + 007 Create User - AnsibleLabs
Skip to content
profile for CodeWizard at Stack Overflow, Q&A for professional and enthusiast programmers ![Visitor Badge](https://visitor-badge.laobi.icu/badge?page_id=nirgeier) [![Linkedin Badge](https://img.shields.io/badge/-nirgeier-blue?style=flat&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/nirgeier/)](https://www.linkedin.com/in/nirgeier/) [![Gmail Badge](https://img.shields.io/badge/-nirgeier@gmail.com-fcc624?style=flat&logo=Gmail&logoColor=red&link=mailto:nirgeier@gmail.com)](mailto:nirgeier@gmail.com) [![Outlook Badge](https://img.shields.io/badge/-nirg@codewizard.co.il-fcc624?style=flat&logo=microsoftoutlook&logoColor=blue&link=mailto:nirg@codewizard.co.il)](mailto:nirg@codewizard.co.il) discord contributors license Pull Requests If you appreciate the effort, Please this project

Hands On Lab

  • Understand the Create user Playbook (007-create-user)
  • Try to write it yourself using the sample playbook
  • Review the playbook vars, become, changed_when sections
  • Change the script to create another user with different name and password
  • Review the solution but write it yourself.

:arrow_backward: /Labs/006-gitBack to labs list/Labs/008-challenges :arrow_forward:

\ No newline at end of file diff --git a/mkdocs-site/008-challenges/01-solution-create-user.yaml b/mkdocs-site/008-challenges/01-solution-create-user.yaml new file mode 100644 index 0000000..1a9a425 --- /dev/null +++ b/mkdocs-site/008-challenges/01-solution-create-user.yaml @@ -0,0 +1,18 @@ +--- +- name:: Create User + hosts: all + tasks: + - name: Create User + ansible.builtin.user: + name: "{{ ansible_ssh_host }}" + groups: root + shell: /bin/bash + state: present + generate_ssh_key: true + ssh_key_bits: 2048 + ssh_key_file: .ssh/id_rsa + create_home: true + - name: Verifying user + ansible.builtin.debug: + msg: "Found user: {{ ansible_ssh_host }}" + \ No newline at end of file diff --git a/mkdocs-site/008-challenges/02-solution-playbook-create-git-repository.sh b/mkdocs-site/008-challenges/02-solution-playbook-create-git-repository.sh new file mode 100644 index 0000000..6bb2e0e --- /dev/null +++ b/mkdocs-site/008-challenges/02-solution-playbook-create-git-repository.sh @@ -0,0 +1,27 @@ +--- +- hosts: linux-server-2 + gather_facts: no + tasks: + - name: Ensure git is installed + apt: + name: git + state: present + become: yes + + - name: Clone the repository + git: + repo: https://github.com/yourusername/yourrepository.git + dest: /tmp/ansible-git-demo + clone: yes + update: yes + + - name: Commit and push changes + shell: | + cd /tmp/ansible-git-demo + git config --global user.email "nirgeier@gmail.com" + git config --global user.name "Nir Geier" + git add . + git commit -m "Your commit message" + git push origin main + args: + executable: /bin/bash diff --git a/mkdocs-site/008-challenges/index.html b/mkdocs-site/008-challenges/index.html new file mode 100644 index 0000000..fb4b9c6 --- /dev/null +++ b/mkdocs-site/008-challenges/index.html @@ -0,0 +1,67 @@ + 008 Challenges - AnsibleLabs
Skip to content
profile for CodeWizard at Stack Overflow, Q&A for professional and enthusiast programmers ![Visitor Badge](https://visitor-badge.laobi.icu/badge?page_id=nirgeier) [![Linkedin Badge](https://img.shields.io/badge/-nirgeier-blue?style=flat&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/nirgeier/)](https://www.linkedin.com/in/nirgeier/) [![Gmail Badge](https://img.shields.io/badge/-nirgeier@gmail.com-fcc624?style=flat&logo=Gmail&logoColor=red&link=mailto:nirgeier@gmail.com)](mailto:nirgeier@gmail.com) [![Outlook Badge](https://img.shields.io/badge/-nirg@codewizard.co.il-fcc624?style=flat&logo=microsoftoutlook&logoColor=blue&link=mailto:nirg@codewizard.co.il)](mailto:nirg@codewizard.co.il) discord contributors license Pull Requests If you appreciate the effort, Please this project

Hands On Lab

Task 01:

  • Create user named for each machine
  • Verify that the user was created
  • Create an ansible inventory with the username in the configuration
    <hostname>    ansible_host=<hostname> ansible_ssh_user=<user>
    +

Task 02:

  • Clone a git repository from you github account
  • Commit changes to the repository
  • Push the changes to the repository

Good luck


:arrow_backward: /Labs/007-create-userBack to labs list/Labs/009-roles :arrow_forward:

\ No newline at end of file diff --git a/mkdocs-site/009-roles/009-codewizard-role-playbook.yaml b/mkdocs-site/009-roles/009-codewizard-role-playbook.yaml new file mode 100644 index 0000000..4e9f056 --- /dev/null +++ b/mkdocs-site/009-roles/009-codewizard-role-playbook.yaml @@ -0,0 +1,11 @@ +--- +### +### The playbook for using our role +### +- name: Executing codewizard_lab_role + hosts: all + become: true + become_method: ansible.builtin.su + + roles: + - codewizard_lab_role diff --git a/mkdocs-site/009-roles/009-create-role-structure.yaml b/mkdocs-site/009-roles/009-create-role-structure.yaml new file mode 100644 index 0000000..55cd8fa --- /dev/null +++ b/mkdocs-site/009-roles/009-create-role-structure.yaml @@ -0,0 +1,37 @@ +--- +- name: Ansible workshop - Build Ansible roles Structure + hosts: 127.0.0.1 + vars: + # The playbook for this reples demo lab + playbook_name: ansible_codewizard_roles_skeleton + # The folder in which the roles will be created + location: "./tmp/{{ playbook_name }}" + + # Folders for each role + folders: + - "../../group_vars" + - "defaults" + - "files" + - "handlers" + - "meta" + - "tasks" + - "templates" + - "vars" + + # The roles which we will be creating + roles: ["web", "database", "common"] + + tasks: + - name: Create skeleton + ansible.builtin.shell: | + mkdir -p $(dirname {{ location }}/roles/{{ item.0 }}/{{ item.1 }}/main.yaml) + touch {{ location }}/roles/{{ item.0 }}/{{ item.1 }}/main.yaml + loop: "{{ roles | product(folders) | list}}" + + - name: Create root files and folders + ansible.builtin.file: + path: "{{ item }}" + state: touch + with_items: + - "{{ location }}/group_vars/all.yaml" + - "{{ location }}/{{ playbook_name }}.yml" diff --git a/mkdocs-site/009-roles/009-roles.sh b/mkdocs-site/009-roles/009-roles.sh new file mode 100644 index 0000000..d7e1230 --- /dev/null +++ b/mkdocs-site/009-roles/009-roles.sh @@ -0,0 +1,223 @@ +#!/bin/bash + +# Get the current folder when the script is executed from +BASEDIR=$(dirname "$0") + +# Switch to the base folder +echo $BASEDIR + +# Load the colors +source ../../_utils/common.sh + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) + +# remove old content +rm -rf ${ROOT_FOLDER}/roles_demo +mkdir ${ROOT_FOLDER}/roles_demo +cd ${ROOT_FOLDER}/roles_demo + +echo -e "${YELLOW}Initilaizing the role${COLOR_OFF}" +echo -e "${White}$ ${GREEN}ansible-galaxy init codewizard_lab_role${COLOR_OFF}" +ansible-galaxy init codewizard_lab_role + +echo -e "${YELLOW}Switching to the role folder${COLOR_OFF}" +cd codewizard_lab_role + +echo -e "${YELLOW}Creating content${COLOR_OFF}" + +echo -e "${GREEN}* Generating defaults/main.yml${COLOR_OFF}" +cat << 'EOF' > defaults/main.yml +--- +### +### This file contain the variables for the Demo lab +### + +# Defaults file for codewizard_lab_role +motd_message: "Welcome to CodeWizard Ansible Roles Lab" + +### The package we wish to install on the servers +apt_packages: + - python3 + - nodejs + - npm + +# Packages to verify that they were installed +apt_packages_verify: + - python3 + - npm + +package_state: latest +EOF + +echo -e "${GREEN}* Generating tasks/node-server.yml${COLOR_OFF}" +cat << 'EOF' > tasks/node-server.yml +--- +- name: Copy Node server + ansible.builtin.template: + src: templates/node-server.j2 + dest: /node-server.js + mode: 600 + become: true + become_method: ansible.builtin.su + +- name: Install "pm2" node.js package. + community.general.npm: + name: "pm2" + global: true + become: true + become_method: ansible.builtin.su + +- name: Get running node processes + shell: "ps -ef | grep -v grep | grep -w node | awk '{print $2}'" + register: running_processes + +- name: Kill running node server (if any) + shell: "kill {{ item }}" + with_items: "{{ running_processes.stdout_lines }}" + +- name: Wait for the process to die + wait_for: + path: "/proc/{{ item }}/status" + state: absent + with_items: "{{ running_processes.stdout_lines }}" + ignore_errors: true + register: killed_processes + +- name: Force kill stuck processes + shell: "kill -9 {{ item }}" + with_items: "{{ killed_processes.results | select('failed') | map(attribute='item') | list }}" + +- name: Start Node server + ansible.builtin.command: + chdir: / + cmd: "pm2 start -f /node-server.js" + register: server_status + changed_when: server_status.rc != 0 + +- name: Print server status + ansible.builtin.debug: + msg: "{{ server_status.stdout_lines }}" + when: server_status.rc == 0 + +- name: Check server + uri: + url: http://localhost:5000 + method: GET + status_code: 200 + register: server_status + +- name: Print server status + ansible.builtin.debug: + msg: "{{ server_status.status }} - {{ server_status.msg }}" +EOF + +echo -e "${GREEN}* Generating tasks/motd.yml${COLOR_OFF}" +cat << 'EOF' > tasks/motd.yml +- name: Copy template + ansible.builtin.template: + src: templates/motd.j2 + dest: /etc/motd + mode: preserve + become: true + become_method: ansible.builtin.su +EOF + +echo -e "${GREEN}* Generating tasks/main.yml${COLOR_OFF}" +cat << 'EOF' > tasks/main.yml +--- +- name: Include Pre-Requirements task + ansible.builtin.include_tasks: + file: pre-requirements.yaml + +- name: Include motd task + ansible.builtin.include_tasks: + file: motd.yaml + +- name: Deploy node server + ansible.builtin.include_tasks: + file: node-server.yaml +EOF + +echo -e "${GREEN}* Generating tasks/pre-requirements.yml${COLOR_OFF}" +cat << 'EOF' > tasks/pre-requirements.yml +--- +- name: Install Packages + ansible.builtin.apt: + name: "{{ item }}" + state: "{{ package_state }}" + # Loop over the required packages to install + with_items: "{{ apt_packages }}" + +- name: Verify Packages Installation + ansible.builtin.command: "{{ item }} --version" + register: packages_version + with_items: "{{ apt_packages_verify }}" + +- name: Print package version + ansible.builtin.debug: + msg: "{{ item.stdout_lines }}" + with_items: "{{ packages_version.results }}" +EOF + +echo -e "${GREEN}* Generating templates/motd.j2${COLOR_OFF}" +cat << 'EOF' > templates/motd.j2 +_____ _ _ _ _ _ +/ __ \ | | | | | |(_) | | +| / \/ ___ __| | ___ | | | | _ ____ __ _ _ __ __| | +| | / _ \ / _` | / _ \ | |/\| || ||_ // _` || '__|/ _` | +| \__/\| (_) || (_| || __/ \ /\ /| | / /| (_| || | | (_| | + \____/ \___/ \__,_| \___| \/ \/ |_|/___|\__,_||_| \__,_| + +{{ motd_message }} + +System information: +------------------- + +OS: {{ ansible_distribution }} {{ ansible_distribution_version }} +Hostname: {{ inventory_hostname }} + +{{ custom_message | default('') }} +EOF + +echo -e "${GREEN}* Generating templates/node-server.j2${COLOR_OFF}" +cat << 'EOF' > templates/node-server.j2 +const + // Set the server port which will be listening to + // Those 2 values are passed from the env file + SERVER_PORT = 5000, + SERVER_NAME = "{{ inventory_hostname }}"; + + // Create the basic http server + require('http') + .createServer((request, response) => { + + // Send reply to user + response.end(`

Hello from ${SERVER_NAME}.

`); + + }).listen(SERVER_PORT, () => { + // Notify users that the server is up and running + console.log(`${SERVER_NAME} is up. + Please click or point your browser to: + http://localhost:${SERVER_PORT}`); + }); +EOF + +echo -e "${GREEN}* Generating 009-role-playbook.yml${COLOR_OFF}" +cat << 'EOF' > 009-role-playbook.yml +--- +### +### The playbook for using our role +### +- name: Executing codewizard_lab_role + hosts: all + become: true + become_method: ansible.builtin.su + + roles: + - codewizard_lab_role +EOF + +echo -e "${YELLOW}Verifying role creation${COLOR_OFF}" +tree -a codewizard_lab_role + diff --git a/mkdocs-site/009-roles/_demo.sh b/mkdocs-site/009-roles/_demo.sh new file mode 100644 index 0000000..d752a0b --- /dev/null +++ b/mkdocs-site/009-roles/_demo.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) + +# Load the common script +source $ROOT_FOLDER/_utils/common.sh + +# Get the current directory of our lab +CURRENT_DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd) +echo "Current directory $CURRENT_DIR" + +# Spin up the docker containers +source $ROOT_FOLDER/Labs/000-setup/01-init-servers.sh +source $ROOT_FOLDER/Labs/000-setup/02-init-ansible.sh + +# Copy the playbook to the scripts folder +cp *.yaml $RUNTIME_FOLDER/labs-scripts +cp -r codewizard_lab_role $RUNTIME_FOLDER/labs-scripts + +# run ansible playbook which installs git on the servers +docker exec ansible-controller sh -c "cd /labs-scripts && ansible-playbook ./009-codewizard-role-playbook.yaml" + +# Test the servers +echo -e $(curl -s localhost:5001) +echo -e $(curl -s localhost:5002) +echo -e $(curl -s localhost:5003) diff --git a/mkdocs-site/009-roles/index.html b/mkdocs-site/009-roles/index.html new file mode 100644 index 0000000..36e0855 --- /dev/null +++ b/mkdocs-site/009-roles/index.html @@ -0,0 +1,251 @@ + 009 Roles - AnsibleLabs
Skip to content
profile for CodeWizard at Stack Overflow, Q&A for professional and enthusiast programmers ![Visitor Badge](https://visitor-badge.laobi.icu/badge?page_id=nirgeier) [![Linkedin Badge](https://img.shields.io/badge/-nirgeier-blue?style=flat&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/nirgeier/)](https://www.linkedin.com/in/nirgeier/) [![Gmail Badge](https://img.shields.io/badge/-nirgeier@gmail.com-fcc624?style=flat&logo=Gmail&logoColor=red&link=mailto:nirgeier@gmail.com)](mailto:nirgeier@gmail.com) [![Outlook Badge](https://img.shields.io/badge/-nirg@codewizard.co.il-fcc624?style=flat&logo=microsoftoutlook&logoColor=blue&link=mailto:nirg@codewizard.co.il)](mailto:nirg@codewizard.co.il) discord contributors license Pull Requests If you appreciate the effort, Please this project


Roles

What are Ansible roles?

  • Roles let you automatically load related vars, files, tasks, handlers, and other Ansible artifacts based on a known file structure.
  • After you group your content into roles, you can easily reuse them and share them with other users.
  • By default, Ansible will look in each directory within a role for file names main/main.yml/main.yaml.

Ansible roles file structure

Files Description
tasks the main list of tasks that the role executes.
handlers handlers, which may be used within or outside this role.
library modules, which may be used within this role (see Embedding modules and plugins in roles for more information).
defaults default variables for the role (see Using Variables for more information).
These variables have the lowest priority of any variables available and can be easily overridden by any other variable, including inventory variables.
vars other variables for the role (see Using Variables for more information).
files files that the role deploys.
templates templates that the role deploys.
meta metadata for the role, including role dependencies and optional Galaxy metadata such as platforms supported.

Building Ansible role

  • In this demo we will create a role for deploying a nodeJS app
  • The app will be deployed from a pre-defined code.
  • Each server will be deployed with its own configuration (values)
  • We will also deploy some other files for learning purposes

01. Initialize file structure

# Lets create the roles file structure
+ansible-galaxy init codewizard_lab_role
+
+# The file system of the role will look like
+

02. Create the role content

02.01. Create the defaults/main.yml

---
+### defaults/main.yml
+###
+### This file contain the variables for the Demo lab
+###
+
+# Defaults file for codewizard_lab_role
+motd_message: "Welcome to Ansible Roles Lab"
+
+### The package we wish to install on the servers
+apt_packages:
+  - python3
+  - nodejs
+  - npm
+
+# Packages to verify that they were installed
+apt_packages_verify:
+  - python3
+  - npm
+
+package_state: latest
+

02.02. Create the templates

### templates/motd.j2
+
+_____             _          _    _  _                      _ 
+/  __ \           | |        | |  | |(_)                    | |
+| /  \/  ___    __| |  ___   | |  | | _  ____ __ _  _ __  __| |
+| |     / _ \  / _` | / _ \  | |/\| || ||_  // _` || '__|/ _` |
+| \__/\| (_) || (_| ||  __/  \  /\  /| | / /| (_| || |  | (_| |
+\____/ \___/  \__,_| \___|   \/  \/ |_|/___|\__,_||_|   \__,_|
+
+{{ motd_message }}
+
+System information:
+-------------------
+
+OS:         {{ ansible_distribution }} {{ ansible_distribution_version }}
+Hostname:   {{ inventory_hostname }}
+
+{{ custom_message | default('') }}
+
### templates/node-server.j2
+const
+    // Set the server port which will be listening to
+    // Those 2 values are passed from the env file
+    SERVER_PORT = 5000,
+    SERVER_NAME = "{{ inventory_hostname }}";
+
+// Create the basic http server
+require('http')
+    .createServer((request, response) => {
+
+        // Send reply to user
+        response.end(`<h1>Hello from ${SERVER_NAME}.</h1>`);
+
+    }).listen(SERVER_PORT, () => {
+        // Notify users that the server is up and running
+        console.log(`${SERVER_NAME} is up. 
+            Please click or point your browser to:
+            http://localhost:${SERVER_PORT}`);
+    });
+

02.03. Create the tasks for the role

  • In this example we will have multiple tasks for learning purposes
  • We will need to create the tasks for each role
  • Once the task are ready we can define them in the main task file
### tasks/pre-requirements.yaml
+---
+- name: Install Packages
+  ansible.builtin.apt:
+    name: "{{ item }}"
+    state: "{{ package_state }}"
+  # Loop over the required packages to install
+  with_items: "{{ apt_packages }}"
+
+- name: Verify Packages Installation
+  ansible.builtin.command: "{{ item }} --version"
+  register: packages_version
+  with_items: "{{ apt_packages_verify }}"
+
+- name: Print package version
+  ansible.builtin.debug:
+    msg: "{{ item.stdout_lines  }}"
+  with_items: "{{ packages_version.results }}"
+
### tasks/node-server.yaml
+---
+- name: Copy Node server
+  ansible.builtin.template:
+    src: templates/node-server.j2
+    dest: /node-server.js
+    mode: 600
+  become: true
+  become_method: ansible.builtin.su
+
+- name: Install "pm2" node.js package.
+  community.general.npm:
+    name: "pm2"
+    global: true
+  become: true
+  become_method: ansible.builtin.su
+
+- name: Get running node processes
+  shell: "ps -ef | grep -v grep | grep -w node | awk '{print $2}'"
+  register: running_processes
+
+- name: Kill running node server (if any)
+  shell: "kill {{ item }}"
+  with_items: "{{ running_processes.stdout_lines }}"
+
+- name: Wait for the process to die
+  wait_for:
+    path: "/proc/{{ item }}/status"
+    state: absent
+  with_items: "{{ running_processes.stdout_lines }}"
+  ignore_errors: true
+  register: killed_processes
+
+- name: Force kill stuck processes
+  shell: "kill -9 {{ item }}"
+  with_items: "{{ killed_processes.results | select('failed') | map(attribute='item') | list }}"
+
+- name: Start Node server
+  ansible.builtin.command:
+    chdir: /
+    cmd: "pm2 start -f /node-server.js"
+  register: server_status
+  changed_when: server_status.rc != 0
+
+- name: Print server status
+  ansible.builtin.debug:
+    msg: "{{ server_status.stdout_lines }}"
+  when: server_status.rc == 0
+
+- name: Check server
+  uri:
+    url: http://localhost:5000
+    method: GET
+    status_code: 200
+  register: server_status
+
+- name: Print server status
+  ansible.builtin.debug:
+    msg: "{{ server_status.status }} - {{ server_status.msg }}"
+  ```
+
+  ```yaml
+  ### tasks/motd.j2
+  ---
+  - name: Copy template
+    ansible.builtin.template:
+      src: templates/motd.j2
+      dest: /etc/motd
+      mode: preserve
+    become: true
+    become_method: ansible.builtin.su
+  ```
+
+  ```yaml
+  ### tasks/main.yml
+  ---
+  - name: Include Pre-Requirements task
+    ansible.builtin.include_tasks:
+      file: pre-requirements.yaml
+
+  - name: Include motd task
+    ansible.builtin.include_tasks:
+      file: motd.yaml
+
+  - name: Deploy node server
+    ansible.builtin.include_tasks:
+      file: node-server.yaml
+  ```        
+
+#### 02.04. Create the playbook for the role
+
+```yaml
+### 009-role-playbook.yml
+---
+###
+### The playbook for using our role
+### 
+- name: Executing codewizard_lab_role
+  hosts: all
+  become: true
+  become_method: ansible.builtin.su
+
+  roles:
+    - codewizard_lab_role  
+

:arrow_backward: /Labs/008-challengesBack to labs list/Labs/010-loops-and-conditionals :arrow_forward:

\ No newline at end of file diff --git a/mkdocs-site/009-roles/script.sh b/mkdocs-site/009-roles/script.sh new file mode 100644 index 0000000..ed657a9 --- /dev/null +++ b/mkdocs-site/009-roles/script.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +cd /labs-scripts + +# Install ansible requiremens +ansible-galaxy collection install community.general + +# Execute the playbook +ansible-playbook ./009-codewizard-role-playbook.yaml \ No newline at end of file diff --git a/mkdocs-site/010-loops-and-conditionals/_demo.sh b/mkdocs-site/010-loops-and-conditionals/_demo.sh new file mode 100644 index 0000000..c011a76 --- /dev/null +++ b/mkdocs-site/010-loops-and-conditionals/_demo.sh @@ -0,0 +1,31 @@ +#!/bin/bash + +clear + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) + +# Load the common script +source $ROOT_FOLDER/_utils/common.sh + +# Get the current directory of our lab +CURRENT_DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd) +echo "Current directory $CURRENT_DIR" + +# Spin up the docker containers +source $ROOT_FOLDER/Labs/000-setup/01-init-servers.sh +source $ROOT_FOLDER/Labs/000-setup/02-init-ansible.sh + +# Generate the playbook file +cat << EOF > $LABS_SCRIPT_FOLDER/010-loop-and-conditions.yaml +- hosts: linux-server-2 + tasks: + - name: Run with items greater than 5 + ansible.builtin.command: echo {{ item }} + loop: [ 0, 2, 4, 6, 8, 10 ] + when: item > 5 +EOF + +# run ansible playbook which installs git on the servers +docker exec ansible-controller sh -c "cd /labs-scripts && ansible-playbook ./010-loop-and-conditions.yaml" + diff --git a/mkdocs-site/010-loops-and-conditionals/index.html b/mkdocs-site/010-loops-and-conditionals/index.html new file mode 100644 index 0000000..69c4d56 --- /dev/null +++ b/mkdocs-site/010-loops-and-conditionals/index.html @@ -0,0 +1,127 @@ + 010 Loops And Conditionals - AnsibleLabs
Skip to content
profile for CodeWizard at Stack Overflow, Q&A for professional and enthusiast programmers ![Visitor Badge](https://visitor-badge.laobi.icu/badge?page_id=nirgeier) [![Linkedin Badge](https://img.shields.io/badge/-nirgeier-blue?style=flat&logo=Linkedin&logoColor=white&link=https://www.linkedin.com/in/nirgeier/)](https://www.linkedin.com/in/nirgeier/) [![Gmail Badge](https://img.shields.io/badge/-nirgeier@gmail.com-fcc624?style=flat&logo=Gmail&logoColor=red&link=mailto:nirgeier@gmail.com)](mailto:nirgeier@gmail.com) [![Outlook Badge](https://img.shields.io/badge/-nirg@codewizard.co.il-fcc624?style=flat&logo=microsoftoutlook&logoColor=blue&link=mailto:nirg@codewizard.co.il)](mailto:nirg@codewizard.co.il) discord contributors license Pull Requests If you appreciate the effort, Please this project

Lab 010 - Loops and Conditions in Ansible

  • In this section, we will cover Loops and Conditions in Ansible.
  • Loops help in performing repetitive tasks efficiently.
  • Conditions allow tasks to be executed based on specific criteria.



01. Ansible Loops

01.01. Basic Loop

  • Ansible provides a loop keyword to execute tasks multiple times with different inputs.
---
+- hosts: localhost
+  tasks:
+    - name: Install multiple packages
+      apt:
+        name: "{{ item }}"
+        state: present
+      loop:
+        - git
+        - curl
+        - vim
+

01.02. Loop with Dictionaries

  • Loops can be used with dictionaries to process structured data.
---
+- hosts: localhost
+  tasks:
+    - name: Add multiple users
+      user:
+        name: "{{ item.name }}"
+        shell: "{{ item.shell }}"
+      loop:
+        - { name: "alice", shell: "/bin/bash" }
+        - { name: "bob", shell: "/bin/zsh" }
+

01.03. Nested Loops

  • Nested loops allow iterating over multiple lists.
---
+- hosts: localhost
+  tasks:
+    - name: Assign permissions
+      file:
+        path: "/home/{{ item.0 }}/{{ item.1 }}"
+        state: touch
+        owner: "{{ item.0 }}"
+      loop:
+        - ["alice", "bob"]
+        - ["file1.txt", "file2.txt"]
+      loop_control:
+        loop_var: item
+

02. Conditions in Ansible

02.01. Using when

  • Conditions are defined using the when clause.
---
+- hosts: localhost
+  tasks:
+    - name: Install Apache only on Ubuntu
+      apt:
+        name: apache2
+        state: present
+      when: ansible_os_family == "Debian"
+

02.02. Complex Conditions

  • Multiple conditions can be combined with and, or, and not.
---
+- hosts: localhost
+  tasks:
+    - name: Restart service only if running
+      service:
+        name: nginx
+        state: restarted
+      when: ansible_os_family == "RedHat" and ansible_distribution_major_version | int >= 7
+

02.03. Combining Loops and Conditions

  • Loops and conditions can be used together.
---
+- hosts: localhost
+  tasks:
+    - name: Create users only if home directory does not exist
+      user:
+        name: "{{ item }}"
+        state: present
+      loop:
+        - alice
+        - bob
+      when: not ansible_facts['getent_passwd'][item] is defined
+


  • Try writing a playbook that installs different packages based on the OS family.
  • Try to use as many parts as you can (external vars, vars, loops, conditions etc)

:arrow_backward: /Labs/009-rolesBack to labs list/Labs/011-jinja-templating :arrow_forward:

\ No newline at end of file diff --git a/mkdocs-site/011-jinja-templating/_demo.sh b/mkdocs-site/011-jinja-templating/_demo.sh new file mode 100644 index 0000000..909c40d --- /dev/null +++ b/mkdocs-site/011-jinja-templating/_demo.sh @@ -0,0 +1,35 @@ +#!/bin/bash + +# Get the root folder of our demo folder +ROOT_FOLDER=$(git rev-parse --show-toplevel) + +# Load the common script +source $ROOT_FOLDER/_utils/common.sh + +# Spin up the docker containers +source $ROOT_FOLDER/Labs/000-setup/01-init-servers.sh 2>&1 > /dev/null +source $ROOT_FOLDER/Labs/000-setup/02-init-ansible.sh 2>&1 > /dev/null + +clear + +# Install requirement +docker exec ansible-controller sh -c "ansible-galaxy collection install community.docker" + +echo -e "${YELLOW}-----------------------------------${COLOR_OFF}" +echo -e "* Copying the playbook to the scripts folder${COLOR_OFF}" +cp *.yaml $RUNTIME_FOLDER/labs-scripts +cp -r templates/ $RUNTIME_FOLDER/labs-scripts + +tree -a $RUNTIME_FOLDER/labs-scripts + +echo -e "" +echo -e "${YELLOW}-----------------------------------${COLOR_OFF}" +echo -e "" +echo -e "${GREEN}$ cat install-nginx.yaml ${COLOR_OFF}" +docker exec ansible-controller sh -c "cd /labs-scripts && cat install-nginx.yaml" + +echo -e "" +echo -e "${YELLOW}-----------------------------------${COLOR_OFF}" +echo -e "" +echo -e "${GREEN}$ ansible-playbook install-nginx.yaml ${COLOR_OFF}" +docker exec ansible-controller sh -c "cd /labs-scripts && ansible-playbook install-nginx.yaml" diff --git a/mkdocs-site/011-jinja-templating/index.html b/mkdocs-site/011-jinja-templating/index.html new file mode 100644 index 0000000..c0cbdfa --- /dev/null +++ b/mkdocs-site/011-jinja-templating/index.html @@ -0,0 +1,114 @@ + 011 Jinja Templating - AnsibleLabs
Skip to content

profile for CodeWizard on Stack Exchange, a network of free, community-driven Q&A sites

Visitor Badge Linkedin Badge Gmail Badge Outlook Badge



Lab 011 - Jinja2 Templating

  • In our day to day job we come across dozens of configuration files in many different formats.
  • What happens if we need to configure different environments, each with his own values? Should we duplicate the same file for each?
  • Here comes Jinja2 templates for the rescue! It helps us template our configuration files to be used with different values and reduce duplication.
  • Jinja2 is a powerful templating engine integrated into Ansible, used commonly in python projects.
  • Templates allow dynamic configuration file generation based on variables and facts.
  • Jinja2 can be used with conditionals and loops and can even perform filters and functions on our values!

01. Creating Jinja2 Templates

  • Create a Jinja2 template file by appending .j2 to our base config file, for example, nginx.conf.j2:
# Example
+
+events {}
+http {
+  server {
+    listen {{ web_port }};
+    server_name {{ domain_name }};
+
+    location / {
+      proxy_pass http://{{ backend_ip }}:{{ backend_port }};
+    }
+  }
+}
+

02. Using Templates in Playbooks

  • Integrate Jinja2 templates using the ansible.builtin.template module:
---
+- hosts: web_servers
+  vars:
+    web_port: 80
+    domain_name: example.com
+    backend_ip: 192.168.10.10
+    backend_port: 8080
+  tasks:
+    - name: Deploy Nginx Configuration
+      ansible.builtin.template:
+        src: config.j2
+        dest: /etc/nginx/conf.d/site.conf
+      notify: Restart Nginx
+
+  handlers:
+    - name: Restart Nginx
+      ansible.builtin.service:
+        name: nginx
+        state: restarted
+

03. Using Conditional Statements

  • Jinja2 supports conditional logic to dynamically alter configurations:
{% if ansible_distribution == 'Ubuntu' %}
+User ubuntu;
+{% elif ansible_distribution == 'CentOS' %}
+User centos;
+{% else %}
+User default;
+{% endif %}
+

04. Looping with Jinja2

  • Iterate over lists or dictionaries easily:
# hosts file
+{% for host in groups['web_servers'] %}
+{{ hostvars[host]['ansible_default_ipv4']['address'] }} {{ host }}
+{% endfor %}
+

05. Filters and Functions

  • Jinja2 includes built-in filters to transform data:
# Convert text to uppercase
+ServerName {{ domain_name | upper }}
+
+# Default filter for fallback values
+Listen {{ custom_port | default(8080) }}
+

Summary

🔹 Jinja2 enables dynamic template generation with variables and facts.
🔹 Templates help manage complex configurations simply and efficiently.
🔹 Use conditional statements and loops for highly dynamic setups.
🔹 Built-in filters enhance the manipulation of data directly within templates.



  • Create a Jinja2 template for generating a dynamic /etc/motd (Message of the Day) file with a personal message (ensure is enabled first).
  • The code can be found in lab 009
  • Bonus: Use facts to display useful information about OS distribution, IP address, and current hostname dynamically when logging in.

:arrow_backward: /Labs/010-loops-and-conditionalsBack to labs list/Labs/011-jinja-templating :arrow_forward:

\ No newline at end of file diff --git a/mkdocs-site/011-jinja-templating/install-nginx.yaml b/mkdocs-site/011-jinja-templating/install-nginx.yaml new file mode 100644 index 0000000..e6db3d1 --- /dev/null +++ b/mkdocs-site/011-jinja-templating/install-nginx.yaml @@ -0,0 +1,53 @@ +################################################## +# Playbook for installing Apache on Ubuntu +################################################## +--- +- hosts: linux-server-2 + vars_files: + - vars.yaml + + tasks: + - name: Install prerequisites + apt: + name: "{{ item }}" + update_cache: yes + state: latest + force_apt_get: yes + loop: [ 'aptitude', 'apache2' ] + + - name: Create document root + file: + path: "/var/www/{{ http_host }}" + state: directory + owner: "{{ app_user }}" + mode: '0755' + + - name: Copy index test page + template: + src: "templates/index.html.j2" + dest: "/var/www/{{ http_host }}/index.html" + + - name: Set up Apache virtualhost + template: + src: "templates/apache.conf.j2" + dest: "/etc/apache2/sites-available/{{ http_conf }}" + + - name: Enable new site + shell: /usr/sbin/a2ensite {{ http_conf }} + + - name: Disable default Apache site + shell: /usr/sbin/a2dissite 000-default.conf + when: disable_default + + - name: Start apache2 server + shell: service apache2 restart + + - name: Check Apache + service_facts: + register: services_state + + - name: Debug + debug: + var: services_state + + \ No newline at end of file diff --git a/mkdocs-site/011-jinja-templating/templates/apache.conf.j2 b/mkdocs-site/011-jinja-templating/templates/apache.conf.j2 new file mode 100644 index 0000000..c158f90 --- /dev/null +++ b/mkdocs-site/011-jinja-templating/templates/apache.conf.j2 @@ -0,0 +1,8 @@ + + ServerAdmin webmaster@localhost + ServerName {{ http_host }} + ServerAlias www.{{ http_host }} + DocumentRoot /var/www/{{ http_host }} + ErrorLog ${APACHE_LOG_DIR}/error.log + CustomLog ${APACHE_LOG_DIR}/access.log combined + \ No newline at end of file diff --git a/mkdocs-site/011-jinja-templating/templates/index.html.j2 b/mkdocs-site/011-jinja-templating/templates/index.html.j2 new file mode 100644 index 0000000..3665f42 --- /dev/null +++ b/mkdocs-site/011-jinja-templating/templates/index.html.j2 @@ -0,0 +1,8 @@ + + + Welcome to {{ http_host }} ! + + +

Success! The {{ http_host }} virtual host is working!

+ + \ No newline at end of file diff --git a/mkdocs-site/404.html b/mkdocs-site/404.html new file mode 100644 index 0000000..6df860a --- /dev/null +++ b/mkdocs-site/404.html @@ -0,0 +1,41 @@ + AnsibleLabs

404 - Not found

\ No newline at end of file diff --git a/mkdocs-site/assets/images/ansible-architecture-diagram.png b/mkdocs-site/assets/images/ansible-architecture-diagram.png new file mode 100644 index 0000000000000000000000000000000000000000..c55d3418cd808659a621c9a3bdf9d969a60639b0 GIT binary patch literal 66317 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

&c1*3Hv{_)lFqh6CtMM1+L_ZaX$N=;Gn+iz3zn zl4C$CBNPSy{Cr!g^ev4poT{p7zH_LG0^VR-qa}!J{{{|&iJ_r=K*JaIV_HfI5uckq z7*+wsQILRQiG&1#Di#(rtiCerZXcb``0^_-;3H`hvJ?vcnu}>&SO47%v;;1+cRUbS zyV|3e+l*>zx&x|8D?h#8n~h`uf5D_xUkccN>N@h2;GSXm0bUEhEvvY;p7{ld#zFj# z;U|of!RsDwtBy{pQ>v*6wDQV<(5J{CkZb0&S#Sn|Xkai&uVlJBWofehf;FA{kb2|B zzc0E@vCUW+1wI=I(e?a9%mh-ofOU&ZZ~y#w2fBp-!NzU9Gx%L5c35aV5zx3hJhTq` zm3Y=5$bA3pf4}e%g-dygT>zx6+omZa!{~dN30TixUQyUCHwPPirV%Uk|Fg8D zo!ZWlvQi{M;`IjrR7Jk`RY(AIp`@f-0*YQ8evpq8ZEbCU8jB0mSMcx}^?yO->CqsU z>ME<2e4K9)Wfli_*zs?rW`NcGd<#(a9nj^n1^9vf9XR2oW*1~!dJ!Idn-9BNv5^b< zss~axbAjM1&vy>pbPy1d_7^)cHa0e3(GUo@pXZg89sRwz{2m|h8x@IL;6a!P0|N@O z2JwX$wN(m+Tl-Q!J}(*-xJo^=V7xwJhIIdMtO3NV-)3jFw7f4<^z?lAW~+Hi2=$+T zT6+Veqvn8eKX{Y~Im|I$y%KhJ8_D1)E-p^A;cskg9P{TSE|sztpzMqfiFoAQafy+F z1dTunVV3e13Ksqvmt}mj$Yalj*?mJpC6z(eCMIw5z`_5$vI*Hw4>xL{@eQow@$vCr zzkXqPSIG*AKnV`TV})1<85*&aG@3Rgzr7y3b3X!n&5kn?5|X(TNC>}QU>=$LFF-Zs z^1MC-t4StXfY?eD;(Zm!GG!SxYfsP5kmmj-6Z(UDCiC?Ax>sh%VL1ZyAR_n^>8GXsE+j~h1a-R}gd@*h9MD!$F0Ge?7q z(_+T{4N5ty*Lko@FK$QVVo>m>;lOTgOlo?1dVGA>vYPdux7NSxJ<2*v8CX^(Cu=&+ zJ3k|pqu9iQ)2lT=w!RRlSGV;w(DE?|I^kUEwm7bJ<2ZN>hlhX=OG2I)t{#zd?(%>r zx<1?N0|hq4)F~=-yJpF&1^vD;pyzg&o1RX{pGRR7R{f~A%n^d^_IS%m2(5)6q-!>eYIt4WTmCI@<%_~E;YuYj!n&BI!>B_BZV|i z!+e%hfEWSxw!dFOO6oy3%G{MhY36g)uovRkBJIG?9k;A)`Ytf(1syh7y}PTl=C83+ zs)g{6^~h`=%pMqC67Fy%^>NooCeYFak0%nE+Ct#YadS+PB1Lf@Pa%b1J3-fk{IAQ) zODt>$uCR<#OY%=C1#;Q>-$6N0%1HgUVmP05gisp}Y6Ky7l*&g`qIWSLC)VqHNpL;` zYW?sFT`c=X)E+J67>iU5hl8i5XLA9Rv-1d*Z0awdC)U#=wiY>tNB2=Fzp2v1=*sR9 zS!ig0?%Uf((e<<;#euGo*qtPxHZ=?unNayYTIH4e(hZ9Ipv9MVfhTt5sjJ*wr7oB zFOt_Qo;TXO)-=h2J<>mEfWnkcI$>FyL(D(^|YM{VQOZ&CG z$6}qG4#VnIS~~7c=i}9cb|gn=TbNbjm!#|+G31yRHmSY1_MIe78b(ZdjeX96M0i+D z*K0^MnL#>bjq2?W+XL;()tag^MVJj&iuli&0WY1mhDM$=GGQ(w-Ic|rw%NcjfKr3U z{PJ?Jvt$NCeuBDw>3J!A2aXFF z^R5EYbe)Hnm-j^i4R?9|jNhtAf;7HAg)X?uRoBs4FGnVg^Ff-B+Nw-OziacE4s*_S zZ<|548p?XMzugAci2GGXzVt&;2h)Hn%r(QdF47iLd^K6nrOErTC);sa%R$-~_?d>`+PiyABR{N(F zCuCUn@86L&3Rt+v0Ms{Y!Tza4Nll$R_)U?)Y`XQXuf`v=mh$rOjFTK~Zi-4~t)QV| z&E*jP&%=;299JuSnV(Mt_HZ}L#7uJ{*HyzLSh%=j`rIwOfyECO+x zkYr_6n0fg5>1oab)M(*uy^8-)QfBC|O@nn`E(4>yKZCuYAoh1$q>Mw-$4qm~n^=oE2dG*n*#}>+$gza-pw|pH%aq-ZX zG}wB*O6jOD5b6A7DBX^dah9ZG7M>GihX(7q7UhEbV`UrG9q1` zIWi@c?fP?XI7%TFY3JNuL%l4>D=fgg`aiw!Fom;Qkw$A6Cx^&Klg+PKzpqJahKjvXE6k6I=_2zyR6H8G>G#) z6&y-vI#S6(f~Yy{o0zdNrR;fW26)o2v9RbYk2g5H#7t^0zAUALS2-bShh_LS7{({2 zwgsZ;*e^jrU?W88LqaH%Yl}0-u{*fdZ2_^o7$5qwup`({8N4d22Rh*mPKbgR+1JS0 zAexj9`@3Wylv4mi=DJ5Q;#)q|M}Gc}0P^3Ri*W(|+0mU--$acW)a(9N-mwEMA&#(h z3$Wl7c^rFGfL|-80Dn^o174uv{%fZG+y37B{|A5khhP5vo&Q&V{69J_u(oM|vDrR4 z%1lkwn8MXhA0AqfBW`>KB^22a)cTbN@3X1{glMe|AQTPA% zG0>E31cFxr0s_#D_lDoY+1k1^ChqIkuL+*iGHI6^J;*>tp_KREhhg+B3@t4!Ei8C! z7C3NmlR;RagvoRo@dpG+e}h_(MF6Sa$%%>T`ug5tP+I_-5JVCi$dQ1cT%Pp7!GV>j z=?rM<0;8|&M|E3V%RFz6b8~ZVj+Y4meFrd=K#AO}6fB9qTNJsfe=Q5x*x1f5E)JHO zE`WGsi}PN!VNcjiwwFt7dIa%%E_(U{@Un-8hw?d)IT+32zqq{Y{`7C>YdLW0X^qXz z#~?vLwX(9R(5Ts2YKnI}mjhC`=)}C;6U-X5=Hp<$Rn7nQiQ)Gn5hTU=`KI>vEZn{I zft-=n^VM&;smRFIr%TkhxVY2-9`|A}&zF~%pP%2-{5wl<5^9;eE=$YHM@L6hAn*9QfftuRgL4(; z|NZyhXaCDO|9c5^O8vJ9CFKxOg1=(Ci;DIDkwVb>6Vo-8v-8x^Q5gs4^ts^GmZY)# zSV?K=;f4%ofcU9Ep=4zxS*&Pi!F}(a^4w8v#1$DeM1Tq%8hq^?QDwB^k{mchEBi;KqCuY2;`K zlnEN3H94?1T5m(>0A|gA6cPaO4uHl3s}GF!n?G=f5JD4eUijiSf9Z7(poq$#<=V0M zfP>oCuXT(aL)4wCi4VjKT`#( z-^7qzE6U1rvQ9wS5!^}kf~N^VO-*fPw(F>i2|@E78m_j0kg&e8(B*W^>$pg##nkW# zBBr)B0(9lU^p1IpbS9^ypc~3k(uaRO7xD0byNN@8gLy%fI3W0niw$rxA8F$O1n-<3 z7uVYsMm3aA#X`(jX6f8zh6FB~wilQ*rHu(fQ=_8LE=XuNN-8Q<<()ibJ4?$?&>+3M zgai2!m|);_e`#TT05QSD#wNgWn(EBRBEVUQ@%cocrXf4a_wl6N?weLD)zz&-P|@C( z7g;`OeH27Q_e|eBiM}Yi->(^(_=iDQW1vRO$|maT*l3)rEXAEId4^ zZ9(Z$20#gUwn&MZ>u_re3`P-C%DKbgVorngOa};zb?Q9+lyyp5-{VPeJIae2ctaCt zY$I!HI;1XcC&b??D_Jk(T6C3Wqa<9kpKLE<;!-*iEL=gr^2nTvIAM&e zrL2i^EMjPj1Y|rm^lTQ%(ObA0J0LQAae!z-?N)8Z()pyLrIi(OD=vX##kQUsQc11s z?dUI4`pB2y+E06o2(1*)*z~6O{x4WW#Kc8>jP^}Bp(yfXpx^*_EJ@#BWu=C0?>VvG z5Gf}BCc?vmUChchph(lt_P&Qu=2CDUKHu_9Li3)7JOx7#9Eyx$w^i8~;1$&)BO;8g zNLg89+ac6~CCKJiSF`Ks2=tBqkkNN_;>m<%{fO1(GK&Ak>fYXxscvu`lTPJ{h>J`+ zc8|3=7H2%6gzF*m&;4oD@m)F#U=mUfR{2aRre5|MZuUlSy?#2}bVv zQrz7L`Ew3D|D>~i`$aFr6SsCw+tWy*-46n2T*(VSf|M?YHM2e$>iH<)|Y z<9Ov!P^%A{MexgXeQT@xh2eKV$(d;(1pRPk(r}ynnzNNZZuQNOY?!H;!nPtCA+V$Ov0PIjrIc#Y2jOHIKt}$4iFh~=}sM|URaG<57jNVhd`ZPWNHu5Uo z38+bibOM>x=l0udM(dBIj5Mxk;>N~#F*_Ao=LFEN@#KoM^aHGs4!@bt@L|j7=~v%r zWpDJJRv7rtkMkN#u1{2)vOTU^S-V&6LSu;?F{a@BO!4^0GY=3Nw8}j6 z_Xq{7&K;w0jfTz%Ls{F|xFu1BO@ZKevv))`Eu!w|UDOXmE-?vc7@8-s{%ACtU2H_d zEs65BnjuS`1${bahJNX+Y>>WT=&XcY^VO>^!{iL;*~gnt8Z?oe!QoiU3FoN$U)rv^ z4bpa{eD4Ujpr9(K8zC-5iPwGF*&m^TT7z&(gBZzxCqRzK{ru@+f2GZn_PPei=~xbi z%q~W745_FZrwJ2@L9|QK9m#4H86pS)DXh_lpYr7v_=C%YHvVf`2;r8`dVFqUYAPx{ zi=L7Vwq@qSp!*vdz8Tctj4%Hr0(!6^Hlzd^m=D4GuAocpx!w&%eq@Whe5u{LZp@#_ z6Oq`lAVqt!M+(7{Kq5(~c*Aec0&JrV^~GjwlEhAsR}y#pVdX@8AqAzO61QRZ|%2> zJFbqQl2I$^t(%;VDJUrBL;9JhnGOl`{Vg0f=S}XRDmDlX=mu2+U>V$>d60$!S`w1G zR*+vfF}1antdXE_$&j^&8CbHk8a7IU$jfNTdrHa6-ga$I;W@-hG*Sk6c+C#}(zY#}q4X!5}gS6Du#z$|66j zDK@J5u*T{IJlDa?flw>*jgH~XCfIs6cbPBFvx z2Xdh34;Eu@li@k$%qn8!fT-~E$C&JH-qAEv7z?ovA7G@VYm3l{46{iQwCLzdHa0A0 zdF0ZJyYZOm=p;-7y}ddslQHsSgg<_DVGN?`Qr6<73`x`WC%+m_^{@VcGKtZ`XB;E_ zyN~U-ky5GU!+~PGMFSwPHxZZ+%!_bI7!sU`1RJwRH))r_Thh`fL*1qBgbk>~^B9op z=7?B+D!LfcfMKaxhxtr!+%Rwx(-&JtTiQ%2m@SkE%#U#_e^qa{F>Kggu>WlImKlR$ z@|(3L=P!Ru=tNd_lc2BS;R5~gm|zkp7qNRjTw;0;T`vbJ$|p^UE}*26#ogCHseQ`8 zWOso&qnf_uD{cG08oqaQpl;D=leaf_<_&Yf%p$M+&V(smx|R zrnlK=cmK$P{(!R=6q6hf9v&Yb-5N7pUf5DknqsSOeyf9IFX;p56gIAi0MNJvW- zjnTq5yulwy{7z$P41qa0!}D(L?ham@!J=&P*UmIF?!$NkuCPFXki|kUqL5IzorvM1 z`xgi*)WF_K;(=LC!ceHjWzl)x@&g{*2`q9xn(iHTJ~?A6)*!O{tb)JChDCXuA!!5! z4Sg`*jwFJ+qD3PS) zsaZI=Ws{6M=*7?F-_xX}h1Mk(&Ra}%Acz#LHaXqsG+#2XuvngN*(AVSUm(9c-S8_a zzP7Q6jvePSqIE=&jDf5cHvRM@^44zU!&2M9d#_u%sSXM14-#M6rEtfKi}!PK%=7a? z(Vy0|^xAQ+F#~Ejg(f>sv3oab+MjMX)T!}ZF%zXMbf{FMsls@E$`VhTz$b5d z67pJ$L8f*EA|0f$8>tYX?ikp}nZ52HYE;R2ivd3`Xfd~ zri0PWhA1;>R~TandiWDawh!l9$b4tZoD-_y?lon<2b8iM_}|LtpbA{0+QNv@f)*oY9H{c~vPE%JE?>4@c+niw8JHZ3Vf z%;~{>uau%44+ac{6)g>!6_&b48zsr##!k#GiZiT&P2@|^5gbTv8st=)Wi&NyjxY&DpAD3d2tbKJWfOfxgV56#&Fxpr$A{*6L`Q;&$?bJp zTw3aNXpBIxOe=)3 zRUph5WO~l{fy$9A%R!Hl^SsnoS$eQ@?i~%y7nF#vElQTD)OBfbnh3vZ(Nh^@Y=%#D zwY1U;|0Jci=5in_sa0}SbOl1;SzsAY@@ZYDAq3PCTU-AuTn)$N#v`yiKX=q?|B1Rq zPZ>$XL(2EKlt}MONNDBcII*!gS+09E_w%W<*@b!?8uFdAghVK1Kg7I%*E^}w2ca{o z*?JKb0)kHoa9r#)L%+qMe@TRHtaovXh$OjqQ@*9{?#&me=e8r40Mbou68eX8?FY2) zJT5&BwP5ao=N1;KM~Y%t%i7xbf4~XDW72bVGh%#4F$XSPotDY7`XDdseVzkH{rj{M2Ji z&c8u5W04DknNp%X@%Tn`(h)TQEL0xYwe)?nMapbepYZXZ-l7;{lBa$g0vb(}KiyLa zgfyxw@zyJ;e=JJ9Rx{!M2vwbe{Ue}Dhm*yd(SO-(vBwmAEgtgNSJZ)<&h zX9zAXf1N@N*!CrchLC7 zhVV$iKR^mE2zcHwl@_hfwXgP!9KYeLJKpR?B|GcsG4XwLSZjaDntXXRI5#ho%4+16 z%=AsVr>6S6Lfb*m`H!ZT*L?&&8esAXxH~51kiPlh!^k*`i<1-}()ig97dx7i7%`>+ z`1iDe5Q+`(z;in z%+~Z|RE;TloD|k_!aNVgL@~2YKdeVr`qSPMHp1fxW8{fe*{ybN4^a#2&$F3fDk&@T zI&Nvow`*%>Xf-^O;JX{lSAQ+t$MyT43DNs`C}26&{OucN9IxlKt$aHi9Kp@W2`1)7 zU-?H27~vS#?!iQQAcB+{p%2KVaZdv>oRi^DU{5d>^a)8xT{mA|-4i)SBTN>YTwbGL zV`F#0NI_v-JyKZ=O(E<-Z+Rh!h!a9$rdHF?e^M@NG`N}aCI z1FoMW{U~BNfZhKS$T$V2EVtlFNPGzjejD>+3YZ@p(8QU-=bnFQ#?$<9vG{BT!k%Zz|vUsCwx^AVjN_bcHAFji^x zcX6>L1qGvx&2(NKz_Xb|wtfZrq7fI*PZj4NU}-mB`d(k}7RazCCZ9Ar@4*y~jh}%j zQxugYukz~f1XuhT=|wSM?sEOc!0P4oefHub9z;_usCEvAx>a+$FrA7bu7HMSU$|01 zKssm8U9!7#Lsu-U^xSS)&`uZv9yK4I1oMAv zfBAx-sevDG341iCU{&gfw%r)aC?H^fgLB|PPpmlw*LT@R(+(bQyhuYQ$? z)RP<6-F?{?{X{KGWNBG^vGw(3p^kc8lYu4VAx9Lzk; zG*pPl%Kp0Cd;dnjYqAw-y$AAYsH=bfD{WvEb3##`N&ci8@fCag+(P=hXp2_kn zX3%w`Tjy4{)|?@-_g7b!_wA`36%{WR*TYKNLm^mXEBv9kqID8)@9xC%zNDmJcuA-W zL3l$^5W}cU+X9a8c4Sz)X!;mj4sAa@cAGNjy2>M80pCVLO{#m_6nx1L~EiCEv z^>nQcP*7e|i$IC%4J4$3T-Gh9=`8}U=Scz#BCNgm&OrR_$;)z>r{_!W=&G(=(ATf6 zK`<`?u&ZU89*^&Qmfoqf<|UtZfwQ>}?*CK0HwF&C%#JtsQ z^H_MiOTvKAurjP>qos|{%i?o?^Rqyj^>|`CoRIy$P_)gy*4FOt=?M(9eGW^A43{E& zXFsqz>P}7$)fY8ClExX(9U3yTFdvtEGAPV#0l0|M85tsRSU`vIDcTv2h`559%G7#= zPfJlTD2#!T5j3h|!-SwsTPxbEtmJ~i$KHHR-%MHi=M$!$6z7u_tJ~vAamWXvzxR*j z?;2GP3clNeYTOyiwNf^AaF~C2Zg5`fSSc^h0t80Tl*4>RYW{F@!s)V)W@4go`|kZ} zP%J;nugHk|SQHEk{TxWPxoH>n&9TSrA&lD)q;(L@WdBYdt>zGg0FV93*(FMS%|mG5 zPx+0F9#rERp-+Rmf-ig-Sy|tUicsvtI+0s>iUYw9tj;0aW#u-(XE*7@nM`SydV ziV7`Fe*`{zA@E~YYEs|Fb3_Q!y=7&&*G%qiS??wb7=W!c>QmLvrs%IArzg!Jr7LD3 z6Rs3TcW`l$B+gV76f<#f$gi*ymXlPMklgIMGB(=GL4RaHVo>gzg9lR=#hFqJ$d6YLO~AW(b|~L z0Z_VJG^BQf$I?P z*YR1kECC&ZjSmK5Vy#V)Fp>IC7(!>V>8^ISr&c-s2MX;(b&D6(A*fEN{11Rk$#YE@ zK+5<*Rdr%coe;`wbVjpEv*DQgHYE15qa&4)EEAKg*5bggUj>B&2KAJ0P2Tb978E;v zMwgZz#=ybBV>iXP=9(Z|-`U}HFf{oXk{;TZTOfBM{vqSxbiFi7cQhct@O6A*j*pla zEVpe&mCL~iG~6W^IS*l;izU%oaO+m=V`06UTGrZ!7W z@sXuyRWlR#ve(Grb5hBgK4JS|VaYY7cTBp&g+5kd4k{{*H5bsLqV3r#H~6t*EMnvg1%wZ!+3Wt-2ous21eqO-xPotO~ZBi81LQMTZT# ze9k7P4Em`03dZ6UGLAYZ?mb3N+M z5D@qL2#fuN2((PwMwl##(wnf;s+|Kdrwad7=DnMG3exU(b=`!7fE=v z0b7xxuEUvNV%Dx(4O7e8H+vMX4FwezPxbZskTx%;gPB4}MN=~)K{+k;Zf{Qsql4&j zd*+Q?hD5WAlvP*APkMV#G3YfE`-2+8VDb1V=3k@CE|d9cbDkg=k10|DZe**v=HdE>2m=KBU!^_0~v3iFlLCmF{rACLVig+f*bn%7){hS- zqG=j$A4#DWLvC#tAV2+Bzudja@7--Ceg3ADdQE1$BK9X4{ z)x^P(0BkM#`PD{G!D}k(kpWtB>9+vW0SOrzh@+LEVy$Mga*(Yzv-roYAt#z>n3(8k zXhLR%m6TFxErwGxjmG``73QSCH5fobAf?Z4`E!8&yqkS8VO|RviXL84BFgfz*(d!b z+cbN7b0GeMpjDaP>hH(*uL)Z>HmGcEDT(0k>(QkH5jPW% zl;npGwb9&r#$+^UX87EkGJNO|#@LiH8EZThzD`s1 z*U(T9V$Bi|T#RP>Dvm1Ko0v?4h-G?uSJ?DF3{R3AySb^Y)%S(-nth^(bO>;2tkhRC zBO-`y!HoM(U6Gi2Y2m44y&{_2+f109t-}_tJKQ27yt%^~V_(J+K5t&D;=Fp-*n zsoNnTIK6%BKaxyL`0FbD>=2~PEh3ST6w}`~#O`jt!scvtMug$gMj)bEX}-FzXg|%L zg*}F}HTm}42@joY4@SS#3U!Wq+MNGn=6oes?fdi+aPilt$TTDuvqI5P=32RT0zgm)aKM@20&a} z+r|EF+yG~|cRXOQ%kuZ{O13MP_4OnldvjW2Qq2^gFQOQiIUarCr7#S!aZgX~sU(x8MG+O@7 zVnRZ0v@bt@EFzj(F6`>4#MUajA?tUx^I^aYPDfKj=*&#pT(Mq2ZEa3)&u6Nkul6=v zw6wv^&A9mVfbj-KRui5egX0ALQ#?XlbgCk>kIZ84vxf+2V6y!RorFX53DYaz-F|lrk0`5IBd4RRY+&HPPe&K}L()wPBTosUnS-7_`}=htC!&Lc0p0Tz znE44IxIxH=b*W;7{)+gXn2|XRJJY|OunSN>V zc?xdvgg{5X`6gyGk7IC&7eU%z5o~=1YsjpttXCCa;iavjD1x6K$HiiPt&s?JYTHwNT4FluR$3QOISN6%)|e;&MP5C;p-PaE8&x!eS;(DO(VI zv0ZR^u?096G_k2E4|Pq;axLn)GD4*h5~JQr-D=A7xvH>$fLW;|zl`3NXsFx1iJF4j zbZ(2Ob>9~;2HjFd`XL`Hc|*hJuF$gx*0eN5YbPL}a&bDvt&<(6Xl@C{R{87>kN=qz z$NX>Abaw}l2rThiPI+hMzg%ljo9x`+Rfg)S5GVMgxd|$Lc z_8;gS<;*9vk(RbF9Z$ypG}ONE<;#bA!9Rl*ldk&hWDfuY!GC+OwGSH;BS4H_{NYblEXRHAZ5+y=iH+V`(} zahI3cslVkFo;p9p;GxT4>jEB>GR2(!QA1M zMuoVfr1L)tGcBKWF2~Q_A+5cUtkA`bfV$o6BO3bwdg9eou+1KS6y@i0S&Whhj&(%z zL`H6>(zW^u&dkhEP*KfJDX(uyIu(XqH?)pSVdJ^#ut|a1PA)<{y=q%rYINO|# z&hY%49OVCbzYXUw`ug5P60XR~+J1Oq(&BpMNw^pEB@77= z_j;;JB7YaYJbON`i;4uk@K>#3jR-0g;Tg_eAh;-{8Vt*uwht;g>OzXYQ{`UGAAQvAnMt5Rv-_zFr-p#@${lHcSI{KMxPH=`aAw zu=_oG$#V)Hn6z+CZ&pcpg!BnBc!NK`fjvbxzStp4W(sES{qVsUh{NQun!v)kTU&GB z8389jE!!$%ybtn-u8<}-H)+_&-zf#D@u&fKU5 zP*VG*a=(5Z$(I3|w)^j04?i+jV6fMye8BvEFUCt})Q47H9h#dioRd3WMLYy+nWHP z0$q5x-bjW8Ho;(Rp_a+@;TrLKq0j<8FNA>9_)z#a5J(BEWhjM{u*mnE6^EU{PafBg zvP-?)TWqouKKIHcE`k75b3sO?AO2lYmHAL6^(6A@{rl0KBE7Za<&@37z_X7O5{t7P zot;n#_ra&9>mDQ|@IV0BVH0Izhyw&jRmu_)M`V=3aR1>@SV0@|h{bv^02puk&SsS~ zf3*0mZBD)H^`9A;@rCB?f;Aj0BG;?p=PZ6N#bH8171I%-gA?@qWFn;NKe@JM1$;(u zJOClbva$h@E~&q;tZbUq493-va6_WW;Xa*>If4Pk#o25*D>hbKGIe@txRPS^N?VuK z%QAl_letSqhIC*cJ07kGcgQOWtk1_B#$i~mjp|8dI8HBil{{{eq$O!NSRD+i-^)y$ zJUzq%KZ@3zyO)tMk)*A!s*1Q`0%P$&aQk@Y5*sU-qbA&~c(%VEhK6<_JdgI~XLD4$ zzAx~1Y`s8u_|Qv9rtBesws)=pU@8(1Vz#%Zi0kXA0s&}uTcrZSu)(=yFugU%hK7&S0Jk)oxQSqzHP5I+uzw4*6c`te+5eVL3YIf&L~30zZ`)s# zcZcta3JTs+0GPr=X8o~wt*N>(#b&&?noYhPV+|8SzvMzP=l1opuQ=pm4GX)H-)NN) z1wfkF*uuWn$S5hzo?P_L{_vrd&Emj)z4^484d=ST_3mb9uCl-19cUv8^D-J5*8QA6 zzX%6taTgb&FfWAN>PJh9r|~F)!~K24H?0l`=NID(mA|}~-XXNEwthx+MElTb~vSnOe;XfICj2%NgXZ1hxY&wJfk>jO!- zA){b`i_^U~cmx0yX=?C0!*1!XW*bdj=>U^j-t1~1zLZc-i*6_A1yPn3Ul0yx`iIbG zYarc=4~^vY_21OJShoHywEa%&bETv_#>s@Ujvr^kn7^tA2f!?awnMsq2fDq5fwA#X zW-^3eU;-g17;Tgfl(FRX5j5clPB8}u_AqgfU2vaBJuzE%40sVt7nsG=@SE0oU*Fiy zPD-==;;jpv79u2OB;VR^Oj3}EC0M$;Y^Yz0{S~;$A^-hLbk^LmApX;cLFNJj@i)Kw zs%QX0osQBJpN;Ys6rcspXZyen$G_Z*{RrB-s!S76KdH52^rvMVhMH9x7}!;2(7wOF z?{xPYz&5AQdav!>J3 zQ?t2#dnuK%mmz$m@C(kmJB81Tk*3#cy$82(g!?jtG!>pOS&>?9z7cxg8AEe{gL7YB zH{0;y5^!P)un~QNFqE)v-tXXfvA?@ovfUle2VVQb>GI5mhNoOoL1C0J0BhA+x(e6E z-FdY6M~$mY^40(PB~|+^nyL@LYno+3u3e!x)_8H8%%lk1e+D5I?I>MYCrx}K>x!mB z9=M6OsV@>hS<1~6f5mMhwAdG%zX=*vN#)L)vp+%4k!^TUs!A#=HDFLBaO==%Km$$Y zV0-(I1#nIz`yk!|R$8O}1W!`>sw(sKOLjtnaA(XX_7V$tY*trSLH@%gz@uwxhx__I zx*X}JlhCgt85x_+&vV4a%I?N%DMU!f7Lg0WD)P1q{}oAj9U};kH9Ea=a4>2_sAuu^ z$d={r)@>R1;0^Rc!a=6Z?%f~$T4+fweOA%<{5dWavijn8CRy%ggX4|+g+d~m9&E_< zG0pGay3{AgtMm_VS`X4dEi|AeCHB*+7|!Jf)|o6a(Q(k$f`dXy?9z24&gWQqIBmho zQvBDA7~o8kf+{Od!DJdBJ7vf`iHRBxuBb{J8%6*9=@)Ypua`SVUIW`B z>dBwKEP}Mb9qWMs*#hoVTwgv}?QRW+%gR3g@`Zalr%c6USS^`N!hBgsoTRfeUBIXB z)f|kZWrZ1_;RU0kK0z4KDtU=WBZ$n;^}*J|F-i{yoi#`ifX)h}J3ap{H6Hy`qo{?Y zq`&~o?c=p>3W=Y9O$MPumLej)K&;WT44jee%fG7SRMO(NPP<8-O_fHAmbZAGI~^#M zReW*eeV>&9N5aF#7SZ^l_8aQMz4N~y3``QIWw>nvLtNZjTmmL!m8hfwzCn2_@@4uS%45bRs)d7L{ z$dm2AA^2<`+WRe~phwI30iDEF2j3|qKAh8W*kt_O=qIP8#gscex^mf7SuNI5 zAS5~o4oO~U8C1K6TA<;^UrZLyYSl!D!obKxX_=MAz?RQNmr;~=qoY@(zu-WtX=U*B z>jx?-6AKG>;2QwyQf`mqRb;0ZfVTjmxv%WAAYS4CcIib&Nr{XYc)B(0?&d~-hsWn~ zltG#6Qfp0I9ydToWwN?k&}dH`{$0{Axw|vF8hQ^x)&&|eb@H|bgWnd-^i@;<2-;Ok zwB2(cL0&!`%dD?+xRl!r>$}xe-arD&_O@cwjMpFmY@=W5^S7xI@!6!w^4fS#c7Gu= zlTCil`~3`3w2-_4a}UQip&9@Axy!-r064Njf`i`)cwC_qgY*MneA~x=`s#NEWD{9C z!Lb_KNmUsU5#i^Dn5RcV0wx_*-sZ*7br!ii@Pqrl2;iFM*wmbvSUbN&C7NA? zaRen&c}`dM7_~{qrlxK$mrA9jt{F8y;mAzwD!q+`4?@3>i#1-|q~fq4{Q)|`n8~g% z%)FjqCONsy4Bo?o>aU7x$-=>i>!0RDMA{D*DCGQJQ`uk~VZ3LnT)#R7>C4fe17u?h zu`r)rKfaU?veapOUbX7l-d160#jo2ejnAXBvn-7L_N~WRWX;d2sw$AT0qkfXUKEH4 z?11>$-`^kX4sYg~%1T0EE;OH~2L(3Z^ko+l)-Ak&jB7yE&zhYWnz4aEi^`l`VB78M zYx@e1f&p?C2zZ?=DGG~eX^zv_g8Wg5`DybD`#H6w%*{c>rt!=SsNo-E6G-1P4JS!x zi?$yvdGY7U`q+H;Lqywo`R$uRo5sUK=!{z^{+Q{G(ny1)eAd=-1U8W@&tU*INADk{ zsXu-&;*qZ-@6Mq92v??+&WFj6WL;G?wW;)jhx^Z9NbSV|TTSKIx7gDb*Jw_MZLha) ztGAjR=|1w*w@x{uaB<01&DDS$0Gs(b+mtiGOJF|9fP(SOAgrSj=`@Q;Nknv_2mWVza)sGGZM3hZd% zp`kDhWMaq7P*^IlBigRI*(|$<-L9`1Fsfsj;fLS~^4pSUNr}bL|K)LWaCtFIh!baQ zz8jUO(T2BkC@7<+x7jTqUgZ}Wq*aSPQ!@xhf|!*LMkbQ+@VKr`aqzvtyato3k&uz^ z&!_a_;^NN7m-kin(x5ZX>GoxjgumBO-o&-}4_!XCnFoyve&POPUQ=D|c()sl1n*Wj z6drnwdkb&Ihl7IyGGvquw+3()wI%IrZOg%*ni?Flvx|kKf`b0GHr4EG%o;gaqtq!# z3z$rBb<8ngnNz{->Jpg3{maC#{f%BsjDw6$>RVjI%Fb6_X(}=eZT8@4o2kDVqsBs{X03NBmdMQg!%GeDw442f+noGe zTrd$)QcB8UFbRH8fN5=>DZm@f8C(Help~z}fWV!S(o#Vn#REl-rR#G0Z~LD=WW2oY zAT$T0N~8&TJtVLgmNkNc9tvl|nvNI*=6YpFQp+YBWe%f{;u0`#?Gea;qUjSKuMTX< z8WZ0X6(b7^_rTFyR8+Jqwzh6LYu=p@g8Sn}_2Ga^?L7JVruw$d)(A&kNUmh7$(4_s zeB=6>WoyW194TzK@v9=Pr{@poJ)Vp(zXIXk62LFIH9B#Ke)sL;;C3vy%~K@xlVM{e zrTR1YN`T395P^pwKbM-6LRm*w7ZdmL`ap{+bIh(i2!jWz?Z3c;j0W%=NfQ$w(I`z) zpZt5gkitVSI_fKX+}n%%`t^)xkki&y=_xcI5c-by0wwwene*E_dTQ!3i`(~iqN^pT z>c=xe1b*K$9!9hK^YioIM1Pv7 z+|?y6A%Plmgu%}wcSkPSUtU`qTYsqXmy4y$G7?ME*ecAbATZ+P&I|GJ}7&m z@qDlS@luesf|(3npeXT|D}Pt0Vr9AF)iG=j6r|}g&qk)PmL*0VBzlHe4F*Lqu?+zz zQF`pTRlS|L`QPKUKUy^}4F+m#Gl2yeii!DV{rV8bvesQ#;VLsTc#lx1ehKDmV$L}U zxM1SqB>1N|>w$N`Dj8KG2U{5ne~BQH;q!99)Hz_+BtT0sGm@1iK2 zy`xmS9t%NMZJP`$N=VEvj*2BC8-qk(e`5m~-bF()DnFm*Z?n-D6HTWZ+EPaQ$^;^^ zwXv}=$k%gWyjt5_U;m{0xu*=6q)EyJ@r7rRpNxEh(54Ryt*r2i#HgsKE=<5JX?EVY zTO1Ec7x(s9G5_bum<{OF5m-Rz4Q7P~0J7Emy}G)_#_jo$i;u5=NpNDJnUpi`>hPX( ze`*Z-V1`YQb{E_hTy=G2LYeKKq1n9f(&(gNv&3Vk;G!>LXNx9?4>|wG0NN;4E$IGd za4quC1Xp)fke_MF7ZZi$a(z-O;Q4;W1ZBnC%+*g3@%9G#WdM#KHcv03uC8tNW~kX6 zn}I$C?{u8w^2M(6Bh;{FYoTIe0_fS2oqe9Zej6Rghf(#1)!6DQOVY5FVZp5fL7UM5 z%MTVx5Xd0Nj^EnffBAT^Ih?+9#aY`0T?dULLoi!1&B!zO}cH7qPFzt&{6Y!7!`M;UF7eH!S+;Bpl)k zSHj3N{0tpsWp-bDQbm=rq5gF-@7*H*YAW6*M_W7AZ6_!`zJsklLR~Q?ZhW^(ozV|D zon2f!ZUv`x$!t3Hw)}+JZ?LgpeEiPPpbWe2pUpd~tU#5N_P%SFX`*M_JbL^vS3ZE( zxyAYdS^Sd`2`^3uJ48niMBX8yo_CodnneKN@7KLElR_wHN}E986nwZ^1CDse!j@kv zToQpVFAvWj{Ui>Iyf5bUV5m$jSg|jEHH4#$!T3T8kknNm7$vp}b@s`w9>IF&Uy@!wpX>)P-PzMnwkWb+C2(`BU$7VXz zil-0EBsRW^XK-n#jRkjls+)FkD{O z=-|0DG96u7so;&@w%9@lLfxRE%GpBY;_~QA{KP}2ySNw?)^~mVAwsW0<7kBUfIcDo ztG)s(Q@ox7XzF%$IvLmT_1#g z@RN(c%yIhPDR7X=L!m9TwU;0)LGhjw5JlQ2mA;vonLthD_*qa*t-2&@cP2E9^Z@P4 zizGM$m)Am#oO1{`u6_>N%rtXdZ%mV10Tq+w0FZJUb`SX!?!R4KftEu{;;7%qM`u3Q z*{pzy3$%J5X$)yaO$GLf{O&wlbakrv*^;6%w(UONvx~ebYGgoLO#+Z1iiD4pKntJ$ z<~N-6+6P)_u6{bd3?A==iGu^7EeSLjxZK7x=E0j>RRkSdb z@pDsq2M2#AkqslZGJk(04`nSp%&cfk5)whn>9U9j%!rnvL(TrzcOSd80Q8hJD<&^r zz4+ zZ|TYqBhkIf%WVtge^&%6nd8(3M9?gO%r(#wr)Gk50Hg-uLyA#X1tld-Fa;pIP_Iay z1gj^{Q2986LLx08S(J3OCo(jiNjLx~N;W0LIvX3H0DfA>2b$npLG)k0-naI)kL}}N z=}8m4g0NByBAR+@;j^(JD=S}b#u5wa7MD~2u-7mZ)jI7)ETTr-&dyFqNC>35gCGz( zK#}sfR($cI z1Ed^%JL*Y3MaVc4(lY(epFeGFZ7qibNF`;Kaj?i6y(;hSd8QM)UMs7|k55vq>@P3Z zIyns&7u~6s=8QkVl}853ju42j13OQEk-d7-8%nC2hDQ4l(}Kpoj@-WBSOz1P@yyKr z{(aD3nbi+$rRHkG0Wje*VN{u5RZ&s`&`HZFOz! za=UEm0==wup^IzpcWY*Uq{*@vdu~keM3a+}qVQM?0u_1B_|_r_+P;2873SUsh89ns zT5)yt_|fbmU*-}UfXUDwBk~>Z;U)Q5BNc8$w`Q4CoFtZ;ylF)n?Q1_@X*Xol^%t6- zD3pGwmZQt0fd#HA1azZ0t!_II|%d-;`@fR0?!iLC!Nuu=ehHh|dEJ0Yri_bL* zDJEC`o73FymX8+OQkR_bk_FPzQ6vKN-+$sn#2yH^u>-%COS~f7qe@K7CsEO@f3q9T z4<4UoWj$-?);Gj(m?l9)4IGzqrpcO>)p>xw3l0-hO-HA_S4s;8&G2hi*tf~zhtUf< zrOTV5h;JG7yps>2dCSgR&J{vRe9IL2D!Ze;It^3R`g`uZ6Fcxn;`$sQ36pf>}Z zayywSMmYsg0~@TWJPRI3WCPKs%1_B!tThp=eH;M4;RabN(Yd+QO*Ii9;2@xs*0<^- zP|e&hXsIbGM7Zp!8E6yPUK5ttQe;D8y>201O9EuBoXOaLCqm$|3eJHY0`lmXNsF^* z2ER=KgGj_%;!{>ow(%)J93jEY%y770i=xKtNEwS*Fc$Vwu@fj1XSkPUZDRv8dfO8+ZPTBjt#BHBKiR{a$~JHVNEy0k@|}ziE8eP2za={3NMRNV zIzAgbB<2x%|2|St0M)Y;XiaHCD-DG7wqVa2$gJ`hA$Z=IX{1Yd8pp4H}bg^ zf0^VS7Ln=Yl{oph^;Zi^K(J(nwCvmbcR;g9$}^Qv&n^G4qf^^1Z?Fbn0)vnfHCA{_ zsP}uSTf#&&VW1|H>`C(l@i45f#X>2)Kfe5!lpenxDsMr>iY23JOR`XDf3zcPGM%gzXPzft&}Yqhnn{tXZQz>Jz%1 z)8^i2wkt#$K-}weNLjC5{a{+Xc?QIH75kdeqJY$3Z*hyg+(Qo$kcn%mt_09A_zlg8FOXXe#kj z)-LE-uE)mq_@s^p>wh)l7%e0wm82ev%%%Aa-}} zLLRu9`8IzKd>U@N2 z;SrzCj52p%#=z_VT8;L0il696BaWQDRm!1^x++Pm0sfi8sf}Z$dixvw9oXM=glO06 zGm9bb>3-4E^}7!dDRd56bmivC_X~Ihde475NaPD&1RhWaO!Tfa|o$&yfCP?#QqkRRzq28mpf9`Xq-S^nnkw!EL7CdbQRqvA+Z) zLg6IQokg|Z#&RHyKzD}J1dQTOOrzu+koH8_PS)lW&~CN`pqR=vCMILtEj@MsEJeWW zEYqN!_T+R71WOwmvb`Lq?`QtF(7!iUX$s0(A`}|)abtZYl7-c`vU_w;;RR5zCna*^ z{P}He&dyje>!jP12gKJ&WV>fOOu+q$b;v|fhtwdtvP)3!kk4xfVjlv2{YsxP0pVMT zT!*$wSd~jlC^d3C*gh={?`eFd-wlT=I%h+}32!(INh~ z@1di39Qi{EupVY-*d|B1e ze*XKn+fX`FelBWpSffXxHhM<2HL*7O;upZrg%+w)h=>YmX8g34l~F3kwk1 z-lYWa`eV?|g0{)wmXpYL`a-9U`MB#D>}!ovfv!|*$4wo5!Vs_O?&H1BsN zF&+LbbZV`r-&me6r(b=X7&o7~JQVEiST`|xQ#lx&rmHRgDmHc^E{-cr0ODQd=eIOl zjX3>WrN$n{$CpAX&>gC1pmpkl_+Vxx7Ru7q#g9(RnqNqX%LJ{1-e<L@*E8Lwx`0@VB3&IFU3AvBZ80~<3x(z8u~omw=Ewp2)*Mgo10VvUo{Iz9k`h46 z(uBX`XJ%)2w8x$re?K$I$A7P0{9DC3{^9=I`7n-93uL4}@w6&4hlPbv*)8Nz{?QoX5Y>Os_3QHBt=YgX53X5213%vMrAd_!$* za?@d`f}-M}%0*Y$F_@%Kw3oHeKr9crr}74O@1>^1{OnF>`B}a)*$Z6g>*>{1kHy6? zAQUbe+}S6p^SHL}N`NGz_@Q)d!C&)m^G-ZCG*||_bwYkRak6T6?|Krv%1I*hL>$G$ zfIgpuh!|g;SotN)3kDj%{$U`;aaUKbWflNzF_FviN;_a7Ia*wRz-+P7G+K46t*h`DC9f1C;eRocX z88MUx_2ID}-&2CMZVr~_*;rf8R9i$65TIDvGk(r++>Y?_xZ^_onkx?jfNVwvDTct? z|33O2rp%npiTQe9K=26p^_LrO6Ty&4XV=<5cx}^qMZ*J!o^)4TQg`ugN4b2lIa$Rg zC2?lj`Eb5F6e!z2goe0(vDO7;I3__-DLV+A*kS#9Rt={zO+Gy0vL9DHOUB#nNdV*G z0ht)p+x)yd;KHG<{U*T%+^-IivBsQbU|>Z>aF<#avY{E&cvwUmuWEX%ceT z9iQ5d6mv;7kN3$p z7>#U7PfP*3vGl<8Y47D>JV?>Lx?*>yw%Km+G}fp-m9=?(ZM*iFEsM`>9cKQvyk3k9 z%#^LQh(9^okxis@bhx3{Ay{38GZ-1Q++g=bxSBd$7AA`R;Al@MXq`ekHvsyi6rNLo zHF`$LFI4a^KY#wP&}0VKI?dq@JHJ~fjgs<{4kz{d_P)*3I6TL zLp2Qi>@5J4W3io%kDMFfN0`t%}ufpg*3*(mu*{8GNI=O0clRTgtMJMoOx0EiTS+ z-o(t!y0JbY@6aed;y-nsPYXR)G4j#)`w%rvFO>VQOeJS9Kv#gsT-x z*cX$MKAB2~$)_Lcigd-c%SO2BPu{nN&0oqWs&w2{Mn@{$0s%#e_eN+pDaV~&qbHjW_4P54BiEG<+-7E>+y6@DCF z{J-3vN4o;?tA%4l)_XyJLcvQJ{qw>%*kj((OO4J6^*pzMukc9ScVm#1ja*zNFHPTc zpd$Wn-KnC{e8>ZB0g}+Y01FqBtYk*iN#^ggp9HE=n!GgG+^!X$ms$q%1ewTxzvpjO zGrQaaL!$XEqfeIMpPgyeMOfKhAFoM~a`B}=cGcZAfgWb1*plZfQekW&Pvv2y>9bH4 z;F-i_^iWWI4K(C0cWbF=X)nieMRHbwq4-r=+en$a%J^MGge-uv$;lx#{*08A8F?R) zB95#|?bOuF?!_7$v7sj&A4y611s@ypb;!ux0d(8idNW<|?yeXC`Ucfs;#TWu;vMGn!wS(SS<#xMb9Dp`R|+dh|n0R_9TK!2x9ofBtX&8K${6 zs>&4bUkZ|*EtcNKz4-FQ2qJr=1~6%@fz-ls!=P`LmhTLWl$78-2w4Xl5}>D<#G$la*aEq{ zFtG?snoZP>7kMDh8XG+l_|Mk9nQ!6uaZI-YuKJ^NUakV+x3jc(cn*eqp}~E}N0OGs zea?r__BWZo$O7a+OY!tAomjk9QouW34fywy7N9JF%0+qih2^94<^SG z53FAZCO%E;FUQM$D%*KZtAo$jU;%jR%6{Zx&?x2cGzBz@iQgy7u%XW{GZRC#SSf7C)3;ekfl( zen>5ihzRTX8Kau2=jA6#Dn=u_R{^AgKMAc%ts8#%d;-4#=U^wDMLBjvjg*Gdg_Wb@ zmr7~Fi2`Uc=W%cd2sfjVxW7G|n<(r}Df^SJj7j2k@Al9gKI7xF^aJpNd;UmZu_uaI z8fD#1mjl(SV=6%~unS1NBIrnR(2&dnV&$&hYj*^g?hg9#4nSns)xX^(E)F)_!2O zgy4z_0bR{np?abcML4nh{gmD-wJ#1kQGEl6;|35_)se~K!^?diAw*W6kiyG!uU#H) z=8|r?%M-UxwRiLu<{wY4?VBVRP~(N1CkclK>uuLE0$!xEitE;6F_O30pKYTtmgM{Z zv?90rLRRI=TNHre-7^^>q=gq^72m`!;DHSyVR?eZLW3nJ1vdSAsLSAb6^5uOFP?GX7G5za{U6oH4B9kEE zi2}Yek$Bi1?wrtTiSQ_I0C2hZDZtgrTwT}8$k64tM@9ANO+*2a=t47Lzft9G$B&4P z4qtF-aX`wp6jfY&Xk-${+)2XADIzTV=8*fpr@<&ADQ60317jYHM1<7h(DZ@M zsv(@9v+9cm;CmzoK|%-231Zgw=KFC1`wt};B0BMIqX$n|NJ#bU!|i2vir`_Ri!H!( ztiR?>jptWKH?wOxDPXD~D{oh_G zt2qK>0I<~0J09sPa&Y8~g9izq`~pTg?1)Hsu|7?0B`w~ai-V}Ds*|Rsllgf7vtpIP zM1PW~SJhY_?fcr<0iXl>TYJ5M!CPcx1w{W92a{Us35v8xDlokp%2`qpIhM0v7#tIa zvp=UEbrDk3(AmAkqS5{ZWEAG)eW0bF0K*WGgZU{k>(T}&Bxpf*N=fQnxcA>?F2ae@ z`*6XYgbN)3lmNq}rWLHKAxQq^d_9W;swChh2y_}cY68J+ys@DH=)F`zzbDOR<>htN zuKfB%R&Acd4ARy9Ws0vX2*c0+WZ{B6>}!YwHC1(nRENJK{%QXo{1n_^-Paer;ekA` zn&7jJj`NmWzz=M)l=FW&%Q+BmKervJUDFH*1oYvgDq?i`S8yk}0omtQC>^@>CsBXC zS9R@90N}p+7BFv~(Q#_ym0K{`!k=@z;85Ng3L{_>M?Pfw-!hg1SC%^9Z;eXoU%-K4k(HRdKpt~ z0f?z7+}m@6_97zI7G|!)iJ;+7laB{iqc`XLSHP&h@W?!eb+b7zIPYIGQQIeLveXQrHZ|4~kZP2Msa-Avu}C0Ze(?IDwtAQWH~g*pOWI?uWo3{ITzdSxOJLd8&VkCw{dgR zIjdP$uITCM`8b^@?y+(7}U&-V5@JZyw z$mPJ$iq@&Lb{lsCgKxIwN{o+2P-XUy?EL(kf=hAI8vO7t;oy#jK?un^oDhlr{@TXI zrNJK<=ob)3_KSd@4zt0}^g(?0;{g>~Uw8Ku0Ml-7nVg*&z+{1khxLw69{L$<(Pm%I zB7&cW5qs;cqEmyoZ-l2|0!Uzd2pk%CHymaw_>0sVgu)Af%zO|A4*o0L(+B@Q|N8&) pmjBnA|3BXHpU=xkYktNIC!ysaua`&C4?Y!6N=)ukiHN@M{{>Osum1o5 literal 0 HcmV?d00001 diff --git a/mkdocs-site/assets/images/ansible-engine.jpg b/mkdocs-site/assets/images/ansible-engine.jpg new file mode 100644 index 0000000000000000000000000000000000000000..c23bcb4edd88b5a0876dee2c584438030003c464 GIT binary patch literal 41881 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 E4{y?>&j0`b literal 0 HcmV?d00001 diff --git a/mkdocs-site/assets/images/ansible-labs.png b/mkdocs-site/assets/images/ansible-labs.png new file mode 100644 index 0000000000000000000000000000000000000000..0cdd66de739ebe4c64c567ee44c934ce8b480f82 GIT binary patch literal 130893 zcmZ^~WmKG9vn@&jL4s>=ZCr!9yGsb}?(Po3y$KN9Aq02t#vK}Wm*DPxc+cJY?sM;X zzh6DNM?I@oRn4kZt7<-x%8F9RpYcCKK|vwQNQtH7^E;VP%sEG2@~3(aSbl3MDT&=o2O)fQ0LwFSz37L#HV|! zcc%gxypBQoZ&!0=0lVAWD)$=UJr4mt1+~#7yp%eyK7RfX8Yn7EmW!qgPXqH`UpFqv zHUhV~wo9Y?y3hK-UpAgkz;7e7J$K`LtZ`S5P_TI(Jm+thcvz7_RrIB&I{)9N|DVO` z;Xn3mfv*(D*)D`M06D$ch5G1^IEzq+od5Qpof4A5)Gu!*29=v+ihOoe&|GzE%5p9lu$BKSi``qwkA^VSD1h67o=3h5v3^V@gI0s=!W9JnE zvEAGC|F*3#nd2lnw^)9_A>d8Oe(V*Mn~-%`|35h5UDybn8@e{Y8ekxC#$3Me2TtwZ zwD=rk4WCKAD1;5H%D1n zJMw1j23bN)Rz>e{MQvOiXciObEU2yJeiu>yx&@QBmKt! z;6#`=N1|xaJ9VO032fUN-G6GYiBr2|A}RPR5cITy_m zfWsR^$l!&G@Am@vL)6A{(09LoHUB^OaU(aZ6I^E<(trVvhpHI-JG4K93M0cW$SgN0 zUaAxMBg^H1^8XWPAJM9l8XY2c%4q!k5c5G5|4FVDt@>A^L+n3tdNz5W^8X~~jb06G zbdbGN#{#dJDX;&>{k_0z$}CsCXPK_50Q4E`e@krtcw>SFW;Fj{Rt6+H?J&dp`{@5o z-T&>G|9UXj{vSDP8Bo;Ld~8SSe{>{%oN$Aszu9~GxJNdCcN6(fVK)=~kDS&&ayO!t zpsN3*?q4!x+Vm=E|0@;^jqm@4^LM`stD*hI8ViX2$98Jx8ei1^lbjej&6hC^05}h= zESmOT136H1!ximaC?I2}EX=2*4*yW&KUq$h`s3S4P8HGi&A{tGTFK#;pnU$^+qbd~ z6o(ZRC*i2+!-s@TAytp%q8sGoq$Pcu ziAI~pEW*mI2jo#=ix$>l_BD(id%|n!LDNO(wJy)O)M~dnVLN<8>{p(A{ayC{onH`z z^EAaLyBvl;&B(pOygCr7De6jDCGCud4r$TmQE>Y9k2fvMnq=pxmi~m99D64ZOZH6q zKj|x0Do|(rVa_a>Xu-1(a)zCer(-#!d}fIg%b_EEOh(lIeMW1n^Wa%_Y`66)iS}tg z<`u8#&?gh69&R<_Y1MhqhWIyKcpEegR@B16h@lx*sO<;G*46g}vr>_2BQZNo2V+a# zNrZ9HGC_P!x{*Sp;RWHTe`$6}=o>!$a9j6@+q9|$i>xm4$?U#4+QO?dwlUB@Wkf~) zm7&DxCo@)cyG!8gDpnNA7hU^!Dvd)zFw$0jwh9?3yfUK1i#-pYFH@GiRxNZ;MF{(M zcU9@VXvfwS$L62*tr5nvNUNeUh@P3oh@l;djH8+|r`NbUBAm>;Hhjs@nKN2Ho0?YD zEE-_n^()VQU(62vXYnx!>sFooEUH)LeKW-m)Fo)rO^e>@rD#b*&YXe$XF6gCgAwyt zATw6jz)?ug!5?Jo8^+L1GvQo#Wdz;WhjS+><(~u{puQ+^q(SVcUwW(k+XoU1C&ilx zKQ?aQLifu8U(L|)Z6Jec8HyCcvrP6F;d!D=*VsAS(NaIY^IJ zoJqApbp2$>9LdnmTQWVt0;GGeCn959mgaCDA4JisINc?~++|-2U73elx$bN{S zK5&RNP29@B3f#L$!TYH&>!K)FB>NqFh)>RfMv`YVv^FDP3P1xHO1m&M1e$0cY($e^ z+z3cn4Zo%(`F=K=+3Qa2Kz}Y`gCV|69uqz3O4Cdl{(FA@z~GPP6_nMEIB81#yh)SE z1bmkBY|ilNkTWa(gi`P*uIbli{(fM+>1P<+>S`>|1Heo4smzAYH+25^>1ZKzKlg=M z(gQ~dr1We+csG4&Qn`_PFtG)>^P%87$#XA{g()rngz=4mSC!{WQ;clsj~C;_p3r36 zzmkjeKL^Rev#Z2m@0UbF&7!geyv|{ENfC*7>S?>DC4YHXxV$Cy$MX-$OQZB8clxn) z;>fm9a7;*#mK_aYmwUIyL8NCNPAlGBkDW16P5tp$KZ?IEe;jq49DMIGx*}ln_CZH< zEj@I)1r5V3Dg1xKAn}<^c6LwitJ|-zO@mf;pu=wRu&LACqMYyBKAt>=PRI#);9-z|k%i_Ina z{T9av$-Ok7-iFTpjQp9@kIuH0vhx_FL8oexPIi7&cjo;p&uQG&XZUo47jp6 zTC1lizaQuyD9jAXpWeKVX2HDg^%~@JeS~;G_r073uKp@Zxi}vZ#)$OmDmCW)X&2^k zckJ!j5q$r0oHZ}x&`9yZBMs!raVX~T!%Fh+f!%>FvD%1^XG0BKGr#E6Ht32LR!0lFPOJ2wtGgb)3#eTte}8v ztZ5sc2=`m^!sXyp$_Xg5KV~3wSt3%rLri%c+ z5iq2|d!K(6GYqjPJdPI6F%u9B08;@W(ts51VkM9OFN*=45?=JeI+&8-)H7zTcoR9&}0v~-Ud`vS>o$ntw$c*8=a z`nwrPi7w~fvwhbDb5Z-ieYkCgW*KH*8ou+keG3&n{~aAIpY{pYxHFgnCNcY| zv&dis8tyg?Q(qQ$-G+_{ed?I3W~R`_wmaAb(#JP1bwIn1ZgNR7AOq@$TTB%O6T{t* zhD6`PjVasK?Qt}EaGBt=H#`k+-P^|aDQ*}~zzl-Bnu`MrC?f$Q$0H6Y>9>?hgY0G? z4_~l`g!T|E-)@zTGIN8_=}s!oDzo)^sTb#E1dpuLTR|@k9rEkkj65LuU)j5Lwa;k+ zp}%518O_%g+m||6>DoFx0uA5>9FG>+(c)~9c%RFYD_6Z7Q|^DS3yS9AwHD>Q-$5^v zn;S_#+Jg4DkBWVICH}D?irMu{*mBWp3i(5-{loj8C(r~Bgo1A*&#g4z_4icRCY&)L z+%rZ($^A|58HTOxh#JqXrL^c9UC;B>Q0XFcP6}bhYPdJ}EByTmitiLU5G3j(v==k) zu`16Lo>)46pBI27_vF>v>W!WdDJQ>Jb+vV~n*QjX1(gTV-PcPCukVpBkg2z33I*dL%;rx&i}$ z`+UkYIMsDc@gcUvL7D{J7w#4Gjbb+lJbT9T=gUG0JofivWr)P&oobyYt{baA4De5H z2H`jQ#h30>tya7*KZ0Z1h5Ipqcz;2LxQeN=i$Z7Q3zn<-(xCUG;HUI!6jT012d!O+kMC&t8O73Kv~oK# zQ-fyB=G1^`mbqOZ)cSV9Gs2?Ov+j{h$ zJGg>9Fh6+e#zt;kF?pVrpB!%vNGV-x^zrl8p!D*#_IVA~Npy@0eTzZwe@yGW0c5mO2yEKvD(ZzBIarFpj zafDl@%x~r%>B*O$FsEB71X81SPP#T*29dIW2F>|oh5Pxeh}Zp|XWyOU?>w4eM5cWB z;P+!~sHCW_?eoVt*yZL5e$g}Ou+iNTb-S~_2re#_zVF$Cs7Pn*yx8+{VQW!h*Yugs zW_X|4{3@0INglzDF<;o^&9Pu4rP1$Pz173L@WsafE5{YqDEU44&rv-0r$6871FF_& z_(ZFw1UNtUs5&wAO~@b-;p=Dmj0kN>RUa*0w-bYz!Di)Ypg6_7A-8E1Gr_VNcW1EM znplUmS?cP;&WHuO z?z>^%k7sylprcQFqg@qiW`(VA{?yC2DULnk^+PVJg=W~pOYp;9uMzX7vG06SCbi*K z;e@TN4GvtQcbu|K>~T8=L0p|Gv8@cLOV*T}P`lr4p_UqZWt*lWbP8-ozf(Mftk9m7131xl=g8&^)-gC8N9Pj(Gbv=?i>)P0|g=z1XJ7 zK~1|WNST{_o>$EZE3ALJH4_D9Rk7EXDXrqfgKrnIZOT?j?mo>kT5)FR#f2O`jodU) zuv&sVz#=4je6Pb!l`oh&^XByOi+u2}(DQa3-cicfmqhG>{J;}eoMkwz!pl!uP5H%3 zidpA2&I1;Xq=z0OgEHU|1m@lGgM_;XEh>Wq@Qb{NsXcw4&%9||?eWZXuAUY6M&QWqg{}LC^%a8d<0Z~50S$Dkvnf?lw~&!IUuD?OwGi2za@crqIrBWE z8#MQA5Mi-$lWT+r&(x1ln~gRup+NpBr&jP0|3bh&&RH^qMu&zxi{6kq2~%rN2-R6) zhr`Z6XIy(Xb7M8SC+VY+^Bkv*0uqdl+u8CWeMND6dhTnyUTyNu!eO00mVn8P*ULg(<``L_glJJ&SBTe`wLWX7iu6r>@2b_Guh#FV zAqT%y2Vdb*%U-fWDh7#fqp(B9imTeVZm}YSffJQ=0fLi|6l?gie38Xfj#HUF(boi= zK$6HjXU1ZluuJ3Sc}%BxNnJ$`qU64kG|Gp2Kk*xskr?P%J@X46(7C zSGC?iP-9aPhf62cEW>~TAlT-YkCv?}w2uP6;C>)I~&{I;Di1D9)P85JRqvc_NObC623!O_zID zDd}4A(;qw0V&Xk=rrJUb2e}*g_NNv*{u+0zQfjhq~c%k@R zR&T>y*389|<>K?5e!Ix{i4-@E6g!rxbxM92DoTig1* z?*L$TIcoc*zudKD51W>+7Ev}WVdmk>cID0Q_(U%F+&~=z+Q0b9<}8db#O=)T3xNhT zP@XefUa-mx^QSFNk4Q~xQuoP)7Jr682p?LQ5Ju3zwuDlz23uI3rEWgRC`WE?OLivw zv|5Rf5>Vr-*eVSll-S?ck_vQfTP~PB?@Njx@!q1R4;3pIIl>r_a+rx8&y~_)Zc-Dn zZ1`Ez!$J3<;u`F<`fF081QnHt7!Cn|~Kp}H`F9r`n(K#~>dn5f^}Mq)8vEmHF$ zemF!CQOf~g6#RnJkB<*v&0?0O>VEDgrqXD-Fy{*mX@}O&K_zh)Kfj}&Y^8Y64ukq( ztFvm->u&V~)ikho?rS8r!+;jIaQa?~Z90I~iP5%u7$~h=m>I!5>}@a_fr^#Cj)mHy ze%eSCjosuyS8{D(N{Jn`w>*9l;lS$yt$Qp~FJZxX7 z!|jrQ^!EG!#L>nRDW^RE^KCESm2gOU;@j$_yq@Md4uP?yIYO5ySN;i+qfdM-WYmAz zbDcEA-Bp+EWYGLrCtEH?P%Zv~r>z^w)T>vEQOmNZC=S~;UX{Ah^yui;A+D=ZUh$)p z11BmA*e$T(g<(npE;GEfqV)x^GrMj5`=6V1fSV6gNYYh=+fClxA;&ePNiz;=F7p<) zsGL-!DbYUd0W4?HIBm_>(xwTv|WjqA=*I6Q?<`d{Yi01rRWPY-Sb z3H(%Y2GQ-z`Frt4<-k&Jd>*(MA0xQWEg?E<44=Thlnv}dBk zqPAc7-L$kMw^_yqeedV_G02o_$)_s$gv8J{OE&6rBpjm5SL7=3P73jY74Kv^$L)3c zQoQX68H+2;RfWyjekSwzyIz$fI_?cupH0^z)Aiwx-yV?8f>02Km&SgO%$xYD;K$%* z6wQJ|i}VTn5{68iY*3j~xGs#n;P@6l3LaYxytz|Eo=W>2Ji-o@IM>mUe6y{Z_YfbK zG{-@cb|p`LFHGLXkcFTH&4bRl7JDOA!ep6E94gO_x0l0}90PoDUOnNAvsS%7m)xvl z@m#e|5M2&u?|^9Za-vvWxBd?M#nmd+=8W%3)J)=WcQi&PcQ9O{n9q80pavj(u!?jE z)^vC6VT|LqQ`q;-Bh2XFo_~CTqqz6l|I}XN4)CrV)V1M5&%Ua^^QziYAxWz+={ReO zBlL(AtYqKZyF#MU`pH_ec4%hYe`YQ2hiI^RI8bmw`}|OVdLHmHz317) zW^O%jf!|ijZXe&?Sw+E|a1lnS+*ubI=hapf-R@we!MZg}iUVzgM8mRm$V6sp-a5SnA(`ZL;-(oGdnb?`O*crwf;B#UcSF_UM9Q$RIM6$ zx)JFPt!)S#6BVA{RD|E>z2Q9%5xeU8X*hhd^2Hc9EIg}(D( z7CasK(8^cZZud>$q*$T0w0j56;4``3J%v6zn~^=lG~&Vh=+^wcasBrT;6X?bw_hoK zU}Dzi)7$04zxWmTHWKhb5)@ElmSOp2&l( zKem!VRX!VWmk>DMlR%Ad-)aAM>q}&yfvoQ6EduuI^C1oh#23+3>LpHNq1Vxf;6Xc7 zHRn0y8P{+kFaaH~w+Ij=60kgK`OF+E7)=|Z3pc#jh9I;iW9cjz??*AW_p5u}2d-Lo zXZ8`Lf34iaeH+TEdE@dio(D!}H&fcxAcz`G{5R52m9=5v)cvEokpDi3L~aKGk%mL} zm$*)=8u#1w6TcyEp76)tYgYruPZgvCd2#ynZg*Wed1|*_NgQmWN>48d1GM8{NNbPi z!f3rVRcg=R4n0qug+`O(RhGwv!Q1WESMLTr>EDad2VjT+W03pcalc@GmH>R;lC4F| zg$L6isHpN3$>&@|2aO9uTR1P>&pfPU@o8mm6ri`r(|Moa7Q<+3D4-WO@?~PsHuT%E z>ZSIfaHUk!jM(L3P6W#DfX8DK--}cA`cPlTHoD~o^X8wtjki-;@{A6$rH5q|SfA~| z+{9_L7M%LG4DXc+DeS!FM_Ev}vqTDzv(r}KN31(n9ns%8b~yNxyq93LWBU|u?S{?r z%AU}N6$$DGcg`9SCS>5-{Vx6U%{J<}!Rs>5YFW*xx_s5qi6U++SP6Ex837 z*g94H~EF5ttsF?l! z9juO>ym(f78oPEa<2*;GH7KAp@#i;ZHVhFRV>cgEpSvU%)Mu5=Tr4CjazNT$8^;)&QxcwH zDnozirLJu#s#@(2n5%S-%WY^83^dofdM>PLGG1RN6arbh^He`$AK zKMF>zk@|Ke&`wq%mn@M#=-Mom*9-ho7%G>%m8qo@Gk<#9dD&70OmH z5jYa2Nu1%V9SJo~wLM+5`}mnVY*~rBm;th|eTlsYa3!=B-)tQ?-C4LhB5L{+ z3JLY^MU9#T1mnKY$XzNuW&TdvA(=pL?aC%H9h{K0%AQK%pkC()68lZf|0FKzSAFN~Oa#9`O3-bOME8;jJi%3n zZx7m{`Qx*h@9x0y@#iPZ=!X2$hP!@m!&xjwY7z|1gJ$X6O&f~GM`a5-M1uSOdb%TiGL#)o_J*ztSPEy-J-Lunt$#%)Tpe@F$D{v@@^Y>4*v|u ztY;kC=~x*z>E9m-s9(Z0&fB zd}lnkFx-VP4jVtZvAb3Rb=^-OoTr)*+nqEw;ZjwW0#%v&k!;Hj53ZyyUQ^jp%O&G7}k!AEEC0jUhW z3@H^|jC87vGE{8mXq`HCzzHVRa217Py=7520`$P5fSk{f=+9u+PZ$0=$|!_wvsgDk z-?fsM`$Z)aPjmG6;x$A1y+9$t`Khu$@`^OcpYiE6^0l{l|T{gK(6d#LUMxtj(OyWM~3Xl>RpWuqY22Jh_5pniZ z=OfAG@MS>cBB8NguZkFj)3Ixva^VOgJ!?G%ta30*WG*2`YgK)}ZL$4KsV}YWj_D{L zENBNtbqfenfzMZTHVx$>Y~UXDbMVa%O1ZHpe-n@ApuOq)$8nSP#ib;-NVi+^w1~}- zHJaBc?3CYmi_z#NOJwT;zEKx_$OyU-v1U%H@q@+Ll@29Q{*3PZZdlzs?%>IL9b~5?>W5Jb zK7AYgkyd=IOkelny(_Je4t$Zz2c5Q3q_C3pjngZQg+ZuS&5Y~8KUm^_kg1;%eNT;2 z7+;I%0SfhtPs4|0`asCK(Z=@dAr*1EZ|s+mTLWwDhKkh{6tmH_(+T`Zbd0nV&zXB2(?K|2Z#$6EuzxdFZ?{ifxrp z9A7xa==s{Xyc;}Xtlh+~0}9mD&*=BN?Ay~Z-|l!4!}a7TDLV2nsL8IZGGIv_H{9PP zR81ok^f|-FI1bbK@T=!9!P2VICG$@WJ6m|JHGOSg9J2f@gcUS!(v`fhn2l){ z&hfxGeS@0u8gr-+@JH$raaUxj+qMG}RAX=7htBR9$5vZYc?%iAg%Tf_Kw?z?N#FTc%N(Uno8!4)S z3Gd71)$=D`csOXw=&-~XSo8}YGmL~}b0@-+(U>^{DXN<659B9V+E(T=Kictj8d9zn zjw(`y^ zm9u8ldhQ^vLVM5#g}j3Y_e5>U@R=I&nVyy6R+%Zjw2$NYD{pMtjh|-^0;8Oi_ZLkM z-d`05E&c|HzDFZcw4`>(eAKXVIh9X>k$E?&hsr#tm4#sQxyiX+?XS{M3({6 z1Dx5;)5}8$va$y!r2Sb8&7_CRT+uy z{fKaM#QTja&G@CuGz$$*)1CFJBD>}VldkRvPH*u=r9fgg!Dw|1nH5~dg+(PJGZ#4e zjO8gxj-;`kO=t3rI|_W1dqS}M#-5rjVuD(+0TeiwL^NjI}7 zJ8P9#_j=KGNVsCKX{Zz_086FqjUFrUiLt)Mm`IKtJJdwtXh^)FDu6^ai;r}}g)l;v zdr;Qqs9SKyCliOfe1%xTlD~a;?;1LFw*lHFGLdu({YEVEUizu5>i4+mAfta1Z2MNB zW5!3f-)BWXT~CW$25SpvPJ#xGuz@7`FIXt~Y&gBKrbzQiDnDN4Dj`ncLdY>jp7wYk z@$iMtQA>_NZMH$1g85{{goZ2ur(oqhwm_*8LAx4Hc80OIWpWW1{`$Vr-SLHJd8Hg} z-9CsI<}ck}F>x?2b>1 zdi{5a3s=NNMS4Z+!66Y-RJAPnNp}*&oabBE_OWAzZ5wmPd4bQn2V0)NSl}C43Nsq>|`f_&$CB3bQ_btEfs&sRkH)+h%` zAb%WsbGa@4;%N{j_+*u(^~mMQMIKJ=O*7SEHhSr$`w>nZv^u1tost|}eB2uZa`6J;hAAg;c_UZZ6_47z+Fd_Ho@B~U`lScoqv=<2_ z@$?q0Gy-|~$oX**{Aq`j3t#&WRT^AHT*ABt;>0L25`{g%a2DaO3}^2Blh}w+n8Sxh ztnbmvNeC_0^Ak2P8B1+z_@%D3A-raBzLt|=!00W65ScvwOP;c_^n1l7ZlD9h#b>-9 z8(u`;kyc}-8{qB*EyPdUbJfQPv&@SgMZIz5x#^CT2q7f(gWVGsR%H;_IeqbT4xl23y0aYa3KBlE6Uc^+(-AnC?gv zPtT1^SFCEh#AVuDScB`Z$-i7m0_^aDP6TP0eLWV;Uz^&4f=8eo-iMZ3Y5jc`n~zpS z0JM^6xGa_DBIY3CXb3q9haVZU4q!b(aA@iJM^O?;>sp3lL%w1eo2Tv0l#qV;$q|km zDB6!@*rdc2L72WBjb6FtiI#Isb*?XkMONkYGy1OoI95oK>K|&*kLlwPpU?g28mT`4VJHQz#6U8^7E4J*ACmaoTWxk`)?<=LMa<;; zbZ>iZ5XRr<5<|=3o)KeF9_SFTF8SVYs0>?9>}O-u32R)*;fv3F#U7zWo!|cIe-QBb zUd%W;6yrpDooop&%#H%P{L?#krJ1NR*%K-Nj4?3QsN84uS@I0GxH*1|ajWgs!n47P zbP=a$8znrK=jo!&1ja5p5|2WgAFuWMV9iOFXk`Uvm=ItB;Lr}4mA%jAi_$}=ThF~!sf`jBUyak`+Q%kaYSU6vMAlM zz9c6DJNQz9`Ac6@Vs0~x87rApX6et$G*WO4|58x?0;&ckneR#xS|;u@%kovvi=8C-iTbV|vg73$KFhm;&B&90o$J`nw_Cn=>Gwd>rDJN)3uABEE-F7PZ02B5-8 zW?qcf>115N1LJU|*dHmYXq14rGM!8Tp*Ufm)R`7Mmu|Uf9@8ai8xwJ#TE$f(tH!#t zd_bbX+Dg~V5#=ajm66>ZR9hNht?l3LPVh9P)fM1D{$hP;@e^MfY(8M*T48}GCMTz{VEZIX zYxm!H;jia2?Sy}w;E@bY<^mY3yUZ9a;ls20NlrFsO zba*Qzmw-Swk)jc?90<9-y!kijGx!s&H5=4TOc{YY9cOLb??6a{kt}{Po*ZqtX*Am2 zd&~1WUSTsn&q8x$MS^rLjs{y1Kov)v$mZvYxm&Kx&>5RgGtTU4G8jduTr9PRbME&> zqwi3HesV0ql7bc@XK+0&Kz+^2J1kcx{c40|ARG2vOet2;e0TJfPUn3Lo27mOV)j0* zzsX`6U>~H6T6fhNku%6KKTPwU&s#gYT3k?0DRTRs-+vr_eR)$G!%LLqM-h9uoU?LpkAGrCp|T2aJ83+fLdEm{0^d zoVt3|fnwj>j`Fyx#7&v1sAX@$D&P&}=ZHHX`#F z4q`K*XA@%tg*em>D}Q&qlO8@O>BJGHXwi_1GjIwHnM?pha9)n`hsWR=k)zU_-xcM{_@!Zl4`|I)plozsMb|O)iNh7$aQW{7n^z&jqClD0uMa{?tOUk z!80Vr5!N+6`zZl_vW%Mc4JF+3nI8lt`hnzi3a@)lz^Io|{G#O{Eng`(z`_&h$tzr3 zpl|w1lqHd_OvJ8}TpR-(?Q4_h2YKY@Lbe#Nt5k2PG0x9+asWZy@8o|$c7EXN=Z2}@CeW8KziA2MnQiK7-+4&+(VyaX^ zCvmwHx_X>$GMGGV-x8n63r+WX+~a&cQ{b^z(XwYUzqo>~g%VqCgFM?ZzW~;?lL!SE zFO>u9{p9=lmjdv015RS|>2>vRdiyjOWc7Bq?!vxucLXX+p&AcSgzT5Ub9nJ_N4+M*>!-%+XD@0a zMV5zS`i!>w+gH+4fefIxSEY;-p3A9&e}tAB z^t=*eXQrxlsNbgSA16V5Y#Gc`D@7Pb)7OdKvhi7z#md1$=}B_AKRq?Eirb3^pq!B1 z@;lYGYue7LY6Q8@VJ-(E-v6cmaH?<+jG|Fm8NT|$3Lz^P(w_k@iG}L&GFDjTj#qfD z?y!fL!7yR-F*ip-Lf*mk(-gF_M(!^&dkZ9LNYA2?)r}8&wRo>HMvO$^Q5%cLA3-fb zF&YFu5qG*Gg%!|DN;j<-#bq{tb->9Vd4SL_{7tT;vxQ^|_;cZna7y?244f$Dgc=qn$f6+iKt0R5yoF?;;YSN*y!oi70#N(tf$K~^_&59Wf)eLeJ^c#|flo3V%LT))=A z@2cdF$Flg_Bq0SfkD?fxxdXt`C2a-W1`G76PZ<8G;=ct?V}8x08T3noCZD6N9={I= zScR>;tHl?1vH0n}z%Ih$&I&~&M^LtAc!@ho!cSEgi^Togovw?5XZ&&11+v-Z5a9Vl zkM+~`j<17QrP6k0LdO~aTI|p}Bpb2j&W7y4qAcDW{j9}W=Djq@ z8!lIg>wo33!y(+^7n05dwLED)!nRN#9Q5@>_*iXA#R~KGqRaW@_7obOE#jQQ~>eTLqr)Xkqvfo$X_hY%O@HF$W z4qHYL+NFni?|e4vL$#D5U@=rvBZp&IwTZq>w4R>Avuc%JTcKVPW$<#;ff&i;`X=49 zVB*!rJEWVu5P_EBK75R=%+{Zx`SvA*Yz5ChE}ttx9D@C088|gFGid+Y-JfM}eq8>a zd&n^hNgM4LZ|eN{Y6vy10rzTHjfK~E`fDTk!!B8VXLSapTE8UK-cF~?weBo$t@j@i z+iUTM6_iMBHuWLdRc^jIuy0*d)fw_u-xja&ss;c%oMPb*QGSWh^^Dx5+420S&GWgV z=G5-5TFjGuQJOiXop0w1Y19GTRn$Kue-+PAfhHlsbQKp?D+i0bo)u%~aQnKfI%#lXn;!E?i zJ2vCdOpc(@#|Tnri3w7}2sJdt+R}v@i;!&k2Jc@548t2XX^_v<+W~N=jSn6r>yAlC zP@>l$ZP1pO%e7)hYKBEBYz4FSC57O+NYfbyeINVh)26#{M+;lnphl+Nw(GE;lxBgk zOg6bl)%8DFdz`w}>%wjXKgCmExBEz$o1DFEzdjTy$hOooOI*e?`&m8uzTLBfTKNKtPJXg? zZ$EqYSaMw%vSDX5w11cS84+%825qoT)SI*@A>Q@~Xpm4%{!<9d3Y%0b3&z}4Hq=;F zcs@78y~|e2-9R9nT%``ri=VWJT+0xjc8hPGKS^+1WlsC!kcW;Rc^f@1XUq~a&NRp^ zT+j#^7BMNWNzq1aCqRvuPcFTgm1RMyr8tV&k6-F0cDo#WWS&q{a$w` zAB1e=qGdH)5_&PhU2}8B&8?I@7E)vbR+BbjtL;6mEUPgd|?GZ zV6F%f;AftzpKNz)$Ny^$eO22Y8pnk-L`nc|`b z;O)ml`5C|-FbC`B69B`bgf>*hwU)lDB_nc)u~Htxuchu7N^XkOJMTeU@U}~D#YsWT zi^=@0E|&P~ijBPbwg(SKpq>=Cg)MNG$X)(~uRQsy+zoFevy=x5-TON(n*6!g7xU{2 zN@k8ep1Ozg9?l6oZRlx1zU?ZJ*kXH{N$qjDMJgW0fv;+BYR{aPsxb(Xt6Bq+C9yiz z)g06bT7SsSl;ozh2Q->Uj0}w>se$uFDTs@~QnlBxvp9oN2oyc3*_9;QrH(afbpeE-enh9YUam7I$}wLvaZnC`E$=m*DR1!TRNXzVZIg z86z3lXYaMwoby`VmD`zc?-()2{H(Rlc{1*E!M^Fin^MK0*p|v(H2W*C>f`7x&plb1 zK#y3dkmtd>WGiZ7hX0C2}Zjp#`^3EdzBmhhS`xyc;U#rB(YPggWa`0uk7F? zOdWx130o-+etw>`^8!}06;m_Tcj^xYeaJX=HU4tGuU?s1wR1awr%C}qC*7N3@A{Ie z#mD>-w(>Zx{4gf>H2 z!&TMH1BYp_C?iT-3FYflDmRN5kl$E{1`++%U`~%Wq&hvjkf)Y^tP$S_#+yqrwi}4G zhIissOX8Gk18Om0Tn78}&|r-c%ZIU=9hL#NonE^vf)RQoiQP#(1q7P$a8VTNkR>Ak zZa}#C&(tXdXZR^(MKxXx^O=m=TK$}u8}zvSq(1cJj&Xes=C`qozMSf3;Xafjdc1cD z^!IEt)803zV*x7!two5&c!8J;Cct=f_qy8GcB$ zXI~rYl9wkCS3*NMa%hGXQ;Lzxy3*g=#Q1^NhlTZX%2u_Ba0{-?ey3vE#6&M`k??Ci z>D&z*j8-+3!WFbL`_~E1!v4bYp>P)KY#)oGP%y*cdJQ94m9)SeB)IPBu?|62lLrvnA2+P|G3%{IvIGo<={k*sIf%%7PU~y>Z)ANE2 z$$LMS1Y+ML0~$`m!oflUo`mofT0DFr%9hWvav33VpM@%`NTTYi{>{?FT2{T+sYE<% z*&gR3>2*G|$r_q)i5*>h6acw)i0TZTh-XeIbu4#XwkP;oSdK_JN&LM)T9wh2Yy^3B z^J>5^g~epl`fL!k#Ina1)?kc>BSnkJ{DJgkCmSr)*~oVxXg#?cK73f_!{m4IWxi+c zc_Gm~Sp)=GPO);4d)W{9%-Rxc(w(G=?91a~*v^yg>}7Y^p&M4imIrh9ccuN_bBL9~ zht)cipuCWi;3r=XR{h!7+!7qP=obdkMD;X&W)U%qF3%g#kX5FR0{8B+IJL?ISA?}G zH4vJi8^}RYjS(irz6*hF+%{WKXNqg#jyw$_{=!gl!9k=-bEddQ*Oo{^CxBOzqjcdu zM(eysO#q)Hh92_e=^NSGPE7ISWeK}bk|RB*u$T*<$KeI=0TTeP9i5IU*Bj_LqDww^ zF4OkL?t$l=vQsKuZiXVoRx&e1cd)%q^Bl6^I1N@k#D6X%xreUez8f}b#fp)i0C1sF zs`+tC5;?FPIcMV`mEG(0K62y}u@S4nKleF}owz{~fjTa^f0m(F=baOnOWH%N6OI1R zVnho2-j*eW!a1;(gYjT?3-?WO_JnE7#r9>mR&DuxVR@(4yLrqkVY2Taghxaw_3gmK zUZP6y#etPyvKle(&WCC-zb*g?(Zg}^Y54%+Lz`{>djmv$ko2AAj09(F~&@ACdKH(yjKYY zqE4x&s-@r>{%9o1@H3(2@<>|}`*(bD%W=4BQ(CF}R+PfI)(a*B&YiJK+&g+nnjTOo zP;h!e{>A5G zbawUojik^M>L}VBjJ%CObyVtIz>3iYyxTHsU-9=du#1xb))X9BO9L?_&rG=D8{o}^ zOS)Pj4N}(XxNMlIRHrjesNRm8HT1dJ{I`R+>GC(XJ;@{Pc@X!8B$jO`C(a%N$YboO zB$KuO3TD_@Wpf8N9!(m|$W|(QoGyL9vTm)#5Xy}BsYV~z{tmYGg2Bc6?##vG-IJX5 z0r0OIKMCK-@)Jh^9hWKt!e=y0B@^$tX*l-nnV#xx$3Ik`45vpjj=l3;k+YX0ZMT!X zl~@9d$V57pU(mwadma!SN78MLYXhM^(%iwAQ{SrbjqAOWMjH~dV?Qng^h)6@Nvref zJ1%+zd#Z9YaA=olwPC6?4<$kYkY8%P{9E;{k3fUp*3R8HQRi~cXx*#@ARdB?fjSd%@ok zTz&2+)ne0cXm}U_C^AzKL?0f4w5|h^c49kjj!?#%!dUjV7F0C$#gt|MgMyse`OV)k zTP*jV87P7ZGbdes3lQ*eeptV>_awkkVCLy;W!=mvG|K4$V14VUk=P{?E1&&4Mb%B# zQU?j8xzAl+i}bz4&;CsDFfDU#6tKeUv(Az)wi)l|BDjWy)Yq_7FZq;^*`0BhfOFb8 zp0XxtbN;$)D|cnCyL<#3eP|QOBD%D08Lu#Db(}Z83DHe(e&wuG$4oMdchW%*F1Cko zXbPGOEO7NCsArS?@w+uAUi;6kY9i7gLLRNdVE~Jk)TuBYtx48NXAhvE?7ev`7;wwi zJ@I^%Ut5P2UTJ)@7^o2c;07?eNm?TNvyti^<}tNh)^-R8jP1Fs(oicn+HJnZej#{A zPRgc}@nkboT9uR}ne7{m@)esqIV$F}B}{DEcxxWSWOReZ3RZ^cZ$W0HvudJwu``lji>guX>zXe(?sP=j;Uw@ zSDAYTLntJ|8Z9MQK#3dWYX|W=og6Kc1{r09JSg^a68u@i{?h|M16_jv$#{108m!i5!XFx=PSJ046 zLhRVVmfshmdLBE-?M~{4L`C(f{$^H!VT%^BJBHczp8t7NfW>LP z=pszrQGhMK#(G1f?FP_U-(!B7fdUdRON%`G>A3@Y)d9YIb$?2S@HX*#F))=UN~I53 zUPuqnjDHve{G(}l!!3+dQSIM54xX)6Jm(M#Vu9`CIP zj0F=kUk{y=zvoX`NED6xpI|_d`w`fA0vG4nFJo) z-P3y=7mcUiQywG{+SH{~*~D0t_>T^uY15v?q z&XMxryNVLn9%v@!8<%}AlwN@+cB9f2o$;I&%5_ZpnwRepl-9b9V^WZBh-mO1ilmUq zVQu!uC4~cG6naZ2gtsLtsqNPv6Hza82c|=6nyt2>npGV31;r5UEOK%up}TGPx?jYm9y3xl z@xtwvEkQE~xWv8XJ7D+x-|a@cgYdNg3XM{ABT%}WeX$uq+D8H-(Ro%Loh3$(^c7DJ z;COTPuq}yy*_h!mCa@6b#mrRmd}Q$)O`n&W_fdfXxz7HM9`8$MNavGCxj0?#R;NWtcG1VO?UTgs6R`55(g95yA^=+An1RUpJ|kt5Dh%DM)S&zlR0# zUXh!v(EL3ZkpN)YXsc&mjR0z{Z!(o*G~Qn+lpIjRq(;`=9MB;vt77d_KLS@AiYc3d za>nn1<}!zMbVtMZ47kYZ`jaa;GX@d>lqY^;K$JI=Ap_Qe*8-lrej`3ZwWu z0naGLFyP6W2*-4I<4ObV_zU4OEd?Dl-lIZ-9)nRgyp?)B1(9{R^0m6CXsKcMp=Q~+ zC?yB2p;vUSvs{Rt45)kO&6DsicA=pX!n9OW1dZ+qPyBV5qiCai9xlb_aV!C%v-&Ic zy6Fo+6cEsva%DI0)jfqo3xKka@zvSx(DIL2O3Vj&G|k?T{}2N~&`2GWtP85Y`xspr z+F5L30MAFnuPc(R75|~SmS63Cb^6ZafJX{uhKV#cFf~)JJE6*1YxSqUzvCXx^oGK` zuIR?6nK$6{+KDv1B};kTwY1aZC$;J5{SA+|KA6Y)q13QgL#J21+Jlud-vu%^>r=p| zR*o_J1)JZ{wnC4RsffIkpT-xhF18~wvN-nK`dkH*>N%Ui^TL_Bz5$bZKp&NShx3tml(%JCRQI7b>MkUu2Zg|JON;Q@%gAOE0R2V)o4u#o&8iDHBf=_fIN6d*2n zC<@=Ez0M#>N$?k=Qi?vlt4Q|0wkPAU7*?tjK*}pMEMPxRLgT0=KD)~9PcxqX(7yA| zoJzvw{sp=p8z=XRrIUfeQ3``Y>i12W1SPtA%C!tdo>Y0d%)Y>#CbrNV4-^|u1U}EyruOH9xQ+N0WM=`Sy{Lnvum+4l@oI{T9 z97@H1oXwWwx0gZ2i@ru8MBG{GtLIG291cV(d3<1-r3xFCmgM?a#RH= z&AZbyp-S`V8_Kj0YN2y`JWk-Sm1TP{oe@6e=8_$y@5xtL7sS?K0LYy+nV%BvktEF> z7wx&8bANG`5{-}Vg(i3q{~@Xzb%Ad9l7t|i$zUUQQ&5CkKpU8s%dCKNBluX9{A>K-w2lIB#AJk7lThY#i~*?8kj+*;g<1b}$Mv$)u^Cq$IX z8lJDnH!%$5b4lR8lexw~X5j{&<|5e_S>El%zT5LwE$oz_{J=|0j7l(s6wLU{AbhPZ zC>@)lXx{Xn* zq4hDZornIHm$z*7S3jl^!!HDv}DeiMH1r~6fJs>wXaR=SE z2(V$IP@on?xcnxQJ^z$+icV&hVPMI4uRzC|0>Kv`WzE-ilXzM+r-(3E3$D9&2 z=+Bni`*)^en8Nze+z!iPum8WkDH=>@rZ7<;atC~J;F*a+3pu^|uj3w-Q&ynRJTo1B zXM773dMS|iJLbT!dZpsTRp#$pxjZZZ1WCtF;KII4P%wccbX_D>nUR@|AlSr>N^TD*3&^72@*(j$L`)Lq%`#pvD?A?fa2Iw&<1OqY+b$m1UZ~0+574=W~Ho+|!>6$$Z~ zbS@K4PE6C)KGi7>UDr%NQaulwLUK2D@^%J%Wc~~ENf`&o#U!h%IWysiCRi}^b{yV# zXg4ORY?OpD@Gf+$Vlen#g%swVt$vlD5WAcdQ{k#h@6Q}`cD0~bk@64fPjtq$MUgss zdO!|)n_^z&U#qR-YMGz$y?t-eg$XAt+6M_7OB(!j0SHgwY-oy2gdVNJyDqI6#kumn>O`7UzoC2Y;+9?O>Cvk)ne;W5V;%kW~#@;%oNR?+G13LLLE>?Di{ciaD$L8aXCiFa6b0>5>irrr z_m;>VAJ_r5wNct8)w#P;>eRT_VtMwH(zy3UTKWPJ*19!sP$rdD*^W@XYZN|YDVVSW zD)hrF)a=jf3?svSnt`-|(@!PITHm3@LO71ReFX7>XABt_kfvNy1E!7s$L~As(4~;* zZyI~ed4!MFoFCvl?IUhw1@xvtt(Ctt3|y<~9{UCv)6759k4_lyAoLZjZvi_i3zKxi z0S7YBYNe+wdSr!fe&|tCo@=G*{d8t=&ptbmF>BdH3)QWv4SL`~G_AGU*eR$YJU7iO z0Z*j<0HiHOG|}cTFA#9(g|*$)+|UwP?PNFk`h{cm1beJH7%;#8s#Qc`)VwEcv_2QU z`m_u950NMls!5LxVIj64q%FAh;Qth~epihu>+5LmkdPnVgZjSt^`wwNk&4Jb0%n@-ul`>#_o6v}3oD)d7Nd<-ZrC z9Y#6O!JR^1o&e^)a7LLzYb^{si^Y_+5tPTS@QYRVL*hl0+rt)2KIjn-QH`+|VeX+C zU&ZsA7f4@ok-qL&;MmJ^pw%Bjhx*m!YgiPbT51K>Luc}d5bNqtS8(nSYofW*i(LR@ z-DnlT#BlM0U+|dG8X9b}3c;+m=i2br*{j&qMSCUJ$C9qRW0V)w@fZ*j2ga zY9Na?w_AEPJ109h*EyBB2oL=p`z|zuX~OVrfkR-u>@QbEO`xfA{KJs^dDFGdJWFGj zYr09GlhPC2+lkf%_mpx2ZxFQ?Q0)G;_8%Fw+He=a!3VYcm4Jn-39mLZ3f9kAj#5wd zZ)>aAG89EU_)Wf18(X9KPY~55rT=N^a9}!LDk$;kXl5o@rNtcKsU8lHDpzfALS`76+j*wNFta;+2l5V_}XIj$$p#2Y@$`@HuiHYaa2Rs{_Z%y8&B`5usa-qz6;YepR#0rysz2h=Cr&h7OQxYRrF z0kG118`ICUkW1MT{@~2-tvt8uRH&Nr9DiOtni+|v*{H+Iyj4_>VZKn?^nw|8YW)?D z2DSCEwv#NihMVyIXODBsd`w3g%i6|Nh2oD>Dx@MKLzr{cGzm7oD3dDJ8(lz->i>BG zU_#g*i^;&Cn_8c__A?C+W9V}low@QTh?pvu*WP|ojG9G8qcqAXn#(|+-uIc8Z+6up{<{s=55npaH|;Wht)t$hNVG)M}3mzAk z{BggJ%wh4TzEGCAFT+H62Uq|rM9RN5_SIkI1CUiIbjT!Tb3SpA*j%*!+JyJC^WzNT z_T?jSki8G4uKS%U)Jc8G)?De^wGC)!u_4SN$)%b>3{Nhb+%N0KRAf zK&;0@z;&(A(A+l)XS-YCi{oB$MNL5x%;?qfMkgvgkvNIc4R0EvM%-GYJdTU%eWT#j zUpA-TO}MD0hb|n{Z~5>T1-sv%PU_U3o50cZLCe$o4XtoA8|c@w7w69^XMF2ED@mS6 zDVZ-4CHT43&(n%Hyp#Vgbr2i>7IBN-*DGsg=&a{BdH&(+<6W+3&}{=B`zypSE6a$5 zptro%61gw7o>FX`%G6`2MuI~3XD_#t=vBXVzuzgYvHUUCsWUD%9^_oQ-rqia$~;gt zcaT0ym`ZGRi{TM#$*`8)m2x143GFwQzEb)mYkE=auH6Rt|AbAD2YJj#%32g|_;I?Q z9Y3)6N5DMU-~Mbm0~+_MQi(941TMF2SCv6Y3XZ3LhtSzX<5}P1M-S}DL&$`Se6~ktvqS6&uwL2rGn;SN4U_uC{jx{O1uy`M#Ky2rPjkJRcD8ijOW%4o=1w z+_gz5cB6OFc741@rl#pVdO7Uj)B2A7wbu!B*0~Zo<2RFe{`NKZhJ%X582l#2)~Ls7 ziSv*;M^3gM`;j4XUS)$e(6!;(*PKBJWYH>>5|5V|vHj=%Y&M%>7Q)+EpyvLNsHn z+vKf;&UZkrKl3HyXwz*$@kiX;`A#fNF9>a1zoBJhV||m~^fO-a*W^94A7|qNidArt z6B@N)gWre0!bBK2?+xzsZ3ji&&yKtlH$VeN3zUU37}SF%4=J15K+*mY9$Rj-+n( zmv7xd?v?ES6AFILG+1#M4A{LL ze*^8s3?H;G@Hu5;&r9um1}jWGDeixYZZ5l>drt2eog4~`7&omR?Zs*49SFK2hf7fX`*?`}QuOHL4 zyP2oU?%o??d(0p&Yh?Cgb~e^?IvJ&kzCKIflV)EL?d*1$!9rR{>2)JKvV-cHTMHU!LX47|DLB{&C2{&=G;3?_C41$fTrt%usnDPj^NoSZ)5qF|AtQL5Eag7mklfKj+vIxd zmjZ9wto0|>(jPavjUEZCCfMsVE5t#~k=0D+M?X4GvO2$CEXle|@!LOmOUlehmfK$6t2N(__U>Sin4yMtZ>tyBksq8XlA^9sCJ;#2X z)cdMW*~Xv!qjX;~S?`=}Gn1TNrw=Ll*pJm&q*Ak&LgvXgDIjPi-ENK3>t7^Ie`!D3 zNJhDPA8%Y{KUZU1bP3(}Jlw=Y*0A5wpWX<)aj6kOH|W&m3m|o5pewR*wNVn6Z2~U8 zM^Nl+_$GitSSFo6Zc5F$Zhex`TyM2{L3D6!?>gqiX7wU13uEK&(tWdEAmIfzP1Y0n zpQC9KY2yXUI^3pICF6w3G@q2pL3HQ@kde8Yo@vWc*o>zIH`;D^3Az0BQe7U;6N%Ea z=|E%=nQh7n`Ovp-O_|p9?C8+z5m&V+ed;|!97|u0_C7Zoh_Df&BVsBX%)|KVK30%} z?shss8u$LSFF(Bn?iSnm7BgM74)itk(EwL%ZjE7Bj|=Dv=8hklYamld^8!xEXb;c) z#xSP{%l+5dRqvTWQj9N(*=F~wv;ED7(e^J!+=W0|lZ!Fi@a(?7=Dk}Soqc_y1n1c4 zSQfP#OneL4Z%+ak!+siDcoaO{TSr^?>al&TaQq}SmoLlS^~O-`DIw)c0FlNf_odqn z_(~>0zyPPK7lW0-Y{W0uXr^65*$H6~DiQs?eKtJ(C;GBjAk~R!dvvo@;f%jC?W@po zUN<{im|&`GB4FF7L+_fr=`OUg`vBcIZ!vV%>tA?kXc#}DTsiGS)njypqeS<{ehjCw z0;7T3#dWr!VN+7wflZ92@;5e_fBvJ~e#{JE`ka_MgBoeOy&C1p%#6VI=ihw0yZ1I;;Enf*p3TpLF^sr(Iv zzHO`ql_JgTT%lKRHY+43;^CYaS%-%g&y~1qztzEO#9Gy>z3gafkFA5j)3Yk0QdcZW zWjN14sk(Z73bDV{ixpudIoir;;{$>{w z&AK2hq6k+*G%oIk6gIQ52D7*mvkY}AQz5}uu9VL(+{{tsa`EyWYqRF1$dxSN=$tj> zsYWM0-G`4$5iisLzq39@5b3>gtI{t~qpma9r^)TB%wu&N^>`6hY^)@bwa-KQM(}y8 zs>uRlpRvr#c^T8&D_Z8xz4vDETzZKx-&B3nioY^#QQ0meVca6_eyp{-j2Sg&I{rY& zDK{P8(;)q$fIY@hz|>>P?=$6&;TK)|uXOZga8^;6u zXx0{K5zn=RA!eHr=f1}F((&Bij_A0&1aGfSW%^vJoZ=5u^M4bNR0FMo!d+xY?nH;I zxQwiVqH~$W?GE4y5f5&GH%+{kW%%sKOraQ)I4s|y3O?k>_0K?6Y!iT-D)y394t$5< zVs;@x|ES;sT}<5ec+oMTdEa_bZjpF{A@niMR;{*9iCE zovY;aAiReri+t)SGBIJ!4R#Z0?-1aQaEErc7Kh)YO|mKApQ#PAYguDr)Oo$TsPfC* ze!|0%Ijb7Dh7IR=?9WqqD$-=UEwH=i9HNr=_2#M9)M$p6rg{pECrnv@(ct3VhJI#w zBD}D>tmTzBXUXvqfY8~fQWJ}V-uwd5_S>aNhJvxYL;sv)b*4LZo+#nbF>RnJ-xlz- z;82edh30ttjSfDOq{_%qyxCNXp(sJIqII=CnLAt8w1CO)K$fWHIrVbB8-FSJN@N5+K1P#8OY|Xc!v7lHT%rJ z0ca}^z{-YcSwEBXMM#L&fAi*C8BbK!tikTOL-PSkda}(Q)@dS43x6%dOVT-EZCCL* zn<*whIphe^^uxaRa|R)O@M{avx!wQJyNq^ogF_`!>5Z!J~C@ zv%5}D;3kRT$8;eh*YN=7EMOMF)HRyY+t*toiDABsvy)7b1LRDp=bFiN^s_&!(^sK5 zmnhT^$o=o*x^lhWx1Uj?(vL0Q#-8n^B9$l$>c6TDE8=MsUUI{>-0VRwoKjPE5?_+q z8Fhd;4S>$e6ce(AY)g-)LJhy{KqNs|>IMYFPBY?KIxEjg`XkA6jdtF`GHd6%EKvAU z8PaO#zuFL7q)}rY)FzI8VVpL8+t_P2Ul-$R||%k)|~C-Rd<|TO=H;c{I|U>HR{tiVC_CBwPT(e@bTxu zr`QAj!5FhzJ!v|M1rxc44`y51v{lRoTdm#ToA81!k!n0&!r}|P9nfUmw@*bAUYWCo z@~{t34>G@WQgv}`VeCuzcGc^aM z$JR%yBUHKMHb`@YKtnD1_^t>YF_ZV(KU)sjijsa&p6|464?TJ;olyJ*(qzpD-((bf z)gM=%E;|$sq}t#Gr;@q@hCLJ?_Zidp3}DM3PV)XK8A3k1GeQk|l(NKRa7tBo<5iXu z4{nO0ffeO}pp=Q<+w1G9#RB&8{YLwYP5B)YU&b{uhV#vel_VXVu$~VYZ4PbHF;CZx zZ6CCDB!uzduVj%9hHpA+n*L#KI<~8e@`I6+qno!86|f&Wx3Dkt&Zk*}YBvoi{590u znciCNKei+$bELayvknv%*ih=0=^KPhnGEcWVX1Yjo2J2fM8!pdao}d%sQTZWDP@Ad z_G^hNVkX?X@p{Tvot3CIY-%gsF3^`I!aHOM1=dLQ%KjqqdZfhqRAp2*Y(NNdpe}L2 z+%#*SyP5Gzuia+QGFFJ}(+D8<2)PBC2=&sJsS0oY7|(U%blG;QWQ2tc6CNrUR==Yi zQF&kqk}`>zvyW`(57_n>%smIyKhGW~Z{h9xi{0cGKEO1^40{JL?+KtIB(-Qzh*dtJ;4QU3R_{KyhrPw6Y((jZ;4EhV!W>;U0lD)Agy3 znf}8$r8QvGJPkq0UIc~r*?r>9n2=!Qay=GRHo9$0?3rp;kQmrK&Txr!QEd2ak*vuvz8jtPN;OqT`3o zzsGxvo-s6Q>%(}sSKiL`u@KBm8S4){SLSW#DifI+TvNLDdbJM-&(g=!HIv)w^!g$0 z*ZTBP=Yu8>1{k|d;`$^?&J@Wo%FcWt^XFuQ+UPTC#SlP}NnJtcZRf(6hNG76Bg+6@ z@%|W)=Tb6Hi#+B(Bm6;GkXav(tRo;Vr~S`%>jNr_Yjc(sehss>;3iFzoF~ew9D85#WAzrpdW_lfXT7G+St&vB;_VckD{ixpKBF6xSRb)(_D?W)7|M zMpJ33y_2X}bzpZGjK+;Y>d`u4f*@;2OSM7*s)%5%7>1*?H zx`Y*FgymOy>im~F?uHQv)0^ysDQ|?eC4(?Wpu+vB4oY=20$zS#HY?CCUNzfm^~FrT z)Z6@`bWW&*T~RLa(q(q);CWa_weKepmQ7Qudz1f_Xy=#f^c+=up+Cu5#{+{ZhZ)c~3x{fXkm@8Wt+k6xcORrXK+bla%0S?GsVe4zF4va_uX{%?T5^7|I zXJhw{Z%w1$Hl0!xzF+z%?N$i@ThsV?uLQ>^RCd|DG)fDpHo~>~P-zNb7jJFCpo-4R z0(TO}JIC^c=cdZ5V{^TOy{%d1v8JKV?wk(x)-;nD9RNIdMvL|ZVX6D31~2aV%2aS> zGM*1zEtwq@*ExHGZ4xCbl9a@fx=n~TPkCCyq_do}Uz^CXVBOj=^-+f4 z<-BrxVc$(SaLHvxu%H9-^6A4!iVvUD6o^f>&9t4)D0shUX7y&1<1!Tk;*W`e=*y-g zR@&o(@m(w<*wQfjr^MtB;HsPqLl|xhJqL!{7I-O5CpZilN~?KCj-^<)x( zexxm?UhBz5bS!*LVI}UEqjy)A;UFO8ydAYM6xk$okEVPx8d8lsll_Z(F2ORmXk=|F zHd>?>NH5ZOj6!Z?^QF38D+sM~Zg?_$4)Jfa`A9dDcBK(jboXD~PJ*PzM$JTsQsZcx z-RA6q%bk@O*?s`yJs=UcgvZRqsoD>EXyva50D1*(23tW`~ zkH!+^T#=vje!pNMuO`_2ef4|n#QwDVgmc)w-G0R|1+47m4Y`-pFzpCmqT;w+BnZVj z^}Q;=$$Do*!Y;Qt#FJ=g3a)^n-Dd=6a92NjRqhqZk+#F2W!yd;={;(ypku+%fdYHZ zjT`4)eE6zPFJ+Mhd9$?Vs=J%tm~zIXTcj)@x8M6_r|OrD&x@Ro(2$@3nUgD3EPc8h zkS}UUm_O40iy%tu^qx+8;P2=4|KEnd7`T^NKfclI+A>i6$J3g_U2EGJ(4n8;43n+` z^bJbfe@JxB?ijB$4KmyS8Kp*uAmVH=1Po8y2Zvc)FZb(KlEj9`I&#Gi5SbFUkLf_t z$QM{g+2}Jf7K#=wlTb1tl}%M6`BGRO;=8rfwZQbRmf{*{B9xls{kh|Fc3&UBo1kW+ zK%b`!zj(AvL&)#%pCVmB{u#LQ?LlQ6>g_f=aRy;>SKRsDmM=!BB)+{gp*n3b(REq# zQ#{P~-t!lZptwOhJw~u)eB#`CTk2i9>2r=sbV=QAJH9GO*5m=CP}`oXDqBchH%*lu zbm;CHN`+MD;YQPg=GtC%3%l;2!B-A@WhU}+qCGhrBdsDMA$yB|8XX3URCPBOwp%~5 zC@BW|oQ2E?WUICasFo{#fK2_gDoT*Q#%Oyu=j8+_Y%UKF20X6u4u!KT7}%RtU8dov z!OJ1AwXsb+ZR(9~)h38!X_gx(I4?_pdh2I`o7sKlgZ()1Z21;fhDM)=e+Z?nL#tXt z=hG=+Pn{Oq@tpzcO4G%ioBAO~mbhFYm(uH1O|=0NMK06XK*N4D!b+vSJ(D>e2oNYU z#Jo}LbKO=Df-mj%%{h=hwW3MLW6lWKzZHggbQtsRIB33qovUiREFnCm9ZYrg{7Qpm z^9TP0b-JS<=N*p+PSpAlU#iQ_6Sw4j&sTrs9NsJcoWs~{mtVN?TqFs>B(?rDb{OW~ zvVYzc)es-F1NPQ8EE}aY9&NhuOdgiS+{v2m6;E&TLeH*tsO3ux&(#ND5xJi27S~L& zDd$YNIi!UOJP&3&D1@8Bj)|&l5xzn zhq#_r)fbuK*FgM<>-*Tzwc9e)j3izB<7vyOyp=GUWZ>ZPE-c1SeEzEyLen{I78lhhbA*RST9_rtDswzuQ~`8R%E^vZ83540QH86f5A+89Se2Gqf5t zge~*b{$L^fU`ZH!B&bllvsMoLRQ(nq+X4+RS#juX&iCQ4b==eEDFf17)Hc{iQg)q4 ziG~uSI&Yjlg`Oh%aq{bHb$7ia#Cjfjt{y*0gI}B5AV%^nT8Eh zoA#dDLJ^ZH&XLfYsw-iB-v;!@#yCyrN4}d1;4;YOkZ6lMTuvLYcu4U_G1Y1P4k|6D z%_(tP>gWXdt?&D8!j3}VBx%@FRb|sVV~$mMIo|PHEjZEec$`$jxIK^H%mF(dH9+HN z_;lSq1?bixB^s?KB_3VhbduLtNf3RMeTo+J8jG4$fbK?oPP;&$N6#^_JC9Sf`u9NR z&y17@`3~;*w?%MZo$0Y-QdIG_eBx{2>@)_=cqw6#g3(&zO;x6m5$m**NO}jVGJyRe zw#QVnz=5+3w03`JlMSZfpfOaPj^JVocLP!Jq$4dzbJF@oI;4#c_7rc%(yW7UrUdAx zrt%Y`dPs=rJE(0f-oK7z___TJ1GN7*w?rtXI#6;V-&n}uMWNf!Q=*o&HnsS|X_;cI z`4|X&d6#7dI_B{|9*`wZ&2=nbnoT0F)bm3-ou`54+jyX1Ewo;Kklo0s%SuzB5VhZ| zq5qbR^?c-76v_XwubhtoxeF-91p&ou(%)7 zA{k&kpS_4d$e8sR47_wGKeN4Fh2K3R4~l%OpAa5$Fl!WiN1*(R1y*J$>t7N`O5$|0 z+6R?Z3*9)Ko;e`Jn5lfkwPV+1}341=U@80tAVvRe1gZ^Kl>g&jdVM*3h z?-dR7MuhvGb(JC#z5sk&R*1HMNndVQ5CM1l09Y@q7kk>`{L4RwbHLiO3N zj8a{N8$Rvb?^JJOt2V`-PUqKx#k`t?))7=!ahu)Ab+J=C(S$)&NmX|E?@NJ(f6CYV z{k}o}W@HnemRBsL)34-|_l_9KP+Ec8JW5DVgl!(G@V&VdiJw252Rh7KND9SEe4+>1 z4Td2_aY+474?$rMi94rvWvZplcKrmQIICkZx`(#tzonTDsQaJQyqUv4Q4l+c@retw z3HC9}>F`s%5ym$A*n-kM{*Y9RTe_8R`OLFuAeNQ+n2T{;o;ynG2x>*?j0m{tTPAl7 z@dl)fQm~zv>4d3n1t}4}+|X&BS*qSpkO|bLmXe9)D7AA4ks{?K3VFxfLk!Ge-8)E% z7)T|ZWo}X~zN8g*WadG}Pd|GY4+4S&OFP`gI7FDae1}Bi$-DkdV5z|I2Scad3r~5t}Z;E8K zdy(X&INHv4@Nubjs4JQB=koou?j+y{C~5r)nYtUty`%sZXpy|H(Iu{DiXR;7;YabL zDB+8(O@OoIYtetjeC(TB<8K*~e=sC}7+9k^h0N$FX)#H@3lcb0sb-Ay=Y{#GCqRQZZimS2nc%PN zjm`0Hb_)@lV6s!&w}PolXbatc48;%c?Rhhkt`6hVLWqnHI$|T6Ks?-n(S@_IGmT#U zPrI@{ewu9}`ibnP2Fve6q@goHKUMafTO; zkO0X3(8Z8)wc~R$<;@{|!l!Zl7kn6BFR@}bRJ?QhN|j+Bynhj6aa8&o=27`LIk)-M zDE%9fx%)$0rF4=8)r!9tPJBD%r}kHl%;ty}{y<${V{nxCRP)y_)q(veV4_E!7mlw? zbhCl#>@j_Bsb2q|7a$iJ@*z^+=$h0UT)V!BWG(UTG@L0AZ*v+kTNrT7O80R_ zzD$|aH{x6T9Kdq5)2sf^MfC#|evT-Y-*}4!1U(kGljcP0SKTdCNPK=eK^o38xJMoS zv*c=Q{$~UZWWB-DI|o98eGV2qG2y)e7B|aBj>3%v)NT8Z$&lD7haKf+ZDo_m`5^7l zrRoDu*)gDj^+-owl}G)=JX0XEYNb=}WyW@F#m1UGWuiMqvy^xh&yhD;2#>f(WZ{D0 z%6?`;#P_6XW7c6Ujw$N#w{(<_Y|HcXHlzu&tTbR+3+0|-fWBnFHn}lGeQpMVv0y~b zucxUe`w^<-_%ieGa|8fp#|<(mhH z?QRXPdRt10I`=V{)1ln8U?%+oyLhO+&vTfZzq~R-u!A9f;uY3c56*l>vYyXF8zkjc zPvJ*^=ZMBQ3ap%@Mpp6^L6}6UGOp@3r9I->dF5>fk-Zsh$)7$rbBXr6*f!!Jzu4@O zd0o3sUM%hzo^tw3wK`Tfob$o}l##u)xY1uc+!TIJjd_qlD)DzFp65#aV!Z3&ZA-_* zFqxXfh~!r4)7o(R#kv}lRGN5h6HOi+>}*BN4fF zrhHXLnw{RidP`Wm&EVqWZ#XYM=;0GA@V!7!C^yzXP`nCVjuIU{Uu56d+$*$xrg16BpB>}M!#^xe(PT1eDy#CI zw;55?a%@V|^TrN5P~xA%D_37I%Y4#EbH<4>=iF;BM`ex%pCcB4&S6lc(o7KWgUUhk z)H%oFFUZGAhxYgWm4b2v$|Fxwk`j^MX5aXtBq*=MVGf-+#O%-Q6lPzsHUD0bC0R~dw&LHl8Cl7|Qq%s7Z6BA&t%@3P9Gs{ctPJLT zBT;@e`EBC#p@j!*z+d;U;n7T2$X^FG21RTkr%UW#AfFck98_`LFGRT6Ji0hjy*uq^ z3S^j1WI8*gH}q%3+J2ZeDjI?-TE<8dg164~ZQk{A-jn-wdYTb5UfYK!&tfe#8+mrL z-7E3~p$xd%qe=$Bh39JH_>C14xMixG_niuw6Z4UX`_4mR@Sa7Pt(&)t8t|_wee?AU zG3qq?HIrV^4z|1l^8z#UuPOXF>x)sp9m{9!CQa5McLA%qKWVsrR*+#^Ck|pHS566! zq|=Z)+Z<+BU@qa|P56P67td<=*KX- zv^k@Dhcd4MZFO;Q!sAnKWUg(^r%G>H#`G>EmOvZ}{|%FM{tv_TZF^|DlcIgw~Ir z+bLwZxjVo~wZhQ5CRy(%eaFW(F)F0NH_hX#7!pr|fyLaeXTcLcMA%-XOE~zGnK6>K z-y|uv+s+Q^NaH6`xk)3&bo7uHTX3w#afejE{FUcTD9VUxX3`{KwX`n*kH1W-#O`5% z$zD4(yW1c;`H*0H)d=C>4`#ARYp3|vqzn5g@fseNW3M(Z{EExN@r5$lCxe6RR>r6*uvT#0}e ztN~W6H#&3oC3Ri~n(>k?sqyEJS-eg;?74)hV@e zw|}Z+g{vvvB5V4>`tk2TqFCuBim;yJ%#T7}5g9jE@|aE>?*weUXX6wOW0dM* zu+4Q*&YBqZ4I1`sUB#X$$SQu}*|$`+0zE}ew3Qk!(iMyew!@9DI=Y*hG4`_H&AV!n zCPI1FA8{$}b<>s#cR%kEyG_Mxw0}6gR6}^W&Q)}c*~AE6m>x;xD1gXG8X3AJExJ=( z9in@de8N8S+f~$`#Ct<1 zVUm^AW9sbjJK+s}p&AqsvKCPB@&>~Hq*&P@^V<dWn@CdaW< z^y~DR;Q;oyAwg=JFJxITB?Z8>yl69-n9`C~%!Emk#NUcOams6X$ug+Z>*XOpZ6rV8 zVUQEzv~?Lj5w3OhXL46&>R{c&t2ChIobO6iC7cr3 zdF|CQ@do3MFyE@ve#}Ff^Z~C|x#Fuwt$9e_N^EU+EX_l%MzX^Ok6YGu2YR>0X)oTM2&*OW%%c13ex{37>u0+sQGt zsuSQ~R^47w{Zx_5o$OhdcJ)+3Vu7KEsj~)S0o{d2q_QuC%akL=@RNZ8)#u$Yxs$vE z{e0eGKwx%G?yj4Nk9v7&{b33>WcwbtTlaBLD>}U2@e_p>EA@~p6s}7kETI(DqqpIJ zPJJ@vK;)Hw53f=%{OsfPz9<5NZ}Eti)1ScXPQL;p>wOy7Kaq7>l6_usjSi2)Qpc<6 zi5d?ZoTD{W`1CfF4-}zYy}M-J>Nj>jAxvg`)<0kJG`poDf~rkP!NXa^sOs_3*8kb$}t0PE^BNFMiiCt_mv`uS?Mh#~gt_sTtWGzAkg^NotVJ zswgvBlSs6lOGE-n+9BX9k=AORhf0V+=dfLsd)OU-A+tCda27cX%QKSwT^?Hv>_q_m zm>aqqJ<6kwF+F9iglTL&CnR?zdtG@N(e*QRj;U|zi^9O`(*zp<>(f!6H>L~cwPX(J z0KG8D+~>owtT4s4ohZahi}dv^<7>78QT=X7i@GOLY~)KXRJ_S3?;bo-;sCfT>?(W6 zmZ2@D+l`?5uvtP)RI7t1@och@^vCM%SbG)+gwtwZIdV?YbElhKmx(4!+FlXC!1EwMnO(Xk27HWa-~bq0;)ix04z_pfAY#`5TYl zxMZ(jDCJ=fp^c2n_b`T$7`2{EA_Al0mGYjJdgi=~FZrv}mXi0+F4i7SVq>@pZ8@{#OUJ6IA?BonX1*S;#d0VJHnKM=Q-soQw zFvE)^;AtG@?@E;|ewld~(rlTENTb5FWa2NR38|L2+%w7|A0u*ajMfzH9>CJHrZhu~z?;6T2e6zBz(bx6GZ3Hf|r65zDC{&xrDI$d;t@A#+|yoxVWPcs@fc|8~j_ z*DCY$%R!MHj~42Q+eXHR2!mPhhM*aLI}LIo^~RSjnY0$tWR5xZZv7{DHCo0VvGIf1 zU~|{mEfH@H#k?$|HU#z;Q>8u!7YdPBF{$S~`-=nj^ zoyH|=dT_V+l;{1kn>HhdZI7S(h}Ma6r5{GUo9U#kQBSL|GPdBi;JU}#fH7%cqPDD~ ziDyf4rqiF*NE@o*?Rji-u>+b$q|1zsy?qPo345^5lPIqBqPGcTuBDG0ud}CjE7n8S z7Y&T%lR6pn&RUL%R=Jo|`c_ldexEb2*>sVKGJI9``nj4L_ayiwwCCVvsBm}uL=ycy zHru}XcjhmsP~W(Z-%_HerYan%i9TNY^Cy2omfc&{Dr+05`W|29&mVWfH6{OGPu_GT zTz2_Cf7)RD`-eqkgOe8I%s7Ak0&a51LqRzV{Wj3Q?sbjm1rtsLdTZOQHs$Yosbnh< zX|EXA^;8=DeJ^?3-^%Y<;pgWWe4KyX3x~Ww8~6V|+8;0T|IgZALGu4{KvJnNC#vb0 z7frB}8>+P}zA0uPQo>A49wh&@NYYi>7TY904|2-hcTvLKW;6d;Ip&?M1cl3I5tqCgtAwo5kknYn!d6U{v8_Rkg+&$C-IxxHo0d!^^pg}nsY^TRP(;0tV5Jm`X? z`5W!$I8{o@TrDW*#4`NaA4w{kohYo=;EDgkfWB|C8NNr!;zv!`_D*x)3_PRGLE79T z^~x5%f-R2h2F?tNKCQ34ki`qRwhB3)>#gQttZ<*u>&BXYWVS>l^YC7#tqznJs4I2; zlAhuTQg4Nef~b4lKtI{Q$w6^NYQ~xQ0W17Aj0}n$Mm{(!@>DEe{9`(_1MriK4+ojB zRGQdR+q+EVyr^(-CI9QEz9OQkGY1U(b)u$xs4^hkEsL9{|B-jIKV4-(cVwmOJs`nK z(EstU@A0{_0ymnIM`KfL-6{!CTDe-7aUf6Spz;6B^C-y@vwqdCnD zA`LfXDN%G9uyL+G*T=+L+-))xcN)8~#3L68Irj1z{AwM=hYln}5$KX##<|QtvWtp2 z1!1wlN~AixVr@G3^!}Mx&a^ji`ukBxLM+K+GSu3j8dHQH3Edwv&KwZIRjv<3xHl{u zpiW{(Hb3>2ok4ZJ-hTAK3}f(Jrn{XuOsSpcCO87Ev-?Dr=FfnYA0jMH^43y(u0w&~ zd-?RYJ>pFp)2$pZqGO^JONMX14OL59@uOnOg~xTYAHs8WpA2=c+tWPkcxY{O5P&Kq znrZT6eB$N8${3jjY=-7GVf2qF5UPJfD|>k%{us|8?Cg8pui=`W&Q%9oS$`Gt zBO>-?A@vok@J~33hj-wIA?th)bmJhNUZ-K^9C5<8>%ExBv@oGQA1ZKHClc~FhqG{$ zltJ!1+iR5)l0NT02mN!--{VIS4m++ajb*g0m^1xk!X`FK$C4fw+G%l6TORJlz3YyH z-v*vcL;4`mMR&!G*NFj#XU&Wc)l%nr2*=)AkA+8EuUX08D202-bV&V`SRAhhv@2nB zye?Oh&>xC(jEBtUs@@V>CG;EfACByu7g|ZWvh$%5M@}4x{t680tH_O2dxm-F1qOny zMuY96`ij)EC7C8kd?n16lUpu|f4wd}{F^i=O`d}}QSB8My|RN=HFGMc%gl+!-H6Ma z-t~HxKi5Wq_Z7OB?@F9*%V32Gp%SN2j`#i?L|eqwLKXa;B(Dk8Qum)cZ~+Yu~;acO=Jg1k`)* zr=QvF;>m6_;fiTa0IQr_Hu^7ECx3Eh;w2OohrfxYjDLU4Lp;K(%K{`2%f%DYORDY( zPWsg!C<<5j>lV+iZqfB1hwG$2K3uUeN6Z+-%U#B{6 zAmOp=8;s|MKmF?(B3IYg_8L!~T3wvHH=r5CLThvldgEd3U0+l>r8I{5 ziY_WDG^MMKR>>rDFC zj;iYY4;lQ;u&wR zeeCkMx~@ZcdCec!mB(!$a{SV3px%lXHt=I_>)m|mEF_Hk(;p(4f0DVIgQ#zUB2|^;gZu#jzE_N zDjyt+DXqY@@u7n$XoXOIxYl2jwuWD;zk-b?LoI!6`NRS0gsqmEQfHLJy?;O?GtnMv z*rg%a!OQeclgG~jB{nRyKM8@wmEXKwX1JJ}SS)!e2<2QhO&lCEcY!>CcY^D1-d&Y5A`j+igza<%d=4 z#eJ5s>yvA>>kI9)><1^MC5tS+)cp2R?HA4Uog@yj>T~&-8H4k??MZEeZ@lU*#_zjR z;KB61^m~_|b5~`0PD;h!ckzJ2-t}hlqaOO}bWxxd8;rpC;YW3_=RIZpCHPy$QwQxl z01`-UB?Sq7p6^dva8deL$Rz21{1~Ax<&-eIv0nA}D!mra&WCc~$uTJCrTMn{)_391 zdo;~K^B%8xZRN{Z!%VqZztY@ItT2DWiV-#T2`f~dl{zqiXvQ(e#eSe^@ziJ0UDBXf z#g3cm%g3;uA8ucw2t^6RHS1@b#b?{4t3Kz1`8N^ksBp%G^;oKK7K^?lqB7;DnPC*5 z=Qr>?^+BY}NxgnY;TY5l0?Z_)NzXpRf?4IT1|R0x|IAwVb#Xbk4x`J&W*AA+q`Y!0 z2XTNZ8LbZYp|A?u_3L~mds&&ZZ3q{le(mb>reGuUZgcE6sc}IuiI~q$N@i<09|zf} zjv4xWfP$?(-*|f($@J7ox9DZJ6OI7?sXfT6@y_i~p5(_OOYV6^*{A2LcCx9nqGg~*vZka=8DYURZ`Nm2Gr*VYcN={vh{#ak1RZxG zF5E2w#DsPk%Lt@MDC&DmZ2cKnX|K$O|$4qFyb|D0MWs0hU#? zb2P=vzPMq0y=#sut0TYll7_p!%VRF+7Vs72UM!53Q9A&#RfBD_1I1$WN!VUCc`i?g zwMMeRus61*Yvu0b@*^X9EH+yAg=EiHwSX6>3@AZGJs(~ud!MBaE(y<->PRDVl( zl=Bym{+=cO05BDhB8z&lA>FohyHmF0jfFgrrwa8Y$1_@7SYy91pwlUZ`O!hn%CM0@ zk@%?MSjjQ(U~~wtvg^|-a&w)afx;-&{pI*u*;ui1!ixU4N~AoO3tjwZl)K`9J(hc@ zFSJ=*GmAhL=$btOJZM_RN$3vN!zXKFr-%|UYfnE)TmK8#7LlOD!yrmNl(k%FInG~| zg+no0TCufag>L+~j@%1uyn-zZL)%6n zpM+GkW~xGbfc9$CRBj{=rnF+5cf2DS(TkA93Tc)ultLDOnH-tF!11(-Ku2NXI?^W( z$TH@D60vj6@u+YA`CqR~G*-SL99`Xyd0Mzu^C>ySPkqHDkz+oW6>B7o&4&~Uq4?{( zRMQkj#%np`w4kuQj>;8V3KXer)ylSNphSicE7tbRkPj7@#3A?mIK}UGL^||;yZ~&6 zz_%qzI#S_(F9coOy!(eD2Xk>LXfQ3PH1#BT)J1?{!{Rvzu=($uW0}rfOeT*zeOV8g ze3m4nU5pM#gi!ZVKEpMhVGcWelQ^(>2&298>BVXQqs~vWV%vMfQIU`#HC$5mxr;f{ zUmjm6ylPqkwoUpCYATyyzrlD}ul_l5guloFibKIZE? z-AHZ?U)yb3aBp~4a_S!C^`MuBNAA7e6IoiLwpll(MKm3}Q+tq)ot%h|)b{&?(`XM) zs4k{{;nchQ=-0CM;Wi}V=Vk1Do|d{3t;byR>6v%CYUG-O`w?goijK=Pb1g+@%L`BG z!-lfOh5XhqZA)UEzMzv|oCjHc0;$ikvE3Y3{d~RGs`RJDay?eT@L6S8J3t8NI!=4t zWrTssQjN$S`^(9R1oR_XVu)R^w8G1|z_C^4QYVb2p^U$+A}?V6I5}VRbr}VX`ET%` z(ePe8n)VPqCMCr-0p1E@Y;3|5%$W6d~1DYD5-@95ZF-HA3cBZ zw)eGgjg&Cvu$w(rFFV7N9#Jpfrb5*gQx0u;KIv?|DSsK(n+!?N3AuFVlksq*iG0gS ztqU9w_;R0#-o@gCI!AyS?6$$mIv;lYLUQbzA+l?C?zluEti0-&*v<9GOOmQOT88g* zRr0O(tGeeTWR5O4$^ChKn3a3Omx%`{k@wCm0o2nyTxLtDInra_C#R!C?O?qu9*9e)38f(Fz6tHv4N+?Q6B5De z<6<8>eFU8FYbs{A>e#{ZQ;`b&b4IE+lSTUJrSB5MC)cd^_Je8?iRN3o_|X7T@&-Y`i<(CZ??7z8LO@qkH^~-@1k&OJEpDxztmQC7 zzRfr?P7|%V%|0c$s-d-#BtQOif~##z2-YXvk0{?H96vwD8tdKp~1_`JaS^8|qOZHi=;ef;4` z^HZ;wfju+y)w3sZk=nZbX%vW|IMB}Hu5EzWPq=}@GxU9_W1`AgZFWzw*FoX##XJR3 zXD*o{&DsyxzBIdpnl$-iX-%{Gq6Eg*4yu} zhqO$N(1rP$3o~Kec-g%0(mYYV?!){v$oPs>Bp2b@0h68jYi7XJ@$VXyZ=kp@ePHIQ zi1|(7vKR=%+`X(TwU@5#TWS5hRX^ifb$1X(772>#Uv<4La!d6Yzzs4G#Mn)ChQcts z_G2uE9d1>d1D6A(FlDZN9-!XlshNl4HD}(}Q)(tVBGSNR`viXFNlQGUYnYO$;O+dh zYUb(M52n6KdyMl_EZoXGS~)jNo%LRLKLu2v&#H462JKYhJ&9XUs;q4UHXSgP(J(@; zwVL1d6RA1xVfq>x#Kp@xT~G9k8|rr6EF&*~f2B~xwW zK6=vj6Yk^%oVfZK@e%uq3Va8|!Xqi^v^_J&_<$imP);Hy^?+<(3-)S2LxZ(a(52Il zH^NH#%c}OMg}|yKxy6YVm#xU7Du!wSN#YHbz>wjFq?czLmPHW|ki5gf*r?bBJEOh* z2n6_3;X>JKJ4KBrx*_{Ck#I6B`hUA5%24@5R*2K&iHLga&36PAi|>w2q@#~qE@|0h z>Wc5T`k|X6M{LaU9uf5t+D*4Gg~}dTyEFLE2b|wn-h2?-q!R@BXI!qEqGZwjP8vw(=(#3Nu`13sY`?`fECW{a*ft=V1aB zOfb0@gvnhcvMUas+I-W-vFh3^TeIK`?#=|^`#EAiST;Q zcUJX#*;LNREa1O(l^Z6%D1>qV{3)5tiNnKABe{WhH(LUOQ~SDBd=g{R`34l^pUCUV zmzUybWHte0;TPYIVq8$^6X@UpKsad&;XjO9R*fF%oyn*e)rxxM<4$Oa^cD0$P;-W! z3&}|ZZlE(>ZgKoHYjt_Mn(9+i8q}Es*;jaqKJ3-@F>+7@GCu{ccdd5H3>{9!l zESvD7pn}^VF|D5U6dXY7aYEyT38{6m+nb8~vMV*x4&uEe$7LqC?lYV|^d(}`MKtKY zClUQ9zc_g^E^uhg#Oh0aAfDhShyM6pL;g@wRhBD%x~jgeKO~eDh8GH?w;7^dR!57i z4#GiAOMf37zSH5hEiqvlOmC3y*QpKun|<>U(T7U2&2;<21Fh8C(FW>{~<=SO|O<8@v2e| z$aG+GY6pKH=|_U;PgG9tV0ah^sG9eMaLH|%BA-6$xEz=eeCp$D39wVQyyiPc-^hJ= zdIK0rN$Qb@q`P6>`ioJn5ssaHIDItVc^*`g$9Zt-?zOZ&IYZ;n#w5?tIv3^bQt-s- zFP7@PnIZ_+9-6T%mgqvw(eKFhUvQ=t*k;qSBKOO_Kl?fDqcciljW%l3JDDDCR>)(u zjqrfpDXwW>>(Ks^r@KA>rFMDA?@Kqe z_IaAk*WQk8y&}B-;ir`;mTdSuo-VMLli^o}UBPUn6jlgZ*ijmg`GU#sxC-1utbgGI z77EF^i|J$RNhHv=>sBp?uG=PWdGV;4NxnAA5i1TuL`o&|ozcuTcIH3UwB~pMxyZWQ zklw#vD~Be0*>w7q2VQ@n{s|z$|CO_|r>-QD3&Q)$r@AZ2uImRws@d&C6H8{_XK#DW zw_noH40)YMhxj_bW|iraE~56CwkV-ULtkeIN+P+fzHiJ(atevRRiYE3WO16e_SFzM z?I{zK)@@TS1Yep|hnL5&y|#z-5(J*5d_)#I>7VmPjwApX-9*&y2Vs0ql5>W=su z$`UCi1t(pe8CfR2i-y8Ox_^rVm5O;yiXTy=de`ztnaC+RE3n6~DI7QS@jKB6`Mt?u zV~UMVlK%JNL0RA*`J4edT+ES$ouh+VF_!h~wGkIt#4z)Xz1sttF?6mjVyvl;ma_CO zL_CW)PBSA*QE@>6qZ3i5rWfT$z4058X#6QJ#JHh<@|e{Rw)AaUScu$zty+K%n|3|N zJOCxU1UccOl2ub#p_3;?B|Vd7nBO+v>h8FBV)y<3 zeRN}m_pA{0@}nF1)9$=Fv9G$%dCQKyT)BL6V!})RZ*m*6{3$`TvHC4$&`DxQ=h_%_$`) z=z8V=XPkT?*{?h2?4O|52ck$U_fJJ;B#;C%O>aq-FOlVfQh7qi>KT{kJw_HF#pV$l zd<75S%NW6#p)l=!|DL(P0;eSJ%WE0;_AtiB)y;hW$p?;vS8QTb-~7jz1tnrG;8Dbd zF(2?%%o*@?){KvpfJT zypkG#`g@9sJUTb)SaDW|!9BF_yt9&N)V{{V4y%zb6#gy&$b35{nDjr})Is}gR!wWDtx zS(Mi>WvktlD^|efC6ttF`{fr3^gRG}q{T#{f zQ{aXh-qP*3+-P;bDTdi6@!`+xK0XVx`Ay(3o2)9p4|yXf8yAQDVgPu919b$Afa z$tr-iJ?o{j9y-x6rT$0%`&Mkh)4;(#gN^!KPBbiJV+TXOI7yXbCy2$5H)(1{v#jQAQ(H=QS^g7>|8KQR zLP^&0P(3^OjF4TMA74kMb2){9=`kYFt^N>$a7E52e|co4)7iqY-=8Pp_p_NuoE;C| ze?7lHc&eLP`na=7{5Z8NdwapM;I;j$)Rtz|!^nRpBu^px4HWSKPabSc0O)0jX2rwn z=1VQyyWXPd_z}m&r`y6-isD_ znbzpDjS=DrLTLJhKVJ>(7*0@il*U5C^IK2JZgRqotv)rT;em4a;5KR z@j6CCwSlBLc;__U<>_#lFCCi#9Dvz$^!L_ zb15wVBx_HUSfe$2Qa5A@Pmrpm&5BM!+izIcLh(go-dp`*0;mBVrq=Kxt{BVXIn&Nh zWS_~2s8Hw^0yxGSzRj|ay!JYCv>-&WerrVlXb16~{}14oe?Za8eMoS@++Y{yN`|s2 zvsApA?FPA`t;x3$SAq5QpshPjo(10mDj0&8Ys*9WhZb?owHrdpx>p@O$ZT6RecV21 zN>px}JFb^zeB|N2w4V=;x+1%sd>KP}*2|i2R4M&e@1DHhJEs~+{5}5hA0hU)*!>9$ z^4>ss-pcoYbm6+WJN{xp>(&V!u`I>T>f^HStrkXNCj4Tw({+nbn${1>@MDc?#JjuB zWo6&Z%Nzc^=;~D%X?b0~-JFhqXm+m{_|a4auxq>HT6|+_bYobbM{|_=pK)?3hgQ31 zb$$^F^dE9H=)TTCBA)5YSCOxPtpauBg3y-BjarfZ*2hA|kFNkE)zg2kdXo-!b($X7 z1-~mLD?#Ka8$fBXC>XLg*BM-A)|H3^^{n(VlON#6soq5YK*T<5%H=pVb*7;m{RCq< z?)o$cNPA;BekNC$uD}scp%Z7}RI`#1=!iWt(U^ZC(slkoL#97OA?_1G-EpHnwP+7~!=pnTySCuulcm7;+iQ;1$HQC3z z8L0=aX3%Hg4Dd3|Mw1T?bYEI09ABq!g<6Kn#rQcs?>HDF7(i zESLYB6@xO$e9wNr@0pH;=*?%3E6GJdJBR=-QC@@a3LR*HFPkPVH-rg;>{DG~0<`}C zk+vkj|2hBgxcR{6D#tx*t~2XI%Mc}S;JEf7;I2fr5F}{ptDKC`r==`hxw?8U$xQD3 zWLs7Z&iIdVlozBA-NjAq8%TePEiD{@IxAfKNT*5Z1A4Xv`jMfe8viy_7{LF~4<{|E zy-tbJn?7+AC$i!I1W=(VU%K^JteWsAyaJqo{Ma;(rw zQYQ)%0TrJ|?@k{~L_(r^Kxm3;_ub%rC$+}?C;!|)9v3iCu|kAjADJm}eAHbL=7bkC zzY`+A?}2Mk2nb$ntH5e&5c3bn*)tAPVpZW>PAiOuB@%_T(Ga)#(bCfXnw$(jJ@pJy zVCl3Fii(b2#9Ut7Wn>(~3eXXdU7)S*Xov9EOPjgx%!P8nPZ{VjI|k3khoLs=X8+C< zd$|$th+>hC5W4QT5)_DUFZwEFw*s~vK21DN@@(G!PWomi579w$tB?lq7BQ*^6Z>xk z>4;Fa7`%H-Zb*k?GypI)Z?@w}-)xCt1Lk`Vwr zA9PYoG#YE4%IE|W`!y*gC>w;j zC=6Ym@XIZ%7j%myuXm7%53Y)9t;|eoCO=<8EPk>L={bo=#%bfnlm&9y&NUES~s4RoKhR%d^`t1F6Dis6j{!a?Y2Of&$p1vrKv3zp=&H zx2aHGO9Du&xWI6EfaVh43?iS@Q0ZHC*7o0GP&M!8MRD)x>U_^&g-eHO4#B2!reOp} zGS)3*d?+OZp4mtI?{V_dwBLGLn#7S8*mjf{B)G7GOeWKY-v4y3+HxP*MhaDC{076K zV9Rv#XEz!f8yAjH!~AQtG(lmPLqpG-kA6y>B|}g&8RD+EBO@a|gz{S9c^M*Pu#WJM zF;D69C9#7}0}MW&)M?x9iOxpy>aC8@D{(sDkPVP1KuFNiV^x9ghjfqVP@QR`lk8qU zQGE{%@5RI7S>W;j`eja4G54{$V<3x`(QG+oy4&nVp_)q1t{+PLY-}%)-IsNrj*jl2 z1py|7T#iGc@d!u?PRs_48Dgrv>$t4Qj=^B?+2o*q2ov_Kr`}^b$zPfG{3<-_lsmkp zpAbBn#(Z0ce?CAx>+FI4D_oV|!>?6Xarl{~NFQ!UsX7}v`5`9eB7JC`!j00{4}qsoC-y+@Xsml^|esOh}fWKvMojpK=EKE7~ z?q);q2>kK^fAa~g4QKa@&o(wQCL_T-XysZe_?Is?=21Vr_ProTudPZKV#xGcxDJs_ z#oBx;m=1gDg8kxrF*`d;n=Aks9Mr+3g(2R2Ds8x~EQck}Is>eGwZ3xFvU1O_?CtXJ z?)2`5RgDL6h)zDcoqWJF3~?d?M__&+_I^;JPA33cV?E@OwX_v033S1W$KKC6UiZ$U zakOuGCD4E_WP{fje9I9Nw&hOquYkVMhcM;02P_<^mV-RI#a=Fg-}zEbSTxE3;!Vti z-2x3kjv`z~XozKJj}3MyV{10lZh*OY+cd4%Od` zFPv*r42Vky0{V{`y8LDLBabq#QlydeCfIErr0LG`qb7hz14(yo_ zz}*ClEZ00d(_N*>H|XEywz=`~#o2=$aqkx`v`CqgdqHV07v7{{YnNK%lYr`GC(B1f z887etiUe7j(a{4x7c;@0nFg)f@`-`@*^6A0#9b>^E-wB34kAIFSTqbvF(`*^=A7>5 zI2_?RskqB;QvV)u77A$-fS~%_ab=T6jRTtXlJ4KRwYX?2TSRO!zQ{G|6kS@}l|kms z2P{^LJBDu!9XPavi@tWgr{ zp-n@-M}bMy>5C%~QG=EAmn+Z)BNLeeYT2_*xg6}6-VZIyW**^Fo7Gm0=?KE08o~Z0 z>v*J8Mb^AP<6+9#g%!CJ3F9|m0qng~xl1Fq!xDBs2MQo$lfC4Co<>^}-zrx~_KlYC zChXlMe3T=~`5bkUUBA*F)Cj)tM6ZG{9GE2m46c;tj*9Kb;5v7^kDZ;$b&MQlS#IfY zwckhM<&nV`+sa+3U(GGVR~A#oi(w|Z?Xdn#QfGgF+opItuWgW9=?JrzDfpH&*%g?i@zy(^h|M3E_+`p9Lk^9i_+kz{d zUW@-nJVz4x*whlDUFk z;<*kWm_h8fgXJC;ENJQQ^$$?M=S01+#m)mx>ihgS z(|q$&8Ig802mBWP0M!qOk>|E=7Z|_vgpe7fC`+>@p$W+=#N+zvBM580ODJtba?BIN z&Xa5-ty!_1u2d+bi`h`8 zZ=sdn^V7}E7>R}F#4apL4v|eGnp@4AOIit4A+0K_i~)6OHaQ5zE-ZNw!?u%>?SzN{yeGT1L`ao9z_0flkOJRp>u#swOI({hHKi_GyHDY~#BKtIQ8O;0#5nCW?pC}zzCW24&MqA+E{wQw;G zximnpaLGN^(u&pGdDd3~_sC*H3#iN|^CB1&GcYn1Y#RGKl@K6pfPpVHNN z03mN>#R~=azQ`YP5na)Z8{x)D&y)8v8!;58;4t zKw(fG)gCQLcgsQx-nO~M2bcAVzw(zmh37Ig-rc;&teT4*uuAH8qy6G$!wc?y{hZ%vvhF9xd-=EFwylMO$2f77?V9tsRvpFE~PZ?aE z;HIm{b4H^IT}|XrBtVfzY&3b2RoJ~)#!qb&@lu{3LXt2@ekMY;o|L$}Zg2T8lTtiA zL3B3ff8nIj=C#yG)VNbNb)6(yBhimAlOU!*1l#5YlGgz18W}x&8~e~d5Rhs{iBfLY zLj{(=RK%e|!jc8;tq6c#h5O^=0+s>iwL+7p4dHvEJyT98dRaCz1 zo_wk;ybiz@^J&bLd!BF#$teG1+S3~k$MT?`4ac$Yh%a%SXC@Aw)#-aZ%rBq93&9wTUSDM%BGr@A4V?P08thWza!U?*OIPQoiatce-!r!f6;X`U%^$ zBxLdc$58M)H-uvQd5QPgM3UdMDP%Xvj|{a{Dgd_dy*&~7!hL-H92ue|kL$p}9Iu6q zRu?~+(sDiNbOp$4mc);$y%~x}@tNau?!aH3wu!VAp>jtY(w9A0yv&Q(HtXcOOV|DZcelCBdHuHD zQANJ8@xu@FDt*m5?VCJkaXiN`prQ4(9(34OerF9CW`WY3MlU`7k{Do$9|*5y{4woi zPdHMV+w-de`Mz=gyPqA`%6Eh;T3__a;m6tq97wfdod1NeOiN}`l1cW1Ie6J3CWOFV z$kAi|WhiOV8N>GWfjXq}T7BC(`;gyoJV zP%Q=Bk(@VNOuwOzKfgojJSfo+AaHPMVhRB*jgDN{Oj8TA%Y^qW;v9qE1uT+2ZML(y z4Q^b3qbO%i?2tDyq($4 zP^a4ofyiqA%3k-w8$#;CpVhr9%q4h?twLsEpVM!S*(OvG;ws*eSik@FMtX+E8xrx| zsiuoX3?6d%^3A;I{A^9jPa?~<_u)6DSMHOsL#qfC2!rl?H#)-n9GT4>%N~mQ41Fa0 z6~h+^ZEX6gspmERuKk@eh-Oe`JA_VQr&4Qu~XLz1Z?(Ea*2zUcE_a%l)7T zLLifK>ursRd!%=POCCG(>p>f<&t^}ol{mP0zSB0imnQ{kEjDH^n7cDble4Y!(kzD& zBGX*SACj(E+b+Fqf1EK5r_f^jJo%MQ`^>BN7_}kg$;~=l4Y7HCAYm!V%l7WRJs7!U zG&EnX|L|Ehu1sib;={HInF}^S@z3WcjY4ID0t7Uqh{wY&#?Xs1Xhw%u*g#YI+rvb_ z0E@u$$Wv&uB+FJhm|L}CM<2H6KNOGyQM}VN^UHVZP8L&@?Kt7m%(!oT^hG26hR?~i z@7;8nn|pbmKZjkLKi!>vuA{?x^a=lrp1CMeH#j6XcfS7hUHGw{`#nLEcSqYzcYb@^ z#0h@yKzMiV;_zYkhbG9XbZMq^m=w(*^Ti?_QN?dda}fbpp=OQ4?RrmrJz3G~&G(sY z67MYO?@E2zZX?@}v3b~d%*4(3gcis9{t0-zyhg5wg&nd{+;w-;IS$dIf)knWkwMZD zrR zO~IqKd!Vx@PZNlC`9rk5<-&k!W9@9!ZZjZ0g$$f!XzsJ2)$WQ!vj~(vncBu4Tp9@8q&Cqma zU5%JC?iWIiqJ9&-aed5Knj!u^o*gwVkkh`_=YktI=y#sY91S2ZhS`u9GH@h!Qt9g( zg32<;A-oK!diCL#O!>2gtSHmQSEFbeL8~c0MXwEfIX7!O(-!!rV#>Nfj-?d=xdr{V zAHr9Xa}g;IQmXCwmTr(F>!ke7QkF4&kDF=he|e7xj?RYqt?e1yj{_y!>Sq?+v2!I9 zq`_hm-NY+ajmt6is?VYP^*L`3GWl+FL=KW(>t6$(Er#ldmTAx-q2HUErRimSUf`eI z@9Ys(J=~_4+H{nbJ@B1PXCkK#!J)9RKv$0cYCzms{ecYc(+kul^rptu!-vyLq;A%` zo~Hzjele8@U24ZYSbB}>N<+5xk>*w>!{7-EmXj?%!8am$Dzwlqs##eM@|j^eb7k8z z-jaQ`KaNjl&k6hL?t!-?dpRZH;&P-0T6;ZxeDk6_eN1q)hr1Zm@4@qeqNVtib!oL8 z6ke07PhILta*k>8-dz#I^;=n@q$QH>Nwzs z(cxi-OiQj<*|bfmu!D5RZJ7m>>O6D_=GoM|%fhp6{Ekv+GbJ=Ex!?OE3C-GSB8_wgxle?-1#DL3Fx$8P775aVPE>c1w6UVUo1y(X42tycg1oeVo= z<^>74!tnUh497eR{a;bn_y_F-vqju@{^Y<3`{${qB$<-tUJ>HjAc~Y_8u% zc-fD5t;9=Pm{MezcNWTng1l}h9$OAoZ9U!7VV^%i21x3%EVvT>ip1`ZQDsb^Z}Zd7 zMJ|0}ZDdIJ)JiPeMT)N~i`|>96EFjx=oK4Q;LbLACF?lv9ar1h+FBy_X5-Rf2??K@ zQJQPY6wHTsEvP47eo(pihcaF!h|LFklxRLDypL}pFHbXR`JgC6ne>g!f#6SuiSX(o zn$Mj{D>HOA7x`yOA81zmUOLTJmNN;%{Msb`#pQqVlcj}7Y->rYkM41A)ASpaL*e0- z3(LeXsp$K!pC*0bMA>My9xI$Lsj`Cz2yXP*D!%p+4%w#5^5f%zDe>JNIFmN^(8BO% z%(e7UmV!d=&c@3rN~1E58%i7XgOK09Yo~KTJ~5UK+Uk}*BEDhF%NpYpw7o7ZDvhFY z9_$;J22KL?MNX@pn6X^T78IjPjzNbkr^CMmrW@3hf4&*A;oWZAR+ZnozZCyV*Dlr! zts2kCA}KkwJNI#TSjPk)B$>d+WTGx}w{9N3Zhxe=_#!J>Ul$pZV~shC-kI^e#>or8 zyX5*wuJ?Mi(0;2yd-nmp-z}WX1-FsGXk@goG8BE`In$ECzUgdnA1V03B?~7`V{NG_ zMl!fHg_Rg#s5RoSvW-1e&3#! zZt3ojGU)CQhDJmfKnX!gKzitqZbW4020^+T0R@H-hVHJRVaR)Uf8YBb%$(TI-k-JB zKI@Xk4uQ&EsSfWO+v9KT)3oIRR|-iNYcAJ`s96b7ODvppc|Rzk5_oTA4Gsz@;D=sr zR`kY~oDwhOtrPoj9X z&IgLheE!NgG{A_-e0@dl+5QM}V%4-I-3_e|6O*Rt(mcosWxt=!&)**-JQQd+$Ebwu zza}5!I!)GlOaC$&QayDWCsUJ7z{ZJ7#;zASHDcxX`Q#Q2UFteYB@yI)Xa6-kzR`hx zyb_#xr(;#XfHS5lT~zAqR}sPhf0$-}6k&BpCv`K|?d_wxzf%%D@W6bh{BRMNxz+DZ z*K2MUm$_YuC;1J*@dor;R83p$t}FOj2Ulv6*MJ7!Mp(LcN&kYH%&;|ZwKgt6YHRn4}~q<j@_! zVPJ^W$`n^aw#|0mc$w^&P^g*=tYaN(g7;af?#KdM1l2#=<4 zf>i3Pk&x!JA{oTMrFyui0g<3wpFbIl1j|C+x7HHv!XTckCF@ z1aX5Aw*yI12j#Z*yB|UWwwOE9G%tdEEJ;2r47YN|6(m`|(uD2RZJhzHzlx%wD#N`GqAffS{Rs;j zTkl6sYCHeKc`==#xTvU}a^srOW_SA{c*0Q4k429qKhBM_@rj8Ih3r2&lijCxwZoeF zuYIDw*U;r{wg*gQt}a)aezZf*?69HCI>l z>m`+`8Xa2&j%-UK1C>}Bd*`NMNwDkuW~+G}X{nwS$@_^5P0)++_-dyXPtPn#bFFs6 z#q#f*wF#~#F-^GG*ou48BddKxUn5F+rVhW}`-TtgEe-K$Dcn#$)>pzjg~7=ZFIhhBXF9aDm)9!J4mbOoM6=A!j{l&3 zN#099g=?t4{lfY=%k1b%{zv6W+w!EkGHRcz#Xqe+WSk9!d) zoj~udScSN|TvF+P+^w^&?Q=bQ){E$Pi1oie%~E~+8pHLRx*9HEgd*xo?nze3~2C_Qx%tH0>m|H9Y<1X;sHP)nsqsmo@sr{JO1etb5w@m1uM8-+i=1mi~OH^)F5hB#-W@On%6Wrg(Pu)&jf5_%J97ty{V~yeYsaV8_&y< z&%OK?1ApU}?%QL@vE~Lj+^{lnZKoIGoko8p)bmQWrW;jjCiY@R8UoihR~7Q2^5bNy zeD(~BA%YMm)(bpUDBu`j%QnP87-@@@vYs-?V(;GxOSb>UKCkQ$m@Q`4uoc0)TEk62Ymee!6H?HIjydd){Bln6)0sGJ&#_v@}2uPh|JE$z8Y zi|cyk?eWxcPh2*xAapZVn1|pFwq3;3pU*0c9lIqVk{>ab)(6#ejkFhNb-MbqN{yA$Ii_d>@p+s-o@| zP!k+-|F1;v>TCk^%L8GyzP`?d+WuCy#_J`@8686$4)0=emA-)%Y(`zL!w4v^XA89q zc7Nw5O;o2Zf<2G%PETK=dntu_6uq8lMN%l%f9aR&}u(f7wH+- z)8xUJ4@6P$gG#^dZ$g)F@rGl4Se#J*Rif<&AGKPP#DTcE)p{7Ch{BO)o7#Rp zpGR)J!#Gz18mc_$MiX&|_-`Fi}ycu|JL8BM_ zb3f@>w`e`)o1c6>?y2(GO04Fd$9=NU#E7+w_TGwQMH8j()&xRdCWdUAkf_+$_=@nr z9wEp~nLNdt8k6EE(q$j4o#w6e7S4AMC&zxG&Bq$~OO2L#9wJ){Mu=igt{u30g0Rs) zRnw|!L|%GO%V$O-O9s0hO%aX=)L1d((}+C@s`nIa5z@zcG>RuF%@9*~nK+nvnHgI@ zIgNE~(~9l^Y5z|0mNqg9FF^fiDdNu=m64iIPA&>(F-m#M0#D&Zv8{hz(@FSpua=_NQe&XZBVd~9I(*;`^d zny^4J8;jdW_*e;yiDXbG{Qus-ixKt&8!F++BG{ot%zn#fHP?ucSARa~c)k`1tG8o} z62gP4ih6x`U7i|Q*ot&yLK2WHPW)*S0 zmXIDBOTVf?d08`XqkUli%Ah%9D;b^|UU$rjP z*~6a~TIYwP#0 zi%GY1`--1&DQ-N`(lp?&N9lM3RY@OFR~IvtpbOS-euz?ZPGC+>{V2Fjy_C4Pg|h>~ z298$q7H8KeT4+g*#tSzF-KV-0Hr+1T@p)pQeLs}RzXd-WzZh+LAP!Nk|NKrGWTH)| zv0d`R7xv9)5-(IXlQ_FhWQ)Y$+=JC+3#4w)p|y<~82BCDVA9}7S_ne;w0tR7dV9(_ zMOO*}-E;*%={tqoUb$p!EpTPPOY}Hf?=I#Z*=py5u=;U2!om%HMU8m{xj7IaIes52 z?XPuG3G`c%zmx|c;f`&@9kv8mpv)+)(*2ASx4lM=e>;z8&WV-DOqW;tM^@BcQS9LB}YG+fmXJnx|wVOJ>!N{F;mwlsefAs`w5^A}Yyw2Om? zww58|-#(v)=KHLFYv0@xqOOiBeSh_SfBF}CQ&SUg@KTJ14BZ$LGf>BL=|TIa`vh3) zFHuTj$_PUPfJfUrEtuepN`G;$vLn_A>}Mc(9oF9_j8D+j29ic9{yQ4} zFpmwldGc-R;jjgv4wd=4Lw)(>pIAL|xeJ}U=yJv;OHE8_W4JP98{ zRd03TlL$(y8J2DdfcdaGl(ux-s}9B_B8@-EImY+20uX z?slsbWMO}|yb;s?5du@itL{9Lzctzach|HDP!qWdd<)F-+b4 zsK=C@g8#)rCQlWj_d488fqC>Lw!Wc06Yqg=;-!NM0LhQp?x3CmemQ5L_pG+b!|(6! z#tSr#r%aqIj+VRX>HO-QF4i*?Xw({=<{O!z7w3EMH9$3nVXvpRA=mnWiS*&tX6Ty` zy2D(31+aUp)mfmBW=@(3u@pzH3evNdBsYQ@8Q+yCWv#8#?#udBvby{pF+ z(w_a|Uk<=+xiIiC@N*`r$1UeY{m8@NevxyOBiA3K+l8#XPn0@(-+pxrRsG-twC^hxk9-EL|bDvJ%qLILFXyEhM{-ewQ7C8z+L)>4Cauuh>o2b_kR2b+vw=Zb8XLUN?J}03FS@!D6G?SCY}#)h1)q2C_TznNnQvOR zvgLx=*aJw=O`F|Z)B+GIJ>lb6F*ua`@8YE=;@8UK`1Xb3izyuSy?QUUgVh9Dzsl)t zvAkp{-H^*sE(e}*QAJr+=UeHw32EopTSWWHs~3#N+YI(e_8X_ZLZlEc2!&*4>&+GeGWO?T%!Y=`YC?MMA zLsrek*l~?MZ`oC1wH&t0(6&F6@~{Vf;AuLEZQWD8FLcqE`c-ry)w5mV3(Kn)zX%hN z;o-rJqTuU(L`wLy!b23*2rj9BORKlCy1I$AKx4sAvaGjw`<>J1L=(04>p}Dwo}t>n z2eA<=<4kp4mG4zQ0-pel|}AeeLW@|5ZI6DW90n z>Tp)6OHk)U1=$0XF$=M4?Iuf=(dH~|u2szrhQm0+Y z_XaB~_Qn)9w0{448bHb5;^WpqUTF!wB6IYf*f9WCnFnGYij{$3CNBi;2NGDXZk8Tm z6~YN;up4SLbC^5fb@oOi%WGMSZ9c&=B1zsoQJozGL^2xZ^wPd>WNV(5 zaBnoTr0D?%8(7ey8zUqv>`&`t;WlhLFhj&?H3=l0Q19yMn#B#@D!)rT_R*A@MdKAe zr;aGGU+fD|t05tO9SxLtYJ1rjU1n_wG~pE~@00W-e`iY4`brh+s6T^<5Q~~r^Q-;7 zh@J5sj@BaloY~nD9~>#AlS!X`1!8S6B*Sx(Qd-kf8nfCNlD6*HNa<6f3??H zp^8cp#uS9uDRp@6*ZXj;1;Cl`bHw6QnH<&i7${#60I;M45OO6)=T=0mo^u?F|Ffb7 ztG^WFx}V+aoAGM z%b43SOQSa-OS*r!hO^I>7kaC{RHn^}r7a`#raWc)g&hk=>k&sYAw%eBgld=k4PohJ z9t)E1c47IT$3ylc>GFUW+UXaMyt9rvLM5i3Kut2L?Au0`5z|pHZ#7lR)XQ1_@BH1+ z(s-<=vVO#Z$>$mx&Zqk>baQ9yj#(1y3=8U;Yp$ocu{OkltydNn7H`^p#qMvnWHe?Z zaaY77zIlKWq`Z$hkejq5U2AedrtqGDVH=sk*Xcn-GPlG@9Gahvui`e&ro$^c?rDe^ zB#Gk`{H}H25T9YB{`4iDtZa72&#H%5uKgz%STE9)yh>ZGSqxO3qQyj@h;&m#Xgge= zYpBk*6Q;%81$NKVnNYt4pKh9{9`Qi{`q8`04SU}mDMCC~CW96vkFhQ8uu1D;C%H03 zaJ){GQAfp^WfEEM@^bMe1D^{j_3q>x<>eLH5*nd-Dn55wL05Q-W_)$ z24;SuyWcQHb5-n4r0z=bdAOlz3GopLM(t&R!Qu*tabDrieWvPc4W{uWLba8s&cSyl z(@s&;*DyJMQ8j#&9E?eQp3xu5BZ{b`U(3`NdJ-7>9#upBZ00mY-aQKKi8ZErV)sMtu|67&?BL$Cr=&TBtUssf z&_moufNx2$UVjTcntI#(y#`^fVIu9$iM&tT{;zv>2SK7w)*EWA)~MGE*p^;w%ALzU zig5UeVBPq*7e2yk+hMR{wzc+o^%PhcwN9cB1Npqq>9EKKD2?BgE_Imfm|f~1km07x zsB*Qevc3Cv3~fR}f{sm>)QuT6nlIZ;PZ$9iYCH0DiBjFkv{9TeMvvRfRl#q0;n&A7S#%jGYNjr{KM630Rd_F2N^7BUs9v+^O zGXe-+JOM;qHYDPZxa9@Lm93}e-8sDPXcTBd(k7mel9C<)w&LYDnS0`bhp>F2MvM^3 zO#Kw_6a$%2YoHLGA?r(?x9~FUZe6pNDWzq&fyxSD05A z|BU1>c1ns$r2__p9fa&gaHB1YA)jp297;(S>|YkQ9sUL+`i0~YLRxID#LB54`OX%S ze3YpdjDekk+H($9a*W_DHyYzxH$)|e1UcOI?u zn4YY6v-_SR zZ$QEMw9I{L0po1pRM2PycGZuu5UWb&LVHlfj|A~Y87ee@09DgB?!oBj4Cf~YU1tgX zp3B3m(r~tk&f#PeGHe;T*~b|1D+;U(Fic_^>WbE@I!R2RUO<|U%v9K0ix&9-%MS~3 zII6?WlzCJeqw(0&dF^?u!!<5t+-+FmDhoGJp(@1v0|Ceju*~%7wObF<)H*G-f8Xlf zr*FujAK`_^{=J=y-h(m5 zoqRY>1f@SO_?|XTS7>`NLi<5nKmeq^Ii@!kJRn=x#@pdJ}$gHac z(H;ea`?`y<%{z7Vz|>H{Rm8@8BjIs~aq}0_ROaLeP2_0F%weM^rwc+&vbI>obINsH z>JlF;n$!AlnVg>J&JS;sClQRK;?Y8IefJmC6ND*k;nrZy*V<06Uxb4 z3c1I|CzOA1nGkf@nA;xrr@Gx~8_!|}?KkWu0pNC25}OL)QrIn}))57uTNbM&!Vd*Y zWO?F$C%pCYe~=V91!7iMN?1$}g;GiT2w66t5x+0e_AwBKtyq>x3>vLm51+1=8fMAK zCivEI0hcT?;OqL5v?;C(>dQK{qdTHtC zBydf?knxBAG?l-`!^Qn1c0|y(a5OuC{Rjoso(2Gq@3d-r9>k@PyVC;*YWkjysZ4kH zcM#vEnrVUNmakcvn6&NWL2u6qn+a)ha5T9SE6s=>+du;B>Fx`S$b>KFbcq*^eUl-< z1OAEZ2=7Yd?_FiBu-))5mF&xJgH%#Z>;OemaemW?JK_ih6y`BswF`_)6$edBXB1tmrh&ohI0e)5HM2U9=vF&q==&HN!`A_*AoT}&F z=eUcs-|1%;^nSgFv7w##xSZc0&Gr)C1wG7Sx?E}d)n^u#xq8Y1zl}bR_8;Vf9%lN2dgCI?5Zng(NH05bLj(3)aE&7VmLM0$h6g9Mh<^kA;e5TF% z7?+A61BcF=!y*q*u_N-e_fYAt(o$RHMou9JxY5ia_Kb}Qt8#RF>#f)6CbO{cRDraO zm6Zh${bT7&i;o{&#k~5&wzL#v#`@dxRt=5YB=Ba%^(0k*TI zIL5D>G9MAv^BrH*7Eh~o(HfxF6?Io%i_Ns1xx_Da!vPYKjhHTpaD?kb|F9G^w7AwX zs$@ZGG3#=A@}L37_wG->}8OhB?y-5S;9^`KvbS zjple?v;Hd0)T#IPHvr{OTDS*#Di-g4O>@7~6@YmwGd=^i(>ZnA31bn^u-yq?ztLky zxsQ%~c+}c?P=;VOU{6iI7{bMSIvQkg?amp^&xBiso_?N0!~t2^btSPaF207(;(9w~LYu{2D{u(I3g$Ks5M@YzW~9sn3#+lz1ULHn0O1?yXroQW?doEUjZzuO5gX)at70F#cOm?o3fkoOb^r`-gNcavQU(LcBS&;1y zghw+Z;!McFn=jdoOkf|x@txJIh{-MbI(SToUeN3OZ8Wq4x66X$Gqi>WH0fOX_F?Ws zMg`#w#rbDrV?r=gL@b!(Te?^IK;+1lDXY{(y0|7ui}vLVB4AvtD8C5Y!^lqA;iQ#q z=T{#(3e)J@E(&$Mt9rO{`b#nW`d|OfpVWsl;`skWFZj9CZ5T}BsG*WwSj?kf z4igi8iSb6q?CqoW_~;K?ml;%KZ$q9%W_Z+m7re+`A&-BN3-IiMP{Zk- z|LrqfM0<5ETFS;oae4Wua4Y|^F|f^Wd{sUG8cmX%DHd_a`wxI(T z1`R4|@OoMr>w!9Mtivsukrsm@wFo`mk9ArzU+=E1q4Z#xyB!dfl=sUkCnG}ddFs`X zVCd=h@^WsnG$P#MV82tq_TEu~q%jZtFO zMn{`p|1LSrBLCKm!(Vm(uSTSfu71F3kYw^x%AF-G%7k+6qBh}NCnr$(@C3q=5-Rje z|Mc3PAbvDy`xNm9m+z$r6W1Gg=ir`h5^_4UhfZ@046Gpb%XJ#0j1>wye&l*fGu5OQ zLwJB*A^_~A97puS$x&1Q>2<*n9hE_Ww2FfI*$ zzQc(`9B+*fhBd!fzrRJEviwld9mYlpL(WCbi?vXm9&-mhCjUMywVO)r0hO}4WTB>F zmQa)4__RKnQO3*-(|YJzU_=DAjiv_e%*@QyMjH6Y|KZY~RI{_k06lmDt92bCst+Vw z)|F#HC22*-(SC$w>2sboJGT2s1$@Z@cS$r1HIwpN>DWUtNiDNZMbUvr_hji-Fa8w6 zsxS02lvmz+wJnXHc8k;k?-CnAaW(d)JZ*?|&?XK&NP&cA@~!-J-dumKX1{1{>_Je~ zwqdRj3qq3?b~!I3+_zi7f=uzeK7#5SiJtDkJWrT3S=inT542i8gBU<>EdcWsplytf$OP>Us+G=-D3|5?#pm${|b15nEClf3bxT`xPiBklPzlugU-ZH5v9$mf{IOs zO%kogn!h(>qf$eSd&arsafmqL!{~K&qBA^xmzGA(j2L_`3ACU6mrha6W?!yN*QG~f zEk^XnDL13C89E9kW53Jqy0_b}AN!yW!cX?o!@()KvaB|;+SpfS`Lc{^w*Atv&g1MWsct zYM5_KqSqM-C=a-UMO=)mm_y8Gu@UV6qC!aBbj|zX9#OBAXmWi$_$;|MRnY^yrq7h| z7@`Gjxu1x9-DKfGCD$1Pgy!h_*Uk2)uj>~)cn!o|m9!6#AUg-41#KFwLi1gIG`oQ*i2=8pk$&BNk zYDMLRB+5am0h|7z(@l{QOCOqoJjqxypZGZgSLChflQ_WLD~f>?Zku0+8GdMwMW2|X z{=sHG$!}^#DkDKN5%g}K^@I(#JF@s2A(gl*sj|x@#2Z(V|r5ng5{refi1&os~ho+iR(c+AqQ78Ur28r0B}3q=)%fnrt*BD-Or~)uLIE5qv^zSdlCDmt1&n5&6FY= zDLy{UkfSgA(}5u&7$2;x)POyH`^p2-2npL!CSM?}G#)4HFx&XD;%t!-(6m~S&-VJI zLRKbwFPM;QY+N2urs4d34Rr|p-`#9I>)ht)u){}2uQrmFo7v036^yUJ;LDRJ?thU03J317X#`~Hs>F7wf=Hf)wXY1Z zPdj^ymy_U~T`7>5^Fw8)(e2FRop?2+SUS=9Hnxuo<}eT0SYhUNCqDF6@~wyES*Az) zZECfMZT{pqTZ22&SRZ;|$DN(IWn6*t z_|=J;n&eLMX6yT}HY%ARD>NZ04Hxl?C614tUIMw!clSSA%k@w8(%ZjmbyEY{hMeIw zJLzL}y9KSpCHs$0pyY7C4)9jUV$xu=^{A61D{q(5g zAg5}^ji&;eFfN`njNXSp)>faFkEMI0bN%D{ipXo{0{xJp^Y(%>6%(tUtr{;Eh#mM# zmQuVf3y(qou}@nOB)t?;s7n6y=aTMJJWY`YQ)f6FM%0IF60Pwei*>vvogrehWy`V@ zpFYJ*UC)s4;4cKc zd5`ie7G|1RePNTi3E-dZOW`%D@_&HrFSHni9KZ2~F*2kw3xebKN|gRy zuaxT@qXLtxHMG1wRifq&Af7iJHT4yi>?d*QwEhC(c`5HqV%wPw%M@kew@>3b_ugu*%8~O4_h)1+#%nf?yMnZt+c+s zu8}yu3Q1O)wxCHTzR~0nA4KzN(kd31rX7Jai>{uYl6zLJ@3R^ed97Th${?rwCxSuC z6%C7trKq<~HW*pMCuaXp9y@DAhb-KO*j%i4U9%Y@zpkD{);0UV8NO9t)8l70Vaw%M zRHwUON;uJ!?Un&PSSE8k7`#2pV@RN%k-q}2)@ZvIl1%hi(76WcoM=v@g_ z?>%=?xnR{t8Ta!cE`GW=B>-R)lGjYCT=dCS))@KvdS)z+-=77C+tYj-C&6{CR_bAS z*dY^&kdlDUW|uuz+NGJaNbUPKS|%0Rmz-pYK6h{9-Tu06Nn$tcuIaZ@-TB|T8`?2B zgEg0bsd)zPE1N9Dn0;d2e<%9COl$F$kH?Ef{qZL&I!gri1~y~BA%iRhXD#K zH;dcxfEggiFiJLh8JKliS~<#v%LN%9#;)uGdXc!e$KgIHk|TB~rih7Q?++(C`(Xbt z)RvaT696Eeok|aZ(FOy61+u^?XKMEsqQ0$TgMA0syg~zB_-3)+;*&Zi&%Btm-bE$A zFQ+l5Saubjd`+@^$K474{Ab5_nKC=&&)&Zl89;slN$QcO1F^%INFBg`?a2fnHq7L- zln935%+n(0^L4p=Q>nP1q8an)c8bDMJauj-zXgtQrt3!}hN}#hV->XSvOA-e!eLI( zq2aSHQ3SJ5UHQlA)0Son%b!Zo^Wwnk-}DA&xvV`;^j``)v!^saw(*u5woJsD^iR!( z^P_z;HtjzO)r)J&J+SvN3&-TE&;yZ=Xxs6Zap@QK0?$RPoJ)?I2SBB)toQH z5S+5AC&H?{Nx@S|S+DF*-HSX|K+x$ zTk;+xCmr?=er|rlc7b2ON%F83C-XQ8ny>{X6gkajOrnYYrZn@EQ%7(9tnG{d{PFT9 zfE|I81pPu8-{^47U`rM95#{#ocGO{1^|je4p?4gVtsqYp^jc$~*n5(#bc6@vB}Oed zM;N(@(z`f@8``3{<+rOAlCRrh6LaN<|MJuwmXYT@g`CUEMzn9%*-YOrm$(W7s-N5T z7$pRCR%B#i&|XUUV3wVq*mq4C3JrGpJ5#8aSBudA%j{lp&ssM8!wnc+4K-X!9NV20 zwN06k*00pzOqF-fe5%b%Qt(a@cFkIgFTV^=e(^V&E3Ica^Zyr;6MRFBmY(tyfSuUN z0&iHAMIt5sxNaBQ1y4BpZ47$!8+6OFH4y!l16UIO%KE9 zZ})=yNK$3dTLs?q?L;=u#0pdVk~ZXj%v*dAJ}zhXvRRBBsqP6QV^ElU5-MAPUG+)( z_b{*O^gTL1-E45se35JcRAdUR>OF(BNMQL#5RpjAxiQSltU)V+4(BZR2~m~%o}ur> zj7_62vihBh?*8lHX+i$@e=kJ*yMiziiUf9F(Ur%qP`|tp7t{ih--=mGz`hor(v%%!vVQPJ{)>i>)rR? z_|}Ss8oX?jnwGb`LpI-%%w{#Dn*?GJx%uUJfh72+pSvf|(rS4%3|Eu-l$Fz2uKN7b zru-w!0X&es+PlY1o5SHhE^Et^WDk@6xPheA?uYY}SoW={M&@OhjGz<0*^obp?TzxD z+9?!qu!itD7%k|1dgeBjv~I%Nm&Dj{#ePQp0+YnS@)InF1$hWA*p0y}gM=Xv}t)rYzmU(i(fCvwdtV@aqrWXk9T}lZK@*!`%0boBHXI2w3)@};! zCKJ3}(*}t8!TA|h7l2uXqi!F0(@Zx%n&_!VC&0{%I#=(IBt=P~=t3nd?!KV!WW*Q{Z9W~0g(kk_MnQ!;4F z1q%fqBm@9oE>fQ`uvZSD@@fnI?a&?Dd=kju#&tto_7ni!ERZpcZL&&9bMGNNPNBo83fe`#OVie~agB(Wn7U8_u`-j_0%C(w zfB&*`a^iJWmU(1^VJVOWcwOrizD_v00}QKb;GvbXkzDjouQYji6EZVnT(?Hl9=@r- zsv$4ckIXZoX|hqkng$s7EcT8tVygK%`!sC)&#kX;@P#*;9fs!5~GqlI&zvPI^o_P7Qrj<3^8{gxEb-e>#&F3NS+%>s+7Mu=QyCxeN_9E8f!S1TxxxReSO7d zx84mV-%#jb75X&A5^ZuDNl^{^!_FhJv}Y8c^D)eT+g4WMZjS?)Dt?K5H^nLUz{Du@ zJM!Y=9#D~U6n^vc50~2ZpK}5!6_dXZY(fGR&$4=K+!g6xrRqU3)vgEwGyYk|P%n_q zPYJ_mX^p8+CFLmoP+N*=B{AE}s_fcEVob4_YJno@)L##{gmJQpZnPyw3e`?O$IRbp zjD4y%`If=zZSod3@q*3{>dX4B!vcD{8sz)ymGga!3zaw>os!$@C$G)g40D-+dsuec zovQywkeluAUb@{+p5vk-6lFPqoxR_??|;RBS4aBTlGDkp z52T#f;-F@pVaIwgS#MGFFZ_XVP>HPbX_pKQp=TvPH;hYhMgux~(y;>JQgmU}?Hw}B z1Pou*$`&bJ%?2zJlWghc`k0C2mGXzp`VQb=&3HOAC8)D%zyN z`v>+kxF3jx$7kL3elh#7N99KU9M|-kK*?4yU(~YHxf<7H3kJ|rO!Wx`T;vrI>Lz<`Gb6bii@7I)tAa6;M6ay zcz*~Oy&uIu>AN$%{KCRNuap;k6gXhd2H-#-Z|H}Z-pQHTHIQK9Q|#b3^ScN|o|U_U zn59b*H8d!H_k}LAcy2!B0pSRKYLenrP%vs4&i+!z5=C2QTv8=n*po=c)%&#~4SsHs z!rQ9<#QdYz82CZ3VSh724o9e1ShC+7-~ftD9!S!xYdH;(BEyZ_Njc^(SP8|_E8V}O z5hGctnAI=w=FKFFORv2CqS))Fp%MB)Hw1RX1iyq_z+LFadi+lJaegeckq|kWP3B?) ziGwK8=wqf&6Bfq z89;;D+<~WTy9R3zphj*9{e!OD;5QVBJOJhcxk|IPPivJ9zg&KZIL;HJO4EpO?b;My zitMsDbZ10e;!xBANk0;pKu@t4?`XZN2o7BDF*COu`2UzX%dn{4sNG9QNp}fIN~3gl zDh%C%fJk@OP|{t3bUJhhNP~cMclXfU4h(QM|MxxTI-j}tFngYP_FC({@83e(dvmw! zO0q51GXh1XfBH@2F`9$YrV_c%KbE=B>Z8qS>T}fzxF6p+PTI;eKyG3fCA8-p^e&@i z>JKmxM*4q-I84Qzwo6|+PX#z0LnSlkFR)IG+lqxr6)t{2PTOaPJti;qcf4_E1W z&EOYv<97XfEDp`2C3Sc%N70r7{(Cx^t4#<$tQvR|jg4ae7tREraY!bPg{(*Et;z=# zXc#KSa^$*xyEXoBmEyD-*(-3qq7cRcv}$&g(A;<~QNuN~={b8KH;WEbF=R~sFe(r? zHy{eBtt!xWG)pu9Y1C12O%E+J9!iAo3PWB&m#7|F|GuA|0cz93w(5q9c}O(eqdl7J z=V+@d{->QH9rOarc%h3O?zybNYc?kNN!#MZ77fhaJ*KChlVWa23Ri%xiTsmves_P# zAvqgsdorIO?W+Vk!p=Ux%{?`h$z7)@!{AEn^re=+{Y->lG^82w_peM2!8*6h?V`tV z1p1J1-}wF|9&v@tE%{@WGv{YAS*Rq7fWvYp=y`L zf8wnGj!Jvd@3~)EY2%X=djlO=iQ!30U|fXmL@9Q}2xhteG(9aFJbp*yAgONG5I^pL z2AU^D#!>hkH~#O30LTvj-_DcRK4IxV*CfPU`KoWpYSpd~X_M%L+ z_V<Ton)Ae(skyz?ccRrwEu-2q(*r`K{L+xvn07tjesd4Jpa$d zgZd~6ubrBTisQ}wbJ8E6RQ$ah&6(i^<@gm20-&=J2FKme*YDg_kK&514V#P=6(dOb z9|3H&DUh+qm;Zy40Qz<`<$Oy0!d|K6iXy0lvpo#F1pz>7nyf1Ye1#`QJ3zoG5arEh z+*jc4_x47;z~C9knTtWWkISX#5bfEwXL476mq*1o`hm6dQhnx!Wj9A`=jtKT>T}}F z?5_xosVj^Yx>mZ`M#oY_51z45uLdkiwz3%$sXw#UmwRn81m#V#nC4*q5O4EI0svY6 z9~TP5*=M8DHmzYXq}0jsl74?i5iEEY`y)RAj?j%qNTs#~=6xD4V-6WPba_wRwWyHo zD|@lh);#k-h!_(RpmM=%?R*cndd49Ej+n|_uI8puE3=q9>|0(17r^_{6FeeLKaA2; zF+w-G_U`Wk;7m(Q8eMh|JxN+`nTm3t!e08a_AhK7d3fsCPappPSh0hdQR`=#8aO*m zmoxl+zMu}dnwJB-VB1DF6PUe##f;`j`F&18LZEU6-v$6`yktiZ>s+D^la*MW-78Yc3 ztiZuY43TC(EQ?!PJXYwGJkAw9Lwi!H1NO`_&SvfLhW{C7Gchs2t1o*TA^bE#c|{HW zCy9J}vf9Qv*Cg#Yw(ys{7dwxadc5j8&{3<4OEg6#{d25u&x0Mw|RW1~j>=+=@6%y-*0vP5f zs5W~|T}MLI33!K_#&xZ>c;|tvx?g(~kVeN@|NGq`p)$!=*|W;3>pBFALmhQKw1(T= zA$jo=^!!p44*s${IapwoQ7HF5so4v2)ZW7Lui}AT zST^k6*G|#nd!1{9I;H{ozvaA7&noJCvs+m*#AcAoO*($8f64;fo&Z^EaonJ7mi%~s_iA2IC=IG=jAT_mo^ zlB~wMtQVPS_o7)1GO_%7BvMm@r*b>M#voIU_Kp!LTG%7zh+R?4<$}3YK5NA zEE*q|@GGlQa?8cyd}A>|Vsr@P#-5-A_)kx3EeZ^ThBvDEn&CjFx7mL;R_KdbB;i{G zjZat`P2C5K>CZ~N+ANbG-)`QV+&8k-QT@wdS&)i~J#nX?OSV`H(X+d1+|T=lY|z*M z5dHgG+VZ+}4SC71on2gN06r)ljfmGpVGNXC`ygnExVeBLVos4D*t7}4T(%~AI+276 zY_i=`E<<^?r_SMxufEe(jS+eP)&Z|JQKiNmOH10vY71xZ)}{2#xk*s$f8-vJH)ptu z$%?e9g6m1eJ`^GUn6a9{H=`1Sn6^&rwkI?nnKkhCxBgTe`{fW_?zm8`j>_|Q~gQf-slwX5-0%;r4542DdvN$?@>_0HumNLKytF0;)mV3P~Af zm0$ZekXF5^to$hlfVN1JoU`_iN&z9`_{L+vg$2MtW<1`N9s&uQkQXVUr^cdjTjKug zZekxIqhw~LNccX4lH>&Wxaz9Rur59~IGu{Chq{`p~*_#99 zHjHQyztFj`kdQpUWSa0Df%wYrQw?89>q3xeOl+z3Vs1 zT&PFDIbBW`t^E!$aQMEFk;Xe!Y)j4wetgg5ClBhn(s_)o43^hU@XZ+fSDVGNQ&V0@ z>J>*#3n=Ky3KPD?CGH|EjN2YNPVzu(5bzU7sjf&}UGJ7BruaD5Cb&Ie17bnQ)}fg7 zZMjI)OY`!;mf8W3A|6TQU)4vauX=>X28Bh=e?cpqPl z)Yqc5DIYt;zOa3N2q>`sFBg&FId~CJ-3htQYe<`&{dJetd5Q z-PgEI!9y=6mZ%bIyMG3qY2UWzQM=yz`fqIk;~w^HR}Q{B zTZ*@g;whS8F@NO)pw349P~XtMUz9r|e~*0rJ}L8i>c&O|s{+iA0-y+#v&6lXd!g*N zdcJXVn;!e(HQGy1PPh@_%nE}kBqCqvZ_OrkKy|S;zBM&DUWv}=RIhn->|rKt?ngg{ zPKb$AZLn_7J=F?__T-Z#7uTKrhfJV#$pz$4wr-vH?gJY0=1ycZhZ*7uVOKc?8G1PB zfrCSTovx~pcIa|nTznGjg?SOfouD^)e*L5!y>ZDQKeR+`4rqe05Lf})oYTX!3FXQ^ zq7x&f*#lc|uNV`$zghknLpu{&$K#P!=}2@>a7Yfg3y4lc09;IpA9lY>CMo!K_mk$i zLH>Zlhg2LaBII^JALK342Y3R(t!#aL(=UH=0U=3^!TkyHV>d)!?_x3W%ulG;eT69w z5#w0m#W5_J)61_E>Z@?iXpu2Db&T|Bvl+e*wKzKRJMV97|1{1IPqvv$`l;C((mYpt z+kc*RbCEOdw`che)zYokh6$#>%9(}p%(MbHvYmBO3#rAHSdb}OO|^!6d_WQY)4!V< zMZyn|6DdxvS1CxdjS`0@@s|ZXFv7raO{G6DMJz9j&8AzuFU@ix9K{RMmz+Mb;{Fjw zE{4{+2B}xR9}a?I6Kci^^8)k7J03>m@S3*FDm>n9R2C2og(ouK(vh{47r_t3PTav!P;sj^#*_{F7;mzZQ zHM!H(wlc5g*CQy#qlEJx6czDkTYwD+gnpJ=#{bs~Kt#k_vYuU=Vmdkn5TWovV%@h^ z%7y@)odCV%Kvk^h3J2xiY)tYkwMPV^UM zz(bw$3o>Aa)D5EJt8K|8aw3RCPrnoSSLr(0wo7{dZ885I`npKCcQ_QSJB^`PJeGyB zpVVfSu%>=w+(*7Sf`^N%S!xi&dfsLqh4Fv+Ub@d*zmrco2loGSAB~sSEeX`_S^%jd zA`rE?NRrRgmn2o++0kG6__#{3P{@ZS;`DkTyc=#`nQ#gB0%mAt1>u>^rR1RYjIFv)ooF0KykYCPWK@C0#%1ircNi=!qfK)bxoSe#sq-_G}| zW48qK`_K{n=meMVZ+?Ej(Gse9lUr&-glI4GCo|_^{f>d&{s|#9_BiRi2JIkYhQVzD z#+Ki{^65MNuH)YZKNP`Z8^GD$^x1o7%Z3;vZO8=M_i!@3Z1}~*%)vH(_j68ut{*2N zuG6>f>@?j|({8AMV^uGXlG#PA(w1gbTXhr-yv38SqT_;Q4p8MRRuy|4t1GpZJD&tFk(#) z``mO4cECQo*(9*W%G{wClR1R$ zclHZq>0HW(X>#1rjgc)vAi&i&&Nq?|sY>;31DrXTi;r|vg+?>&Ap4umDAg3jx{r7d zcU4j`P#aov(Xbw~!E}!amwy7tq2Fd>pil4^pi8_nPrlvuPk`#A(A91S%>DhASrod2 zGc^IL|HamlF%QXX(Qm8#{We%%1Qz-=M~SP!rP+p^D3?e?W;a!L zFR)$5W84Pn2|TkVm5bB02@#l2Lw;j%By{S-YjV7h>S9Z~c3Ws_kjtXU&V1#CjRk27 z9sZgg#m?H2#&$Z!2-#NQyn)Gy2HxB0_62%aiqysa!0F-FM35QjZ8V|m7ZqSq@guvF z2jt+2Ib&|rx@qYB$dFzjB}1}B@;^AS!pbUzcAeqYgF>m?ugEfcjC4S^X^)rka1?#t zyuHlbHW#}yLDK@ypgMkLiAlM}{PN=Uf{fhKCUp2ei2?lHXwLS3h&ol1Hpu6jKFt<= znGg^T*wGW^ zv#+-_i`#`s!hyRscNNVNQ9WNID=FqVLvA_*ER@^MR3_EdY+rFCMb2SaEH@u<&k<{l z%WtKO;c0&N`VZF1b)-R>qS(vZpXJ^ZZF0(l^-kT6@aXf#&`dahs7>@$#!b836LS0p zqJ#keK$X`W=ugi=~E_U$v-vyv7`=Dwo*>2is=D z(LA6~jryEyZ)wj{xD_RA-vxcC0U6o4%SUPKXUX?~;E>XhxHq{gO{bp$Nfp0MUip_S zix7T0&$oNet@ICjT2-y)h1+NFz5fSW30bd3tH8`H^I}=_x#?hka=EIEM6z1lF3`W# zLe{;kqrquNR9TQ%N&lf32Ybu%;`a(Q>G-4{fq;bn=Kc-Vimy&H|7k~Hzh}?(jKX8QT3V|$ zyLU|bxAp2X??gD_pD_>%^EY`}vwuenr0;yty9}1*s2o0eM*p>}h&Be+&!)qVVirgq zR@Db9DQ`I#H;z_woKDp-fCwE=zH;K)+zP$%ha5b7-Ad7n)Y!++F#am*eS+U@A$PHS zokzl!`7C#d_p`r0HGg0+g%}~>;^Q&66xz91r_m+lReVjXvJs#Ep2JvOq5!@e`E3pK zEAJ8Ex?fh?LXr&HB`?~K)q~ThUwL?aG(1rd1@R!?re%!!UI7H=D$hsQuH-KRgZZY3 zOi#ybu^yl)3IyB}Xb}++tCIRQf1*gwaNN+EJx)2)u%2gzK;)Dn8RF0z>6x0GtYH10 z1GWU~qZ{sw4L>Q~K@(=C(O0ySnv>(RA5mQH`>f#+hi}|$XP%Kx0DuTn{HwxQjk56; zK({wi`k=97zh{!{RbbL+c8WlHzO3$rQ=R4FfAl9Q+K2D7hN)wWJW|@s(18)Qf)e)^ znqo8Ib48CFBD;s^RatVVL$FFWP(?rB5cBV487=_wl&L=)-`iHPyZYo=o0jGp)~=nU zaGxW4kVe6``SU^!e>ZYceOXB?;&~Clu?s|vHU({7k6m-Af50P-sl&SdjEs$=Um9@d zs_$lzzc3|qfi#27*hYyRK~CEJ@9Syb@=&VTEz$A3#{eS)#-fWkIVn9ak$A~Q%`0Op z8$j_R2m*54?{^TWxd!62t)=MH1EHlQVg}dpsfFK7?l85Co17U|eNIKM4(CA0H=hJa z69KQvGe7IOq&{A15Y-2UTWR4h`&0}8ct}8r1|(7^2PGcB7DgiE=4IPR2RLl?#{2_@ z<$&moh12&@!+fW=LgN&HwvqqyCfm0L=eCO=?&W6}7)D?yohn1)Ed@SUFATMz@?c}Y zULk982J*n>?H04}fy=em*URI<|7P`4wDM4h+7D82E5#FpEP+dd?jF=u{6RCX+ zXTa^ECC(x7=?(QIGxddJ)2JVqqsDgVyDU+e20nwjDd!6x$v0>LFD8br+;i%01cMR6 z-~SnYf#jHlj1nSfe(C|((mKjo4=3lSw>A@S1is|Vb;!n-5{WL>v~>$4cDNJVwBGsW zSuat|*PVH%(7x+T60mE0Ok>KKWcmHtmuLy+f$&F2kJ60jXxP|pSoeNU@d{Q$Um0K~ zePQ{SHo{21z^3rwgOt)QEIAGMQh`S**Ok|brI zwEu%^rhsD4!`+<^Ai@n!VENph$jZvT1k&WRy%wbw2`{L<&Y!l#AA^VX&wJ@4+hEP> z+3bR3Hn*Z7S>kuXY-QzvJzq0KeC-$mwp}D8aKm3Af;(_lM)(~!E^i%SOJkZ=Ivjb# zej~P(26jBOyrRLf1N}>ShHbGC4?Ub~^4$qIAyD~ur5p7Au=JSuhrzYlGm@}ZhYaoc zG_Yi|)~yhJX?pQVUNFa}3mD=awQH`!AB2`Eq?Q$QNcVur1!0~_=oRz}>#th%nsOQf zJv}R~5rT=``q?eHDHt_RqCYlOgUzbKqv2Vy4L&Kt8yLEXz$A|(4GLPkxqDql7{4IX z+LP#=&}n?@t5jAcs5HqkU7+Zo_|vZcqXlDKLga{AM+qk7cIwlCPDdB;8)#~Yl5}+V z>68}}V5A+dPSTHd@oy`RTg7I!JR*HB=>>Jk;q(78iNVjL=a1bvYEr|6P&8*FrqeD5 zwLkYoiFe=0=Sb^gr;KEXpALQ8V#s-gh{KC$cxaG7f*~z-{rHr-y=m2$iCyGLZT>~? z?Z-7!NxfrlTb~mw&AC$x#KpPQ$S7lQKxmcNmpA(7&@ns4gCN7Y%I`DNCbvWWaav2a zwI_<2^f_JEQ?{cr9NoGL8@=3d+HxE-EVec)`4wS6PWoMn;x-fIE<9MvlLZjx6x; z>9*rZbQM^?Raajhf=QpS?65jI(KX9POrhZw5A7UGf^{7F!`%}d_(s^HYPcu`KVGvgyp%QMcfXwCd_&jZXyhzp!7b-pNpn_BCvo~c z@BY?tBkI-@YcsJ@zdqHnHMG3Xgs00?S!(9{r_4F!E=PJ5BD8-CNu2cJcMBvKbEvAn ztg+l5_bhbVF4YRZZnNPhR^bl{{+c-HT=D59t!Xg<#(C$S8?KG(?t&XmO^wr}cz(45 z(dM#V#icBAD()<=&R?296%^e5rtLA|4#e#UlRelb34aU=@Vqbwqag-KkRmF*nK^XN z--n~a&rYf)COyAPGg%QNhw}!zb&AqfJeOr)fRFCd)VP3l!pqOU<AS^(7Fk9quDPPVb03k9q zcnVU$X2tJBex;_oKWEzF3p=c3dO|t}?zZ6GYV7>tU!l^6HXfp}b(y{u-{vTRg%+Jj zAUrx~{jDeb3^jcEo{MMGbVIcAA?5{KOk7S*?wyE0SC@xo<)|fJLE~H0Lz_vp?A_pj z7xNEf)%V;RFSYFTn(4(OOK4LW@ewx%K!p?WzyCW<#N305^bTSVs>h#;3J>Deq<0-H zR-!<5OVuVwsUtpsGm;K}d8%TJBlXo9_?~??nOYo7d9_B^-jQ4}wIP%9_jb0*IBqw` zKU?%ZB_*Z2m3m*YH=csuex1JqhDG2v$wzY(4rdzdlrlg;`h^iGkmCXzCc3iE;N%|! zFOjUmXyVV%ELRmf=7NP&$DH)4mv;SMFblhgfeCpJ7or?gv*D#9E!CGr9n!F7b_Jym z7LPsjPnGd--QfhsMB_$NqE{4^EBEx1ml!jo^p=fcc)np%!P$>^m{=|Aw>DC7$t+U( zxVE1$E(~4gvq)c)g{kJD121GOfZ^m$iICpC@_8RfFhj~50@34o%EEXd5>Jz)4k=KzrTDd;PubL z&_6}ffM6t}3Rt+4yUaZ%5^Vf5_q%|SVv!BB9^2&Leq!45I4BQX<8cF#+vfY8U>g!D z)|P-w37n%I#b9(R)a7bb;mDM74cM70Dam-H-7r6Zo`XCTv027uzdp2sB#PQ1T_l)32<_z<9!)5bV z({b_j*>Dm@0j5$znS$*Y@n2Uix#9G7RtsvD&la3e= zaZid75|z&F+zU&39)f}pmPo$Cyt`x{5DZG+*Z^=eZ#EC}9SI!7&rb^q3jQ6{j-^3? zZRQc|w-NeVq8PSQ@<3)4&MHb)LfJ$Y^ku7G+aRh zL4qT0YQ!Hg{IcxWjEK*?c5aL&q`I+C2!@HdS@@>S?&H9{>6D7h`)>wiS?;7R%-%<{ zQ07Q|L-+zE`E}E|12K{Udoe^aYAE7C!JoR&IkLqY>WAv2ZJ5Lhc(2b|7Pw{ zFRQS-8sFRTAbTm7d@||IYc`lq@FTWbMJVlzQv0$|es9I&dD9*Ih5bDZ3Jiu54_~vQ zUn3Gvtct;l;Y`7`wG)YPSOdROCQ&JM$}%fdw*8v5Y)*+de1-J3Vx?d0L)q^W69+M2 zo1ZL#%=E^L2{dPpZzQyrI`41i%bXu;ZyldT+5f#Y7DaHr+&7mkOm-fOh*sx#j3i=B zwvf{R=bWrvEsT%jwm;t4_ySCYz2oC;8v@2*-)xA!=RdKKgQ`z0!~iG?$g>Np8X1jl z+(WOK=+MaI-`-}2i-zp+^YCzekAM_AY>w!Gy#PI!ATcDbC`hmM#) zgG&p;79RDx;fQ_M?|3)9Qc~*a*!Z{{J><<3$1eEN#$7!2PTC>ga)zAUTpo|(4J;vA z^~-K?rq3V}9}NRHh0U#4pxxL5sccF;n<{?^lM{lXSbg8&WkFE|YC}fLx^p7G$RB3P zI&d00<9xZcE*tbE)+O|^Be+`kWB<@^QyUl!6?1z4#*kZD8wbsLFl$^$IC@7P%q=_bEGqZy zV?Ig%?bjf%D*BL}%tgbow7$yfbULYZEv0u~;;aJOdpHV1gnt={is9tL&6BoqnHv7k=G2`>Hg9qA(!opo@^ z__r+?L<)C2*7-Z_h@31Q4<0DLoozfvNr|fCyIM@1bz-qsE0fu&9>`73> zdnm}Mj16>G3L?m^iKp)KPB&W~jz?Kfy{aI72YsYRO9ioQDGG_xAmFyoe;fy?sv5nl zb^Ca2r~t;?MN0Bz_-C%H(ghT=)rUnn1$FL7b4eDo0tqkJ2nXiUrRY0K>M0u1Pdc}p zU35j&_zV(>V1fg0SrT#HR$d-ar1Z$FyAWN<}z+^XzM!AjfnRf`6Bx{q9!`c zdf;04jj_E>1QDgR+Sl=AnPR=-1VpVHoGHDc4)QPpVFy(BC2>R%doP77& zErmHHfgXhSO+~<0Clm1p9uE(uY}cRA@)<48SSb*E4(*;!5=Xm6CvdKz}?{s7R{OHxZb}$(FVTlc5R;W+zQp zE(x^A^w3)TcU5E5HuLN1&b$P@EU3$S^u!Gr{m;03Ij`l!(Jv-;!Hq#BA1}sW*+xS2 zIo;PQmR15W4o_#smhGMxKyfaMW_B=O5zbrF-Gph2S*fPRRLata6!vpz$V^!!RHycVmMnU$;5>nE+!^feFlj7Qv~wzfeZcC6O5Prc&0k9eR~AA|2-WC^#dWDG*X`9Z<#%1&tjPEVnM36kFN9;q+1CTHcoWI zBqv*)SgFmznJ4nEbweY{Sznva`c}1gkK%2megR*a^K)S?Ma#uu_%!9QkVKu~=%*z% zmYy7)o`qWdFb-1t)vPkL6Yu!o`4I(s0a$bJ%Cu)udH!kVDWAf&-ApdtZb)kE>ryYhu>BsuoGS=rgRgp5X3JM~1Tjl+x6g-pqXgau>k}qi)MxxoY5x z%>IFpt^c`2@oIa{(1!$S-RbKsE~5Hdu9c?7Uno9C52$>Nj78?aq1&20B2#Qvql4Al zLNzD`#@D8}zb%cd?443bjGqQGFu$ZIjq!AQAhI2`l}Mb!uC7g2I>5`D>6(f-vsu-R zd?6u`z|pbrZFHR_(~Vjt%0U!PL+28mPfa4_83!vKtiSOR-D`A0-xa%OeTs!is(h1p zQ8{5Uk9r4mZ@pgWW{<7t{F<8ya`Z)oHK@z!nL_*XczKLWX=a`;Zt}qYmd&hkh|6Ml znfJmzxQTr(Rz;DEb4i~1yb`O1+#mkeL4<~xJ&QG9ymns@XZW>p**7J!SnQkb)0v!# zZ=BNEzSwglAaLt$^s+Io?lju?5Tv6vMk{X2A58jidvfuC6;I|LF>iHL;dzo3IlbwW zTSCS1=6hS;3)ymis37#ax~T03T0WgcdZ30NM-&>^#rN(L>$^RL`!~+{27hP(3_`S8 zwPCESg$8meRD2>%Xc;-)Kh|D-t(8rHOT6$qu4w!>6Q(ZZaDyxEDXU;29=@FDeADjW zdFAzmkWiW9vHlNz&Q5msM(@gvk*n*KV}JX?_ir&;2(7;!-}4n2OC|Qj<{Eq1KA;f5 z$HOTSz>F|3X^>b96iGVN*YNiAuiKak=F1DbzphjZdO_`~^u~0hSAJys9dRc+6r}ry zYB3gbmz3?fNv>H66=R2TyA@@PemkTn%|f`jiJ_Od4+R9ii`;~jh9L*XsPQ_@>h+0E zbIpo(?u-PK-O`pV&Q$CqDyD@Usj{d2!l3;?%^ow@;)tzkVKPlfQge1R+Lg+ol}+by zZJ*x!;-Nb$9e$9mb`ANAFg8uYmzVukc=Tq8U`q^`{XH5)nI}seq3j z*W$Il3Q$ApfxDrulIt7Ne~#;F(bj&%J$^f6Y7ZQGSK8*fh5PgRtdsSfV#@aa^#X{- z;v@War@&HBQI;QxmG?B$Q?JdQG1?{H$1_iYIzLYg2@zH$C^jw|J*V!wjs1g#bvPU! z9e_FKIZjHKG!<_tS=;sxonEhoZ%}z51-xuX#3|m%zF?DX%PF(1=s$7{R_o92LF#f2 zfr?_+gVboBJ?8_n?~&jXC(XBzKqA(P?j=2+~w(!~X;*0*y|hPJP@ocEslV+JSGs(y!-l;Bjgd5hKMtdjC}tw#b^fED0!!|FZAa zZyUYtNHYt%S)zH_Jlt*`R5LslNtqxPjw^f0ptk638~(2E>7$qxRc$XxI_?xiV6~_o ziL5-WiY9B;vOT@W^Vh)G)*^`|QzSk$=LLPvSK~j_0ZYe$L;D*r?e7a=Z7=&&ZQ5Rx zjSWzaz2d$@l!b30$%d<$lYO4gh`Mjzc0_)^9zrxKA!Mi^OEZgX{Lbzs^IpWBCr3Px zAk05(_JhTSd(*T9g1A!Y+=Wo1_dP=4Hql38F*^>k%9tM<|M*f3K6=OOY%_9R$0V(- z|MlsR?Hgeg;R9Fxde;!1t*{6g6ergMby?TuIbW(A`R?z&ty;>ry89TeiH7oSdMf0D zym;qAM_X|Ajdqdj#^sw1+Ys&MTe2_2gfYOrlMRhip;C1TtLj2Ki4<8~I+pbboo1< zX>tN00FL;#HISb)J|QD6JuA-ip&F;0aBViyfgBxYLQav^4 z@#*%(tg9#)1<=R=Z;51XH4YMFs;|gFX98J!tzJKjt>-|#SbhER7j@%9irA8$v+-0n z+~f+se#!efw>9s4rbSq#PH}6cWw+aubs_M4^SnS{Sz25hGARZ$0O~8Zx)2e~34Hri z%BlOV&oW<)5UkztCj1eGSZv-cFZIxOBq)GA!s6j*q1MeBuI$L0U_IDS_4N;(>izxH z1TEdJQyX*F357FF`lrioN5Nx}uS%c9#kzd9?(()jX;`)T4vE?-iU!SmudVj{#KM>( zj`PRj*LrLf@#}1BsNRY5`7gO$y1gqMS~Mb2Isd4k1T=c%L*2Tyfs!+)m_#Q3XlPu> z;aDn@zsLZ;fm>LhQmIb5W+$^kJBe2jD;L1eU#24?<&_TQ1An}rPytC@_!Y1I=9IZ$ z-d3#zM+bjMfOq`Of(joOSc@gi|90P#6S*53Zk0On+ajTClCYb3Nlur2-?`pF_W0mw zQ0JZ>p2Nh1ff)2>8g0+|eq`7G&yTpZ&Me^P;4Xv*Rb_#t4=(=@N4^T_{hk?=;${F8 zJaaWbKTi)aw~Va2oFn#1{IBK?_zk;mq|79C->mBBTschD9TAqe?lb$WFuO)37mPqZ z-n6}Lb7V)?*?~g5dXF1?D+~;U1d}P%Ke`>o$jv7vs?~du9N;`8OXpN5GUEa5_c~&d zZx}5MEKcF9Xk-4Lz#;KB;(*Rl4I#aghS&$UVh3^ZqqJ_SFQQG7zr@#SRK`K^-BKy= zKdi5=DB5{L4fxExlJmiOjhhQmM*i>q(E1#3)Ce)kiLrS$g3E>YHpK4!?bAQeha9do z4+_Gp<4Pv!Hl3nz<{I)%lTHSzZ~%c!&}=3Ik@Vz5hA!mLpYmkjmbSz7r7-1xt#zKt zMT*IXQ@RBBZ10o+?D2HM_ndGU8(8uzIIwHumWYKUFPOmebcNcn`^*rC^Lw^^eVHb8 zfuaw@^#gP9y&=}E>d00Ft(!* zR&5ht{AzY=gx{psOYuPv8A0;16Rm`miDvrY5tILhWzEE+SW)F`yZ&}LwCk(v(9M+QF4I0-_1#?aD*W}d99Q!=VUdt+@aNQ?$i2KP z)h*L1`d(;h{!c-YuXm0{9ZeEESmwh2J@WuH1#27bLU}rc(2rummCi3`d4HB;OAFx6_I?xud{ex}8m(Hkpc7nN`& zG5Pa{9M0K)V-FeJi}BOZV5%r-g%;nKKkiHDPp{os0ye6drt3PUSPA<>x&%&$t`)x?`~ zOayIvgW%TFyQa!!dr@9vIO|t zd=hnbe*TynxqPImwH*!U@#$m#z-?YL_^HwHAwI!kIAu&~epd|kN*)pOW_fBdot{a2 z$3@-#Et*IDWaSD%P4jx=K1@5s!~4vgh)4$2O82+A?k z$P1^pC2ycRoK-R^=gvl3R|m+iN-9BX-KsOM{JQ@BY0NulW!(^6)WAnLY4y@d@Xh&I zNj-#44(4oA!qE!J#rLLYFzbs0hh8*SD1FMYnYR&y*`{H9ZiKu7&RV9+mX9#chG@>< z07N|tn3eS$+_hRv?1Zh#)51JBvU>L89>c#!K?HeaQ^qwm?plD3FL`#lGrc@tdOB&Q z^WZM{fh|D!0RHj93cEM&8?dNxi+2Os9wZS&_Xh^+MrtJkBJ99`xKmIl=<^?v`aXuv z7LE}E8e~@xrJb*K`C26VSnFVsed1JYFDoCX>OHgus2g!#B9gzmxc37_-2+s=hUCS2 z_CEU;Cw|~rg`+AyzMA(wb6XXyWinO(69)4S6s0$0_qX?0Z)d_sfTA#k;x`?;FpgZU zAYtS%eQ0Ze=qF3~okM1+WYKi^NA+Zy6nuk*Q!Ai3lke|mN5k_Z*I=nv__lv=EAQBG zjnb;AqQc5c%mEco9X-!9iIn|f1TlyVU^VxOq*Q(L_@=!K?@G|;T2RPf+reUoq~K)2 zLK5XTIoj6FL3U&H(ohO?Z?8W6&CK$-Ya@NVx0QVe<)_SAFn!%M`#E5)0y$gJq@$rg znZP4fEYad8-@Y7kZBLMS3NJ8JBgGgj`^=L8#JvdYWSd@h2e+QK`Q4C)`m`V*W$nt# z8NDg}eY62n>HT|7_=z)bxBEf3LC?Ri3??LE-+*5sjmt1|sM>O?$VZ&U_8T1oheatQ zTCeW*XC2DDsUi7Pqj{q6s# z_@pp)S#Z(va=#jyv)^(2QW_-nYqj!fcYj$sbkA$3K(9z0%Rju)QlX~YKMXXh#-U2}V?+Ex?1S%jE5#b67WIg8 zJ7Ys=9B~px;5%YgmJf1m3tZU6CjBTgi`Z|Z9eK?8NSKlBnSe!iSKCjp?EHwVLizaY zdkM+Fq?qmqpk|n{sX2yGyR==`wFd2@8-1f2HTqi7E^PAA2--47E@_TmpcLb|4jZI9 zuEQ}atRk_8kat){`{21JfTq^)=+{5=(mTKXNWVXrW)d*A8{+2~5c8UFp)|)rQE9V= z_BDF#f>0-NVdc-7{Pu(ZDzXxR_fjp=O5Th%I`fGdf*2BH>RmWU@*|1oNtKYM+?%DV zPju4KG`;jWmqk)$G+jQmKhyx39C+$9tUmtotQ@Z&kV!h=0WL}Xi$e_jUu%jvoJk8| z=Q07^w#r;&G5zf9eZ74+PVELN0~iC{aZD%94$n0yS_!E3WXLWPwv^LIT<>Q|W9*LDZawoW`InFeTRPG zh_j{%205~Q$=t!*N5-4TKft_^yx?hA2OAI^1^c1>^EHzTR2_DS&cYq8N#+fh#016& zf-HgIG=NXEmSpn}0>R-cC?T=geUyXgRFb%qzB@RaYm^m8@3mb$oO>s;z#AMoLVmtt z(xYG^?_Mh8P7ISvP|jGSlA9+ICCaC5QB)bre9 zG4o(uikXjRb~oC0zU{@X#^0cve;ie4?wZ$)oUMf>onOUgCWK56Q{JQ}-f|0y28&*6 zT94V*cUr2!uABELcY{&kXFhF|ynB~kY0Iht;wwzN!l_sYSArwdw971*LTnI0BQD1u zwKTid#-d>4hEd8bxbtW#wpLi0m3SfMOCh}>b|A<%#sdP=#{2TW>V55Z4}fYj13SNH z7rorg%s5;Be0FPGR{YMG3La5GT83?snG7k5#$;iKWa@1xHmi5p%L8Le&TE_xt=E(V5Ck3d7Z^y#Wm4!(~XCz z(N5eJ03Rgh45Q)lK_={kr1z5vdQoO~Jl5>08Ma|V@g`?}Soj+^NddhjJ~6@~&!yN} zSYV|)4;2iJq{El`VdXXDtWx$ulPBQC;yeov^AfnubRoB>T?i_io_2y}6K(S%0FDxY zCZkJz>n;aESp}DGV%&NanYGzEzwu?uW~=eiCJ}VWvMBcv#KRuLTJJDr%WoMXN7X`J z;G4DhUJ=ZPg-s{XR$@zPq4Ff+&_Egqg^l23eAXLxcW4~pOw=fzZU0X?ApTVt9`$z8 zl5tciOM>&v7E8-2Z91Wn-(HC6J0se=?Q3qqKR@5&?s0o;UN@Triokf?isKTY{D7X5 zd`3ma-8)%GZ|J{a@v}|>H_Zdta%!9WwdDP^9Pn{*`Bh%`prJEb4fbEI(s-@s%LlM+ zKs!NWqq5gG4~7?|U))|NPH{`KEJU>@O(Fn2qUQ^Ql@{4I^H~j*n{bGK=QV-xJF9$O z3tErb7<_`n98v;h5&;UGgV>p&nY@b?Ci)f)Bj>l%*`wa^LJ562-$pNnSZhol_%v-7 z2fW~l`#%879-FINkw0^xan&y_2HLG`qS@*J>WZ!+-WqWhhgsiq`o${V;`afP0J)zT zE;Cy!^djWYhTdP&<)Sa-Fpde9=jeye6mMpNmz#^kK2qR%EyTgE*yU5=Lbyth*iqfh z3?f0s$3~#NqNkk%AJYPU_!kW-)WLq9@!f|(V2u4lY20v3ghePR7Gt6LR}-xVFc*u?K@O zN$jmt0+AGHx$ z?QDT!N+g?6F9>`K&`ZdE6fd??P-F}IEghCR+lp#g{)DSQkL>CoR>4f?ck6UHt;R>? zvD`Y?G%NG7*E!3=z9}C5_hq(#UnnGXHnkgrDi-&jqzmr^t*gk&?s@qz_fmdXM=|{E3$J z-HGI9J&sDzZx2skOvAgM?>fT@k{)c4Wa@h;9n2bK)fW>1Ghe0M)}1ARg3 z>~s5Im}SZByvGS~N}+8jnXmsP`BQe?bovaYJg)*WePwy6->M0~LG&c3F$nipTXcPl zq%&#{ak~REb9IkCs%k|2aj)YbsFNeGLlx_a%Ha{47UMyWX|&#)GiY|it`89=&0PeT zPe>wHd3>06D<55t)?6=J_<2caFs}9#UM1(@St9l|Vk5O*TEOmVMfX#yAXdzV)+zfD zsK^ni53!~J1Gp?HsZ=|SDXRc90|#eVRCPR)Kg0_JopgMrqUF*zkA}Wt(PxHe{p9`P z2ekh3Wfe9hZWkOc@Bmgj0d^pUdB#Un_*hIhM||ahiW?_hfa)OxT;m4m_MbfezKX1x zEE`~_4{F4GSX&+YG%{}8E#>sj%^_fqa9#}hw)z~~!~569=9s&U_SD`QRkg8@mWJ82 zzDMT>%o5$?S<6OCQB~X_+5;i`cVe%|_rWJKxuz9rGtsMbN3G zllePb9f=l4zg|SX3g1h`*=?c(bqN9PB#kZswMK`APEQ_bp&i&5Tf zl$#X^)s{sNDti11m0C@|`bGW#v&JMZc=1i?HrJ=KjD{Z(-~ii%sp)Y$K!|Vef;!r$ z$U*~)7CD~fkusCQ(X;^d+xE;vjctPB$e0o>tcr-?9Ca9D2ftv9^-1VfAARN{Nh(Mk z{sjF?>5Bzm^~re|G(xxN64JBqQq;vb(=riVPE1I`r`x}mE!zOffCs;^4u5{A)cXmB znz{?YS%trIuQClwZHsG>O?U8Y(zJh{FGP}b25Eq!V2`{J&rAedvsp^Ge^M-7@wi%8NF3Nu_WH{&3k7NtlsS%lGmif%g4%MD*rXNYk6Q&C>d15@K{qRMaW63573Lf(HvEi#;HPc zIhg@18GI6`PdzHo!<~0SU!gNHCmF(qtN4fm0D=nYr<^EnwGkDmqx*t7a-FwVZcMlL zzB*4YE@N?q8>(*wd?+(cx7G*^rYvx7W}sQnCrzAPmIPs>6K}S!g%3D2T_%~3b@MRCA2077)S05 zEmf2TbJi0}pTY}^sy<`JCcg%4$SLW5)qtxf)~$cKjC3x&g8KR}GZiKX?n92|qy?HL zJSoAR7r~Nc!Wg_MATYQvawbIq1zrUK&X8PGJ(9KGZBOL-z?*+FY)-rc5$2m-X)CL2D4gntHdDXWf!tosCaK(Kv~TbN+u$HtO9#KJl;uT$YojQw>C|{{ z1oWg#0N}$s+Pw>ykC^%EKw98hw2}54os!u-yrpn7Q}s032hI7IRH1jg!7xkd*++E< z+F}~vtPfiiA4U6Tg<=Si_4_!La;e(GF%Wea5Y7zJuP?fKA>Vum zf}*m<@SQ?|rA8o-(*eNRh;9S&m%BE`_=Q5vM5J!lMYAVv)>s2PiQF z%J(T)8B^hF;MG4_P<=MBjbk*Z(F1m4vBezL{4ofF0oX1%>HV?EFG)JU7s7;t&a*W; z8wykc8RH9(qMnk5-fnkH0N3Z7V_hX$nJ5pgeMFkEVKp+OGk! z8k73{UV>h*;E}9p|A4#o9f-UKn-^(3gDO%ia*lz|7?HtBgd~rMzcR z`HKn;TB?Y;)W^xPL2Oc6medz9e51a#2QIb!38JJ6eJu8?QC`>Syt@$PaR=qC=t{1V zR9IUVJ4`SVEz)rYUVqols@2;t8lwTQ!Y`8JIMe+%%Z*gQi@R19o0~HcK(I9pFg(S) zoi1#uy~ShHG`a^8iBcr4P!5s-=uxZP4*B}=HmJ0y6K|cp)j&V;8<{2qk!+8Dmb9++ z2X&Z)Zoxtn}@O{4?tDPJEk53HjcGow^=_(kTA656VDfKH0e%C4~c56pz z4y)e$acBHFrD_`HN^d%sGhG1i*|z`kFFlM`zeLerm)p6r;u;Jbxjs6$bEv4?bN

XrWtK~tn9LfFf^B+_qnJE6J-$yJ>PAX;cmgxOprD743MhW~v@RwMj6nhrw$*&*@bUViPH z8zzNkL^Us5I^3`y67hSwosAw(qj3Jrjm6$bvLbO76lQ=8+s|v z>_zahJ~AjbTG7BP>F@}_ixg}CO3v~rRO!ita6+m8L<9R#aOV~R97F>oaI{dT$o&4d zFD>=l^W0fa`eiIl9udbLW4RGyFTBhl1@H7&NSB$veUn?rSg%@YqX5FF_r9WP>wd0Y z+J@}F0*yrq;i?yJ&hAXM;;P_!O731 zl{`OG)gr38SUvI+fGDtL{f54U9F(r)G}lh$a@Q~M=k!Y6XRWTB0jgrpg^`B@@HR*M z1Q>si9=3;9Ek6o=YdPKHOaGuStp>Dh%>Z4Vv`%|$l^IU4jPjs`W>LcRCS!gR+*!hi z+wOJ`()jAdEHV-L!yV+$FP5aa{YBZHL}0)F4Ue5E)1{WN1SR_2>VQ2dON6qW(!m=7 z2$-|>>&^%v6jHehV0DG}R!MBH;iRa416-x?eJ{(hGjV@pW{tvkIFIWm=N(3$@#STM zaOV%>`QJr*OEjaFt$>@}en?G8*3lhpH%tHM4Mfxwv+n3-jmssYsH&ZTDzPu{ofb70 z>M~P^c!2xbqAN0{g1DK6czGPq%?_knNev_O{$VRU^v(w#R8K^3&$11LM+| zwYpa35#8D1eU}fkG(XX;>t#iv!l7+?$0r28Gf%r&blajo$o_F$7$R6NI{`zoe!Hogk`~cS&1J{%z0GC!!D`coH(;an`ya8)QSKKjWH!#l2Oz z7Jzn$ovbDnnU9*x^D2(46?N`bYV(`+@FF;aodHv5Eas((^V=BUOXUm()C2UMc+;S` zjRX<$8L5-_A%y&fO^*DcoVVo4g*v)lP9ir3hL}w9$iR!&AMpFH0Fj{?C>SCiA1e>- z$CT3Abk7jbgcw~^X~@lg0GhLEGuq-c(3#?TuG2mL*=bHmHHV#BnxcHFnXTbZZOtpJ zB^#Z;kyCtni~K>I7zk#=6@uSciznvFumZ#A%U7|P_S%KN6JA+*b9Uhqc06^#)foN( zf1xyiBJtrE?{koIMnIDx0af~EDN~VT$Cv>+i<38`d!Bx6HOk7&RrQZPJspTqF`WN{ zZdpiDMt)_viUFmANbC-r(=dwso!_7D*gqPzUaup74@vVZq=vpFHJA%FAtAtvbCOLm zvk&c;+we~4+p%_>Q$`-eGD#r)&~|#cq5sJTA5n==kenXw;R)&@z)qWE4*&__lvJ=x z;Yj|u*{yEp>UG1KMBW;i8Y4i3payag0Ue-3)G$m>SC5kcAs}ha8;N{Pc327QfVY&0 z9^2IPK^5G&*^oq1w<~gU_L~AH3Je}nsNhM=<*LF~OJakX$q&q;u)6>|s=Yt6Y3!;z*|nd`JS(#K=Jxp* z(<~(Avl5OnU3Lca4~{ykuf5U?arYlUyQl(vR@|jkB}mOb3nc@6%iVO(e+)Ol4n=c% zYB4Ka?~h$EZf;&7(JlpAL5PYzk5SevHDIzFelSnQGE9phdIS)_cbUbTQuY77uWo3hzUzKQ2Wgkr;l8(ptbWFg8_uQq@rxf7t_J z($rObY<9d{OY6~-AN8kaeR7Uku)H=cd&QfBkE{xJy79iD$JTT2jBRN>1!yb30qRjc z+=h+al!FULNyY|!CIl;>3Bx6ue<8F$0R>R_#RVrlC?Y$*qc{C&lZEt!5>$V#2k&_4 zObc|gVCwH0E)TpH<U|Rl3&V#6$$|-IfX@@;T znAmn{c8s;sj_X?yur@KbxqW%xv(FP57!)kFi0{5>d1IwE72<)R%J>`m+mdD?g~Xky zLAMvLy#`lEK|?P2=}F(NvqV2kV^hv~pMpe{2r<9}lAd9CF;{Q4-d&lLZOT`d?ZC>V zO%ROjm^rz1sSqTo(r?$6kM%x~=TASt%Wk+&50bPy@iR!#mY&)pb0rE%rbFQX1(H-s z+|fn&{k%os2?OZShc!vLr~olYn)+8RVh{G@77f6iD%tr>*u-Bj*tM$9HSbMDS?L~k ztfAd!L$lI(P#~nvZW^w*lA@E8+=DUr-d?lC2_I0sd6d@=_9ei0 z18B69u{OySy94bfF1{iD;!kw0iU8sCO5(tY)eGs`iy3_|)^gkJrI_2^Px`FZ3mWhF zwgPV6hHE1)Jvg&{?W@9)C;Ug>bAw3$rZEpo9N@;O!{Ew1V(JeX*QpT?&@7~$)takk zIM$x!)oS|8j;2?$%`eKRptvB$=&d6#vxg$&T37gh#I$+OF6?BYMZZ~}{Gb?NjirWG z9-KAau<}wod*QeViEtbEf5E^h{!q0C(Yz5e623#741B=yTlv_YXEwbr6S$1#5OB>u zPazmJ-e-}{R^J@`)0VG+ySn)wpL+MRKcA@}YHO&Xc(l@eV@Dv>b?3iCavD1|CCt|< z2hzm^LQ?KIvh*61PgEG!9E%QzdsZ>e&qHi#>o3N zJ?~ko?>h3;o1>?RlTf7@P*-YSJ7mT6Y0hZ2+_s5 z(^L{=e)v^4QVLw7Kw1y~GW+WB%!+}xbd0)!(~FQI6GzojDa+kqTE{}Do_#E6gy@eA zt|ZeL_B?m8q(b2HU?8KMSeBzwLz29DobuA&4kGSB`5#MRsSlI6`dirJ0$_kORjLkc zbu}DmBP|n3h&Vl>f1WyUWYXv+mFgjem9w>3mD0i(44aX=B#Uxl0uzw|LafVQ1X@@n zV2Vi#TUfoem^$h~Nq#u@ATh>pY3f1V7k^|^4?6c}g!Kw0gDL}b1Kzj4iN02&rORck zP%VFR)BO(}n0wFPI7Rb0AB6n>r{fV^cCru_+qHhd&m~a~tTy?120rF?*q6fRY+T#`}5d>V`0Pig;_(vBU+gk${(I)%?G)p7JJv zRvv~!B;{8+?56w;eqSj5%CU~y`&^Sq2&S^{E@_C(h1@5Z8j5eE)+d8bE3JKU*umJ( z2{Rjxfl5HlkPa3D76QJK%M=B%m>|Fyi-X&(rxrE8m80}0jPdTQ*}S1TbRj^-|5X6o ze0a$1C-S>O*k@1j!cq&`t65>A&*6PP`Ce7svmBC+u)dW8@+CBVJ$J>xKwrXHcc_q2 zq3F$vY6bZ51TPuSgMWnASe;xG?FlT$Ok$AFXKJ>gdJ6PdLy8-9SOmJ zpAZNjZ;?kw1t1Ec$8~Ox9-T2T_6;O4`N0zz>$`hc;{pX6D@);+d<$Pe-`AT>`HMk- z-~F@MC4g)fqHzf!`*m-)3l0*g1G*GqhQ3QM+M;bTCC~`;*i>jY1S)zK5wCntSp=qp zgu{yOjSuX84tkofL>7Kd!@BY87viar)o9AJQ)FiDoS!VAeJqw$P%E-^NS-mB*ZsyQ z#GW61Sp`8~AmaFD82YfA{?H1!R5eJATFbS3N90ELU&#;;?qyde^j*>yE~@>@Qb4n| z0OFy;L&TsK*+LQgqecN+`saZ~LD+`#w5z4L8}x(ES$YpP>RC9tLINFZ6EwbcC+5w+ zCDy~(>3z;WFUFIRDls`;lKK##qwI5L(RN;dU43+8d2{p}^_`z=sPF13yHu#mW2;Li z@);R{wlmXUlg%#vr5GjwZxu~1r}J&*h=lSNAYSuZ{pivY-g)oczQ>l%(1?xc#%|2` z5OejTDw=YIO8ZWYd6vp;F0y9GLFo4^ZW?F*tJsMcfCYp#tT8dUo71PeDqdgnB|1=9 zp2*>=9oI(-rfJ@1I(7{L#Fv%nhxnoykf{K2rj{S(YmQXA$^ta$_Xermin%QN6KHUh zoCszuD`slyyF6hv@KjQNU&o823tDlvd<{jkUMSFnl=b4U7AqiTh{1Hj&AXKkNSgts z*L&11sOQJDbCW7zM3y7A9i(XBHn^TsQaNz+y(0t?R=&(PSib+R%0LL|(-$Sp|K3ij zYDqgURzC*=MEnMNU?pLyJN`LF2xvPWGzZuV*p`3q0M&_?yZYoyAW|Or%K0=3i1A$F zvHF3~ul)`n#m=n$4%_(2o_7YJq}bvSB@mYP1bHTgQ~D9|Sm;Da)M`FFcce%Jy|FxJ z{5R>2(an)pNksWhngoMdql=w|v}N9-&R(Nu&J7CaM!s}i0Z~X&M*7(9nWC8n({=J& zDEDdBnmVu=5kq|C0JI3=l1eL*4$$#~W8$xto`EDDKy^tDZ2Q-bFgqh6pg%0Tj^#E~ zh1~T}5VNOkh%<`X{3w73%e*D|SDv1^O^p9*_&}WAV>|mj9w)yKt+wsmlwwM|yPcHS z_AJ1mhj}M*2Hl9oKx*F}HQTv;hBGTstyAQd!)Yt7vsrI^sSNafQeFY6+BZl4_)PotsigX@Y_7^vQeV={WSnVKiTyK?lLl-|K$C%eFDU^;MO-fR z6rsl6u-B*GSA~WPrJrG~!}zpM^OgV5t}Mxe;%+sX@3Rdo^<@-)R7IwR48MOh``()H zACoj-`Y+VEk&-sv1JHhw3UU)`K9#?4rN%oyDNc-83L%;=Cngs#|VArbPAruQ@Vhi4xqQYgs2$RO=M&Y z1?hak7@qTDEJFIVf5ig_G;Q~9^REp-{iI5ckdqpADpyuO&P8CXrX#xk1ilu`s< zYiNo2L$PfZz1Ik&KO?0NlE*ot*tue_O&^R6=)(fv$yI#|U2!Tw^rL}YaOp#EUykD_ zoar&3`AJWt*lj{FoM0q!8zNQLc%=VNsb;N6|Bl<&M_$5$w84P~2A6L%@ z0Gw4x#E^@*X43Zic@N8cLLh*`s{Y}HX1Mwo01Q4(E+DZ}RG*S&O}^8G{{Be#mDr*u z%DRH@{mY3P|1ycV`Eig;-TL7L%fg){ksfIcf3{b2BV%OuC@mwaEH?5n!F#pXh??zo zB3|7O?vr9n6qJOdw?zV`^+D>C`~L}&BVTGuY4XyRj%zeS^-Yx0cZ$hg?4uV$q;Czl zrmB9<^q*ug9BLBDTa=WZ{$90tJ*bf1r^-Vy z<*}~f+i`M#kGs4P;;3>&LnHJ(o6pu6n2Y~8p}IeQ>3i!w|E)(7IaQHv(7M!Z$Lkmr zuK4thzFbWT+U(-Al8Xa&eo?#va`_2Nn=D=JC_jfE_{|;1cj9(5X0u!+?azM{zb5Oo z!{)u&)p+t!@VlFybF_CPuad97V1sO={iPn4X$E7b@s}Q?fNL&Y9NpuBtI!{^+yw|kRX zX*$L|_qIXyfaNT?>&ja0SWVA<WZeSvZ{PJ3mK`-$K6B$<$hDZ6Sa z1vUp!tTjnlF|c}pDi+Gi?TR2o2=2Li%oKbYHZ88K4Ii{)Nnv-Qmx$YqWZn226f4Q* zG&C6zsjJ}${cob8NIqjn$^EoBUZQ7WHl|7csaEh{TtiDG1a@{5EcJzIM8v%=jv8#| zvz@I~t|>*>TWZKgvJ)-_+t!uuP2Tyj8&OH6EzB32C_a%R8*}_u%0Yo+_(uHHw{QVj zPKtenqnWX$$*wg4Un^^Xa13VhG$0&0TNJ&wEY@Sqj2VbmJq}Ma7ag0yPWjkGp~`@S?*>{k8%L- zK9l;O(`jm+{?jWRrg=m#f6So!M)5jlcSU& zdXmFUxQ&|e+1OU2bwj;jn-fwpSC3QW&=;#t(3Iq(Hzeu(yGi63F z0$NCY48`;?bEg;FI~G&m41{U_i_+)+TjbLJ-{bT6!A#FUP7B+mS6=hFf(KGGiHDDz z%ZvpNvLvuZo-w&}e!x14M%Q62WWL5ItVEni1uhBCFPh6|7U{q51vbtLM2i?=iwi`U zLSKLx8~)6lC&ZLe@B3HDsIg}UD~BUb)>NTd&&iql@{Y!?lvN=Z$PM3`{y+t4?H_(B z)#q@rpaIMYfbfEt8K7&7$M|Jrdzz8=S%|kD$A9zoKmP^^1py?vI4`bS=ZGMQjSOlu z3|xVa>i@+&|God^GXOjj2!6zw|Mv~VDN~{v)hK}X;7RDCi^#DmvuAwC;Pg%ThI|*K zh=GNaMORpeL2b?}hcU%NKBfM>$n-COPBw3oe5vs=rvD91F6QOzMCPzaIlEw{Wmb@; zz;@i4YpGd7AAY7oKe=g3~n|1v^Ckl`3 zW$Pp+0uO97#IQ+7et5+yaFW#?wh^WtPwF;Ml-joAXvRZ1Ln8#k?WJb|iViP3?!V;( z2nhuLTOCDTm7Z|PpLd>P3tET}S<*;tQ~cRI{$v_F`HCSTOB2{;z=gDbsM28O=G zn+#wRrBHF}x|RI@4+5U|OIz|K=qVLs2S3l%Pp@vo6!nG`ZRS!#5=FCkeY5F=Y=q-V zy2RZcECU$vL3gOPnvKPjKTTjl0J%P*tZ6(+@*_Q>R#ae(0;AVWtkr|G2EIn%ad4){ z|NYHx$zQ&CI8Zyqw2M-|=NW$Z`Ev6OSb+MVvU5Fq#1k@=f1jO}<1ffwa&_r&GhJ{jRoOJC8^-b+JwgbCbUz_9=0_xMV`j6+gG9zaLl{kdM= z5xkfwoL=;ebe7-!0Wo-s!fZJXZT{E*NNOc_>{L{AN0Q?HX0GR zhf&>W)45YpDK;;~r3YG^Jkh?S&CKthi8F(dIg8j|1nwey&7T5?iJaS4Eu?^PmeI+T zw_$MQjB_EvQ>XNt0bezWxr&Q{)TZZ0ZQgfDcaoY{iNp2Fp|LL|597!3=#J=ILFABM z*|T^@jqk;=!AnyvV_QUmWNc^>;9pi`=KGolEyk>o;a{7&(xnYOjJyJWb`{v> z=wh=_5HKlO@F54slOTT1&*(O+Fp;zUu6c&RMz4-(J^?O-uR$zIyfMkI?XP38t6riFT2TXF`NGRJN1dzS71Jv1IK zjRAg?l>Pbm;#ANSWj9j->|f}MOdH5HOFEs{w0VA1YV-r1-;vJW6%$KkgKJDesLkk) zvbjfd2M^sQc!pv6L$^(?-}Il2qAlhXUAjLc4M)6VvfSo2jFqm@ux}^Y8z9m&!E6Tc zf8vbq5c<*HyMzvMP%4-r3X=$WcY-C6xxXTKOcY_w$(P|ic-DK=_pemw4dOvp>BNca zRot*tEzb0Qvmf$-yZ<)HU|q8tlN7bqe>t_{xFnPXJE+3tk0KSrKEqr1vR28XaKJAG zs564@0sEE?A3UUQ-+o0<3IR!}$y}%uAaf~x;nj2mO3b@Z*2@MgMTc@m4B6=-kTukDqWPSK%rO~y1MFtOJ*3V%jS`tuJBA6ti%lBX- zAqqm`?x?s(aJh2K8kYbt&g?rwuY<~715@ZS8i`s__cV59N%Vg4#Mh$LXtUt?Si87a zrGsb)6KtiU?J@gOQhb_Y!V%XTn< zGA>wzChu8S8UK^zBf9zhL4>pxK6rELjI!RHz$6lZG84h16+I#tTR!JLr&2<4gCrEy z`p4^cIjd=rb}i7g3STEkgPM+Q!mz*7AUtY2!1w-$h?fhg_U;TkCrjz>L3bO6fU$=h zrW&Z%QzIwig5}|dlOH4=h;uj#zVzDa-KS(tO@-&273cSjx1E#DHS^AjO$_*t{}Wyr zo?f9qDQdE&NPT$0+}W8D^W%Y&idmt+=@|7=1prq z_?ZzGG?1O7CL#7$lmVUg&P$e)s03P$E=!UiZ0)aO-$_@coYq zFz-hpHnI2zFa-S20wI6^z2f6`tKo*|5(fP8xSRA3= z$H$w&z7yp_yb2$UDgq;B)i$i8+z!h|B+c{H(b=m_1hb1Fv^1&Gm)rDb6rk#8qv06xTVHN=V*rqX0#(+8wG{`OoY$_Q0nf$KG!EO&_<*?PiRJyH`X#?c zDuYnmf>A-m@XGX?Xg)GEl$_dz^0I#*mB~ptH$Cxj7P~kye0y<;*+EARMf>>cHZIUU zl3z|;--!n_J}%7W1EE{>@7|Og@gKL-MwC=X_O?5_H@*8LA*Ija#{tF-H|voBMZ|T< z=015|K=u7s_1?S4kKf_O!h&ZoVizKSMuChl`Plg3p^S{l3t=HK{I9;@ieR=cEG+z! zJ9zeHkiaj$#!={5!TK}&L$39D`HI3CQ+bF(rSEC}hmnxN^xUTuuRBx# z;T$)@rc$`0{I)c4nDBK~=tqBCsnkNIe;?i6Ezm?uS){b71q(=o2~v6ndU9sFVA8>+ zU*OvAI;K62b=GdT*y1oQ>DcM;7euJ!7M^U9^Gs``Z+4WeD(H;ohp3GnjcvuRNu5B? z4Dv|GW{n1#hCku>6T5@g-g|P%5qcICNEu%yVwCLO+O$C@HUXL70Or^Tc(7v_yBM^e z%2iQjw?EX2U*{MxV(;9u*&9|@2}42>J~Jz;j|6vZp6%?X;s!?@8H{A3O)$BQZuqee zfPsvL`#WPLt&kW3m~>fjid|Cb6FcbW44Dd3mxI=wfnHkK9t>W}854ah-`09Sj6;_SS%_BHssmj{K<}I3# z1Bm(A>orL`Xpc=DcZ8a(@x{>g@s} z`&bsTzWO>sgz7ZNw72-@9@Lek0MDJ#-;P62N8}_UgNk=1PyB}A4UR_tBgdl@{F zF*kPm^DTW4s#^cxOgdN;_Wu$>KCkbg^e;`QEyV> zf;eR&gdLv+mlxI)PDCCh2?oduCmhS0g-K*TL_y9L`d&n{XYPuWZL&DiM8;?#JwYd; z907M&EA^%koFrkmQfW1Yp_s^~3R@kH$K2>A-}ZmpU*eT4Hf#=?jI$L!zHXf=3?4q( zA-4N$DEzJEOyTNjKS@guwRD+h`1iluSky}IHY$Pcr&q*)&5V3R#I197d;8ME@ln;v zv#9FVLz**-@homKxdn?IZy~NFKZM%-gyP4)uQ6^mA{S5gpqy|MIK^aI@ekSy?#T;c z1pgMh7FcWY`XSNeT1)NVuri31uER!j&ajEBp%McIK?Eh;cM4jV6S1LsV0=W+Biv)Y zBgz}qh8(r3weR>x1-=y71Pnm?Jp~ROOt% z3$qtK^e<@?%d*xiw7}+eq`F#zq2h||6sX0D9-i3_5jL9=q)3>$%NAU4(G+$4S?foz z6~0F0pn|=U>FQFw{Q_LsKinHn8}~Jv&prT`^B~`un0A)0j7&X3Au+;)zRT{ML}~dy z@=ozlIsHynksh4t8_^I#kwQsUIf`+xzd!*5Kl}6Tc0e2kCa=`wIJkExw7$gc?1w8Y zEane#7bQlE(Qv%8guH#f-HU+eUK4OqFR|mvZHuS^J5ZvNE-Lpn?5B1z21-1LQ^DuR zWseR|TPVoG^AO>XeghOJzeTUmw9&_2UH=*wDiu$F6y71l7e1hd-kg5V2muNc6%+>d z^VK6!OyC>8=@}oiOmP@KKrgnnkAX&ge5?1)BP;{V-5g5ULiyP1emaWgEL(+7Frv?c_Gp%*^A_l2ric{G&xP3ctm@4YYEB@Wlt zv-rdped#ZJ;(NS)-W%9Mak3AzRz0*lIBY{mT@?Rv^7kV}8>zNL|H&Clqf)rVcMr(7=VO7#|Jw4{>wE>xpliO#8z*u}UBP zO5Oef9RRSho4&vShF7}t<#UvH$_3c6%S+aLG(zm5bo__@RcCUHtSB&$i6GKFxA64X zoxq*Bk}@D0q}1kdH@IgM{mFeyg; z%m8mQFOGc`?YM$a@5 zkQ(n2RH*?pW`sV-$0Zn(P!)P39^YYOqN18oACAz0QFfsO7jf{111ZSL)j30Vw8dBT3g(6Vb@Jy z{r2dr{AMZx#cos*BAOz=)W;ZlC%B4O*|NGcC$^YgNSw%-7r{_8MdAjaf*JfAs=N`7sqdg5%-d>AR zldMX2b5}w@=XP6HQ+@v^9*1>VTv?7whai^P#yZWvM_sRtKiA=> z?@_Kd8j<f;w~Ni7IASAcLB` zqdF=GaWmq>@gaoERvY3S|2gJ?&Lt7Uyrw6Tj_$iMYf`ss^1dh3YaH1~f+MOq9Pl#{MLc9`bCAeWNltGEk9;ReHWGfRmbo`}TvNGxfqgXV#l- zI*lh~T9}`3l0P}cg1+m`z`kvlX?Y3lh`;kY8WwhZA+oXL51pi__E4PMydi17Jj$~7 zU#11%KGR8UM~mNzQu?qUF7aa3ufCpIB0;}Su9V=mXUF?~(M%9?F#g3z4#$84u(K$01u-r$?oV$zZ`i`NrWoI!uO&Z+uFbNOuj2 zbFY!vF{7x0)_k5%Zp_=dQ28YS2EX`2%F8+(#q=Yjtt>4qwV>lF3typyoORlCvY} zlk79s8^{g7D<8NBE{o%5UTemFEpkKSIw8!sTMSKbxXZR~wgaq2UVZhX7%fN15H_mu zP76_x&Ow3Kk}>;`3{o3o5OQZH(`fB_60xdb!$9ll7#=!5|0|UDc>63Tv*0NQ&9-76 z`fZ>XI8T&sWGj#80e|#{w680+(&aGrS^5Z|w^->;D?Y)q`x4^X>^+vOo9`=vZ8o2Y z2^^Lu2yOd3Utf6-ODd3^<~_mb2i+nXPY8o=fYauc2sVY(U~FVk6QhFI@ZAV-9tdgv zbv7O>}gf%bbGONS` z(i)jkq$6U#2RJuK7VxquR69z5dF~NO(Vn~f($VCq3Uez9| z#()2qH!k4cb>9-K->@e`qK}U~?B^mjsgVs>^;RmCMzEtVW>xso$~SC2%B&hCyn`YvsEtc+0*D z-HYy20ly@(=ZWmElR7<&;b#=&8P)gG$IzTty~2>viul$DAuh$mt$8k8Zqq_4sOV#M}cccL-%~ue>DaR)TqBChw7N+^$*C+TJmBes=HQ+MF#ukvrOPOmL zh+bab9h)^j&ecB(`e)ouU-%AY)L#0R)#>@%yGgWay9t%{iL@QI>`E1DZ-M^rs#=jAJ zVAEUjPvM<_P}2JK=zAu*qEtm%*bQfXpPZP{rh-M|=fnohUN(GDnAa|N^ZrSKE@;f@ z_wg1}NHf>G$(K8xrJ0D;%Eaxz*oEpSi;GI){?KShWV!{GMz}*8@DID6j_?777iA3=zQQEO|KjYed;!e!@~ZzTvkw^ zV-)c{bE7W@YFraBMfE@`@T8&$ZBC(;Ihknl-{zgi15@eKOV9`re#GjG+$P=#V-G=u zmZbMkc9B1P7553df}TSnQ$c1F{!j^Nzr%NGBtuni0&N2{Z()zAraP11GcF#!0ZO)* z;N{LUPj&m~iIFV=l)?9fPAM8WIJE+kTh}*13JU#nh~q@R<%@2V28$DuK76YbkVU8t z4#m1sjHneB|a+4ct> zG$+}E9T&V9woqkXx1qlF3}agpyAq4-I@~F0*i)5bFdfu0_Boe;089WlZ}$RdNcn1> zMyP$C-_i8AF;%LS5jvvT*}UE17hANEn#4yeiT@Qt4=a2?esdPXB(Y*IRYxoYe|Leu zFuJ&hTYHxNkih& zV}s?-!7`#tP?QCUz>t-(p1xhTUZ+-?9t-5mZDp3Vu-@N(9MuZGO*=ar1A-QsO&1>= z0(Wi{4fV-&tBj&t&Rl{k8DWcpt&5+L(AZjvkHckv4j+3)*9mvX=dX3cgTo+JM3`$0 z&q;Wg7{BEUM+F;o=}lXc;5TN>`HUV=f!ix$BjFw6<>ePO)1O%7_nVR%36D`~6KG_^ z(96KO&nehupd#cOjet-QiGYdSs{jzqpi*A80#K=HtC9r~Hw z-@EREl!uQ@Jvs?IT8lwBl#Zm;CY*EoZ{&{RFWLf*bv*dy|HU$M3z6<}c13R!Z-&wF zqn{Rw&*zIIh)4v*!)f~oWJ|(?36TS*e4F&X&$3I8JT=j89)&ItNcQg4Rtb6_a)13` z`*4D>xOG~JLtQ=`*#u;-ry{{uKTYLT4fil$Fcl5x*Lh_P_Hs>7%#g_9);~W|%iM{W zanJA?=>na0acUu3c%%z zu>}&p${82#ayfhVHIBv^E;GI|nQBOuX(t4DF0{EH>&$O2T5~J z{-E>bBc@|B|9Rs%rJbg2dQk~TqdU(;ddebX!pY`+0Bdop)5W`89JGvq-!i`^NRFL` z*G&_5hW`COT)lNvRNearD&5`PE!{|Wmmo-&fJ%on10vlZO1E@3NcSL(gf!AELk4B;r%1;4*RmU zxV6s5REgWds);uTFiFBw@3_lnZmJxX@sawLkd4G=%>0VCelF+5&Nr~&syHN$JeFQR zjM{~*^dIDKZ+b5JW>?0uhY$FNc=-f|tvr7r4FK1goQ=UrC>!$^wF=Lb?~yNtBxTgb zsHz;PNND2gcFp?+4OSIQigZ^^_B5a|jBA*L4vQb7`W}NmV`cD8ul9axqc)KY+31mB zeoY)5I`rylI%9aXj-=^^@%Woan!36MBpey}hDo9I5kp^At3DZmk=WipW)LVdwofxT zyV(2jqk!G3aw2frFG}Q;dLIR6FqIFI;D$Dcg9LH!4}wx*wL zkwrdU1#+Sf3Jb-|WstaB4{=Ye{=t0+LL;t6YyGxeB62}jH}aud-N!|TKd4eWX#$S@ z_O1v4ClHD~YZq5Hh$5l=S@UH(5E^`sy_Aib@!+PRlk!Zlw}$xzJ~cHHA5BbgBZPoS zdMrIV;~J}O@)FtD>zr!3rM-Y1F>FaKhE{obHof+O4LE>fDN8?i-qzCTSKydR_Bng* zs)oF=>prS;r~!0d-!v^7pRBf*HdbTEIXuGMGuXk+Aki#c`U8bEkgGw7@wb%FLj2(O zd2P@pe%NhWO5gCQlK(p~jO)tkh2VuxHu@*JOU4Jj+5%rrio}F$fz#G|NIic7SHbpN z0nE=0=}^G|oJ?*7?K={j;K*P!rr(36dIAL%E{@~f&?M-fI))2wkwl+@sLM_-bI(^j zmql;c(%(DvZC=s|35C&&*3GZU^)A9A?u7orQkGn$OD}n=T^$}S#+V%6kU2+-cdx_=8OIC6xvkkuF3nX=A z6}ey0C?cGULY}dZb)_+e4%yjD&m=9Y+fD1emOF}*>>J9;bgz&gHPs1e@X7t~+C6^e zuS3h)A=a_T63ga~s}s}uGTpSmLSw-*9o#Agr%%R3rUmo4w_dgXR__r3=O``Q01)9 zXWFjk4XOdO1Bdo3Xp%kdYZj>@)Kq0mtoWY4%79EB&Sv(?o|X#iD4XM$6fnpzAg`=# zs7w2+k{{J-Ch%P8F%%DnO$AHFTwJ?JHH@{~UZKE-Im-J_ydENco8IB(r01oaWhjcg zz%*}jGMHg7xjo>1!d4i%y2ZZ(+Ui~YP+N4Quv~7=T9Hybt(r|)BE}zmAPE-#%*f#lhH8GI@OWFG56Z< zoyck)5uWZ$>kSF0m;}oDxz&~{19|m*RNLBk!S_ZqYG1NxwaL@)0V_olS$tjhIfnOr z%r=B6fD{A`uS)4NG|ak0MVi&$;Zoe@N!8*f+bELKzL914dFb4dK8V6RKYKUB{Ax%f zuyC|N_wecE&K4dnL49+|`dt=xW}iE5xpXm9$pCQ*w z$Y!71z9qhlAZKIhQY}-n+J+80k~PGB`{&jIXF@_@IJ8R_WPvwHVJU#M0^Eg^WH&i^DdzC+BMgL z{k9degp-$AKk#?9w1U*{coG`x4|%D98!vXAJGbDBPBAQ8`ioUyFfu&lYrKqvh@Xu< z!(8lgz8i{+TZFXCq6oy_QbNbelSj?<>ApsKA^29L`Ow$U@%R)vnG^_O)s^E;Ci zNenA*s{fGfO&4D%QQuL|NG}-+H&MnlGy-sL6a(f@_r1r&{mn2>oAJTq>`jDPf)0Bz zAnM$f2p1$iuo?XkcKnjQW|1=6TYtdvPG{u6V-YBQzMCJJs3H8Iz$`*84P7?-0__lBxi6S12b zcA3$fy9E^ny2u|m(1N(we+0TxC#@UQ5X2CeUYyxy{4l4uhohTsGcr+&C&#aIpw$1 zc2Pe8;hF9ZwPNjnDiMvkP%Pvjku1!9{sd^&B{Z$3+0qbJq7=^Hcq%p|-R`=Q~u zY+X>&T0#;F6wN{WLDq z853wKy%Rl)Nt?)ddrG+9@#|4*iZ=L}TSzwSz5=fsIcR@w763TPLjYZzgCD9~Ee?2- z@2qvJyv8QXH&qCR%uPHD}v&fH37S*rp^2Z3Lk-%IE{!UUtEW4@cf@>$@%FUM{#zz$vv z102LJq;}d28s7xeG3U+2H#)#K_Q6{MUMH?GS01^=RmfC0P6hXtShwF7H$KF2B#qGU zNP%pue`hL>j4Im7pv^ffeEJE)uM)R#?JskAv|#jUkaEg<;5JCoBE@_4X-56kNp5f? z=Q!LA_#KufwWIfN^hQj)QXupL;fZfBgApa$ekK<_@}Fg57=c|Sb&}Q`NY!tzsxu5_ zS2K6tjA(GhX?49+1CDHO*joXV!5qkMQ)v~iBCEkm}; zAD93XRFOqqxs$H20p{lxmteSDnbS1@=q=_}cjzB;GW$7z-{L+?;+wbl@x$42iK5Fo zPf)chJ$9?S15O$b;hHPEw^i#g254Qf(|?v&*YPOV;`P4&g*H!_I-$vWBZ~fgzBjIW zGKReH=B2q>KxAX(s6cbZ+Ze?^nf{W=-kM66bk%wo^J}d*<30)gKqf2>9W;n(FiAt* z`{Fp?&<9#O!4nxI`I;|jXg&#Aw*d0+WGRzYGO&%+xg+i4*Si1 zr5mD0PsdrOlQ`^>^&}gHjnJ`@UZekvxSZ(idpGTx`_~mq590Xl5X-uucZ{KFw8=l_ zGIm|>_KNMDz574$(LEK&RElR9&Tgq7k4O!BU3xmG>V^7t1xF9Jep1!;Vs(qx4y%|k zc?%;|Xed)rQQlUof%e5RoJhS}$fbPbEAKDr-p=U*C9fBM^&S|opXxz#n`?=w;>#v= zymAg>bvtyqT9vYOx)iUhHy7%=iV7)3-xwzvX^(u2WRCXiktYE9)5SQ->JF3>9U&=p zo{4E>X7ENLq_bXL-xYZ!#d<}dzNw-TQd=71OASa0e&#aobVNsMH93z5A~gJ(NG3;E zpz43VFHXAMKc_a63_1CN?7e(q0X1W9loRx18{%i41JCm4H4LaPXt#F~u^mPwbR8lw z?tVp9qaP0|ftleNf}hq+%nt~(wBP2E7mY8x5?CH7fU%XRFHJLR(&po#M&gI?qlX$yq8?=~kEjS8oeRb~J2~kQI{1`yq6W63z zMy zcj6T?C&6s7=es^!xL-6ivxY}bP+%6!_m%Bys4;dyX1!`wXu$QLuauI{b%gD(tt z7vzkz*mFR|~-Wv@E zLRyKB{SE3uJ6orLaHU9ZYUF1R+bLBZhA8)?gKvomMApiGccTomGUX|L-{2F5!9nn* zXnNN-6&qGM!orNdPA#pDAQMGpx-c^rZ2dCOhV)wY+g0Ptl<|mEzZ5dgV>CA|cyJ{V zE3e)-i8s&PUNsGzPtfVN^`dpZN3K|^LwU_aq&#eb!65;%xd4cs{8R_cs`0Wf;deku z$4maN(lfvF0a$Bik8B|Am0_2M1XOr~4!4?Rv;rGcIyEo$v#IA<2g8sz3dD}1<^RO4 z(>Z>@hBG2*5O(Qj>E4NWlNC<(k_MP>uh@XIzLLY~lYbgs(KbdX)AEl)`Knn@vT9XJ z>*&Z;H%C%CZGTsA=h8a3kp8ZIDWSFs7wJW|(#e;Oh>4MnOi#ey`2?le^?IS$zM>5+ zejX#dFZj3Vg!Rl}m(p|_mJzsVrw3DPLGBF{0XH061U43wrJI|obbCaEJ{1O2%c zKe#@3K(KYAg?b#KH(c(+yZl2kSUP*xyPttTfS^mw@gyGMi4Jucof($sgvE&{1*u3K%q-D_uGV1yH-dzk@=E2}3i8~$G@_QF7oV=3}Zu`pC z*r`Oz8yK7re4(u^189jlr8vhJRZac5Nrx#NTxT#GvG)%XgP@TR8d|R*N&PC$k&jO2 zOwb-2^w)9WcT>Kb;_m{X!H457O9T_~*clAlcNH8KK&X-LG1jTbq=DAJ`dl3|^mh6E zVCK3xkZIU;VMtsG+Lw0*58;#nv9q+dP>?CmPWGw2pafQPK8NYX1vbQ$xI#0kx*7=?rToop3*)DE-pWer&+#&vJ!gD;YedR7hlW}cK0N{NcnyML z3);n511PEt;Opfg&)f0so!9=+m$kxo6Lz$;EWh~eX6S&O zvg?2JvSD6oOWTE==~dI?GgWgRl-m7YBNW2i6WjehG00E#79sWJ*TBL1da3;Cb60H` zhv0iop%Xs@q=|O;^06qC;;x}e0&^>S3zsxs2urmWQ+C0OO4RzF*mwYoL00KioxgF5 ze}ArhHh5>)e8;p?N|!>bC2yw1<0>88^1Hmi%2)F&a8}a*RBaiz+{1AVp)b zuWCiAp1>&|hyg0hGv*hSE%>(OSa1^}VbsET&_SP{=2Gz|Uzo9nib;Ib9iE5J5g#qa zS4=x*D(SmJD1PehJ>H0fo9{XmYTV)3q&V&xT_zF~?+=l1CRKk`NAvC=b*NN2PNUKG zg9=0!CtCJe@mg!h@b2!~5vSxojF2shKOlu6-$HxL12=AGET8;iBIUa#h5(uBX0G2o z(45I%e^4byqOlQi34n3!uDQam_ouE<`Cge0>s_UbuO#3{L@Li~5tcPoME6z3oVAmv z{S~25=m6W${5YSCj2? z$MIqN!m%ht>G@6GHuLnbt+k&jlFsu$yx9|^%L3uUNeqGcm&4oKSzLC9s;Aagz=;=U zXpsxBX*%qg4~1{abj`KV%L-PGz5TEGs7*yf;@XT_RtP_05<4(3-S%eP)!14iwNX&7 zk58;2E5MSbr*+N_Ua&5DJ-h1vS@LBjni_2IN=ghyP2&6hH2-$Dddg*&d~j$eZF#Z8 zN_v}%@bp)F=NH9g$x8|3JKtaDS(#1CZV)?TDBXl)$JSsQ&E`g0L5ZY0rW~Md3Wn$4 zSUFXM2IC~^8W#QBN!wJ)+2YP>3v7^pS~9L3E85KxEkA5nH!N3&<2Tnr6I`y3uj@9#3O7J)vL}=8qWURMARi7_;UPq{$JN&rF9w&MvhB5bh>lt8|uO7t#C%gN){; zUh-(7o02*B{~wCMPa5fLZi^%jGKsh45P)5jYPkK`#;W-9VriBC{Jn9>cQ@q9>r=OE z$&MIKW&+*1y4t`WT#Sq?1<-Lpfz|4;p#sDk^ycG@I(snEHyuf?o=qWGt}(fO*G#@;w^lUU zjVnS1#_@)u>m_j`eKd5HpYp}>Un0Bu_&_|9s@)(3zrpjomq6kV?*w}E60c&=>O^Ah z`pO|x!_oyI(?s)LRPK~~l$=LBn8@iKJC#y2w|g<)*!;SZbrDMWgt^i+<1NNeczH3k z{*rDCF_Gg>em4H!&Fo4L{_-31t1bs4Vqu>}60;(LNF3T885=|EI%votDm5 z@FvO+4$>p12H5aMC7oU#h+_s5>sMzJQ?t{#pSQr#O@3148!TJIZgCFwA(cLX2!Y;8 z;Zp`6oXf5(nVFUMqz8v@@YQAg(7^a6PqO*19Ot}s?5O-^Z0^YSAL8TS2meqf>+U@Sd=#Xs5c$TDnAS2+1>y#p-n; zj7CyXDL~nqo1D>{CdbYO_i`7sWfyZn#Y&ll#j?F5O2wQtV=2%F&fMkU(+X_iJ5K6o z_^60WVifoSz&ikae|5+hDqzmaPw|CM_%tR^^PxST`3oj*Yb~t>=~GnB!++YG1I*BO zk3>Q9{Ns1ZIbX=%6;@B%Uef38HW^n4Em&Lsl9APEaA(USL4QJ9ADHrL9S$$lZ4cQi zVVq>a$OU%;dr4=@Nmih*H)%!g^g)g5sTds?!WnlW0aKuAw~3tNlKGI9!>%7S8cy z9b=6sjXBKxFv*Gh1b-?&qE2;Jl05vNm-M1k4VJ33VsxH3m**m<4>wH3P6@$7PW5^A zL-h;(>j;dM9A;S?w=z$gvv2k?q}LDGz#cGBPzbRdnwgmvmq-I6X@7kDp>3E@d+7 zWn>Ny2v3nV?`Nm2lT987$#rP95rs5I-GiLrE>i*9Bv zjdqffyuON8nBrjB(^112KuS(``6p;1WMf=Nywjb`(;!emsZWkmOKMcCXtquuLu2?? z4O$9HyoJWLQ49W z%Y%QM(lcu$a(b@9B%6N#(o-s?Qq>jsL?}}7zQ2UF6$0rUtZqp{dYQZ5ax&U3cwb_k zWQm5YHrdYQNq3`^O-qM0!0gOJ#zY(GIO_~1jTCCf21Gt=lx0_zV0<) zDST-BpJrHIKH zKNT!-^1--0D|!O}8WZvqh(yrA!XJNHCHk*K%B(%RUO+u?GU)|+jQRC>uU6+3ncp=w zTRvFzruW9SbB|RoM79*_rH-l!JE(HeF@hSa(aFq3;MJ>e*V}KyyQl|Na=Ny){m`Gq zYbj47UawlolH~HFrVVFSO=|hv-mmOcw8klYoye_hLbonpQ0>!vS;<%}vGRgf5Nn&8 zW-yEdn}L~$pB>&G15gEpoU0(U1E97t&A@^fdUCW^`!dn%;9`=LwfL#3R~~cA-Fwp9 zR!K8>IbYE1fEgqjxJJaPahm3$?j@c21;kpi_$$?hs7@kfOvW0@#N@ME3L2Nl{@bN4 z%aWWjB<;^ZG_McQYqr->hJSVD#G?23emwWD_#y$8`U5vD>=YV_X^NL}f>z_@+fYmu zUtYDbvCZEubLJZmliFvgGO z^`UEc?ver~Y}{R!K=mSVhGamS+d^Y>$k_eWRQu!Q(lvd(4Mt|#drQ}TwgTcxXKIv= zvEJc!YP*6^zXO|aEcigFiP(7wPXy+!)ab&o=Lx*GrKCnhJmclusC za8Z9ctZqty5XLLL?tu{^E0`^9=Hxx>yzy?A91j^ASqtK1Y-v6gO{G$GasI&l9caY> zM%vGOsb_N^M&1e-tXOOYOReMhwwGqD*bdx|P_at6$ZvZq$qYM+C24Ker3Zf;GuCmv zVJIYg=^?uXo$w8OxRK^g2ga#>#qqUa!4tdN@o}0EwtnxsJOwY~C( zl$_7YS~M930P{E0HE?#ewOW-3H#%C!gEE_S@n~mn27j=)-rbO7Drp&8<1cfpcHm^J z-bmoPN7IiJ%th9K{4ql~FYVi}H~^G{qWO@ucRMvFbx?20y|QUNF_Ck7JglR-N7Lu= zoUqr(KB;<&wR;yKlz840hIT#iIO^GPd5X2Y1t3U2+@MB9Yz--7Y$2>B()~2Q!4r-T zj9QHws#$QTNr3O1MbB8lR;nPVMN^4TQMSpaQL|aw2%50bx%{OuLMq3!>|do5hfI2~ z-w&v;4TgoUU$XP5x)V}RM8hD*tO5Iug-K)Df*THfTk5sc?c zNgW*?8wvwJHqN^k5o*Q--wa2&k7YK<6d~bvXMZldT3nCZF)uDZBEH*;a3AbTOGTuI zwGXBCInJ^*gtaT1X8!8bn-sAq1~GMMXo^ zbF;@|$3b}FPfcMSh%zpCI4eF(hgw1Zw1u+Nfhd$<#GV8??PbekO47>q4|s$if(T@xd@)ckf?$WA6r@D`i^B0#B{N_$xCtTskHeuR zKBLw)y0sG>^Ne$6qY3#Z490X~E{^r}J!X;gGw?oR%k>LF$?GwQJo1bJ zkb$-bnP(@#)Z$`(gtJ|gZ{Vb(l4$ez?wQoNY3T25F+%x_E%K(VFDwfuXhKE8^|6#B zgx3GT0_6JS;zt!49bTj8iGaE%c3%)ACmO#B#_}^)@Kr$?twpnJy}^4PNtP}t1Bnle zc^Dc)wP)4A(>P(yOu*Hjg>>-aCgZNmR{M z3lWHO7j{p)&+uSvz@n~n=VX^IK9aw^4`lZvn+%*jmtABa2DlyrQxc^VBXU+rQ?D1@ zh-56lfYge!2l`Wc_uanogG%OX-=!czJ#{1r{To|-+Z2YjqWqULt&_!W+Y~Yk(?Y&E zviG_7B*z0R@l4Yk6OA3J+YO_*S*2IpW%2Bd{GXc9GwgcS$%OC;#PnZClOkNIZob8{kHb<-CtmjZ&*5!`!TOF%00DsWEr5(k(Kdc^t2kzl_QHP7 z;!QJ8Dt5YJLDyMyK;iOTV&r=(Gs@EHEdnGbfXFtS|G9}2gjYjcuEQn3x^J(tyk|3= zV$bnyw}saWMdaIcGB38elXJFS$zPBWE1!eAYny(fXST^?#2G2E+-&dN5=`5WM2Ws9 zWH!U?klOu3lgv;T8S6njZNc#Ts<|=e1yV3KW=Qt`J{yHqxCh#kOKGlpt;v*iyb*3}fNsyFQHY|FBOq9h+T7d%km^NjC{wJv>D0|-yc6^ zQr%fjD?haFD4jdh1lIt1GS|*|l{?IB6g0JUb@Rus1_@TQ@j9KSYxEQ=B4?QmqfrV4 zOU7ac&@;vcHv->OcTKcms9NaJSRke?lLxrV ztl7b`UtqTK6-F!KV$n>3 z4aEd~E61cqzA+mo*fCe0mVn<+)dn5&{YZ4_gE}hK=5=ja$GyBF+h~p~OeKMnv-;US zlu6mF8IG5YOdQ$w%|vv&20v}q7QokW@bGmxpuqf~eGow=ltFYj;+4A>+UKHs5J6l; zqhYIVljuSRH_}8wqU{A0Kz^~rjB8c!L(5r--orM7Dy~JOpXHnDgSV;^obH^Xw25L9 zzT#H=?_Njg8#4P+x%+{fDHBhsO$Is2)uLLMa=1Wk$4J^Uf3w2f3Z?z>Q@VP8VGA$& zmN9n|-))>OoRcX!Os|IA>NC1qqXVAFsi=)rC$qJ7*VK28C|-0$xp|?&!9o;AysiWZ*)? z%=V9Ksi)_ah|VGa=67Qm&NlLDGhvcB^1k7BzJRwd`uv~VD87v7ap`_J?Qv@QU*m;@ zg%x8j*&<&aDeZmV&l_$#!M^Zn=+VH&JwDeIVX?De;0?ek4sjziUl0^w6~OJ@vyi%7 zGETEg2uxWFPshzk3j5jE8WF3N4p~y$oe>VqEzjc3zpn_aqK5`*BQc(BDYZY_`lKKK z3{AH+jCc7KwU4S2uz5Wqt6#7-l;?07^EE7~SP{QIKp)bMe6Bk|{qDWI*NQ~o9|FF4 zdUtE4%>7?7+{f*;cH=wY&Lt#$l{mbMOGr8K?LVcTmrm|F260BVmz+;@>1!&{m;i-d zfMMvvoNp6j@wT(PTOeA+cz?;~v=sn3_|Us2E$R-$qHbb zye&gR7FRl=;v)vH@G#-Zv6@m1`}7i*m4RA)m0LiwXnREDNNmQEosc2p<^x1=xe4|&Y$+%VfrOpPt>#^ z($7>x%f&<$cVm;PJQ1WuISnGQrM%@I0?c4Yq}Jr(DWE<%Tv66s6Pc@iO8)ft=TRHV z6FbV8B~-pprAo{^XMe&?gpm@3u!_V7YO}S^=BGt^3_0Pkq-|3Xn1%u!u2Si<1h_M4YkId zUm4Y+JH1(uErGHwPb3_!oE~Yf7l%w!ox*I^SW#d$!&Z#(t)J_24B}BA+i$2Y0pj)< z;Ucwu-=^E!Re#;V>i!)PY=e&4-Bl#V_9{75pu+^#jK zT6X?M3zSkv*L7}!c&^w$82z1JPjuM{m+ZS-pT6AbvHwxs)Vgka2F zB+T@^zAkM|XYuT08@$lg&US#{YMxD)?_Bq*Q9US>&b_CdPJ{MS-`BK@Jj{MhwtC@+H~87Z4b>HUenhj6aVk+O__Kp7?6$lZ;ckaB(Tv6${zvTe;| z--teABpF!v$JlXd^z>8lSX%0b_;q z_trw*Pynvk`fkvFP{5JoCd+dBTJZu$Bm5%`-M2ceRcyX@&}A-f(}L$EN(a!qMk;Nl zOLb!6biLI(QX!-1TV@7IsmF^;x1pxsWqP#m+EhorSnu}eW3!+V?OeZd+W7( zpnhMwMVOu^awCPx%2Si~*f$CJYQKo=l5Bx+aDgr#YjbJQMs>?dArah@J!~25v6IA` z7Jb9~U3V-M)eAj&=Npvfj%2VSmFn9|kt*tYOn}VqfLnaegof%Yb>Zi*3fLmtnye_Q zMb8W=-@yPdg6sD8u7Z=DH!XvTv(&SvZxmp=aWI-Kr-~p>E-uEAN}Lr$&8hFMzd1}E zcAWQ4eJLx}zp3t_fz5OE>A#wCqN-own`FA=4am6E4hg^Re50dS8Y-#bf_Yd9m-$%O zp3$ZVf6XTDsp_}SEfOq*s>oVSr=Dqh;=i&A6=}k0dQ|dS{dgKNW zHW%gPCKjw+XO+?tmMNomarwXM$^Kk)TYUYpniT-Y1 zZv5Xl6(~bW53o(_JQ?E%PDE7wk&zEv^c*Upumk_Yv zR7{A<+~Ri7lq66~mClAiNO0aVf)Fa?4LuR66N5Q*Dc)QgV45Yu%v~atJ5Rvo@JU_Q z_aMcqd8oSge&~~;t9IZxa!n4+nuYdtn6`X4a+l1ZM=!aZ=}q*1^K%kMXWqOpT-J#J z5TTrsr(Kp82gQ2|_%YApBkqI;RUAV%SnR5W{??2-|Ga>UW}tTqAlcyc7=d}U#Zi6H zK2Q)Fgl|c)k|^`Lb_?8fLF5C`Z;?#-roa80zP+Sp2jG}uZ-WgOLBdK>JYbwJc})4I zLl)sD;71Qtp!kFp@@RDiN}5J12lgFv97Ptp+@DPWf29c##skOWtiDjLV@ZTP(1Nd{ zSk~74)%XF`!hcCb>PI|vLX!dJ465#rECA+m9Y1VR9e&9DF)ki&vgj=VBUEi0%#zfl z&jJPL%T*#3T`xYfJhE0%1FF+NrcpIC&LR$VV4g&TVR}R2VQ4<`kSwhv|F&r>ABZVo zmDUQgDaTkZeKySJxs&LVc5{-x8vz@aKQw z88?56Ezu-@tB~4pZwH@k&Z@NR+A37ya(xO-(jVrkz187s?+-@RAu6Vi({D`}lOA)? z19NCP0Uev>?vn@^ph3EDxB55;jM_~inUx`e&O-N3oG~i=)w>4*k46D|fapiOx&+<9 z``qOc@q-w7JACiaeh}W&H0S5pYj0-{M%MOb*NJHFhXRm-(_1DWCrc*GQ>j?{^hEZP zxBL`+4g_AspFyju0kAdwpDOFqABMz#qY2jEXdg^If0|EjciPcA zhWV!5tl{T!Z{wzU?#8%2@#;&a3;%_h&DTdh*C0#a`mPbPV$PnJ!nOqzgZzi{X?7i#ufyg<>@R-fH{rmec|C_d9h&{vw8cCHhy+ zY_-O_GIytahA&^?eare|AXcjO76WhlY|1hQ^Qs5PX+-~E><{4d^vW+dgfYxTwruGw zSX+gByYKB`m_9o98dG`tZNw^sgDeY$gIkmst%;h{%Zhf?Ie5zKDV>HB&59#9asr!lebSX@c*8? z#`iBOjqB;L+1&tr9;S;6N%vB5vEdLJb!=h2{BI5g;)|;5POiiE^6=HxMFw=KgQUFy zeswu{kWc*jyr{8>CsdM}E1T5o(DaSf#e2E3Ye2U{t<_AuVRjg8woyqt8&-Aowo2-q$ontL?W;e->)RN+ ztn>^)&{}-^H2P7XG1{rE405aQuy~pxWFu-AM7`7 z$-&i?R!KCdpTw&aZ#f--f0O=)nj4dNwY)!@77!Eq$({BFYj}Q*Z&$K{qKzoJO9R3;iuRNAZ&0_CZj)Z9p2Nu@tkOh?z<{|)i&7O zQkFsKE@KgjP;6j>ifB>0Xc6z;3s74&Ct|F;e}i*=SS7mu`&Doezfe4V^zn$Nk3JT@ zWzczx-9+&`?^@nm;Nzg#+*{Q$iv6yJ*I1}~7}D1*<@ka1Wh-i$5ARa_$wL0K9iEQE zd*H+Tg=e|HoX;ua_9bmh3{=f1hJ%x!wwpSA{r9KDMSKPS_qCJ$?lmH?K_1{&9XmQTGp+b$$Gu0~ zS{^WYo2e79$^7?8t8n^z37G%y5(xi!xy#-@glJB(N?_iZ_}2H`BJO|z6Hx(OJBuh( zYpgdh82w)-wI=CrPxb2WHP5Epxpo>pBnb2+XvLkHce(_pjo;QU;sN|m7ZC!B=*Zw- z4r%Ua9e{)t5!>%;6uRV0*lee-jsJh1NBi&di2O}t)RVNX^R*qShhk5@_%`UR^;>9t z-Dyn`^Htn=@7d_1n@C3|LGWJKL2+@>6QG~EE<7~I`q!hM0;PxPp@QPS18Fz=Q}myT zBzihF!zvHUs(br%xAKdB&(6Jg71bRj6&8*lz7icw(f7IID<=5#SUU|%HgpPd4pjpQ2^@Ig9H_y;Q-m zrJ%Yk#`?8RdMBk89sKhmXFdW3B_|c64;}X?pO04KZyGRD)osoAU;3Uac%QPFaPryw z=O^g?ZmF`Tp8%qhT(2K+RIdRf$SbGU=f8?%apYc zDRV0?C7`?p=zCfXENQRipU#Zz2Y# z0Hz-P1?PW}Mo*!k?1$21l2CR1Mi-lwx29nV~$8iFTgEQadwZZ5IN!toh?ld^x3is9c_LKE9 z$Y?{50l{Qc$Ve5Qt*yM|(}0vnLl)1>$fU+BLbm%@3I3`U5wTWkhF!(WiOqrw^sGPc zh0#_sF!^T`Sy*|+jWBLIW+gZs!~xo|g;wC%NkD{Fip%|gxs03Af4_~wlgx_F@ZXf8 zHOZeokT?TN=sSXKv}b4w1mTab_#Z&u;#%Tu0}mgKyK_PNE^#^5D<#b5uMP#i(uYLl z-0fY)Xg%k(6ADpXcqc6;f1gQO)C$(WXNc?R45j0MbIdg#JOJqn^hh3Npam#s zCt>wFli&ACY>a!}QUb}+>A7V|F@Z#-1}Oz~P>#f^ya&l#c{M$iI*;*lWn~p5BQwe0 z_%9piv|_#%H_1=ly;z*QYa!b#VCXqOzA|Ldt#ePzOz9gWf;1h9o8Ig72iWA|bX3MZ z(LeD6=r7UU?ki8QNjvEB&9~qbaoRJQuPnuOUJ-XTF9{Yk>P(?fR++yl4Lt-FeNT{M z{{Oe=%zrNkyr*#3xU4Mc^XG|Yo^QWo25=GC0n!>@u<1Aoo*{kZ*sQRQ`-754vq1Om zIYSL9b$~>FcKaXEfsC5Bj}(S4YZ7^_^Q*p3{|dC~RR(b%IGObV^*`_A?0B}vyRVtG z$V?OM5kSXmU0qYoB1t62Y1qEHD?Z&_%JmIm^N)crOoE79XBj9U4^~?hQGmw$o?sGM zwIL%8bY0$!KaMKGA0(=7(s~8}P_U$~%=y*}jsF&CaDNLly?@pu=g;cTZ2$2-6x>a9 z=>fIyn!8Gn^lckGwj54rD;e3Z-%WXvFW+|G8E9@o=0OU^j)KYlT@wUAQ%C-5gSapK z#Rnx!KqjXLXzQ38ns*|+$}rvTs7En-0UwCz(X@F|J>+`4XXg;Z^SZ(zW*C?bUxjoj zK_3v5M@L`vXJB(evX$E=HWfEl%3C1EkGUs1L@kO+`oo~^A8$^x@75n>#|KpxtT!9n zXFD#bV=gY&Z{y83Mub6fAcGgzv5>n04aksU7__rOBA2RyOuCfjS<-ZU&1r#@3uYBP>?mx+vL(HJ;bJEtL|J<(Kb$^o%HoT{hysZM!h;SV&`2DSK;rxUqv9&W5 z?GQl9Gj|K}eexp#^?c)gz^KG2Tfat;h936Rcrg&*TV~`MW)Gl$Uy18=oLK+0_J{%D z@Tx76iTK8$@1K4eJTA2Su#IAJzwr{-74HD0BSz5B21AMW8E*Iy|NgcV`({x7vvz7> zawqei|7pDON(zmw8MywX4vXQ*0>T72!nMgVB@xEwF+wp?7A1B8d& zSaxui59CEl>J~?$6de?gi~a3im%{%qk*#U@n@%?Wy^-ybwDQ*cR-p`h=R{zfBuxec z<58jX=1keCQ}bISk}jBY!|bb`U5w`~EFkv39T(fAi7>pKUu90&W`i!d=e#GlV7sSo z1UR{i`UQ4CH{G>5gsn`L+AVaELK)Wh@X`^V28^YX{N=brc3&$;KG^ZCN;qelPu@u27mn=VmA(`KaT z#OG&IGx{5wW_N+NIzQ0?j6enkE?2uYwF`W1fxgDQDF%nc;s9rXRtD-?#%uK)Yc3z& zuvD3XGJ$#el$A{4#l8A!Lv>bjeY872YsAUGhs+^>X{ixce+qo7tA5TNdH&VIvPdq5 z*P*yJeT}JICQTf8Aq!IG6ZKN|#a$Bj*1e?F|FwQ=<&<|S^G3gu7(jl`$2=#xEw>Ft zuqF}D%OznQb~1>3s)Qh5c}nvr-geLO)Bf`;h>WenHqiZ%zq|Pv0<~lXKcuiA9Anx# zTFxEhQO8pZdV7ot*lWQL)a$+`Qi<;7>q9pv%MU4uwN=Fbtr*<-ZGR~(R&eVrQSw;0 z4louqJA?Q*qqmiv7scW=ntGvR4ikP=kub0(a|!7CT9L@fAa0ZSmK4Pu*oKA*cYxkn z2JH1u``2w%m2^$^v)OL0!6i>#`vm>aReulDG`IPBYLMGD=Pt=pl`wkQR^1}p)U+Ge z{0S#UJHYQ9``b-%M@N*~zGR@HI&FScN7Dju=Y41XG!8?Up4aDg$la6(49kfEN;DQI z9M2ra1H=8<+p=(8Gc`yg5@>bRiRct7Q6x_S6&lwhhok6j^rOa5o*x1ie*hf8lE6S+ zxlPo84e22vfl;Gk4yyXqmFfaaViKSKKCoGT8W`i)(AA`O4Mi4Ax>UwJSR?Kr>-wQ) zKhx_I5tt7<|MkpidOI_nkT5ni`8`CLb^o;D8E)?rPHyDM>|MqF(PkQ0 z6)^fEtJ3{zves>2E4l2mrYHBj?reX3OUy1Xw$u+8H+qJyMj4o5&?wDVUHG?UH2B>h zKm5A~xfSSxcR{>JtryIKjQM*bmErYHoP$2&&vst?!>v^E7|q8wQ60KE-L+C19HXi>Kr4_z!~T{o*HyJ)7RcxI$2F)#g@^xF@dGG|A8q^ll?^Z#Q?&{s z#5NnflrhlSAXe4uL#sKhm=f1<*JN$i;HU4$R#MdI)B^oX#v(Sx*=QGe>LUX!Yf#BN zD5_EV)zX}Cpju~&@G2zgmoZsqJ2#xUR-tG|FBQl>pf851Y=1A6JWS#LDgc*=B0Pnk zn+V72SkL(zxo`D8W2Copm|7UpnVapKQ_Ly?+Wqze^j-;RRqqXCClX&LPBO%lq`g~D zOpGAQFF@*-#{*8NhhU=x36i!BDg=L9-Fs<&OQaUW3_3~SJA~OGr4^VobqF8-R-hYcT1`A_R>p&afpWaA5p9;&21l5oI zqg<-M6|PE_=`ZzhibOyWY(D6T5De@b7LMo?mYi24d`*cf|9kJ)P3PZEg^J=-fY&$O zc6LC6@b7YS5VaLB8f~c!89Siwk=I$Mt+B9L6sfg@j8kwKUBccwtL9-QnPOt01T}vT z=llI)F3?byPV`TiagAIRJlE-G8GNz@5n5YeT~^nM^9^xoIl<4*dBQbF|88Rvi@TV) zoW(^sOFW$!k$Wf3*}lQTP0aFnTZgOGnW)AXQQ9M4gD#wiRG^`&YfYA}yE^V#JXV$8 zRXui3q$;=1EV#&qv?BTKiqhEj&u-Ow3)OQ!Cp4+3Y2TJm2~BK{9LL$^GIHa59?9Ai zUwzU{HxM}eYJ_cdD6d4;O0uRl;FY|&X~T^%Hl|%;#6T`#XuKd5pHfivHV6{|VlBwd z+i|yPkZoaGinJoz?3s0A(#4sQY>3g@3@Ras1)E;CGm4V)5d$^xrtb$KNtn!eYdQ=zf-uB zpd$3mwxB&wGGD$+b}@>0?<7x#)WHKU1RkX)lnf=qvBGkxLK6b%yfmq_84vgAg~;D{ z9#{-{1RMgUe-S~UmoNuFFM7f`gYvVv5#|jFr%uXZ#Fvp_tL>Qj$XM{G7(xmdIK*N2M5R5ipJUKyy;EczUC_Z-_yAA zC{HV6KYW@2wHEaLt%riwCi0kqieQU14|F?tXi~QXq`wvE=d)`79R2+RoW~^sIM2(l z)`TBEohQ>~JqIEamMUWr7Qd$5aHL0_++Bvnc1n8uv{yJ=*>S;XG8>iNHylhAJ2A)n zSnMws?Pr}P^qsVjE4J^L$0H+uGY0s1@r;6z^?&C#fNj7*aSIkpRu9N8$=_kc-~x1& zIJte39H=*1%W!5jGay4paMNK>1DxOt&6D(6q9;6uUY|bzC^&fz;8le%rdHn#g!8YB z&N2jfMrvGvebhpcpio9^NLJSR6EUDsRmTxnbkB7z-{~rg`acJ^Ke_HhHl)1ar01zT6i2#q{(uICk13{V@YG$Zh?; zkw*fkx63L#j|2waKvnhNImg4s4M!7H&v)+)e=&&;7C8`R`WLkT%>!vEQc%W5u*zz4 zAWin&^LN!EMgA$DQ%m{9G_d2cE6gf4F(aAkz|UrIjC-1_#$DIql6D%Iss zpv`Rop?m;iAe=M16%FBh0hx%&uHi!luI#eZOm*!IT=0PIEF)!BI+(%TMIklMN+N-K8?SJ_>xvw_ml?}bwb)PpW!M?1AJQ0MmQEQ=!em`Uhjv)3FRZg3* zZ2}hO!3f5>!RY7clU)YoNOhuaYq#8GMC_rs!#RQbq(lJZ?tFoVmyNyev=Zh)8m`Nt zIywsGV%u{^!&aHU4h19cJjKezP^{c~ z7baiJ{1XJ2{Y`YfnF?=LbKQOKt)|ZFBR&$#968DZH43E*zt5?KYDd$TQw;wfTOsiY zkb##O6w8+gSLfQWW7XlOWfX+(Gec2YQ25$vXo=hUV7847*MwBV%Nh0qNpIld0R-LN zmZCa3+Nk!6w<9$!(qrz3O>m7N6+W4X>#o;3f2!M{K75cJaO|ZD5kSrD7znT~#GO8r zO!~$;C_KNUv{ROlb=(hcw0~_3l9G_iLZf@u(LnEhV!?`y_AlEC71H}bABcfvMPN`c zy+5a8hZQb_2#$hewS%6=(;c8hMe~MY3Sy4|q+LuGLaXxO!i)UHFng$n_oZ*Ob_h{b z3&7>+jgmDa0h)RWkv%O3Oww<*D$F${k=kks1$Yl}4Wr;HCko&iJsN*ilf4Ur9V@#U zy1((HD|3;)Xz3WtTN7D6wDt+H>$|wLKvsu{AU7U(HI3E^G|gnhRPnw0I=U7lvKe|G zQ97O>V_TECuq3h>d_R;|dC0#Tvv`m79726Wj(>$Tj5=>)>hGQ6vIDhvELgID}M?b(jCS4k6HP(<5BD>aZq3UlThzr4s zi?@;ODJ%E+w=|=OMQ%uzyeML?o=0U?m(aw|PX=EA4YNOiQ&7t@7)k}CYS$_nlDw=; z^4Avm4?Z&mz7qid<)zVQM;~jXD48y`+l_7vZ>cXeF0c~B*cHR+SvVx1)c7Cux9ZF$ zE?ZTp5~F*q}xcUpIpz7 ziw9oWRG<&=4Js3+=N_`AY~ZzCyB__H4;9XSvS=+QSK9Obs3Ar?ZaqHGcfoMec(llu z;e%_qv=%DiKb5))SQVvn0BEy!LGIp1H8Y$;hZ}oQUuch4j_ZgXPsHkd&HBuSeOSNN zmpnVyXSz`c?@l5e=RX$kAJ30dcpeQ1wLvc{tc>FX))#(GXhQH(x`Vv-V@}-zjkzZV z=v*Ek8U}e)Ohqe5`EZq>y8I|wmGcC8RMQ}wj|QdK_Y~_YkB*|FwmZD-i4Mi^2~kjN z8XbP!%>+9u?HKgzF4T<^*BN^$9cyHGNF^$mE9@WsjbDC&m7ofntd&t*T34ou)3&UF z!+9NjS+r}!kMG6aP^ zPvvs_8%n_Zm@YiW8t4JikaLQL{;A-FMro9%>LSo`j^{J`PxneFp7bnW5xG_XzlvmN%L^eqLzNRl?7!t#M7%N4@X?%=^^mzc*Kr*W>xEcajE0`Jk36V+VXaJt! zltG`~fjl|ljy^e$5&!3nC+fx+Srs6~W9I1X{T!e3Waa2>vGDnxBed*yxlZ_`LKj6c z7V+qE(hoeY4xxBD#r;3j-6SYxbY6Ps&k=JOE_Y0)51I%~{Np;T*2HvR6*L_Gp{`Z6 z7tRJYQ_ff1nHWtk-ZS1z;hAaMTIsgW&y zWc0ZB^Qvh3M(^z4Sb1XouojlJvgel`Gd1lMuDhwt-I5rjH=;M@P@pGya7QwiE|-L1 zy$7=t!b`iJ$?sL_u%B;L+i*_^Ie)xDLBPG!A=d^3v8_^DQ&7&)Klf?!^NxoXNpLa~u;(~|M*(*UDmV^ECHJdUuOUK9s zx(X#Xa)BiZLh4M$X~Ng&Xl~IG-)o~njsQqFvim(bMB*~7nb1UC#oTmA*nWx(5MeqL z{#w)AdwN^b0|;Ujb9n5k%&OG4f@}7lg<7cBwspbNBTjvBQS!Tsu0#`=PW>d5IDdTQ zYITw}#KDI>hWJQj!hEb_*t&XZ)Vg-PC9ReS1kjAMcq18E!mkssx}&hO5^%Q$kX5V4 z@IIHo<&5J8f(aL)=G-uT4VuReOeIVVRg(9rt=S;nO@W`?zpW%eCf=Xwc`~~C-A)~H z#SnZeABfCtlD^T-3!WZYaEaaMh(&cTUiLmHI}iQ*<+hY1Xwyp_+U z;U+DxD;4I~F&#_(8jo+r6MjYg@;T&_1&==6eRC&t(HozFoh(AF3<`u%(1{hAkPb2Z zaSIp7kN94=ciK|B@1d((82(fr$2;^~*|SqWiqXU^UZssTlQWoDQaj$CP`QHuUDtJc zSyEfy97AkYD861^cIlQs_$NBYbSAO6TIiZR%`fI1PDa9PCoKtg(j!CWfJ2kQ@CWi} zEbh#yVLWU+d`5ksCcKK~dGU%-$o`Yj)HUzqMLnsUnxL_Y%O2PqhghKZS}7erpK8X<3q*)6N256z96+svg7tjf-v z>mR`q^@~6dBNk))j9$*vr5#tz+WvTYbHTNq)l(xC3qwl#1p8(ezoYA)>pEvg)7jq^ zLM>mG+zQPHA|dNeDX@89n0DE-hy@o|DQ~Pc6>OU0m19Hq)m8-%fJoLwP18d}oZ0me zo$6Z)EhD5|aKQcUV~g0O3M2t`>o}s_1Fzb>stitU92!)ZAK8?#-kwjWn2)h6d|zUG zV*s6$vh#Nkkc7A3S$Azw>+H8@+A9FF7lvNqU3#Ha8c(>@P{h2*`{1I27=C2!A2aTOQl<9quVE;zL955;5Oyr`HpAo`0)EwbUid0g5CMACX&Xe28 z5HG$QJ2l2rCM%2Ka4_zaD&Nf(59k|X^O~)T*0vdN`x!j`^O64k&`{X*;=N!`tWD`c z>p0th|3aezNah5#FcQN;=YOQ}eN$;MqGV|h+%uvVo*Ug}NvEwKWPqvpZcNMG`cZ@R z2((LEO;f#vH$6f7AnGu%73AJ9E>QPhhVR#qOqD+2?E;hjLn@`|lR^^yX6^SL`n;t%>=;JSU?#!(GVUPb-(I$hxRC-Bbz1?J+ zL!-e`u!UOvyb$6w_JN$|VRG{#Rzq?=-ECcLKAbQWx_fU(K2v2kdiQ*A>|S5&-qIN| zv&W`67Ktu@yY-9>WD6>M0Uqh^AMjfJ?)5tb+_%~G>Png^{9rg~x1FINyX#azS}o~Q zssX2{O{^ya_BPkhE_3Vt7LSf_h^%mkxNv>Ac8h_UIXGo56txlwivMwDx7}*O39Kbu z?HPaPtvJ(49`_OHgx-c*!VwK{jng#HaV<4X1T5~**TT=i_lbMe&sQkktN2d%;=I+O zTJYD^TVN!Tpsa=TGYZEi=Pd2yD`ZD6rjIu>Tx{(R=78aJH{Oq!`GQetp8+UqHs_u;AmIf{a z!-_XRYR>E^pmIR}A|*l`?4^>;i{oBn+B(mqiLRqN=W$5?r=oD{Y2Sw%lNyK`NO-Nk0vZm56dntRptYU9-lw&yN@B!v*+YUHttPfo8=E`n}HR-8E1Bh5rWsUXhN*B)CG`^Rcs8qGm6g? zy$-CG<0p+>qEI3&I-hbdk8tOZ?s9Yspwiwod7 z5Q^3}4cDZrT0V3)9rNQ~jBJn|Fy)yt+!B;_<>mP)JK7sDih~V95~zyS7|({ zFI#4+X`41458is#Ai9bFb_ZsZ7&hl^w=7;xk=m~E*I~M0c zZ?6*$0tb!947uFM_I`YZOdCic&Uj7a%1#@0;*;r91>pz{R$4LHpZPTitelC7QB;_? z*vZ36(jNd^*%}w4_Hq~r@49|`0NZD6BZcdH0~ij-aFD|Y!JHYlb@>4NiRJ&*zkdJ6 zRjY9^W-o`8u)zCbnB)u^-(dUe?pM1s%>v7Pn{m^rkfAA!$v-*5{{m^yIcjj`M~Zi= zDRw7rbaZu-`==NBt1OZ8RBavTFIW;@)SUAy8h|czAi680E6EObN|VysKup`snR+Q# zTzd1~1u>}m&0s&jL?>)2LjJy6!|@Koebi7I^ospt#n+sRdlhr5wp;Pom$+22dL3>= V#9yMBjSBd?s%xTCqUHGT{{ew%Y()S7 literal 0 HcmV?d00001 diff --git a/mkdocs-site/assets/images/ansible-playbook-yaml.png b/mkdocs-site/assets/images/ansible-playbook-yaml.png new file mode 100644 index 0000000000000000000000000000000000000000..f68409482bc801f8da91c3ac819fcd36c501a3d4 GIT binary patch literal 111934 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 literal 0 HcmV?d00001 diff --git a/mkdocs-site/assets/images/ansible-role-structure.png b/mkdocs-site/assets/images/ansible-role-structure.png new file mode 100644 index 0000000000000000000000000000000000000000..4e924ea5bb8522a299ce91701f8f7e5e30ae3824 GIT binary patch literal 97179 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
  • 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 YUqqdUEWE+FkOufe=oo8%&~l9ZKbU?AX8-^I literal 0 HcmV?d00001 diff --git a/mkdocs-site/assets/images/practice.png b/mkdocs-site/assets/images/practice.png new file mode 100644 index 0000000000000000000000000000000000000000..e5a2f6fb384b4f3aad1c47c46baef6f5e334ff1d GIT binary patch literal 232024 zcmXtedpy&B{Jj!#FO<6_cZuXWmkH$>aw(NtQ6b4??zRcJ6_#7X7`Y`PQ6c7TNSj-R z#M~O@ve_^;eE0c%f8W3M-aqfh`~7;K=XsvzInR_^w&uKCVq7dNEWDN$*Bw|`PBAY} z=$vL}{%GFUQ2*~A*umU{r4}Qx%EEGi#qzqbQ-u3^8)xHV+-;GjIXdO|c6*`+IOn70 zbf(;&OoMALuH_B9;DDprCty2kZf< zOwlIvGA+lQ|31qw>jwt=Zuq)xE!aq?b_>j*6W%_vBLo1T1l)r6#MutZz?x}w{4gHq zzJ#ipxbbnt>bX)5F@O#wVvPDp5M}}L+5xg5TlT62-PaE6iBG~nPVBf8m|9Y$EUY(!2iUbv~ z*5UCdpcGw*EE~X?r3Gk0`yR$1kDhLeitUlXuGk+Lw12}fGbDc&5SOL_)%t$j5dO00D^?cC1 ztlzmG=Ch3iODQGqu0nXA!SlUEF3l#&-9mGBX-YI}s?-zc7zsjZcJ+<1-j&zx5Bm(I z$SGKLE8LLxBqWkvCm0iY*>RxBkT$rKbZgm8DPnHv$iVnQq4ggRal)0ahFTHb>5hh@ zv=0M*L-!J=yfnJ8z0kWy>7LO3iL&&xOQ?wSGyG65@z5f9vgNXGau_F7Nr0uw*vj_t zTd84OP%&^siTEMw%3A0sP!rNfc0KrgLMLfX{A++?$S4L3ZAD&xX5#L!QoZWogWwR> z)j`90x(41=j_CY@0O{H%a^3H!DxJ|oY9c*~N?if**ekRkTHU{P(@wA?VIt1X=J}c{ z09-UF%l3(746m_lAPw;(i|n*!ADRV$c#*_KD3=98gyX;`IP-NlpX;XvnMC)+#sD6a zG<`YF{W;DP|8Mx=489MaWnt9Ddf|Jp{#xjGp zbrH^`Xun9v-6M<6nkPDmCE;AC5@=$l{`u$0d{uPt-TResnnvtfEfWd&C49+<1NW%I zYWarFAUW@XGnYF!XdKb%)FkA-c7L;`ug30gUDbYlpt)gP%ApBlWLG>4p+^*x!l5~o zuBaS(P3Rc!%|N{-64rf(4iJ=!Gc%z$GHn83yP5}zq;`UZSy~Bdk`g}Vmb(tn1EY~;yfOP zITbZ}CpK$Hfzw?fA3*yEd;eoSOzC`G+E}#yd87zzdDOgn?;rwsQUCx6F$eiE{?=e; zDD+sO7gu4QF$!`ZNA?z?Rp1@X31)moTKngz7u#7c$OF#=%Qp_P1K^y4YcqDiPfTq+ zPJ7I?5NW$gZBwJ$2*Tg|zXnNVU_LujZOf z$-scMBPEh4u4;-&IT|9OQ%VDCyd)8YFkBz06h9-TgH6jN(XI z=HyCY7c=lj=wa2j-_MtAgfoGO2#7}t(|q&|Hq0#~FN!0l?at!Deu zU`n(z`&n}*-Z&0W**vJ*shkUPm1I2-TPT$Jv&2pkk`Y&>hksr{84q$#OSggZTW?j6 zxjS(yYHTjRun)CRPjXds``rj2t(T;5?zy4`-#~RpOwTDg#LbOP$0y?bjI9UvzaA1L zaHNXG(9LS#k1FaY!V1tj6MDZlc`MfnJ-J`-(B0y>0||%sS=1ajlgYtrJGLlopcU18 zA#4Wo-97@nUOn=I6GqtfEyYltcJAH2)_$Jx@$fv$-10^>wa4kMTwXJ?K<_Ec{7Q!Z zLnKPnr{TQ?X%o`?Hu!TgcGIZo2)-DtsI;-Bu%m~4ju=tFvT~;`@cLV!)~5`3r~X^M z5O*He%gq-H736*RKXH%9gw*vS%;P`FVHMG-QPg3`QKV#8UV-TXAec!4Fjq!1r7`DHG%+`i?%!N-V?{@o#-8mA>1SZufNoPPO1w1=EZR z7Z5w@5HJ`*7>P@^A0&LH4o{%_+s*2Ti)?JcOSc#82Ag`4ZUySApcn$viV^h$TTX2y zBd__&;cm2W%A7hK-9eepWi=AwsT_`!!ILOYF>9X*B_uFLe{H9V{@c)q!~I#XS$=K< zAoNu;#D|n9S!w%K-mcpKoKA0ji<3bHFFpQ`FWa_U7o*&f2slw+urCdzL=`V#oRef3 zUoFW6uXv_cK`e=0aiF;t+*Od6hi4|M%`i5}+3Jju70fSWoOv25t657+V_+RN=ReN+ z0fmde5X(*@p=ao>DoSfUsuy1nXP1nU$Q7X%zVg^SQYUIg3%u7#*J=i_AKzs(A*_Ob z?v3r@`m|;m4N*(vl%)>Xg;Uu&Y;s^HVcdM&J2AP z#TR)OirhZ}bCl*_VocTw?f8w*`o(Ee^$d*wXVZMBV|_Z?20$kNm!{!@+mf-n7oi}DYE2b(qZ z+yQ&xEBmyvk@j@5JWW6*926;OCgrt~@gsn*Fqk}|_bhn6uV!oo>F3>-y?GSQ(xYn* z@>U25LOT^X;QO3x!K48u0MqsAaOBIX+(?NYy&=Zjz~J)2YD^IC zu{_#5l&=MTK6`#fBwCbJVHr|Iav&rvy@C5i3Faf?a(i;~9vKhblQ8;#w|TUhxpFH_@O5OXNVnfSacjjsWU{wjCcY5t+ilWvt9CYb!z5>AFVePe#!lQ zxw|;F9A`FCS_K8K7LPcK?`;%-F%?U?!q10V@>d<9937v}wcCfV-%_~9=3#kF7o|j! zC0y|~?Ddma5srteB@X~&RE@k=jfNskjAQ=|c>v~U-rGqz=4r?3o!*7pZhNp2O7B{( z+K1N}$Jvy!1wp~qN+(Da1(1apkAwIdJT}6h(+>2PgtjR@1pYKSCJ9OCD372o0ojq0 zhvkQTqOiZTr=-T9kKd;?whd0dU8(txWbI;qSs5W=X+({6>1fd}8jDdyL8Zq{^NWk& z-He-CEXBEXYE28dAHeK#9Gx6?!F=UA>c$NLZh|x(Q$Wh|?oo3WBc4O;lXH3)4Xgce z(%+S!PhBk|i{duO>_f+R%)<>ki(}6X1w#*>qk5{v-*(KtQb-0S>qim0xI?gX&sGaM zqP%#so!IBh^+mQ)(R=RJEh8QSDc6Gs_HD1G0!j(Ewsv+qaf0U9N^Ph3UXb#hbYx0N zd?RcIYsAGcY00++1C081446>Rl^iWa)a%g-Wsstbab_7@1Xapcj=tsA36~5#sYy_g zSKMXG$P_$$T7mr>;`0jG%#hkOD4lfXo(^8J>5kS&^P`GBF}MLTp_dJ7oX419t^c;C z>}MXPO(oT3(F}MHX>nVB!eu}>31W77>Y1ba!-7BH+1be@E^93n{|FsvQvBqTW@iPCo>J#lM?eB=cKZVQ?k+3*GL`E#j$$Auu} zu|MnyqB;kJQRzJiv3BtMzgp`ag?82#7w>v|vxHh{dSCwP;Nkt)3C!+6q|V!ljmqRA zL6z;cu)c+YOGt;nH`eg%P$hc0jG-ebcS$x3x^7@or?qb(O3<#bJX-3HQHDt$z1)T0 ztDN$>oGcmE_R@%V_ru|9AUtvF^CDl;!};<0qA}Cp{G`tCyAd`u{3E}FH7yQ2&>Eyr z=PydFdZe+Hk~GIkT{HKpSu4udLwD}Qe8xeaIIQ9xgri@PMt-VaXSbi7MH8g- zjuMKsxC+A(weM$}huz=(lm)`=j`ewE@+~I9)tY?cKsKXxdP(2r%+hdY%K}ctXuoo2 z)RcZ$_oMExg=*%Ft$P+yc?Q~roSqW6(+DJ)>uQ|tSrkVy&ZlIx;oEFDEF}PeRfpL9 zZ6DYNF|-Kk!j;1?;1#7Jb>i0t7V#w;xm+IcX!6KEzs1mQ>nVOhBCIjUwfffxsTov+ zjTf1w7t<%6v%@UBr~4^oqq=1}rNzfh!)oR*bTa7oscTkp$g2;8h%0h+KrbAb+|CP> zkC+;w`dQg(Hrc?@D=s&$oLz{?I`?D_Wiw{ORTR9AZo-R37o`>Dw#2AFBd^E;Pf7#d zlDJlF6lvRXRi3*z{6XK>2f?L%KsPW}_&x!A5WH$Lzl<+vK{3U0$iS4*TR>@EB~xvp z!%q4HHj=ZUnl1i4O<^Em#y(Xw+~A3aj`@4*p#zDi=d!LFt<8i1x61j_G&)WDIc=%P z)TJ^Fo(Br%xYnPN925nyefO^>jiR?Eo8Ar776*mmtASh1kb&6$kk*S5Gj#v8C9JN;SUcHdZ4qUG3K?Cegb(Y!4{(}4wZux zl+87bputD5lh>*>_Yne7kygg7+ERic)`7%61^K3a;M@~n`;r8GrIwAq6pvFR&{_J|%gTtThI9D44Ip;>>SlJH5?w?AWh>hg9*kCdp~1MWj2 zb&qIA7=Jkb*S(9d=_7UT-BI`MSFdi4u|dEh~5tCUX5^=%CRoA{Llfj9FNm<^`8rpz@03Am?bO(!|a1` zm9?)60s3~qM+#lVOPO-~^0mtld}YVyx?#|rjx*-pa9uP2sT?{?B(1!;s1Vwb@>h*1 z&I}V{#lf)J()*+8kE(;7P3{0m<+5i&uWIJmq=666>=~i+rNG{L`chX3(Q{WUcR$&D z2%cD{y}4`gPPofDUSnOi*SUM~w=VP6Yj=^RxIAb*Hdx6(YSs6N4{klE}*2vH8!N4mjf z;oA;<|5iB2iva0^>*v%2A~Kf8XBchJV5cI zq0aYd9USy&9l6EGw?`2zLTXG=!L+REc6HhTW@>z2(pHK7-tg^`#y`k3Y&wFg$Q19m z!E*X>ki(_l_seC^6)hpkPuZ(?{;r;9j7N%jANVk46!%9~D$~&Y@6M-|lWe*P2NA}x z73(%!P&t%!)EWJNyV2(aPoaz8nAg2Vp~r~*DjEg6RJ%vM{XXk_V-l@Zw6BrU%idk@ zorCYK?TxG=CUpXEPmMzHG8<P53gunx#9Je{x_`MWP6S+#K>X~s)ojnPg!UiQs zeph%Yexkna{LQ7ockJPlWQoJ!6*;y-@t~s?(g$K|J*{UmmsL$xt!mdXe~bH@7SOtr zDMudS6E+<$UmF6p2ec0p7!V~UiiH;d{OrMadYruf+@zIZQdSFq9|esl9|G(8K+;Pp zzXhyEdf|O&6G62V{$D^nrQI<-y_kzDzJQCiN3UneylGa!Lw>Q=4BA^`{=nCU|=8< zfq6(8Mkw)WyVd<#CZxOra2xGNCQL4@Sg4RIWG?&FKeG{ZQk^Uw0aIcSFlV~3_W-7qL2ve2FfK_3zEqzm*Rgo{T^u#W zi80V=`re!m<(dSh+HiTgI>^dLOf2b~GGdEK0d?2xb!K4%yVd4^XfhZkWo5341=7$R z{GFft47*Y~J@jIDU}8+w{|#L7oT16I2>s5PKXp!wl$V_MA-XwqqV4>lS&R7)T3^yK zR&jzb94&*TKkW#YS@~|il`5hGv!p#D$+R=I&!BEws#lzu|Iz0~bz>C2-6{ol5p;j} z>T{~N0;C{QSgF4lk~|WSVk&`z|efNB}l(L5w2Zioiy|R=*y9=&E~8R*OrQR zeioSHXVfQ(GHcH!Kg0~g%Za6yPd?_fJzY0RDPPFdH#&!$p^W}?%OZ*#_>!2~w4O?@f}c#BdeY8??$37g^# zm|q#BSNA*!dNwdHIVJXwkcZ~M!3s_Y#Kh9R!9PMkCq1g|i@#0Fi?3Fx0S46Of6o#m zVq50>ob=4oupjpP;sE1QI|H{dDDi>13evCG>Jer+i|F}9_$>m1LF>&9%-NG)qbM%P ztn!SM!*Eq6H`D1hNG}L8vZU-kmIAx4&Zvjr9-vQs6-y10gma3S=Cn?NeKGg=5P4c5 zb7=^`YxBX@Ny^KAzI5Nk@yLnYk-o35$WH(`3{s<(T$xU;U>dHq@(RuLf3-i-;qBEj zW+1s1oo3Y}k7PU3?Xz29 zWLLCa7y7^@QNeO z9InlJaKH7vay?5*od%8^IMiQK@um4P6}BJ7jtkkWaV}o?FLKPqrOt57O&A0+Sex|F zYi|T###YXP-TmADGo5L)j-3(Vam}xw8=$^eB=BG{YtJ5`z&01utxzHJ@b13kS4KI> zD;2X9!*T8A6{(iIuY)%~WNvZK=1<#!Z9QJoe2gtrW2z|cy0Lj>LyG%3(M2K$Pccxw z!(ehwT&Mglyk1|-EnfnlaL{|IBy_=L52h)ST(3~Y)HbsM*OuyNe3#Q`gU!;v;<+5Sdiol`iyTC#Q@?$h$m=xg7$>;a z`s`omVpuwn#^e01+^TT2{%k`!`)!9eS8kR&ai32V#di9+u9mE#713IeB2Qeo_`tM0 z6Zjca)pk*Q%-Rv-ByJ_^s*ybBoBOf0y#XQ+)6USs2uE`n`N>*VHL2u^qRR9gb;5Am z$@Fj)_tGL<4@~+Xh;Zk9);D*qr?UImcprjfZ&Mg5O$59A(`xH#IYmkH{N&AAkUIF zj+kFJ|4yS8c)RL~Qfv0tDq`?IG+vPVdrG7{#y=_&VgTke9CV3u0Xcj#4 zm~VI94T$a)g2xHDh=(4Z?G=u7UPCNw>AF9`DyU{^ovFKL{1^Md0y8+1b+8I-$P&Cd z`e+HE5K@~Km#e&`ZX97nvW};V9ME=iS8`e5-E%i%C=>@ne3$~kRiIT!w~APRU{1LV zCk*jLWudb;wo{>p=??z7Qd@}CsU?F;Q96a}DOHlHP1=N3ROn(y%&LKS%9fubGAOIg zp3=Q3yvYryKqkiz7Y%Y#1$xYl-M1Q65Y7_;h4}%Qys=JGN*M(m* z{e`OCD8w{pJ^}m^r-5)#g%8g;^qo@Bn z;~JC&F=LiKFliLy#^KJF2v-G0$PE2&huK6iM-OJW*0NgE;E{^Zx`A|UvRNhTl4Q*4 zE*Gszve?}IV(#Yqi`ks?)^1v*r_`BDF2ORvlJVY{mI{2|us4F_|B6q{)gOXb{Xh=T zfcr7Ci{V>maz}lOJ2^+bK5uozivBP%DwQXI@_h!dXD&l`X9=xkUDMAfT7*k`213vI zQpa~}e!&y;*CLhZ2`hD-BYnPa-fuLBGS6W#LXhxkDwjQ4A}MbN7(wVtyH{DLAUyY9 zpe4Hbhf}r%-EUk-)TC!uw|67DW#GU0Ug%wV9@5>S&noMkp;sNcDa`5&b|>~ISh(x$^X2Jf+U=NIMSIynR*0u=Nf z0>mjXl9$7IBpV-0DCFAUtI460K>$O~r9Z-&(zc5z&>i>0@_@mEGlpQ&Cqehkqk2Lv zz7oIXqP79}qAx9JE4tVjJQh=l?;`|9S#-v5LAbEMHzkAl`~WG&L7+vijyG(DQBPXa zgMUM6Z(;=E;o9CBaKb|ENVr6wT;xt+xGT9=<7GtSSwhCH1lys>H?`0jK8X2ck1B7T z0n8Ob-Mix`4i>`*E4k=#qTs*b?El*ZSSd#m83F%7aoD+-k^8oC4VIDR#xI1NQU#cd zdp$lH3enxaS>j-db}^r0 z>iDj%IwhF&nsXZJJ-k^kJQZ{^%f-JdjT+wq*#Mhzc!Smj~zPTf-6-Y8*YkI zN`b#5%+@2dgWXdNXe(K9-@jq2gIr7PBo}RlFSD!tr~ON83-fkRP;?3(U+$Y(%^U5m zO`)}~f$j1fp$i(RuFH5)@X-uKZh@INUORhpm8aPD<(;Y#gc7Leq+PH8lo05>Gw(>) zhlWUMwaF16LIm8Bm&T}f_IBxrojAN?>xmvbZ1$I?>WHECz*)a7hm}sXs)ri^g(S~R zriYVkr($T*8F%k;88|%}@(Z%y66t+D%ZDGCl3AK>5Q?9! zW}VCx__#^2wABo?bs$N6XVRMQ?z;`w<{`IAvZFYBO2-^vR$rHhdm@z^*Ddj*lq?;F ztYA7hxlu?9idP&IWvdr%Q41k{#eT)#6(e9G*5-iGPYKDQaNY&eBa@qN7G3Q2?0R*= zU_S1cqwbE^fB6Z#4g5JqyqNz`1m=N)R|Fc=c+WSvFD;yF*wX!vUGqYL)U?=3BWh3F zR6#c6OTwGg`wZT-LI&T9;a>4E%nJ8;2*$FIZeMw6i6;Rw?}FRdi8mRrtO2*nW9yYx z{6({s1Gz>dI}`1L-&ZSu(N%;p60N`ZGbCB_Wtwo??3nL!UBeJU3_AGm5LSjyiVv0N)ItY;ZAv|KQuG#~H6 z(e8ykYr1ETjJc3v!{9hoR%uM#(H{h<~xMR$RA6Q;NhHcanSyD!DM zv0Fm1CRJtK+!0N?rP#DHrNf8qOev4%I;x^2`~x!}G5iR-Dp_ah)b!cSnPo&b{^5z< zn#ymXGXMTdoB}4vR+-l1KQkH)D>Ihc)otJhc|qf9{%vY`#l|BnvlIL!+o}U;0W*^V zepCq2gbqFmiWchju*aN>N?_KXTBWx(>de0YZIsHSgqTOP$D>8l)7cljllLkjpFrdYFv?Y4ckD`}HZ4YAx+(A4<{v&g{>Gx8{+-m#Os8?Z%+ zY3rLl3CMtLAcT0JFO(Vxalo1q93hgHNwIe1^iIE00%0AXm&-h(AXNCxVZ>{->4Y<= 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%0A%#;qB~pZ# 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

    1>vprQGcBM)9#;og<*c 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 Wi=Object.create;var gr=Object.defineProperty;var Vi=Object.getOwnPropertyDescriptor;var Di=Object.getOwnPropertyNames,Vt=Object.getOwnPropertySymbols,zi=Object.getPrototypeOf,yr=Object.prototype.hasOwnProperty,ao=Object.prototype.propertyIsEnumerable;var io=(e,t,r)=>t in e?gr(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r,$=(e,t)=>{for(var r in t||(t={}))yr.call(t,r)&&io(e,r,t[r]);if(Vt)for(var r of Vt(t))ao.call(t,r)&&io(e,r,t[r]);return e};var so=(e,t)=>{var r={};for(var o in e)yr.call(e,o)&&t.indexOf(o)<0&&(r[o]=e[o]);if(e!=null&&Vt)for(var o of Vt(e))t.indexOf(o)<0&&ao.call(e,o)&&(r[o]=e[o]);return r};var xr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var Ni=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of Di(t))!yr.call(e,n)&&n!==r&&gr(e,n,{get:()=>t[n],enumerable:!(o=Vi(t,n))||o.enumerable});return e};var Lt=(e,t,r)=>(r=e!=null?Wi(zi(e)):{},Ni(t||!e||!e.__esModule?gr(r,"default",{value:e,enumerable:!0}):r,e));var co=(e,t,r)=>new Promise((o,n)=>{var i=p=>{try{s(r.next(p))}catch(c){n(c)}},a=p=>{try{s(r.throw(p))}catch(c){n(c)}},s=p=>p.done?o(p.value):Promise.resolve(p.value).then(i,a);s((r=r.apply(e,t)).next())});var lo=xr((Er,po)=>{(function(e,t){typeof Er=="object"&&typeof po!="undefined"?t():typeof define=="function"&&define.amd?define(t):t()})(Er,function(){"use strict";function e(r){var o=!0,n=!1,i=null,a={text:!0,search:!0,url:!0,tel:!0,email:!0,password:!0,number:!0,date:!0,month:!0,week:!0,time:!0,datetime:!0,"datetime-local":!0};function s(k){return!!(k&&k!==document&&k.nodeName!=="HTML"&&k.nodeName!=="BODY"&&"classList"in k&&"contains"in k.classList)}function p(k){var ft=k.type,qe=k.tagName;return!!(qe==="INPUT"&&a[ft]&&!k.readOnly||qe==="TEXTAREA"&&!k.readOnly||k.isContentEditable)}function c(k){k.classList.contains("focus-visible")||(k.classList.add("focus-visible"),k.setAttribute("data-focus-visible-added",""))}function l(k){k.hasAttribute("data-focus-visible-added")&&(k.classList.remove("focus-visible"),k.removeAttribute("data-focus-visible-added"))}function f(k){k.metaKey||k.altKey||k.ctrlKey||(s(r.activeElement)&&c(r.activeElement),o=!0)}function u(k){o=!1}function d(k){s(k.target)&&(o||p(k.target))&&c(k.target)}function y(k){s(k.target)&&(k.target.classList.contains("focus-visible")||k.target.hasAttribute("data-focus-visible-added"))&&(n=!0,window.clearTimeout(i),i=window.setTimeout(function(){n=!1},100),l(k.target))}function L(k){document.visibilityState==="hidden"&&(n&&(o=!0),X())}function X(){document.addEventListener("mousemove",J),document.addEventListener("mousedown",J),document.addEventListener("mouseup",J),document.addEventListener("pointermove",J),document.addEventListener("pointerdown",J),document.addEventListener("pointerup",J),document.addEventListener("touchmove",J),document.addEventListener("touchstart",J),document.addEventListener("touchend",J)}function ee(){document.removeEventListener("mousemove",J),document.removeEventListener("mousedown",J),document.removeEventListener("mouseup",J),document.removeEventListener("pointermove",J),document.removeEventListener("pointerdown",J),document.removeEventListener("pointerup",J),document.removeEventListener("touchmove",J),document.removeEventListener("touchstart",J),document.removeEventListener("touchend",J)}function J(k){k.target.nodeName&&k.target.nodeName.toLowerCase()==="html"||(o=!1,ee())}document.addEventListener("keydown",f,!0),document.addEventListener("mousedown",u,!0),document.addEventListener("pointerdown",u,!0),document.addEventListener("touchstart",u,!0),document.addEventListener("visibilitychange",L,!0),X(),r.addEventListener("focus",d,!0),r.addEventListener("blur",y,!0),r.nodeType===Node.DOCUMENT_FRAGMENT_NODE&&r.host?r.host.setAttribute("data-js-focus-visible",""):r.nodeType===Node.DOCUMENT_NODE&&(document.documentElement.classList.add("js-focus-visible"),document.documentElement.setAttribute("data-js-focus-visible",""))}if(typeof window!="undefined"&&typeof document!="undefined"){window.applyFocusVisiblePolyfill=e;var t;try{t=new CustomEvent("focus-visible-polyfill-ready")}catch(r){t=document.createEvent("CustomEvent"),t.initCustomEvent("focus-visible-polyfill-ready",!1,!1,{})}window.dispatchEvent(t)}typeof document!="undefined"&&e(document)})});var qr=xr((dy,On)=>{"use strict";/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var $a=/["'&<>]/;On.exports=Pa;function Pa(e){var t=""+e,r=$a.exec(t);if(!r)return t;var o,n="",i=0,a=0;for(i=r.index;i{/*! + * clipboard.js v2.0.11 + * https://clipboardjs.com/ + * + * Licensed MIT © Zeno Rocha + */(function(t,r){typeof Rt=="object"&&typeof Yr=="object"?Yr.exports=r():typeof define=="function"&&define.amd?define([],r):typeof Rt=="object"?Rt.ClipboardJS=r():t.ClipboardJS=r()})(Rt,function(){return function(){var e={686:function(o,n,i){"use strict";i.d(n,{default:function(){return Ui}});var a=i(279),s=i.n(a),p=i(370),c=i.n(p),l=i(817),f=i.n(l);function u(D){try{return document.execCommand(D)}catch(A){return!1}}var d=function(A){var M=f()(A);return u("cut"),M},y=d;function L(D){var A=document.documentElement.getAttribute("dir")==="rtl",M=document.createElement("textarea");M.style.fontSize="12pt",M.style.border="0",M.style.padding="0",M.style.margin="0",M.style.position="absolute",M.style[A?"right":"left"]="-9999px";var F=window.pageYOffset||document.documentElement.scrollTop;return M.style.top="".concat(F,"px"),M.setAttribute("readonly",""),M.value=D,M}var X=function(A,M){var F=L(A);M.container.appendChild(F);var V=f()(F);return u("copy"),F.remove(),V},ee=function(A){var M=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body},F="";return typeof A=="string"?F=X(A,M):A instanceof HTMLInputElement&&!["text","search","url","tel","password"].includes(A==null?void 0:A.type)?F=X(A.value,M):(F=f()(A),u("copy")),F},J=ee;function k(D){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?k=function(M){return typeof M}:k=function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},k(D)}var ft=function(){var A=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},M=A.action,F=M===void 0?"copy":M,V=A.container,Y=A.target,$e=A.text;if(F!=="copy"&&F!=="cut")throw new Error('Invalid "action" value, use either "copy" or "cut"');if(Y!==void 0)if(Y&&k(Y)==="object"&&Y.nodeType===1){if(F==="copy"&&Y.hasAttribute("disabled"))throw new Error('Invalid "target" attribute. Please use "readonly" instead of "disabled" attribute');if(F==="cut"&&(Y.hasAttribute("readonly")||Y.hasAttribute("disabled")))throw new Error(`Invalid "target" attribute. You can't cut text from elements with "readonly" or "disabled" attributes`)}else throw new Error('Invalid "target" value, use a valid Element');if($e)return J($e,{container:V});if(Y)return F==="cut"?y(Y):J(Y,{container:V})},qe=ft;function Fe(D){"@babel/helpers - typeof";return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Fe=function(M){return typeof M}:Fe=function(M){return M&&typeof Symbol=="function"&&M.constructor===Symbol&&M!==Symbol.prototype?"symbol":typeof M},Fe(D)}function ki(D,A){if(!(D instanceof A))throw new TypeError("Cannot call a class as a function")}function no(D,A){for(var M=0;M0&&arguments[0]!==void 0?arguments[0]:{};this.action=typeof V.action=="function"?V.action:this.defaultAction,this.target=typeof V.target=="function"?V.target:this.defaultTarget,this.text=typeof V.text=="function"?V.text:this.defaultText,this.container=Fe(V.container)==="object"?V.container:document.body}},{key:"listenClick",value:function(V){var Y=this;this.listener=c()(V,"click",function($e){return Y.onClick($e)})}},{key:"onClick",value:function(V){var Y=V.delegateTarget||V.currentTarget,$e=this.action(Y)||"copy",Wt=qe({action:$e,container:this.container,target:this.target(Y),text:this.text(Y)});this.emit(Wt?"success":"error",{action:$e,text:Wt,trigger:Y,clearSelection:function(){Y&&Y.focus(),window.getSelection().removeAllRanges()}})}},{key:"defaultAction",value:function(V){return vr("action",V)}},{key:"defaultTarget",value:function(V){var Y=vr("target",V);if(Y)return document.querySelector(Y)}},{key:"defaultText",value:function(V){return vr("text",V)}},{key:"destroy",value:function(){this.listener.destroy()}}],[{key:"copy",value:function(V){var Y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{container:document.body};return J(V,Y)}},{key:"cut",value:function(V){return y(V)}},{key:"isSupported",value:function(){var V=arguments.length>0&&arguments[0]!==void 0?arguments[0]:["copy","cut"],Y=typeof V=="string"?[V]:V,$e=!!document.queryCommandSupported;return Y.forEach(function(Wt){$e=$e&&!!document.queryCommandSupported(Wt)}),$e}}]),M}(s()),Ui=Fi},828:function(o){var n=9;if(typeof Element!="undefined"&&!Element.prototype.matches){var i=Element.prototype;i.matches=i.matchesSelector||i.mozMatchesSelector||i.msMatchesSelector||i.oMatchesSelector||i.webkitMatchesSelector}function a(s,p){for(;s&&s.nodeType!==n;){if(typeof s.matches=="function"&&s.matches(p))return s;s=s.parentNode}}o.exports=a},438:function(o,n,i){var a=i(828);function s(l,f,u,d,y){var L=c.apply(this,arguments);return l.addEventListener(u,L,y),{destroy:function(){l.removeEventListener(u,L,y)}}}function p(l,f,u,d,y){return typeof l.addEventListener=="function"?s.apply(null,arguments):typeof u=="function"?s.bind(null,document).apply(null,arguments):(typeof l=="string"&&(l=document.querySelectorAll(l)),Array.prototype.map.call(l,function(L){return s(L,f,u,d,y)}))}function c(l,f,u,d){return function(y){y.delegateTarget=a(y.target,f),y.delegateTarget&&d.call(l,y)}}o.exports=p},879:function(o,n){n.node=function(i){return i!==void 0&&i instanceof HTMLElement&&i.nodeType===1},n.nodeList=function(i){var a=Object.prototype.toString.call(i);return i!==void 0&&(a==="[object NodeList]"||a==="[object HTMLCollection]")&&"length"in i&&(i.length===0||n.node(i[0]))},n.string=function(i){return typeof i=="string"||i instanceof String},n.fn=function(i){var a=Object.prototype.toString.call(i);return a==="[object Function]"}},370:function(o,n,i){var a=i(879),s=i(438);function p(u,d,y){if(!u&&!d&&!y)throw new Error("Missing required arguments");if(!a.string(d))throw new TypeError("Second argument must be a String");if(!a.fn(y))throw new TypeError("Third argument must be a Function");if(a.node(u))return c(u,d,y);if(a.nodeList(u))return l(u,d,y);if(a.string(u))return f(u,d,y);throw new TypeError("First argument must be a String, HTMLElement, HTMLCollection, or NodeList")}function c(u,d,y){return u.addEventListener(d,y),{destroy:function(){u.removeEventListener(d,y)}}}function l(u,d,y){return Array.prototype.forEach.call(u,function(L){L.addEventListener(d,y)}),{destroy:function(){Array.prototype.forEach.call(u,function(L){L.removeEventListener(d,y)})}}}function f(u,d,y){return s(document.body,u,d,y)}o.exports=p},817:function(o){function n(i){var a;if(i.nodeName==="SELECT")i.focus(),a=i.value;else if(i.nodeName==="INPUT"||i.nodeName==="TEXTAREA"){var s=i.hasAttribute("readonly");s||i.setAttribute("readonly",""),i.select(),i.setSelectionRange(0,i.value.length),s||i.removeAttribute("readonly"),a=i.value}else{i.hasAttribute("contenteditable")&&i.focus();var p=window.getSelection(),c=document.createRange();c.selectNodeContents(i),p.removeAllRanges(),p.addRange(c),a=p.toString()}return a}o.exports=n},279:function(o){function n(){}n.prototype={on:function(i,a,s){var p=this.e||(this.e={});return(p[i]||(p[i]=[])).push({fn:a,ctx:s}),this},once:function(i,a,s){var p=this;function c(){p.off(i,c),a.apply(s,arguments)}return c._=a,this.on(i,c,s)},emit:function(i){var a=[].slice.call(arguments,1),s=((this.e||(this.e={}))[i]||[]).slice(),p=0,c=s.length;for(p;p0&&i[i.length-1])&&(c[0]===6||c[0]===2)){r=0;continue}if(c[0]===3&&(!i||c[1]>i[0]&&c[1]=e.length&&(e=void 0),{value:e&&e[o++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function z(e,t){var r=typeof Symbol=="function"&&e[Symbol.iterator];if(!r)return e;var o=r.call(e),n,i=[],a;try{for(;(t===void 0||t-- >0)&&!(n=o.next()).done;)i.push(n.value)}catch(s){a={error:s}}finally{try{n&&!n.done&&(r=o.return)&&r.call(o)}finally{if(a)throw a.error}}return i}function q(e,t,r){if(r||arguments.length===2)for(var o=0,n=t.length,i;o1||p(d,L)})},y&&(n[d]=y(n[d])))}function p(d,y){try{c(o[d](y))}catch(L){u(i[0][3],L)}}function c(d){d.value instanceof nt?Promise.resolve(d.value.v).then(l,f):u(i[0][2],d)}function l(d){p("next",d)}function f(d){p("throw",d)}function u(d,y){d(y),i.shift(),i.length&&p(i[0][0],i[0][1])}}function uo(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],r;return t?t.call(e):(e=typeof he=="function"?he(e):e[Symbol.iterator](),r={},o("next"),o("throw"),o("return"),r[Symbol.asyncIterator]=function(){return this},r);function o(i){r[i]=e[i]&&function(a){return new Promise(function(s,p){a=e[i](a),n(s,p,a.done,a.value)})}}function n(i,a,s,p){Promise.resolve(p).then(function(c){i({value:c,done:s})},a)}}function H(e){return typeof e=="function"}function ut(e){var t=function(o){Error.call(o),o.stack=new Error().stack},r=e(t);return r.prototype=Object.create(Error.prototype),r.prototype.constructor=r,r}var zt=ut(function(e){return function(r){e(this),this.message=r?r.length+` errors occurred during unsubscription: +`+r.map(function(o,n){return n+1+") "+o.toString()}).join(` + `):"",this.name="UnsubscriptionError",this.errors=r}});function Qe(e,t){if(e){var r=e.indexOf(t);0<=r&&e.splice(r,1)}}var Ue=function(){function e(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}return e.prototype.unsubscribe=function(){var t,r,o,n,i;if(!this.closed){this.closed=!0;var a=this._parentage;if(a)if(this._parentage=null,Array.isArray(a))try{for(var s=he(a),p=s.next();!p.done;p=s.next()){var c=p.value;c.remove(this)}}catch(L){t={error:L}}finally{try{p&&!p.done&&(r=s.return)&&r.call(s)}finally{if(t)throw t.error}}else a.remove(this);var l=this.initialTeardown;if(H(l))try{l()}catch(L){i=L instanceof zt?L.errors:[L]}var f=this._finalizers;if(f){this._finalizers=null;try{for(var u=he(f),d=u.next();!d.done;d=u.next()){var y=d.value;try{ho(y)}catch(L){i=i!=null?i:[],L instanceof zt?i=q(q([],z(i)),z(L.errors)):i.push(L)}}}catch(L){o={error:L}}finally{try{d&&!d.done&&(n=u.return)&&n.call(u)}finally{if(o)throw o.error}}}if(i)throw new zt(i)}},e.prototype.add=function(t){var r;if(t&&t!==this)if(this.closed)ho(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(r=this._finalizers)!==null&&r!==void 0?r:[]).push(t)}},e.prototype._hasParent=function(t){var r=this._parentage;return r===t||Array.isArray(r)&&r.includes(t)},e.prototype._addParent=function(t){var r=this._parentage;this._parentage=Array.isArray(r)?(r.push(t),r):r?[r,t]:t},e.prototype._removeParent=function(t){var r=this._parentage;r===t?this._parentage=null:Array.isArray(r)&&Qe(r,t)},e.prototype.remove=function(t){var r=this._finalizers;r&&Qe(r,t),t instanceof e&&t._removeParent(this)},e.EMPTY=function(){var t=new e;return t.closed=!0,t}(),e}();var Tr=Ue.EMPTY;function Nt(e){return e instanceof Ue||e&&"closed"in e&&H(e.remove)&&H(e.add)&&H(e.unsubscribe)}function ho(e){H(e)?e():e.unsubscribe()}var Pe={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var dt={setTimeout:function(e,t){for(var r=[],o=2;o0},enumerable:!1,configurable:!0}),t.prototype._trySubscribe=function(r){return this._throwIfClosed(),e.prototype._trySubscribe.call(this,r)},t.prototype._subscribe=function(r){return this._throwIfClosed(),this._checkFinalizedStatuses(r),this._innerSubscribe(r)},t.prototype._innerSubscribe=function(r){var o=this,n=this,i=n.hasError,a=n.isStopped,s=n.observers;return i||a?Tr:(this.currentObservers=null,s.push(r),new Ue(function(){o.currentObservers=null,Qe(s,r)}))},t.prototype._checkFinalizedStatuses=function(r){var o=this,n=o.hasError,i=o.thrownError,a=o.isStopped;n?r.error(i):a&&r.complete()},t.prototype.asObservable=function(){var r=new j;return r.source=this,r},t.create=function(r,o){return new To(r,o)},t}(j);var To=function(e){oe(t,e);function t(r,o){var n=e.call(this)||this;return n.destination=r,n.source=o,n}return t.prototype.next=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.next)===null||n===void 0||n.call(o,r)},t.prototype.error=function(r){var o,n;(n=(o=this.destination)===null||o===void 0?void 0:o.error)===null||n===void 0||n.call(o,r)},t.prototype.complete=function(){var r,o;(o=(r=this.destination)===null||r===void 0?void 0:r.complete)===null||o===void 0||o.call(r)},t.prototype._subscribe=function(r){var o,n;return(n=(o=this.source)===null||o===void 0?void 0:o.subscribe(r))!==null&&n!==void 0?n:Tr},t}(g);var _r=function(e){oe(t,e);function t(r){var o=e.call(this)||this;return o._value=r,o}return Object.defineProperty(t.prototype,"value",{get:function(){return this.getValue()},enumerable:!1,configurable:!0}),t.prototype._subscribe=function(r){var o=e.prototype._subscribe.call(this,r);return!o.closed&&r.next(this._value),o},t.prototype.getValue=function(){var r=this,o=r.hasError,n=r.thrownError,i=r._value;if(o)throw n;return this._throwIfClosed(),i},t.prototype.next=function(r){e.prototype.next.call(this,this._value=r)},t}(g);var _t={now:function(){return(_t.delegate||Date).now()},delegate:void 0};var At=function(e){oe(t,e);function t(r,o,n){r===void 0&&(r=1/0),o===void 0&&(o=1/0),n===void 0&&(n=_t);var i=e.call(this)||this;return i._bufferSize=r,i._windowTime=o,i._timestampProvider=n,i._buffer=[],i._infiniteTimeWindow=!0,i._infiniteTimeWindow=o===1/0,i._bufferSize=Math.max(1,r),i._windowTime=Math.max(1,o),i}return t.prototype.next=function(r){var o=this,n=o.isStopped,i=o._buffer,a=o._infiniteTimeWindow,s=o._timestampProvider,p=o._windowTime;n||(i.push(r),!a&&i.push(s.now()+p)),this._trimBuffer(),e.prototype.next.call(this,r)},t.prototype._subscribe=function(r){this._throwIfClosed(),this._trimBuffer();for(var o=this._innerSubscribe(r),n=this,i=n._infiniteTimeWindow,a=n._buffer,s=a.slice(),p=0;p0?e.prototype.schedule.call(this,r,o):(this.delay=o,this.state=r,this.scheduler.flush(this),this)},t.prototype.execute=function(r,o){return o>0||this.closed?e.prototype.execute.call(this,r,o):this._execute(r,o)},t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!=null&&n>0||n==null&&this.delay>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.flush(this),0)},t}(gt);var Lo=function(e){oe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t}(yt);var kr=new Lo(Oo);var Mo=function(e){oe(t,e);function t(r,o){var n=e.call(this,r,o)||this;return n.scheduler=r,n.work=o,n}return t.prototype.requestAsyncId=function(r,o,n){return n===void 0&&(n=0),n!==null&&n>0?e.prototype.requestAsyncId.call(this,r,o,n):(r.actions.push(this),r._scheduled||(r._scheduled=vt.requestAnimationFrame(function(){return r.flush(void 0)})))},t.prototype.recycleAsyncId=function(r,o,n){var i;if(n===void 0&&(n=0),n!=null?n>0:this.delay>0)return e.prototype.recycleAsyncId.call(this,r,o,n);var a=r.actions;o!=null&&o===r._scheduled&&((i=a[a.length-1])===null||i===void 0?void 0:i.id)!==o&&(vt.cancelAnimationFrame(o),r._scheduled=void 0)},t}(gt);var _o=function(e){oe(t,e);function t(){return e!==null&&e.apply(this,arguments)||this}return t.prototype.flush=function(r){this._active=!0;var o;r?o=r.id:(o=this._scheduled,this._scheduled=void 0);var n=this.actions,i;r=r||n.shift();do if(i=r.execute(r.state,r.delay))break;while((r=n[0])&&r.id===o&&n.shift());if(this._active=!1,i){for(;(r=n[0])&&r.id===o&&n.shift();)r.unsubscribe();throw i}},t}(yt);var me=new _o(Mo);var S=new j(function(e){return e.complete()});function Kt(e){return e&&H(e.schedule)}function Hr(e){return e[e.length-1]}function Xe(e){return H(Hr(e))?e.pop():void 0}function ke(e){return Kt(Hr(e))?e.pop():void 0}function Yt(e,t){return typeof Hr(e)=="number"?e.pop():t}var xt=function(e){return e&&typeof e.length=="number"&&typeof e!="function"};function Bt(e){return H(e==null?void 0:e.then)}function Gt(e){return H(e[bt])}function Jt(e){return Symbol.asyncIterator&&H(e==null?void 0:e[Symbol.asyncIterator])}function Xt(e){return new TypeError("You provided "+(e!==null&&typeof e=="object"?"an invalid object":"'"+e+"'")+" where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.")}function Zi(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var Zt=Zi();function er(e){return H(e==null?void 0:e[Zt])}function tr(e){return fo(this,arguments,function(){var r,o,n,i;return Dt(this,function(a){switch(a.label){case 0:r=e.getReader(),a.label=1;case 1:a.trys.push([1,,9,10]),a.label=2;case 2:return[4,nt(r.read())];case 3:return o=a.sent(),n=o.value,i=o.done,i?[4,nt(void 0)]:[3,5];case 4:return[2,a.sent()];case 5:return[4,nt(n)];case 6:return[4,a.sent()];case 7:return a.sent(),[3,2];case 8:return[3,10];case 9:return r.releaseLock(),[7];case 10:return[2]}})})}function rr(e){return H(e==null?void 0:e.getReader)}function U(e){if(e instanceof j)return e;if(e!=null){if(Gt(e))return ea(e);if(xt(e))return ta(e);if(Bt(e))return ra(e);if(Jt(e))return Ao(e);if(er(e))return oa(e);if(rr(e))return na(e)}throw Xt(e)}function ea(e){return new j(function(t){var r=e[bt]();if(H(r.subscribe))return r.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function ta(e){return new j(function(t){for(var r=0;r=2;return function(o){return o.pipe(e?b(function(n,i){return e(n,i,o)}):le,Te(1),r?Ve(t):Qo(function(){return new nr}))}}function jr(e){return e<=0?function(){return S}:E(function(t,r){var o=[];t.subscribe(T(r,function(n){o.push(n),e=2,!0))}function pe(e){e===void 0&&(e={});var t=e.connector,r=t===void 0?function(){return new g}:t,o=e.resetOnError,n=o===void 0?!0:o,i=e.resetOnComplete,a=i===void 0?!0:i,s=e.resetOnRefCountZero,p=s===void 0?!0:s;return function(c){var l,f,u,d=0,y=!1,L=!1,X=function(){f==null||f.unsubscribe(),f=void 0},ee=function(){X(),l=u=void 0,y=L=!1},J=function(){var k=l;ee(),k==null||k.unsubscribe()};return E(function(k,ft){d++,!L&&!y&&X();var qe=u=u!=null?u:r();ft.add(function(){d--,d===0&&!L&&!y&&(f=Ur(J,p))}),qe.subscribe(ft),!l&&d>0&&(l=new at({next:function(Fe){return qe.next(Fe)},error:function(Fe){L=!0,X(),f=Ur(ee,n,Fe),qe.error(Fe)},complete:function(){y=!0,X(),f=Ur(ee,a),qe.complete()}}),U(k).subscribe(l))})(c)}}function Ur(e,t){for(var r=[],o=2;oe.next(document)),e}function P(e,t=document){return Array.from(t.querySelectorAll(e))}function R(e,t=document){let r=fe(e,t);if(typeof r=="undefined")throw new ReferenceError(`Missing element: expected "${e}" to be present`);return r}function fe(e,t=document){return t.querySelector(e)||void 0}function Ie(){var e,t,r,o;return(o=(r=(t=(e=document.activeElement)==null?void 0:e.shadowRoot)==null?void 0:t.activeElement)!=null?r:document.activeElement)!=null?o:void 0}var wa=O(h(document.body,"focusin"),h(document.body,"focusout")).pipe(_e(1),Q(void 0),m(()=>Ie()||document.body),G(1));function et(e){return wa.pipe(m(t=>e.contains(t)),K())}function Ht(e,t){return C(()=>O(h(e,"mouseenter").pipe(m(()=>!0)),h(e,"mouseleave").pipe(m(()=>!1))).pipe(t?kt(r=>Le(+!r*t)):le,Q(e.matches(":hover"))))}function Jo(e,t){if(typeof t=="string"||typeof t=="number")e.innerHTML+=t.toString();else if(t instanceof Node)e.appendChild(t);else if(Array.isArray(t))for(let r of t)Jo(e,r)}function x(e,t,...r){let o=document.createElement(e);if(t)for(let n of Object.keys(t))typeof t[n]!="undefined"&&(typeof t[n]!="boolean"?o.setAttribute(n,t[n]):o.setAttribute(n,""));for(let n of r)Jo(o,n);return o}function sr(e){if(e>999){let t=+((e-950)%1e3>99);return`${((e+1e-6)/1e3).toFixed(t)}k`}else return e.toString()}function wt(e){let t=x("script",{src:e});return C(()=>(document.head.appendChild(t),O(h(t,"load"),h(t,"error").pipe(v(()=>$r(()=>new ReferenceError(`Invalid script: ${e}`))))).pipe(m(()=>{}),_(()=>document.head.removeChild(t)),Te(1))))}var Xo=new g,Ta=C(()=>typeof ResizeObserver=="undefined"?wt("https://unpkg.com/resize-observer-polyfill"):I(void 0)).pipe(m(()=>new ResizeObserver(e=>e.forEach(t=>Xo.next(t)))),v(e=>O(Ye,I(e)).pipe(_(()=>e.disconnect()))),G(1));function ce(e){return{width:e.offsetWidth,height:e.offsetHeight}}function ge(e){let t=e;for(;t.clientWidth===0&&t.parentElement;)t=t.parentElement;return Ta.pipe(w(r=>r.observe(t)),v(r=>Xo.pipe(b(o=>o.target===t),_(()=>r.unobserve(t)))),m(()=>ce(e)),Q(ce(e)))}function Tt(e){return{width:e.scrollWidth,height:e.scrollHeight}}function cr(e){let t=e.parentElement;for(;t&&(e.scrollWidth<=t.scrollWidth&&e.scrollHeight<=t.scrollHeight);)t=(e=t).parentElement;return t?e:void 0}function Zo(e){let t=[],r=e.parentElement;for(;r;)(e.clientWidth>r.clientWidth||e.clientHeight>r.clientHeight)&&t.push(r),r=(e=r).parentElement;return t.length===0&&t.push(document.documentElement),t}function De(e){return{x:e.offsetLeft,y:e.offsetTop}}function en(e){let t=e.getBoundingClientRect();return{x:t.x+window.scrollX,y:t.y+window.scrollY}}function tn(e){return O(h(window,"load"),h(window,"resize")).pipe(Me(0,me),m(()=>De(e)),Q(De(e)))}function pr(e){return{x:e.scrollLeft,y:e.scrollTop}}function ze(e){return O(h(e,"scroll"),h(window,"scroll"),h(window,"resize")).pipe(Me(0,me),m(()=>pr(e)),Q(pr(e)))}var rn=new g,Sa=C(()=>I(new IntersectionObserver(e=>{for(let t of e)rn.next(t)},{threshold:0}))).pipe(v(e=>O(Ye,I(e)).pipe(_(()=>e.disconnect()))),G(1));function tt(e){return Sa.pipe(w(t=>t.observe(e)),v(t=>rn.pipe(b(({target:r})=>r===e),_(()=>t.unobserve(e)),m(({isIntersecting:r})=>r))))}function on(e,t=16){return ze(e).pipe(m(({y:r})=>{let o=ce(e),n=Tt(e);return r>=n.height-o.height-t}),K())}var lr={drawer:R("[data-md-toggle=drawer]"),search:R("[data-md-toggle=search]")};function nn(e){return lr[e].checked}function Je(e,t){lr[e].checked!==t&&lr[e].click()}function Ne(e){let t=lr[e];return h(t,"change").pipe(m(()=>t.checked),Q(t.checked))}function Oa(e,t){switch(e.constructor){case HTMLInputElement:return e.type==="radio"?/^Arrow/.test(t):!0;case HTMLSelectElement:case HTMLTextAreaElement:return!0;default:return e.isContentEditable}}function La(){return O(h(window,"compositionstart").pipe(m(()=>!0)),h(window,"compositionend").pipe(m(()=>!1))).pipe(Q(!1))}function an(){let e=h(window,"keydown").pipe(b(t=>!(t.metaKey||t.ctrlKey)),m(t=>({mode:nn("search")?"search":"global",type:t.key,claim(){t.preventDefault(),t.stopPropagation()}})),b(({mode:t,type:r})=>{if(t==="global"){let o=Ie();if(typeof o!="undefined")return!Oa(o,r)}return!0}),pe());return La().pipe(v(t=>t?S:e))}function ye(){return new URL(location.href)}function lt(e,t=!1){if(B("navigation.instant")&&!t){let r=x("a",{href:e.href});document.body.appendChild(r),r.click(),r.remove()}else location.href=e.href}function sn(){return new g}function cn(){return location.hash.slice(1)}function pn(e){let t=x("a",{href:e});t.addEventListener("click",r=>r.stopPropagation()),t.click()}function Ma(e){return O(h(window,"hashchange"),e).pipe(m(cn),Q(cn()),b(t=>t.length>0),G(1))}function ln(e){return Ma(e).pipe(m(t=>fe(`[id="${t}"]`)),b(t=>typeof t!="undefined"))}function $t(e){let t=matchMedia(e);return ir(r=>t.addListener(()=>r(t.matches))).pipe(Q(t.matches))}function mn(){let e=matchMedia("print");return O(h(window,"beforeprint").pipe(m(()=>!0)),h(window,"afterprint").pipe(m(()=>!1))).pipe(Q(e.matches))}function zr(e,t){return e.pipe(v(r=>r?t():S))}function Nr(e,t){return new j(r=>{let o=new XMLHttpRequest;return o.open("GET",`${e}`),o.responseType="blob",o.addEventListener("load",()=>{o.status>=200&&o.status<300?(r.next(o.response),r.complete()):r.error(new Error(o.statusText))}),o.addEventListener("error",()=>{r.error(new Error("Network error"))}),o.addEventListener("abort",()=>{r.complete()}),typeof(t==null?void 0:t.progress$)!="undefined"&&(o.addEventListener("progress",n=>{var i;if(n.lengthComputable)t.progress$.next(n.loaded/n.total*100);else{let a=(i=o.getResponseHeader("Content-Length"))!=null?i:0;t.progress$.next(n.loaded/+a*100)}}),t.progress$.next(5)),o.send(),()=>o.abort()})}function je(e,t){return Nr(e,t).pipe(v(r=>r.text()),m(r=>JSON.parse(r)),G(1))}function fn(e,t){let r=new DOMParser;return Nr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/html")),G(1))}function un(e,t){let r=new DOMParser;return Nr(e,t).pipe(v(o=>o.text()),m(o=>r.parseFromString(o,"text/xml")),G(1))}function dn(){return{x:Math.max(0,scrollX),y:Math.max(0,scrollY)}}function hn(){return O(h(window,"scroll",{passive:!0}),h(window,"resize",{passive:!0})).pipe(m(dn),Q(dn()))}function bn(){return{width:innerWidth,height:innerHeight}}function vn(){return h(window,"resize",{passive:!0}).pipe(m(bn),Q(bn()))}function gn(){return N([hn(),vn()]).pipe(m(([e,t])=>({offset:e,size:t})),G(1))}function mr(e,{viewport$:t,header$:r}){let o=t.pipe(te("size")),n=N([o,r]).pipe(m(()=>De(e)));return N([r,t,n]).pipe(m(([{height:i},{offset:a,size:s},{x:p,y:c}])=>({offset:{x:a.x-p,y:a.y-c+i},size:s})))}function _a(e){return h(e,"message",t=>t.data)}function Aa(e){let t=new g;return t.subscribe(r=>e.postMessage(r)),t}function yn(e,t=new Worker(e)){let r=_a(t),o=Aa(t),n=new g;n.subscribe(o);let i=o.pipe(Z(),ie(!0));return n.pipe(Z(),Re(r.pipe(W(i))),pe())}var Ca=R("#__config"),St=JSON.parse(Ca.textContent);St.base=`${new URL(St.base,ye())}`;function xe(){return St}function B(e){return St.features.includes(e)}function Ee(e,t){return typeof t!="undefined"?St.translations[e].replace("#",t.toString()):St.translations[e]}function Se(e,t=document){return R(`[data-md-component=${e}]`,t)}function ae(e,t=document){return P(`[data-md-component=${e}]`,t)}function ka(e){let t=R(".md-typeset > :first-child",e);return h(t,"click",{once:!0}).pipe(m(()=>R(".md-typeset",e)),m(r=>({hash:__md_hash(r.innerHTML)})))}function xn(e){if(!B("announce.dismiss")||!e.childElementCount)return S;if(!e.hidden){let t=R(".md-typeset",e);__md_hash(t.innerHTML)===__md_get("__announce")&&(e.hidden=!0)}return C(()=>{let t=new g;return t.subscribe(({hash:r})=>{e.hidden=!0,__md_set("__announce",r)}),ka(e).pipe(w(r=>t.next(r)),_(()=>t.complete()),m(r=>$({ref:e},r)))})}function Ha(e,{target$:t}){return t.pipe(m(r=>({hidden:r!==e})))}function En(e,t){let r=new g;return r.subscribe(({hidden:o})=>{e.hidden=o}),Ha(e,t).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))}function Pt(e,t){return t==="inline"?x("div",{class:"md-tooltip md-tooltip--inline",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"})):x("div",{class:"md-tooltip",id:e,role:"tooltip"},x("div",{class:"md-tooltip__inner md-typeset"}))}function wn(...e){return x("div",{class:"md-tooltip2",role:"tooltip"},x("div",{class:"md-tooltip2__inner md-typeset"},e))}function Tn(e,t){if(t=t?`${t}_annotation_${e}`:void 0,t){let r=t?`#${t}`:void 0;return x("aside",{class:"md-annotation",tabIndex:0},Pt(t),x("a",{href:r,class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}else return x("aside",{class:"md-annotation",tabIndex:0},Pt(t),x("span",{class:"md-annotation__index",tabIndex:-1},x("span",{"data-md-annotation-id":e})))}function Sn(e){return x("button",{class:"md-clipboard md-icon",title:Ee("clipboard.copy"),"data-clipboard-target":`#${e} > code`})}var Ln=Lt(qr());function Qr(e,t){let r=t&2,o=t&1,n=Object.keys(e.terms).filter(p=>!e.terms[p]).reduce((p,c)=>[...p,x("del",null,(0,Ln.default)(c))," "],[]).slice(0,-1),i=xe(),a=new URL(e.location,i.base);B("search.highlight")&&a.searchParams.set("h",Object.entries(e.terms).filter(([,p])=>p).reduce((p,[c])=>`${p} ${c}`.trim(),""));let{tags:s}=xe();return x("a",{href:`${a}`,class:"md-search-result__link",tabIndex:-1},x("article",{class:"md-search-result__article md-typeset","data-md-score":e.score.toFixed(2)},r>0&&x("div",{class:"md-search-result__icon md-icon"}),r>0&&x("h1",null,e.title),r<=0&&x("h2",null,e.title),o>0&&e.text.length>0&&e.text,e.tags&&x("nav",{class:"md-tags"},e.tags.map(p=>{let c=s?p in s?`md-tag-icon md-tag--${s[p]}`:"md-tag-icon":"";return x("span",{class:`md-tag ${c}`},p)})),o>0&&n.length>0&&x("p",{class:"md-search-result__terms"},Ee("search.result.term.missing"),": ",...n)))}function Mn(e){let t=e[0].score,r=[...e],o=xe(),n=r.findIndex(l=>!`${new URL(l.location,o.base)}`.includes("#")),[i]=r.splice(n,1),a=r.findIndex(l=>l.scoreQr(l,1)),...p.length?[x("details",{class:"md-search-result__more"},x("summary",{tabIndex:-1},x("div",null,p.length>0&&p.length===1?Ee("search.result.more.one"):Ee("search.result.more.other",p.length))),...p.map(l=>Qr(l,1)))]:[]];return x("li",{class:"md-search-result__item"},c)}function _n(e){return x("ul",{class:"md-source__facts"},Object.entries(e).map(([t,r])=>x("li",{class:`md-source__fact md-source__fact--${t}`},typeof r=="number"?sr(r):r)))}function Kr(e){let t=`tabbed-control tabbed-control--${e}`;return x("div",{class:t,hidden:!0},x("button",{class:"tabbed-button",tabIndex:-1,"aria-hidden":"true"}))}function An(e){return x("div",{class:"md-typeset__scrollwrap"},x("div",{class:"md-typeset__table"},e))}function Ra(e){var o;let t=xe(),r=new URL(`../${e.version}/`,t.base);return x("li",{class:"md-version__item"},x("a",{href:`${r}`,class:"md-version__link"},e.title,((o=t.version)==null?void 0:o.alias)&&e.aliases.length>0&&x("span",{class:"md-version__alias"},e.aliases[0])))}function Cn(e,t){var o;let r=xe();return e=e.filter(n=>{var i;return!((i=n.properties)!=null&&i.hidden)}),x("div",{class:"md-version"},x("button",{class:"md-version__current","aria-label":Ee("select.version")},t.title,((o=r.version)==null?void 0:o.alias)&&t.aliases.length>0&&x("span",{class:"md-version__alias"},t.aliases[0])),x("ul",{class:"md-version__list"},e.map(Ra)))}var Ia=0;function ja(e){let t=N([et(e),Ht(e)]).pipe(m(([o,n])=>o||n),K()),r=C(()=>Zo(e)).pipe(ne(ze),pt(1),He(t),m(()=>en(e)));return t.pipe(Ae(o=>o),v(()=>N([t,r])),m(([o,n])=>({active:o,offset:n})),pe())}function Fa(e,t){let{content$:r,viewport$:o}=t,n=`__tooltip2_${Ia++}`;return C(()=>{let i=new g,a=new _r(!1);i.pipe(Z(),ie(!1)).subscribe(a);let s=a.pipe(kt(c=>Le(+!c*250,kr)),K(),v(c=>c?r:S),w(c=>c.id=n),pe());N([i.pipe(m(({active:c})=>c)),s.pipe(v(c=>Ht(c,250)),Q(!1))]).pipe(m(c=>c.some(l=>l))).subscribe(a);let p=a.pipe(b(c=>c),re(s,o),m(([c,l,{size:f}])=>{let u=e.getBoundingClientRect(),d=u.width/2;if(l.role==="tooltip")return{x:d,y:8+u.height};if(u.y>=f.height/2){let{height:y}=ce(l);return{x:d,y:-16-y}}else return{x:d,y:16+u.height}}));return N([s,i,p]).subscribe(([c,{offset:l},f])=>{c.style.setProperty("--md-tooltip-host-x",`${l.x}px`),c.style.setProperty("--md-tooltip-host-y",`${l.y}px`),c.style.setProperty("--md-tooltip-x",`${f.x}px`),c.style.setProperty("--md-tooltip-y",`${f.y}px`),c.classList.toggle("md-tooltip2--top",f.y<0),c.classList.toggle("md-tooltip2--bottom",f.y>=0)}),a.pipe(b(c=>c),re(s,(c,l)=>l),b(c=>c.role==="tooltip")).subscribe(c=>{let l=ce(R(":scope > *",c));c.style.setProperty("--md-tooltip-width",`${l.width}px`),c.style.setProperty("--md-tooltip-tail","0px")}),a.pipe(K(),ve(me),re(s)).subscribe(([c,l])=>{l.classList.toggle("md-tooltip2--active",c)}),N([a.pipe(b(c=>c)),s]).subscribe(([c,l])=>{l.role==="dialog"?(e.setAttribute("aria-controls",n),e.setAttribute("aria-haspopup","dialog")):e.setAttribute("aria-describedby",n)}),a.pipe(b(c=>!c)).subscribe(()=>{e.removeAttribute("aria-controls"),e.removeAttribute("aria-describedby"),e.removeAttribute("aria-haspopup")}),ja(e).pipe(w(c=>i.next(c)),_(()=>i.complete()),m(c=>$({ref:e},c)))})}function mt(e,{viewport$:t},r=document.body){return Fa(e,{content$:new j(o=>{let n=e.title,i=wn(n);return o.next(i),e.removeAttribute("title"),r.append(i),()=>{i.remove(),e.setAttribute("title",n)}}),viewport$:t})}function Ua(e,t){let r=C(()=>N([tn(e),ze(t)])).pipe(m(([{x:o,y:n},i])=>{let{width:a,height:s}=ce(e);return{x:o-i.x+a/2,y:n-i.y+s/2}}));return et(e).pipe(v(o=>r.pipe(m(n=>({active:o,offset:n})),Te(+!o||1/0))))}function kn(e,t,{target$:r}){let[o,n]=Array.from(e.children);return C(()=>{let i=new g,a=i.pipe(Z(),ie(!0));return i.subscribe({next({offset:s}){e.style.setProperty("--md-tooltip-x",`${s.x}px`),e.style.setProperty("--md-tooltip-y",`${s.y}px`)},complete(){e.style.removeProperty("--md-tooltip-x"),e.style.removeProperty("--md-tooltip-y")}}),tt(e).pipe(W(a)).subscribe(s=>{e.toggleAttribute("data-md-visible",s)}),O(i.pipe(b(({active:s})=>s)),i.pipe(_e(250),b(({active:s})=>!s))).subscribe({next({active:s}){s?e.prepend(o):o.remove()},complete(){e.prepend(o)}}),i.pipe(Me(16,me)).subscribe(({active:s})=>{o.classList.toggle("md-tooltip--active",s)}),i.pipe(pt(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:s})=>s)).subscribe({next(s){s?e.style.setProperty("--md-tooltip-0",`${-s}px`):e.style.removeProperty("--md-tooltip-0")},complete(){e.style.removeProperty("--md-tooltip-0")}}),h(n,"click").pipe(W(a),b(s=>!(s.metaKey||s.ctrlKey))).subscribe(s=>{s.stopPropagation(),s.preventDefault()}),h(n,"mousedown").pipe(W(a),re(i)).subscribe(([s,{active:p}])=>{var c;if(s.button!==0||s.metaKey||s.ctrlKey)s.preventDefault();else if(p){s.preventDefault();let l=e.parentElement.closest(".md-annotation");l instanceof HTMLElement?l.focus():(c=Ie())==null||c.blur()}}),r.pipe(W(a),b(s=>s===o),Ge(125)).subscribe(()=>e.focus()),Ua(e,t).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))})}function Wa(e){return e.tagName==="CODE"?P(".c, .c1, .cm",e):[e]}function Va(e){let t=[];for(let r of Wa(e)){let o=[],n=document.createNodeIterator(r,NodeFilter.SHOW_TEXT);for(let i=n.nextNode();i;i=n.nextNode())o.push(i);for(let i of o){let a;for(;a=/(\(\d+\))(!)?/.exec(i.textContent);){let[,s,p]=a;if(typeof p=="undefined"){let c=i.splitText(a.index);i=c.splitText(s.length),t.push(c)}else{i.textContent=s,t.push(i);break}}}}return t}function Hn(e,t){t.append(...Array.from(e.childNodes))}function fr(e,t,{target$:r,print$:o}){let n=t.closest("[id]"),i=n==null?void 0:n.id,a=new Map;for(let s of Va(t)){let[,p]=s.textContent.match(/\((\d+)\)/);fe(`:scope > li:nth-child(${p})`,e)&&(a.set(p,Tn(p,i)),s.replaceWith(a.get(p)))}return a.size===0?S:C(()=>{let s=new g,p=s.pipe(Z(),ie(!0)),c=[];for(let[l,f]of a)c.push([R(".md-typeset",f),R(`:scope > li:nth-child(${l})`,e)]);return o.pipe(W(p)).subscribe(l=>{e.hidden=!l,e.classList.toggle("md-annotation-list",l);for(let[f,u]of c)l?Hn(f,u):Hn(u,f)}),O(...[...a].map(([,l])=>kn(l,t,{target$:r}))).pipe(_(()=>s.complete()),pe())})}function $n(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return $n(t)}}function Pn(e,t){return C(()=>{let r=$n(e);return typeof r!="undefined"?fr(r,e,t):S})}var Rn=Lt(Br());var Da=0;function In(e){if(e.nextElementSibling){let t=e.nextElementSibling;if(t.tagName==="OL")return t;if(t.tagName==="P"&&!t.children.length)return In(t)}}function za(e){return ge(e).pipe(m(({width:t})=>({scrollable:Tt(e).width>t})),te("scrollable"))}function jn(e,t){let{matches:r}=matchMedia("(hover)"),o=C(()=>{let n=new g,i=n.pipe(jr(1));n.subscribe(({scrollable:c})=>{c&&r?e.setAttribute("tabindex","0"):e.removeAttribute("tabindex")});let a=[];if(Rn.default.isSupported()&&(e.closest(".copy")||B("content.code.copy")&&!e.closest(".no-copy"))){let c=e.closest("pre");c.id=`__code_${Da++}`;let l=Sn(c.id);c.insertBefore(l,e),B("content.tooltips")&&a.push(mt(l,{viewport$}))}let s=e.closest(".highlight");if(s instanceof HTMLElement){let c=In(s);if(typeof c!="undefined"&&(s.classList.contains("annotate")||B("content.code.annotate"))){let l=fr(c,e,t);a.push(ge(s).pipe(W(i),m(({width:f,height:u})=>f&&u),K(),v(f=>f?l:S)))}}return P(":scope > span[id]",e).length&&e.classList.add("md-code__content"),za(e).pipe(w(c=>n.next(c)),_(()=>n.complete()),m(c=>$({ref:e},c)),Re(...a))});return B("content.lazy")?tt(e).pipe(b(n=>n),Te(1),v(()=>o)):o}function Na(e,{target$:t,print$:r}){let o=!0;return O(t.pipe(m(n=>n.closest("details:not([open])")),b(n=>e===n),m(()=>({action:"open",reveal:!0}))),r.pipe(b(n=>n||!o),w(()=>o=e.open),m(n=>({action:n?"open":"close"}))))}function Fn(e,t){return C(()=>{let r=new g;return r.subscribe(({action:o,reveal:n})=>{e.toggleAttribute("open",o==="open"),n&&e.scrollIntoView()}),Na(e,t).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}var Un=".node circle,.node ellipse,.node path,.node polygon,.node rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}marker{fill:var(--md-mermaid-edge-color)!important}.edgeLabel .label rect{fill:#0000}.flowchartTitleText{fill:var(--md-mermaid-label-fg-color)}.label{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.label foreignObject{line-height:normal;overflow:visible}.label div .edgeLabel{color:var(--md-mermaid-label-fg-color)}.edgeLabel,.edgeLabel p,.label div .edgeLabel{background-color:var(--md-mermaid-label-bg-color)}.edgeLabel,.edgeLabel p{fill:var(--md-mermaid-label-bg-color);color:var(--md-mermaid-edge-color)}.edgePath .path,.flowchart-link{stroke:var(--md-mermaid-edge-color);stroke-width:.05rem}.edgePath .arrowheadPath{fill:var(--md-mermaid-edge-color);stroke:none}.cluster rect{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}.cluster span{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}g #flowchart-circleEnd,g #flowchart-circleStart,g #flowchart-crossEnd,g #flowchart-crossStart,g #flowchart-pointEnd,g #flowchart-pointStart{stroke:none}.classDiagramTitleText{fill:var(--md-mermaid-label-fg-color)}g.classGroup line,g.classGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.classGroup text{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.classLabel .box{fill:var(--md-mermaid-label-bg-color);background-color:var(--md-mermaid-label-bg-color);opacity:1}.classLabel .label{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.node .divider{stroke:var(--md-mermaid-node-fg-color)}.relation{stroke:var(--md-mermaid-edge-color)}.cardinality{fill:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}.cardinality text{fill:inherit!important}defs marker.marker.composition.class path,defs marker.marker.dependency.class path,defs marker.marker.extension.class path{fill:var(--md-mermaid-edge-color)!important;stroke:var(--md-mermaid-edge-color)!important}defs marker.marker.aggregation.class path{fill:var(--md-mermaid-label-bg-color)!important;stroke:var(--md-mermaid-edge-color)!important}.statediagramTitleText{fill:var(--md-mermaid-label-fg-color)}g.stateGroup rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}g.stateGroup .state-title{fill:var(--md-mermaid-label-fg-color)!important;font-family:var(--md-mermaid-font-family)}g.stateGroup .composit{fill:var(--md-mermaid-label-bg-color)}.nodeLabel,.nodeLabel p{color:var(--md-mermaid-label-fg-color);font-family:var(--md-mermaid-font-family)}a .nodeLabel{text-decoration:underline}.node circle.state-end,.node circle.state-start,.start-state{fill:var(--md-mermaid-edge-color);stroke:none}.end-state-inner,.end-state-outer{fill:var(--md-mermaid-edge-color)}.end-state-inner,.node circle.state-end{stroke:var(--md-mermaid-label-bg-color)}.transition{stroke:var(--md-mermaid-edge-color)}[id^=state-fork] rect,[id^=state-join] rect{fill:var(--md-mermaid-edge-color)!important;stroke:none!important}.statediagram-cluster.statediagram-cluster .inner{fill:var(--md-default-bg-color)}.statediagram-cluster rect{fill:var(--md-mermaid-node-bg-color);stroke:var(--md-mermaid-node-fg-color)}.statediagram-state rect.divider{fill:var(--md-default-fg-color--lightest);stroke:var(--md-default-fg-color--lighter)}defs #statediagram-barbEnd{stroke:var(--md-mermaid-edge-color)}[id^=entity] path,[id^=entity] rect{fill:var(--md-default-bg-color)}.relationshipLine{stroke:var(--md-mermaid-edge-color)}defs .marker.oneOrMore.er *,defs .marker.onlyOne.er *,defs .marker.zeroOrMore.er *,defs .marker.zeroOrOne.er *{stroke:var(--md-mermaid-edge-color)!important}text:not([class]):last-child{fill:var(--md-mermaid-label-fg-color)}.actor{fill:var(--md-mermaid-sequence-actor-bg-color);stroke:var(--md-mermaid-sequence-actor-border-color)}text.actor>tspan{fill:var(--md-mermaid-sequence-actor-fg-color);font-family:var(--md-mermaid-font-family)}line{stroke:var(--md-mermaid-sequence-actor-line-color)}.actor-man circle,.actor-man line{fill:var(--md-mermaid-sequence-actorman-bg-color);stroke:var(--md-mermaid-sequence-actorman-line-color)}.messageLine0,.messageLine1{stroke:var(--md-mermaid-sequence-message-line-color)}.note{fill:var(--md-mermaid-sequence-note-bg-color);stroke:var(--md-mermaid-sequence-note-border-color)}.loopText,.loopText>tspan,.messageText,.noteText>tspan{stroke:none;font-family:var(--md-mermaid-font-family)!important}.messageText{fill:var(--md-mermaid-sequence-message-fg-color)}.loopText,.loopText>tspan{fill:var(--md-mermaid-sequence-loop-fg-color)}.noteText>tspan{fill:var(--md-mermaid-sequence-note-fg-color)}#arrowhead path{fill:var(--md-mermaid-sequence-message-line-color);stroke:none}.loopLine{fill:var(--md-mermaid-sequence-loop-bg-color);stroke:var(--md-mermaid-sequence-loop-border-color)}.labelBox{fill:var(--md-mermaid-sequence-label-bg-color);stroke:none}.labelText,.labelText>span{fill:var(--md-mermaid-sequence-label-fg-color);font-family:var(--md-mermaid-font-family)}.sequenceNumber{fill:var(--md-mermaid-sequence-number-fg-color)}rect.rect{fill:var(--md-mermaid-sequence-box-bg-color);stroke:none}rect.rect+text.text{fill:var(--md-mermaid-sequence-box-fg-color)}defs #sequencenumber{fill:var(--md-mermaid-sequence-number-bg-color)!important}";var Gr,Qa=0;function Ka(){return typeof mermaid=="undefined"||mermaid instanceof Element?wt("https://unpkg.com/mermaid@11/dist/mermaid.min.js"):I(void 0)}function Wn(e){return e.classList.remove("mermaid"),Gr||(Gr=Ka().pipe(w(()=>mermaid.initialize({startOnLoad:!1,themeCSS:Un,sequence:{actorFontSize:"16px",messageFontSize:"16px",noteFontSize:"16px"}})),m(()=>{}),G(1))),Gr.subscribe(()=>co(null,null,function*(){e.classList.add("mermaid");let t=`__mermaid_${Qa++}`,r=x("div",{class:"mermaid"}),o=e.textContent,{svg:n,fn:i}=yield mermaid.render(t,o),a=r.attachShadow({mode:"closed"});a.innerHTML=n,e.replaceWith(r),i==null||i(a)})),Gr.pipe(m(()=>({ref:e})))}var Vn=x("table");function Dn(e){return e.replaceWith(Vn),Vn.replaceWith(An(e)),I({ref:e})}function Ya(e){let t=e.find(r=>r.checked)||e[0];return O(...e.map(r=>h(r,"change").pipe(m(()=>R(`label[for="${r.id}"]`))))).pipe(Q(R(`label[for="${t.id}"]`)),m(r=>({active:r})))}function zn(e,{viewport$:t,target$:r}){let o=R(".tabbed-labels",e),n=P(":scope > input",e),i=Kr("prev");e.append(i);let a=Kr("next");return e.append(a),C(()=>{let s=new g,p=s.pipe(Z(),ie(!0));N([s,ge(e),tt(e)]).pipe(W(p),Me(1,me)).subscribe({next([{active:c},l]){let f=De(c),{width:u}=ce(c);e.style.setProperty("--md-indicator-x",`${f.x}px`),e.style.setProperty("--md-indicator-width",`${u}px`);let d=pr(o);(f.xd.x+l.width)&&o.scrollTo({left:Math.max(0,f.x-16),behavior:"smooth"})},complete(){e.style.removeProperty("--md-indicator-x"),e.style.removeProperty("--md-indicator-width")}}),N([ze(o),ge(o)]).pipe(W(p)).subscribe(([c,l])=>{let f=Tt(o);i.hidden=c.x<16,a.hidden=c.x>f.width-l.width-16}),O(h(i,"click").pipe(m(()=>-1)),h(a,"click").pipe(m(()=>1))).pipe(W(p)).subscribe(c=>{let{width:l}=ce(o);o.scrollBy({left:l*c,behavior:"smooth"})}),r.pipe(W(p),b(c=>n.includes(c))).subscribe(c=>c.click()),o.classList.add("tabbed-labels--linked");for(let c of n){let l=R(`label[for="${c.id}"]`);l.replaceChildren(x("a",{href:`#${l.htmlFor}`,tabIndex:-1},...Array.from(l.childNodes))),h(l.firstElementChild,"click").pipe(W(p),b(f=>!(f.metaKey||f.ctrlKey)),w(f=>{f.preventDefault(),f.stopPropagation()})).subscribe(()=>{history.replaceState({},"",`#${l.htmlFor}`),l.click()})}return B("content.tabs.link")&&s.pipe(Ce(1),re(t)).subscribe(([{active:c},{offset:l}])=>{let f=c.innerText.trim();if(c.hasAttribute("data-md-switching"))c.removeAttribute("data-md-switching");else{let u=e.offsetTop-l.y;for(let y of P("[data-tabs]"))for(let L of P(":scope > input",y)){let X=R(`label[for="${L.id}"]`);if(X!==c&&X.innerText.trim()===f){X.setAttribute("data-md-switching",""),L.click();break}}window.scrollTo({top:e.offsetTop-u});let d=__md_get("__tabs")||[];__md_set("__tabs",[...new Set([f,...d])])}}),s.pipe(W(p)).subscribe(()=>{for(let c of P("audio, video",e))c.pause()}),Ya(n).pipe(w(c=>s.next(c)),_(()=>s.complete()),m(c=>$({ref:e},c)))}).pipe(Ke(se))}function Nn(e,{viewport$:t,target$:r,print$:o}){return O(...P(".annotate:not(.highlight)",e).map(n=>Pn(n,{target$:r,print$:o})),...P("pre:not(.mermaid) > code",e).map(n=>jn(n,{target$:r,print$:o})),...P("pre.mermaid",e).map(n=>Wn(n)),...P("table:not([class])",e).map(n=>Dn(n)),...P("details",e).map(n=>Fn(n,{target$:r,print$:o})),...P("[data-tabs]",e).map(n=>zn(n,{viewport$:t,target$:r})),...P("[title]",e).filter(()=>B("content.tooltips")).map(n=>mt(n,{viewport$:t})))}function Ba(e,{alert$:t}){return t.pipe(v(r=>O(I(!0),I(!1).pipe(Ge(2e3))).pipe(m(o=>({message:r,active:o})))))}function qn(e,t){let r=R(".md-typeset",e);return C(()=>{let o=new g;return o.subscribe(({message:n,active:i})=>{e.classList.toggle("md-dialog--active",i),r.textContent=n}),Ba(e,t).pipe(w(n=>o.next(n)),_(()=>o.complete()),m(n=>$({ref:e},n)))})}var Ga=0;function Ja(e,t){document.body.append(e);let{width:r}=ce(e);e.style.setProperty("--md-tooltip-width",`${r}px`),e.remove();let o=cr(t),n=typeof o!="undefined"?ze(o):I({x:0,y:0}),i=O(et(t),Ht(t)).pipe(K());return N([i,n]).pipe(m(([a,s])=>{let{x:p,y:c}=De(t),l=ce(t),f=t.closest("table");return f&&t.parentElement&&(p+=f.offsetLeft+t.parentElement.offsetLeft,c+=f.offsetTop+t.parentElement.offsetTop),{active:a,offset:{x:p-s.x+l.width/2-r/2,y:c-s.y+l.height+8}}}))}function Qn(e){let t=e.title;if(!t.length)return S;let r=`__tooltip_${Ga++}`,o=Pt(r,"inline"),n=R(".md-typeset",o);return n.innerHTML=t,C(()=>{let i=new g;return i.subscribe({next({offset:a}){o.style.setProperty("--md-tooltip-x",`${a.x}px`),o.style.setProperty("--md-tooltip-y",`${a.y}px`)},complete(){o.style.removeProperty("--md-tooltip-x"),o.style.removeProperty("--md-tooltip-y")}}),O(i.pipe(b(({active:a})=>a)),i.pipe(_e(250),b(({active:a})=>!a))).subscribe({next({active:a}){a?(e.insertAdjacentElement("afterend",o),e.setAttribute("aria-describedby",r),e.removeAttribute("title")):(o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t))},complete(){o.remove(),e.removeAttribute("aria-describedby"),e.setAttribute("title",t)}}),i.pipe(Me(16,me)).subscribe(({active:a})=>{o.classList.toggle("md-tooltip--active",a)}),i.pipe(pt(125,me),b(()=>!!e.offsetParent),m(()=>e.offsetParent.getBoundingClientRect()),m(({x:a})=>a)).subscribe({next(a){a?o.style.setProperty("--md-tooltip-0",`${-a}px`):o.style.removeProperty("--md-tooltip-0")},complete(){o.style.removeProperty("--md-tooltip-0")}}),Ja(o,e).pipe(w(a=>i.next(a)),_(()=>i.complete()),m(a=>$({ref:e},a)))}).pipe(Ke(se))}function Xa({viewport$:e}){if(!B("header.autohide"))return I(!1);let t=e.pipe(m(({offset:{y:n}})=>n),Be(2,1),m(([n,i])=>[nMath.abs(i-n.y)>100),m(([,[n]])=>n),K()),o=Ne("search");return N([e,o]).pipe(m(([{offset:n},i])=>n.y>400&&!i),K(),v(n=>n?r:I(!1)),Q(!1))}function Kn(e,t){return C(()=>N([ge(e),Xa(t)])).pipe(m(([{height:r},o])=>({height:r,hidden:o})),K((r,o)=>r.height===o.height&&r.hidden===o.hidden),G(1))}function Yn(e,{header$:t,main$:r}){return C(()=>{let o=new g,n=o.pipe(Z(),ie(!0));o.pipe(te("active"),He(t)).subscribe(([{active:a},{hidden:s}])=>{e.classList.toggle("md-header--shadow",a&&!s),e.hidden=s});let i=ue(P("[title]",e)).pipe(b(()=>B("content.tooltips")),ne(a=>Qn(a)));return r.subscribe(o),t.pipe(W(n),m(a=>$({ref:e},a)),Re(i.pipe(W(n))))})}function Za(e,{viewport$:t,header$:r}){return mr(e,{viewport$:t,header$:r}).pipe(m(({offset:{y:o}})=>{let{height:n}=ce(e);return{active:o>=n}}),te("active"))}function Bn(e,t){return C(()=>{let r=new g;r.subscribe({next({active:n}){e.classList.toggle("md-header__title--active",n)},complete(){e.classList.remove("md-header__title--active")}});let o=fe(".md-content h1");return typeof o=="undefined"?S:Za(o,t).pipe(w(n=>r.next(n)),_(()=>r.complete()),m(n=>$({ref:e},n)))})}function Gn(e,{viewport$:t,header$:r}){let o=r.pipe(m(({height:i})=>i),K()),n=o.pipe(v(()=>ge(e).pipe(m(({height:i})=>({top:e.offsetTop,bottom:e.offsetTop+i})),te("bottom"))));return N([o,n,t]).pipe(m(([i,{top:a,bottom:s},{offset:{y:p},size:{height:c}}])=>(c=Math.max(0,c-Math.max(0,a-p,i)-Math.max(0,c+p-s)),{offset:a-i,height:c,active:a-i<=p})),K((i,a)=>i.offset===a.offset&&i.height===a.height&&i.active===a.active))}function es(e){let t=__md_get("__palette")||{index:e.findIndex(o=>matchMedia(o.getAttribute("data-md-color-media")).matches)},r=Math.max(0,Math.min(t.index,e.length-1));return I(...e).pipe(ne(o=>h(o,"change").pipe(m(()=>o))),Q(e[r]),m(o=>({index:e.indexOf(o),color:{media:o.getAttribute("data-md-color-media"),scheme:o.getAttribute("data-md-color-scheme"),primary:o.getAttribute("data-md-color-primary"),accent:o.getAttribute("data-md-color-accent")}})),G(1))}function Jn(e){let t=P("input",e),r=x("meta",{name:"theme-color"});document.head.appendChild(r);let o=x("meta",{name:"color-scheme"});document.head.appendChild(o);let n=$t("(prefers-color-scheme: light)");return C(()=>{let i=new g;return i.subscribe(a=>{if(document.body.setAttribute("data-md-color-switching",""),a.color.media==="(prefers-color-scheme)"){let s=matchMedia("(prefers-color-scheme: light)"),p=document.querySelector(s.matches?"[data-md-color-media='(prefers-color-scheme: light)']":"[data-md-color-media='(prefers-color-scheme: dark)']");a.color.scheme=p.getAttribute("data-md-color-scheme"),a.color.primary=p.getAttribute("data-md-color-primary"),a.color.accent=p.getAttribute("data-md-color-accent")}for(let[s,p]of Object.entries(a.color))document.body.setAttribute(`data-md-color-${s}`,p);for(let s=0;sa.key==="Enter"),re(i,(a,s)=>s)).subscribe(({index:a})=>{a=(a+1)%t.length,t[a].click(),t[a].focus()}),i.pipe(m(()=>{let a=Se("header"),s=window.getComputedStyle(a);return o.content=s.colorScheme,s.backgroundColor.match(/\d+/g).map(p=>(+p).toString(16).padStart(2,"0")).join("")})).subscribe(a=>r.content=`#${a}`),i.pipe(ve(se)).subscribe(()=>{document.body.removeAttribute("data-md-color-switching")}),es(t).pipe(W(n.pipe(Ce(1))),ct(),w(a=>i.next(a)),_(()=>i.complete()),m(a=>$({ref:e},a)))})}function Xn(e,{progress$:t}){return C(()=>{let r=new g;return r.subscribe(({value:o})=>{e.style.setProperty("--md-progress-value",`${o}`)}),t.pipe(w(o=>r.next({value:o})),_(()=>r.complete()),m(o=>({ref:e,value:o})))})}var Jr=Lt(Br());function ts(e){e.setAttribute("data-md-copying","");let t=e.closest("[data-copy]"),r=t?t.getAttribute("data-copy"):e.innerText;return e.removeAttribute("data-md-copying"),r.trimEnd()}function Zn({alert$:e}){Jr.default.isSupported()&&new j(t=>{new Jr.default("[data-clipboard-target], [data-clipboard-text]",{text:r=>r.getAttribute("data-clipboard-text")||ts(R(r.getAttribute("data-clipboard-target")))}).on("success",r=>t.next(r))}).pipe(w(t=>{t.trigger.focus()}),m(()=>Ee("clipboard.copied"))).subscribe(e)}function ei(e,t){return e.protocol=t.protocol,e.hostname=t.hostname,e}function rs(e,t){let r=new Map;for(let o of P("url",e)){let n=R("loc",o),i=[ei(new URL(n.textContent),t)];r.set(`${i[0]}`,i);for(let a of P("[rel=alternate]",o)){let s=a.getAttribute("href");s!=null&&i.push(ei(new URL(s),t))}}return r}function ur(e){return un(new URL("sitemap.xml",e)).pipe(m(t=>rs(t,new URL(e))),de(()=>I(new Map)))}function os(e,t){if(!(e.target instanceof Element))return S;let r=e.target.closest("a");if(r===null)return S;if(r.target||e.metaKey||e.ctrlKey)return S;let o=new URL(r.href);return o.search=o.hash="",t.has(`${o}`)?(e.preventDefault(),I(new URL(r.href))):S}function ti(e){let t=new Map;for(let r of P(":scope > *",e.head))t.set(r.outerHTML,r);return t}function ri(e){for(let t of P("[href], [src]",e))for(let r of["href","src"]){let o=t.getAttribute(r);if(o&&!/^(?:[a-z]+:)?\/\//i.test(o)){t[r]=t[r];break}}return I(e)}function ns(e){for(let o of["[data-md-component=announce]","[data-md-component=container]","[data-md-component=header-topic]","[data-md-component=outdated]","[data-md-component=logo]","[data-md-component=skip]",...B("navigation.tabs.sticky")?["[data-md-component=tabs]"]:[]]){let n=fe(o),i=fe(o,e);typeof n!="undefined"&&typeof i!="undefined"&&n.replaceWith(i)}let t=ti(document);for(let[o,n]of ti(e))t.has(o)?t.delete(o):document.head.appendChild(n);for(let o of t.values()){let n=o.getAttribute("name");n!=="theme-color"&&n!=="color-scheme"&&o.remove()}let r=Se("container");return We(P("script",r)).pipe(v(o=>{let n=e.createElement("script");if(o.src){for(let i of o.getAttributeNames())n.setAttribute(i,o.getAttribute(i));return o.replaceWith(n),new j(i=>{n.onload=()=>i.complete()})}else return n.textContent=o.textContent,o.replaceWith(n),S}),Z(),ie(document))}function oi({location$:e,viewport$:t,progress$:r}){let o=xe();if(location.protocol==="file:")return S;let n=ur(o.base);I(document).subscribe(ri);let i=h(document.body,"click").pipe(He(n),v(([p,c])=>os(p,c)),pe()),a=h(window,"popstate").pipe(m(ye),pe());i.pipe(re(t)).subscribe(([p,{offset:c}])=>{history.replaceState(c,""),history.pushState(null,"",p)}),O(i,a).subscribe(e);let s=e.pipe(te("pathname"),v(p=>fn(p,{progress$:r}).pipe(de(()=>(lt(p,!0),S)))),v(ri),v(ns),pe());return O(s.pipe(re(e,(p,c)=>c)),s.pipe(v(()=>e),te("hash")),e.pipe(K((p,c)=>p.pathname===c.pathname&&p.hash===c.hash),v(()=>i),w(()=>history.back()))).subscribe(p=>{var c,l;history.state!==null||!p.hash?window.scrollTo(0,(l=(c=history.state)==null?void 0:c.y)!=null?l:0):(history.scrollRestoration="auto",pn(p.hash),history.scrollRestoration="manual")}),e.subscribe(()=>{history.scrollRestoration="manual"}),h(window,"beforeunload").subscribe(()=>{history.scrollRestoration="auto"}),t.pipe(te("offset"),_e(100)).subscribe(({offset:p})=>{history.replaceState(p,"")}),s}var ni=Lt(qr());function ii(e){let t=e.separator.split("|").map(n=>n.replace(/(\(\?[!=<][^)]+\))/g,"").length===0?"\uFFFD":n).join("|"),r=new RegExp(t,"img"),o=(n,i,a)=>`${i}${a}`;return n=>{n=n.replace(/[\s*+\-:~^]+/g," ").trim();let i=new RegExp(`(^|${e.separator}|)(${n.replace(/[|\\{}()[\]^$+*?.-]/g,"\\$&").replace(r,"|")})`,"img");return a=>(0,ni.default)(a).replace(i,o).replace(/<\/mark>(\s+)]*>/img,"$1")}}function It(e){return e.type===1}function dr(e){return e.type===3}function ai(e,t){let r=yn(e);return O(I(location.protocol!=="file:"),Ne("search")).pipe(Ae(o=>o),v(()=>t)).subscribe(({config:o,docs:n})=>r.next({type:0,data:{config:o,docs:n,options:{suggest:B("search.suggest")}}})),r}function si(e){var l;let{selectedVersionSitemap:t,selectedVersionBaseURL:r,currentLocation:o,currentBaseURL:n}=e,i=(l=Xr(n))==null?void 0:l.pathname;if(i===void 0)return;let a=ss(o.pathname,i);if(a===void 0)return;let s=ps(t.keys());if(!t.has(s))return;let p=Xr(a,s);if(!p||!t.has(p.href))return;let c=Xr(a,r);if(c)return c.hash=o.hash,c.search=o.search,c}function Xr(e,t){try{return new URL(e,t)}catch(r){return}}function ss(e,t){if(e.startsWith(t))return e.slice(t.length)}function cs(e,t){let r=Math.min(e.length,t.length),o;for(o=0;oS)),o=r.pipe(m(n=>{let[,i]=t.base.match(/([^/]+)\/?$/);return n.find(({version:a,aliases:s})=>a===i||s.includes(i))||n[0]}));r.pipe(m(n=>new Map(n.map(i=>[`${new URL(`../${i.version}/`,t.base)}`,i]))),v(n=>h(document.body,"click").pipe(b(i=>!i.metaKey&&!i.ctrlKey),re(o),v(([i,a])=>{if(i.target instanceof Element){let s=i.target.closest("a");if(s&&!s.target&&n.has(s.href)){let p=s.href;return!i.target.closest(".md-version")&&n.get(p)===a?S:(i.preventDefault(),I(new URL(p)))}}return S}),v(i=>ur(i).pipe(m(a=>{var s;return(s=si({selectedVersionSitemap:a,selectedVersionBaseURL:i,currentLocation:ye(),currentBaseURL:t.base}))!=null?s:i})))))).subscribe(n=>lt(n,!0)),N([r,o]).subscribe(([n,i])=>{R(".md-header__topic").appendChild(Cn(n,i))}),e.pipe(v(()=>o)).subscribe(n=>{var s;let i=new URL(t.base),a=__md_get("__outdated",sessionStorage,i);if(a===null){a=!0;let p=((s=t.version)==null?void 0:s.default)||"latest";Array.isArray(p)||(p=[p]);e:for(let c of p)for(let l of n.aliases.concat(n.version))if(new RegExp(c,"i").test(l)){a=!1;break e}__md_set("__outdated",a,sessionStorage,i)}if(a)for(let p of ae("outdated"))p.hidden=!1})}function ls(e,{worker$:t}){let{searchParams:r}=ye();r.has("q")&&(Je("search",!0),e.value=r.get("q"),e.focus(),Ne("search").pipe(Ae(i=>!i)).subscribe(()=>{let i=ye();i.searchParams.delete("q"),history.replaceState({},"",`${i}`)}));let o=et(e),n=O(t.pipe(Ae(It)),h(e,"keyup"),o).pipe(m(()=>e.value),K());return N([n,o]).pipe(m(([i,a])=>({value:i,focus:a})),G(1))}function pi(e,{worker$:t}){let r=new g,o=r.pipe(Z(),ie(!0));N([t.pipe(Ae(It)),r],(i,a)=>a).pipe(te("value")).subscribe(({value:i})=>t.next({type:2,data:i})),r.pipe(te("focus")).subscribe(({focus:i})=>{i&&Je("search",i)}),h(e.form,"reset").pipe(W(o)).subscribe(()=>e.focus());let n=R("header [for=__search]");return h(n,"click").subscribe(()=>e.focus()),ls(e,{worker$:t}).pipe(w(i=>r.next(i)),_(()=>r.complete()),m(i=>$({ref:e},i)),G(1))}function li(e,{worker$:t,query$:r}){let o=new g,n=on(e.parentElement).pipe(b(Boolean)),i=e.parentElement,a=R(":scope > :first-child",e),s=R(":scope > :last-child",e);Ne("search").subscribe(l=>{s.setAttribute("role",l?"list":"presentation"),s.hidden=!l}),o.pipe(re(r),Wr(t.pipe(Ae(It)))).subscribe(([{items:l},{value:f}])=>{switch(l.length){case 0:a.textContent=f.length?Ee("search.result.none"):Ee("search.result.placeholder");break;case 1:a.textContent=Ee("search.result.one");break;default:let u=sr(l.length);a.textContent=Ee("search.result.other",u)}});let p=o.pipe(w(()=>s.innerHTML=""),v(({items:l})=>O(I(...l.slice(0,10)),I(...l.slice(10)).pipe(Be(4),Dr(n),v(([f])=>f)))),m(Mn),pe());return p.subscribe(l=>s.appendChild(l)),p.pipe(ne(l=>{let f=fe("details",l);return typeof f=="undefined"?S:h(f,"toggle").pipe(W(o),m(()=>f))})).subscribe(l=>{l.open===!1&&l.offsetTop<=i.scrollTop&&i.scrollTo({top:l.offsetTop})}),t.pipe(b(dr),m(({data:l})=>l)).pipe(w(l=>o.next(l)),_(()=>o.complete()),m(l=>$({ref:e},l)))}function ms(e,{query$:t}){return t.pipe(m(({value:r})=>{let o=ye();return o.hash="",r=r.replace(/\s+/g,"+").replace(/&/g,"%26").replace(/=/g,"%3D"),o.search=`q=${r}`,{url:o}}))}function mi(e,t){let r=new g,o=r.pipe(Z(),ie(!0));return r.subscribe(({url:n})=>{e.setAttribute("data-clipboard-text",e.href),e.href=`${n}`}),h(e,"click").pipe(W(o)).subscribe(n=>n.preventDefault()),ms(e,t).pipe(w(n=>r.next(n)),_(()=>r.complete()),m(n=>$({ref:e},n)))}function fi(e,{worker$:t,keyboard$:r}){let o=new g,n=Se("search-query"),i=O(h(n,"keydown"),h(n,"focus")).pipe(ve(se),m(()=>n.value),K());return o.pipe(He(i),m(([{suggest:s},p])=>{let c=p.split(/([\s-]+)/);if(s!=null&&s.length&&c[c.length-1]){let l=s[s.length-1];l.startsWith(c[c.length-1])&&(c[c.length-1]=l)}else c.length=0;return c})).subscribe(s=>e.innerHTML=s.join("").replace(/\s/g," ")),r.pipe(b(({mode:s})=>s==="search")).subscribe(s=>{switch(s.type){case"ArrowRight":e.innerText.length&&n.selectionStart===n.value.length&&(n.value=e.innerText);break}}),t.pipe(b(dr),m(({data:s})=>s)).pipe(w(s=>o.next(s)),_(()=>o.complete()),m(()=>({ref:e})))}function ui(e,{index$:t,keyboard$:r}){let o=xe();try{let n=ai(o.search,t),i=Se("search-query",e),a=Se("search-result",e);h(e,"click").pipe(b(({target:p})=>p instanceof Element&&!!p.closest("a"))).subscribe(()=>Je("search",!1)),r.pipe(b(({mode:p})=>p==="search")).subscribe(p=>{let c=Ie();switch(p.type){case"Enter":if(c===i){let l=new Map;for(let f of P(":first-child [href]",a)){let u=f.firstElementChild;l.set(f,parseFloat(u.getAttribute("data-md-score")))}if(l.size){let[[f]]=[...l].sort(([,u],[,d])=>d-u);f.click()}p.claim()}break;case"Escape":case"Tab":Je("search",!1),i.blur();break;case"ArrowUp":case"ArrowDown":if(typeof c=="undefined")i.focus();else{let l=[i,...P(":not(details) > [href], summary, details[open] [href]",a)],f=Math.max(0,(Math.max(0,l.indexOf(c))+l.length+(p.type==="ArrowUp"?-1:1))%l.length);l[f].focus()}p.claim();break;default:i!==Ie()&&i.focus()}}),r.pipe(b(({mode:p})=>p==="global")).subscribe(p=>{switch(p.type){case"f":case"s":case"/":i.focus(),i.select(),p.claim();break}});let s=pi(i,{worker$:n});return O(s,li(a,{worker$:n,query$:s})).pipe(Re(...ae("search-share",e).map(p=>mi(p,{query$:s})),...ae("search-suggest",e).map(p=>fi(p,{worker$:n,keyboard$:r}))))}catch(n){return e.hidden=!0,Ye}}function di(e,{index$:t,location$:r}){return N([t,r.pipe(Q(ye()),b(o=>!!o.searchParams.get("h")))]).pipe(m(([o,n])=>ii(o.config)(n.searchParams.get("h"))),m(o=>{var a;let n=new Map,i=document.createNodeIterator(e,NodeFilter.SHOW_TEXT);for(let s=i.nextNode();s;s=i.nextNode())if((a=s.parentElement)!=null&&a.offsetHeight){let p=s.textContent,c=o(p);c.length>p.length&&n.set(s,c)}for(let[s,p]of n){let{childNodes:c}=x("span",null,p);s.replaceWith(...Array.from(c))}return{ref:e,nodes:n}}))}function fs(e,{viewport$:t,main$:r}){let o=e.closest(".md-grid"),n=o.offsetTop-o.parentElement.offsetTop;return N([r,t]).pipe(m(([{offset:i,height:a},{offset:{y:s}}])=>(a=a+Math.min(n,Math.max(0,s-i))-n,{height:a,locked:s>=i+n})),K((i,a)=>i.height===a.height&&i.locked===a.locked))}function Zr(e,o){var n=o,{header$:t}=n,r=so(n,["header$"]);let i=R(".md-sidebar__scrollwrap",e),{y:a}=De(i);return C(()=>{let s=new g,p=s.pipe(Z(),ie(!0)),c=s.pipe(Me(0,me));return c.pipe(re(t)).subscribe({next([{height:l},{height:f}]){i.style.height=`${l-2*a}px`,e.style.top=`${f}px`},complete(){i.style.height="",e.style.top=""}}),c.pipe(Ae()).subscribe(()=>{for(let l of P(".md-nav__link--active[href]",e)){if(!l.clientHeight)continue;let f=l.closest(".md-sidebar__scrollwrap");if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=ce(f);f.scrollTo({top:u-d/2})}}}),ue(P("label[tabindex]",e)).pipe(ne(l=>h(l,"click").pipe(ve(se),m(()=>l),W(p)))).subscribe(l=>{let f=R(`[id="${l.htmlFor}"]`);R(`[aria-labelledby="${l.id}"]`).setAttribute("aria-expanded",`${f.checked}`)}),fs(e,r).pipe(w(l=>s.next(l)),_(()=>s.complete()),m(l=>$({ref:e},l)))})}function hi(e,t){if(typeof t!="undefined"){let r=`https://api.github.com/repos/${e}/${t}`;return st(je(`${r}/releases/latest`).pipe(de(()=>S),m(o=>({version:o.tag_name})),Ve({})),je(r).pipe(de(()=>S),m(o=>({stars:o.stargazers_count,forks:o.forks_count})),Ve({}))).pipe(m(([o,n])=>$($({},o),n)))}else{let r=`https://api.github.com/users/${e}`;return je(r).pipe(m(o=>({repositories:o.public_repos})),Ve({}))}}function bi(e,t){let r=`https://${e}/api/v4/projects/${encodeURIComponent(t)}`;return st(je(`${r}/releases/permalink/latest`).pipe(de(()=>S),m(({tag_name:o})=>({version:o})),Ve({})),je(r).pipe(de(()=>S),m(({star_count:o,forks_count:n})=>({stars:o,forks:n})),Ve({}))).pipe(m(([o,n])=>$($({},o),n)))}function vi(e){let t=e.match(/^.+github\.com\/([^/]+)\/?([^/]+)?/i);if(t){let[,r,o]=t;return hi(r,o)}if(t=e.match(/^.+?([^/]*gitlab[^/]+)\/(.+?)\/?$/i),t){let[,r,o]=t;return bi(r,o)}return S}var us;function ds(e){return us||(us=C(()=>{let t=__md_get("__source",sessionStorage);if(t)return I(t);if(ae("consent").length){let o=__md_get("__consent");if(!(o&&o.github))return S}return vi(e.href).pipe(w(o=>__md_set("__source",o,sessionStorage)))}).pipe(de(()=>S),b(t=>Object.keys(t).length>0),m(t=>({facts:t})),G(1)))}function gi(e){let t=R(":scope > :last-child",e);return C(()=>{let r=new g;return r.subscribe(({facts:o})=>{t.appendChild(_n(o)),t.classList.add("md-source__repository--active")}),ds(e).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}function hs(e,{viewport$:t,header$:r}){return ge(document.body).pipe(v(()=>mr(e,{header$:r,viewport$:t})),m(({offset:{y:o}})=>({hidden:o>=10})),te("hidden"))}function yi(e,t){return C(()=>{let r=new g;return r.subscribe({next({hidden:o}){e.hidden=o},complete(){e.hidden=!1}}),(B("navigation.tabs.sticky")?I({hidden:!1}):hs(e,t)).pipe(w(o=>r.next(o)),_(()=>r.complete()),m(o=>$({ref:e},o)))})}function bs(e,{viewport$:t,header$:r}){let o=new Map,n=P(".md-nav__link",e);for(let s of n){let p=decodeURIComponent(s.hash.substring(1)),c=fe(`[id="${p}"]`);typeof c!="undefined"&&o.set(s,c)}let i=r.pipe(te("height"),m(({height:s})=>{let p=Se("main"),c=R(":scope > :first-child",p);return s+.8*(c.offsetTop-p.offsetTop)}),pe());return ge(document.body).pipe(te("height"),v(s=>C(()=>{let p=[];return I([...o].reduce((c,[l,f])=>{for(;p.length&&o.get(p[p.length-1]).tagName>=f.tagName;)p.pop();let u=f.offsetTop;for(;!u&&f.parentElement;)f=f.parentElement,u=f.offsetTop;let d=f.offsetParent;for(;d;d=d.offsetParent)u+=d.offsetTop;return c.set([...p=[...p,l]].reverse(),u)},new Map))}).pipe(m(p=>new Map([...p].sort(([,c],[,l])=>c-l))),He(i),v(([p,c])=>t.pipe(Fr(([l,f],{offset:{y:u},size:d})=>{let y=u+d.height>=Math.floor(s.height);for(;f.length;){let[,L]=f[0];if(L-c=u&&!y)f=[l.pop(),...f];else break}return[l,f]},[[],[...p]]),K((l,f)=>l[0]===f[0]&&l[1]===f[1])))))).pipe(m(([s,p])=>({prev:s.map(([c])=>c),next:p.map(([c])=>c)})),Q({prev:[],next:[]}),Be(2,1),m(([s,p])=>s.prev.length{let i=new g,a=i.pipe(Z(),ie(!0));if(i.subscribe(({prev:s,next:p})=>{for(let[c]of p)c.classList.remove("md-nav__link--passed"),c.classList.remove("md-nav__link--active");for(let[c,[l]]of s.entries())l.classList.add("md-nav__link--passed"),l.classList.toggle("md-nav__link--active",c===s.length-1)}),B("toc.follow")){let s=O(t.pipe(_e(1),m(()=>{})),t.pipe(_e(250),m(()=>"smooth")));i.pipe(b(({prev:p})=>p.length>0),He(o.pipe(ve(se))),re(s)).subscribe(([[{prev:p}],c])=>{let[l]=p[p.length-1];if(l.offsetHeight){let f=cr(l);if(typeof f!="undefined"){let u=l.offsetTop-f.offsetTop,{height:d}=ce(f);f.scrollTo({top:u-d/2,behavior:c})}}})}return B("navigation.tracking")&&t.pipe(W(a),te("offset"),_e(250),Ce(1),W(n.pipe(Ce(1))),ct({delay:250}),re(i)).subscribe(([,{prev:s}])=>{let p=ye(),c=s[s.length-1];if(c&&c.length){let[l]=c,{hash:f}=new URL(l.href);p.hash!==f&&(p.hash=f,history.replaceState({},"",`${p}`))}else p.hash="",history.replaceState({},"",`${p}`)}),bs(e,{viewport$:t,header$:r}).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))})}function vs(e,{viewport$:t,main$:r,target$:o}){let n=t.pipe(m(({offset:{y:a}})=>a),Be(2,1),m(([a,s])=>a>s&&s>0),K()),i=r.pipe(m(({active:a})=>a));return N([i,n]).pipe(m(([a,s])=>!(a&&s)),K(),W(o.pipe(Ce(1))),ie(!0),ct({delay:250}),m(a=>({hidden:a})))}function Ei(e,{viewport$:t,header$:r,main$:o,target$:n}){let i=new g,a=i.pipe(Z(),ie(!0));return i.subscribe({next({hidden:s}){e.hidden=s,s?(e.setAttribute("tabindex","-1"),e.blur()):e.removeAttribute("tabindex")},complete(){e.style.top="",e.hidden=!0,e.removeAttribute("tabindex")}}),r.pipe(W(a),te("height")).subscribe(({height:s})=>{e.style.top=`${s+16}px`}),h(e,"click").subscribe(s=>{s.preventDefault(),window.scrollTo({top:0})}),vs(e,{viewport$:t,main$:o,target$:n}).pipe(w(s=>i.next(s)),_(()=>i.complete()),m(s=>$({ref:e},s)))}function wi({document$:e,viewport$:t}){e.pipe(v(()=>P(".md-ellipsis")),ne(r=>tt(r).pipe(W(e.pipe(Ce(1))),b(o=>o),m(()=>r),Te(1))),b(r=>r.offsetWidth{let o=r.innerText,n=r.closest("a")||r;return n.title=o,B("content.tooltips")?mt(n,{viewport$:t}).pipe(W(e.pipe(Ce(1))),_(()=>n.removeAttribute("title"))):S})).subscribe(),B("content.tooltips")&&e.pipe(v(()=>P(".md-status")),ne(r=>mt(r,{viewport$:t}))).subscribe()}function Ti({document$:e,tablet$:t}){e.pipe(v(()=>P(".md-toggle--indeterminate")),w(r=>{r.indeterminate=!0,r.checked=!1}),ne(r=>h(r,"change").pipe(Vr(()=>r.classList.contains("md-toggle--indeterminate")),m(()=>r))),re(t)).subscribe(([r,o])=>{r.classList.remove("md-toggle--indeterminate"),o&&(r.checked=!1)})}function gs(){return/(iPad|iPhone|iPod)/.test(navigator.userAgent)}function Si({document$:e}){e.pipe(v(()=>P("[data-md-scrollfix]")),w(t=>t.removeAttribute("data-md-scrollfix")),b(gs),ne(t=>h(t,"touchstart").pipe(m(()=>t)))).subscribe(t=>{let r=t.scrollTop;r===0?t.scrollTop=1:r+t.offsetHeight===t.scrollHeight&&(t.scrollTop=r-1)})}function Oi({viewport$:e,tablet$:t}){N([Ne("search"),t]).pipe(m(([r,o])=>r&&!o),v(r=>I(r).pipe(Ge(r?400:100))),re(e)).subscribe(([r,{offset:{y:o}}])=>{if(r)document.body.setAttribute("data-md-scrolllock",""),document.body.style.top=`-${o}px`;else{let n=-1*parseInt(document.body.style.top,10);document.body.removeAttribute("data-md-scrolllock"),document.body.style.top="",n&&window.scrollTo(0,n)}})}Object.entries||(Object.entries=function(e){let t=[];for(let r of Object.keys(e))t.push([r,e[r]]);return t});Object.values||(Object.values=function(e){let t=[];for(let r of Object.keys(e))t.push(e[r]);return t});typeof Element!="undefined"&&(Element.prototype.scrollTo||(Element.prototype.scrollTo=function(e,t){typeof e=="object"?(this.scrollLeft=e.left,this.scrollTop=e.top):(this.scrollLeft=e,this.scrollTop=t)}),Element.prototype.replaceWith||(Element.prototype.replaceWith=function(...e){let t=this.parentNode;if(t){e.length===0&&t.removeChild(this);for(let r=e.length-1;r>=0;r--){let o=e[r];typeof o=="string"?o=document.createTextNode(o):o.parentNode&&o.parentNode.removeChild(o),r?t.insertBefore(this.previousSibling,o):t.replaceChild(o,this)}}}));function ys(){return location.protocol==="file:"?wt(`${new URL("search/search_index.js",eo.base)}`).pipe(m(()=>__index),G(1)):je(new URL("search/search_index.json",eo.base))}document.documentElement.classList.remove("no-js");document.documentElement.classList.add("js");var ot=Go(),Ft=sn(),Ot=ln(Ft),to=an(),Oe=gn(),hr=$t("(min-width: 60em)"),Mi=$t("(min-width: 76.25em)"),_i=mn(),eo=xe(),Ai=document.forms.namedItem("search")?ys():Ye,ro=new g;Zn({alert$:ro});var oo=new g;B("navigation.instant")&&oi({location$:Ft,viewport$:Oe,progress$:oo}).subscribe(ot);var Li;((Li=eo.version)==null?void 0:Li.provider)==="mike"&&ci({document$:ot});O(Ft,Ot).pipe(Ge(125)).subscribe(()=>{Je("drawer",!1),Je("search",!1)});to.pipe(b(({mode:e})=>e==="global")).subscribe(e=>{switch(e.type){case"p":case",":let t=fe("link[rel=prev]");typeof t!="undefined"&<(t);break;case"n":case".":let r=fe("link[rel=next]");typeof r!="undefined"&<(r);break;case"Enter":let o=Ie();o instanceof HTMLLabelElement&&o.click()}});wi({viewport$:Oe,document$:ot});Ti({document$:ot,tablet$:hr});Si({document$:ot});Oi({viewport$:Oe,tablet$:hr});var rt=Kn(Se("header"),{viewport$:Oe}),jt=ot.pipe(m(()=>Se("main")),v(e=>Gn(e,{viewport$:Oe,header$:rt})),G(1)),xs=O(...ae("consent").map(e=>En(e,{target$:Ot})),...ae("dialog").map(e=>qn(e,{alert$:ro})),...ae("palette").map(e=>Jn(e)),...ae("progress").map(e=>Xn(e,{progress$:oo})),...ae("search").map(e=>ui(e,{index$:Ai,keyboard$:to})),...ae("source").map(e=>gi(e))),Es=C(()=>O(...ae("announce").map(e=>xn(e)),...ae("content").map(e=>Nn(e,{viewport$:Oe,target$:Ot,print$:_i})),...ae("content").map(e=>B("search.highlight")?di(e,{index$:Ai,location$:Ft}):S),...ae("header").map(e=>Yn(e,{viewport$:Oe,header$:rt,main$:jt})),...ae("header-title").map(e=>Bn(e,{viewport$:Oe,header$:rt})),...ae("sidebar").map(e=>e.getAttribute("data-md-type")==="navigation"?zr(Mi,()=>Zr(e,{viewport$:Oe,header$:rt,main$:jt})):zr(hr,()=>Zr(e,{viewport$:Oe,header$:rt,main$:jt}))),...ae("tabs").map(e=>yi(e,{viewport$:Oe,header$:rt})),...ae("toc").map(e=>xi(e,{viewport$:Oe,header$:rt,main$:jt,target$:Ot})),...ae("top").map(e=>Ei(e,{viewport$:Oe,header$:rt,main$:jt,target$:Ot})))),Ci=ot.pipe(v(()=>Es),Re(xs),G(1));Ci.subscribe();window.document$=ot;window.location$=Ft;window.target$=Ot;window.keyboard$=to;window.viewport$=Oe;window.tablet$=hr;window.screen$=Mi;window.print$=_i;window.alert$=ro;window.progress$=oo;window.component$=Ci;})(); +//# sourceMappingURL=bundle.50899def.min.js.map + diff --git a/mkdocs-site/assets/javascripts/bundle.50899def.min.js.map b/mkdocs-site/assets/javascripts/bundle.50899def.min.js.map new file mode 100644 index 0000000..6130f72 --- /dev/null +++ b/mkdocs-site/assets/javascripts/bundle.50899def.min.js.map @@ -0,0 +1,7 @@ +{ + "version": 3, + "sources": ["node_modules/focus-visible/dist/focus-visible.js", "node_modules/escape-html/index.js", "node_modules/clipboard/dist/clipboard.js", "src/templates/assets/javascripts/bundle.ts", "node_modules/tslib/tslib.es6.mjs", "node_modules/rxjs/src/internal/util/isFunction.ts", "node_modules/rxjs/src/internal/util/createErrorClass.ts", "node_modules/rxjs/src/internal/util/UnsubscriptionError.ts", "node_modules/rxjs/src/internal/util/arrRemove.ts", "node_modules/rxjs/src/internal/Subscription.ts", "node_modules/rxjs/src/internal/config.ts", "node_modules/rxjs/src/internal/scheduler/timeoutProvider.ts", "node_modules/rxjs/src/internal/util/reportUnhandledError.ts", "node_modules/rxjs/src/internal/util/noop.ts", "node_modules/rxjs/src/internal/NotificationFactories.ts", "node_modules/rxjs/src/internal/util/errorContext.ts", "node_modules/rxjs/src/internal/Subscriber.ts", "node_modules/rxjs/src/internal/symbol/observable.ts", "node_modules/rxjs/src/internal/util/identity.ts", "node_modules/rxjs/src/internal/util/pipe.ts", "node_modules/rxjs/src/internal/Observable.ts", "node_modules/rxjs/src/internal/util/lift.ts", "node_modules/rxjs/src/internal/operators/OperatorSubscriber.ts", "node_modules/rxjs/src/internal/scheduler/animationFrameProvider.ts", "node_modules/rxjs/src/internal/util/ObjectUnsubscribedError.ts", "node_modules/rxjs/src/internal/Subject.ts", "node_modules/rxjs/src/internal/BehaviorSubject.ts", "node_modules/rxjs/src/internal/scheduler/dateTimestampProvider.ts", "node_modules/rxjs/src/internal/ReplaySubject.ts", "node_modules/rxjs/src/internal/scheduler/Action.ts", "node_modules/rxjs/src/internal/scheduler/intervalProvider.ts", "node_modules/rxjs/src/internal/scheduler/AsyncAction.ts", "node_modules/rxjs/src/internal/Scheduler.ts", "node_modules/rxjs/src/internal/scheduler/AsyncScheduler.ts", "node_modules/rxjs/src/internal/scheduler/async.ts", "node_modules/rxjs/src/internal/scheduler/QueueAction.ts", "node_modules/rxjs/src/internal/scheduler/QueueScheduler.ts", "node_modules/rxjs/src/internal/scheduler/queue.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameAction.ts", "node_modules/rxjs/src/internal/scheduler/AnimationFrameScheduler.ts", "node_modules/rxjs/src/internal/scheduler/animationFrame.ts", "node_modules/rxjs/src/internal/observable/empty.ts", "node_modules/rxjs/src/internal/util/isScheduler.ts", "node_modules/rxjs/src/internal/util/args.ts", "node_modules/rxjs/src/internal/util/isArrayLike.ts", "node_modules/rxjs/src/internal/util/isPromise.ts", "node_modules/rxjs/src/internal/util/isInteropObservable.ts", "node_modules/rxjs/src/internal/util/isAsyncIterable.ts", "node_modules/rxjs/src/internal/util/throwUnobservableError.ts", "node_modules/rxjs/src/internal/symbol/iterator.ts", "node_modules/rxjs/src/internal/util/isIterable.ts", "node_modules/rxjs/src/internal/util/isReadableStreamLike.ts", "node_modules/rxjs/src/internal/observable/innerFrom.ts", "node_modules/rxjs/src/internal/util/executeSchedule.ts", "node_modules/rxjs/src/internal/operators/observeOn.ts", "node_modules/rxjs/src/internal/operators/subscribeOn.ts", "node_modules/rxjs/src/internal/scheduled/scheduleObservable.ts", "node_modules/rxjs/src/internal/scheduled/schedulePromise.ts", "node_modules/rxjs/src/internal/scheduled/scheduleArray.ts", "node_modules/rxjs/src/internal/scheduled/scheduleIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleAsyncIterable.ts", "node_modules/rxjs/src/internal/scheduled/scheduleReadableStreamLike.ts", "node_modules/rxjs/src/internal/scheduled/scheduled.ts", "node_modules/rxjs/src/internal/observable/from.ts", "node_modules/rxjs/src/internal/observable/of.ts", "node_modules/rxjs/src/internal/observable/throwError.ts", "node_modules/rxjs/src/internal/util/EmptyError.ts", "node_modules/rxjs/src/internal/util/isDate.ts", "node_modules/rxjs/src/internal/operators/map.ts", "node_modules/rxjs/src/internal/util/mapOneOrManyArgs.ts", "node_modules/rxjs/src/internal/util/argsArgArrayOrObject.ts", "node_modules/rxjs/src/internal/util/createObject.ts", "node_modules/rxjs/src/internal/observable/combineLatest.ts", "node_modules/rxjs/src/internal/operators/mergeInternals.ts", "node_modules/rxjs/src/internal/operators/mergeMap.ts", "node_modules/rxjs/src/internal/operators/mergeAll.ts", "node_modules/rxjs/src/internal/operators/concatAll.ts", "node_modules/rxjs/src/internal/observable/concat.ts", "node_modules/rxjs/src/internal/observable/defer.ts", "node_modules/rxjs/src/internal/observable/fromEvent.ts", "node_modules/rxjs/src/internal/observable/fromEventPattern.ts", "node_modules/rxjs/src/internal/observable/timer.ts", "node_modules/rxjs/src/internal/observable/merge.ts", "node_modules/rxjs/src/internal/observable/never.ts", "node_modules/rxjs/src/internal/util/argsOrArgArray.ts", "node_modules/rxjs/src/internal/operators/filter.ts", "node_modules/rxjs/src/internal/observable/zip.ts", "node_modules/rxjs/src/internal/operators/audit.ts", "node_modules/rxjs/src/internal/operators/auditTime.ts", "node_modules/rxjs/src/internal/operators/bufferCount.ts", "node_modules/rxjs/src/internal/operators/catchError.ts", "node_modules/rxjs/src/internal/operators/scanInternals.ts", "node_modules/rxjs/src/internal/operators/combineLatest.ts", "node_modules/rxjs/src/internal/operators/combineLatestWith.ts", "node_modules/rxjs/src/internal/operators/debounce.ts", "node_modules/rxjs/src/internal/operators/debounceTime.ts", "node_modules/rxjs/src/internal/operators/defaultIfEmpty.ts", "node_modules/rxjs/src/internal/operators/take.ts", "node_modules/rxjs/src/internal/operators/ignoreElements.ts", "node_modules/rxjs/src/internal/operators/mapTo.ts", "node_modules/rxjs/src/internal/operators/delayWhen.ts", "node_modules/rxjs/src/internal/operators/delay.ts", "node_modules/rxjs/src/internal/operators/distinctUntilChanged.ts", "node_modules/rxjs/src/internal/operators/distinctUntilKeyChanged.ts", "node_modules/rxjs/src/internal/operators/throwIfEmpty.ts", "node_modules/rxjs/src/internal/operators/endWith.ts", "node_modules/rxjs/src/internal/operators/finalize.ts", "node_modules/rxjs/src/internal/operators/first.ts", "node_modules/rxjs/src/internal/operators/takeLast.ts", "node_modules/rxjs/src/internal/operators/merge.ts", "node_modules/rxjs/src/internal/operators/mergeWith.ts", "node_modules/rxjs/src/internal/operators/repeat.ts", "node_modules/rxjs/src/internal/operators/scan.ts", "node_modules/rxjs/src/internal/operators/share.ts", "node_modules/rxjs/src/internal/operators/shareReplay.ts", "node_modules/rxjs/src/internal/operators/skip.ts", "node_modules/rxjs/src/internal/operators/skipUntil.ts", "node_modules/rxjs/src/internal/operators/startWith.ts", "node_modules/rxjs/src/internal/operators/switchMap.ts", "node_modules/rxjs/src/internal/operators/takeUntil.ts", "node_modules/rxjs/src/internal/operators/takeWhile.ts", "node_modules/rxjs/src/internal/operators/tap.ts", "node_modules/rxjs/src/internal/operators/throttle.ts", "node_modules/rxjs/src/internal/operators/throttleTime.ts", "node_modules/rxjs/src/internal/operators/withLatestFrom.ts", "node_modules/rxjs/src/internal/operators/zip.ts", "node_modules/rxjs/src/internal/operators/zipWith.ts", "src/templates/assets/javascripts/browser/document/index.ts", "src/templates/assets/javascripts/browser/element/_/index.ts", "src/templates/assets/javascripts/browser/element/focus/index.ts", "src/templates/assets/javascripts/browser/element/hover/index.ts", "src/templates/assets/javascripts/utilities/h/index.ts", "src/templates/assets/javascripts/utilities/round/index.ts", "src/templates/assets/javascripts/browser/script/index.ts", "src/templates/assets/javascripts/browser/element/size/_/index.ts", "src/templates/assets/javascripts/browser/element/size/content/index.ts", "src/templates/assets/javascripts/browser/element/offset/_/index.ts", "src/templates/assets/javascripts/browser/element/offset/content/index.ts", "src/templates/assets/javascripts/browser/element/visibility/index.ts", "src/templates/assets/javascripts/browser/toggle/index.ts", "src/templates/assets/javascripts/browser/keyboard/index.ts", "src/templates/assets/javascripts/browser/location/_/index.ts", "src/templates/assets/javascripts/browser/location/hash/index.ts", "src/templates/assets/javascripts/browser/media/index.ts", "src/templates/assets/javascripts/browser/request/index.ts", "src/templates/assets/javascripts/browser/viewport/offset/index.ts", "src/templates/assets/javascripts/browser/viewport/size/index.ts", "src/templates/assets/javascripts/browser/viewport/_/index.ts", "src/templates/assets/javascripts/browser/viewport/at/index.ts", "src/templates/assets/javascripts/browser/worker/index.ts", "src/templates/assets/javascripts/_/index.ts", "src/templates/assets/javascripts/components/_/index.ts", "src/templates/assets/javascripts/components/announce/index.ts", "src/templates/assets/javascripts/components/consent/index.ts", "src/templates/assets/javascripts/templates/tooltip/index.tsx", "src/templates/assets/javascripts/templates/annotation/index.tsx", "src/templates/assets/javascripts/templates/clipboard/index.tsx", "src/templates/assets/javascripts/templates/search/index.tsx", "src/templates/assets/javascripts/templates/source/index.tsx", "src/templates/assets/javascripts/templates/tabbed/index.tsx", "src/templates/assets/javascripts/templates/table/index.tsx", "src/templates/assets/javascripts/templates/version/index.tsx", "src/templates/assets/javascripts/components/tooltip2/index.ts", "src/templates/assets/javascripts/components/content/annotation/_/index.ts", "src/templates/assets/javascripts/components/content/annotation/list/index.ts", "src/templates/assets/javascripts/components/content/annotation/block/index.ts", "src/templates/assets/javascripts/components/content/code/_/index.ts", "src/templates/assets/javascripts/components/content/details/index.ts", "src/templates/assets/javascripts/components/content/mermaid/index.css", "src/templates/assets/javascripts/components/content/mermaid/index.ts", "src/templates/assets/javascripts/components/content/table/index.ts", "src/templates/assets/javascripts/components/content/tabs/index.ts", "src/templates/assets/javascripts/components/content/_/index.ts", "src/templates/assets/javascripts/components/dialog/index.ts", "src/templates/assets/javascripts/components/tooltip/index.ts", "src/templates/assets/javascripts/components/header/_/index.ts", "src/templates/assets/javascripts/components/header/title/index.ts", "src/templates/assets/javascripts/components/main/index.ts", "src/templates/assets/javascripts/components/palette/index.ts", "src/templates/assets/javascripts/components/progress/index.ts", "src/templates/assets/javascripts/integrations/clipboard/index.ts", "src/templates/assets/javascripts/integrations/sitemap/index.ts", "src/templates/assets/javascripts/integrations/instant/index.ts", "src/templates/assets/javascripts/integrations/search/highlighter/index.ts", "src/templates/assets/javascripts/integrations/search/worker/message/index.ts", "src/templates/assets/javascripts/integrations/search/worker/_/index.ts", "src/templates/assets/javascripts/integrations/version/findurl/index.ts", "src/templates/assets/javascripts/integrations/version/index.ts", "src/templates/assets/javascripts/components/search/query/index.ts", "src/templates/assets/javascripts/components/search/result/index.ts", "src/templates/assets/javascripts/components/search/share/index.ts", "src/templates/assets/javascripts/components/search/suggest/index.ts", "src/templates/assets/javascripts/components/search/_/index.ts", "src/templates/assets/javascripts/components/search/highlight/index.ts", "src/templates/assets/javascripts/components/sidebar/index.ts", "src/templates/assets/javascripts/components/source/facts/github/index.ts", "src/templates/assets/javascripts/components/source/facts/gitlab/index.ts", "src/templates/assets/javascripts/components/source/facts/_/index.ts", "src/templates/assets/javascripts/components/source/_/index.ts", "src/templates/assets/javascripts/components/tabs/index.ts", "src/templates/assets/javascripts/components/toc/index.ts", "src/templates/assets/javascripts/components/top/index.ts", "src/templates/assets/javascripts/patches/ellipsis/index.ts", "src/templates/assets/javascripts/patches/indeterminate/index.ts", "src/templates/assets/javascripts/patches/scrollfix/index.ts", "src/templates/assets/javascripts/patches/scrolllock/index.ts", "src/templates/assets/javascripts/polyfills/index.ts"], + "sourcesContent": ["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n /**\n * Applies the :focus-visible polyfill at the given scope.\n * A scope in this case is either the top-level Document or a Shadow Root.\n *\n * @param {(Document|ShadowRoot)} scope\n * @see https://github.com/WICG/focus-visible\n */\n function applyFocusVisiblePolyfill(scope) {\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n\n var inputTypesAllowlist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n /**\n * Helper function for legacy browsers and iframes which sometimes focus\n * elements like document, body, and non-interactive SVG.\n * @param {Element} el\n */\n function isValidFocusTarget(el) {\n if (\n el &&\n el !== document &&\n el.nodeName !== 'HTML' &&\n el.nodeName !== 'BODY' &&\n 'classList' in el &&\n 'contains' in el.classList\n ) {\n return true;\n }\n return false;\n }\n\n /**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} el\n * @return {boolean}\n */\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n\n if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !el.readOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n /**\n * Add the `focus-visible` class to the given element if it was not added by\n * the author.\n * @param {Element} el\n */\n function addFocusVisibleClass(el) {\n if (el.classList.contains('focus-visible')) {\n return;\n }\n el.classList.add('focus-visible');\n el.setAttribute('data-focus-visible-added', '');\n }\n\n /**\n * Remove the `focus-visible` class from the given element if it was not\n * originally added by the author.\n * @param {Element} el\n */\n function removeFocusVisibleClass(el) {\n if (!el.hasAttribute('data-focus-visible-added')) {\n return;\n }\n el.classList.remove('focus-visible');\n el.removeAttribute('data-focus-visible-added');\n }\n\n /**\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * Apply `focus-visible` to any current active element and keep track\n * of our keyboard modality state with `hadKeyboardEvent`.\n * @param {KeyboardEvent} e\n */\n function onKeyDown(e) {\n if (e.metaKey || e.altKey || e.ctrlKey) {\n return;\n }\n\n if (isValidFocusTarget(scope.activeElement)) {\n addFocusVisibleClass(scope.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n /**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n * @param {Event} e\n */\n function onPointerDown(e) {\n hadKeyboardEvent = false;\n }\n\n /**\n * On `focus`, add the `focus-visible` class to the target if:\n * - the target received focus as a result of keyboard navigation, or\n * - the event target is an element that will likely require interaction\n * via the keyboard (e.g. a text box)\n * @param {Event} e\n */\n function onFocus(e) {\n // Prevent IE from focusing the document or HTML element.\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleClass(e.target);\n }\n }\n\n /**\n * On `blur`, remove the `focus-visible` class from the target.\n * @param {Event} e\n */\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (\n e.target.classList.contains('focus-visible') ||\n e.target.hasAttribute('data-focus-visible-added')\n ) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function() {\n hadFocusVisibleRecently = false;\n }, 100);\n removeFocusVisibleClass(e.target);\n }\n }\n\n /**\n * If the user changes tabs, keep track of whether or not the previously\n * focused element had .focus-visible.\n * @param {Event} e\n */\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n addInitialPointerMoveListeners();\n }\n }\n\n /**\n * Add a group of listeners to detect usage of any pointing devices.\n * These listeners will be added when the polyfill first loads, and anytime\n * the window is blurred, so that they are active when the window regains\n * focus.\n */\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n /**\n * When the polfyill first loads, assume the user is in keyboard modality.\n * If any event is received from a pointing device (e.g. mouse, pointer,\n * touch), turn off keyboard modality.\n * This accounts for situations where focus enters the page from the URL bar.\n * @param {Event} e\n */\n function onInitialPointerMove(e) {\n // Work around a Safari quirk that fires a mousemove on whenever the\n // window blurs, even if you're tabbing out of the page. \u00AF\\_(\u30C4)_/\u00AF\n if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n // For some kinds of state, we are interested in changes at the global scope\n // only. For example, global pointer input, global key presses and global\n // visibility change should affect the state at every scope:\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n\n addInitialPointerMoveListeners();\n\n // For focus and blur, we specifically care about state changes in the local\n // scope. This is because focus / blur events that originate from within a\n // shadow root are not re-dispatched from the host element if it was already\n // the active element in its own scope:\n scope.addEventListener('focus', onFocus, true);\n scope.addEventListener('blur', onBlur, true);\n\n // We detect that a node is a ShadowRoot by ensuring that it is a\n // DocumentFragment and also has a host property. This check covers native\n // implementation and polyfill implementation transparently. If we only cared\n // about the native implementation, we could just check if the scope was\n // an instance of a ShadowRoot.\n if (scope.nodeType === Node.DOCUMENT_FRAGMENT_NODE && scope.host) {\n // Since a ShadowRoot is a special kind of DocumentFragment, it does not\n // have a root element to add a class to. So, we add this attribute to the\n // host element instead:\n scope.host.setAttribute('data-js-focus-visible', '');\n } else if (scope.nodeType === Node.DOCUMENT_NODE) {\n document.documentElement.classList.add('js-focus-visible');\n document.documentElement.setAttribute('data-js-focus-visible', '');\n }\n }\n\n // It is important to wrap all references to global window and document in\n // these checks to support server-side rendering use cases\n // @see https://github.com/WICG/focus-visible/issues/199\n if (typeof window !== 'undefined' && typeof document !== 'undefined') {\n // Make the polyfill helper globally available. This can be used as a signal\n // to interested libraries that wish to coordinate with the polyfill for e.g.,\n // applying the polyfill to a shadow root:\n window.applyFocusVisiblePolyfill = applyFocusVisiblePolyfill;\n\n // Notify interested libraries of the polyfill's presence, in case the\n // polyfill was loaded lazily:\n var event;\n\n try {\n event = new CustomEvent('focus-visible-polyfill-ready');\n } catch (error) {\n // IE11 does not support using CustomEvent as a constructor directly:\n event = document.createEvent('CustomEvent');\n event.initCustomEvent('focus-visible-polyfill-ready', false, false, {});\n }\n\n window.dispatchEvent(event);\n }\n\n if (typeof document !== 'undefined') {\n // Apply the polyfill to the global document, so that no JavaScript\n // coordination is required to use the polyfill in the top-level document:\n applyFocusVisiblePolyfill(document);\n }\n\n})));\n", "/*!\n * escape-html\n * Copyright(c) 2012-2013 TJ Holowaychuk\n * Copyright(c) 2015 Andreas Lubbe\n * Copyright(c) 2015 Tiancheng \"Timothy\" Gu\n * MIT Licensed\n */\n\n'use strict';\n\n/**\n * Module variables.\n * @private\n */\n\nvar matchHtmlRegExp = /[\"'&<>]/;\n\n/**\n * Module exports.\n * @public\n */\n\nmodule.exports = escapeHtml;\n\n/**\n * Escape special characters in the given string of html.\n *\n * @param {string} string The string to escape for inserting into HTML\n * @return {string}\n * @public\n */\n\nfunction escapeHtml(string) {\n var str = '' + string;\n var match = matchHtmlRegExp.exec(str);\n\n if (!match) {\n return str;\n }\n\n var escape;\n var html = '';\n var index = 0;\n var lastIndex = 0;\n\n for (index = match.index; index < str.length; index++) {\n switch (str.charCodeAt(index)) {\n case 34: // \"\n escape = '"';\n break;\n case 38: // &\n escape = '&';\n break;\n case 39: // '\n escape = ''';\n break;\n case 60: // <\n escape = '<';\n break;\n case 62: // >\n escape = '>';\n break;\n default:\n continue;\n }\n\n if (lastIndex !== index) {\n html += str.substring(lastIndex, index);\n }\n\n lastIndex = index + 1;\n html += escape;\n }\n\n return lastIndex !== index\n ? html + str.substring(lastIndex, index)\n : html;\n}\n", "/*!\n * clipboard.js v2.0.11\n * https://clipboardjs.com/\n *\n * Licensed MIT \u00A9 Zeno Rocha\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ClipboardJS\"] = factory();\n\telse\n\t\troot[\"ClipboardJS\"] = factory();\n})(this, function() {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 686:\n/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ clipboard; }\n});\n\n// EXTERNAL MODULE: ./node_modules/tiny-emitter/index.js\nvar tiny_emitter = __webpack_require__(279);\nvar tiny_emitter_default = /*#__PURE__*/__webpack_require__.n(tiny_emitter);\n// EXTERNAL MODULE: ./node_modules/good-listener/src/listen.js\nvar listen = __webpack_require__(370);\nvar listen_default = /*#__PURE__*/__webpack_require__.n(listen);\n// EXTERNAL MODULE: ./node_modules/select/src/select.js\nvar src_select = __webpack_require__(817);\nvar select_default = /*#__PURE__*/__webpack_require__.n(src_select);\n;// CONCATENATED MODULE: ./src/common/command.js\n/**\n * Executes a given operation type.\n * @param {String} type\n * @return {Boolean}\n */\nfunction command(type) {\n try {\n return document.execCommand(type);\n } catch (err) {\n return false;\n }\n}\n;// CONCATENATED MODULE: ./src/actions/cut.js\n\n\n/**\n * Cut action wrapper.\n * @param {String|HTMLElement} target\n * @return {String}\n */\n\nvar ClipboardActionCut = function ClipboardActionCut(target) {\n var selectedText = select_default()(target);\n command('cut');\n return selectedText;\n};\n\n/* harmony default export */ var actions_cut = (ClipboardActionCut);\n;// CONCATENATED MODULE: ./src/common/create-fake-element.js\n/**\n * Creates a fake textarea element with a value.\n * @param {String} value\n * @return {HTMLElement}\n */\nfunction createFakeElement(value) {\n var isRTL = document.documentElement.getAttribute('dir') === 'rtl';\n var fakeElement = document.createElement('textarea'); // Prevent zooming on iOS\n\n fakeElement.style.fontSize = '12pt'; // Reset box model\n\n fakeElement.style.border = '0';\n fakeElement.style.padding = '0';\n fakeElement.style.margin = '0'; // Move element out of screen horizontally\n\n fakeElement.style.position = 'absolute';\n fakeElement.style[isRTL ? 'right' : 'left'] = '-9999px'; // Move element to the same position vertically\n\n var yPosition = window.pageYOffset || document.documentElement.scrollTop;\n fakeElement.style.top = \"\".concat(yPosition, \"px\");\n fakeElement.setAttribute('readonly', '');\n fakeElement.value = value;\n return fakeElement;\n}\n;// CONCATENATED MODULE: ./src/actions/copy.js\n\n\n\n/**\n * Create fake copy action wrapper using a fake element.\n * @param {String} target\n * @param {Object} options\n * @return {String}\n */\n\nvar fakeCopyAction = function fakeCopyAction(value, options) {\n var fakeElement = createFakeElement(value);\n options.container.appendChild(fakeElement);\n var selectedText = select_default()(fakeElement);\n command('copy');\n fakeElement.remove();\n return selectedText;\n};\n/**\n * Copy action wrapper.\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @return {String}\n */\n\n\nvar ClipboardActionCopy = function ClipboardActionCopy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n var selectedText = '';\n\n if (typeof target === 'string') {\n selectedText = fakeCopyAction(target, options);\n } else if (target instanceof HTMLInputElement && !['text', 'search', 'url', 'tel', 'password'].includes(target === null || target === void 0 ? void 0 : target.type)) {\n // If input type doesn't support `setSelectionRange`. Simulate it. https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/setSelectionRange\n selectedText = fakeCopyAction(target.value, options);\n } else {\n selectedText = select_default()(target);\n command('copy');\n }\n\n return selectedText;\n};\n\n/* harmony default export */ var actions_copy = (ClipboardActionCopy);\n;// CONCATENATED MODULE: ./src/actions/default.js\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n\n\n/**\n * Inner function which performs selection from either `text` or `target`\n * properties and then executes copy or cut operations.\n * @param {Object} options\n */\n\nvar ClipboardActionDefault = function ClipboardActionDefault() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n // Defines base properties passed from constructor.\n var _options$action = options.action,\n action = _options$action === void 0 ? 'copy' : _options$action,\n container = options.container,\n target = options.target,\n text = options.text; // Sets the `action` to be performed which can be either 'copy' or 'cut'.\n\n if (action !== 'copy' && action !== 'cut') {\n throw new Error('Invalid \"action\" value, use either \"copy\" or \"cut\"');\n } // Sets the `target` property using an element that will be have its content copied.\n\n\n if (target !== undefined) {\n if (target && _typeof(target) === 'object' && target.nodeType === 1) {\n if (action === 'copy' && target.hasAttribute('disabled')) {\n throw new Error('Invalid \"target\" attribute. Please use \"readonly\" instead of \"disabled\" attribute');\n }\n\n if (action === 'cut' && (target.hasAttribute('readonly') || target.hasAttribute('disabled'))) {\n throw new Error('Invalid \"target\" attribute. You can\\'t cut text from elements with \"readonly\" or \"disabled\" attributes');\n }\n } else {\n throw new Error('Invalid \"target\" value, use a valid Element');\n }\n } // Define selection strategy based on `text` property.\n\n\n if (text) {\n return actions_copy(text, {\n container: container\n });\n } // Defines which selection strategy based on `target` property.\n\n\n if (target) {\n return action === 'cut' ? actions_cut(target) : actions_copy(target, {\n container: container\n });\n }\n};\n\n/* harmony default export */ var actions_default = (ClipboardActionDefault);\n;// CONCATENATED MODULE: ./src/clipboard.js\nfunction clipboard_typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { clipboard_typeof = function _typeof(obj) { return typeof obj; }; } else { clipboard_typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return clipboard_typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (clipboard_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\n\n\n\n\n\n/**\n * Helper function to retrieve attribute value.\n * @param {String} suffix\n * @param {Element} element\n */\n\nfunction getAttributeValue(suffix, element) {\n var attribute = \"data-clipboard-\".concat(suffix);\n\n if (!element.hasAttribute(attribute)) {\n return;\n }\n\n return element.getAttribute(attribute);\n}\n/**\n * Base class which takes one or more elements, adds event listeners to them,\n * and instantiates a new `ClipboardAction` on each click.\n */\n\n\nvar Clipboard = /*#__PURE__*/function (_Emitter) {\n _inherits(Clipboard, _Emitter);\n\n var _super = _createSuper(Clipboard);\n\n /**\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n * @param {Object} options\n */\n function Clipboard(trigger, options) {\n var _this;\n\n _classCallCheck(this, Clipboard);\n\n _this = _super.call(this);\n\n _this.resolveOptions(options);\n\n _this.listenClick(trigger);\n\n return _this;\n }\n /**\n * Defines if attributes would be resolved using internal setter functions\n * or custom functions that were passed in the constructor.\n * @param {Object} options\n */\n\n\n _createClass(Clipboard, [{\n key: \"resolveOptions\",\n value: function resolveOptions() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n this.action = typeof options.action === 'function' ? options.action : this.defaultAction;\n this.target = typeof options.target === 'function' ? options.target : this.defaultTarget;\n this.text = typeof options.text === 'function' ? options.text : this.defaultText;\n this.container = clipboard_typeof(options.container) === 'object' ? options.container : document.body;\n }\n /**\n * Adds a click event listener to the passed trigger.\n * @param {String|HTMLElement|HTMLCollection|NodeList} trigger\n */\n\n }, {\n key: \"listenClick\",\n value: function listenClick(trigger) {\n var _this2 = this;\n\n this.listener = listen_default()(trigger, 'click', function (e) {\n return _this2.onClick(e);\n });\n }\n /**\n * Defines a new `ClipboardAction` on each click event.\n * @param {Event} e\n */\n\n }, {\n key: \"onClick\",\n value: function onClick(e) {\n var trigger = e.delegateTarget || e.currentTarget;\n var action = this.action(trigger) || 'copy';\n var text = actions_default({\n action: action,\n container: this.container,\n target: this.target(trigger),\n text: this.text(trigger)\n }); // Fires an event based on the copy operation result.\n\n this.emit(text ? 'success' : 'error', {\n action: action,\n text: text,\n trigger: trigger,\n clearSelection: function clearSelection() {\n if (trigger) {\n trigger.focus();\n }\n\n window.getSelection().removeAllRanges();\n }\n });\n }\n /**\n * Default `action` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultAction\",\n value: function defaultAction(trigger) {\n return getAttributeValue('action', trigger);\n }\n /**\n * Default `target` lookup function.\n * @param {Element} trigger\n */\n\n }, {\n key: \"defaultTarget\",\n value: function defaultTarget(trigger) {\n var selector = getAttributeValue('target', trigger);\n\n if (selector) {\n return document.querySelector(selector);\n }\n }\n /**\n * Allow fire programmatically a copy action\n * @param {String|HTMLElement} target\n * @param {Object} options\n * @returns Text copied.\n */\n\n }, {\n key: \"defaultText\",\n\n /**\n * Default `text` lookup function.\n * @param {Element} trigger\n */\n value: function defaultText(trigger) {\n return getAttributeValue('text', trigger);\n }\n /**\n * Destroy lifecycle.\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.listener.destroy();\n }\n }], [{\n key: \"copy\",\n value: function copy(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n container: document.body\n };\n return actions_copy(target, options);\n }\n /**\n * Allow fire programmatically a cut action\n * @param {String|HTMLElement} target\n * @returns Text cutted.\n */\n\n }, {\n key: \"cut\",\n value: function cut(target) {\n return actions_cut(target);\n }\n /**\n * Returns the support of the given action, or all actions if no action is\n * given.\n * @param {String} [action]\n */\n\n }, {\n key: \"isSupported\",\n value: function isSupported() {\n var action = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['copy', 'cut'];\n var actions = typeof action === 'string' ? [action] : action;\n var support = !!document.queryCommandSupported;\n actions.forEach(function (action) {\n support = support && !!document.queryCommandSupported(action);\n });\n return support;\n }\n }]);\n\n return Clipboard;\n}((tiny_emitter_default()));\n\n/* harmony default export */ var clipboard = (Clipboard);\n\n/***/ }),\n\n/***/ 828:\n/***/ (function(module) {\n\nvar DOCUMENT_NODE_TYPE = 9;\n\n/**\n * A polyfill for Element.matches()\n */\nif (typeof Element !== 'undefined' && !Element.prototype.matches) {\n var proto = Element.prototype;\n\n proto.matches = proto.matchesSelector ||\n proto.mozMatchesSelector ||\n proto.msMatchesSelector ||\n proto.oMatchesSelector ||\n proto.webkitMatchesSelector;\n}\n\n/**\n * Finds the closest parent that matches a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @return {Function}\n */\nfunction closest (element, selector) {\n while (element && element.nodeType !== DOCUMENT_NODE_TYPE) {\n if (typeof element.matches === 'function' &&\n element.matches(selector)) {\n return element;\n }\n element = element.parentNode;\n }\n}\n\nmodule.exports = closest;\n\n\n/***/ }),\n\n/***/ 438:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar closest = __webpack_require__(828);\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction _delegate(element, selector, type, callback, useCapture) {\n var listenerFn = listener.apply(this, arguments);\n\n element.addEventListener(type, listenerFn, useCapture);\n\n return {\n destroy: function() {\n element.removeEventListener(type, listenerFn, useCapture);\n }\n }\n}\n\n/**\n * Delegates event to a selector.\n *\n * @param {Element|String|Array} [elements]\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @param {Boolean} useCapture\n * @return {Object}\n */\nfunction delegate(elements, selector, type, callback, useCapture) {\n // Handle the regular Element usage\n if (typeof elements.addEventListener === 'function') {\n return _delegate.apply(null, arguments);\n }\n\n // Handle Element-less usage, it defaults to global delegation\n if (typeof type === 'function') {\n // Use `document` as the first parameter, then apply arguments\n // This is a short way to .unshift `arguments` without running into deoptimizations\n return _delegate.bind(null, document).apply(null, arguments);\n }\n\n // Handle Selector-based usage\n if (typeof elements === 'string') {\n elements = document.querySelectorAll(elements);\n }\n\n // Handle Array-like based usage\n return Array.prototype.map.call(elements, function (element) {\n return _delegate(element, selector, type, callback, useCapture);\n });\n}\n\n/**\n * Finds closest match and invokes callback.\n *\n * @param {Element} element\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Function}\n */\nfunction listener(element, selector, type, callback) {\n return function(e) {\n e.delegateTarget = closest(e.target, selector);\n\n if (e.delegateTarget) {\n callback.call(element, e);\n }\n }\n}\n\nmodule.exports = delegate;\n\n\n/***/ }),\n\n/***/ 879:\n/***/ (function(__unused_webpack_module, exports) {\n\n/**\n * Check if argument is a HTML element.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.node = function(value) {\n return value !== undefined\n && value instanceof HTMLElement\n && value.nodeType === 1;\n};\n\n/**\n * Check if argument is a list of HTML elements.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.nodeList = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return value !== undefined\n && (type === '[object NodeList]' || type === '[object HTMLCollection]')\n && ('length' in value)\n && (value.length === 0 || exports.node(value[0]));\n};\n\n/**\n * Check if argument is a string.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.string = function(value) {\n return typeof value === 'string'\n || value instanceof String;\n};\n\n/**\n * Check if argument is a function.\n *\n * @param {Object} value\n * @return {Boolean}\n */\nexports.fn = function(value) {\n var type = Object.prototype.toString.call(value);\n\n return type === '[object Function]';\n};\n\n\n/***/ }),\n\n/***/ 370:\n/***/ (function(module, __unused_webpack_exports, __webpack_require__) {\n\nvar is = __webpack_require__(879);\nvar delegate = __webpack_require__(438);\n\n/**\n * Validates all params and calls the right\n * listener function based on its target type.\n *\n * @param {String|HTMLElement|HTMLCollection|NodeList} target\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listen(target, type, callback) {\n if (!target && !type && !callback) {\n throw new Error('Missing required arguments');\n }\n\n if (!is.string(type)) {\n throw new TypeError('Second argument must be a String');\n }\n\n if (!is.fn(callback)) {\n throw new TypeError('Third argument must be a Function');\n }\n\n if (is.node(target)) {\n return listenNode(target, type, callback);\n }\n else if (is.nodeList(target)) {\n return listenNodeList(target, type, callback);\n }\n else if (is.string(target)) {\n return listenSelector(target, type, callback);\n }\n else {\n throw new TypeError('First argument must be a String, HTMLElement, HTMLCollection, or NodeList');\n }\n}\n\n/**\n * Adds an event listener to a HTML element\n * and returns a remove listener function.\n *\n * @param {HTMLElement} node\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNode(node, type, callback) {\n node.addEventListener(type, callback);\n\n return {\n destroy: function() {\n node.removeEventListener(type, callback);\n }\n }\n}\n\n/**\n * Add an event listener to a list of HTML elements\n * and returns a remove listener function.\n *\n * @param {NodeList|HTMLCollection} nodeList\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenNodeList(nodeList, type, callback) {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.addEventListener(type, callback);\n });\n\n return {\n destroy: function() {\n Array.prototype.forEach.call(nodeList, function(node) {\n node.removeEventListener(type, callback);\n });\n }\n }\n}\n\n/**\n * Add an event listener to a selector\n * and returns a remove listener function.\n *\n * @param {String} selector\n * @param {String} type\n * @param {Function} callback\n * @return {Object}\n */\nfunction listenSelector(selector, type, callback) {\n return delegate(document.body, selector, type, callback);\n}\n\nmodule.exports = listen;\n\n\n/***/ }),\n\n/***/ 817:\n/***/ (function(module) {\n\nfunction select(element) {\n var selectedText;\n\n if (element.nodeName === 'SELECT') {\n element.focus();\n\n selectedText = element.value;\n }\n else if (element.nodeName === 'INPUT' || element.nodeName === 'TEXTAREA') {\n var isReadOnly = element.hasAttribute('readonly');\n\n if (!isReadOnly) {\n element.setAttribute('readonly', '');\n }\n\n element.select();\n element.setSelectionRange(0, element.value.length);\n\n if (!isReadOnly) {\n element.removeAttribute('readonly');\n }\n\n selectedText = element.value;\n }\n else {\n if (element.hasAttribute('contenteditable')) {\n element.focus();\n }\n\n var selection = window.getSelection();\n var range = document.createRange();\n\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n\n selectedText = selection.toString();\n }\n\n return selectedText;\n}\n\nmodule.exports = select;\n\n\n/***/ }),\n\n/***/ 279:\n/***/ (function(module) {\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n };\n\n listener._ = callback\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nmodule.exports = E;\nmodule.exports.TinyEmitter = E;\n\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(__webpack_module_cache__[moduleId]) {\n/******/ \t\t\treturn __webpack_module_cache__[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\n/******/ \t// module exports must be returned from runtime so entry inlining is disabled\n/******/ \t// startup\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(686);\n/******/ })()\n.default;\n});", "/*\n * Copyright (c) 2016-2025 Martin Donath \n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to\n * deal in the Software without restriction, including without limitation the\n * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or\n * sell copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in\n * all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n * IN THE SOFTWARE.\n */\n\nimport \"focus-visible\"\n\nimport {\n EMPTY,\n NEVER,\n Observable,\n Subject,\n defer,\n delay,\n filter,\n map,\n merge,\n mergeWith,\n shareReplay,\n switchMap\n} from \"rxjs\"\n\nimport { configuration, feature } from \"./_\"\nimport {\n at,\n getActiveElement,\n getOptionalElement,\n requestJSON,\n setLocation,\n setToggle,\n watchDocument,\n watchKeyboard,\n watchLocation,\n watchLocationTarget,\n watchMedia,\n watchPrint,\n watchScript,\n watchViewport\n} from \"./browser\"\nimport {\n getComponentElement,\n getComponentElements,\n mountAnnounce,\n mountBackToTop,\n mountConsent,\n mountContent,\n mountDialog,\n mountHeader,\n mountHeaderTitle,\n mountPalette,\n mountProgress,\n mountSearch,\n mountSearchHiglight,\n mountSidebar,\n mountSource,\n mountTableOfContents,\n mountTabs,\n watchHeader,\n watchMain\n} from \"./components\"\nimport {\n SearchIndex,\n setupClipboardJS,\n setupInstantNavigation,\n setupVersionSelector\n} from \"./integrations\"\nimport {\n patchEllipsis,\n patchIndeterminate,\n patchScrollfix,\n patchScrolllock\n} from \"./patches\"\nimport \"./polyfills\"\n\n/* ----------------------------------------------------------------------------\n * Functions - @todo refactor\n * ------------------------------------------------------------------------- */\n\n/**\n * Fetch search index\n *\n * @returns Search index observable\n */\nfunction fetchSearchIndex(): Observable {\n if (location.protocol === \"file:\") {\n return watchScript(\n `${new URL(\"search/search_index.js\", config.base)}`\n )\n .pipe(\n // @ts-ignore - @todo fix typings\n map(() => __index),\n shareReplay(1)\n )\n } else {\n return requestJSON(\n new URL(\"search/search_index.json\", config.base)\n )\n }\n}\n\n/* ----------------------------------------------------------------------------\n * Application\n * ------------------------------------------------------------------------- */\n\n/* Yay, JavaScript is available */\ndocument.documentElement.classList.remove(\"no-js\")\ndocument.documentElement.classList.add(\"js\")\n\n/* Set up navigation observables and subjects */\nconst document$ = watchDocument()\nconst location$ = watchLocation()\nconst target$ = watchLocationTarget(location$)\nconst keyboard$ = watchKeyboard()\n\n/* Set up media observables */\nconst viewport$ = watchViewport()\nconst tablet$ = watchMedia(\"(min-width: 60em)\")\nconst screen$ = watchMedia(\"(min-width: 76.25em)\")\nconst print$ = watchPrint()\n\n/* Retrieve search index, if search is enabled */\nconst config = configuration()\nconst index$ = document.forms.namedItem(\"search\")\n ? fetchSearchIndex()\n : NEVER\n\n/* Set up Clipboard.js integration */\nconst alert$ = new Subject()\nsetupClipboardJS({ alert$ })\n\n/* Set up progress indicator */\nconst progress$ = new Subject()\n\n/* Set up instant navigation, if enabled */\nif (feature(\"navigation.instant\"))\n setupInstantNavigation({ location$, viewport$, progress$ })\n .subscribe(document$)\n\n/* Set up version selector */\nif (config.version?.provider === \"mike\")\n setupVersionSelector({ document$ })\n\n/* Always close drawer and search on navigation */\nmerge(location$, target$)\n .pipe(\n delay(125)\n )\n .subscribe(() => {\n setToggle(\"drawer\", false)\n setToggle(\"search\", false)\n })\n\n/* Set up global keyboard handlers */\nkeyboard$\n .pipe(\n filter(({ mode }) => mode === \"global\")\n )\n .subscribe(key => {\n switch (key.type) {\n\n /* Go to previous page */\n case \"p\":\n case \",\":\n const prev = getOptionalElement(\"link[rel=prev]\")\n if (typeof prev !== \"undefined\")\n setLocation(prev)\n break\n\n /* Go to next page */\n case \"n\":\n case \".\":\n const next = getOptionalElement(\"link[rel=next]\")\n if (typeof next !== \"undefined\")\n setLocation(next)\n break\n\n /* Expand navigation, see https://bit.ly/3ZjG5io */\n case \"Enter\":\n const active = getActiveElement()\n if (active instanceof HTMLLabelElement)\n active.click()\n }\n })\n\n/* Set up patches */\npatchEllipsis({ viewport$, document$ })\npatchIndeterminate({ document$, tablet$ })\npatchScrollfix({ document$ })\npatchScrolllock({ viewport$, tablet$ })\n\n/* Set up header and main area observable */\nconst header$ = watchHeader(getComponentElement(\"header\"), { viewport$ })\nconst main$ = document$\n .pipe(\n map(() => getComponentElement(\"main\")),\n switchMap(el => watchMain(el, { viewport$, header$ })),\n shareReplay(1)\n )\n\n/* Set up control component observables */\nconst control$ = merge(\n\n /* Consent */\n ...getComponentElements(\"consent\")\n .map(el => mountConsent(el, { target$ })),\n\n /* Dialog */\n ...getComponentElements(\"dialog\")\n .map(el => mountDialog(el, { alert$ })),\n\n /* Color palette */\n ...getComponentElements(\"palette\")\n .map(el => mountPalette(el)),\n\n /* Progress bar */\n ...getComponentElements(\"progress\")\n .map(el => mountProgress(el, { progress$ })),\n\n /* Search */\n ...getComponentElements(\"search\")\n .map(el => mountSearch(el, { index$, keyboard$ })),\n\n /* Repository information */\n ...getComponentElements(\"source\")\n .map(el => mountSource(el))\n)\n\n/* Set up content component observables */\nconst content$ = defer(() => merge(\n\n /* Announcement bar */\n ...getComponentElements(\"announce\")\n .map(el => mountAnnounce(el)),\n\n /* Content */\n ...getComponentElements(\"content\")\n .map(el => mountContent(el, { viewport$, target$, print$ })),\n\n /* Search highlighting */\n ...getComponentElements(\"content\")\n .map(el => feature(\"search.highlight\")\n ? mountSearchHiglight(el, { index$, location$ })\n : EMPTY\n ),\n\n /* Header */\n ...getComponentElements(\"header\")\n .map(el => mountHeader(el, { viewport$, header$, main$ })),\n\n /* Header title */\n ...getComponentElements(\"header-title\")\n .map(el => mountHeaderTitle(el, { viewport$, header$ })),\n\n /* Sidebar */\n ...getComponentElements(\"sidebar\")\n .map(el => el.getAttribute(\"data-md-type\") === \"navigation\"\n ? at(screen$, () => mountSidebar(el, { viewport$, header$, main$ }))\n : at(tablet$, () => mountSidebar(el, { viewport$, header$, main$ }))\n ),\n\n /* Navigation tabs */\n ...getComponentElements(\"tabs\")\n .map(el => mountTabs(el, { viewport$, header$ })),\n\n /* Table of contents */\n ...getComponentElements(\"toc\")\n .map(el => mountTableOfContents(el, {\n viewport$, header$, main$, target$\n })),\n\n /* Back-to-top button */\n ...getComponentElements(\"top\")\n .map(el => mountBackToTop(el, { viewport$, header$, main$, target$ }))\n))\n\n/* Set up component observables */\nconst component$ = document$\n .pipe(\n switchMap(() => content$),\n mergeWith(control$),\n shareReplay(1)\n )\n\n/* Subscribe to all components */\ncomponent$.subscribe()\n\n/* ----------------------------------------------------------------------------\n * Exports\n * ------------------------------------------------------------------------- */\n\nwindow.document$ = document$ /* Document observable */\nwindow.location$ = location$ /* Location subject */\nwindow.target$ = target$ /* Location target observable */\nwindow.keyboard$ = keyboard$ /* Keyboard observable */\nwindow.viewport$ = viewport$ /* Viewport observable */\nwindow.tablet$ = tablet$ /* Media tablet observable */\nwindow.screen$ = screen$ /* Media screen observable */\nwindow.print$ = print$ /* Media print observable */\nwindow.alert$ = alert$ /* Alert subject */\nwindow.progress$ = progress$ /* Progress indicator subject */\nwindow.component$ = component$ /* Component observable */\n", "/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol, Iterator */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === \"function\" ? Iterator : Object).prototype);\n return g.next = verb(0), g[\"throw\"] = verb(1), g[\"return\"] = verb(2), typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = Object.create((typeof AsyncIterator === \"function\" ? AsyncIterator : Object).prototype), verb(\"next\"), verb(\"throw\"), verb(\"return\", awaitReturn), i[Symbol.asyncIterator] = function () { return this; }, i;\n function awaitReturn(f) { return function (v) { return Promise.resolve(v).then(f, reject); }; }\n function verb(n, f) { if (g[n]) { i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; if (f) i[n] = f(i[n]); } }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose, inner;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n if (async) inner = dispose;\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n var r, s = 0;\n function next() {\n while (r = env.stack.pop()) {\n try {\n if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);\n if (r.dispose) {\n var result = r.dispose.call(r.value);\n if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n else s |= 1;\n }\n catch (e) {\n fail(e);\n }\n }\n if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n", "/**\n * Returns true if the object is a function.\n * @param value The value to check\n */\nexport function isFunction(value: any): value is (...args: any[]) => any {\n return typeof value === 'function';\n}\n", "/**\n * Used to create Error subclasses until the community moves away from ES5.\n *\n * This is because compiling from TypeScript down to ES5 has issues with subclassing Errors\n * as well as other built-in types: https://github.com/Microsoft/TypeScript/issues/12123\n *\n * @param createImpl A factory function to create the actual constructor implementation. The returned\n * function should be a named function that calls `_super` internally.\n */\nexport function createErrorClass(createImpl: (_super: any) => any): T {\n const _super = (instance: any) => {\n Error.call(instance);\n instance.stack = new Error().stack;\n };\n\n const ctorFunc = createImpl(_super);\n ctorFunc.prototype = Object.create(Error.prototype);\n ctorFunc.prototype.constructor = ctorFunc;\n return ctorFunc;\n}\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface UnsubscriptionError extends Error {\n readonly errors: any[];\n}\n\nexport interface UnsubscriptionErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (errors: any[]): UnsubscriptionError;\n}\n\n/**\n * An error thrown when one or more errors have occurred during the\n * `unsubscribe` of a {@link Subscription}.\n */\nexport const UnsubscriptionError: UnsubscriptionErrorCtor = createErrorClass(\n (_super) =>\n function UnsubscriptionErrorImpl(this: any, errors: (Error | string)[]) {\n _super(this);\n this.message = errors\n ? `${errors.length} errors occurred during unsubscription:\n${errors.map((err, i) => `${i + 1}) ${err.toString()}`).join('\\n ')}`\n : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n }\n);\n", "/**\n * Removes an item from an array, mutating it.\n * @param arr The array to remove the item from\n * @param item The item to remove\n */\nexport function arrRemove(arr: T[] | undefined | null, item: T) {\n if (arr) {\n const index = arr.indexOf(item);\n 0 <= index && arr.splice(index, 1);\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nimport { SubscriptionLike, TeardownLogic, Unsubscribable } from './types';\nimport { arrRemove } from './util/arrRemove';\n\n/**\n * Represents a disposable resource, such as the execution of an Observable. A\n * Subscription has one important method, `unsubscribe`, that takes no argument\n * and just disposes the resource held by the subscription.\n *\n * Additionally, subscriptions may be grouped together through the `add()`\n * method, which will attach a child Subscription to the current Subscription.\n * When a Subscription is unsubscribed, all its children (and its grandchildren)\n * will be unsubscribed as well.\n */\nexport class Subscription implements SubscriptionLike {\n public static EMPTY = (() => {\n const empty = new Subscription();\n empty.closed = true;\n return empty;\n })();\n\n /**\n * A flag to indicate whether this Subscription has already been unsubscribed.\n */\n public closed = false;\n\n private _parentage: Subscription[] | Subscription | null = null;\n\n /**\n * The list of registered finalizers to execute upon unsubscription. Adding and removing from this\n * list occurs in the {@link #add} and {@link #remove} methods.\n */\n private _finalizers: Exclude[] | null = null;\n\n /**\n * @param initialTeardown A function executed first as part of the finalization\n * process that is kicked off when {@link #unsubscribe} is called.\n */\n constructor(private initialTeardown?: () => void) {}\n\n /**\n * Disposes the resources held by the subscription. May, for instance, cancel\n * an ongoing Observable execution or cancel any other type of work that\n * started when the Subscription was created.\n */\n unsubscribe(): void {\n let errors: any[] | undefined;\n\n if (!this.closed) {\n this.closed = true;\n\n // Remove this from it's parents.\n const { _parentage } = this;\n if (_parentage) {\n this._parentage = null;\n if (Array.isArray(_parentage)) {\n for (const parent of _parentage) {\n parent.remove(this);\n }\n } else {\n _parentage.remove(this);\n }\n }\n\n const { initialTeardown: initialFinalizer } = this;\n if (isFunction(initialFinalizer)) {\n try {\n initialFinalizer();\n } catch (e) {\n errors = e instanceof UnsubscriptionError ? e.errors : [e];\n }\n }\n\n const { _finalizers } = this;\n if (_finalizers) {\n this._finalizers = null;\n for (const finalizer of _finalizers) {\n try {\n execFinalizer(finalizer);\n } catch (err) {\n errors = errors ?? [];\n if (err instanceof UnsubscriptionError) {\n errors = [...errors, ...err.errors];\n } else {\n errors.push(err);\n }\n }\n }\n }\n\n if (errors) {\n throw new UnsubscriptionError(errors);\n }\n }\n }\n\n /**\n * Adds a finalizer to this subscription, so that finalization will be unsubscribed/called\n * when this subscription is unsubscribed. If this subscription is already {@link #closed},\n * because it has already been unsubscribed, then whatever finalizer is passed to it\n * will automatically be executed (unless the finalizer itself is also a closed subscription).\n *\n * Closed Subscriptions cannot be added as finalizers to any subscription. Adding a closed\n * subscription to a any subscription will result in no operation. (A noop).\n *\n * Adding a subscription to itself, or adding `null` or `undefined` will not perform any\n * operation at all. (A noop).\n *\n * `Subscription` instances that are added to this instance will automatically remove themselves\n * if they are unsubscribed. Functions and {@link Unsubscribable} objects that you wish to remove\n * will need to be removed manually with {@link #remove}\n *\n * @param teardown The finalization logic to add to this subscription.\n */\n add(teardown: TeardownLogic): void {\n // Only add the finalizer if it's not undefined\n // and don't add a subscription to itself.\n if (teardown && teardown !== this) {\n if (this.closed) {\n // If this subscription is already closed,\n // execute whatever finalizer is handed to it automatically.\n execFinalizer(teardown);\n } else {\n if (teardown instanceof Subscription) {\n // We don't add closed subscriptions, and we don't add the same subscription\n // twice. Subscription unsubscribe is idempotent.\n if (teardown.closed || teardown._hasParent(this)) {\n return;\n }\n teardown._addParent(this);\n }\n (this._finalizers = this._finalizers ?? []).push(teardown);\n }\n }\n }\n\n /**\n * Checks to see if a this subscription already has a particular parent.\n * This will signal that this subscription has already been added to the parent in question.\n * @param parent the parent to check for\n */\n private _hasParent(parent: Subscription) {\n const { _parentage } = this;\n return _parentage === parent || (Array.isArray(_parentage) && _parentage.includes(parent));\n }\n\n /**\n * Adds a parent to this subscription so it can be removed from the parent if it\n * unsubscribes on it's own.\n *\n * NOTE: THIS ASSUMES THAT {@link _hasParent} HAS ALREADY BEEN CHECKED.\n * @param parent The parent subscription to add\n */\n private _addParent(parent: Subscription) {\n const { _parentage } = this;\n this._parentage = Array.isArray(_parentage) ? (_parentage.push(parent), _parentage) : _parentage ? [_parentage, parent] : parent;\n }\n\n /**\n * Called on a child when it is removed via {@link #remove}.\n * @param parent The parent to remove\n */\n private _removeParent(parent: Subscription) {\n const { _parentage } = this;\n if (_parentage === parent) {\n this._parentage = null;\n } else if (Array.isArray(_parentage)) {\n arrRemove(_parentage, parent);\n }\n }\n\n /**\n * Removes a finalizer from this subscription that was previously added with the {@link #add} method.\n *\n * Note that `Subscription` instances, when unsubscribed, will automatically remove themselves\n * from every other `Subscription` they have been added to. This means that using the `remove` method\n * is not a common thing and should be used thoughtfully.\n *\n * If you add the same finalizer instance of a function or an unsubscribable object to a `Subscription` instance\n * more than once, you will need to call `remove` the same number of times to remove all instances.\n *\n * All finalizer instances are removed to free up memory upon unsubscription.\n *\n * @param teardown The finalizer to remove from this subscription\n */\n remove(teardown: Exclude): void {\n const { _finalizers } = this;\n _finalizers && arrRemove(_finalizers, teardown);\n\n if (teardown instanceof Subscription) {\n teardown._removeParent(this);\n }\n }\n}\n\nexport const EMPTY_SUBSCRIPTION = Subscription.EMPTY;\n\nexport function isSubscription(value: any): value is Subscription {\n return (\n value instanceof Subscription ||\n (value && 'closed' in value && isFunction(value.remove) && isFunction(value.add) && isFunction(value.unsubscribe))\n );\n}\n\nfunction execFinalizer(finalizer: Unsubscribable | (() => void)) {\n if (isFunction(finalizer)) {\n finalizer();\n } else {\n finalizer.unsubscribe();\n }\n}\n", "import { Subscriber } from './Subscriber';\nimport { ObservableNotification } from './types';\n\n/**\n * The {@link GlobalConfig} object for RxJS. It is used to configure things\n * like how to react on unhandled errors.\n */\nexport const config: GlobalConfig = {\n onUnhandledError: null,\n onStoppedNotification: null,\n Promise: undefined,\n useDeprecatedSynchronousErrorHandling: false,\n useDeprecatedNextContext: false,\n};\n\n/**\n * The global configuration object for RxJS, used to configure things\n * like how to react on unhandled errors. Accessible via {@link config}\n * object.\n */\nexport interface GlobalConfig {\n /**\n * A registration point for unhandled errors from RxJS. These are errors that\n * cannot were not handled by consuming code in the usual subscription path. For\n * example, if you have this configured, and you subscribe to an observable without\n * providing an error handler, errors from that subscription will end up here. This\n * will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onUnhandledError: ((err: any) => void) | null;\n\n /**\n * A registration point for notifications that cannot be sent to subscribers because they\n * have completed, errored or have been explicitly unsubscribed. By default, next, complete\n * and error notifications sent to stopped subscribers are noops. However, sometimes callers\n * might want a different behavior. For example, with sources that attempt to report errors\n * to stopped subscribers, a caller can configure RxJS to throw an unhandled error instead.\n * This will _always_ be called asynchronously on another job in the runtime. This is because\n * we do not want errors thrown in this user-configured handler to interfere with the\n * behavior of the library.\n */\n onStoppedNotification: ((notification: ObservableNotification, subscriber: Subscriber) => void) | null;\n\n /**\n * The promise constructor used by default for {@link Observable#toPromise toPromise} and {@link Observable#forEach forEach}\n * methods.\n *\n * @deprecated As of version 8, RxJS will no longer support this sort of injection of a\n * Promise constructor. If you need a Promise implementation other than native promises,\n * please polyfill/patch Promise as you see appropriate. Will be removed in v8.\n */\n Promise?: PromiseConstructorLike;\n\n /**\n * If true, turns on synchronous error rethrowing, which is a deprecated behavior\n * in v6 and higher. This behavior enables bad patterns like wrapping a subscribe\n * call in a try/catch block. It also enables producer interference, a nasty bug\n * where a multicast can be broken for all observers by a downstream consumer with\n * an unhandled error. DO NOT USE THIS FLAG UNLESS IT'S NEEDED TO BUY TIME\n * FOR MIGRATION REASONS.\n *\n * @deprecated As of version 8, RxJS will no longer support synchronous throwing\n * of unhandled errors. All errors will be thrown on a separate call stack to prevent bad\n * behaviors described above. Will be removed in v8.\n */\n useDeprecatedSynchronousErrorHandling: boolean;\n\n /**\n * If true, enables an as-of-yet undocumented feature from v5: The ability to access\n * `unsubscribe()` via `this` context in `next` functions created in observers passed\n * to `subscribe`.\n *\n * This is being removed because the performance was severely problematic, and it could also cause\n * issues when types other than POJOs are passed to subscribe as subscribers, as they will likely have\n * their `this` context overwritten.\n *\n * @deprecated As of version 8, RxJS will no longer support altering the\n * context of next functions provided as part of an observer to Subscribe. Instead,\n * you will have access to a subscription or a signal or token that will allow you to do things like\n * unsubscribe and test closed status. Will be removed in v8.\n */\n useDeprecatedNextContext: boolean;\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetTimeoutFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearTimeoutFunction = (handle: TimerHandle) => void;\n\ninterface TimeoutProvider {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n delegate:\n | {\n setTimeout: SetTimeoutFunction;\n clearTimeout: ClearTimeoutFunction;\n }\n | undefined;\n}\n\nexport const timeoutProvider: TimeoutProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setTimeout(handler: () => void, timeout?: number, ...args) {\n const { delegate } = timeoutProvider;\n if (delegate?.setTimeout) {\n return delegate.setTimeout(handler, timeout, ...args);\n }\n return setTimeout(handler, timeout, ...args);\n },\n clearTimeout(handle) {\n const { delegate } = timeoutProvider;\n return (delegate?.clearTimeout || clearTimeout)(handle as any);\n },\n delegate: undefined,\n};\n", "import { config } from '../config';\nimport { timeoutProvider } from '../scheduler/timeoutProvider';\n\n/**\n * Handles an error on another job either with the user-configured {@link onUnhandledError},\n * or by throwing it on that new job so it can be picked up by `window.onerror`, `process.on('error')`, etc.\n *\n * This should be called whenever there is an error that is out-of-band with the subscription\n * or when an error hits a terminal boundary of the subscription and no error handler was provided.\n *\n * @param err the error to report\n */\nexport function reportUnhandledError(err: any) {\n timeoutProvider.setTimeout(() => {\n const { onUnhandledError } = config;\n if (onUnhandledError) {\n // Execute the user-configured error handler.\n onUnhandledError(err);\n } else {\n // Throw so it is picked up by the runtime's uncaught error mechanism.\n throw err;\n }\n });\n}\n", "/* tslint:disable:no-empty */\nexport function noop() { }\n", "import { CompleteNotification, NextNotification, ErrorNotification } from './types';\n\n/**\n * A completion object optimized for memory use and created to be the\n * same \"shape\" as other notifications in v8.\n * @internal\n */\nexport const COMPLETE_NOTIFICATION = (() => createNotification('C', undefined, undefined) as CompleteNotification)();\n\n/**\n * Internal use only. Creates an optimized error notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function errorNotification(error: any): ErrorNotification {\n return createNotification('E', undefined, error) as any;\n}\n\n/**\n * Internal use only. Creates an optimized next notification that is the same \"shape\"\n * as other notifications.\n * @internal\n */\nexport function nextNotification(value: T) {\n return createNotification('N', value, undefined) as NextNotification;\n}\n\n/**\n * Ensures that all notifications created internally have the same \"shape\" in v8.\n *\n * TODO: This is only exported to support a crazy legacy test in `groupBy`.\n * @internal\n */\nexport function createNotification(kind: 'N' | 'E' | 'C', value: any, error: any) {\n return {\n kind,\n value,\n error,\n };\n}\n", "import { config } from '../config';\n\nlet context: { errorThrown: boolean; error: any } | null = null;\n\n/**\n * Handles dealing with errors for super-gross mode. Creates a context, in which\n * any synchronously thrown errors will be passed to {@link captureError}. Which\n * will record the error such that it will be rethrown after the call back is complete.\n * TODO: Remove in v8\n * @param cb An immediately executed function.\n */\nexport function errorContext(cb: () => void) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n const isRoot = !context;\n if (isRoot) {\n context = { errorThrown: false, error: null };\n }\n cb();\n if (isRoot) {\n const { errorThrown, error } = context!;\n context = null;\n if (errorThrown) {\n throw error;\n }\n }\n } else {\n // This is the general non-deprecated path for everyone that\n // isn't crazy enough to use super-gross mode (useDeprecatedSynchronousErrorHandling)\n cb();\n }\n}\n\n/**\n * Captures errors only in super-gross mode.\n * @param err the error to capture\n */\nexport function captureError(err: any) {\n if (config.useDeprecatedSynchronousErrorHandling && context) {\n context.errorThrown = true;\n context.error = err;\n }\n}\n", "import { isFunction } from './util/isFunction';\nimport { Observer, ObservableNotification } from './types';\nimport { isSubscription, Subscription } from './Subscription';\nimport { config } from './config';\nimport { reportUnhandledError } from './util/reportUnhandledError';\nimport { noop } from './util/noop';\nimport { nextNotification, errorNotification, COMPLETE_NOTIFICATION } from './NotificationFactories';\nimport { timeoutProvider } from './scheduler/timeoutProvider';\nimport { captureError } from './util/errorContext';\n\n/**\n * Implements the {@link Observer} interface and extends the\n * {@link Subscription} class. While the {@link Observer} is the public API for\n * consuming the values of an {@link Observable}, all Observers get converted to\n * a Subscriber, in order to provide Subscription-like capabilities such as\n * `unsubscribe`. Subscriber is a common type in RxJS, and crucial for\n * implementing operators, but it is rarely used as a public API.\n */\nexport class Subscriber extends Subscription implements Observer {\n /**\n * A static factory for a Subscriber, given a (potentially partial) definition\n * of an Observer.\n * @param next The `next` callback of an Observer.\n * @param error The `error` callback of an\n * Observer.\n * @param complete The `complete` callback of an\n * Observer.\n * @return A Subscriber wrapping the (partially defined)\n * Observer represented by the given arguments.\n * @deprecated Do not use. Will be removed in v8. There is no replacement for this\n * method, and there is no reason to be creating instances of `Subscriber` directly.\n * If you have a specific use case, please file an issue.\n */\n static create(next?: (x?: T) => void, error?: (e?: any) => void, complete?: () => void): Subscriber {\n return new SafeSubscriber(next, error, complete);\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected isStopped: boolean = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n protected destination: Subscriber | Observer; // this `any` is the escape hatch to erase extra type param (e.g. R)\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * There is no reason to directly create an instance of Subscriber. This type is exported for typings reasons.\n */\n constructor(destination?: Subscriber | Observer) {\n super();\n if (destination) {\n this.destination = destination;\n // Automatically chain subscriptions together here.\n // if destination is a Subscription, then it is a Subscriber.\n if (isSubscription(destination)) {\n destination.add(this);\n }\n } else {\n this.destination = EMPTY_OBSERVER;\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `next` from\n * the Observable, with a value. The Observable may call this method 0 or more\n * times.\n * @param value The `next` value.\n */\n next(value: T): void {\n if (this.isStopped) {\n handleStoppedNotification(nextNotification(value), this);\n } else {\n this._next(value!);\n }\n }\n\n /**\n * The {@link Observer} callback to receive notifications of type `error` from\n * the Observable, with an attached `Error`. Notifies the Observer that\n * the Observable has experienced an error condition.\n * @param err The `error` exception.\n */\n error(err?: any): void {\n if (this.isStopped) {\n handleStoppedNotification(errorNotification(err), this);\n } else {\n this.isStopped = true;\n this._error(err);\n }\n }\n\n /**\n * The {@link Observer} callback to receive a valueless notification of type\n * `complete` from the Observable. Notifies the Observer that the Observable\n * has finished sending push-based notifications.\n */\n complete(): void {\n if (this.isStopped) {\n handleStoppedNotification(COMPLETE_NOTIFICATION, this);\n } else {\n this.isStopped = true;\n this._complete();\n }\n }\n\n unsubscribe(): void {\n if (!this.closed) {\n this.isStopped = true;\n super.unsubscribe();\n this.destination = null!;\n }\n }\n\n protected _next(value: T): void {\n this.destination.next(value);\n }\n\n protected _error(err: any): void {\n try {\n this.destination.error(err);\n } finally {\n this.unsubscribe();\n }\n }\n\n protected _complete(): void {\n try {\n this.destination.complete();\n } finally {\n this.unsubscribe();\n }\n }\n}\n\n/**\n * This bind is captured here because we want to be able to have\n * compatibility with monoid libraries that tend to use a method named\n * `bind`. In particular, a library called Monio requires this.\n */\nconst _bind = Function.prototype.bind;\n\nfunction bind any>(fn: Fn, thisArg: any): Fn {\n return _bind.call(fn, thisArg);\n}\n\n/**\n * Internal optimization only, DO NOT EXPOSE.\n * @internal\n */\nclass ConsumerObserver implements Observer {\n constructor(private partialObserver: Partial>) {}\n\n next(value: T): void {\n const { partialObserver } = this;\n if (partialObserver.next) {\n try {\n partialObserver.next(value);\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n\n error(err: any): void {\n const { partialObserver } = this;\n if (partialObserver.error) {\n try {\n partialObserver.error(err);\n } catch (error) {\n handleUnhandledError(error);\n }\n } else {\n handleUnhandledError(err);\n }\n }\n\n complete(): void {\n const { partialObserver } = this;\n if (partialObserver.complete) {\n try {\n partialObserver.complete();\n } catch (error) {\n handleUnhandledError(error);\n }\n }\n }\n}\n\nexport class SafeSubscriber extends Subscriber {\n constructor(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((e?: any) => void) | null,\n complete?: (() => void) | null\n ) {\n super();\n\n let partialObserver: Partial>;\n if (isFunction(observerOrNext) || !observerOrNext) {\n // The first argument is a function, not an observer. The next\n // two arguments *could* be observers, or they could be empty.\n partialObserver = {\n next: (observerOrNext ?? undefined) as ((value: T) => void) | undefined,\n error: error ?? undefined,\n complete: complete ?? undefined,\n };\n } else {\n // The first argument is a partial observer.\n let context: any;\n if (this && config.useDeprecatedNextContext) {\n // This is a deprecated path that made `this.unsubscribe()` available in\n // next handler functions passed to subscribe. This only exists behind a flag\n // now, as it is *very* slow.\n context = Object.create(observerOrNext);\n context.unsubscribe = () => this.unsubscribe();\n partialObserver = {\n next: observerOrNext.next && bind(observerOrNext.next, context),\n error: observerOrNext.error && bind(observerOrNext.error, context),\n complete: observerOrNext.complete && bind(observerOrNext.complete, context),\n };\n } else {\n // The \"normal\" path. Just use the partial observer directly.\n partialObserver = observerOrNext;\n }\n }\n\n // Wrap the partial observer to ensure it's a full observer, and\n // make sure proper error handling is accounted for.\n this.destination = new ConsumerObserver(partialObserver);\n }\n}\n\nfunction handleUnhandledError(error: any) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n captureError(error);\n } else {\n // Ideal path, we report this as an unhandled error,\n // which is thrown on a new call stack.\n reportUnhandledError(error);\n }\n}\n\n/**\n * An error handler used when no error handler was supplied\n * to the SafeSubscriber -- meaning no error handler was supplied\n * do the `subscribe` call on our observable.\n * @param err The error to handle\n */\nfunction defaultErrorHandler(err: any) {\n throw err;\n}\n\n/**\n * A handler for notifications that cannot be sent to a stopped subscriber.\n * @param notification The notification being sent.\n * @param subscriber The stopped subscriber.\n */\nfunction handleStoppedNotification(notification: ObservableNotification, subscriber: Subscriber) {\n const { onStoppedNotification } = config;\n onStoppedNotification && timeoutProvider.setTimeout(() => onStoppedNotification(notification, subscriber));\n}\n\n/**\n * The observer used as a stub for subscriptions where the user did not\n * pass any arguments to `subscribe`. Comes with the default error handling\n * behavior.\n */\nexport const EMPTY_OBSERVER: Readonly> & { closed: true } = {\n closed: true,\n next: noop,\n error: defaultErrorHandler,\n complete: noop,\n};\n", "/**\n * Symbol.observable or a string \"@@observable\". Used for interop\n *\n * @deprecated We will no longer be exporting this symbol in upcoming versions of RxJS.\n * Instead polyfill and use Symbol.observable directly *or* use https://www.npmjs.com/package/symbol-observable\n */\nexport const observable: string | symbol = (() => (typeof Symbol === 'function' && Symbol.observable) || '@@observable')();\n", "/**\n * This function takes one parameter and just returns it. Simply put,\n * this is like `(x: T): T => x`.\n *\n * ## Examples\n *\n * This is useful in some cases when using things like `mergeMap`\n *\n * ```ts\n * import { interval, take, map, range, mergeMap, identity } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(5));\n *\n * const result$ = source$.pipe(\n * map(i => range(i)),\n * mergeMap(identity) // same as mergeMap(x => x)\n * );\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * Or when you want to selectively apply an operator\n *\n * ```ts\n * import { interval, take, identity } from 'rxjs';\n *\n * const shouldLimit = () => Math.random() < 0.5;\n *\n * const source$ = interval(1000);\n *\n * const result$ = source$.pipe(shouldLimit() ? take(5) : identity);\n *\n * result$.subscribe({\n * next: console.log\n * });\n * ```\n *\n * @param x Any value that is returned by this function\n * @returns The value passed as the first parameter to this function\n */\nexport function identity(x: T): T {\n return x;\n}\n", "import { identity } from './identity';\nimport { UnaryFunction } from '../types';\n\nexport function pipe(): typeof identity;\nexport function pipe(fn1: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction): UnaryFunction;\nexport function pipe(fn1: UnaryFunction, fn2: UnaryFunction, fn3: UnaryFunction): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction\n): UnaryFunction;\nexport function pipe(\n fn1: UnaryFunction,\n fn2: UnaryFunction,\n fn3: UnaryFunction,\n fn4: UnaryFunction,\n fn5: UnaryFunction,\n fn6: UnaryFunction,\n fn7: UnaryFunction,\n fn8: UnaryFunction,\n fn9: UnaryFunction,\n ...fns: UnaryFunction[]\n): UnaryFunction;\n\n/**\n * pipe() can be called on one or more functions, each of which can take one argument (\"UnaryFunction\")\n * and uses it to return a value.\n * It returns a function that takes one argument, passes it to the first UnaryFunction, and then\n * passes the result to the next one, passes that result to the next one, and so on. \n */\nexport function pipe(...fns: Array>): UnaryFunction {\n return pipeFromArray(fns);\n}\n\n/** @internal */\nexport function pipeFromArray(fns: Array>): UnaryFunction {\n if (fns.length === 0) {\n return identity as UnaryFunction;\n }\n\n if (fns.length === 1) {\n return fns[0];\n }\n\n return function piped(input: T): R {\n return fns.reduce((prev: any, fn: UnaryFunction) => fn(prev), input as any);\n };\n}\n", "import { Operator } from './Operator';\nimport { SafeSubscriber, Subscriber } from './Subscriber';\nimport { isSubscription, Subscription } from './Subscription';\nimport { TeardownLogic, OperatorFunction, Subscribable, Observer } from './types';\nimport { observable as Symbol_observable } from './symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nimport { isFunction } from './util/isFunction';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A representation of any set of values over any amount of time. This is the most basic building block\n * of RxJS.\n */\nexport class Observable implements Subscribable {\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n source: Observable | undefined;\n\n /**\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n */\n operator: Operator | undefined;\n\n /**\n * @param subscribe The function that is called when the Observable is\n * initially subscribed to. This function is given a Subscriber, to which new values\n * can be `next`ed, or an `error` method can be called to raise an error, or\n * `complete` can be called to notify of a successful completion.\n */\n constructor(subscribe?: (this: Observable, subscriber: Subscriber) => TeardownLogic) {\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n\n // HACK: Since TypeScript inherits static properties too, we have to\n // fight against TypeScript here so Subject can have a different static create signature\n /**\n * Creates a new Observable by calling the Observable constructor\n * @param subscribe the subscriber function to be passed to the Observable constructor\n * @return A new observable.\n * @deprecated Use `new Observable()` instead. Will be removed in v8.\n */\n static create: (...args: any[]) => any = (subscribe?: (subscriber: Subscriber) => TeardownLogic) => {\n return new Observable(subscribe);\n };\n\n /**\n * Creates a new Observable, with this Observable instance as the source, and the passed\n * operator defined as the new observable's operator.\n * @param operator the operator defining the operation to take on the observable\n * @return A new observable with the Operator applied.\n * @deprecated Internal implementation detail, do not use directly. Will be made internal in v8.\n * If you have implemented an operator using `lift`, it is recommended that you create an\n * operator by simply returning `new Observable()` directly. See \"Creating new operators from\n * scratch\" section here: https://rxjs.dev/guide/operators\n */\n lift(operator?: Operator): Observable {\n const observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n }\n\n subscribe(observerOrNext?: Partial> | ((value: T) => void)): Subscription;\n /** @deprecated Instead of passing separate callback arguments, use an observer argument. Signatures taking separate callback arguments will be removed in v8. Details: https://rxjs.dev/deprecations/subscribe-arguments */\n subscribe(next?: ((value: T) => void) | null, error?: ((error: any) => void) | null, complete?: (() => void) | null): Subscription;\n /**\n * Invokes an execution of an Observable and registers Observer handlers for notifications it will emit.\n *\n * Use it when you have all these Observables, but still nothing is happening.\n *\n * `subscribe` is not a regular operator, but a method that calls Observable's internal `subscribe` function. It\n * might be for example a function that you passed to Observable's constructor, but most of the time it is\n * a library implementation, which defines what will be emitted by an Observable, and when it be will emitted. This means\n * that calling `subscribe` is actually the moment when Observable starts its work, not when it is created, as it is often\n * the thought.\n *\n * Apart from starting the execution of an Observable, this method allows you to listen for values\n * that an Observable emits, as well as for when it completes or errors. You can achieve this in two\n * of the following ways.\n *\n * The first way is creating an object that implements {@link Observer} interface. It should have methods\n * defined by that interface, but note that it should be just a regular JavaScript object, which you can create\n * yourself in any way you want (ES6 class, classic function constructor, object literal etc.). In particular, do\n * not attempt to use any RxJS implementation details to create Observers - you don't need them. Remember also\n * that your object does not have to implement all methods. If you find yourself creating a method that doesn't\n * do anything, you can simply omit it. Note however, if the `error` method is not provided and an error happens,\n * it will be thrown asynchronously. Errors thrown asynchronously cannot be caught using `try`/`catch`. Instead,\n * use the {@link onUnhandledError} configuration option or use a runtime handler (like `window.onerror` or\n * `process.on('error)`) to be notified of unhandled errors. Because of this, it's recommended that you provide\n * an `error` method to avoid missing thrown errors.\n *\n * The second way is to give up on Observer object altogether and simply provide callback functions in place of its methods.\n * This means you can provide three functions as arguments to `subscribe`, where the first function is equivalent\n * of a `next` method, the second of an `error` method and the third of a `complete` method. Just as in case of an Observer,\n * if you do not need to listen for something, you can omit a function by passing `undefined` or `null`,\n * since `subscribe` recognizes these functions by where they were placed in function call. When it comes\n * to the `error` function, as with an Observer, if not provided, errors emitted by an Observable will be thrown asynchronously.\n *\n * You can, however, subscribe with no parameters at all. This may be the case where you're not interested in terminal events\n * and you also handled emissions internally by using operators (e.g. using `tap`).\n *\n * Whichever style of calling `subscribe` you use, in both cases it returns a Subscription object.\n * This object allows you to call `unsubscribe` on it, which in turn will stop the work that an Observable does and will clean\n * up all resources that an Observable used. Note that cancelling a subscription will not call `complete` callback\n * provided to `subscribe` function, which is reserved for a regular completion signal that comes from an Observable.\n *\n * Remember that callbacks provided to `subscribe` are not guaranteed to be called asynchronously.\n * It is an Observable itself that decides when these functions will be called. For example {@link of}\n * by default emits all its values synchronously. Always check documentation for how given Observable\n * will behave when subscribed and if its default behavior can be modified with a `scheduler`.\n *\n * #### Examples\n *\n * Subscribe with an {@link guide/observer Observer}\n *\n * ```ts\n * import { of } from 'rxjs';\n *\n * const sumObserver = {\n * sum: 0,\n * next(value) {\n * console.log('Adding: ' + value);\n * this.sum = this.sum + value;\n * },\n * error() {\n * // We actually could just remove this method,\n * // since we do not really care about errors right now.\n * },\n * complete() {\n * console.log('Sum equals: ' + this.sum);\n * }\n * };\n *\n * of(1, 2, 3) // Synchronously emits 1, 2, 3 and then completes.\n * .subscribe(sumObserver);\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Subscribe with functions ({@link deprecations/subscribe-arguments deprecated})\n *\n * ```ts\n * import { of } from 'rxjs'\n *\n * let sum = 0;\n *\n * of(1, 2, 3).subscribe(\n * value => {\n * console.log('Adding: ' + value);\n * sum = sum + value;\n * },\n * undefined,\n * () => console.log('Sum equals: ' + sum)\n * );\n *\n * // Logs:\n * // 'Adding: 1'\n * // 'Adding: 2'\n * // 'Adding: 3'\n * // 'Sum equals: 6'\n * ```\n *\n * Cancel a subscription\n *\n * ```ts\n * import { interval } from 'rxjs';\n *\n * const subscription = interval(1000).subscribe({\n * next(num) {\n * console.log(num)\n * },\n * complete() {\n * // Will not be called, even when cancelling subscription.\n * console.log('completed!');\n * }\n * });\n *\n * setTimeout(() => {\n * subscription.unsubscribe();\n * console.log('unsubscribed!');\n * }, 2500);\n *\n * // Logs:\n * // 0 after 1s\n * // 1 after 2s\n * // 'unsubscribed!' after 2.5s\n * ```\n *\n * @param observerOrNext Either an {@link Observer} with some or all callback methods,\n * or the `next` handler that is called for each value emitted from the subscribed Observable.\n * @param error A handler for a terminal event resulting from an error. If no error handler is provided,\n * the error will be thrown asynchronously as unhandled.\n * @param complete A handler for a terminal event resulting from successful completion.\n * @return A subscription reference to the registered handlers.\n */\n subscribe(\n observerOrNext?: Partial> | ((value: T) => void) | null,\n error?: ((error: any) => void) | null,\n complete?: (() => void) | null\n ): Subscription {\n const subscriber = isSubscriber(observerOrNext) ? observerOrNext : new SafeSubscriber(observerOrNext, error, complete);\n\n errorContext(() => {\n const { operator, source } = this;\n subscriber.add(\n operator\n ? // We're dealing with a subscription in the\n // operator chain to one of our lifted operators.\n operator.call(subscriber, source)\n : source\n ? // If `source` has a value, but `operator` does not, something that\n // had intimate knowledge of our API, like our `Subject`, must have\n // set it. We're going to just call `_subscribe` directly.\n this._subscribe(subscriber)\n : // In all other cases, we're likely wrapping a user-provided initializer\n // function, so we need to catch errors and handle them appropriately.\n this._trySubscribe(subscriber)\n );\n });\n\n return subscriber;\n }\n\n /** @internal */\n protected _trySubscribe(sink: Subscriber): TeardownLogic {\n try {\n return this._subscribe(sink);\n } catch (err) {\n // We don't need to return anything in this case,\n // because it's just going to try to `add()` to a subscription\n // above.\n sink.error(err);\n }\n }\n\n /**\n * Used as a NON-CANCELLABLE means of subscribing to an observable, for use with\n * APIs that expect promises, like `async/await`. You cannot unsubscribe from this.\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * #### Example\n *\n * ```ts\n * import { interval, take } from 'rxjs';\n *\n * const source$ = interval(1000).pipe(take(4));\n *\n * async function getTotal() {\n * let total = 0;\n *\n * await source$.forEach(value => {\n * total += value;\n * console.log('observable -> ' + value);\n * });\n *\n * return total;\n * }\n *\n * getTotal().then(\n * total => console.log('Total: ' + total)\n * );\n *\n * // Expected:\n * // 'observable -> 0'\n * // 'observable -> 1'\n * // 'observable -> 2'\n * // 'observable -> 3'\n * // 'Total: 6'\n * ```\n *\n * @param next A handler for each value emitted by the observable.\n * @return A promise that either resolves on observable completion or\n * rejects with the handled error.\n */\n forEach(next: (value: T) => void): Promise;\n\n /**\n * @param next a handler for each value emitted by the observable\n * @param promiseCtor a constructor function used to instantiate the Promise\n * @return a promise that either resolves on observable completion or\n * rejects with the handled error\n * @deprecated Passing a Promise constructor will no longer be available\n * in upcoming versions of RxJS. This is because it adds weight to the library, for very\n * little benefit. If you need this functionality, it is recommended that you either\n * polyfill Promise, or you create an adapter to convert the returned native promise\n * to whatever promise implementation you wanted. Will be removed in v8.\n */\n forEach(next: (value: T) => void, promiseCtor: PromiseConstructorLike): Promise;\n\n forEach(next: (value: T) => void, promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n const subscriber = new SafeSubscriber({\n next: (value) => {\n try {\n next(value);\n } catch (err) {\n reject(err);\n subscriber.unsubscribe();\n }\n },\n error: reject,\n complete: resolve,\n });\n this.subscribe(subscriber);\n }) as Promise;\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): TeardownLogic {\n return this.source?.subscribe(subscriber);\n }\n\n /**\n * An interop point defined by the es7-observable spec https://github.com/zenparsing/es-observable\n * @return This instance of the observable.\n */\n [Symbol_observable]() {\n return this;\n }\n\n /* tslint:disable:max-line-length */\n pipe(): Observable;\n pipe(op1: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction): Observable;\n pipe(op1: OperatorFunction, op2: OperatorFunction, op3: OperatorFunction): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction\n ): Observable;\n pipe(\n op1: OperatorFunction,\n op2: OperatorFunction,\n op3: OperatorFunction,\n op4: OperatorFunction,\n op5: OperatorFunction,\n op6: OperatorFunction,\n op7: OperatorFunction,\n op8: OperatorFunction,\n op9: OperatorFunction,\n ...operations: OperatorFunction[]\n ): Observable;\n /* tslint:enable:max-line-length */\n\n /**\n * Used to stitch together functional operators into a chain.\n *\n * ## Example\n *\n * ```ts\n * import { interval, filter, map, scan } from 'rxjs';\n *\n * interval(1000)\n * .pipe(\n * filter(x => x % 2 === 0),\n * map(x => x + x),\n * scan((acc, x) => acc + x)\n * )\n * .subscribe(x => console.log(x));\n * ```\n *\n * @return The Observable result of all the operators having been called\n * in the order they were passed in.\n */\n pipe(...operations: OperatorFunction[]): Observable {\n return pipeFromArray(operations)(this);\n }\n\n /* tslint:disable:max-line-length */\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: typeof Promise): Promise;\n /** @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise */\n toPromise(PromiseCtor: PromiseConstructorLike): Promise;\n /* tslint:enable:max-line-length */\n\n /**\n * Subscribe to this Observable and get a Promise resolving on\n * `complete` with the last emission (if any).\n *\n * **WARNING**: Only use this with observables you *know* will complete. If the source\n * observable does not complete, you will end up with a promise that is hung up, and\n * potentially all of the state of an async function hanging out in memory. To avoid\n * this situation, look into adding something like {@link timeout}, {@link take},\n * {@link takeWhile}, or {@link takeUntil} amongst others.\n *\n * @param [promiseCtor] a constructor function used to instantiate\n * the Promise\n * @return A Promise that resolves with the last value emit, or\n * rejects on an error. If there were no emissions, Promise\n * resolves with undefined.\n * @deprecated Replaced with {@link firstValueFrom} and {@link lastValueFrom}. Will be removed in v8. Details: https://rxjs.dev/deprecations/to-promise\n */\n toPromise(promiseCtor?: PromiseConstructorLike): Promise {\n promiseCtor = getPromiseCtor(promiseCtor);\n\n return new promiseCtor((resolve, reject) => {\n let value: T | undefined;\n this.subscribe(\n (x: T) => (value = x),\n (err: any) => reject(err),\n () => resolve(value)\n );\n }) as Promise;\n }\n}\n\n/**\n * Decides between a passed promise constructor from consuming code,\n * A default configured promise constructor, and the native promise\n * constructor and returns it. If nothing can be found, it will throw\n * an error.\n * @param promiseCtor The optional promise constructor to passed by consuming code\n */\nfunction getPromiseCtor(promiseCtor: PromiseConstructorLike | undefined) {\n return promiseCtor ?? config.Promise ?? Promise;\n}\n\nfunction isObserver(value: any): value is Observer {\n return value && isFunction(value.next) && isFunction(value.error) && isFunction(value.complete);\n}\n\nfunction isSubscriber(value: any): value is Subscriber {\n return (value && value instanceof Subscriber) || (isObserver(value) && isSubscription(value));\n}\n", "import { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { OperatorFunction } from '../types';\nimport { isFunction } from './isFunction';\n\n/**\n * Used to determine if an object is an Observable with a lift function.\n */\nexport function hasLift(source: any): source is { lift: InstanceType['lift'] } {\n return isFunction(source?.lift);\n}\n\n/**\n * Creates an `OperatorFunction`. Used to define operators throughout the library in a concise way.\n * @param init The logic to connect the liftedSource to the subscriber at the moment of subscription.\n */\nexport function operate(\n init: (liftedSource: Observable, subscriber: Subscriber) => (() => void) | void\n): OperatorFunction {\n return (source: Observable) => {\n if (hasLift(source)) {\n return source.lift(function (this: Subscriber, liftedSource: Observable) {\n try {\n return init(liftedSource, this);\n } catch (err) {\n this.error(err);\n }\n });\n }\n throw new TypeError('Unable to lift unknown Observable type');\n };\n}\n", "import { Subscriber } from '../Subscriber';\n\n/**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional teardown logic here. This will only be called on teardown if the\n * subscriber itself is not already closed. This is called after all other teardown logic is executed.\n */\nexport function createOperatorSubscriber(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n onFinalize?: () => void\n): Subscriber {\n return new OperatorSubscriber(destination, onNext, onComplete, onError, onFinalize);\n}\n\n/**\n * A generic helper for allowing operators to be created with a Subscriber and\n * use closures to capture necessary state from the operator function itself.\n */\nexport class OperatorSubscriber extends Subscriber {\n /**\n * Creates an instance of an `OperatorSubscriber`.\n * @param destination The downstream subscriber.\n * @param onNext Handles next values, only called if this subscriber is not stopped or closed. Any\n * error that occurs in this function is caught and sent to the `error` method of this subscriber.\n * @param onError Handles errors from the subscription, any errors that occur in this handler are caught\n * and send to the `destination` error handler.\n * @param onComplete Handles completion notification from the subscription. Any errors that occur in\n * this handler are sent to the `destination` error handler.\n * @param onFinalize Additional finalization logic here. This will only be called on finalization if the\n * subscriber itself is not already closed. This is called after all other finalization logic is executed.\n * @param shouldUnsubscribe An optional check to see if an unsubscribe call should truly unsubscribe.\n * NOTE: This currently **ONLY** exists to support the strange behavior of {@link groupBy}, where unsubscription\n * to the resulting observable does not actually disconnect from the source if there are active subscriptions\n * to any grouped observable. (DO NOT EXPOSE OR USE EXTERNALLY!!!)\n */\n constructor(\n destination: Subscriber,\n onNext?: (value: T) => void,\n onComplete?: () => void,\n onError?: (err: any) => void,\n private onFinalize?: () => void,\n private shouldUnsubscribe?: () => boolean\n ) {\n // It's important - for performance reasons - that all of this class's\n // members are initialized and that they are always initialized in the same\n // order. This will ensure that all OperatorSubscriber instances have the\n // same hidden class in V8. This, in turn, will help keep the number of\n // hidden classes involved in property accesses within the base class as\n // low as possible. If the number of hidden classes involved exceeds four,\n // the property accesses will become megamorphic and performance penalties\n // will be incurred - i.e. inline caches won't be used.\n //\n // The reasons for ensuring all instances have the same hidden class are\n // further discussed in this blog post from Benedikt Meurer:\n // https://benediktmeurer.de/2018/03/23/impact-of-polymorphism-on-component-based-frameworks-like-react/\n super(destination);\n this._next = onNext\n ? function (this: OperatorSubscriber, value: T) {\n try {\n onNext(value);\n } catch (err) {\n destination.error(err);\n }\n }\n : super._next;\n this._error = onError\n ? function (this: OperatorSubscriber, err: any) {\n try {\n onError(err);\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._error;\n this._complete = onComplete\n ? function (this: OperatorSubscriber) {\n try {\n onComplete();\n } catch (err) {\n // Send any errors that occur down stream.\n destination.error(err);\n } finally {\n // Ensure finalization.\n this.unsubscribe();\n }\n }\n : super._complete;\n }\n\n unsubscribe() {\n if (!this.shouldUnsubscribe || this.shouldUnsubscribe()) {\n const { closed } = this;\n super.unsubscribe();\n // Execute additional teardown if we have any and we didn't already do so.\n !closed && this.onFinalize?.();\n }\n }\n}\n", "import { Subscription } from '../Subscription';\n\ninterface AnimationFrameProvider {\n schedule(callback: FrameRequestCallback): Subscription;\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n delegate:\n | {\n requestAnimationFrame: typeof requestAnimationFrame;\n cancelAnimationFrame: typeof cancelAnimationFrame;\n }\n | undefined;\n}\n\nexport const animationFrameProvider: AnimationFrameProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n schedule(callback) {\n let request = requestAnimationFrame;\n let cancel: typeof cancelAnimationFrame | undefined = cancelAnimationFrame;\n const { delegate } = animationFrameProvider;\n if (delegate) {\n request = delegate.requestAnimationFrame;\n cancel = delegate.cancelAnimationFrame;\n }\n const handle = request((timestamp) => {\n // Clear the cancel function. The request has been fulfilled, so\n // attempting to cancel the request upon unsubscription would be\n // pointless.\n cancel = undefined;\n callback(timestamp);\n });\n return new Subscription(() => cancel?.(handle));\n },\n requestAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.requestAnimationFrame || requestAnimationFrame)(...args);\n },\n cancelAnimationFrame(...args) {\n const { delegate } = animationFrameProvider;\n return (delegate?.cancelAnimationFrame || cancelAnimationFrame)(...args);\n },\n delegate: undefined,\n};\n", "import { createErrorClass } from './createErrorClass';\n\nexport interface ObjectUnsubscribedError extends Error {}\n\nexport interface ObjectUnsubscribedErrorCtor {\n /**\n * @deprecated Internal implementation detail. Do not construct error instances.\n * Cannot be tagged as internal: https://github.com/ReactiveX/rxjs/issues/6269\n */\n new (): ObjectUnsubscribedError;\n}\n\n/**\n * An error thrown when an action is invalid because the object has been\n * unsubscribed.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n *\n * @class ObjectUnsubscribedError\n */\nexport const ObjectUnsubscribedError: ObjectUnsubscribedErrorCtor = createErrorClass(\n (_super) =>\n function ObjectUnsubscribedErrorImpl(this: any) {\n _super(this);\n this.name = 'ObjectUnsubscribedError';\n this.message = 'object unsubscribed';\n }\n);\n", "import { Operator } from './Operator';\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription, EMPTY_SUBSCRIPTION } from './Subscription';\nimport { Observer, SubscriptionLike, TeardownLogic } from './types';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { arrRemove } from './util/arrRemove';\nimport { errorContext } from './util/errorContext';\n\n/**\n * A Subject is a special type of Observable that allows values to be\n * multicasted to many Observers. Subjects are like EventEmitters.\n *\n * Every Subject is an Observable and an Observer. You can subscribe to a\n * Subject, and you can call next to feed values as well as error and complete.\n */\nexport class Subject extends Observable implements SubscriptionLike {\n closed = false;\n\n private currentObservers: Observer[] | null = null;\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n observers: Observer[] = [];\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n isStopped = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n hasError = false;\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n thrownError: any = null;\n\n /**\n * Creates a \"subject\" by basically gluing an observer to an observable.\n *\n * @deprecated Recommended you do not use. Will be removed at some point in the future. Plans for replacement still under discussion.\n */\n static create: (...args: any[]) => any = (destination: Observer, source: Observable): AnonymousSubject => {\n return new AnonymousSubject(destination, source);\n };\n\n constructor() {\n // NOTE: This must be here to obscure Observable's constructor.\n super();\n }\n\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n lift(operator: Operator): Observable {\n const subject = new AnonymousSubject(this, this);\n subject.operator = operator as any;\n return subject as any;\n }\n\n /** @internal */\n protected _throwIfClosed() {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n }\n\n next(value: T) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n if (!this.currentObservers) {\n this.currentObservers = Array.from(this.observers);\n }\n for (const observer of this.currentObservers) {\n observer.next(value);\n }\n }\n });\n }\n\n error(err: any) {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.hasError = this.isStopped = true;\n this.thrownError = err;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.error(err);\n }\n }\n });\n }\n\n complete() {\n errorContext(() => {\n this._throwIfClosed();\n if (!this.isStopped) {\n this.isStopped = true;\n const { observers } = this;\n while (observers.length) {\n observers.shift()!.complete();\n }\n }\n });\n }\n\n unsubscribe() {\n this.isStopped = this.closed = true;\n this.observers = this.currentObservers = null!;\n }\n\n get observed() {\n return this.observers?.length > 0;\n }\n\n /** @internal */\n protected _trySubscribe(subscriber: Subscriber): TeardownLogic {\n this._throwIfClosed();\n return super._trySubscribe(subscriber);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._checkFinalizedStatuses(subscriber);\n return this._innerSubscribe(subscriber);\n }\n\n /** @internal */\n protected _innerSubscribe(subscriber: Subscriber) {\n const { hasError, isStopped, observers } = this;\n if (hasError || isStopped) {\n return EMPTY_SUBSCRIPTION;\n }\n this.currentObservers = null;\n observers.push(subscriber);\n return new Subscription(() => {\n this.currentObservers = null;\n arrRemove(observers, subscriber);\n });\n }\n\n /** @internal */\n protected _checkFinalizedStatuses(subscriber: Subscriber) {\n const { hasError, thrownError, isStopped } = this;\n if (hasError) {\n subscriber.error(thrownError);\n } else if (isStopped) {\n subscriber.complete();\n }\n }\n\n /**\n * Creates a new Observable with this Subject as the source. You can do this\n * to create custom Observer-side logic of the Subject and conceal it from\n * code that uses the Observable.\n * @return Observable that this Subject casts to.\n */\n asObservable(): Observable {\n const observable: any = new Observable();\n observable.source = this;\n return observable;\n }\n}\n\nexport class AnonymousSubject extends Subject {\n constructor(\n /** @deprecated Internal implementation detail, do not use directly. Will be made internal in v8. */\n public destination?: Observer,\n source?: Observable\n ) {\n super();\n this.source = source;\n }\n\n next(value: T) {\n this.destination?.next?.(value);\n }\n\n error(err: any) {\n this.destination?.error?.(err);\n }\n\n complete() {\n this.destination?.complete?.();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n return this.source?.subscribe(subscriber) ?? EMPTY_SUBSCRIPTION;\n }\n}\n", "import { Subject } from './Subject';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\n\n/**\n * A variant of Subject that requires an initial value and emits its current\n * value whenever it is subscribed to.\n */\nexport class BehaviorSubject extends Subject {\n constructor(private _value: T) {\n super();\n }\n\n get value(): T {\n return this.getValue();\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n const subscription = super._subscribe(subscriber);\n !subscription.closed && subscriber.next(this._value);\n return subscription;\n }\n\n getValue(): T {\n const { hasError, thrownError, _value } = this;\n if (hasError) {\n throw thrownError;\n }\n this._throwIfClosed();\n return _value;\n }\n\n next(value: T): void {\n super.next((this._value = value));\n }\n}\n", "import { TimestampProvider } from '../types';\n\ninterface DateTimestampProvider extends TimestampProvider {\n delegate: TimestampProvider | undefined;\n}\n\nexport const dateTimestampProvider: DateTimestampProvider = {\n now() {\n // Use the variable rather than `this` so that the function can be called\n // without being bound to the provider.\n return (dateTimestampProvider.delegate || Date).now();\n },\n delegate: undefined,\n};\n", "import { Subject } from './Subject';\nimport { TimestampProvider } from './types';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * A variant of {@link Subject} that \"replays\" old values to new subscribers by emitting them when they first subscribe.\n *\n * `ReplaySubject` has an internal buffer that will store a specified number of values that it has observed. Like `Subject`,\n * `ReplaySubject` \"observes\" values by having them passed to its `next` method. When it observes a value, it will store that\n * value for a time determined by the configuration of the `ReplaySubject`, as passed to its constructor.\n *\n * When a new subscriber subscribes to the `ReplaySubject` instance, it will synchronously emit all values in its buffer in\n * a First-In-First-Out (FIFO) manner. The `ReplaySubject` will also complete, if it has observed completion; and it will\n * error if it has observed an error.\n *\n * There are two main configuration items to be concerned with:\n *\n * 1. `bufferSize` - This will determine how many items are stored in the buffer, defaults to infinite.\n * 2. `windowTime` - The amount of time to hold a value in the buffer before removing it from the buffer.\n *\n * Both configurations may exist simultaneously. So if you would like to buffer a maximum of 3 values, as long as the values\n * are less than 2 seconds old, you could do so with a `new ReplaySubject(3, 2000)`.\n *\n * ### Differences with BehaviorSubject\n *\n * `BehaviorSubject` is similar to `new ReplaySubject(1)`, with a couple of exceptions:\n *\n * 1. `BehaviorSubject` comes \"primed\" with a single value upon construction.\n * 2. `ReplaySubject` will replay values, even after observing an error, where `BehaviorSubject` will not.\n *\n * @see {@link Subject}\n * @see {@link BehaviorSubject}\n * @see {@link shareReplay}\n */\nexport class ReplaySubject extends Subject {\n private _buffer: (T | number)[] = [];\n private _infiniteTimeWindow = true;\n\n /**\n * @param _bufferSize The size of the buffer to replay on subscription\n * @param _windowTime The amount of time the buffered items will stay buffered\n * @param _timestampProvider An object with a `now()` method that provides the current timestamp. This is used to\n * calculate the amount of time something has been buffered.\n */\n constructor(\n private _bufferSize = Infinity,\n private _windowTime = Infinity,\n private _timestampProvider: TimestampProvider = dateTimestampProvider\n ) {\n super();\n this._infiniteTimeWindow = _windowTime === Infinity;\n this._bufferSize = Math.max(1, _bufferSize);\n this._windowTime = Math.max(1, _windowTime);\n }\n\n next(value: T): void {\n const { isStopped, _buffer, _infiniteTimeWindow, _timestampProvider, _windowTime } = this;\n if (!isStopped) {\n _buffer.push(value);\n !_infiniteTimeWindow && _buffer.push(_timestampProvider.now() + _windowTime);\n }\n this._trimBuffer();\n super.next(value);\n }\n\n /** @internal */\n protected _subscribe(subscriber: Subscriber): Subscription {\n this._throwIfClosed();\n this._trimBuffer();\n\n const subscription = this._innerSubscribe(subscriber);\n\n const { _infiniteTimeWindow, _buffer } = this;\n // We use a copy here, so reentrant code does not mutate our array while we're\n // emitting it to a new subscriber.\n const copy = _buffer.slice();\n for (let i = 0; i < copy.length && !subscriber.closed; i += _infiniteTimeWindow ? 1 : 2) {\n subscriber.next(copy[i] as T);\n }\n\n this._checkFinalizedStatuses(subscriber);\n\n return subscription;\n }\n\n private _trimBuffer() {\n const { _bufferSize, _timestampProvider, _buffer, _infiniteTimeWindow } = this;\n // If we don't have an infinite buffer size, and we're over the length,\n // use splice to truncate the old buffer values off. Note that we have to\n // double the size for instances where we're not using an infinite time window\n // because we're storing the values and the timestamps in the same array.\n const adjustedBufferSize = (_infiniteTimeWindow ? 1 : 2) * _bufferSize;\n _bufferSize < Infinity && adjustedBufferSize < _buffer.length && _buffer.splice(0, _buffer.length - adjustedBufferSize);\n\n // Now, if we're not in an infinite time window, remove all values where the time is\n // older than what is allowed.\n if (!_infiniteTimeWindow) {\n const now = _timestampProvider.now();\n let last = 0;\n // Search the array for the first timestamp that isn't expired and\n // truncate the buffer up to that point.\n for (let i = 1; i < _buffer.length && (_buffer[i] as number) <= now; i += 2) {\n last = i;\n }\n last && _buffer.splice(0, last + 1);\n }\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Subscription } from '../Subscription';\nimport { SchedulerAction } from '../types';\n\n/**\n * A unit of work to be executed in a `scheduler`. An action is typically\n * created from within a {@link SchedulerLike} and an RxJS user does not need to concern\n * themselves about creating and manipulating an Action.\n *\n * ```ts\n * class Action extends Subscription {\n * new (scheduler: Scheduler, work: (state?: T) => void);\n * schedule(state?: T, delay: number = 0): Subscription;\n * }\n * ```\n */\nexport class Action extends Subscription {\n constructor(scheduler: Scheduler, work: (this: SchedulerAction, state?: T) => void) {\n super();\n }\n /**\n * Schedules this action on its parent {@link SchedulerLike} for execution. May be passed\n * some context object, `state`. May happen at some point in the future,\n * according to the `delay` parameter, if specified.\n * @param state Some contextual data that the `work` function uses when called by the\n * Scheduler.\n * @param delay Time to wait before executing the work, where the time unit is implicit\n * and defined by the Scheduler.\n * @return A subscription in order to be able to unsubscribe the scheduled work.\n */\n public schedule(state?: T, delay: number = 0): Subscription {\n return this;\n }\n}\n", "import type { TimerHandle } from './timerHandle';\ntype SetIntervalFunction = (handler: () => void, timeout?: number, ...args: any[]) => TimerHandle;\ntype ClearIntervalFunction = (handle: TimerHandle) => void;\n\ninterface IntervalProvider {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n delegate:\n | {\n setInterval: SetIntervalFunction;\n clearInterval: ClearIntervalFunction;\n }\n | undefined;\n}\n\nexport const intervalProvider: IntervalProvider = {\n // When accessing the delegate, use the variable rather than `this` so that\n // the functions can be called without being bound to the provider.\n setInterval(handler: () => void, timeout?: number, ...args) {\n const { delegate } = intervalProvider;\n if (delegate?.setInterval) {\n return delegate.setInterval(handler, timeout, ...args);\n }\n return setInterval(handler, timeout, ...args);\n },\n clearInterval(handle) {\n const { delegate } = intervalProvider;\n return (delegate?.clearInterval || clearInterval)(handle as any);\n },\n delegate: undefined,\n};\n", "import { Action } from './Action';\nimport { SchedulerAction } from '../types';\nimport { Subscription } from '../Subscription';\nimport { AsyncScheduler } from './AsyncScheduler';\nimport { intervalProvider } from './intervalProvider';\nimport { arrRemove } from '../util/arrRemove';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncAction extends Action {\n public id: TimerHandle | undefined;\n public state?: T;\n // @ts-ignore: Property has no initializer and is not definitely assigned\n public delay: number;\n protected pending: boolean = false;\n\n constructor(protected scheduler: AsyncScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (this.closed) {\n return this;\n }\n\n // Always replace the current state with the new state.\n this.state = state;\n\n const id = this.id;\n const scheduler = this.scheduler;\n\n //\n // Important implementation note:\n //\n // Actions only execute once by default, unless rescheduled from within the\n // scheduled callback. This allows us to implement single and repeat\n // actions via the same code path, without adding API surface area, as well\n // as mimic traditional recursion but across asynchronous boundaries.\n //\n // However, JS runtimes and timers distinguish between intervals achieved by\n // serial `setTimeout` calls vs. a single `setInterval` call. An interval of\n // serial `setTimeout` calls can be individually delayed, which delays\n // scheduling the next `setTimeout`, and so on. `setInterval` attempts to\n // guarantee the interval callback will be invoked more precisely to the\n // interval period, regardless of load.\n //\n // Therefore, we use `setInterval` to schedule single and repeat actions.\n // If the action reschedules itself with the same delay, the interval is not\n // canceled. If the action doesn't reschedule, or reschedules with a\n // different delay, the interval will be canceled after scheduled callback\n // execution.\n //\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n\n // Set the pending flag indicating that this action has been scheduled, or\n // has recursively rescheduled itself.\n this.pending = true;\n\n this.delay = delay;\n // If this action has already an async Id, don't request a new one.\n this.id = this.id ?? this.requestAsyncId(scheduler, this.id, delay);\n\n return this;\n }\n\n protected requestAsyncId(scheduler: AsyncScheduler, _id?: TimerHandle, delay: number = 0): TimerHandle {\n return intervalProvider.setInterval(scheduler.flush.bind(scheduler, this), delay);\n }\n\n protected recycleAsyncId(_scheduler: AsyncScheduler, id?: TimerHandle, delay: number | null = 0): TimerHandle | undefined {\n // If this action is rescheduled with the same delay time, don't clear the interval id.\n if (delay != null && this.delay === delay && this.pending === false) {\n return id;\n }\n // Otherwise, if the action's delay time is different from the current delay,\n // or the action has been rescheduled before it's executed, clear the interval id\n if (id != null) {\n intervalProvider.clearInterval(id);\n }\n\n return undefined;\n }\n\n /**\n * Immediately executes this action and the `work` it contains.\n */\n public execute(state: T, delay: number): any {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n\n this.pending = false;\n const error = this._execute(state, delay);\n if (error) {\n return error;\n } else if (this.pending === false && this.id != null) {\n // Dequeue if the action didn't reschedule itself. Don't call\n // unsubscribe(), because the action could reschedule later.\n // For example:\n // ```\n // scheduler.schedule(function doWork(counter) {\n // /* ... I'm a busy worker bee ... */\n // var originalAction = this;\n // /* wait 100ms before rescheduling the action */\n // setTimeout(function () {\n // originalAction.schedule(counter + 1);\n // }, 100);\n // }, 1000);\n // ```\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n }\n\n protected _execute(state: T, _delay: number): any {\n let errored: boolean = false;\n let errorValue: any;\n try {\n this.work(state);\n } catch (e) {\n errored = true;\n // HACK: Since code elsewhere is relying on the \"truthiness\" of the\n // return here, we can't have it return \"\" or 0 or false.\n // TODO: Clean this up when we refactor schedulers mid-version-8 or so.\n errorValue = e ? e : new Error('Scheduled action threw falsy error');\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n }\n\n unsubscribe() {\n if (!this.closed) {\n const { id, scheduler } = this;\n const { actions } = scheduler;\n\n this.work = this.state = this.scheduler = null!;\n this.pending = false;\n\n arrRemove(actions, this);\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n\n this.delay = null!;\n super.unsubscribe();\n }\n }\n}\n", "import { Action } from './scheduler/Action';\nimport { Subscription } from './Subscription';\nimport { SchedulerLike, SchedulerAction } from './types';\nimport { dateTimestampProvider } from './scheduler/dateTimestampProvider';\n\n/**\n * An execution context and a data structure to order tasks and schedule their\n * execution. Provides a notion of (potentially virtual) time, through the\n * `now()` getter method.\n *\n * Each unit of work in a Scheduler is called an `Action`.\n *\n * ```ts\n * class Scheduler {\n * now(): number;\n * schedule(work, delay?, state?): Subscription;\n * }\n * ```\n *\n * @deprecated Scheduler is an internal implementation detail of RxJS, and\n * should not be used directly. Rather, create your own class and implement\n * {@link SchedulerLike}. Will be made internal in v8.\n */\nexport class Scheduler implements SchedulerLike {\n public static now: () => number = dateTimestampProvider.now;\n\n constructor(private schedulerActionCtor: typeof Action, now: () => number = Scheduler.now) {\n this.now = now;\n }\n\n /**\n * A getter method that returns a number representing the current time\n * (at the time this function was called) according to the scheduler's own\n * internal clock.\n * @return A number that represents the current time. May or may not\n * have a relation to wall-clock time. May or may not refer to a time unit\n * (e.g. milliseconds).\n */\n public now: () => number;\n\n /**\n * Schedules a function, `work`, for execution. May happen at some point in\n * the future, according to the `delay` parameter, if specified. May be passed\n * some context object, `state`, which will be passed to the `work` function.\n *\n * The given arguments will be processed an stored as an Action object in a\n * queue of actions.\n *\n * @param work A function representing a task, or some unit of work to be\n * executed by the Scheduler.\n * @param delay Time to wait before executing the work, where the time unit is\n * implicit and defined by the Scheduler itself.\n * @param state Some contextual data that the `work` function uses when called\n * by the Scheduler.\n * @return A subscription in order to be able to unsubscribe the scheduled work.\n */\n public schedule(work: (this: SchedulerAction, state?: T) => void, delay: number = 0, state?: T): Subscription {\n return new this.schedulerActionCtor(this, work).schedule(state, delay);\n }\n}\n", "import { Scheduler } from '../Scheduler';\nimport { Action } from './Action';\nimport { AsyncAction } from './AsyncAction';\nimport { TimerHandle } from './timerHandle';\n\nexport class AsyncScheduler extends Scheduler {\n public actions: Array> = [];\n /**\n * A flag to indicate whether the Scheduler is currently executing a batch of\n * queued actions.\n * @internal\n */\n public _active: boolean = false;\n /**\n * An internal ID used to track the latest asynchronous task such as those\n * coming from `setTimeout`, `setInterval`, `requestAnimationFrame`, and\n * others.\n * @internal\n */\n public _scheduled: TimerHandle | undefined;\n\n constructor(SchedulerAction: typeof Action, now: () => number = Scheduler.now) {\n super(SchedulerAction, now);\n }\n\n public flush(action: AsyncAction): void {\n const { actions } = this;\n\n if (this._active) {\n actions.push(action);\n return;\n }\n\n let error: any;\n this._active = true;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions.shift()!)); // exhaust the scheduler queue\n\n this._active = false;\n\n if (error) {\n while ((action = actions.shift()!)) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\n/**\n *\n * Async Scheduler\n *\n * Schedule task as if you used setTimeout(task, duration)\n *\n * `async` scheduler schedules tasks asynchronously, by putting them on the JavaScript\n * event loop queue. It is best used to delay tasks in time or to schedule tasks repeating\n * in intervals.\n *\n * If you just want to \"defer\" task, that is to perform it right after currently\n * executing synchronous code ends (commonly achieved by `setTimeout(deferredTask, 0)`),\n * better choice will be the {@link asapScheduler} scheduler.\n *\n * ## Examples\n * Use async scheduler to delay task\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * const task = () => console.log('it works!');\n *\n * asyncScheduler.schedule(task, 2000);\n *\n * // After 2 seconds logs:\n * // \"it works!\"\n * ```\n *\n * Use async scheduler to repeat task in intervals\n * ```ts\n * import { asyncScheduler } from 'rxjs';\n *\n * function task(state) {\n * console.log(state);\n * this.schedule(state + 1, 1000); // `this` references currently executing Action,\n * // which we reschedule with new state and delay\n * }\n *\n * asyncScheduler.schedule(task, 3000, 0);\n *\n * // Logs:\n * // 0 after 3s\n * // 1 after 4s\n * // 2 after 5s\n * // 3 after 6s\n * ```\n */\n\nexport const asyncScheduler = new AsyncScheduler(AsyncAction);\n\n/**\n * @deprecated Renamed to {@link asyncScheduler}. Will be removed in v8.\n */\nexport const async = asyncScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { Subscription } from '../Subscription';\nimport { QueueScheduler } from './QueueScheduler';\nimport { SchedulerAction } from '../types';\nimport { TimerHandle } from './timerHandle';\n\nexport class QueueAction extends AsyncAction {\n constructor(protected scheduler: QueueScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n public schedule(state?: T, delay: number = 0): Subscription {\n if (delay > 0) {\n return super.schedule(state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n }\n\n public execute(state: T, delay: number): any {\n return delay > 0 || this.closed ? super.execute(state, delay) : this._execute(state, delay);\n }\n\n protected requestAsyncId(scheduler: QueueScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n\n if ((delay != null && delay > 0) || (delay == null && this.delay > 0)) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n\n // Otherwise flush the scheduler starting with this action.\n scheduler.flush(this);\n\n // HACK: In the past, this was returning `void`. However, `void` isn't a valid\n // `TimerHandle`, and generally the return value here isn't really used. So the\n // compromise is to return `0` which is both \"falsy\" and a valid `TimerHandle`,\n // as opposed to refactoring every other instanceo of `requestAsyncId`.\n return 0;\n }\n}\n", "import { AsyncScheduler } from './AsyncScheduler';\n\nexport class QueueScheduler extends AsyncScheduler {\n}\n", "import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\n\n/**\n *\n * Queue Scheduler\n *\n * Put every next task on a queue, instead of executing it immediately\n *\n * `queue` scheduler, when used with delay, behaves the same as {@link asyncScheduler} scheduler.\n *\n * When used without delay, it schedules given task synchronously - executes it right when\n * it is scheduled. However when called recursively, that is when inside the scheduled task,\n * another task is scheduled with queue scheduler, instead of executing immediately as well,\n * that task will be put on a queue and wait for current one to finish.\n *\n * This means that when you execute task with `queue` scheduler, you are sure it will end\n * before any other task scheduled with that scheduler will start.\n *\n * ## Examples\n * Schedule recursively first, then do something\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(() => {\n * queueScheduler.schedule(() => console.log('second')); // will not happen now, but will be put on a queue\n *\n * console.log('first');\n * });\n *\n * // Logs:\n * // \"first\"\n * // \"second\"\n * ```\n *\n * Reschedule itself recursively\n * ```ts\n * import { queueScheduler } from 'rxjs';\n *\n * queueScheduler.schedule(function(state) {\n * if (state !== 0) {\n * console.log('before', state);\n * this.schedule(state - 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * console.log('after', state);\n * }\n * }, 0, 3);\n *\n * // In scheduler that runs recursively, you would expect:\n * // \"before\", 3\n * // \"before\", 2\n * // \"before\", 1\n * // \"after\", 1\n * // \"after\", 2\n * // \"after\", 3\n *\n * // But with queue it logs:\n * // \"before\", 3\n * // \"after\", 3\n * // \"before\", 2\n * // \"after\", 2\n * // \"before\", 1\n * // \"after\", 1\n * ```\n */\n\nexport const queueScheduler = new QueueScheduler(QueueAction);\n\n/**\n * @deprecated Renamed to {@link queueScheduler}. Will be removed in v8.\n */\nexport const queue = queueScheduler;\n", "import { AsyncAction } from './AsyncAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nimport { SchedulerAction } from '../types';\nimport { animationFrameProvider } from './animationFrameProvider';\nimport { TimerHandle } from './timerHandle';\n\nexport class AnimationFrameAction extends AsyncAction {\n constructor(protected scheduler: AnimationFrameScheduler, protected work: (this: SchedulerAction, state?: T) => void) {\n super(scheduler, work);\n }\n\n protected requestAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle {\n // If delay is greater than 0, request as an async action.\n if (delay !== null && delay > 0) {\n return super.requestAsyncId(scheduler, id, delay);\n }\n // Push the action to the end of the scheduler queue.\n scheduler.actions.push(this);\n // If an animation frame has already been requested, don't request another\n // one. If an animation frame hasn't been requested yet, request one. Return\n // the current animation frame request id.\n return scheduler._scheduled || (scheduler._scheduled = animationFrameProvider.requestAnimationFrame(() => scheduler.flush(undefined)));\n }\n\n protected recycleAsyncId(scheduler: AnimationFrameScheduler, id?: TimerHandle, delay: number = 0): TimerHandle | undefined {\n // If delay exists and is greater than 0, or if the delay is null (the\n // action wasn't rescheduled) but was originally scheduled as an async\n // action, then recycle as an async action.\n if (delay != null ? delay > 0 : this.delay > 0) {\n return super.recycleAsyncId(scheduler, id, delay);\n }\n // If the scheduler queue has no remaining actions with the same async id,\n // cancel the requested animation frame and set the scheduled flag to\n // undefined so the next AnimationFrameAction will request its own.\n const { actions } = scheduler;\n if (id != null && id === scheduler._scheduled && actions[actions.length - 1]?.id !== id) {\n animationFrameProvider.cancelAnimationFrame(id as number);\n scheduler._scheduled = undefined;\n }\n // Return undefined so the action knows to request a new async id if it's rescheduled.\n return undefined;\n }\n}\n", "import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\n\nexport class AnimationFrameScheduler extends AsyncScheduler {\n public flush(action?: AsyncAction): void {\n this._active = true;\n // The async id that effects a call to flush is stored in _scheduled.\n // Before executing an action, it's necessary to check the action's async\n // id to determine whether it's supposed to be executed in the current\n // flush.\n // Previous implementations of this method used a count to determine this,\n // but that was unsound, as actions that are unsubscribed - i.e. cancelled -\n // are removed from the actions array and that can shift actions that are\n // scheduled to be executed in a subsequent flush into positions at which\n // they are executed within the current flush.\n let flushId;\n if (action) {\n flushId = action.id;\n } else {\n flushId = this._scheduled;\n this._scheduled = undefined;\n }\n\n const { actions } = this;\n let error: any;\n action = action || actions.shift()!;\n\n do {\n if ((error = action.execute(action.state, action.delay))) {\n break;\n }\n } while ((action = actions[0]) && action.id === flushId && actions.shift());\n\n this._active = false;\n\n if (error) {\n while ((action = actions[0]) && action.id === flushId && actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n }\n}\n", "import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\n\n/**\n *\n * Animation Frame Scheduler\n *\n * Perform task when `window.requestAnimationFrame` would fire\n *\n * When `animationFrame` scheduler is used with delay, it will fall back to {@link asyncScheduler} scheduler\n * behaviour.\n *\n * Without delay, `animationFrame` scheduler can be used to create smooth browser animations.\n * It makes sure scheduled task will happen just before next browser content repaint,\n * thus performing animations as efficiently as possible.\n *\n * ## Example\n * Schedule div height animation\n * ```ts\n * // html:

    \n * import { animationFrameScheduler } from 'rxjs';\n *\n * const div = document.querySelector('div');\n *\n * animationFrameScheduler.schedule(function(height) {\n * div.style.height = height + \"px\";\n *\n * this.schedule(height + 1); // `this` references currently executing Action,\n * // which we reschedule with new state\n * }, 0, 0);\n *\n * // You will see a div element growing in height\n * ```\n */\n\nexport const animationFrameScheduler = new AnimationFrameScheduler(AnimationFrameAction);\n\n/**\n * @deprecated Renamed to {@link animationFrameScheduler}. Will be removed in v8.\n */\nexport const animationFrame = animationFrameScheduler;\n", "import { Observable } from '../Observable';\nimport { SchedulerLike } from '../types';\n\n/**\n * A simple Observable that emits no items to the Observer and immediately\n * emits a complete notification.\n *\n * Just emits 'complete', and nothing else.\n *\n * ![](empty.png)\n *\n * A simple Observable that only emits the complete notification. It can be used\n * for composing with other Observables, such as in a {@link mergeMap}.\n *\n * ## Examples\n *\n * Log complete notification\n *\n * ```ts\n * import { EMPTY } from 'rxjs';\n *\n * EMPTY.subscribe({\n * next: () => console.log('Next'),\n * complete: () => console.log('Complete!')\n * });\n *\n * // Outputs\n * // Complete!\n * ```\n *\n * Emit the number 7, then complete\n *\n * ```ts\n * import { EMPTY, startWith } from 'rxjs';\n *\n * const result = EMPTY.pipe(startWith(7));\n * result.subscribe(x => console.log(x));\n *\n * // Outputs\n * // 7\n * ```\n *\n * Map and flatten only odd numbers to the sequence `'a'`, `'b'`, `'c'`\n *\n * ```ts\n * import { interval, mergeMap, of, EMPTY } from 'rxjs';\n *\n * const interval$ = interval(1000);\n * const result = interval$.pipe(\n * mergeMap(x => x % 2 === 1 ? of('a', 'b', 'c') : EMPTY),\n * );\n * result.subscribe(x => console.log(x));\n *\n * // Results in the following to the console:\n * // x is equal to the count on the interval, e.g. (0, 1, 2, 3, ...)\n * // x will occur every 1000ms\n * // if x % 2 is equal to 1, print a, b, c (each on its own)\n * // if x % 2 is not equal to 1, nothing will be output\n * ```\n *\n * @see {@link Observable}\n * @see {@link NEVER}\n * @see {@link of}\n * @see {@link throwError}\n */\nexport const EMPTY = new Observable((subscriber) => subscriber.complete());\n\n/**\n * @param scheduler A {@link SchedulerLike} to use for scheduling\n * the emission of the complete notification.\n * @deprecated Replaced with the {@link EMPTY} constant or {@link scheduled} (e.g. `scheduled([], scheduler)`). Will be removed in v8.\n */\nexport function empty(scheduler?: SchedulerLike) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\n\nfunction emptyScheduled(scheduler: SchedulerLike) {\n return new Observable((subscriber) => scheduler.schedule(() => subscriber.complete()));\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport function isScheduler(value: any): value is SchedulerLike {\n return value && isFunction(value.schedule);\n}\n", "import { SchedulerLike } from '../types';\nimport { isFunction } from './isFunction';\nimport { isScheduler } from './isScheduler';\n\nfunction last(arr: T[]): T | undefined {\n return arr[arr.length - 1];\n}\n\nexport function popResultSelector(args: any[]): ((...args: unknown[]) => unknown) | undefined {\n return isFunction(last(args)) ? args.pop() : undefined;\n}\n\nexport function popScheduler(args: any[]): SchedulerLike | undefined {\n return isScheduler(last(args)) ? args.pop() : undefined;\n}\n\nexport function popNumber(args: any[], defaultValue: number): number {\n return typeof last(args) === 'number' ? args.pop()! : defaultValue;\n}\n", "export const isArrayLike = ((x: any): x is ArrayLike => x && typeof x.length === 'number' && typeof x !== 'function');", "import { isFunction } from \"./isFunction\";\n\n/**\n * Tests to see if the object is \"thennable\".\n * @param value the object to test\n */\nexport function isPromise(value: any): value is PromiseLike {\n return isFunction(value?.then);\n}\n", "import { InteropObservable } from '../types';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being Observable (but not necessary an Rx Observable) */\nexport function isInteropObservable(input: any): input is InteropObservable {\n return isFunction(input[Symbol_observable]);\n}\n", "import { isFunction } from './isFunction';\n\nexport function isAsyncIterable(obj: any): obj is AsyncIterable {\n return Symbol.asyncIterator && isFunction(obj?.[Symbol.asyncIterator]);\n}\n", "/**\n * Creates the TypeError to throw if an invalid object is passed to `from` or `scheduled`.\n * @param input The object that was passed.\n */\nexport function createInvalidObservableTypeError(input: any) {\n // TODO: We should create error codes that can be looked up, so this can be less verbose.\n return new TypeError(\n `You provided ${\n input !== null && typeof input === 'object' ? 'an invalid object' : `'${input}'`\n } where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`\n );\n}\n", "export function getSymbolIterator(): symbol {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator' as any;\n }\n\n return Symbol.iterator;\n}\n\nexport const iterator = getSymbolIterator();\n", "import { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { isFunction } from './isFunction';\n\n/** Identifies an input as being an Iterable */\nexport function isIterable(input: any): input is Iterable {\n return isFunction(input?.[Symbol_iterator]);\n}\n", "import { ReadableStreamLike } from '../types';\nimport { isFunction } from './isFunction';\n\nexport async function* readableStreamLikeToAsyncGenerator(readableStream: ReadableStreamLike): AsyncGenerator {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { value, done } = await reader.read();\n if (done) {\n return;\n }\n yield value!;\n }\n } finally {\n reader.releaseLock();\n }\n}\n\nexport function isReadableStreamLike(obj: any): obj is ReadableStreamLike {\n // We don't want to use instanceof checks because they would return\n // false for instances from another Realm, like an

    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%0D^7gZ4*TCIru>^le1CWK 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%0DQv%8OsXGoqv-n2^b)2!Ic$} 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

  • 5g%tiY5$ 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 z zErU8YyaG&Q4A?AQxBT|AE?pbnlcmON2iw)JOpXc@-wwcnQr`|9oNS{b^hu-wHDsk{R|3>!v7pKQy z$z2q&8+vNDnO16{rlPU}oq@gwK}}I%?w#IgOt$wS9U8&D zs}T6Sj~5?<{~SiWN=F^TMNvW`l*xE(drT9g0Xw1aetxs2``P;EQmv6_+hKV{sdyCr zQd`ebi0Cq=MW_J6#{T51J18j5V6@JB{M{E4KF70}l2}frQbLhPw4;rJSixyqk%${F zmH=Zv)@Q>rp|{|%;PE`su>HrQ8k&tjFDXUEg?U0LV}4nY9n(DwNJ4ACfD=NL5a8(g zdFNq#0s8T^w81Z_H|p$lf19oE8M_Gw5VmT;ff%77F^RVfqwD2Q;z-pxs zxZ2|wq};dJhapt>^3?spX7~kWZTRu_q+*~Cf3w5uO6K<_miU%{EWp=qn@Y9R@Ws+Non8@hQ zeFJ>7Q3e^DcKdl@Bz2UGwFl53B$1QognNk?!eRT{Za~+)$Wd1^Juzv@TyhFrn#a{R z*O7KV&jLjn%`ZA-vVl)ux!vk5CaK?(juQiw!Z1iDf|@ilQ*S{gu~zV3)TzIdWLAd$ z<(X7e>SS7G3`afG+x-;(!cAZ-R8@{WWS2a#eSD6Cl7U9VsWek8?}hdMvG)Yik&qmF6kqpRkgrOk4FWtfn9 z^Wt}WLG=lq`Xt@Irh&+}w!5=ke{F5IfDQV)kge3jLLNTk@#4PILlU*YMSqEM2Ooc~ zPo!WY2DQR`Q;cJUHKGKh{yrRVwc0U!EYZN*ECuI7-f2BGw^v$PL_)wV1cpVVjo;GK z)7M8ogx`9Dihf&iTFCvbBE>cGie=VeK)_wl)o4FYx1m;e8=r(ia_s$jwpLZ4pz~ZZ z5Qg3ZJ;l(?QKTu*48Fho;3u$37fGiqNaLaL?+RrG;BtC40H_EBKixJUl#kv|Vg{pcow)DcXdu=U4q*`;a9XfF!qtJRBqVHC)jG@C~4UM)g$c4Zvnu z4LfVjvwV4$^a4U@@ck+*)Ht*y;mud(L%@$P)0fX5*?QFpeVoc9?}BF3O3guk8Z zLoik{3eNL12VrnhpV;m#VEL^#P=o8;A)SSw1?ulJzW!?E;p24d)O zckW}ZoA1Mc`n)F8EnV%XW9vJ|#5`6B_~nXSkz5?7EK4X>jWh0-B*Q$w-H3t15Hh`fU&}S@!LmU%sRLI7Z8QQFw<@ zh9a%48NQ%x*Y@O*q8a@GB?bCF`ZWr^3XzmhPZVK;?UK6mmxJwT!2 z%{CMMd}s3>K+7;1X>@=GlM%j4;B-VT3r}7OqMrKMFEdfywg=3wWdH*U3VEkKSc1ts z4y*gL;35Sg6!SZ#y02G7bV;``6xRW`^my+5XAa{!E*s|*hkwjHm?NripZI6<%SkM! zH{T3B&|flIe>qnddgmSf9_^*e`a?-_xv8#x@}lvc-&!k25w1p%6}L$qL3-C1!F|bTH-K8P+;Ity2#Cx zg_RjkXz_*}FuZn{?EKLky|J}r(#t#Hr2$F;5M5~|0`wLaDo=zn^&u}?i>95aZ>5vY zd7bHa4fkb`lw-Q>W9`^?p-;SaJ7^;y9cKud2jY!F5?{#ar0K@lJd~@PiHtqqF1x`p zJ`9tTcfA!4TrXr5T6cM}W$7wJDIQgi6TlwM75<^rK^K7XJm;Qj?s20i{gDge{&rN_ z!#w<1KMXxReex@pj9f++FabM*#nRF|1C^UP@=y9&TyiNz_nERe_Xqa|`QaZGYH0Jq z-VN+fWHfrdj>0n~Q<0c?WB|+V5pqngx}D`ze)Y^}eAyY%T}VFH2+IS(+w85;{$Jz` z&Bfs?9`3NxoQhy|)mvh?cu2rJg2~FdoZ0d_ox${G6P{>NCs$)E*~(VoSH9Cr;*jU* zy(HE`tDrj(O33<7EC4)%e;aqV{zy*xd-76G`mCr<{=|kKYU(A$?FEz^X&^X^5z=k) z7W#lA%kos&ME@8cGo2uvE*ZHr(zQU>2o?$vd$sVqlEs<yHlb^|bB1`{Y@1Cyb#2QLrTBK488a>MatLzm}TN+k|&L zuDftKOSj}R>$#n)w&e4_V?at*1~b>?I9l!*63i3m%S?dJHQ_szmlRY>S@7Q?4Ho)J z0oH%c^?u?4oVclYzgoUc>&>${;*|v=GR=Co+9F*||gIYX3z`y!*yX@6D*fI5g`Vs5aIkzOtJVkMWIh zgC7Zf>y;7+jE!t?zku7;Az%90hLBtJz#+-}F4kj3YFqcc!kd%AgyB2tK~{6)HQm!Tv30*b*fa)$ACg8@*M=n(@N$C7TnZ2xO31{V29fAy{lZH*P5r{h+vr8T zU$BD*vdpU=6=PJo9hs2rbdBb%`B!tIIQ4EKF~-ja)qu6sF8`M>U*kgsL-hgt2ogx8 z4{t@9kLb+2SVKt(924!jrX$5<|`F>EBhNl85kyby+TpUuRH)m-A;`1I z*C_%TH=aI#R&KS@D*KF@ox27cJuVv`cM;hD-MQR&47Ed41G&YiaQ(X@l`J_@oe%{X z|Lcrc-PE=qg19st{|48ah-2=;Hu#t2?l&%PnjqXuAoVTehG>9|?!eRqX9n~DSO3Fc z#o^x(aQh(8Si!m+V6Dp?ZxXmMo?tSZbBEv=Kt5!RB1L-gf64iQ_bs$2^cGqna?!-6 zp8)ikz7k3de6bfxhY;6KfRG!?sT|I1U0i+nXsIB67(*Jso;beo(;tnO;Dbr}a{6m;Y6sZyOlK3IW4TD5lPd(TUW4p_DA35aaftE{f}8MxMY z$D%mndj@2C3S0h@5LtY7h1p;#?xbDRD-dK1-M}!mL%U=ffUX=dY#$?!P(TsI7eF3* zLco8duKy}t8s5x(8Tf>;S0lY;$!~n)7Z91$`38t=ISx5m?aKio=)35YgYCqjnyX7Y z&c;3gv0f0@5@i0Rmge&7X*L-7yZPCCy~&eh4kR#5R*GQB8<^K0OTufpw}%E#*ct#` zrw^vR-jaUpjOdDrO#pde)5^a*{~Bl^{PhqR1Bdq|saz)@A?nfM@o|T#QMgb7{~DC+ zhGr(cM(wNWG}IB$?>g9Bl)z#GeV%9F_c_l=4J!}(0|=ocb_Z=UGMDOoM6p9c#L&Uw z?(yumR0yNIA^t_N?T4WpD=b1LRCVtJ`CyMA+?2$)G`2|Uc(IMU5yb~6Ac)A_c1#tz z_}XkDu~{vRrs;7yDwgvjHqxI=oE*5e9ZXO*G#5m#9nVSw!aUa;ss0`7hcO9oGl?Mw(f)xtP$FI zr&GD{WT^=jStkNAyBRS+23k>sjW5R{5DN(BG6>LF{S-oQ9(2;I&-bY6%HfwR_3U~n zX+Lolf!<1q!>tImnj*TnHHm;I5isMgK(0a;I@nK+2CB2?7o0e}QNU5h6}>JX&`-u< zu<1j%7nai^7xA9g4GYugsuN@7pPLl&kqW7Ez&fs7qpV@XnioKzvj(h5!3{9*|*@Cpt;SvK`uM$)syU^pYs&rx&`iv-y( zhJ5JBUl=R{p=!s%@!7O?sQ+vXK}Lhn!jdRc{BW3Ky_b{9uW}USjXcc&dESceOa$tn zXLs+svt9CI6cEti8`G5LKENVzl5`b&{o0cChtJP=*({@u$V+Nl@bWUm}^?JDeD zpYgB7JMfoWQ~g5u^hvTWB@_FxXu2-G;sf*FfP5Nm?Z4813r#Gv;bC^rw+IHWlX+~j z%2s%Hd_^Y#mPWR)DsNul_n#;S_%ZZ!ZV+f>X`A&#q4_O5xc}INdln zH~^K;Fbb*q#H-uF-YjUWtgM>flt|E4SvK{zO5T2dh(3b_f(rqqlOgyy-RC!*cSfIr zAqGN~5X9vOz|kX{K|@a;fRbR6p+=nkdi###y>QJu)q###rGn5xE@v89MoR|wWM-W zuI)$)3}-Md9$v-nN0A-n(_hJ(07P(a>FK?jT1TA@>^aMgpXlL3=b(@$8AK_x_XA|$ z$mL{IZvMD~HeE+H1lHNnc+g1)$odu@{B+TWaIT_X;7t32f#aYC4yPmmt791uoCF#B z==@S1LCHsuddofI`Y)i7?>fammFy|3JBlE~L4kZsF^o*Wb#(K0pXGzZO>dx7AB}|K zMPt0z*{n+~uN(jgK@p5PSnz9eWlSqnEi)A))9f`wJ_w6dkrc6gC)sOx>K|Bq`REf||6DCu0>w~9(vxL905!s0DpO)nrzwJ)WGWDV6VyzoaR7)(s z>3JH^N0{L}!}SB&ucOPBV3Y|^e@(aG~f!Vg=d|DflCW`DO_J4Qyf0gHUA zlLbd2P&NpteruWM_?7!BM$yekuT9o@TKNoe$nc5@N*IL zI$>@RvR#0bgKeUGkWwD*5R~*>)q2bucC}kqv8*}R3Y4i&PG~C`AqIHMJ8(*aWuvke zW9*h=FFpvr8=M937~iM~=_*`_$GFqmY*7ff-kZA+s{t;CvbuPpsRJ~$^W2S>;^&}j z=K%wcv*(1Sx;?KK<`Mwbu;wxU-s=4B?%y-jbXn&|rN9J>WVp8(z-L)0w|RJZ{sb2@ z+#YC8k%k=}GhD&LHK4`@@TW3Bd_8#*Bv`EhdQRs9>W(8#e|L4ZCm$}u0ljtLQeHoe zOhecTKpQln=Uy$u*rX7ckl&Ih`o6DLjeUkNrD`ur8B!q(>;_Ci+!Qo$K}=KD2Z7knt$(f};JmFaYcZ@{^?>mg_h=TdOtsT13a|PE-V$R-X@Aec z=i243EN#vU7W~F(l}l6$kcP1U?U$Zp5fx&u9Hp$#vHJ_RP$rOh+y`sogY?5- zKuA_2cv<~ofdD%j+o&m%B<^lDWMN``WMl-pd3M$aa3FCe6$)Ic30RZl-o3-c-B}1LeFXvP*w(h}v356Q9ImtPRufj& zgSy;Fu+lB8Qxw+w)k|j&$q8n7Cr{{<=70*(jd3!K)yKyI6}A^Ud1mZgeK|Q9vwEY6 zKqXD#6le#@P9{-}ivEh;{$fzQ>2W3pQ{8$a1L1uPe$#ld8fRSJk?R2@&O#cmfpx&x z%TM|GrnM@4cVFc0fgO>5;La1?+&;zBtR=av)T4zXafp9N*jAeGh-PYJXji#y0m0@N(F?K)-tdASa006#L!r zR;Dpv@B}*EGR1i&e?c9Rsb0Dr8ujTnkTvtG(xn7$bQk@qW_`HnGB+n@95Vc}ivN<2 zU(-z=TXa^zyT$xNc>Y&Gui6%gUws2tKcF_r@1v-a{_8UTyZzim0#u`yF+y|k|LeN{ z@n_;q3t}Ky`N{7UO8yxqSC^srrh(sITBCcyo7i`w)?(Cp7u#BcuJCm|zG zR94B4lO2x?o}e+IbiIA+cW>yy1K_X!(X{U71XeEk>7z9FtedXvZ(?2&`8SdYQ(qsj zVM@x(nY!0 zIKk>NCmh?&T_|D-v5KDh1;2PxU@_0WwJAd<_XS#<{o1U^+Z7A5^Pl81 zGDKUj2fm8Ank0$3`o31VktHJ1>$XF0y&(BrA#8qh5L@;39`<<= zHm6+$OS05>L+YK#MpqQ$eEO?1#cH%arqsCBT}k1^bSvbO8UE3)|E&?*P{2Ck4OL7W z7+PreM}SW1O9|c8@MmBKy=&gKM7zYfgnW*&=T-*~-K$>-jNXID&)~}&=yGPr)s(-A zbD32I?$p`JpltPCK9`ooiHh{HJZZ}=J{XnHas7rvc(nEgJLJCl)l{zCAp1`*{F5Cy z>Na3@O801mD<7g`$!7wy%H`E-{MA9!0gq_%GoWA-LmZgC~ zLR{;5;fLW^{`e6VogR{#CVp1dhR+JQ9941gS^%zh=D0Z$u-kZLZS}=+yf6d6@F2$h z^V|P&^WXN1O?fvSkF!f9fLKRJxqZ!lCnW?Q2g^9Z8bFic1$V@i1?M#J6j0~Oy!lfNJb zy}%-9^Q~_m)bZVD@qf6g@9o>BzOqL>pENH@&fY4El`pELs?6g&VWWIqQ%nh%&F6ha z^tjJoqDH@z3QbVQJ8{ssxJ&szUrVBKG@A1Pcy{4b3Ke_cz(NJ30Y}%dov1n+A2Q5} zti`VZQSKD6Lqow??*#ZVpXm(O@EWf@R;b#A{+Mg1Npum%;Y<|GWl;XjW&K+ew%wH2 zzo}n;ApS4)>;I*G{ePf-RR(vUx;a!br&7%qU!^~uX?KcM(AIvuGoK`C#e$Tzv77L6 zGFuloIo@9(jU7BCophflSo`phIeD(ZW2+6INtHbJ=`qZ*-}z4lQw7+ViRH!(gJ_H8 zSboacoJSZCG`{w_JWk0~$y0Q6e6>=RHW^lYaq*i-^fQb+R@)xk2|$usjOD*s>50vv zJQZGfuEnKQ2~M$FM#;nPjv2q7#{btQ_IukILOZ7ee|To;sy4>*?9xjR%gvq%w89yf zs}b>l&>#}Bc9l3n6evY$Ig;6$HOHZxaB`UT7-ST@LN7;Q&9=Lhx)zqN8o9JbDj%UD zKfK(V_`!n+esUkv7uOw9_#a&dW?fTkEL_b#zn;)#Qd9m&95pn4Z8z@R z;jUJDsS(I`^dP08Y3{>vj-$S&+H^2I0!AD7X=M0e*mkn0-ud?6Iy!!0=ebcXXZV|k z5BigMN7`d()>NNM!N>=a$5uYKKJS}9DT0|xJF^*^UTlsh8qc$^r@n_O`%Ph|TD_q&*vEgpRw_DMI|@rQvHFHR6z0W;rKy|7IF_1Q z1}c_5jE`@l=3ttC<6dVJ znSlFUm2t+RdXXS}CWg0}0A1kC%oP&^puT+NaSE>8YrK;Bxr{SgN3u8m2Op@LeSoF4 zHFF3NyB|y7dcy_f+60 zy5ZmCHe6)NtOVoHfg}=!{NyVu)|MM}JVS>py&5WITR$(}@-&DXz%aN&pWHe~{>7pc z%S7HY{E!Qgl=$p34oyJtOS>fz;fYqPrvN-(XEohTAWU+iGZ=(zkj7tnt&G;dezQzI|f;z8DW40beL3W^C6u48Ctw)CC$v>LhOZK#j$m z$`d{J)8go_f2ayPWf7F6V(uX!^Rt^p>G-762O0yjK~SYQaG*^%9aYfN92_4v=^PA=HEwAGGv2% zWl}E-e&7rjk5I8tI2KnUx@sROXCpteQv7q6;z$UC0op9XFmX{;X&%H~5Gs)^R+=~N zi=jODIq}S^Z!O`u6kjXYkig7Bl3%Vq&^M&_yw6v5Zoq;5vPJG2FQE;Vg|Px^kog)F z1_e_z$D%G%Q0&pb^rKY^&f=ibm-t#=oO}}|Mp{Z4B8mfKBs05#ux~9$GF$BJO74b% z>ozsGJHdsdjcYr5EhKlQsd%u%ZtCM}m-UVPpQKX~=JO!qPk49Od_yjx((*C%6sKBD z+cq&E>;^|&=o?XYg?VY1VDIrWGv1ytM4y!Av9oPt_Q`}q@kA6)eu*E9{@?r$Q6V?LhS$Q>MVf6>UNA#*4ZLag~ zTTGh8`re7;WD(($)plvBbORJxiQ{QEXy-re;s*1SD&A=gl`I0=q-gy>4e3-C74!H2fEw;t9I) zK`i{$v23qrHZOkhPf@=trM}25@te`Gge8|JwOiW#N*w?`L-s&ljIibLFHsW887?Kq z*kNTGiKHxL&v^vAD+kZW%-ijzZ|D#Pd}wX#yI-Ij*+&-MhEi`U4NIezpDpjudRV zn*Ndcb6=u-w73=>t>+H;Hp|wd{J}HrbNZh2Yepyo0pK#0+HJL@WY34+D}Zi_ z-RwPuN9>P#Nz)D4{LZO`UF&Of31#~)z=1LG`};58!g^o4V60I>uz&sVm)AW2ENjs3VJvk&^Al=C{- zzmF`U_-k9brNr)>tQzZ~@#o|v$LW}Y^3OSC^>1N;pX&@=;W5dqVW9usnmDP zGW(Alne>trggY=u%&{U{O6&nnfrAesywDxZhRu=+3!-!%3e*wA9_+-CQT{iH-u=xt ze~{?q`-^V4nJeOLPG!`l1d!MuBUKBJ-{cVD3OsUsGr@oHGqN0laECSc5I;^gT}a*? z0a%Qu;f5Wd8MM8+I5WQJcxIEO#@~peW!$FQl|TG~Uj1Dlc!hH6E4#NSW*4wajP@sK zoYOcaqtmgbsk4$c7q*x%V+-wC0&CRSl{~~Upl;=MU`=&d;(ZAVc3^k}z_%{>ex1sB z%OC$o&JD18_WktL5!9tH*f*1)EC(2xA2>aqO(;&m?xMD{-NbW2CHeXaJresv&=%{b zcf7Mrk&nhdz*Nn%M4!M*zT{LsWlML%k@S4`Kz!^l$4AJWZcQ|;HC*NTm;c@|_@4fm zBH^)@oR$gLyjwW=TYSsq}u`$oslDl z5@~}5nN!gxKb^fe{?^$+z$L&ixGyXNDifT~F3AOt^gc zmRG(o!oEZUjb7)}5|IcdF0_lzR*7yPx zE$S@kC8M)j>1q`nhlk;nPnx%d#i-kf4}UTn3^C%>D;2OR?^5amTr8m^A|LtS&;ZUP z>(-1{y*ke$_Qq}KO)rC1!H-`UL~@(d&PS$5y|Sf5=?DQ95S*3I^mcH%Z&qY=@J}rN zUofQ=&RgZ#OHU+=6pkHZM%J6Vh#a<8K2vIWZ#8YUQR1iswo`~HcKevKRNo&=>A+Pj z;S?gXWboRzk7qUqZX9+<8TI=#AbBkR?%{1URHZKQ=s6W?0h(A8<6 z1nWBjIEc@=@vD&2KL9Nbj!pXjDV0bhtt{o_;cXH{qW`ESJin_=1?+$ESD;jfU8Zqt4;l;XsTd*Y&T7YU9ZW} z!>rRbJ6t!f4_n)d37FxZm57n!kXbWSPFjanR#7lc%fNK*EQy)8Rn}aq3>D7pJQZpxw_oNEF`}Bf$m0Y-M<#`75tQ=)E z4Ic4pn?9o6ig(sJ2b%?w{Q`(Y_PMDxrU*5b7OLC9PZxJpBsF80U$~2|}J5PSH0M+#m7w2Qpckvg)C84_D+xt7`06W50aDlt=Ri z)YYc8nx}jGbX#Z??{A^}`nY%^Njl-U{;rqEJz%gv=(R%UJ64GLPY=z#!!4}Xr2-Po zt8>=;w<+n~eVuqT020{zcEYTYW5+t(9bTA%IiXU7J}25ycQa?#i7nc@4T)Sc6aAFI>V_b8orvvpz) zIreQYFyy6*uP#qFsFV_;r@F!>jdkb+*SYBh!JqQ_AAs$>kbp=$VbF0=6NP=}fT1z! zsod6@C>!T+$C*7|)99j(V!K(h7}UMwj=bRJSjG@+#?jA~`bSZ$b;FgU#I^bxPWgo@ z{g%8%X(tdYFz=3CPL$Q;57|=pT_cSHXj(#8)Y-{eA`$hpjSYOh5EQf5nD<%GtGggI zxYn+bANiBAZssZD#RIUT)NT+}T1D^KIv z3wsS{z%uB%o-N{qyNZKYSyFw=RX=UV{6rg=!rsjf#BL6*ac=A9)5KLy-$)X&<}vuS zf{paMgpI=9v-!RGlLey3^*)$e&tNlEK3kGDpHfJ)azD!U5fpVEa^c;P8OLyckU_F% zZPX`R$EjPVXaT)!WzN#tD4(xTtei~R(aBvSWH)JW%F{V5YXx3%)h(sXFIl$c| z=yv<9?-K?1p1m1OjD(7Xrlx{goB&mxxmLRVCfV`sizCDfybqT;%D6F4V9j z-eHda;{1Dp@lHih-(_y@mq$;J6C30m^11JjkiJyEkJ;~NC%2Vgu0ITeLTgrHIIeXx zb#$2M;%!ATW7*GoPR{e0+x!2va}D%#EbuGp$qqDJ_tT#3^q@xEuO@KN&vuz77uwx^ zyDV*Wr;)YSo;0H_u!sSrwG(Yw3~_Dqk3ZObrvoMZS1R1+xc*2G}#mT&8bUseBE#L0k{_KRvvXcJKdP%+9##K zZw;!8?~-C3c8|4kfA2VTeea5GFk`;UW*~jHB^GdtOjb+zqR$-OA9P3fL?g#$f8@nJ z9j!UI7uIb6WK&)=I}vy^A#;aBVC^BxtMXfQK+A1qIZP?6 zCTg3^UO;e?Cr9+w?Yr1QHy@ok6khsiYvVs8I?9NOr8jrqPGMLi9$Y_#zVoGb!?d)A zw#M*@D%~Mz5Z!yEpqZuf^&N;QoHEVwt!olhMYrw{D%qTQ?g>Rg#PiEt#zJgbwuTg% zD3_;%v!Hj6W=ImQA|f6Y;FBt=i+)WNuA3NEx4qQ_~8z3OxI_M=(pHG zQyR67=4cI}{1%y>yq3{k43=Zr;MJ@;ez0gFTAoN19fF zLkYrnDz)&WHn=&7aW_m$#fuKEk@MH=rk_eH*WBx!$OLhI>G|g4knxABzM+nMNBM>g z9OS!oinB4{B)ii+AKZvHAJCg*0Ke2ZT5g$Yzy>*>g9GpF>OY$BP-+LOj3Z>1VDK-F zP^;TYte2DN)A7+NvE+vGWu$X3GQQ|xsuQSzShzv&@4};$hPq^hb(auyPL$(*~JKvL!+9#^b55SxpEnmChtSnSaPils*S3B(u6_!2kbI#E>SVGSgVh~#` z`MXTR30MN@aWf9%_@}$WnFw0b_*ra1EfP#neqH^^siH%qQ) z%uI<)`6Ol-;T@iiN0vHsZfm3(m#@`V>#YGF5$FI0GBdKxWP@lEaBl`uVu1rLWnx}v zP?C_8gwF#ERyPVDEDBA;7Fa={OFK|gRm#2`e`bvj6{2oobC`*&YaNULa8ZZ`Xp(yNN+{w z4FP(2qPVjX-+SP#soh6lM^U9D5V?1VE+}bFZyr1$eM)0v?M6r5dn-rB zvb^KZ{GU=nui~z*miPw&_z#^;!%0k8xAp){@t`3vkY;^f9G%WZnff8vUSQ77UG*Q* zp%&7Qq>~hoE$+Bfgdidd*;RGz;zwAtmU5-le(VYuo9b+RTj`q8^TFJaczo@Yq7r?o zq-ABsmGMI&j&286nFsznM{mWN=!rIzik@dj3Y{n^CuTx^Uh+829M{b-wL#jftRVgT zy&=s6RH0jy!=x&oi;kvu!6=EkBYNQ;BHeSHw9u5J&Y6f^qK$y%^N<5^JI$c9+Z~bu z%kHB(lsK+y^Zxi1D^?|^qZ-_6gT^RKBJ{)1~?!{K#8j;@%} zKFp{?rqC$;tVG-wJKMxqG`02-tbYACU6|}!xSA8nNLpzmGB)apZhC>#r_Eh=ud%;r zHK0xU=a_hq(OD?z%3=sfqbM}tI=Z(Y_cI^Yi~@2dqs%SPtX>y6zdd=n!K?@M;>nmM zFCf^_jNnljZFl9E?}pyzETqjI)I1#lFg*N(-Ky@?o+2Cl#8F>I8K_eBGzYsXBQ%k{S_Z}&NV_Uz-!#GDpL>|Qx#`_HU_!wC)q0Q zLmx7T^d%WCD>uU=K&+J%#3VNAP?U-P|WL|qy$Yo!7TbSb@uLea}!ZyXgN2O3H*hclgg zETkdEh_gt!`!iR#7Rd5v?M{aYmxX9==I*RwH-FQtZ#;N>NqN$rYwDZgUxfD0$#+^ z%qsK09jM1u+gRiN8T$aQ1p+R7eo*kZQvhe;d`;YxctQ*x!oV0@ zqMgdfMshv{lJ89TD{uQ1*;+{h24vMx^`N|Gdi|GAzZRDDIL7^7`8X|9l{Cd~Awh z^V>$u-hX7h|G2Ob6|jnj;9vcnu>JKwOcX)@hPP82A2!%lj&<`~QOv2`Hd7--{nslC zB@5g*U`JIq`?J4t>_0CNhY#p^xF{^{^?&Qd`}8@WOtN`~0pEWK-%2yN?=I&FBP6yP zr=#2)Y)$rWNq34hRe8(Oat#RnuP1*D+&0W6+VsEtN$8e0ClhenOg(b0uz%fl=Ph6; z0*xw(=>NLiR5@S`aS*Q={(l)!`D?%$PR~`{X#XV|vthsytu9aOj{fzGKgdu$Nhh8{ z&KK>0DaIb)I7nlFe0gUu>EDlh`z|ivnYfbK|HH*J)qqEKLe%j7>#-=p0cVL65)rS% z$yV<{Jde(sF_!x8$2bQzy!I>>zv*sSiix_Ss4&k7r_bFzp`S0Kd$gS%|LLxOieo?R zmUjsGd?3~yeKmv}eUAe;K9SN%k#7;{S2{5Ep@EAPC9b5fF88Tj`ACuaW-eoth(jan zbF*n+l#ApWBE$j)kk8SroO*(v1Emtc{*rQcGddp9#vl2>Fa{p{^BsQ50{(0hwe#_l zRL`GW09Rs*pdDr!Q|)E<&Qa67ErzQcA^l|tN#6yMfy`AFC8hZ4L#X0xx_`R$=27T3 zc;P)>=ZL^*5)=_I6?}=WB)1C8?DORMj=6Bv*DWclf#K- zZ}F{A|MPtuQ#)sE0xlmnyERIRz6Z3k>>eHAJIOcn{bY>iJOIVJFjt4~+h- zgLMN{^AJ(tsIRcDlUi@nn1N^*&kFvhrC;1E%3+3c1GsZLEV#tQ1$VE&49(25eMcQ? z%+Z(RjWM0m*Pqwpv6OVnT<581Mxd7H#~Uoop_bB~lkWmp&b8k;m`EA{;atat-x7$N zCB>Uh%Jw^il4BGX@lzl`CgFLCt`|F*W3_8iGwya(v@hqBGD^Z2Yu&Rp0tn+l(VA2N zt4EjvJt^A|bGr%A__vEf9k~kJxucipC#2OT4&`zdiS@JEE{Tkb6PMK^a4$!Z3Kg6= z1M;Jq0(--xlhM44Q}VM~XLi$fQ|?^om@|+*zO5gFPlKxj@mU|KzJVXfQ(q3g3g}N* zP!Hm8e+0+_;MP$hpmOQo(_H?dE-;OZ(<{*+u(mZ5dG` zH{mOybjK(2GUEXlrL7HkEHrehiag1;l1uZw9QAWCopmf+i#fy~YVtjxR?~B)7G{$R zBg>QKoS)}-{R&R9J|r86#ovFvmn4j72R29KxOYmYhwZ( z2bK=iNnQ+JUf)S+PrIbq@@@1JVr(&856wU<&}>B?pLA5Hj-q>WpLtQyS}qY+H(J=( zT{+TrxrzazI7Fi|$h86xxgum)>6F7!=3BRcgiyI07Cmg^tFr%>la0(1W}X!`^u2QE z)N%sJ$!oI}xBHVSU7E!cBm#_s8p9bT`5x^|v*I1I^swE%!iKz#;P9a%YZ=~$k(#Qy zj>Qeo!o2~(x1o%(=#T6Vr12+41U-tPp1QmpqI+{X`=-_~Cc35(rVWFQ?Qpi~g;{l< zjn`&E{LTa^pV>NESB)7SnZ7yEiPaSUM|lEUh~gvQr4PQ0Wn((-GCZl`j~&ct09}^x zsOB;n1C?3rae9Ge2Kvk4#KPM42mMVFKADGamr3|q=X4#$Uk3DF%XGiKPD??J7{txq z3|!vvQY@$zNpvHZKKat4B~VO1<%~ry&~Q-P<(^4Q^(Bz_cC^ErQ=j>o**YLaw)cY0 zIjkvKOX-IP>6JERmRuEiT)fHgxX5XD?y>M--eVcxD>{;hTbdu)D{`7m#yO55@wTCT z2y9SN+dhB0-+MIgkTB$f?*4|iB3ip&Y+oOc!(z@qi{kuv>AP#+e-AQKSx*4>mH+9{lHj#*QjVv7=2J57sQ-vQdpTMNO_)YFJ%#i|xtVtRd z!dZ$+`yJdkgm-J>bqku(SafOvmZR0MwI*?YRH9pj-Mq)dbo^R5BPrw5O6t4gGH2OY z#^sPTLYsa?W#_>H=LW*ri2On$RpVNG&P5%}&p=sDy{=a9&g_`9*}+dMgJq!V>($nH zKH_TnP~0Mqrn)Oeu^b_2a)!OtI(DRGi~t|shvAgB#a`3iPNPwwc+6QRVg4}AvmUhO z^|N*^s)>RC=IAZ!c_3nV>t}_w55?9I&v$?^e4Mv2XHPzCVCBkEXZ{i#2vq{CgQJ4) z-Jr9FhIko?^6^Ok?$x67vQ32~ibRkwhHu3Rg?C6_>pwRQb5u0&&|&#Z`+`K=n~P6Z zIs_w4=~HF_xYs9He(uX1rd@B>2tml6^wq_!zDxb0kPLY4YvNPZv3hU0NfoTP|C$3HvqB3fupG+%u`^~OQ0fff41K{&P z&N`)Qc^vJgI8^WHi99nK^j4xf-XMl(Qr8~sU7FT4_E#rWv)+?1JF-gOPMzMqG-6V5 zG%P-&RTQ+(Z%8Uke+bs*bAQm!tUi`GWye+BK8?|UuQ^D1pjI_77&x$*Mq}&FUYOAAc&$X&q9`@^(JKq4xiLD`hO?)u$u$lj zd(@YsXS%ekhPHE`@%#cY>%mMF*PaTL!@A+c2l+IirUk@qsjblKwy8d3ubO@&So=#Y z0a;8f7t&m>rw;d3ZDj!Kgu@R)TOR%L;|QT9$?y+~_DeK{I=~6^+xKCOPz0Z36(FIZ zggW}^`aPa$^Ma)~&ZbErht zctS1d3ed%S{N{&WVprRVUe4cklAmXaIGf*}BQyS|v^o`%W$$tl2}!w$z20)!8Q#Tb zr+J-7vxo>Sb!G(>G-dV@QuCCr$Q4>mk#_3_7mLIu4_Zi=hLpritdWzjbIn>fc37Z+ z^7S*}esnYwUS5`J0g%hY$<*xQpVB(BdHEj2E^tE{pt^UKu%4q-@$`q4LE5z1d3YpV z?YoUiBk2=T0_p87p3_Vt5O6qM!&^#nnAKh+m}dMec00ai#F&IoecU4VX3aaz;iEa6 zAJ12cOPbqfI&3CUyb=?&WE$_6eg3DsEPlzW;$tjx7xJpPwrGN&ecP;kTcPCZ9-+=9 zq$>B~?^+A6?Md7PLSTTZLB4Y0U62G>iWApb-bbLbDt!DsNAc*KiAX@Z1#9r}EDr7| zJLJbE*0e9VYb1GeE&V`EA?e(5xUYswelfL1?6dJ^`Uhj&%ulfDO$I)sgGx^l>kFRc zPbSANiq$GGjyGkV|4<5{@0WL+t+^*NhNV1yFHOODkV(R&z^Y-?yodLWGI&nLBMA^e zo`mq8tt)Bge(g=%UDF{^MXr;J@~qxA77cyFiV=I=@}J6vw8f+(CMeQl z4?1d~m0Pl2Q1tnp7ckh|Rqq%G*ba0-KT;y2<}c$B0;hA4DxrNBlDT`ZA%??%zxRV% zDCRdZ01nr5uIl2^`YfpZa~3MS1KRCd=Sg_x=a$dv931*=S*M%1QC1|*%24e!$nCWS z84=Bsv&L(ypIJ)1I8yg}=zqlL6hChAe*M8*%Q^gelfCInqzW9DU3C)J4x%kbH|=hL zo+#^blfXk~P@s&Pss$Zr_5Tp}o?%S~-M6TMf~bI^h=PDprK>>bMWrL4bO-^I4x#sM zY>0Ge(v>RGLWfW-fb>p6Xew1gk>10dpy#~c`@i?gdG2$*C0z4bfK|U>R(wh`ueRizYFZWg8k&vXVURA~ z6H0D&5tDv7t;w^{U@T?DU`w~4!u9Ei;3eEw`1#kMDX$QJps_6v6OpdyI2{e|=8Zioo_PPI=%G+U z3+h2yZhhBwF%p@N2=B-d)1~WKm-$a7^&y*2-Pfj+$bG-t6fbnM>zIs%=Tcd9w>EEo z+Q_rZ>(Q*&!70~6_ zOBg*qQ+sn`1>YNW2_kBXa^=DKY%_c;pnI&EW7qE~RU;K%!$aw^Z@gIBn5#uuMbQqz zGj7LuM3dpPS>yMC>tA~Gne0_!uw)z1hUc9Idv8ucn)3&LEcjPumWSQ zJAWEIA~WU>BNPo$L1v( zMURbpxv+M%d3@T)6BjZ!9LHo@V*;+jA23dTx#JF%sW!Q6^NQ1#H9Tn+{ey4edRM6S z=PeX3Ma?wl-m*?K85ZVy3>(w4$g`lsoCuCfYANvl+%I^)Gn)5eQGWDI5`{PQZ98eY zVSnbNIGNcfW%Ld_@}zEu%_LzxERiJ3Hon7TG=9f)$lhZicUvwM5JWbw?ci$m;d{<| z_}R5*5?%>BU9&m`zehv$ctsZOk}W!ZsNoqKCmm!rKY3_I+yL`2o)#Mi=O!bUSe4J9 z=*lT(qqZ%4c8j?;RL(u@mpcDC?ao3Czw|GX`PWoCR)~wXwIR3Y*CWG!kutH(dgP)@zN<>1)&wha1FJK@=z*)SBy4Bu`PG>MV+ zt(D=s=OX~M;TE^-M$>CMdQN&@$7ecKD*4L}<9zOIiCG<9_kP(-wOg%Z?-37kV69BO zM(*?WG^wRjJC9@ZR^6<+Td;Lw+!0~;&S8d8H#H8CJx=G5Ewx&}2@*2LNz_6Tn|^1O zKV`SOk)w)+{opiV2D@#nFMk+ANC$L~AyVxMP`hudJM{bd>g5($V;2h;77dEl&?aCa z^+#w+&!piuqHWfT8ERyzU?(|)ITrSHtM~WJ`d5yGV{%Z5kzdNIy+m8_EGo%gLvG{8 z-X{&ytI+r#g zgQ$Cp4q)8d*7igexzMh*ceDVdDyL?0lC6?Zk@k!{Q57@VGk*LkX5npP*(4QaVtdbZ z6k3M&f`k3Tg>)PZ@RJ8XNO6l{f$z^tfj&3;d5fPOK5zoT69%&7>1#OsR-}^LjFMaY zM2DF<-i(r96?>T1-Ol;grQC@Z+x~H`$2(Cge+^R|#wt)RVOt7_>!ip%OXsAo8V)3o zW_`U}2J^Er29+&ycrCX|?|~eYP6~vC-S4xwi47^l>w=k%_>K4EI|&<+tBlOmOJ(XU z7RHfb8?mdk3A%B)(E%Hp+Qw;Xm7A<*;4a%UUG?)du>!4FuiWja;^4vZOKc;feJut= zbT#I@ATUT+;0l_im-pJIFfRQ0o+;069|DVBaD&zVrM$od6-5iPRBuP7{!kpLOHmO0 zp6?dMA%@dOb4v^`&r-6^%SF!ySUWuPQA4^tIG|>Tjw0e7)i(QtOnh33Drft-Hm2^qip$^n;8H zGZ@r`-O~M?wq84!tJ@i_e1;C^#VVf^*|m1R{MWS(+78WO$!2W-ZY~4=-N!5DSl3Ss zIJ)r}ajRI@jOEwk>3)M$I3K2Z8(e9N!V2JdozDN;+-fy;7K={wv!myZD!o zp_WYwMy^lzXX<4iZ&fwah;Te25nc4vkUIp)A_T#*kla`9x_Ng$);my^)$aZ?`u!g{ z!HdHGn+j8Yy18Lw?qh(&c~K1`Q~KzntWCzu{1P{awuvE_n(`AZEwaRKx3yYB?u6E@ zEDS8Pd?Mdg{@|@P9v79y-%GX8qgX@_!=e@e{WRnBJ?vq;r=3 zL|E4hpT5mR#x`2g8`Bp`f0Lcw+k(DLXg!Q?OUHm2(|cMdMl>(`u8TP6u0MW#*}cvA z5Iomq2ntdxE@86r+&AfWmaR#*F#n05Ip6 z+vx0N{ufJsLJ7XjXHz{FDhm92CnqA+Vt@~4D=;d`vpxcp9K6 zov0@~4!;%xoQcf@IC0n*9r!S!C?EJqR5e!=bk*tG^(j}^a|@J`mQ}rh<-!a!N2&n` zJK-mFv~M8V<>+i#bYQMpJwgwGgbWyM7K10IT<%fkYX#Ngr3_WEDCOeEH^yNpw>Zu8U#Iw~UdrCmxpMdyp_okRme2WOd_M_3QVvE(xv<4or zK%uDXHs8YuoNAm$2%{-WT{pm}xUon;foWMFbQfSPlw{!@Y zPxDE5ub1Fr_>6e7lHB59W!e;?GuK4MgZXn)w?tfK9&CY*$@VoLsXE+UNe=MRCuAMy z4!`d%Ch)d+J`a}!T?AL*eL7!Up0;A&yPN}liHq1 ztLZoQ9C1ZQlQQ~rm8yJ6WeyYX(XybfMud#|3tugRR7uis>s|wv@x?gsZ+61Kr)UB= z1C?%cM}z5?hhU6}bzrD^w%BQR*jM?JM0AWbXYCHm^pQW@zhVJ9n%j=r;ZSu?**MZ0OP~LNpaRUG62zdt2ucJmf$^Ljx z{(2|v%s+}t!QB#7_WQ139^))%rlU!s z&Z^<grghTGL{ znOFXN&DHk699v>#9>fGhf8j1M-1NGG_K1)&AAO)2YMWlhr{x9u?eDq&!j|UPXcQUS zHPO3AfyX|hoFpiqJ{}9+}r(R*2t6u3ahZP+U<0pr^4cQ76(?upLkeZ%pa3*poPwVB3Ff-@y~4l8wU8hu~@~X582m^hz{dj+@L+bN=tV_LnYEox@I1q zTjiVwBuRCsLTt_%}YYSjm_~)q?0s-$1Q?SN4s8Zev8dvc9l-QG9k_i>;YDMD|A=`pv|(~+*BCDH+X7KN z4X5D(Z@Zp+uAHe5-M$|OnzLtD#0p~DQ6PoazBh2&@uy5NSEPG2ZR>Y%5K_^jEx@&I zspA)Zsq5%ixF0X>F!8mf5u|^mOQVm`<@7l$!~mKAPIinlZ%so1HQ}nwLq8@@LqtbIengvK89>Nr{j#-?2^UAVABFja;52Lj9^01G^S|Y|Zj-|y!w&Z(=^ZjHN>c3^W6vyvSV!vI%EN{|Sg8ean%vZ4@9_KD%;c@L|5DK^037 z!c$GMbd`A#?O2-vo-oPn53Zc(vk%-d3PGmA0&Kelb6kwa>hNm?Q(hoA^~)+y7Cj}C zB7uM|!qO}XA;zvvc~V$1ut(Bz@zpoM2$U*ExjFYNsG?>BW<`^{ie#(Ot-w5JgYmYcK z(VM@DP&6LDs;d)5FX>Y;^S$2hEIjwq(>2MwNswtoaA;)e%Azgu5h@!CBeM6HY`SmR z`t8gMVubM5-xNR$BV4dTbUb*GCmiwABa+AGzv16F6JIdZp02Ya1bj}(MP1?xOGwbSDfDaFn(mt6^NyqN$wO}RxzPy6Vv zYKee~%#HkhOWx5R1jP&hN&Aa* z*eTjqFTEU0YP^DBk>V^|FB`Jszehd)G%d*eY|K|?8L!ouN9D8K^UQL=;UPk!x*ejp zT+^zmS@X_h9$B|+CKGG zSQ{4t5~;wl?^f_`j)vBjmbMW?-!(1gV~>&=S}H9!HDEB?(1s##nPi-(>qj5Z$J_yH zbG4w!A=utewZ%mu!-{_vHZkx+7cG-iW%1z1iAzY>-X)wOE2~o|X9rW8G&j0l3xzV> z&hO;a+*vIxN+Q3~Bj@hr)$_!alNeze+Nx%rGyzwYbM$8vV!<8h&4QUB?*2zM+!JXi z4IyyTaf9@$so)9JhV?jk_o~#G-%g&-YPWoz3ys00!|BgCO9>!r8Ys43Z8-r6p(-Rk zgtr{5+I ziUU|1V-2@vdaBvF=)JEIq@>3@wyZd;ufy8)%+@RI%@65S>i~IwcZI!|2+-RrUU2gNB)`5P@$ugO$Q4b1guTY8_RCgMatq&>PrL(nmv-wzHz_IjVOlcQaslL-Qu4rVo zbf-xXIo)Ve_Ch(`GA9YP(@?u(FdMu37~PNVSD4pu$C|-zSrq+IHyJ*Kp@LjyEGb9~ z7=sjiCpiQC@qq+Xvb&Pspvmez;CW?(ar(+5be)R3P4>B|&)r272wY*TiIE>CAoZzETXtNDx>NfKXf_&*)M;%D4%j|OQ1k8Ghr!Ndh&eZff1BB0-YT5 z^NX6h?Fz+qj!Aixp#y>Bo5ptPbvgG3)3FwcFpB16%*{Gd>H9P5z)Vg~uSJ#~Q*!lj z8F0zIf=ga%89JF`K1@!Pw3YAsx~Dilnu+;rQH<#{vdoMQ6P4^3eR0o94fi`(a=i7D zazAxb)jB!o8;iQ?o1DX|cOBv%qd8`FLi0#X4R#C%STyQACHR+jPs8J>XoZO*37RlT zYoA8Gys7+0R7qo9)+~TBwj7d3UtP`NufspnQFdA1S;yN-AjxR&Kr7Ezm=yszbn4e5 z%F_okgtG&G=0;RK8&caMyTVufbHWFsrK-Lr6B`r_E1a6Z7G!^L-N4LIvaIjXP#IXj zIIvsN=quGcGD@LU$oH;l4|Rd|YX&=39UI*`huX$kXV;p1AmAVboe+j5C4S`PR}9}@ z(anOLT=FH(yepWCj1IvUZL4DUxDm;8@vzF=)3(u?b(`!U-)IcxH7`{gHb+NOT;Y%% z5=^{Tbw}1H-%=+4Hfg0lyYlex*qt^^21R6TQn zq)C`i+Bo(iqgT95)g?fe_1Pp!F+!X8BF+NhGpSxjtaE$nJA>+UWA#KS?qTH74@^8gGojPJS zLOWA=L^=6HF|LM-72K%q)8a}Lj7*PA-a&1;2k4`x=}oEU)fPpVG}smA(+k(#re6z5 zTX7>D8R+JQwbIA2RC6VvCxQ_HtmkgZu}~;A2gVA!M}CZ8SK8eWB);NZfF2;Cv;UU1 z_-^4>73(sdF5e>apNJeD2T)dX)x4ruYD`H>1Ap}lfc^M~`Pb|wnVXb=0%)B=bm!p_ z)yGCRH5ZaY%spzRO|C<>>fT_``Is3h0sWuC7E-T$@r4AnPfdbz1Km4QD$Mf`JDnf* zR84zH^Ck!E}Mq?6Fu)c*Of6~z^#UFmZ2%mA-<7kuR*4nvupQTOcOr*lO+5B@OR6s z|5E@Bt>|rNI4-v4$MBW%g+_kEUC3>pvhc_vPM?VSkuS;xNK?uDq@IhjTslgV$O)e3 zU|j*65q`D|`uHp=0e*{gE>E9>Do_D5t>?q6gTFIbpSX36E#xygA_1o>~}g>+pE8d0kYl}^=e8}6nx@PWKzm&diJ+L$%v#} zP@1g)@p-WgG_O5&E#wF`0+f-JV3|4581-FJ0tfPvEfp3{HzZDwd@%Ut!v>;Fd)=T2 zm1eSgtkpwCb9=oZDkh74-(CwDDAHg&h~Jpa5!FZk}eW_vELvv`|pXPE3EMLxvc7X6eO^L#`6zEWsS zeQ6EQn6cu=(fOh|=Lo9W4JkRM-sIR#dnsstzM8%C8(yU1<$Fz*KZ?C(9_6oi-eVn^ zISa2IK_y;S>^f!C5^}DwGMyZF17JzbOP?5OWH)k*YCcPL zRH{1-zn~f&e^AA_-hMT^cJFaj+tFzFrrP#NIRgsn-9tc>{n8;<*w~zl- z83~|k_DwHDD+t zC}i5*&GB}5#xJVLq$vZSKAx#6sJNT^$`Nm>Tr_Sn=F3~CwhzR?11D|+g>VADlwK1~ z?DU_0Y94HAQ~aJ%IjQ$5)qD^2hntzg`zDGs!g@QukC5P}E*2eNpMKzJw@*{)XPf>u z1p3lHVvz|Amn=~&z|8+v-Jv69GK%rIl9r+3D?W9aGf_;0IKlLKptI4U7pndq^qf|( z-+;Hm-OAZzlQ*ixu#yHhAWEKjzL!KjdZjG4zOgdwr3~T$M$fDOE$J8}Bl*@kR_~t; z=>V|!3JD)A&h&b=l4fa+s@3Eud?AqST0Zf{!a<)aDcc!x_2e#0ctO2f!9%x(XH;0E z|7`1(A0g$@;rvLl+=iRQ>EZQY19iwPE4A&AWZQFwssqQW%H(;@Sce9%RrE>*}30yGowA1#Vzj59gYDO0Vljmpv z$A1IP=aYc;>Ofl!O?t|OG4Oz^ft5VUbh+7R3>@y>`?14IZ69iEHCm z`1z#3?OS9d&(w{K_y7-=&S=+Mz5(noWjHuFmAw3)ky5JatFa!z7s8dmri%`yoIN9f zys^ox^$Ng{Oi%UGR{fc?Fk)6`Qxeu}Jo8bPX+CXgTWF|nP+9iqyR5f_aW1JS8a+Dv_LM>p$s zFzUl1a4g{4THY`ONGaFdLvp<1C;s$#=DgV8iK=I!ws|kUPfRI(4P3%#s7{iUM7TLo z?bO3+lNNZ@e3{c^v<{m@K(YF>s8+r@1MNKh$=ot@()DLBt6Twyav!j}Hv=^HZOZN^ zR*N+oWli>u$?|By5>IeZZB4%lZ;E5%l~hCoFYWy#Ks9r8x`M08TROxR;dc8|3HCCJ zVvP7^-kB29vk9hm`wqth>Hobl9}op;w!K*1?WmW2cA1>2L{R10IiwX+#48_gtFoIi z)yPe+Rm(VVuS8`h0YfFZrH|Av<~FR>1^R&uz`&*QDCf$4iPumSY2ZXjma>KwzaRj; z?el{tAOmE$+1ZIEM*pZcZ>Z2~IXO9#&o8JV-CDPbHL_HfL2vfZboV8GY&`p5Do;#q zjC_odll` z(7O*ul;Of%jWc__!~j%VsEwn>iDLy@1~Zh<79ELJwjEmvj2q%%|s@8K-Lh@T1+-#>@(kiKy^+(>JK8d%S$K2}#Gmb+GEH z2U{8kQ4NFfrt5QqPC#6c@l*Lj-S5w5%sM4D1aM>i`@WUnTI>t!OWFdg$iSxYWpo|B z-#iiqBqo<#*Ar5qotMFId{k1-|%#L)NEe<^l z*$fiG0oTCO9U3L$h}V5ye)QZrU&y3*v8k-+hAWqan?$>%(>{FoHuuv7V4y>>2SoZ> zLG8AZT=3;bXrZ#7@T3)R>s<@AjzKr(dQVin`DnGLQ@@rDYvN8Df2RPc>;QSkz#TF% zNa5!z;WNgcM?Zz+9lNi#c(yUVb<9($V*~rOY5eA4fbz!8gLv$~g}f}~S3TI@&{U4) zE;pC(FHRI!V{dPwT+&1!)}Dc?m~B$vvEGW)`e(8@3^ehmvW*jF?jh{08%$^O{duB z|6TZlV>2|bKJ@`HT~elglljuho6bv+j(oN4w*Ac} zsq~T(&5s{H0`q8GUJTRdl?Vo(-*@!Db;_=>a_Sn<(+*^Pmxuy1_lmI&eGbuEr+|wevh=^|S*5J1HV$%OdbXl#>d{GIV zciK92mT+%R_mftAV4w2Xjd=&eri`MZp4UpSE4V6YOC78?2(%dYoL zp0U8QWYr5qqq^0(!QSds4K)c?0&%Z5;03GheQyJk++7nNeewT309K^cqu<&ngM0+S z`PyUO=YSVf8wHLN&$GG_Px9g-03JGiHES9$;}__KD(dG#d+@!W&-TqtX~k&jk)Z zw^5Xc?-n>iV6NGx2aMZMd&AD12ilw0K|$>!rCJe^RnE=*W1hUzsQwHk+~qHg9AA#~ z2%9p2LN`#IYyO^buhMTGpFsm+V%(yPz1YZ{+6A`z;SR!Z$t1vVTC`roY0Y2+fQY8> zwUrd`U*SDayM&SG4pc}2B1q68V3{E?2MGGL^%nJ-`nzQV9c}$$ zFPHJ>3(*+|uJG~}R%i0FF2?3I$Hq`7QGyWSLh_d@Kx49g6__7E2Hpy)zS1@C>H+3R1Hlih)P7^?LHlSZ%n4EHNFq-5Z|$ZFJoPP&M2y3p~PJNlO#>5cvaA zIkE{#$8R2NdFHY`S2!U%fG?%?I;FVuD6UiI4F~`O^*4a<1CDyLAJQg($|u73rX~8< zYgMznJZ*4ewXu6^w=4Z~Or&UGM5-<<>koc04H%sf8w`gEKlh*53>3NAg%jbgxN z{#~ATiL4T&m2kcEqF=9yP;*-x|9p`%s}a7#SromNbk(8$cxtidNuuN4k*Xs38ezqU zDam6*%^;P3lf9W9THnadml`tC`0mcLbpL&PDlA5FdxlxB+QX5~`{}T~JGcytCh5FV zYkn*w=NPonw*~6G$1fXe6Rj6M=R0wfYE2BgCh~R zH0#r67QloAO`?Qj1JKRR2dufp^yqO27F3)1s+)X;L$HQu59ur+XaL zktqa&kR&kBzk<4l0H?IwO18ehHOb8Amh^79C@tM@^7jAWF|iAnm+_|Z0f#Z4W5+nx z6lLycE;j*FmRBddZMok|CMdpB79w*ofU=y^O}lWwrDgeee;Q4=jA++IueY3+SKfP_ zkuS;Ba)nC0$HV|A{&F@;#UVjK*(omOgi5rF!5ukl+M` zAXFNN3ly(iRQ1e9DN-tq^i6BnS^O6_x&=hM&E=L1ojTtD?gn}ueZD(d36g>4ROI=8 zI4tsm8gG)?$ymb?cY@4CziH2nK#VPi@v69%s=M|MF3g9jJB*O0&%Gw47i7}XVc=Vf z=7PEEcg2V!D3a#3jl)LQQTbh;8yoKYOOX9>bg9gay)jXr`2~~BTlNjtsW=}LhMJAf z`CrsnO7efntpI=ff>2$bLUF``>iR*>A8-PqDKJh;kPSN>5n=W%?Z?(hNvAoG z1cOkr^m@qV**uO#vu%;hTfKL79&0}Iy?Z`8BH zWP|e!a%BAW9;WW^NT(L#xt1D&dXfV|{#o_51oWb^vXe7& zH@H0o*iypcoy6!4Z$5(Zx%L1#yN*!VjvddcXT#)WMFB@5{7ZVM%>pf3_g2cF;HMB$ zg)K9aIVTh~p;m?;g~hP}2j5_F{Un6733lT;bIHxvROAWtP}iFItj;d)8dvO~>so2Q zx^L5is@!7nXqZb5EQW%f6_eq8Z&25!;}XOycKDHt3AV+x=3lC*Y_q6A-L+xKEy-<~ z6Kls;l{@k-wLmQjLusURO%u>TX)|ix@w_J>kPBQ#CQ-WTKsJ)YlV0DrLt9-eqc!Fk z__a2EeuT$N1mk^ygHdFlw5AgHAlC6@z%j6Vn|@UvX{P;+R2a>$B|itFV;umZvA}`h zTX1^`;N$_tBhR$&Dfo!)D57wTXr2(WnihLb!_C{{S&J_!m{pR+EA@EMF+>S(z62;>F5kfDm$=>sP6c|hJH28MRnu9P?4%MlO-?$$u;<$p zB^&+DeGR(DF8~-(N93(vAljV{Y!8#XIORMx46ILQL$NbH(zL-~s>lwgVuOFo6 z6nXXLyPHcr2C%T*?M>Tk&^4Q*k(mhsLxz*?y)zl#QH>?vr?XNn8Fc0m-_!{eX6tQ5 zG9C@Y(sX|ydFBIVANzS~fQ)LUB-D2a)f}cY5;Z+nRQs}|I=X0NdDC=#OOVr4%Y{oBsJFelNZ7ZWX#`#gl>Q;=H4w|*Gs_7BZ$ z&)t}-9WC#VtjJ?Tejv&&Ee(MH1(XT27!Q*3>uxaXiX1_k9}<+2Z%p_cv~)&X%D(#V zVgUn5P*g18n-om32Yr0SqL{Su8CTF-hjerHjk)Un{`rP*Uw)7;zx+r0I?O*!Q()q2 z51vEv;5kfy!uYNu?ZQ+l|t+Wc81Kx{d|V%At~KpS>BcgI?62 zKjx>oX#b}YUV&~^r!`$laH++a%Iz4N|F&zI2gYMyk3T1IfuatBN8M? zzp4W*6Q((E=hU;%>RJ2P8djJ!NU>N^5S55Bf4z_{#-4ru5=Pj)w~M_$_aUH*nIb4N zMcplqa;?(u=*bAORWmA#Ky_lwS@`P5X8l2d;r4hz3u6<875PJclR<#h(S%8{^qbHA zWB!E&I2lm#G9gsHv}U8`?*{sd6}3;pUb$q)n=T=OVaKWBks&cz|8UV`?GxEJG%Z)PL8vlbiqvHHT)7UHqIul`$w-6n(o9=5)KN!{F(paLKNmm6-5%2q&1!w+x}0cN}WEH-4bR`~coujHI% z!ohUd6ZEno!?Z`k#4)0Ff>Bp+MP+h)J)6#*(0`r0-q{`q_iBJg-v6Hueue`{w&-7S zqH3e4Ih8+Cajvy<&IxKnmOm!{*_+(XBUmA+Pqkuc97psW(euVvS7Evpw!@*{I4> z;__JI*aaqf(fDUu15Hf8*GlPUia%3#Sf--OLh$o(WeQ0}A_)i*=W3n_NLdS4Ux|v% z&L(Bc@1cbLKn0aj87WUSAg@sRpfeWrjADpp&x93y3DU50HpaLvkENtLGZX4NsT9b! ztNqicGa4JquwmH2OZwNb31o>=g$XPmgSt3hQLtqIdP$XiZ9~5L8ybtFSpxlbLv8k@ zW9`&IZcQ~Sr9fn}5iYHmt&4wLUH2cWB__1vzX$O!SnPI`M$xB5kb%{Ed}NEr0tG$U z&tgEs1@0uc-J+EOzr=>72)+APhg8@srmR(lM)$_TAaZx;!}+CP$9{onGYV)H;J zE!r2EK!&}p^6R9KGU$&S)xet7#Kt?Ou|THpRdwi-R_OG0BVsaiAz99d6+fw|_0qc507L^e&g(=g2ng9nfqeT<9&O(Y;d{AyJovZfLtiUwGZSqz= z`9dAl@j zzt|mE!D~)4G>!dAPA0$j_|y&PD$|GOXAGaQS+Z1|TMK+?0N~Xb>eyHBxT(&4eIoyopDY zzplpSZ$oWkha#C2J-c?-l>(A6-tKS?{+o&yF`DhP9EEw%xibAuKki?9L4M+zuRBm* zojYfYVk=e}W~w2wQk8wq2JUS;38ZvlES$qNI;9^-L4+HC% zHaEACI_w4Z;iU(G_(h`;(Ic{TP|TBqe3Ul+L}nuyyrs3(3^XnxJb72{Xy@uaT7Xmz zU%Of8Wgaz8uE6|cJzU7LPdsxDY2SaX5qzo+AZBl;{+5CLOaRZ48d!Ftw zqq`!IohYvPGi3pZTX)_6`DmQQ>GPF^wW&Sj{N0R;`jPZv2_l-`vR49b>ZbsQoXxB+ ztdCVzad2!^#?RTB&e^`5lsoL?`FfBskwj!b$X4<~Ald1R@o9w$DBs2_$$RsR=E|!X z?En2Nzd$XXZr?v=A&O8b9;-MnbXDBLfw@D~@1xYsZ12gF*|ioQz3+6Z@fK6;48I&Rj70GpEV7|c( zK`xrA6zSNJ(8NlicT1#@4D=||kF;&nbe2XJb@<~1AxzdbaYEzp*qC#MTZ6B9)$H|7 zW*I+^n2SaZd0D(bJv6x5z@hVUdAJX=)M*lFsh~O8mcxq2(=}=Z2A#|sQW(q)pvq@6 zGd%BYo21#EV5LE<$nMh#?%?wEsOh zh7%ch)%(pwXyhmx*2P2Jcanyw`@?gr`*NbX?MYHs?I-V`Y#a7#3DL>PT!LY|;WHPM zB{p8KimANjV_3{?)ixfd3>FtsEYvVsdZ8ISG<1*ik?~5aGF1mz)Q7>YPXk3inKk&h z^3lIc+o&(RWU+pF6hJ+OC;(YL(XPfdq#_@ZgKh&y!X@(Sd6no=er0KL9dNO{h#C_WTC4S0o*_*I3!U2&%CMd~ zWr4;gSPssc0zj*EK8gnj;YGNY+16%cGMt z@tQ8<_gj3jz0S&xk)q28zZ)!l@fb(#97(6+NVB%_g`$_t(RyFrw5d#YWc$vj=6p1K z-C2dDE$?d)hsOdu9&d(PGlj8LEo?P4oPCsPqf=?SJ>A{Ck~Z+Q$u%KY#EWx7w>6>s zJh|5CokZij8*9EhqWjN3gQnZ<(1^%==qyB>3(NdX&sW+0;%wI-Lzz}ri~i%ioVjd>gUYn(a?O) z@0SAcBVt+M-r+CKFef$vWe{m-oR)%I-L7KYoo8sS%cLIN^sY1o@+rnqWu=0I z$W?q{`+m5C+G5doGZE;{f5=DYKW=VpVzi>gN3-wQyzWeoVW}#hpzghH0zY#00dyZ6 z5pRY{HY2J}!!t+iDF+?9Z1OS+Z9*~%_j0&dx8?npDs>bmqKcE)hU-MhkT3c3?4VNv zR`0DBP6XPH8l$7le&FBdk7U5x=97)TF~pnZU8WwZR8h)D4La{@B0`dNF*xt_n`yrv z$$Mg5XtOW-=M#>#Vw-((y+~>rBhhAltHS9MHtg#K?&)?Ty;Q!-k2>E!2vAjrxW3QI z|G9l89bX(K;Tq@$wh)hORubQP2H!X99}5FqB}#KYoz@S;rXBKV0Kx2=J2=pf?Gr6? zAe*NwPPxus|FKTbif^!>@?PnOLz1+i@7)3vW`;&G@V#Ly>!Wm5u*jfDfhT08i%cgo z%wigNxrPUMmMF(s8}h_$XIWaEq@iT=812)qmFE}Vy;t*TB28Yw9L~ZB5ftzNk;9n{ zVZfAjll}Ygf1t;6mgm8sE^>bbcJa?FWy zLcN(}@Y~cAUPrh6@e}K62mf2>|LA|0`%uD{_x6Z)dnda88NL&!$s$d@-;eLysAn1* zlZqUpKp)l?032*?45aSI@qSwjx)VD)q?=jIX@?aa;4db00YTGLA19Eqh>)$V^JlB0 z&;RFi#MFW1NVL1REP?#Cu|fG;EmHm{0DJCRAz%_i5&Tw?W5hu|{`>d+#0F7rz#O6n zx!VY<}sYmmr5C7+0KQ;6Qf%2L2Yxj~+exJWU63j?Z44M{0D0DfpUZQ=$id zAM2Rk)4RrzcpV^gFDkJe8mM^(Ew{6at8dJBcO)!YfmfPN)=!l+>1`abxHv{tC$cY* zWXSC5>gojO&@Ia1l)K;G2Qa)zO=a3SOO$Z&!PUct*@)-hXUX)QK8*V_n>YPlh|6k# z>5J!VIwDqicko{5Ck}pv@p}qeSjhqMZbN90h7gh0?!vWxJc>AnXVUgt(@hDOIwt~t~4*cxwl zk-gR444_bPsy|Muz(Q3RrlYC(EtFm?y}H@}hys3AHrDaG&FNa9^ONfIOThil<^mtw zIXi^M&t4%kAXb5fhZfY~y_fUMC54QLf=qL_mhnK4 z5KHhrA-m$@nh7LeC3jx^Owq`+AFI7>)sz0*_H8t6`u#-Vhqb%Q%EefogzL|sR@CdI zN`1f+oZuC(&PsbT$!EEFVVB2TOn;zj3ix0w>j-)7FSqj1kO#Z;8e0Q@1jQi~(DzIL zfl+x_-Aad8YG)GpzKoCnPuv%_h;v8Y)*o@5>KVq?*m|Zb&b8HbS1wzgOS|)QJ(J_c z4F@YAma7KR20Jw>iJQ(-_x0-hYJ59D*Q*8TE!6m``Cz4U7ErJ$1W?e+c*h7Qyc7fs zcwsSaD@Ve!jR7)0R9+q?#D;XF&CSb;rj*>229gAcje?IK-vsfZzKQUR*V$rAB0!7j zn612bo27lSOv1XZlNW=C-{5aG7e1l{8P21^EfiQ?zm!VrJ-4WIS<>2LH-w0vojh~t z+ZcXb$oo~)OZE4?Tw z`d7KlbGi>Z20Xuey=npIyVOKnzE$2FF{^23fOzHgdN)|f2gt?U`&d%_=nKiTL!OO*w!sM67*AClKK8n9fM_Y_D7e^6 z7_`R0poxp!zX2ze#~VeryvyI#C_?OpZwLXU-R)YEHG<{L*~>TU^ZkLIZ31+=+Bk&P zrE(xt#2I1^Y0&c ziR<7`Kr$uG4##iHT(BEW8se9BeaN`qM2IdHL{3@@pZ}`jU1ExgLm))Zfh4pqUc6X8 zmj#wiXH7d`zvq{s_BE_P3gUp<(7Ne8O}I(LX>Sd^h@-MnGA{O9F|Yjbl8&~-w}Dy* z6Ul@-UhMwh*@Xn%Mq9!2%_TcmY$O|LFsd^Uds+_vt!(U~xF`XLaeQYU$5 zmX!2S_=vOnl%{dr7m-k>qIaK-2ff2|Z_>55;izB3Vxj@}Aws3XgjQL$z4sCM)fxM} zwnJsMx1A;ws&e<6GwX&vXgSoT4493(KQ2=_qG+teAB?V1)i|O65yGpH=UjZkv(=oE z&Uq%Xc7<_&Q=Wr^BLZ~d3e9wRWo5ncmrbu)tc6lYZW>FNr9gR!6M%Kj1N>^1l%U7U zJI_ceBkAjwTexn6l}|Els{THbbmSX@j$AV8)%D*84ULO-jnRjN=!U%3c`2&Ie{=c6w zVkZ6ZD=9#yVL82;?w`=}MeZ3zO-J1%uo>BDPY_ZQb(^ys^IH1Zunhhqc1OP;!C%BB zuk~eJ+4$Hg_%74j;kH|86Hpn^ruDZ?1NficKztb`Xfq(-L6>w2 zqj%*Oju!KFWfcT0_SBWBnOQydWRKMOB@nEFUP7m0vg-z8^w^NM1aBPuc5pP%at#De zgH}#vw=<)hz4gYxl!73&8?^t<$Yxd>)1jA^!}06VM7=qFcdMt&7P`_sKiLY@uDERF zvhn)^xlQuHm#;fdwM7t4GnaX-^hIzcZYS8rnOP`A58Mg};kb9?CHDZah@yPZoSR7IW}tUu^zhNVF8hk|8a67Jjz@TgT49VVLK zacaF!Oq}#~Fs{D5tW3KD7+sMpK6-iC>o*QapsqqX5(U}*ALiaNtje{E7T#MdR75~U zKtQDg1f&H73>pdP4(XO|5DO3iC8ediOOR4Pq`Mmg7TpbtZ!X-vFN=N7bvSwOmU(^grgwA3pC#Y05lRk2wV=-c*Ik^3O^02+nFN5A! z;Px~-tYX_NpfQqmJ-)d_ubIRi+%hJ>f5l%sg0r{MoYQt;&OUMnEPdp zu#87Krn0iKD`Q>^eX_bY0`6QBwrv}I;@E@02q{&z8ZJK((8Zz5wii**P!0qtKkz8% zO>Z0GQ7$mfrsChg;1`aRFLF71>%jv>W#qhyjs& zx+@A8#7x>hFF`P73ffm{qxt+C>sdKl1)m^m+-H`|RI{wJ{(+4Zx^q3*3x1=uZVR$^GmMRD)>^z}h`Wz0p0OV`%)xfOhEF$%*o>cVHa;rYYh-K8aq({#=MuAG z&3yUt#O4Qjjto)XT=a<56IK;&@=0JmQQjbZ#_RYV9DRg*Nx1pk@1!diirXv<6h)Oj zob>I7rkbr+qODRhGHimGn@e<*(78gPP$N&U4-d1#KM_WmZH{vyhT9^%GaBU^17F=y z53_%abXg~w4$Rj6w*J(MVqXK5+09vv0!~{JvD>3eD~;& zT7*#N?Mv3FX)vZsZbTQK!JC}*ffMj~8UHIPSnLlTojRTy*@Ny6Z>0GN{NY=9Jgd0z z;W1qO`j~DX3vjYusvI{Is6c{S9^S~J!2i`>w=@ zrToiH1whVUO7~uEK$=%kKhoB=Y)L+l9^C(E?M+R*ZmqFx6#BP=grW#VXUczmdLFMw z`$h1#crZC1F{ef!!Uu9NlXJd*3KKYMY%yM(DTisiK~ZIXGztNp(0^{eN|8mq9p!l| zI*U$r_m>nk=e`prsq@PY*X0ntC?^H0iy<-XZ-qu*JjC4*aP%~DRW~Fll7E(28ZKFg z2>6CO*qS|{vYw3$ zDi)jN?#@2ayy1|E@j@MN8V20Y@Vv%K&FT?S+{ms}xxd;Izi|Y%18d;Z=D?1mJG~Us zj6ANPt%vdyLr1ra==w{8$gIR)D@1WiUorL)69#-;3#4f>%UigqRtAw$PTSrKE-8;x zx0RA3qlSu-`$o}uhc7C+QKv`6a8L#1dd)w8Za>wVvd*V<33MXPZsvJAKIT%JljV+$ z+GOA#x%-&9$oQSPdq?%m*F>SgAHh;lRZow7ixPkpF_#jXyDKPn_SEB+95J{n{j3zE zRkyuxIYuvRdQ}e%-jOX-(^}jO9_y;>`B5%9w@-(=Gx<%*Zf| zcr=?zc~gac*|%iWryxZCXGdgIREm4gF+AduKFW0b1^K-z;u_LwYV<_xrWcxC5lG}b zt3IcdX~1uJF${4Y_-lT>UExgo@l~Jj66y%QU(S7dH_+!3{piqep;=t1Da{Y8ps}cn z!9S<*zp!@;yU=C~_2boWw9ItZ$A9j0Ys%o0XYdczSsipvYyoGMBDsUNeFbRe{PtTZ@ceFp0f3>zGvyaQp{ttJPifE zpoGXTT>lc+@R#Q{CdBDMB(`hv>$Kx1su0lhQi-$qK9N2V)@Ee(ap|dJ@M#GfiQKY( zK)!#~3m#O!u7kOR{SDLjDxDH}?=^?Z9r7lI*hJ2xSjKygBifuLAgnvs`*E7>qn3o< z*r@-0W6$o!>*_#t558Dj!{J&>@%0j6sm(r431ajE2A&iIT=1Z00Gx5>n@()6NLa(S zq}U_n-gK!=IhWjD;5zaJZHA=p$ zfOmmQIVO@Tntm|OIEVfEtt|7Ztz+%zM)0>>|N85%gM+W0SjvBzVa*LotaJd`9O`S|!0->){08#JdcF_fI*JM}jsqw7t> zC6A;_V=q6yyhUT-@h)kudZ7V1Wzr_rIM=Yy)YM?QxKS8IWom0}YrUTM#P#>+oCA)w#Pk~b}I@G9{R2K^GI#f zJ;HP@ZKStBPO5P5?7bhpS99gfu;{3VT9f&j_)rzc81K>t=j!S=IgUL=yFQhUz4%!E z6`19|w`q%P-v?x>;ynHF_rF%h2w9f-BDPyag07qQh6Zww!GnRTX1d{>Mo0jiy+B>} z8;p-JgJVW*Pxk2gMRW_tDPm_c(`MgMVh6S8%|W>cOfN(ogNdZf-&{3?FXCwlQ zAZX>I98A!o(Cu5M&UA79+NJ}hJG);Psd;1t<;zzX=qJSA(9`or#q<6QDvYq;$iTKY z*dn^Y>LN`agvEm|53&h8iZc5U?xsbt`pG}tVt+3A`BF#|Yw@_5^A~M(HUXyZuHz=( z7}!L%-^s_#MXipjJ_|hKVxOWNX}2-7Z4k|1P<{F0ifODez`=r^^FhSJf`VXi*n3kj zjs33tayd4_Ckatb$zHo)CRH8rxc&H}387q?3C;b}fqA9)aN%FK)2NkBo3AY#4Wm#F01!lwar%s(>vRxSPaE!rz3+k^kBz78B+4{u( zlwv6|rugCZlOb)ndJ?nGo5DGAO#0bS0%xn4j@r;}e%|Chz>4pKa5=|e-Eg-cV6Sv0 zCG{78pm{TG9JU>Ihq@BPh+1ts#GK8FCawwxx~?%}8prV8J4zjJ<3pv$ttsP1rML=J zTI+SY!=UB@Jl(xYyQMP(bj)EQH$~RMnFhbw1~Y2?s7kB6({W=0r57W0+4^?JW~1@L zH|h(EGKC@?KR=S81iW2zfT&y4Q8xji&Rv`t-3W%jmsM3}$7wUZJYu=qCiW^BFuUsX z*`3+U;BgsP zSf&5rbF6_APt;>+IXTKGrxj0TKR$^kk@po*=Fh5@bJ;aY58spY#46g%_1pyC>$V&n z(bkU?8wr|?6u~ObNCoyfKi;1_8wTNz!W15+@!Yx1xn8m`cC(GF>Yci8L|6JH2GS#^o|wH4azZ#O_?FJG!-ePJmg+8kpifTLMEG z3qu;__N@||_YO)8x$X&w`UacJo}FT$X+*e9pFz`EKad*B>Nb4RRJG`MDp;GPS*eYJ z4Z%6Lr;x+7Ki`N73L;m^hs^>(*sCh*!l^y1&<=f|TQbdT=Al^Ta4xk4#+fgAn#e zHD%aTInYB{Q!pisg7I;wsQ)s%Pg8CMENA9t)Ps%L0d01 z9g29_cakkyQi%S`$V)^@+EhL)a+>bDkAp8rblU7K*VKF9kfqHu-2IWJKHTksq|GdO z=6o)Gs(nI2Lu)1%E$#P&jewj+&b`}_BFjV2u)JJ6D0TET5j%0K-<+U{9sWYzE4! z8Hl}0qiSe<7)YO{;|9WF?eDGrME!q%k~2H4HNC>#ueD)Br|#Q-^rKd2!AGTEc+Qpe ziQBPYJ=x1EEHo&gcQGocPFlu*2Ko5Dnuf-~8P_!r9ImY1938I<#GEW+VpeaGz|h;P ziQ7Lc%;*#k4*uTa1Nl!mf^k)xX2G45S)QB1eo6-YR_y?tT?~;iH8clcS6NoTU7&a+ z2q{qrC{^8un~&3+_XTP8BSb2>Yz_<*X5NMOqAGZlHgts`1R|T(9@?M@vQWVxTVM)_~T$e)KP$XX>9_j zg#&EYq+J7!(iy0J?|~V@2@j}5T@cakX*4l(r1rmXI7VJzq*=D6%Jc%!mD_ViurQ*6 zQt7qU(W6g@5B5%+bk4G_SvN6a%kKVhDV%EqQ09vHJGj(&y;HtRPg~t(JO1+3t4h_J z%Zr(=`$k3wAesyYht#IB`wPQ;@3UGzKVI}2Y9sDJtS*#psu^^q1g;}EEGK_jHgoF{ z8x@(h)<+vD((L6&BE0|SPXIREKHp}i&1+%a@Kx=c1A_|RJIV!VZT$$oij6uUZ`Lfv zsp)OljrgY;TRU@6#h?1|2-_hXtilF5Mb}(<%P2@XG|&o>xRBlp%cNb*q{>QuJm=sf zljHWVIg)!~CN;BQ=*A8+^=iIV6QQb@FgyDhHfFu1066x-#0sI!K$(+0pJEAyV~#F2 zuYSu7R1H>JM@KPuHtCkLt)*z!a9aI9AuMO6$t*@4^eROtR4F?6k|Q&2W+hW?ak?1i zxVi0fwd%?Pq+VjbN`C3Ag4xt$#gFSD&urf`iREh7;_hbEm6Hkj1dwn$D0J(;&}p8{ zwVVPLk$Xvc8=1j^ zltkAMRSg>_%N#f6K9)J}$~j;&SGD+ib7Zx07|(GSJ@K%!oF$(%!@nIL~S@Se(Dk zAs)tNa!ZX0dfG&ZPD_nUCPZECJ;c-u6&X>Y*aBgeQW>l;TiddjZ>yU!;=`hEyd z6y4*JIpDFZd{EB(^1Y9UCo~!SNocdO=GGVg@gmfE=QJpnVHUB+BRq(qFv)dj5UYlXSM*H1a24K3NWRhplGs~tnGe+bu_qo@n8@&o4qa5BOhr< z)3TX9dSJ!pQ_9%^X!iuDvmu#2x}WGv9`3(Dyu!D=C}x@dVt>(_O_G%SwVe5{ znW~jGK2*172au=1#4uB$se&PD@Wa7mG zLipP@k1%5}7Oy>L!F%+nQLl}K!eFZRp?S?%lc%9lS8{2U?N3c{gRBuTYV}0q?O^{pp9$kNW^8Ay(vi`R>{8hzEo_%8^F9OaS`2L{A5_9dZf-t|(=#`J9km*T42~&u9w*R0J@0PTZcj z$xS{wv}?eSpfr@#&J&O=w~SlWA_fMhJ>O?=R|Q9mUw1DXrjA}ujnEpzbk67B*qitC zU~-+UBwxzKs~VnASY8}{6eldbtaCE%mICFKH@rfKR|kh#z0+Ww$8H10F!GFW7lG@A z=IC}Yr!#qZeVW4z>ZU;}n?pe>OXnn`iIp4s_UM#^yA*>xw)S=x&Yz0^wcNi+ z?7nHZyXPTt551aoNq^~ZF+IvW$;Ki7-oHUTJU~+7b=lxe{@7iP&66(XG1}_p{+248 z;`ZMxs6!OD`zolXgl!hT$qpJuoHxDwVJx{@P(@x=W8BQ;^RL0ZBq39mD(?8)1fgDK z(TE)F$VHj&$0ospSPOboJ=jU7|jdOgec>i7s2pIg?H6Fj-eeFal zr}T^YJUTh&X+%Whp4H%QM6a`dnZToV9urS&xM2J!j5lb+eNib&OxPfM%XL7O$(NgT zg*i0|hm!-NMr4w4x9@Y*!$5`zhHuT??)`q$WsfiB3;exZ=?Zzm3S|SXt5=semv!P= ztFTmog(9C~PP1>)`(yZy+i3<=>QBEWqJcMfswiKfi)*|_^}Aa=wbVu?Kkg0_(?IKv zmNQfSZgV1sZv^-o{KsNdS5&M^%crSbgar>`^cs-xITR61H_b~m+ zdwr|$BkdHNcyP+qb9S-W8T@0i_bJvIZBp;-gm8Y>ZT4^fZrQNMJQitprqxX>ZB~S| zn7gS9tL1a2a*?0#Ffl8|v30_Ny_KUUspnF{Ib;EnL71cU~U4 z5)&iw;~st4EGMQ*Nf)QTGg1~8VXyfG_F^N{;wjK5g9A5M!XYEPf9Hi(>N)6{m~YFkg)>MJ>;8n%6Nr z(e3TwcjU>#2m^MaC?^lM#cV1S=Xc6Wk$3KK-8Xoi))<=g1>yKHCr8BpAn5h0;Fafp zX_+Bk^#hjIU*$S-)8=VI`ITX3vNy3ieBr6W8nGtSB^zn5wqI#Snsrs8$3!n4RQ`_T zabZUapW*SWBU+YUwnbcR_18IY5Eq#m#(&zSJz1ucx6Wq;4B>F|Es5`V*P;kXvR79< zJU!-DcM8{PlX38{Yt9*qRN`IGQ)T0P*5M;Am$oUF-#NK0+gZbL^kfAT?JX5*rt*+w z_4ad2n9&9LDN2uR$RLSVVUlR{4AGn`5B`qx(Qb4_I|e0ybG)3TIO7YHD$m zR~kZYK~Wp%xySai&W(KxDs`wMTDgab(a0KBDLxl_8WC!doopg zKeKs~MK-p@AEUueaP;b5K3p~enWx!$U9a7CV@6(UW&SS~y>Xi63h!KwoN1evMMeqr z^`-D@=FZbvg~Gk>TorZP7N~?bCdO|8WJb`Vy-9M%O}fc{MK)8UH>bL3=BYzOxeifn zspi|Ql}gdq2WGSk3iK4rW;xjLDHW8kC6I6KOgH5h=T4DYYBvw-ap=G-O!go?_KgIf zgg!oIx@M^1Z{NY_$82R0$c?vS<9^wDK~EJAv8-HM_Umn3x4U4U%7!qJFUE3Uh!KNmcBgey^hY%DxEjOgl7Pi3S(7||51$Iy!W1}D z@)urU5&16b>#D${M7j_VND#$m5S_X0=I6T0++;t9Y1&I(U8trR2(4#s(X(BA#yxzm zk^b27CObSas2m`(FvZ+kk*U4EJXgBf&SF5w*hjIp&IZW#jhM|Gh7zR{iIJpF6V7~V zW>bjbosdwxWS(L7<2Ghlc^ystR&A@FwS)Sy?cCMn>#L`Um!*(xC#Y5Tk`#^Sr+geG znfmf<>*|BBMQ)u8sNBD5qG01UUc zs8)kxE)cAnPqnb1-}ZKxkf{Hx`sCjNo3#Oeu*1!0i6p^UsfIHy%_1 z%x-ReV1Ed*f89zHK91zKp~&sJBibpy;bw`+!phR)`wPmXqZB6xu%Sv-4G{z;f(D)IoaNZ@~lyO#>Jp7$HX?YPsuP;^rl!5U;6KYN5 z$apjY%&w1VX?JGNod~1(eD4h^-2XFw8R1(z%lQ)9^1F~gT>ePusWQA!U!6Icc?HUT z)64bDf4^BCAu3h-%Tx5|SlobETTCT%hj$d7hIY{vtPn+~nj+%k;`mU_6d_6dxVPuD z4d$lW;OdtHSVRa4518wD%EZK^4aCB(WhhJBa)~46wEDo@bnkJo^(-Y=L`I!F@%OBg zre?G;Y{yz~$1~`Rw_HflEJ+s&V~bf#3fmd7 zsHgLzIY8*)_V9T5+Rzq67_TDn)I@ zlRa9#`7f_=X9?y4`R=iZsA#-SeNYUU=$u$(s3?6=70>&vR5JSp95y zlw1JhA(h3yl45=QfM!@bR_!$bKuDIEC9=S%TRcHLg2ttMnC2@$hbenjKg+Tc>K($! zjMvm0*WRi6x)AEPNX730%8?^MwJ$$BpH+D=cc!(Ki}M|oL;FWo&hG;3`+I4i1?Y02 z*-L*HgM6rgcj`M@giDSh=v|T@RGWiAj!Zcm`8 zSl*%uRJUwowP+KjQk;N3i9t_7nBv=5TTkU<8iVny%JXlhT4fcRjbM?>W@x^pCx}d$ z2Vp@l4w-;LXNcx|#qzSu{XJ-fTD@~wq&cx31wQJb?d$&mA2(42kq#Hv2$b;)Ki(}ynnXqzxAsF~|l zDkCX8`cYrhK#r_3FlwX0=(u4#D~*rO&PoR&UtYSv#H2QvJ$Jj3iV7q)5`jZzqmipq zf0cmKO1}z4H{ajg#E)>KWM}U_=X8sHYuGL0u8yyer}Yqhs+b1eqCa_lTfuaKYX0B54It`jyby;Z91}hNGlRc%l zRUd0eODtLM^=M;Y?ApdOW*Dv~+OJLugAMUeQ=^+V2UGO|if~@*N3o$9=qd=N*W3k&;wWT_Er+0$d$_36^`WS4N)u+!TjUa;t%2E~(X z9&B|4U{-4%ik^9X7J;*w#(rj#+)ZqMr@OOV8s}OMt)M{|ob_~><;da^=mLro&CObd z0|v}jBA!+u!26qV&P$!cuKK2K0K`EPjqJmD?;0N5R=X?JF6{0P#Xu}3!9s-j+Br!j zU9;q+!da#Ro9Q-w$|s*jE>G)6fum|m=$68HD9`BhW@)~%j6}~xDj*DDWK}7E043+5 zu(Tx*NFWlmNpMjQ!scsR&(;Bm3?pAfY=j>gW_OVO7-M{#>~U#g(nHBT&`kN zkCioE_)!jiSP*ED}X(dBUmDoMHuCweLajTd4+wJ zWiwww99+g*J4>MOY$+0ay*s|9_h?Y`mzx5_cG)s2QUH(o`RHpjBD&JUP(ja{fBY3% zIh2Nuu!o3zc;L`(nE&>mh=@q|M1y~32qF4)iczzfXiAA2yf)>G2VTEGcwBe1PKp-| zMs?8iK<}W@^7(N8Rs9XM5{`!| zZBIho9+aL(T<3*ukbwmz{USiIXpemP@});$XgJ>7e}c%vZR|MSodDvA`M!KFed)Eh z1{^95bWlnK<+M3=5x94#6hs~q>Ks3mc$9hF`amLx_(>?IVIhm(dhO`)5|RV}`(ajb zNq9v9eZKv_#I_4CI_47UGKQFLVidUN(B2Kw`K8yW5cVrbHvbQJKfkg6{}alQ|Mvu) z&0;C?OyL2-`e9_^NnSOg&HGfxo|Z7`Fu?|XYIOwsVq$nRW{c^BxzRxG$ltxIE8o9N zakw1~;~}fsI{e&;YFNe=?!y!W#J)BT34fsRfgYQIt37s&<=Oj@cIfR#uODV}g3YJd z$Pz^bcIm~N14^O4Y6Mp!hp91F(dgzntHESRP`Qq>p1SRf!)xz?8c`%p&+%dhYV3st zs|-)OHL3;vAnD=TbVjP4SkiLVP5_m8sfuaj7FwP)p0T+|Bmm5^gUkA8 zIQu{UYW{y0LEpVG+o3kL_&iVhx=Y+v=)MpNq-qJ0AYWVNq~7lz-_U6q4(A=bJ=UD% zv$1M9EjAi@S=XMVm@4G)`UnXv8+ad0m z4`yH&-F7q+wf`1|+n3#0;(hD{Xa!HHFJDAUaeIELFp4v|noB+6#`z8U;G6q4?fWsW zLGLm$*}diy@bL6aU? zQ*cw6XbwXePfP<(OH0D9Xv_`G_;QF&Pn6$#nv?k@SxPngT;2H~(b@**?ykb}!5{y? z{~MYE<=?PQN!@2HFc}EDhdwJ=P|oZ4w%34>-sE}Fc<)TUUx~6_P5I54C$$|oQe~Qp zNf9$A!jhCDDs%94g{RM3K0D3U#BXl1v8Poqx9vE$(FOi#b4a4vA}6QtL|JK{+MP<83>4T$a9vSz43Z8m z@;BDN>)Xpd$?Md;WBf$KtNLI(!_R&$8D~+e%++~!_UqJz>$D*?bGujwJ;@2tDbc0X z_0i!+30oIAItbrPU>{IqF}l*Bb2_vRA@yd+JUtg)@==vGB3fiE1fO^(C0HSyaV)F1 zun#Z`7wXz}waH*`o@1j{US_EMr{YF~?OZDM z?gy3!wD=p~0&Z?bRz_oycAWOxsTsz?Hg_ta-jwdfTSnzz#rwne>uU^O>FRKzRYpmkg8wEihTbMnb=8qgjx{|exb}{q2T{V#?@Fx6+qYwM`ms{h z)IsEX4s#1DEQ?`Q#*tr8T#Q+`BUA%#kyc|W{~jWQwP4h$Gq+q14yit!<=+yO;u>C zr86vj<|Bab^}FCw+%MaKFk62A6xYdBHr@yi%h+$d`}EeIs>|0TsmkxCzAaJdR*yo6~b$LXRfn4Gwk{&E$d1hTPfe^UwsG5Rjqk8lYA;>I>hQs}=Kk`Vsi^EiZZFc0+@g`$*tGkNM9bYv zQ)+{^>gGQ_(v2o~Vql*FknMgW+l-5V-AhD+mN=I0wH^B^zN$&&!L0QnOmB{ z`4%4rom*q&S?*GwcNLH+Gkqh}YHB2Id$hZp!qoP;}8v*2&rs$NLUa>d+!} zh<}{(TH`CJpzK<0pUyO?UEo$Ykr+-jk*bz2a5*GZep|T!XMe6Pm{cuh&sDjkxpr># znEe=GF)CPeglde~<~QVL+>gg2l<)gaW272nC07<>f8xzR z1~QGS9J}!n1N1s(<#X3_(O~GaENrNgelrQEhVymTucL-kgq9x0+uth!K@BATJFhd&VcgKz@Z`6F?UzWoAXmtwrdr!{zv>mo`cQNDPu z1RsPHUNdd#QNcpPZ+;h%I{J@o76P=WTq0xL0wfr?TNBBC_G7&uTDkO*QjAPM88N`j zKYm(fh8qYL6uUW$emF=Xv-40#u9GjhrE?H&ri#nx-YD9vL@TIcv#n$2IV~)Hg})HX zuVspeoT|jhM%RwOWYFrQ(C7$rb+?skZTYI=l+qw|sGW}8tzWsfCRJNkT72lF?pwc> zsoDZ`E-b9zAunFty%Op8EdET|>-N#if<7dA>UQ}j#ktjO$qGjFh|-=@y4Jn)SQ#UT zCEr4(crdMg&e&TIA>idu$`N0rMfwch+UYg+U03W8Js)Sa9IMN?dlV~r@gVkho!fys zOSr&jk51XEoL_l)Vp15f8!`G^EBJMRQ>bx%;DRqf&wvB}mSR|%(K;U4@;1e_NCv_F z4-1XM8L`@V`d3`0%%GpLbulS^A+m307u%2`N8NIn-GoFM_TWs>$KwdH*gSiNf6bze%_Hf6eszA7+Yk8xe1ZTncyFc+kh<{NZk{^FK-x zZFa>?G0e*Qoej_`MmI)I9c~FsZjD3W_h7#48}Kik3qNG^bZN=S(B&zU%uUSDMWO@E zz6ez;JWOll)gTk$77u>kG#C;26VdnBsh6Y4940%iQh6UpnOfwPp-vv@aXS|~M|_?F zc~MaG$Ee`D%wDkPSaQTP+2(shn(5zG&TXoGbv4uM;1&7od)~KGEz^``7)na>Nsyn- zZaw@}-zbF~>X%YmN_cH!Y`q|%vum{Klz8(P(s7oB@Gz~3mp>5}PWwZ6l0jS~iR#ht z!iSjF{aXvmg~qfTkInE7+}!yB!p>ZYr;u7%O2<{%^?~y88F3DY97pU784}e?1ClqY zr88~cNp~Xqc!mwm{)@!)J4+VUz$>?m!61SnGWlXx?;$;k$@+DGSr5BmjVqsC?N?2K z4%uvMI5^2y_j=OfE~C%m&o>Wwi<>35J=zgNf=pkd=GIEwd^+$*WFkD*8KJIrR(s z!26=HR4Y)6V#NI*U(WqphJ)CnuVsu9)dLcF`%1zzQKY#~k1GyYz~%^2>R{rY zyWb~Cr8sSs1|sXi?j_a*Mvo2ZH))N7rgCM$j`G<;xWeYC?u-v(jx|+KTm)f(@Wg7w zTlDfVEHI73YP_|L1~ZgtgliH7O`X^IFnkdb5r#Wzzm=fQWUu$mxCfsim0HgkQL?SJ z9Tpl*;xQ-n*WaCgC$;YMmFHOKe3nJ!aP1SL)_(Gaf6|i00KsVOi-`0ul6AxC)7O9W zC--az0=$ydHvN9-WOYbQI1NFB3kf4wa%xWdOOK1+SLv_#k-^(L)xW-ke{4dJ0y*N# zm&LQj8#dzG%A)bwT>+4?IJe%#3||7VoakkdP4!YMTl0)Y zFh^62TpL8*f9H!b8>l-@FTprWuWRgCvucYhO0gIm)FwJ&_dTGz2*e9ty!#U{)OBx$jJ@u>0?7P0*LL=-`_jJB_8^znzSvO@D z!HBI7$?yytpGQB>|HGg~k)0euOy^@p5=n)Y23nwIaKjhFaLYP1kYXe((&_Unq%^;a}7oePHgn*SR}27>m4VryCH>&%j~ z2|4>-Z(tF*-S5=I-_pBCI&33xWm{JnO;~VbZbJzFMZ4 z22#;II>H?QD0M&Ps{dvc)x*oebs;-elrV`h>q4&ufkA%dVE|JOL)}W>ibIEkhbj0^ z$oPijX(9i0xnsm3nnlV!BwwGJ|CGEb4w@tnb^t74RH{}wF#-L>D35z(9gfH@chLtPIJmhkE>|)zZ?b=T$%roS{{3Z2cfVh zwOt5*vi_TIQoCpK<@g?;d3dNDlpHdI{=X37cK?h2!;rY=r6{TKHiF93*+ZUn+> zBzHV9SN;8zJC;gW8g5(rF3CwrA3(LlTU~xP^hb>K5eHxo;Cj{hb_trs%7BAsd*8Uj{UET%z;Da(uB zv@h`)s4o^ErBW7zR<4l)POFVQ=-0u5C>fyl-*lnHv8aU9FeppSEJT|h{mzmo`yIkZ zoi#eY-)((4%;-Whd6vP2(w|&t7lc{hih=q^TgXax>|kg^o7I+?147m#d>sB)=LW&R zi452{{?JiSC{a8j4yvzRRI*&Q3jrW+eIS>qW-_e1Upg6T^b1AB*npm>)L`u7anFn- z9IDGG?@UF0plkRQSx$u}raPBT+LrG|?%TO9HBIK6E0t(V%5qoSKb#@=nS-^6;yv;qs&rDc~$Gc>-N7s zc5!p+wSqB~R#*BPFrLHN_eMag*x_2b!hvV=tJp_FYJI1}MIg;^`l_z2-SU2v{UiZY zwV4Rg_Gjcg2{|m{z=gB2*aj-npqovsN)u#gX_<@XOwOz?OMej`jLTn_xriD zwOU1~H;*iUaOUMxoXyUhm0fSx=R&O64g%L*HrnUekMW_%9qS##Zep}1 zbc=Y|&))C-J@9=Cn*Q$D$Qm#Kq3J6)%DU6(jH7l?qV&YTv4?5rIH zJjku_u59FEleMC3Hmsj>j;tz5MHV_~^|z0%aW?_*uo)i{UwfvZY2)5KtWIZGoMvk^ zg2TP@=(i--c|WdpXpK1qh;Xw@FnNQa1l*GtUOp)l1Y+PvYtl51TW;A&OaK_2b70{t~?Txg8*vjU-N~-HYuGN@zBSy zDcgtq9SKDoRb$1EGP~KX^scWnR8KZ+8W?MSg4Freh!f9U6Z2RIxMBtmn@Y%k@|$OQZSec60AH*X(}qLG*9X{_J9 zy@c{2ty^!WRb?6&vLY~cycqruk4P`d0%>?w%NJ=6&XN<=`07?oA+gfWoN40mXY~ES zVXlF|{FzS+BSu(X-mrm?T_RkUK%sPJCY4F+$Aw%GqXU%dA^1Snbd~w2yjxEOd`Wtc zN_^w7Rb&{7Cgr~T{aWq;_{Ux;0zTec|2CSXi#HUHp_V!WyhN7+s5!J^stkUK=Mq9O ziWr_3fm7tfd*-IBYq5_p_vZu!D-c&{@3u<3B!NZ!X)5(=ck#6ALCZ&O&OSkQtOs*X z@91hkbaRmDFe?F6DHJb2HpyR{>3V61=93c1>JouPQebbSDHqZgr+liJ+~emAdA|0m z1-N0Cqnh;wl{@vM8EF&IaCpM-!}@f?#XBWD&{al-I;}yL;20qDUy|Mv2wAE_BIz?556+ndJ*(=6zp%j z0^q%&A~}V_DbIzuhf(lsZ!;T4*vw4MV)g-;5Xgx0Y-`Wn<;_yuo2}F;WXmk$c31fvxJW)2kPizE;lzJg9Vg={3Hz&d&`ThE|vh zM5bT9B|oOB&Zk;o75srXg|Zh62Xob?eAYqxac_3*zC44jiDdoq{Q*8`eVn%i9s+r$ z-NJ6`?D%G>rUCE@h`7pNRU5^U6q>-Lc(V#qk_#pZ81gvbQ%kSvgKc*oIT|;3Wqe9WAwe9z8_rn$H>o2*;VlSc%W|+z#~Q z6buZ_JM21e#&lh0n=EG|=CZl0dQPQqZ0uR9L@MrJ+Z90J%Q=_Ltiy<_K9PCFEGE~g zuuq;P>Srj9obhRVdY^FUNfeK2PEJl*|1!uEMaSn*aOa<)jWMW zb705TzsAH%a}`ZFr!`mcn4tsb9w#ok(vrng7a5>_We4&D9fHGAKk`bJ)x2qXkGy{>~Bi{6@VMB-WW){7p zX|sB)Wj*3LbE`6t^DUbQbCGuYhHB`79u|_rIYHs(U3el4OeEASEG@}gK5jTsDkZtO z6-|2tvkyD9(}?JdM9*JieD-?#wvl>&3>nXu$zCTMI?kZsmX+#z@Hm1bi8{luMQ=gHmZ7OeF^DKua{xD0Ziaj zp~qp+s#pN!i>z8~l^xVkFiT5IYZ=s2uvmDIa4V~|*ed@vmgii0aYa*^4_b?z7P~{F zCHN%U&^hC|RukSe?a~p_X zb)3(B4m9XAHd@e8nXV>-xMl=a%qJC!EaHKz&#^#e6*CmIKd09O95Pomh#4lX%jYwrn03Gc zXI82%k;Cu>Q}B*ZvL6??r3PJ`6MSY+EVQ)duX7S1a|Hv=n}ad2#xaH9{#={%G&a1s zqG5F>xm%2VP{x4TY?Y8Tmx`l{qF&2ehAA`Ca5x-azb#G}ywg)s=%=out$ilccecHa z`pzIDy=>H(2YO*)pcAG`I0B!F66Gv{Ma0&Tl2KeH%=@uTBD$}@#K`$-zRkSSEOSP& zVGRhT5qB^%qO8_opU)s^v_wOwDNr%ww1-0DjjWqlp6g#fr!AjHIPq`HNOI!0041zv zOFfkRD6Z{x7UKG|7j20z!Rq)ji!W?6^QZ#3sTLI<^#SYpy_V3&N%WD8%xE{^hMO!* zdx_9xA5_u}g_8%G>T90@X@@{pM2Yy76Bws2d;s;dQj~^{jt+TP|CjbmotwPd zzx*R`2vAN$n%__2?-3dey?#4{3@tbK75K-o=?w&XwqR;{{T$l2{`?k(m-TguZ+!`& zLQj{P^T8jQFJsB(kfQ}00sZ7yV`h)dTvI;$llJ7KkYx!6(ySjzEk}qCKV!Z;#`&+J zB|Atg?j?Q1e4(prEt2B6Flp(x8`f~D+nYfOxZzt8JC?PL{_=9|1IVw@F$}xkWt+v$ zith`!nI#9=H6*ma%FS2r4?R;Ic|QKXc_NC03^`~PHW@M!a?q8p!~5b&`GyoIK?+LQ z1GD}Y?A}*ZYmnMqJ z{4xIJ61n5LuQ+F)efEYjMYw_U>}sAOrngOc zphplWTAmk1FCK=c34sYIDwyhGV&u=aKRod><_#Ar zPOuf6I6}sXVT0wG|0p%q9$BuXuzLDWT=^pp^u&_WOYnfCjMcbb{)+wl?d4r`H=RZD z43kA6Q^+DOTt9{59^Qg~tAJ4_-2Bn)k zXy#FWNiu|GwwnUpc3SZ#XXhPJZ?09#k zuOlWiHFv)s&*gqz_LKDp9q$oMCGrvrNCl&OH3 zErMluM78qtl;4NlT724hFU#{(k>iu;g~MLkwt^K7^Z4B6K~$kF-0}M23glPFx83J{l2Xf zQFX8|{p~WInWYK&WhL3JV7=Yc6o&T}#r^>W((J2uskxmd-iu5CV$!N+=tO3Lf8~Cb zXZhFt?`cU%4|g^fO@~qsvP5R(3$LAb@e!yyBKgn>stgGi^sKDBp~a=x+is-nWms>}T;@MnDVi0oTvTpZTo%D9amv#GyopTRz+tfX>M)k1i}$MtJKU z?tby>`elj5wn6iFM-$}ndQ<|Bq+kCMTLihH2Q-}mM1PtQv!nKqeTB70RnC}U-qUQo zYQUsK5k)yDRZV3cfE6Z$EOr`lnllaCKb^Ly8kSZ*pVTOabMJnFhG z5&1%i!XaEW_uUUqeY5ecu8`r`u9>Du9uJC!JntNX;LP3ieMtYVb~8e7O=JtweQ7!w z>zL^8)444?-nPcZ{iX_mM*nJ|S)Y9q0>|kGp>C&Q%y3U48n0&TI2B`IQYH44Be3fd z__9D3KokN71^i5Cf)f>#7uSi^6qI>SwYOdSqS;E{A&Ro9c~cY`jX5(>3|n;&;eK~3_3GSIbRIPrl0{b_a~~&)@WsAC2h`d zrSCC3FgtZ$rSRPC|1{dn;20JEqd}EL@pOIUe@TO?Q_G?m#M!nxqW6h6J^u)p-5e|R zjc99enUA3vd)D~?SY@+0A3RvMCsNoJ3MqoUD(fQND9x#X4Bj+t+!K{zOftvdlWe4e zHT_YjecMpzb54^x(wcb;(}8gE=Lig1xIGQpxZ~07;++5~`iRibOUsoh!QI``FF37c zi7k{&F6*z%Bt|Po^MtxcLrC%r#HQLa)b7KPajqqYz|yq^j%(&(avRBl{(=$cs&Vq= zQ51=z$_ZWFLEHvNS&8SIB3qw~@Y)eK4;ES6U}smvIdev*(ix*U9qFkwf_#j=IL^*0 zJR`{pFnX2PAf(}@=)d!L$UboqdSYvD==@HPPWI#C0lEKt%CsTo9J@Wuhb5I9*(aYQa?y&#Om5;dOc*b=M3r8wqh*i|I>lOu#Z-G!=g`L{?=Lk zL?e))PGLJPY0zmbdj)2y%nUyLwFSBqePyS@g=ANzsg@}^#qOZ2!k$@f2R$S2e*{uV zRC&e$fn}w94F{{rHS5r?;-7YRpZ3z_63<2F;IYQ$7g7IKo_fW8Bk!qUjpN_!AIg7e z=Rs?70J~Q3mP(%WTH_ya7$CEof90mVWZXaCG5X_aQQ-H|dd}`!G`n79yUkcHtiSJm z7vDQo7*JZl_56Y;u*v=J+I%{{Cm3;>LeEUjWH>{ zT=nHw*B0>UNQYXWM@50GmzYG1cJESfrci2GwDP6vM&>7dgMb}wJ=@We)ezDg@?&bQ zy63sq;yZyGt0Xj@yn7*)bz0h|4re9+d?1!AntYsEG$l0cM>nYeGgkIhZ0@g&KyHXQ2yo|K}+$ z*J=t>E`=vE*K*dD!zfD~b069xJVdmucb{y6ZM zq+d4zq8H;}9g0)uZ;Ia`rAv4=0>6yq>-OujkH-yDi(5xBUQhVgQjQVYpLly9a!PzS zj^=uc&pm0X(v^TBEZ_SAn7SIJFWqQY1tZX7B^d!fz8Xg6W`hfZ2(?%rO5G~Mv+!R! zSKm9n5LBnixhW##FUCF5E|9tUt33l4slN>l%=(-lH$e0b%#~8Fg$JaZV^cN^&~Ndc z_<5gzc7M(c+bORO)B$)sa|(fB9A~pax!bxEZojbL-l5_`Mb{Km7}dgN%&t24D$dRK%Sjd>a&*?<-B4 zUtH1HXt9+op4O@_qb9Gj944s?Y%Wo32wvDFW;h!)&wih41_C-o^AuX71LLOlj9FO$ z6?sIU$8lnNDC`JIIvHt@&1D|^DDb~K@w;U$twT!b54r5WQU4PJ#s_F|sG4G4x?C*w z>rHa=s=)n%hi#G}5BD9Jh2N^um1bwkyDA#y6qcStokw|?fW(_3&CPC4?KIyphi|BZq-nhYM8e_dyAg z2Sud`yX4y85v=znKU;fU%Ib^zN|83BRgs^ctNVG|N>(Ad|GB;4a$*~uOJcso^Zu0k z8A%E>cMj)UNEz_mF$}WuQ=UX`T3E*!KJSM!FO=}EFO{_Eb~IPyNJ{O>||&P`Bif;oniG!jD#r3cZrn5kJ+$D7%y))B&2!YPQqM=J^%EzpsUTHfz-W-4nQ# zr!gu0k-Fk(N*QhV_Zue@w)Wt)CrrNv{q<^-jC_>|r30A{dZL^qUz0$;OZYP!M`@>gCN56;M4I z1o>pO1q_e?)&=Z3Jy`nWk)f0cfVU2_yr+-}BRv~5GPDO8N7*SU^aG&XV6`}0w$Bjw zgOqEnRiGOLuku*u;X?fmcaBVa7YX>?JN5507LjX|VZU{j{AGL#)Ts@DAY=Ie>Myaz zm~7{;$PN#}yI8m}`Nw&lP@&58Y z&Vw7Z=e!F&0iz(Qhc){y6E5a3`T58wQt?%~FFw$Q%TpETCq2Q3-!bPKBR)L;zR~hk zQeVeAHLDUMi}_oEc>xfX0x&lY2lwdp`MwUe0i(NMq8KU(iD#6ladX z6C({2I)4BK6am>VJ*cS{T=%_K1u5>cbmjaU5T`002WQ)?T5pm8(3di*a>b_Wsd>p% zy2L*Kic#Zz33uG_$P^eybP=4u8er&>q2=+fh_3Q{pqx}Tp!UVKYAkWHjm#B!1Ev*2 zV46F}%+N3emVt&P^EuuO;ugQY-ID8f+Fg)rNunA_%`ETtnxv?p!3h6+`Uq!Oh75)& zzin)g^L$dEa}ywm2E03Me(n7RRtbo!fb!WJJc-|VcITfW{E7ZMRT5aTOhprfyHJ&= zp4YpNdq*&oj6ElvkQD?W5U{O85F?=)|NhOeiW@gY25|bh!0&l^zH}3jfS0R$DC&|7 z?iSB(&VBM`%7I*dAj8ro zekfxa23q_=`!E5r!BK*JR`k|q{%pzx*jteMA>zsqE8=IJI1i@5-QW@#&S{mx4eYS}oatPkA#Q|J z?A4~Eq^J%9A5LSu^(sm$qtVWT+sHC~v23idtu@K)VNe0^G#3a+_L6l6U|&+>m@SJ{ z=UR@7Vx85BjT_aaiL~?|z(3Bmy;Jf^oA)%N=Dmm8t6Y?ku{}>h(-Y5k+#o%i!GcYY!Zw+rWY|biLmJlMUevLFKAkxvy9Q z7P4CTt4qpvN}tRCs+$D_&Cg?1ni5Z(Yz}}MP>1K%zI;nlP6CC=_K|1c@R-SfP#jzS z`SCqYq9qJ6$>7u6!}uX@LIA#7^=#Sv*3`48{~aSWHt?NlkUM9m|;m#;<9Y5vgI8s`>vsQeiq z&65q%^a)FPZb|U>K9)@hC~v7&(oDJ@%@M;VqcO0mcTe z!l!WqJ6|II=W|hW`sW1UX43&t+b*ZBWP$Sk0IUEKEY841d#@Tr!QzF20V5y*b1O$O6N`vk7=+lyK_X4`p|GqUV&q3Fbu3nawP zMv{B>P@gMaK-7K!`kIn%*$R~=Aj9IcRO1Tb)QsI7f<3Na$a<3Q-K2c`x&20;Zfci25ymd4 zNf}g9M66ssc6x6^4??^q}C)d$nrV7x#XXx)Ra@X-7FIG z4b$x;F2Vr?{i#*e^s(x=suY7}()5J5zzOFj0O+-ViHn{3E0{T&!{WJ^dctL1rCi_5 znU1fp7wG^_Ymu0$_&$nT!fnSx$8EsrVbIElYU)5OvcqS$ITFu$6HZae@VoFIKRG(_ zoi%+QDK#1P=Ox?wQ=KxZilU2Bv*_T0y17$fT?>GF%E0p&;=s||wsk~wy9znw_s00q zf>9azIfi;X1=I~Ylsl-!PWv(H&3H#6|{i6hoeC{vT5T$mp;A&56 z3gGwZ;gj*|N}hhNZxYFmuC{j_K$zodFNeBx0M2fK((%gDts@K7nGXa(jSMD6DKX%;be$jp`5{FBV~$@udI%{D#W9IKIK+A$OEd| zjADhHKk0f0OV~Wp@^kAIwiKD(5~1DY^D%)_a<}&!l}4vP*3krbrJgyR15*eUm574D z0+g57Q2Tq+_l|@K&V0xb-Kk0DVs{pvhtDD|0xGkt-Rfmrdv|8w0i1-ANY7y7XJ}Lm zv%JriZO3F2p>WKLd{KAlk+C5uy#nsRv~V^amJ#u1(GWP4p99}m{N)?2!%+ZV<>}s~ z8+37JpM2dd7ts&7*-*{fN=gGz{SZAq8>T16LxcEZ`|9gCBEXA|9ho zx;g{I0O~Ao6o$FplNfzgrsb5da7)u-)Qv<~+mxsN_jg8Ci$j0&e0INsV z*A7;P-Gf{xYdYJG1d)QrYkRkkt*Yfn}$imh6 z%#ld7&^YPHS@oOdBAtUO(e;$1T2gciEK<4g$dEX=%xZe5xC9Wd}+wVuG zQiP#3A8-%*JFRr)bA#(8x4KVdA4w*Vd;R}U_3s1h|9>iELH+Kv|3AE{67UCpB2n&B zUyiz=7qgwo8|~uEI%W0;`{;C#yDf0oHZNJOBg>6y!LBEaLE{+uLGMmG4@7)bICM+1 zh&3IgA~XXAsp)BtVudsEUJl!Sg+wDff1*F{03-y{fpOE-pbG9r>p+iF=DBouodT_p zkPHMZ`hhTS3}>zt;}YZu13$jJwlMGkx@qXE>yQ*8bem4#HRw<{EV*z)F9;iy{@9UBAIR)QlME?fxn;Ef!!} z9QB|mfU4-N@nzX7u;YgRLf9PZv>)#3`r=)>LsfW&$VS0fy_e_-nloJ%I+P?248(9$ zhs~<-*x)D$lVWJdhD)_LExo1?)Ja#$t?L{R(uX91=>yT_?^%z+Hz-*2-sJ;lpFSC2 zkTy1q@HemU4sB%g!j!i$!i@`ux=-Sh>+x>aOSg|r5oWcm18>|nLjxGYj!;R?2$6#9 zE_M&3zeD%CtQu%E#}8(s8drPPR|99ApeX+tjK6F%w%9@7Cy``awky8XoFN;%a(e)n z!g81vNHzsF5GA8BvpR*)$s$<&eyt=X=2wV@Q)o-Nd9iSrA%Fruo4e59f`_S6YV$&> z$DQVU`#$ja-r8-R&BA`%cW7gdxpRV$D64Idsmy*;>QPUt2Z(hJPEHbLfmE}(B^tif zJir;=8zNw9=dMI6fTC;J2-%yix@Iy#ltnkT(3p_qPMk$Ywq}Ky37D>DjM!1|5N3GNDz({dj`-w8Z)(pg|-Iz5w&Cu&TJ@r{$ zS%fEy_;?YtGy1W&j`Mz8J52Y~KkW$l%7Xy=h2=*(iU{^~`=zp$3_y zUg@*@YaP-95JIZQ`CBl%1Ms8};rZ{))0t0z_@PAQPhH;KP^+2t+Fzxs&3dwJkd`n` zIZNIfsac!pfNaV{T%Q@wrTs(=PtdHJbU-})t=N_(wt<^rOE!Som|UAM3c%N}8FfqG zd(4&oB>Niar*pg)e$AC5Ttg*9O0`~y=+@?JS7T7BsO0%Q*~J@WRJ=g57@aiPjd_iq z6YI;_0C%}>2o7}NOHTrL4t7Tl*wUW`i1!24T_SZZ3AgF^C(nQ`3;s>VF;5x^=1Cs? z=8u3Xv@I6fa_y;JDMpe~Pv32y`@cR{OY+ZcR<{7c^1;1#Z^?uAEp=qKm;eAd+TGjU zIO_~~=rwY;9iYpGW;Ep&f9O|vAj6S@mw%@ZX>)8J71UChC|>ZupV*kn?Xnv z>{Ql}J{CLRd2r69<)%ain7U&Y;}GxUflTp0Lb%DSHEZ4qq<^a(gNX{BVm;M~7Z(;y z15LqRs)Bd;t@NR#MC#9{jmb76V@Q;R?IEDQ(u_jSX*_!0ugFI$p=|XtEeeJAiiZIY%6(+^5oy1{r;pl2#aED-Ys08*hPYrs~_qmxVc{P<;6 zPSwKJ;6+63d?CL_eUy%F0GN4fcpA1q8I@b9jx^Gl9t1#WWX(J^PE(et<)_qsi(j~D zc^@Lce5;X#KsF)%J=zmzA0f4wgjzaI(nNrGBYzuRuYJ42Xau zk~LFho5N(1pLcsI_PeS^bTz&ppa);zM!t3+^+jd{uNG8L`k+Lr;Q9XjQOD|>v5Le| z+fnOyClvqj!_@&jT1>oanz6$d?M7GW9E#cu zY*1W`hx9C7Y>b~BsoovEiis?0*T;(|gD9kDt+KilRD}A96JJq{IPIp-8OQ3%nUYDK zbll&bDp~EUrpAp*cG^jdi@FLJhxx!LLDysE1uYzpE?SL%niLxMD1C3nf;Uo+%k4(v z#ND=%OZodVWl-y!I2Ft|XB(ur%bvxc!j4k|Y$thbFI5BG!0K7fFe^zUt;J04*uvr` zneA^ExV@Vy;V4~wg$*cDl0{u`a2c=oCi3_5sw)^DXA9axdk!2X^z#Xv)jNw34lQSb zM7Rte%z!K{VjNp^YcK1{dKv%&_^;2mVcD9vqWTmxlT1g-+p>tTC^}ak2*^7$5N9oa zMe7;|V|BA?RelNi_~VV;C4j}h>-M#v_ANGL=U-DJGV2QjsIAxcGk&~tPpH*+Q%%CZ zt|=R;)h=#&PvXWx2zG%=GsP-W%?opUqtC?ah8VG_<}qTNdZ6#ief&?8m#`%fc+)?q6=f^CY?QlamOs znQWGfKrrx=f2O2y9jGyO-PL>2hqzZNIutLy$k=SkM|T7%hCAbpL|eW(T#Aty{yl*> z$bdMxsLU@QyyrkWDjq`c&Q*Z1v+-JVyj=(DcB~%{X}YEbtc-p*x5LbpKTBlcZ|%fI z1U^qJV0Kt`7LY6xtr~DEle@!cpE1liTOW7jj@YuZ;yvkB5I@#rA2buN@s225#qLE6 z7uTuUB=4+KZUg7f2q7A)ar5j<$L0ytuBBYHd@Ii@#T9Q1YGE4)H z-r*$HCl-SD)VR!6I0uWg9>}Z6qOQ{(lAw1fCPBV$)=M|)sV=Waq@UuhT(w*7SgAz3 z13U1JGayaU`r5<%a$7m%C*O`ux<7C$#_845i3CDcZK{7x=EplZvR<1qVjM5Vo56}h z;tS0UEIt;`bpK$rjnz-nwaNm@o#NM`0|BGMt%-y-!UR$GaXQ?(XJOT}Tp~SFVv4@E}>EXkr*fHD_ zqJj_PU$M4`e56yo!xa&JL;V*R+8O~mXWeH7r)U9jai&JEK>gI@%64G|nvvAq0!&kd z1tN%VK5C^JAugCAGcDBu{6NP?$c;I?FN(wHz=q)J5EX9kGltYUG4zxs6Gpi9)|~Yy zIdeZ!m6!)E^@}puc09j!4pC9k?xbyvJucB5ZUyFiI4r7~%3?*UtDgey`=CEYH9IO1 z-qQi))ioPtNQU4yJ) z)xx4>lxu0*3H>LHSoE_sZa*xu+f!wm`9-mjB^${~_u>N}@fl8|>&pwOm~6F6J&xeT z>Hp%64qBboIo4L&Vd;)~&(0vhRHi7&TBjKo<7PT`U=YhprUqU*@j6rD@A>C&oR;Wc zX#~{jcmA1w9&Qi2?((C2Hp`5;aur&!6|F^ks;i<^!lfk#?ZE`ONZbHs-L+m&Drk*V zB*6%mSk0@6W=yMa52HvxIjrWMJ2yx!^Z;tJUUO7Y$^ z@!$$!ay~69N~@Auv0`aw%lh{x+TAsH%!2jFX>Xh&G4hn~)R1L|wy^_f(4weUkxGa5UdK57D-OvaJAξA-!B{TuxEfeu_}(7Q zO)e;cR zinZi%YJ#pI<^vnhn$vtfa-n2=K#At-@toQ;6+%q5(FW<6SKj-!0bA&0tMNlq1>?jD ziQX*?vL@Y+A;$3%%nJY?=0d_%WWh48iv))ytrW{26=oFZ+R4cwgwe1}rNT0jPhJwb zHVVL0tYVby)`+LLCee2iFQX;T&WR1**K~bMpd?sRh}Ik+@}8Jyfd>RR}R-5I@M#ooG|Jy zG&Kc>-?zU_N1>NPJ}>jC_`c9BIX)Ur4nMpmpV&&Db|BdUIQbXAFY!R zr9OlC*sczSrQs_fFmJ$BFAIA*a zJ_*?B{A%ATjj(`dizp8U>P;9i=9fIIP$?2`UWdwfBM)croDl6mcvScTd8JW{zQ z?)^W23SEE#UcCt`HQta+jPQlNpGBc8`u<32&mHDoua}>R)R4j7NHvPO2~W{Rw&h$p zes|KN>n~LwAO!aQDz`I3Xck>>=FEf;H2)rsaYbuJ!M>Bet{TlEl5Ogmf(i1>hgWW( z@{ycd&o-aV1MAO>Kd95S1t-N38l4INttjSr>99z7Ir{cf_cK5AN{H#Aoh3gmP@wS9 zQMizSH*{}mq&`jd34&fs6X*~0^QD>GC3^hka1wo%_95jXSS+b8mcE>t+T&Zkdd}`+ zhsG${Tfg{K-p*Tvk90y_6_$02ABV32dd_rT4L(#iQ3czOQ}Hm3+X-^Zg-Vy>v6aHb z_B*8#PzipPM;g3XKicAldVZ#t+~WIfeUF>l=Km@Sp)+>pfpA~9ZMf%&a}B9Db!Du7 zJ+llM5YF-@2H62f06!-)@5+8E0?m0(#Ll&Ft-e)JxPK$}+kMhc7YUvulnBwGJkaPB z>|Wyj{r%z5L`=42%}m}5=PY;Ioxs3Fzf6MYL%A)b%m=akf zS~UCUmUhh>JsW@C1d?^Av-Mz6IjGa|z$U3W2aJaNPhA3nWiAc`pCIGEsUts&m7!>Yl7C#dR!DUw>9Ak~8$@t{zCal-^^n5w9*_VV6vhf1`1`UwXaa zt45hNF>ME79}n$Cl<<113^OC+S9Lj@*XQ?3CB%()$7^>w4=}=(?hU<^<`yT8qwOA) zW9{08w3>bWt(+aCqpFMPVa+|++WDwGp4rO@2XbpDm1%$dCmN0@)Y$q_Z=n^Uhw_!w z6(Zjpf_|>G`nQ;tE(>>ubbgPYcqxcF-@}XL30>Af8dujHg4Fl(af{sJAp`n`Cx`8! zIU&m}Nt}A8b5~US7MP+{0v{n)m5Fhhd`No#{(RPJGSWCoH#@8#xrQE%RgRe=)=ZyQ zcBJZYiy!S0Cj2|?lK~}bOGfGnm%@lH(~i13nXZ$Ek%+BQ>g%aUx)cy9#2a~MWG+hg zy?XTG&~Zda-5PV84Ldi1^K_sa-@QB$?iA>jm=D~3)i8E7iR$o{Nh$LaF#m>9jAS0n zT4EVfTD;`t87TQ%3*e%8j!YCl(yguol5P@FbOuxB>e=Qmal@>zxi^0J7PBW&phqS zhf+cDg(;`Q)Ao10;;-N0<8m{Q98Q2LV(*gBKjNm81aKeQm>1apzCB+v z41jsUnBYGHxDV)l(}8l+R+vfG7blyst-#cfL5sljgJ0f(T-IXO zmoyladjr)tGhSjP)rnG$_7Y>bXH@=-CF zBkyr4uT=ORuE3m-U!?!l2P3>b+qvn>>TpiHVRvW32j%Di^XQJW<>x9zbKN&>8_Rcl t4myk9nis<}apYgH`ZpJ&LHftR@d;zXi#JdETOWfzqC!%F8T^{B{s$=A$W;IU literal 0 HcmV?d00001 diff --git a/mkdocs-site/assets/images/ansible.png b/mkdocs-site/assets/images/ansible.png new file mode 100644 index 0000000000000000000000000000000000000000..ae24dbe85ecc63d0d84528f70e02ed64f400299b GIT binary patch literal 34395 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 literal 0 HcmV?d00001 diff --git a/mkdocs-site/assets/images/favicon.png b/mkdocs-site/assets/images/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..1cf13b9f9d978896599290a74f77d5dbe7d1655c GIT binary patch literal 1870 zcmV-U2eJ5xP)Gc)JR9QMau)O=X#!i9;T z37kk-upj^(fsR36MHs_+1RCI)NNu9}lD0S{B^g8PN?Ww(5|~L#Ng*g{WsqleV}|#l zz8@ri&cTzw_h33bHI+12+kK6WN$h#n5cD8OQt`5kw6p~9H3()bUQ8OS4Q4HTQ=1Ol z_JAocz`fLbT2^{`8n~UAo=#AUOf=SOq4pYkt;XbC&f#7lb$*7=$na!mWCQ`dBQsO0 zLFBSPj*N?#u5&pf2t4XjEGH|=pPQ8xh7tpx;US5Cx_Ju;!O`ya-yF`)b%TEt5>eP1ZX~}sjjA%FJF?h7cX8=b!DZl<6%Cv z*G0uvvU+vmnpLZ2paivG-(cd*y3$hCIcsZcYOGh{$&)A6*XX&kXZd3G8m)G$Zz-LV z^GF3VAW^Mdv!)4OM8EgqRiz~*Cji;uzl2uC9^=8I84vNp;ltJ|q-*uQwGp2ma6cY7 z;`%`!9UXO@fr&Ebapfs34OmS9^u6$)bJxrucutf>`dKPKT%%*d3XlFVKunp9 zasduxjrjs>f8V=D|J=XNZp;_Zy^WgQ$9WDjgY=z@stwiEBm9u5*|34&1Na8BMjjgf3+SHcr`5~>oz1Y?SW^=K z^bTyO6>Gar#P_W2gEMwq)ot3; zREHn~U&Dp0l6YT0&k-wLwYjb?5zGK`W6S2v+K>AM(95m2C20L|3m~rN8dprPr@t)5lsk9Hu*W z?pS990s;Ez=+Rj{x7p``4>+c0G5^pYnB1^!TL=(?HLHZ+HicG{~4F1d^5Awl_2!1jICM-!9eoLhbbT^;yHcefyTAaqRcY zmuctDopPT!%k+}x%lZRKnzykr2}}XfG_ne?nRQO~?%hkzo;@RN{P6o`&mMUWBYMTe z6i8ChtjX&gXl`nvrU>jah)2iNM%JdjqoaeaU%yVn!^70x-flljp6Q5tK}5}&X8&&G zX3fpb3E(!rH=zVI_9Gjl45w@{(ITqngWFe7@9{mX;tO25Z_8 zQHEpI+FkTU#4xu>RkN>b3Tnc3UpWzPXWm#o55GKF09j^Mh~)K7{QqbO_~(@CVq! zS<8954|P8mXN2MRs86xZ&Q4EfM@JB94b=(YGuk)s&^jiSF=t3*oNK3`rD{H`yQ?d; ztE=laAUoZx5?RC8*WKOj`%LXEkgDd>&^Q4M^z`%u0rg-It=hLCVsq!Z%^6eB-OvOT zFZ28TN&cRmgU}Elrnk43)!>Z1FCPL2K$7}gwzIc48NX}#!A1BpJP?#v5wkNprhV** z?Cpalt1oH&{r!o3eSKc&ap)iz2BTn_VV`4>9M^b3;(YY}4>#ML6{~(4mH+?%07*qo IM6N<$f(jP3KmY&$ literal 0 HcmV?d00001 diff --git a/mkdocs-site/assets/images/gcp-1.png b/mkdocs-site/assets/images/gcp-1.png new file mode 100644 index 0000000000000000000000000000000000000000..4a426b0d9c3388bd09c1f7d35820295169cc8c23 GIT binary patch literal 8141 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 Cc|-mH literal 0 HcmV?d00001 diff --git a/mkdocs-site/assets/images/gcp.png b/mkdocs-site/assets/images/gcp.png new file mode 100644 index 0000000000000000000000000000000000000000..2a0b896dff99c1542b72f893a160146c574c37e2 GIT binary patch literal 7348 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 literal 0 HcmV?d00001 diff --git a/mkdocs-site/assets/images/killercoda-icon.png b/mkdocs-site/assets/images/killercoda-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..5796728e0688fcbbec22fa38a83da954a76e03ec GIT binary patch literal 1537 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