From b49128ded1a859d55e50b98f4d0f2fd6e19a38e7 Mon Sep 17 00:00:00 2001 From: jnywong Date: Tue, 5 Mar 2024 15:21:41 +0000 Subject: [PATCH 01/33] Add initial _config.yml and _toc.yml --- _config.yml | 114 +++++++++++++++++++++++++++++++++++++++++++++ _toc.yml | 20 ++++++++ images/favicon.ico | Bin 0 -> 15406 bytes images/logo.png | Bin 10535 -> 6086 bytes index.md | 2 +- 5 files changed, 135 insertions(+), 1 deletion(-) create mode 100644 _config.yml create mode 100644 _toc.yml create mode 100644 images/favicon.ico diff --git a/_config.yml b/_config.yml new file mode 100644 index 0000000..9a1a96f --- /dev/null +++ b/_config.yml @@ -0,0 +1,114 @@ +####################################################################################### +# A default configuration that will be loaded for all jupyter books +# Users are expected to override these values in their own `_config.yml` file. +# This is also the "master list" of all allowed keys and values. + +####################################################################################### +# Book settings +title : Hub Service Guide # The title of the book. Will be placed in the left navbar. +author : 2i2c # The author of the book +copyright : "2024" # Copyright year to be placed in the footer +version : "0.1" +logo : "images/logo.png" # A path to the book logo +# Patterns to skip when building the book. Can be glob-style (e.g. "*skip.ipynb") +exclude_patterns : [_build, Thumbs.db, .DS_Store, README.md, .github, .nox, CONTRIBUTING.md, "**.ipynb_checkpoints"] +# Auto-exclude files not in the toc +only_build_toc_files : false + +####################################################################################### +# Parse and render settings +parse: + myst_enable_extensions: # default extensions to enable in the myst parser. See https://myst-parser.readthedocs.io/en/latest/using/syntax-optional.html + # - amsmath + - colon_fence + - deflist + - dollarmath + # - html_admonition + # - html_image + - linkify + # - replacements + # - smartquotes + - substitution + - tasklist + myst_url_schemes: [mailto, http, https] # URI schemes that will be recognised as external URLs in Markdown links + myst_dmath_double_inline: true # Allow display math ($$) within an inline context + +####################################################################################### +# HTML-specific settings +html: + favicon : "images/favicon.ico" # A path to a favicon image + use_edit_page_button : false # Whether to add an "edit this page" button to pages. If `true`, repository information in repository: must be filled in + use_repository_button : true # Whether to add a link to your repository button + use_issues_button : false # Whether to add an "open an issue" button + use_multitoc_numbering : true # Continuous numbering across parts/chapters + extra_footer : "" # Will be displayed underneath the footer. + extra_navbar: | +
+ your html +
+ google_analytics_id : "" # A GA id that can be used to track book views. + home_page_in_navbar : true # Whether to include your home page in the left Navigation Bar + baseurl : "https://docs.2i2c.org/" # The base URL where your book will be hosted. Used for creating image previews and social links. e.g.: https://mypage.com/mybook/ + analytics: + + comments: + hypothesis : false + utterances : false + announcement : "" # A banner announcement at the top of the site. + +####################################################################################### +# LaTeX-specific settings +latex: + latex_engine : pdflatex # one of 'pdflatex', 'xelatex' (recommended for unicode), 'luatex', 'platex', 'uplatex' + use_jupyterbook_latex : true # use sphinx-jupyterbook-latex for pdf builds as default + +####################################################################################### +# Launch button settings +launch_buttons: + notebook_interface : classic # The interface interactive links will activate ["classic", "jupyterlab"] + binderhub_url : "" # The URL of the BinderHub (e.g., https://mybinder.org) + jupyterhub_url : "" # The URL of the JupyterHub (e.g., https://datahub.berkeley.edu) + thebe : false # Add a thebe button to pages (requires the repository to run on Binder) + colab_url : "" # The URL of Google Colab (https://colab.research.google.com) + +repository: + url : https://github.com/2i2c-org/docs # The URL to your book's repository + path_to_book : "" # A path to your book's folder, relative to the repository root. + branch : main # Which branch of the repository should be used when creating links + +####################################################################################### +# Advanced and power-user settings +sphinx: + extra_extensions : # A list of extra extensions to load by Sphinx (added to those already used by JB). + - myst_nb + - sphinx_copybutton + - sphinx_design + - sphinx.ext.intersphinx + - sphinxext.rediraffe + local_extensions : # A list of local extensions to load by sphinx specified by "name: path" items + recursive_update : false # A boolean indicating whether to overwrite the Sphinx config (true) or recursively update (false) + config : # key-value pairs to directly over-ride the Sphinx configuration + intersphinx_mapping : + tc: + - 'https://team-compass.2i2c.org/en/latest' + - null + infra: + - 'https://infrastructure.2i2c.org/en/latest' + - null + jb: + - 'https://jupyterbook.org/en/stable' + - null + z2jh: + - 'https://z2jh.jupyter.org/en/latest' + - null + rediraffe_redirects : + # Added around 2022-09 + - "about/overview.md": "about/service/index.md" + - "about/pricing/index.md": "about/service/options.md" + # Added 2022-11-29 + - "about/service/roles.md": "about/service/shared-responsibility.md" + - "about/service/team.md": "about/service/shared-responsibility.md" + linkcheck_ignore : + - "https://openstoragenetwork.org*" # It incorrectly fails with `Max retries exceeded with url` + - "https://docs.github.com*" # Because docs.github.com returns 403 Forbidden errors + linkcheck_anchors : false diff --git a/_toc.yml b/_toc.yml new file mode 100644 index 0000000..b84ce9b --- /dev/null +++ b/_toc.yml @@ -0,0 +1,20 @@ +root: index +entries: +- file: support +- file: about/terminology + entries: + - file: about/distributions/index + entries: + - file: about/distributions/education + - file: about/distributions/research + - file: about/service/index + entries: + - file: about/service/comparison + - file: about/service/options + - file: about/service/service-objectives + - file: about/service/shared-responsibility +- file: community/content + entries: + - file: community/events + - file: community/strategy +- file: topic/cloud-costs \ No newline at end of file diff --git a/images/favicon.ico b/images/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..76aef0de905c6fbe76f039e7e3415ab4daf4f25a GIT binary patch literal 15406 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 U+oBI?14oVX)3=`}u(K%eU#?x4ivR!s literal 0 HcmV?d00001 diff --git a/images/logo.png b/images/logo.png index 95473c08081e6072b8b77a405b4bd2af8906e9dc..cd420f42213f9cf7d4d35dc507d64f1c84cafd17 100644 GIT binary patch literal 6086 zcmV;%7dhyOP)00009a7bBm000XU z000XU0RWnu7ytkO0drDELIAGL9O(c600d`2O+f$vv5yP z zIw=KBDCfLF8Ain(i;gJFv9-8Eu7!}N#orAUMT=Yt;lRYrijalrye|H(2%1;!)5ZV& zWZyjHjNAyJb@%^aN_}`b>FkbeAf_Pco^=X^`Mg+(%nPA)_jgVTNfRu95D1zp2G2%k-Cpky)}7D}{hKz;O%jN|Iy57y|_1 zIO1^|t%FrUU^mDXp9|vPKA-R^WoN0%c;12iC!Ln=jjvZZ%#AYz6E_ zy6zbzh8Z#(qlJK!sO!p)I2N!Q8)65C3*LA;P5!esh*`~UdUY5^LjI#*r3S}KR zyK-sdH8KpNgut#)J}}W$GR8G3Pppn95q!ZS$UbnDaIJsz&#T5Z0uZH9!nz-P%NijjU=c9d2$~!nUwxMnA`v09vO^pgo5F$nZRx%jQ%R*(V;2IaNX_E4mxk#1 zpBBj$gyT#nA%<9mfQm7Tzzp{75%k_0!}QvVLu4BeL);bU*o1)IAykZsNgcRCpU&Px z#~!iA5^P6Rpl9RkO^QVbtu9jMBVtnL(FY5j2<(Xqx>70>osY1#CIe&E5LgR313wctLUA z@Z*J=suR+H3@ijppp&jWMKk!&&;PVQ$Bq{1@FAgG$fNX#~j% zef8f>I=|4M?BKOwd_3qxy@BlL=Bbq5*kBFdI-tE^Q2!Yg;BG+&##joxHXVy_ z?$QSR$N3G)8kmZ4`eUy}w|dHH!k=hzE6%LR$pygc{dfCWApi3B5IO7L=|ix9Qcl)>E|(y)43wHA$z` z-}m*mE@d6*x{rr-kwV`lktHI7fg6N^QruNlKTtI>TLU-lsj1t!5P^r|gx8W+&GhR`GEK=A)TVNry3TKY7)nnfsN*Z4bCiL|nD1PA= z>z-SbH&AE`Q(Fiugr;<-O|=HNBd6J412Ig!m~LwWg5oS@h5}Fu(~A`7s%-|ylVm7x ziGqMTChnf_q2WTbyAh}{JaDK$Pd?&!H3wZzjSqSChNS&+!~+Q0uP*1$3hYEoskM4G z$dKVcc6{{2+69%Xnj`~(HTdIuyS1JR0lf38x^_AdKl|;|!(Mhqhp)bE(hEOdr=;*> zlRU)({lLNK*A_+|*L}XW5KK>(Vxj8n#U13%3AYO|hz<|_+pS#s=q3>)ovIxpc&FMM zjPBif5clEC`MP(v*WuVBdVdcSBLTXhwS<6vB4ukTWGKkx>!dEx7BQ#~{qC>y0?|CQ zLYs~dqH^FFwRSbovhzYZMi1uFU34FQK6pC>f?$XV!E`SU9||r6ST(e6mMnepexkK67KjmVL6;vTxT(rGm5Dzuwt3a?GwICk-mT5P|LvG?OM= zFx!xwJ)IpEVbd+D5aabQO}$hMe6GN|ALM#tjL~#+k9J()yt_s4v(Y(51}O+X-O7=T{y}rP&Xk6DJn8!N`UM0@27^m3{aE=9RR=>hNMdSr&~hU zOq-S|L*N{-IF3+4o#4#*4c?bvH|0bBB7eO6JMkSp*;*x8OPlIWwa^8N{=?63w!j9v zK^dXmSgX*cdvs@|IO4Iactuf)05Jdtc76DHlPy5TXpa-NR*R4{mW9iVfOrrQV6pqB z`*BjgJ~NuW%Y^UAoM zON4Emr~AkCbgf5SyRa3eGXm0dq@P1WY@E zL>Z3`GDd1?1U_oVBy_9+!1>4wvyBomM-DPZWI2yM)ZZdRIr5Ro7JKd;Di=jVma^V@ z4fc&tq%9ZyxU$>~Jc1q@f_iPhAC$12x7hffX_vA{M~cEJ{@C`^sm=w)L4QH(41<7p z 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 M07*qoM6N<$g78{wKL7v# literal 10535 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 Date: Wed, 6 Mar 2024 16:05:06 +0000 Subject: [PATCH 02/33] Update to use jupyter-book build --- noxfile.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/noxfile.py b/noxfile.py index 7c6746b..468c595 100644 --- a/noxfile.py +++ b/noxfile.py @@ -2,7 +2,7 @@ nox.options.reuse_existing_virtualenvs = True -build_command = ["-b", "html", ".", "_build/html"] +build_command = ["--builder", "dirhtml", ".", "--path-output" ,"_build/html"] @nox.session(python=">=3.9") def docs(session): @@ -19,4 +19,4 @@ def docs(session): cmd.extend(build_command) session.run(*cmd) else: - session.run("sphinx-build", *build_command) + session.run("jupyter-book", "build", *build_command) From 808d6f7cc3773ce4ae11095e04409357d52a0433 Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 6 Mar 2024 16:05:42 +0000 Subject: [PATCH 03/33] Add jupyter-book --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 904f3c8..29f4636 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,6 +3,7 @@ myst-parser[linkify] pandas pyyaml requests +jupyter-book sphinx sphinx-autobuild sphinx-copybutton From f68967be4267895b29edf87e161694968ffe712b Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 6 Mar 2024 16:06:35 +0000 Subject: [PATCH 04/33] Remove extra_navbar and use sphinx 2i2c theme --- _config.yml | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/_config.yml b/_config.yml index 9a1a96f..0efec06 100644 --- a/_config.yml +++ b/_config.yml @@ -9,7 +9,7 @@ title : Hub Service Guide # The title of the book. Will b author : 2i2c # The author of the book copyright : "2024" # Copyright year to be placed in the footer version : "0.1" -logo : "images/logo.png" # A path to the book logo +logo : "" # A path to the book logo # Patterns to skip when building the book. Can be glob-style (e.g. "*skip.ipynb") exclude_patterns : [_build, Thumbs.db, .DS_Store, README.md, .github, .nox, CONTRIBUTING.md, "**.ipynb_checkpoints"] # Auto-exclude files not in the toc @@ -42,12 +42,8 @@ html: use_issues_button : false # Whether to add an "open an issue" button use_multitoc_numbering : true # Continuous numbering across parts/chapters extra_footer : "" # Will be displayed underneath the footer. - extra_navbar: | -
- your html -
google_analytics_id : "" # A GA id that can be used to track book views. - home_page_in_navbar : true # Whether to include your home page in the left Navigation Bar + home_page_in_navbar : false # Whether to include your home page in the left Navigation Bar baseurl : "https://docs.2i2c.org/" # The base URL where your book will be hosted. Used for creating image previews and social links. e.g.: https://mypage.com/mybook/ analytics: @@ -88,6 +84,7 @@ sphinx: local_extensions : # A list of local extensions to load by sphinx specified by "name: path" items recursive_update : false # A boolean indicating whether to overwrite the Sphinx config (true) or recursively update (false) config : # key-value pairs to directly over-ride the Sphinx configuration + html_theme : sphinx_2i2c_theme intersphinx_mapping : tc: - 'https://team-compass.2i2c.org/en/latest' From d1c7cc99715a010375ca040b59581cf8c50a5898 Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 6 Mar 2024 16:20:04 +0000 Subject: [PATCH 05/33] Separate options for jupyter-book and sphinx-autobuild --- noxfile.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/noxfile.py b/noxfile.py index 468c595..0c72e2b 100644 --- a/noxfile.py +++ b/noxfile.py @@ -2,9 +2,10 @@ nox.options.reuse_existing_virtualenvs = True -build_command = ["--builder", "dirhtml", ".", "--path-output" ,"_build/html"] +build_command = ["--builder", "dirhtml", "."] +sphinx_build_command = ["-b", "html", ".","_build/html"] -@nox.session(python=">=3.9") +@nox.session(venv_backend="conda") def docs(session): session.install("-r", "requirements.txt") if "live" in session.posargs: @@ -16,7 +17,7 @@ def docs(session): cmd = ["sphinx-autobuild"] for folder in AUTOBUILD_IGNORE: cmd.extend(["--ignore", f"*/{folder}/*"]) - cmd.extend(build_command) + cmd.extend(sphinx_build_command) session.run(*cmd) else: session.run("jupyter-book", "build", *build_command) From 8fa11153753381e19fd5c9bd55146d2274ffe8a6 Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 6 Mar 2024 16:54:30 +0000 Subject: [PATCH 06/33] Fix rediraffe redirects --- _config.yml | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/_config.yml b/_config.yml index 0efec06..b552bf8 100644 --- a/_config.yml +++ b/_config.yml @@ -98,13 +98,14 @@ sphinx: z2jh: - 'https://z2jh.jupyter.org/en/latest' - null + rediraffe_branch : main rediraffe_redirects : # Added around 2022-09 - - "about/overview.md": "about/service/index.md" - - "about/pricing/index.md": "about/service/options.md" + about/overview.md: about/service/index.md + about/pricing/index.md: about/service/options.md # Added 2022-11-29 - - "about/service/roles.md": "about/service/shared-responsibility.md" - - "about/service/team.md": "about/service/shared-responsibility.md" + about/service/roles.md: about/service/shared-responsibility.md + about/service/team.md: about/service/shared-responsibility.md linkcheck_ignore : - "https://openstoragenetwork.org*" # It incorrectly fails with `Max retries exceeded with url` - "https://docs.github.com*" # Because docs.github.com returns 403 Forbidden errors From d8410caca92a884f2ef70453fb633c5d1576c104 Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 6 Mar 2024 19:38:17 +0000 Subject: [PATCH 07/33] Fix references --- about/distributions/index.md | 4 ++-- about/service/comparison.md | 2 +- about/service/service-objectives.md | 4 ++-- about/service/shared-responsibility.md | 27 ++++++++++---------------- admin/howto/control-user-server.md | 2 +- admin/howto/environment/index.md | 2 +- admin/howto/replicate.md | 2 +- community/content.md | 7 +++---- index.md | 4 ++-- support.md | 2 +- topic/cloud-costs.md | 2 +- user/topics/policy/acceptable-use.md | 2 +- user/topics/policy/privacy.md | 2 +- 13 files changed, 27 insertions(+), 35 deletions(-) diff --git a/about/distributions/index.md b/about/distributions/index.md index 0f8c1b4..9184675 100644 --- a/about/distributions/index.md +++ b/about/distributions/index.md @@ -69,7 +69,7 @@ Your 2i2c JupyterHub has an environment that has been created for your particula All of the configuration and deployment scripts for the 2i2c JupyterHub can be found at [the `infrastructure/` repository](https://github.com/2i2c-org/infrastructure). This repository contains both the deployment code as well as documentation that explains how it works. It should be treated as "for advanced users only", and is provided for transparency and as a guide for the community to follow if they wish to manage their own infrastructure similar to 2i2c JupyterHub. -To learn about how the `infrastructure/` repository works, we recommend checking out the [`infrastructure` documentation](infra:index). +To learn about how the `infrastructure/` repository works, we recommend checking out the {doc}`Infrastructure documentation `. See the next sections for more information about each hub distribution. @@ -86,7 +86,7 @@ As members of the JupyterHub team, we are constantly looking for ways to improve 2i2c will not collect user data for any purpose beyond what is required in order to run a JupyterHub. Depending on the choices of your community the hub might contain identifiable information (e.g., e-mail addresses used as usernames for authentication), but this will remain within your hub's configuration and is not shared publicly. -Our {role}`Site Reliability Engineer`s will have access to all of the information that is inside a hub (which it requires in order to debug problems and and assist with upgrades), however we will not retain any of this data or move it *outside* of the hub, and will not retain it once the hub is shut down (except in order to transfer data to you at your request). +Our {ref}`Site Reliability Engineer`s will have access to all of the information that is inside a hub (which it requires in order to debug problems and and assist with upgrades), however we will not retain any of this data or move it *outside* of the hub, and will not retain it once the hub is shut down (except in order to transfer data to you at your request). ## Monitored for abuse and unexpected costs diff --git a/about/service/comparison.md b/about/service/comparison.md index 6272e97..35155ab 100644 --- a/about/service/comparison.md +++ b/about/service/comparison.md @@ -59,7 +59,7 @@ We strive to build an understanding of their needs, to represent their interests 2i2c is a mission-driven non-profit organization that has a commitment to doing its work openly, transparently, and inclusively. Our mission is to provide researchers and educators with the infrastructure they need to do their work, and to support open source communities that underlie this infrastructure. -2i2c is governed by a [Steering Council](tc:structure:steerco) made of members from the research and education community. +2i2c is governed by a {doc}`Steering Council ` made of members from the research and education community. 2i2c manages all of our work in public spaces, including [all of our infrastructure](http://github.com/2i2c-org/infrastructure) as well as [all of our organizational strategy and practices](http://team-compass.2i2c.org/). diff --git a/about/service/service-objectives.md b/about/service/service-objectives.md index f541f5b..4ef7413 100644 --- a/about/service/service-objectives.md +++ b/about/service/service-objectives.md @@ -79,14 +79,14 @@ Below are our objectives broken down by the type of support they relate to. :::{seealso} - See [](../../support.md) for more information about contacting support. -- See [](tc:support:process) for our team's support process. +- See {doc}`our Team Support Process` for our team's support process. ::: ### General support objectives - We have a dedicated communications channel for support (see [](../../support.md)). - At least one team member is always tasked with monitoring this channel. -- Our support team is communicative, helpful, and [abides by our Code of Conduct](tc:code-of-conduct). +- Our support team is communicative, helpful, and abides by our {ref}`Code of Conduct`. ### Incident support objectives diff --git a/about/service/shared-responsibility.md b/about/service/shared-responsibility.md index b0c71c5..075bc63 100644 --- a/about/service/shared-responsibility.md +++ b/about/service/shared-responsibility.md @@ -1,5 +1,3 @@ -```{team} Service Team -``` # Shared responsibility model 2i2c **shares responsibility for each hub** with the communities we serve.[^similar-models] @@ -39,11 +37,9 @@ Below we describe these areas in more detail, and define the roles that 2i2c and 4. **Enhance and develop cloud infrastructure**. Continuously develop and deploy software improvements with the goal of boosting service reliability and scalability. 5. **Operate a Kubernetes cluster**. This is the cloud platform that manages all of a community's infrastructure, and may be shared between many communities. -```{role} Site Reliability Engineer -``` - +(role:site-reliability-engineer)= ```{admonition} Role: Site Reliability Engineer -A team of engineers with expertise in cloud infrastructure and open source tools that we use as part of our services. This group of people oversees the cloud infrastructure that a community uses. They perform new development and upgrades, make changes per the request of {team}`Community Representatives`, and coordinate with the {team}`Community Support Team` during incidents and outages. +A team of engineers with expertise in cloud infrastructure and open source tools that we use as part of our services. This group of people oversees the cloud infrastructure that a community uses. They perform new development and upgrades, make changes per the request of {ref}`Community Representative`s, and coordinate with the [Support Process](../../support.md) during incidents and outages. This is roughly equivalent to a [Site Reliability Engineering Team](https://en.wikipedia.org/wiki/Site_reliability_engineering). See [our Infrastructure documentation](https://infrastructure.2i2c.org/en/latest/) for more information. @@ -67,12 +63,11 @@ Usually, 2i2c assumes responsibility for all of the above, though we are experim 4. **Create and manage data in the cloud**. If your communities requires access to a cloud-native dataset, format it properly and put it in a place that the hub can connect to. 5. **Run workshops and training**. Training workshops are geared towards community leaders, with the goal of helping them share knowledge with others in their community. -```{role} Community Guide -``` +(role:community-guide)= ```{admonition} Role: Community Guide An expert practitioner with familiarity in user workflows as well as the technical use-cases that 2i2c's cloud services enable. -Acts as a bridge between the communities we work with and our {role}`Site Reliability Engineer`s. Facilitates information transfer, signal-boosts community needs and requests, and guides communities in utilizing the infrastructure more effectively. +Acts as a bridge between the communities we work with and our {ref}`Site Reliability Engineer`s. Facilitates information transfer, signal-boosts community needs and requests, and guides communities in utilizing the infrastructure more effectively. See the {ref}`Support Team Documentation ` for more information. @@ -91,30 +86,28 @@ However, our base service model does not allow us to spend extensive time managi ### Responsibilities -A team of leaders *within the community that we work with* who act as {team}`Community Representatives` on behalf of their community. This team coordinates more closely with our {team}`Community Support Team`, facilitates the transfer of knowledge between 2i2c teams and communities of users, and helps manage the structure and dynamics of these communities. They also define the strategic mission and goals of each user community, and help us define the definition of "success" for the hub service. +A team of leaders *within the community that we work with* who act as {ref}`Community Representatives` on behalf of their community. This team coordinates more closely with our [Support Process](../../support.md), facilitates the transfer of knowledge between 2i2c teams and communities of users, and helps manage the structure and dynamics of these communities. They also define the strategic mission and goals of each user community, and help us define the definition of "success" for the hub service. 1. **Define success for the hub's community**. Community leaders understand the goals of a community's users, and define whether the hub is meeting their needs. 2. **Oversee user access policy**. Decide who has access to the hub, and what permissions they have. Generally done via the JupterHub admin panel. 3. **Manage and cultivate a community around the hub.** Define the community events, processes, structure, and communication channels that are best for a hub's community. -4. **Represent community in decisions and feedback**. Serve as a point of contact for {role}`Site Reliability Engineer`s, make requests for changes to the hub, and surface incidents or problems if they arise. +4. **Represent community in decisions and feedback**. Serve as a point of contact for {ref}`Site Reliability Engineer`s, make requests for changes to the hub, and surface incidents or problems if they arise. 5. **Make financial decisions about the hub**. Have decision authority for changes that have a financial impact on the infrastructure, and serve as a point of contact for billing matters. -```{role} Hub Administrator -``` +(role:hub-administrator)= ```{admonition} Role: Hub Administrator Trusted community members that perform common administrative operations on a hub that do not require intervention from a Hub Engineer. -{team}`Community Representatives` are the first Hub Administrators, and they may add new Hub Administrators via the JupyterHub interface. +{ref}`Community Representatives` are the first Hub Administrators, and they may add new Hub Administrators via the JupyterHub interface. They are able to add users, start/stop servers, and generally have more control over operations on the hub. **Filled by a community member**. ``` -```{role} Community Representative -``` +(role:community-representative)= ```{admonition} Role: Community Representative -Acts as the primary point of contact for a community, and ensures that the interests of the {team}`Hub Community` are represented in the infrastructure, and that the hub serves their needs. +Acts as the primary point of contact for a community, and ensures that the interests of the Hub Community are represented in the infrastructure, and that the hub serves their needs. They have the authority to speak on behalf of the community, and make decisions about the infrastructure that the community uses. diff --git a/admin/howto/control-user-server.md b/admin/howto/control-user-server.md index 4c1b005..d714342 100644 --- a/admin/howto/control-user-server.md +++ b/admin/howto/control-user-server.md @@ -111,7 +111,7 @@ By default, kernels will be checked for activity **every `5 minutes`**. All kernels that haven't shown activity in **in the last hour** will be stopped by the [jupyterhub-idle-culler](https://github.com/jupyterhub/jupyterhub-idle-culler). This window can be configured if you'd like to change the window of inactivity needed before user kernels will be stopped. -See the [Hub Engineer's guide](infra:configure:culling) for some documentation on this. +See the {doc}`Infrastructure Guide` for some documentation on this. % TODO: Add link to SRE guide on how to configure this, once it exists diff --git a/admin/howto/environment/index.md b/admin/howto/environment/index.md index 41b4351..21b5e4b 100644 --- a/admin/howto/environment/index.md +++ b/admin/howto/environment/index.md @@ -86,7 +86,7 @@ unable to start, due to conflicting packages. [See this blog post on using pip i ## Create multiple environments for users to select If your hub's community has workflows that differ significantly, it can be useful to create multiple user environments for your hub. -This uses [Jupyter Hub User Profiles](z2jh:multiple-profiles) to create a menu of environment options when a user launches a new session. +This uses to create a menu of environment options when a user launches a new session (see the [Zero to JupyterHub documentation](https://z2jh.jupyter.org/en/latest/jupyterhub/customizing/user-environment.html#using-multiple-profiles-to-let-users-select-their-environment)). To add multiple environments for your hub, take these steps: diff --git a/admin/howto/replicate.md b/admin/howto/replicate.md index c9279de..6f6ae03 100644 --- a/admin/howto/replicate.md +++ b/admin/howto/replicate.md @@ -107,7 +107,7 @@ Below we'll cover how you can deploy your own JupyterHub using your 2i2c Jupyter 2i2c JupyterHubs use the [Zero to JupyterHub](https://z2jh.jupyter.org) guide for their configuration and deployments. We recommend familiarizing yourself with it, as it will be invaluable in helping you navigate how to run a JupyterHub that replicates the 2i2c JupyterHub service. -All of the configuration for a 2i2c JupyterHub exists at the [`infrastructure/` repository](infra:index). This is a "meta" repository that centralizes configuration and deployment of many 2i2c JupyterHubs. +All of the configuration for a 2i2c JupyterHub exists at the [2i2c-org/infrastructure](https://github.com/2i2c-org/infrastructure) repository. This is a "meta" repository that centralizes configuration and deployment of many 2i2c JupyterHubs. There are two main things you'll need from this repository to deploy your hub: diff --git a/community/content.md b/community/content.md index 0c7ad44..2b2affc 100644 --- a/community/content.md +++ b/community/content.md @@ -125,7 +125,7 @@ This way, your HTML files will automatically be updated when you update your sit Your hub will need to be configured by a 2i2c engineer to enable the docs service (following {doc}`these instructions `). - Find the **GitHub repository** and the **branch** where your HTML files are stored. -- [Send a support request](../../support.md) asking them to enable this, and provide the repository/branch you found above. +- Send a [Support Request](../support.md) asking them to enable this, and provide the repository/branch you found above. Once this is deployed, your hub's documentation should be accessible at @@ -133,7 +133,6 @@ Once this is deployed, your hub's documentation should be accessible at https:///services/docs ``` - ## Write public books that connect to a 2i2c JupyterHub You can create public content that is designed to connect with your @@ -144,8 +143,8 @@ Hub. To connect your public content with a 2i2c JupyterHub, we recommend using [Jupyter Book](https://jupyterbook.org). This is an open-source project that allows you to share collections of notebooks and markdown files as an online website and -book. Check out the [Jupyter Book getting started -guide](jb:start/overview) for more information about +book. Check out the {doc}`Jupyter Book Getting Started +Guide ` for more information about Jupyter Book. You can tell Jupyter Book to place links *directly to your 2i2c JupyterHub* on each diff --git a/index.md b/index.md index 10b0ee4..7f07600 100644 --- a/index.md +++ b/index.md @@ -6,8 +6,8 @@ It is divided into a number of **roles and personas** with relevant topics for e :::{seealso} Here are a few other locations with relevant information about 2i2c's services. -- [`team-compass.2i2c.org/managed-hubs/index`](https://team-compass.2i2c.org/en/latest/projects/managed-hubs/index.html): Documentation about {team}`Service Team` processes that are primarily relevant to 2i2c team members. We put this documentation here to prevent [`docs.2i2c.org`](https://docs.2i2c.org) from getting too cluttered. -- [`infrastructure.2i2c.org`](https://infrastructure.2i2c.org): Our {team}`Cloud Engineering Team` and cloud infrastructure documentation. +- [`team-compass.2i2c.org/managed-hubs/index`](https://team-compass.2i2c.org/en/latest/projects/managed-hubs/index.html): Documentation about {doc}`Service Team` processes that are primarily relevant to 2i2c team members. We put this documentation here to prevent [`docs.2i2c.org`](https://docs.2i2c.org) from getting too cluttered. +- [`infrastructure.2i2c.org`](https://infrastructure.2i2c.org): Our {ref}`Cloud Engineering Team` and cloud infrastructure documentation. ::: This documentation is structured into sections that are meant for various **roles and personas**. diff --git a/support.md b/support.md index c40f41f..bc56157 100644 --- a/support.md +++ b/support.md @@ -20,7 +20,7 @@ Privacy extensions can block the pop-up contact form. ## Who can ask for support? -A {role}`Community Representative` of a hub should be the one that surfaces support requests to the 2i2c {role}`Site Reliability Engineer`ing team. +A {ref}`Community Representative` of a hub should be the one that surfaces support requests to the 2i2c {ref}`Site Reliability Engineering` team. Before reaching out to 2i2c for support, this person should work with others in their community to understand the problem and to ensure that it is something that requires intervention from a 2i2c Engineer. ## The support process diff --git a/topic/cloud-costs.md b/topic/cloud-costs.md index 14b4b53..b3987ae 100644 --- a/topic/cloud-costs.md +++ b/topic/cloud-costs.md @@ -61,7 +61,7 @@ In practice, the cost per node depends heavily on the cloud provider, and is con We recommend checking out the following resources to learn more about cloud costs. None of these are guarantees about costs, but should give you a general idea. -- For general information and explanation, see [the Zero to JupyterHub cost projection documentation](z2jh:cost). +- For general information and explanation, see the {doc}`Zero to JupyterHub cost projection documentation`. - For educational or "lightweight resources" hubs, see [this rough cost analysis notebook from the UC Berkeley DataHub](https://nbviewer.jupyter.org/github/berkeley-dsep-infra/datahub-usage-analysis/blob/master/notebooks/03-visualize-cost-and-usage.ipynb). - For data- and compute-intensive hubs, see the Pangeo two-part series on their Kubernetes costs. ([part 1 link](https://medium.com/pangeo/pangeo-cloud-costs-part1-f89842da411d), [part 2 link](https://medium.com/pangeo/pangeo-cloud-cluster-design-9d58a1bf1ad3)) ::: diff --git a/user/topics/policy/acceptable-use.md b/user/topics/policy/acceptable-use.md index ec37204..43cd958 100644 --- a/user/topics/policy/acceptable-use.md +++ b/user/topics/policy/acceptable-use.md @@ -25,7 +25,7 @@ When other policies are more restrictive than this policy, the more restrictive - You should make a reasonable effort to protect your passwords and to secure resources against unauthorized use or access. Where applicable you must configure access to other cloud services or data in a way that reasonably prevents unauthorized users from accessing them. - You must not attempt to access restricted portions of the network or any 2i2c Managed Infrastructure without appropriate authorization by a 2i2c engineer. -- You must not attempt to use 2i2c Managed Infrastructure for the purposes of [mining cryptocurrencies](https://en.wikipedia.org/wiki/Cryptocurrency#Mining) unless explicitly given permission by a {term}`Community Representative` for research purposes. +- You must not attempt to use 2i2c Managed Infrastructure for the purposes of [mining cryptocurrencies](https://en.wikipedia.org/wiki/Cryptocurrency#Mining) unless explicitly given permission by a {ref}`Community Representative` for research purposes. - You must not use 2i2c Managed Infrastructure and/or network resources in conjunction with the execution of programs, software, processes, or automated transaction-based commands that are intended to disrupt (or that could reasonably be expected to disrupt) other computer or network users, or damage or degrade performance, software or hardware components of a system. - Do not use the 2i2c Managed Infrastructure to distribute or facilitate the sending of unsolicited or unlawful (i) email or other messages, or (ii) promotions of any kind; - Do not use the 2i2c Managed Infrastructure to engage in or promote any other fraudulent, deceptive or illegal activities. diff --git a/user/topics/policy/privacy.md b/user/topics/policy/privacy.md index eeb21aa..b4e25ee 100644 --- a/user/topics/policy/privacy.md +++ b/user/topics/policy/privacy.md @@ -17,7 +17,7 @@ We require _access_ to the information our infrastructure while it is running, b - We do not retain or share this information for any purpose. - 2i2c may have access to personally-identifiable information that is used for _authenticating_ users (e.g. e-mail log-ins). - We do not retain or share this information for any purpose. -- We do not change or delete any user data on a hub without the consent of the hub's {term}`Community Representative`. +- We do not change or delete any user data on a hub without the consent of the hub's {ref}`Community Representative`. - We collect aggregate statistics about general _usage_ of the infrastructure for monitoring and alerting purposes (e.g., number of active users each hour). ## After we stop working with a community From 4c9073e7b6f8f8c7031c5c75de7b9a578e3fd54c Mon Sep 17 00:00:00 2001 From: jnywong Date: Thu, 7 Mar 2024 12:42:19 +0000 Subject: [PATCH 08/33] Add intersphinx_disabled_reftypes Prevent local references from resolving to external docs --- _config.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/_config.yml b/_config.yml index b552bf8..44ea736 100644 --- a/_config.yml +++ b/_config.yml @@ -98,6 +98,7 @@ sphinx: z2jh: - 'https://z2jh.jupyter.org/en/latest' - null + intersphinx_disabled_reftypes : ["*"] # prevent local references from resolving to external docs rediraffe_branch : main rediraffe_redirects : # Added around 2022-09 From ae7b41226c1399f9ee42549678cd0eb0c8fdc30b Mon Sep 17 00:00:00 2001 From: jnywong Date: Thu, 7 Mar 2024 12:44:04 +0000 Subject: [PATCH 09/33] Use dirhtml builder option --- noxfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/noxfile.py b/noxfile.py index 0c72e2b..05f2c14 100644 --- a/noxfile.py +++ b/noxfile.py @@ -3,7 +3,7 @@ nox.options.reuse_existing_virtualenvs = True build_command = ["--builder", "dirhtml", "."] -sphinx_build_command = ["-b", "html", ".","_build/html"] +sphinx_build_command = ["-b", "dirhtml", ".","_build/html"] @nox.session(venv_backend="conda") def docs(session): From 89b880b12f8ebc2dedd7b226b18c26df93eb58d1 Mon Sep 17 00:00:00 2001 From: jnywong Date: Tue, 12 Mar 2024 13:20:23 +0000 Subject: [PATCH 10/33] Revert back to python>=3.9 --- noxfile.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/noxfile.py b/noxfile.py index 05f2c14..fe3667b 100644 --- a/noxfile.py +++ b/noxfile.py @@ -5,7 +5,7 @@ build_command = ["--builder", "dirhtml", "."] sphinx_build_command = ["-b", "dirhtml", ".","_build/html"] -@nox.session(venv_backend="conda") +@nox.session(python=">=3.9") def docs(session): session.install("-r", "requirements.txt") if "live" in session.posargs: From 815b00f458deab557776538e9f944c401f76e123 Mon Sep 17 00:00:00 2001 From: jnywong Date: Tue, 12 Mar 2024 14:35:13 +0000 Subject: [PATCH 11/33] Add custom.js for FreshWorks widget --- _static/custom.js | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 _static/custom.js diff --git a/_static/custom.js b/_static/custom.js new file mode 100644 index 0000000..53d3d1d --- /dev/null +++ b/_static/custom.js @@ -0,0 +1,15 @@ +/* This is the function to open the widget code */ +function openWidget() { +FreshworksWidget('open'); +} + +/* This is the widget embed code */ +window.fwSettings = { +'widget_id':80000009162 +}; +!function(){if("function"!=typeof window.FreshworksWidget){var n=function(){n.q.push(arguments)};n.q=[],window.FreshworksWidget=n}}() + +/* This is copied from https://euc-widget.freshworks.com/widgets/80000009162.js */ +window.onload = function() { /* Wait for document.body to be available */ + var FwBootstrap=function(e){var t={};function s(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,s),i.l=!0,i.exports}return s.m=e,s.c=t,s.d=function(e,t,n){s.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},s.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},s.t=function(e,t){if(1&t&&(e=s(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(s.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)s.d(n,i,function(t){return e[t]}.bind(null,i));return n},s.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return s.d(t,"a",t),t},s.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},s.p="https://euc-widget.freshworks.com/widgetBase/",s(s.s=0)}([function(e,t,s){e.exports=s(2)},function(e,t){e.exports="https://euc-widget.freshworks.com/widgetBase/static/media/frame.d7ae132c.css"},function(e,t,s){"use strict";s.r(t);var n=["FrustrationTracking","Predictive"],i={boot:"queueComplete",open:"openWidget",close:"closeWidget",destroy:"destroyWidget",identify:"identifyFormFields",prefill:"prefillFormFields",clear:"clearFormFields",hide:"hideWidget",hideLauncher:"hideLauncher",showLauncher:"showLauncher",show:"showWidget",setLabels:"setLabels",updateSettings:"updateSettings",updatePreviewSettings:"updatePreviewSettings",updateTicketForms:"updateTicketForms",reloadComponents:"reloadComponents",authenticate:"authenticate",authenticateCallback:"authenticateCallback",logout:"logout",hideFormFields:"hideFormFields",disable:null,disableFormFields:"disableFormFields",hideChoices:"hideChoices"},o={id:1,product_id:1,account_id:1,name:"Help widget",settings:{message:"",button_text:"Help",contact_form:{form_type:2,form_title:"",form_button_text:"Send",form_submit_message:"Thank you for your feedback.",attach_file:!0,screenshot:!0,captcha:!1},appearance:{position:1,offset_from_right:30,offset_from_left:30,offset_from_bottom:30,theme_color:"#2392ec",button_color:"#16193e"},components:{contact_form:!0,solution_articles:!0},predictive_support:{welcome_message:"",message:"We noticed you’re stuck. Tell us what you were trying to accomplish, and our support team will reach out to you as soon as possible.",success_message:"Thanks. We'll be in touch!",domain_list:["freshpo.com"]},hide_launcher_bydefault:!0},active:!0,updated_at:"2018-10-01T14:16:05+05:30",account_url:"https://localhost.freshdesk-dev.com",recaptcha_enterprise:!1,languages:{primary:"en",supported:["ca","cs","da","de","es-LA","es","et","fi","fr","hu","id","it","ja-JP","ko","nb-NO","nl","pl","pt-BR","pt-PT","ru-RU","sv-SE","sk","sl","tr","vi","zh-CN","uk","th","ro","zh-TW","lv-LV","bs","bg","hr","el","ms","lt","sr"]}};function r(){return window.fwSettings&&window.fwSettings.preview}function a(e,t){return e.indexOf(t)>=0}var d={init:function(){var e=window.fwSettings.widget_id;if(e)if(this.origin=window.location.origin,r()){var t=o;t.id=e,this.initWidget(t,!0)}else{var s="".concat("https://euc-widget.freshworks.com","/widgets/").concat(e,".json?randomId=").concat(Math.random());this.fetchSettings(s,this.initWidget.bind(this))}},fetchSettings:function(e,t){var s=new XMLHttpRequest;s.onreadystatechange=function(){4===s.readyState&&200===s.status&&t(function(e){try{return JSON.parse(e)}catch(t){return e}}(s.response))},s.open("get",e),s.responseType="json",s.send()},showWidget:function(e){var t=!1,s=e.meta,n=e.settings,i=e.components;return(i||n.components)&&["contact_form","solution_articles","frustration_tracking","predictive_support"].forEach(function(e){var o=s&&s.data_version&&i?i[e]&&i[e].enabled:n.components[e];t=t||Boolean(o)}),t},initWidget:function(e){var t,s=arguments.length>1&&void 0!==arguments[1]&&arguments[1];if(null!=(t=e)&&0!==Object.keys(t).length&&e&&this.showWidget(e)){this.options=e,window.fwSettings.originUrl=this.origin;var n=new URL(e.account_url).hostname;if(!s&&!/.*(\.freshdesk.com|\.freshpo.com)$/.test(n))return;window.fwSettings.options=e,this.messageHandler=this.handleMessage.bind(this),this.createMountPoint(),this.loadIFrame(),this.loadJS()}},createMountPoint:function(){var e=document.createElement("div");e.id="freshworks-container",e.style.width="0px",e.style.height="0px",e.style.bottom="0px",e.style.right="0px",e.style.zIndex=Number.MAX_SAFE_INTEGER,e.setAttribute("data-html2canvas-ignore",!0),document.body.appendChild(e);var t=s(1),n=document.createElement("link");n.id="freshworks-frame",n.rel="stylesheet",n.href=t,document.head.appendChild(n)},loadIFrame:function(){var e=document.createElement("iframe");e.setAttribute("title","FreshworksWidget"),e.setAttribute("id","freshworks-frame"),e.setAttribute("data-html2canvas-ignore",!0),e.style.display="none",e.onload=function(){var t=document.createElement("link");t.setAttribute("rel","preconnect"),t.setAttribute("href","https://euc-widget.freshworks.com/widgetBase"),e.contentDocument.head.appendChild(t)},document.body.appendChild(e),this._frame=e;var t=e.contentDocument||e.document;t.open(),t.close();var s=document.createElement("script");s.setAttribute("src","".concat("https://euc-widget.freshworks.com/widgetBase","/widget.js")),s.setAttribute("async",!0),s.setAttribute("defer",!0),t.head.appendChild(s),this.bindMessageHandler()},loadJS:function(){if(this.isFrustrationTrackingEnabled()){var e=this.frustrationTrackingData();if(e&&!window.FM&&!r()){var t=document.createElement("script");t.src="".concat("https://cdn.freshmarketer.com","/").concat(e.org_id,"/").concat(e.project_id,".js"),t.async=!0,document.body.appendChild(t)}}},helpWidgetMethods:function(e,t,s,n){if(e&&d[e]&&a(Object.keys(i),e))return d[e](t,s,n)},widgetRenderComplete:function(){if(document.body.contains(this._frame)){var e=window.FreshworksWidget&&window.FreshworksWidget.q||[];window.FreshworksWidget=this.helpWidgetMethods,e.forEach(function(e){window.FreshworksWidget.apply(null,e)}),this.postMessage(i.boot)}},bindMessageHandler:function(){this.postMessageHandlerBound||(this.postMessageHandlerBound=!0,window.addEventListener?window.addEventListener("message",this.messageHandler,!0):window.attachEvent("message",this.messageHandler,!0))},unbindMessageHandler:function(){this.postMessageHandlerBound&&(this.postMessageHandlerBound=!1,window.removeEventListener?window.removeEventListener("message",this.messageHandler,!0):window.detachEvent("message",this.messageHandler,!0))},handleMessage:function(e){if(e.origin===this.origin||"file://"===this.origin){var t=e.data,s=t.eventName,n=t.data;(s||"function"==typeof this[s])&&this[s](n)}},postMessage:function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};this._frame.contentWindow.postMessage({eventName:e,data:t},a(this.origin,"file://")?null:this.origin)},boot:function(){this.bindMessageHandler(),this._frame.contentWindow.Widget.mount(this.origin),this.postMessage(i.boot)},isFrustrationTrackingEnabled:function(){var e=this.options,t=e.meta,s=e.settings,n=e.components;return t&&t.data_version&&n?n.frustration_tracking&&Boolean(n.frustration_tracking.enabled):Boolean(s.components.predictive_support)},frustrationTrackingData:function(){var e=this.options,t=e.meta,s=e.settings,n=e.freshmarketer;return t&&t.data_version?n:s.freshmarketer},open:function(e,t){var s=(e||{}).widgetType;if(e&&s&&a(n,s)){if(!this.isFrustrationTrackingEnabled()&&!r())return;this._frame.contentWindow.Widget.el||this._frame.contentWindow.Widget.mount(this.origin,e.widgetType)}this.postMessage(i.open,{cardType:e,data:t})},close:function(){this.postMessage(i.close)},prefill:function(e,t,s){this.postMessage(i.prefill,{formName:e,formFields:t,options:s})},identify:function(e,t){this.postMessage(i.identify,{formName:e,formFields:t})},disable:function(e,t,s){this.postMessage(i.disableFormFields,{formName:e,formFields:t,options:s})},clear:function(e,t){this.postMessage(i.clear,{formName:e,options:t})},hide:function(e,t,s){e?t?this.postMessage(i.hideFormFields,{formName:e,formFields:t,options:s}):"launcher"===e&&this.postMessage(i.hideLauncher):this.postMessage(i.hide)},show:function(e){"launcher"===e?this.postMessage(i.showLauncher):this.postMessage(i.show)},hideChoices:function(e,t,s){this.postMessage(i.hideChoices,{formName:e,formFieldsAndChoices:t,options:s})},setLabels:function(e){this.postMessage(i.setLabels,e)},updateSettings:function(e){this.postMessage(i.updateSettings,e)},updatePreviewSettings:function(e){this.postMessage(i.updatePreviewSettings,e)},updateTicketForms:function(e){this.postMessage(i.updateTicketForms,e)},reloadComponents:function(){this.postMessage(i.reloadComponents)},destroy:function(){this._frame.contentWindow.Widget.unmount(),this.unbindMessageHandler()},authenticate:function(e){var t=e.callback,s=e.token,n=t&&"function"==typeof t,o="function"==typeof this.authenticateCallback,r=n||o;n&&(this.authenticateCallback=t),this.postMessage(i.authenticate,{token:s,hasCallback:r})},logout:function(){this.postMessage(i.logout)}};d.init()}]); +} \ No newline at end of file From a4b7f0ecc7e2ca56db26644b6fc30e2ad65d94c9 Mon Sep 17 00:00:00 2001 From: jnywong Date: Tue, 12 Mar 2024 14:35:27 +0000 Subject: [PATCH 12/33] Update intersphinx links --- _config.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/_config.yml b/_config.yml index 44ea736..8104578 100644 --- a/_config.yml +++ b/_config.yml @@ -87,10 +87,10 @@ sphinx: html_theme : sphinx_2i2c_theme intersphinx_mapping : tc: - - 'https://team-compass.2i2c.org/en/latest' + - 'https://team-compass.2i2c.org' - null infra: - - 'https://infrastructure.2i2c.org/en/latest' + - 'https://infrastructure.2i2c.org' - null jb: - 'https://jupyterbook.org/en/stable' From 319a4e385a7293353ca1b47045c6026fd02e7f97 Mon Sep 17 00:00:00 2001 From: jnywong Date: Tue, 12 Mar 2024 15:01:24 +0000 Subject: [PATCH 13/33] Convert link to broken GDrive image to static uploaded image --- about/distributions/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/distributions/index.md b/about/distributions/index.md index 9184675..682c557 100644 --- a/about/distributions/index.md +++ b/about/distributions/index.md @@ -3,7 +3,7 @@ 2i2c builds and operates **distributions of JupyterHubs** that are tailored for particular use-cases. These services share many of the same infrastructure components, but have customizations and optimizations that are more domain- or community-specific. -```{figure} https://drive.google.com/uc?export=download&id=1vL8ekAtUQ4TEik4-oWIn36VAOITdlmpR +```{figure} ../../images/hub-overview.png :width: 80% A high-level technical overview of an Interactive Computing Service collaboratively run by 2i2c and a community of practice. Each hub is a JupyterHub Distribution with a collection of community-led open source projects that are customized for a particular use-case. From c42c59fe67ff29386fa4e49d4003d2045956540b Mon Sep 17 00:00:00 2001 From: jnywong Date: Tue, 12 Mar 2024 15:01:54 +0000 Subject: [PATCH 14/33] Minor rephrasing --- support.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/support.md b/support.md index bc56157..3625508 100644 --- a/support.md +++ b/support.md @@ -10,7 +10,7 @@ When you make a support request, please include as much information as possible % Copy the style classes of sphinx-design buttons % The JavaScript that this calls is defined in conf.py ```{caution} From cdb94af3a0774872ccb356951662f3dc9fc65af5 Mon Sep 17 00:00:00 2001 From: jnywong Date: Tue, 12 Mar 2024 15:02:08 +0000 Subject: [PATCH 15/33] Upload hub overview image --- images/hub-overview.png | Bin 0 -> 198678 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 images/hub-overview.png diff --git a/images/hub-overview.png b/images/hub-overview.png new file mode 100644 index 0000000000000000000000000000000000000000..fa04c0dc4c0f1f773ea1886f59e7d3e78aff336f GIT binary patch literal 198678 zcmeFZbySpL7cCCb-JOC0g0x6?3J60Z$S{D2Gzdd8NDC68(hX8W3=PsDpwc-gEi%N= zoqAu4@4I*1fA1gn7sGO~aG06*dCqzE*?XV!5(UyxCn01c#K6EHd7z=9kAZ=!hJk?< zj*kock31Pz0r-aLp|7rlQ8C244*Y;^r}$721EVUQ=+X)Y_?f^>r{JH?Qzgm?tv@e%APl|7>lWKbl*W^Ue;0Ife-L(qr|~JH=pzVloj^ zYCO3Wd@D?WCp7FiJC7FdW%rKii)1h*VSa{~3JU?_+sB{!qL`e$O=;*3;87 zmaB|+)S7?Sw32<7Sno>X;lsoveslQNPNe*0ZVbJ!k_@Zv;vi@wxJ&ro7a7`h;`0U%5=y=kw&}&r za+cB5(z0D0${hRPVfSID?cz%^O;Dc=9w{@(V$=}%!DIDDmj8B1CF`!M44B0$!pb?7uFTEuNV4Qo69k;l$01;I#?oM(H0tHwhl4>THfJaA z53|~5H$Qy%5NslL*ATV6&~C}<`y)ZK-(GO1^Gyui);F7m{tV_RZl zu+I|Cq-7BFaid$V%t%M}skagP$46Dx;qZxCL6gdmqaf5kY6o?i94_Y(x2&wiydS!J ze{W?eddJ~FAhMVR5jXq|A>~207{LZR7A`y?nOXsGh z!D-BYK8bq9L6%<8TdMun)sE5a^-S;iJ4HH~Zvrol6B|ZG;>GTHii-K}|Hw&f`xZgM z#A|q2@u-GtSNlpyL)7{sz7YenHo9sn&#Mj=WoT)M*iXG7zWWB2$xF%a0?IcmO*FL z`O@W}P48K08p9+!#{zwWuV25?@WS;zSm^6h`rMbv9xhVKU+RwR2eMi(x4$Zq)lVa^ z=oOt{Qf+N*hxCTJ1uo|#fzZH?zMgvF4p^T~p57Q6YTOfS$Io5WT_aB5f zm^p~icTO|UH9`3hcgL5bazqZ^>dM^-YT-=`AsGbUWUJ^2ew4~sHnFnWV3KES3pPQ3 z%kSwtsMKFru&Tx8Tyt>w{xOQCH>N5%k`30VmWZ6RvYdh>?&!RE^X5lYA1hxFf&n(& zJXNasiW2*-)ICDF2?*@sWXEKAXU!Lf@A~9BtW(CFv7nuA%uOEw7u$6>5VDdfWTjM) z^vtwvG+#Zry@Hp2b#sX_gohi-5(CM!nv;Bpyn9NzYaxN7f~wb_17YoqmVX!G*M9pi z6N-6(g$Xy0R-5=af2}TP`CeA&&5tZPJUk@y_7gv*oM9gh) z_)?G?lciV&A3DoM)T2CEmZ9gexxJF`e#noma3TkbwDGR<-ZqM!w(Y$gi)JsJ`9NhC zmx|hFqj{ImwWn3^UDhj@HqrR4e?f#tn~|suxYTaa7#}x(;VhqadG-`3$TP`egH5yV z#|UNMoes^==%rUw&2P1);#UVHyfRiWQ&dzuo4#ATh$tOiyu}zoQKQe|J&CYvZ)-8a zHPf3m=g1L}dyLepTltj02{($!I@z9U#u`?^ok@iW*2_CZrnNHNspS=I;Nw2d;W9k& zk0fKOsJsFe-wZDmF#v5?fPja1PuaV4YVSl1aCBBq2>#jwA2_*!jyc5ft)U?%eGZH6h#E+d&D%Sdv( z;ONh+c}A-el}|pu**`IWn4;;mHkdLs)hE}Ed`9azyq@uWVEDP_GBN62L0x&VfLei9k&Q8U)qWFur4$>6|&uflFh zgF3JLrL#Gw5$Q zdP>Atv>^JgR_IC8(Z;0kD}fRsrAM{~z92Pt)tMNZL`3+`{0`UjwuFl0LMROJ^T#ZP z@q*PWwqJf)48lyI056o^7VI}HsQ z1a)y+%WuL6^#<9=%V~skba;;KIR{9lZgjK8K;#ZqhshWjznOoKs1vAZ=bC^V9xL22 z^tR5OxJ55)ezABU4W)Q$w{4Koiy@3ecLZbc1;PR|@M*DAFUCMK|CT_ZCv?4rWqjzO%aL(1z=-h*rq3*&-)E2dc_qEUgskjP|3^fK&2}0tx)M5cRZL4 zHA$z&t!1<6W*tKD!iUbn@?=w@Q{F}?i96HBZCA%L9ip&f=fRTFJA=$l%;SVp@a}m{ ze#1`?k!EY9U52|(LP&xyl~&!nByg85&jI#Hd+9Ebe420=iBcpababYfooF)Clt+v} zZQ$x0;9Q&x3=F|`AOYew*^vYQg{-uZ;;$( z1YTC?xbwWC4aSLDt%|3hB&eyDe&h0G^@t@g@#uDGDv6qS4OUhbHXC7PW%wbt9gwE)eBb|#dn{X8$PpYf9=bw4*Equ z!4`V4`~fn<@GlrZK2gS`Bt9zsq^$Z_=&7wuU|cTwoiH}0`%cB=B4OyCJd{v|n4ENu zn%g?J_^B|wpQEFZkhyFz+T$-%8cMj8CdT5&5bO;p6%T7zR@0g$(I$UyMsKnZUz^@Y zqG6@N80)6&;fV77gn@22zfUGiw|JQGv-e{b{2L>19o?BbZk3UPVhnFfnmS*$LVH=f zXO|k~wpRA~*bqXWS_7NKIZ0fd5#x9&5}t#$5sC^3F;^_AV|{b%5zI3#qX3? zGAd4^4+VD4tzCVCHNU~q+izK?i)A$8=DtzHr|1<#op{RHVqgH>n!ts?c*rX!*N{q?;(na&GU<;6i5L_!Q?%_nC_{vk=kUj~t&4q43wDZY{UEq>Ql% z>GM0LC|42kFyCeeQNFH4Kz4$Lvrc=#0#_IKxUCv16c)LDGB7zbew z5E>kw#kc)pDm5ih+bG>fGM`}DZqI%Qw(H{K<$dF|^)0boe8QCa*ya7e-phe#cWQrA zh#i?4oDmg91q9XNcrR&SeWoEDG#90sS06%Aw4eh`ooRFtd%2?Wtgv}FO$rKMc09DH z`ylh5D4GKolj8ltq+#NHddfEtG8aFECRnWeNqH=ALCpv~#&duC+s459KD|hyKf(+S zmwfGO)LUDLN4+Fh^k~VsK0@f^c0!DNn85Y`XiDyr_e0fv7G#)YR)l0@)7P~3_j`Yq zxCn&^JzeYwUfC%hd_DBI0e?wIFzm@`!#vl()mze;T^96->c0Pf%Efd2e8|VL0r&$& zlgA{JnMtzLisF`aEYS+iIGo3zA4`#JagBN7L(JF=1vlFx-8Mw&6?+1Crsc@9){%G@ za$DoEPg1wA-XTp)ZFeXI#|S+)u?lsw!38H@n-jY1YKP_DIFGV&OnNm00IX%&d}e)X zh&kxiV{hw(Vi%zs`22_djy2G1NmF^)+oxI_S99rDd+3}2;z=Qrf0vlIQLHCqy>nj3 zi&YZOAX<1Ch_YBdBA{`k|6wAiZV}D_VgdxSQZF3h$8Ft zYY;2tbRR20PZka zY2}1#wj}Vlk=&>Lypna`i<@?XaGaQaawmR@qD7@MLoPn=&m**FNjc=>ykAK@Z!V{; zCHPWcbvRp4E?aOnIvNxeFQnJbisl~^m;-$-Ux-wAGL#{?a)DLLjDO#!nWc?;z(kj5 zF4&?iKyue3TXK|%i^C;XQS@3v@3&lPF9b}D` zIhpm~C01DRzlD=nZ&XfS_CUy*OqJDd?WUyL;)~^KNt(N^mCdJnjjh$c`s9CB5wpse z0t&@6cSS`}F&JK)DdSsB%y_R@hc`O3bG5i1Si0Gb!~@fv)2ymEQWmNA^;B0ak3s^o zkA1y2CLZWy%UP^9ckJL|hP58)zh6>t?y@*-;$XzFQXS5cT^TFTTIr8nQC&I3B9j3v zL5nBi55=9lIKxk_MeNGB5?`=}6>PaTmM=(~M&Sn{06!S3JJMBJK6A zKr0zHs~jKUIGPup#tQTHn`!Wld|JVF0QC_pRQ#7ChAfk$YMY&EjqVJaptEpIq2K(r z%<=fk#s;j@#M!af6!s%Q-4M+j_V{>pbmQi1$1)Trapt=0fhbrj77w&jgmU#4 zsR&UvUYrG5P~L4l-+ADoHOC1}x&})DlBMAN2=zP{l4)E(1LPwA80E&nQnOi$PZgnd z<~$P|`y%sOGh)2QUYn&xn%}~~gWc!f;fE5&oe4L_Ha2<4N3NI0 zPmftf=gCcDzhY-$Of7xQ7s%Dv-;E&Z=$!JOS%fO)4(>=zHz_#c%pS#`d@Wir+-(B4 z`jzCsZ{~7bu8rm^ntw{cDOam^nKLV|NZc&<1PLAE_p+Dpw%7r3%n071&J&&_)Hz`y zWX%STC?^}aO>HK$u7EXn;<+<#5u2UcFsu4Cadrd{EIu&a)7X6-uH;K*-;}z&oKKmONBVM^WZCi1CNZZ zSvDY)aabUhr3eUi`6_u%YQI_H_Q#yUi#iSY?0K${Z)6u(S4@hXUa=5&pd>g59l7;k zdtBvBH;;~O&Jbw6Zx8ynQVwo0#(>O!CmQ%(e8=klrHO!0|{)uPW!IicU(@= zKYa>4gKkLJ_3{3M0>tVH%?b~`9BMF~+oa;LUgB6uNlCTu!BhK5xRI}0$kZ)9<1&cE z7Lby&1O)|miN&DA zYF##efaf7eD8==saz!9@gKY&A?u@akBEO(FvZ zzQ8UTS-pH%5gvp%haOV3BmH}8`SI{R3d1FT#kFvZ{-|+!PSn06O&BKNwXX2T>~jBP z`BLvZGqInuxRW4~Tu>jH076fNo#3X&1+tz?kIdXKv#bM(8_NYkeR631-#eBpS1%G|X?0DT?kmyDEuqQ=pm zCg%8s&sF}{$Jm4wpujf-T9w-;T2x(7G-1RAMg@!)z{dKYM3w#x|rww9= zCv?V^K5fYAO?Pc8*`5ws490sh-{Sk`_3IpznB!F0e&=_OY49ani^dh2h9)ruXJI_Mo$0E4n^)w9wPXNq4Pe-`$w)~&;pvVb zp^ERL@|hCk=YNV$zJKUG3D43O|yb{RQ=?^qF(!XTKuE0mVlNaOu|as^TJR4 z*5HZ&hwfr8#eKd*KRU4DNoWN0tm0O)1NI+0(9t24F-QQ@>D<(lK#5GepHLT~EDI-Z z8c|v-wltY(7yf;6;D5W4PlWlVg=v+Xh5H12FZcS4UWGzNlrU|47we8Sy=wO5OmSp* z^MMwb=}$?aiio!$MTNk@B7u+uNI&M&SM2^hu!kWOLRjoY&V9tXArCp<6;j6lwoZ}$ z>%vr<>P2y@IKAJSVwnB6Df(!D(90hkktWn9KrlJ^CgMwAD|55=4ylY;)qb0KgUk2l zA8rgAh6%IoG8QFKF!uT=tOX;#hQ2sY({;w#>{qm9!E|DgBGJq)MX;RM7^{C>-X}29E5qzbT{mQr`$AB2gX+>T(XsohrZc26F3-EzyzepRz#r z7YS%9AqZkz zJ5yxzKdpKG_nMWAK1H4npq@tns9*KuTdjRQZU7!j3V=?NRsx~pQuw!LkLmuiVD(%5 zv>X2H*J%b9{I}1=pVY$d^E!1KRZ9bXpL9kW%pLK*REUY07?IjY*LR?+qKEK+`}FyD z^W%lVUz7dbVsW=7RyN$_7m&vkG2Ef!8`GuVizlu}DVH zg0r53v__pF32?81mD)eX%2Dv2lc@Ge zs|Qm$?H+*?l?;g0$OEv^)`a}tBO!Re<+LDaE`X44aMBAGh3*J*aw=!}q8N@`!?-4G z|Ezlqf*snIKWQN3u{uN|#UdN;hP7xj!zSxj>*w6K^V@7H7Wf-$!VVvDe)D=mng)4* z6FdQM1+Y|=ZFhjKM!)&1T8Bx^{r&wL!^WG|>wxo@{PE+*4$;KaWxZ)WxU$iFdYYzC z$ng1Q%`kjb32G4$JRqDS30|cpT#LSPquDy5hA5 zN=kTbnudRw1>qpN(aMSvV?ZlvpS`1G@dF@y9~c`OFItFCm_Puy!ZeJFrx)f}lj>Zi z;?jOC>47Q^5?2wr;Rk}&WV}28`rtOXf#?&! z=@shj%~O5FYj~QE1A6e_!6FTf6~^k{zs~9CW`g;uUQk)+Pu$48eeMn zY!FJ#OW#>-W%f+i8kT(u+ml6lTKs`O+`sUrQipE=x=H`xU`TppqQoFr{rAj8an-+x z97C-ZFye4$!Lsh10v|zb{cp_5>ka=qp`*ty>AU}a<2m87{eWj(99Cc=^v|xLf~~ z(S{ENlC|pSuZ2RM*{kbrTLrk4(I@G;QoLm3{I{4%Lt|sE&!0a#I3?Kh#eJ@GL>ij@ znJkK>`}eg~eXf64iuXY*1z|M30aPriI@TJ|0~$>@;JMQ!YsUV7z3)98oTEf@AepPfaT*;{xc=@u$l}pG>OhVdeYQkd zLvc6n9bkIG7MNNJR)6{O@&dOOzeA37m9==&E96Sv3>Oj;6%!NFkq=v6Ul(zhDBdUX zzLJW05L|USQE3f8t!|7A?P_#m!=e!GflppNU9cH%W)~ z5++uX$zQrnWGIB&u+oj19wKiS@ACp_qq5mqB` zIqkHm^9AdT`>Ha=Osw7y0w&h>756jcs0e`^7rA*klFNV01Rwz+1MxDm0$WW+TvP|- zecm~tnx>}a4}jvE9CWrVz?|$I^7u7g)(7}rocnMwv~mji%{{$R0(F!+u=$lMG~oHpu#=s0Q0VN6!Rcafd+042eU&M) zXLR~r59Ai(23=lxTiB62HPQ9Tm4n95f8gZ4^c6Q10vw{TYFn)%))wyr)L^h3BV8Z` zJwG>SX}3comIfAd%3?i3Y_z1TQl-^EsOT7TJ&wp)Zkp>_Pbd`n5|T)GF6M(cOWQD{ z427|sKWJFMbTnp_7$lmz`xPfW`Sk^H z9U$@}>&G*$CRU0T@N!?A3vk`}JZf|Ud#BTDSw#@hdgJX&>$m+YZ(Qb@O0JZOuMCAG zj`Qm{k4>H_TF151JP-<57BQQ=nRCCHP9-_{>io!n|01LgER4wSX5l>gNsZ{c$XJ}U z1<(RMggqCvzS1#miN9ava=320XFwbr@5v&sR&#q zw6)NnOwyvgTG~vhHR6RGD>L9tY^h{}QxQFzCe-~PqKPEfeqYETt8N+!2sDea< zWk6Q4CG63p>sNFw;HB`Q+_i(+P1_|UB^@p$<{SxoBgQSdRjVI{d=MBso3=_buXoa0 zAdn*h#}7vgzf3Yg*};caM;9Im<<>tq5M7jvxfzzuwJY6M{k_-T$&%~JccdD*`INey zplIhM4?QlYVUg!;Y%l$1N%2%s8mZo)_og&`0?F~cE2C*qnAKG$NkD>@PHJPw++Ti+wzYl0Mb@67Wm)Q?{%ws1|$nT}tK zLoNag8S_PEG7yhI51i`b2MQ_Q)uQ;6TmSbPPq4$4eww1od*`w^z0hldHu` z^$!LgCwImr`#C-KkUO@96>bEuUS;BhZh_ht+8(B5W6mL#nYG(#d*&bVnU&>5w2i>`{%EOwC;qgLcmgNwxomVITWdV`@yW+cMr^#>GKFNkK3g-c z?d7D0$I|yXY+2bu%ZK4(cmaXzJtr}m_!*lUZ%ftL0uATBE=|}*Z0~o%@G7Y?WNeyz zWVhKny~+F-K%02>9%n+o05T6(e7Z+J#gB@YmepP(y^-AsizL_{>ZmVVMXR`)`(179 zP@pm5Z88@{a~8HB-ii|C2D5=qI{A-ko;tW$&OOAv9y=@^81sI;c=Ez|YF!)>iCjDh zS&02P5BEEvPBIr%cb;>8@=H#*9X@-dtTNhTPwv$^TuateaiTlj2eDknrmFxP#3;XC zZ*FVdh@YQMo;gt@cW62fG%eJ)&a4H7P16b_L7_9DnBd3`(S49F6d2_%*&*&r)=;K+ z`9r$)l_%Jb#rix&_a8K9Oqn=4A53poUa3~g8m*itsEiWvpScZ2UftNh7jpA<9=%{H zx?-y!8>r~4l2?{hcW{97o=UTh4@)1t$vp}6k^7x#1}*b#!+n>Y5-*kwfm$=^PK4;L za{~t1`;(QEAs5r2fxy~vDPRh2L%j0t@llA)+I1(tjTzO(jLa$CQEbR4&hI!lrTW!d zyT@E{F>sc%c<%i1B?aIfvjgt0A@ZXSe~wrbD;^PoNyf+RtZB6TnUGv;n=!P>o$jEI z{+-LO^xs3B@rOIedaG^P#=)RpsMG1w3ar7)Le3Dwv`hu=BF<6|rAmfY-M@h!n*Q=(i4IJ^ zCyzzAfjROV7mba^<=29;5GFl{lsT0-)v4ODnU`o#zly0)?^x|!LkNK7lCxy z2J`Dsf`$X+09Mm@kNh=5djY}0BbddpI<9e&Pf6{OW4mnS@=i|4rlI-TIMekLY~l7M zEL6R?nYohLsKiic36ig?oiSwxUBi+qe6^x>@YKV1Fa#^3^@7ymbNK33qM6rIzFXMT zX<%IH3om$fcjiZlPv6?ru^rAo(jCkL2Fh8mgsCuIU)}f&?UZ1W`1Hxk5ULwRZ*O^I zem_{F!Yc}qcHNbYXzJ&lAi#mqod&MGy;Bsj{#|^rwl!tO&|=p42`qc^!$suFJR$-3 zfJ;rKd?#%7&f~s8T>5zI;iVg6QD2WuHmKv)))H zlO=j<@IjclSF3yvdQXmIe4O91N(LATMR<sd2pyrR8AZmI?P%ohCh|uRz=wZyHs3^@6&5voPgdg zj5=c7yh82cmI{t82x?Xe*RxODx9{@sW0{FhM)?Z5;MT@l;+=|bL>}I^nJO_{IhbxR zk#>swmq|&SrY7g7GHaR-+lSW0G0p=>5kz%yQ7^6&C(u1SlR^OHre|WVv~~F~m$X*G zzN6!f4=G*8T09k=%jST)Ne6Ia$(J3s4xBvSToVu|2VAreFL#p+7_MRMUY){w^R2P@ z<7FBB8fB36YK4J2bLF0^Y^?Y~fB_43<>o2z>D?4MN^c7*SJ!CzI|G8V!By}>Og21+ z0G$9j)Evuc04kFOmB|2M-BcDUxgRR!?|tVF93Dtg*WT->e*q%lrd?~N-sGk>MM|u9 zSrDBvpSBGQQ`~hL;imPTgC=ii&B|p04B(3+qSd%fMrQ$VqI-^G?I9lk5Vy3Nft}2G zPd>M5I+gJufgu{x0dm5CVQ*R_;XZ~CZjb~{vPd$`%@_uukPiXtQ{F^8^wGiFNU6Uw(c(55bwE+{`a$;|A(|3l zzt9#~;5(DL9DrT=1ON8)s<-~6@A?Z2G^e5JLmvF^?%Z5)mZiq!gi^8JQs~wWur5yE zlPC8Pd_@^%iTQ~#J^=M^VgA~ zb7Cu7zq$jCKe2x*zLHzfbF@c~P*nl0W5UI5{9!Y0lH8{^0^Iv?7qUuj>=FRR~zYw#M{)h%`&b&Wk z*!Az;86p^(bR&&IE~PDi8z5t7vQ@UpGZN4yVAVl!>6*_wSX{Ut8RdHYECk`11)i{E z5qTxp&o3=bSk}woV@sP(_FfliRd@Jfwc7%`9!HKLMor5~mhHWpKiTzBK=R$5mKwvm zOZ^zbb)l_w%sY7a)vKphQZ;pWYs2AC=VM`qt|*czBCwt7BWr=ss~medx{W9F4|Slb zl&H`zUeW_pR?%%EeNi$<2hCM-iHrxq78WLB6M_? z3M-g951y6(sC5wn^bv0x+r=E)u`|5Mn<=%Os!X{#?RR!zU057y#asn%XVdplaQn$e z?jIp7O(cHit+1J4ST96O;c&IGP4P=&UUcs*_a$f3NwClz31jTUzk|h(t7gyleOoPP zPWo7#Qm%1i*L4Wm1Q^*tm*1#&@pmqaA|g8lBCM-3z1=LxKu*^>X`cr6#iiF|X0qIH z_k|mAr+1lECZPPd*8)ayVtfx`S}6xBxDLh+z1BT5CN@0M<-Imj(#Tl*NJw8u%e!OY zv8vyupEvn~ldai`okyz9W8?KZMFY{cMdV1G1~Ua=*Rp#EU!|>3MK;GhzZPB5_}r!A zSEweqPC@0P`0t*?V)DAh(M}`TefCnh8;%_r@#A6;D1@Q%Zc1UG>~}`;`1}^Ys(pU8 zZ`(&p(3#SYKJ-;UkQJeQ3@V++1SVEH2MK+cXC6Z9L*W6e7sn2fXUkBYV_RW)ESIMw zw2Ny=pA!ODJ<{r0+jG{sAYmIZA2{LVp((TutFDC5oSwOubJ9Hs4af9N&ZyoLO8Nr~ zepT&U()~K9chuRVP>XxZ*bm9VqA1JqIx}dKTHym&Hb$?;rEVO&=bx}3M$KU!@65LN zb4}m#^a-(tm~nY9Y~q<7d;nR5t~Il|zb2hJq}sK(c{zrt!;|z&S0XU7dXiNeZia%O zyNLyq=T@kk=2EpQ(5BJ0YV`rK|bQF#*H8aPoIlFeFCr zb?r)QM~L&qcRCeB5P~;NcEK$_0sq3dd_5!X)j2&xekeR|Vc9dd_@oN3Jv^2Q$y>;9 zvhh}>Oy$BZ8_|^UGbcrUV2PkE-+sI7z(QQo9;uJZKH4VH(p7kzo!h5k!wX$B9t`es zlNA=yM=ZIE(jC>-S*HQ#?lD0H7lnxJ7L0{v7n0yrVZi~a1@Sg-8QRURIp7Wm1uN#r zkdmPm;C_|in2@UWU8z{!5z;k@% z{&3xq^#b-~vyJZ!Q_+C!y%P(Rm~Nvjvd`>7EFP@3DL7a`oSA|g>Wov)P3coBI-of? zm`3bu9wrH{omjd5>Ed#@Wodft;!H+X`ebl zL#)0N(Eoz=&VE>0q}*oLrvX5RYx6RM<(WHV#5-?k@nsU>G40KzFsV<-scX=II@IN@ zAIeN*;ytyM0Mf?o#VDSdVaB4zQpo)`B0%2;nrBr+cFL2hbARv%V(C?8K9~2g#JY2q zG^0sNIJpz{`hIpzgW)Lo`MQ9>riGS-aGz=w8K|`3P7y{Q_2zpfjz>i(kw`*;!B?0b za}X9Ai{(8xZbsCJjXdVPhLW^dXKIIw7k?n7XVxx^a0T;1sMf5TgtAeh*B`X^N&s(! zM!zzUz>G2vnq86NI#remh#6&;(8>kRZ^`Rd8G-Gr(XjZdQyf1wG+wgWd)?GxSz zxbNBg(gPY6mHl z@RYvtjUlb>WB1Eb_sK4OS2n*)$ZQn|eQT_uwiZ6rFT;j!v^k>_=yG6+N)@$Ba*Z@) z>rWOmiAQf$^0wn~M1xUBP$=K$(9sJmAX8@JrC98?1`dd7LXa|Yk}O)<=Z$f|91&w- zWMAfSffwqzO7*N4s%q38hFTSlFVXo=rWo3`V#evNxnm-FF5G0g{6lGqmWj;N^Ddl< zkooK%v+p~bh3}}ndeVx00ow|3e(Qzuc80MY;KsNe5EkB-kC!XVpKkaJ$?kmO!e_)^ zXTkPh^f&4D;5M6MaTiM1l(;z&OzT~;{>9AVu;;cCE;jcPuZ}Xy4@dMiryilf2p?Z#{jZP9*6g098R&8mg^4!8!1o2?NIN|!tq1^%p zL$5b7G+_kI&&O9PgI`JaxS!Lf?;d#@y6Vmra+Gl+dW561MX>|C>r2WkLGBZ2c?*4e z`oxjWDZN&--SOZc1$}?EC8T6WF``-bBWz$D z*dp=PPxF4bF?FwzX|$yI9jKrDvtR6?^w_}G80k*I+cQVMGdU$I=@!|H*n|W)&SH!)Y9XoQf9kIY(O-STGxy^jPpT?q3AV|s16!HGA z=5V}bROwDd?Jfhw>>~8|%j4FVT$kzbfhjQ~3tb49Ps+l7a!M@Y8irJw=G_D$J)~Ml zagfkwOVL$jZspGNyAELSZ;1TN#nv@`%mw+RQK#^bbcaF5GmWWNV7B8Oq`>rjdpj8N zcsPG`lD=t7i9QOM3nZCF+uLu?F#lM_4A=xuUlG^%7i;AD-!b&cN7&R1Z)lJ`T_UZ0 zu@Vy>Z?Y^WbH0|p((g!{5%7CHd*wlKXp7wIT$Se{)-bLEAo=z{+*k?B5`$Rg#r8N< zp8@v6VWFE)hBwEO`hnCfFAon%a{skSvF*zzt!n2i_9!p=onGFF`?g)rze9OU)eLT- z@4Z>TO*s%QvXui*S_`-u)t7+KTw^;qP2RuA^*j}l<)+ma8{_uKm12KgcROQWebrI` z%vdEalV@FGIWF$O)@=R4(_-0=)?=DTiqdaCJdco}uKC&Bf+7%W^wiT!VB{l0)R_D< zwgo0H5=Rn*5Hy(;tqy2LfmyK<$!rkP=jmFw0LzwzT{^s)H8ZDxvT3#VVr$M)y&8OY zUK!Nx<(E!8X(W}hlzDZq)`{HeU&o#i=%rF_7;kdihX-W2*%YkXDpt9^Mb!lq@2JG1 z8C^2Tjc`IK;0E-InrxmNk_mwDrQLi%wH`O_q)NX1qI_wHVzam^6#4M3-iY51z?%*> zISZHiRKr*PX>CP~06Iqd*-ycdd``Vi?&~D?@HFWbR;FWa(#~=!T8D#xD&m0Gt^oa-wf7A@i z87z1JCWW63W{qMzpdAp!qNegYcGmTKLs%qn)6#p6C01RI52QLLOjKw`@D!o)l*#0?i^qp z{1}GqlYf@#@s8XfM-UuYqygC*UfB5T&8t4;xg%~yA}9@0fgCoU_nTQWeX`nyg{qdRrIMNTtkk`MP%Z@`x{r) zJa8ir+w=5$h?Om%l;KL8%3R;xap>D|$#2!x>GJya4Zx9J9iSp8VrioCOh4)(5`4Gw z>H6*hpI)-%M93_qj4Q(Qeri;8pnBW$6;0sYgj6Z^@D10|*$3%1K?=p80nT$4)-=Hqh;N819c9dg&C-=@4&?)K1TdRpQEBuY$ICEv=_Woj4=3+Y= z3Zixf0E&mLOpI4%%cxZA48DC2S}2fY^DskMuyyvjjCy7x041OOZD?@V$eepJ7wD=q z0+sLj!HDPSUpjoH$Lh0)DOQNBMD^G*M-CJDrbePwU5OB_$7W{-P18kD zO!Uy?$M|!&WUOUVe1)Mq)JH@pPjbUls2*yyQ%ocTzXf^u*e_5bu$@a3TcIilX?p)I z=Ts@F`sUFM2pQ$z@RNn7o2^_b`@RE7+9{-kMMd!|J&iCQW+-Np%Mf6CBlmTHfWla{ z>Bf<0oc1Ey{-lyC%q;a1&18S-^y|J+4O`2ecM%m1|Lxlam)jQ*X%SJ+4jl?{Y|jR%sEVF2xxH3yiUkbHz{PQmUbp>po-8x;?- zdBW4#lBf{MReuAV@jJj5wF3*}+i9P_d?A$az>=%+<$l$AWb*r*_BwT1FUUD810Z_+ zaF7ww;o*JdzRg;ZlQ*&M;>$lP##TWE+=*ra+gdih@RWstVl(x?*`hnVnX6p$DqQxi2QPl*2&HoT zvUN6hJsGw|XK&sF&cY;616cTGDSWYrRnrWx+|%(Kxq-H$ zMI)WN87Vt`n2d9VHx1#MRSV&WWTx8_56s`AG12o*3Bi=xPxvQ9RI0(42V&_t-#=n> zGMMSFZOybWVGTR)3{I_vB$NkA6){ybado4CD5 z3Vr-4zfPgpk@)40G%_S^3LURGw3L+k5}2m{;D#jg`3X#o!B<)60VE|3tVOAZtGuhX9YkbKp!xKPVX8q?fN&Qem*i zN?k@*=30gqDC*S6^jO%^v&3bgaM!|yWx4PZWI?R!jp{4f#0Ce2PA^k^{k$wBnsegB zQ7Myhqiuu=x1v;U*Ly;CQPP9uD;h`Jv;nvw;x*7d{BS9{G(1&qUg~I7#1wvWc6D?U z&5E4;AKZQQQ(Q|J)&2p?PgKoJci-;sc7Jlt=_Y(4ccWC95{FSg_Hk=Y)AUV$BtE0`JO#~w zIH|9I5ny|C@&B`xORLdoe>kmzrt<!T4uTH=#v-C`76xAxKVXz0AkV)VjR`(H)RG_CH_Kf6fn3X2hBP zdMRZ~U!&d)3vmh(hnki&dFCr8e*1wtSX!)|oy zG}ZxsMu27r4v}gPcGykrnl+-T(UpvuKU;k1UApF5R;^%iTpvdHM)$#9F zc;mlj5p0s6K^m3Xeh7law2M&7-FOp#%7RKzBtvou7EW^Zr`j`spu)`ms}rq9q?3$^ zp|uL(nIc7jE~OSk&C-efjcJa$*nfzG@$cyE!p}kl74Y6|e*I^LF!|YxUJ2|%CFy~I z=X1&M>&i+KsqY8aLEj!lY3}uZcG%v|A7$|aoLFQ|TsLX!_tfWB?bj`(!~aLI~_pe@l|PC>P2Wu#X<3!tAZveiO&^ zw<)!hL8`5D^v5RBr=1|9YlV-vNoi!!V>!r_j}Uc)@0xM1U8Lo1j^T0k7#Xhj=u!(D6(=%rj_$HRYTPiM|D?r&Gqw`>mc zt-6{$GCrS3@F%Etjo%XDG2fgz5r|tA3@x}6fJg6`q z(DS#68bpLG5bz2Ce%upgythkBr{8;4;urrLm(WLnlpYtF$K@;CW)%#SA1-7j4VTgo z#f#>@Gx`oJdrs8p@5kwO=JP5Yw2X7}t=O-X{kMm^WEFv^9fF2&P?^4sX|v5Qy50p^ z*nhM8-=uj^jRgO@&j0=zx%eWSMe(Y!%QdkG(7JmNeN^WQp%D;^9L^}Dc*2GCAS^IEhrWK1lF+WTlNrF%G2=JC}KLh*DB6I z7^pXMxvjK8CFe`GFUNntuXQMFrCIRtQNsP%C9EbJU$LUnb73VRDS4VNaT&bP0N;V> z@(y|Yvj*=-42AXy@F&hT0wx2cS zIFMnyzb^W2|ZFYdFn(VaOb!FRW{rx;41UK_;ts&k#t*s-r~H}#@E1WOiT zFK=J&P2#EYZ<3(jV9tLKBchOy^3RlBd!he|5PyQLIN9ft@1o-@s#7ldI~4Z- z0ir7twMx)6#M2;DwJaHOqxgq}6uUJqhF#Jd^=|@s=cK6!aeE{GpveK zhub%NKLVNLcW3Kec!EEHQd}c@_(;l7m6X)ZS$D@rkgdmlXMGs(ou$?OgtaN@R^19mF0u$SK$c0p zpHBH5FlNzNt~eMu4yt?&783ZR2#2l=7v1EHGVL2}w$gzs$8a zo3~X~#P|95v)9<;6OiE2zz>OMGN(2UWjuWRwu%9}c9^)aDqbQUJ}=7eaN42nc6&f1 z4j>q$qmHAb_8P|u11W`ne{~=UJXAV^230SBmAQM(VNqH-N*swebkwA?gZ*TyX~tbS zN=+v?r80Hw*i{VvP-6S-{`r(<6EtLwZjv39UbW|im;chYut)YnNh#M&sFfu*uQYJ7 zu`Rq;{j5lc&kF_^5FXN@9V=Y7DkbRS$Na|PDEl-5{i-HuO6!7Vy}2x3@_hCbu|92mGY z*3x)-Fr)oG@F;Bece^1s4|f+Js4_49tM5(Hh(84{@p?__<5+nO&#UlD&;M&!30U(I zTkacPYfcHph_)~2jmCBZKlP9|#=nPSC&c-lS7=CTM~eCtxy95Ib(dNECJvvJRyP5%kvb_gY*Q9iTv^X z{uM-8H?Hvq&0xc%dR!wfiWQk^r6*doQYtez-iX@2Krb#+)Kdun`93`;u(6=74nnF? zH}7?Y<})*&=ssNJH`^>eDPuvGaQo*`;8e3^*6-v8GpBBwkGsjhuZT{$Ia5vo%STsJ z8qH`(O+A!7{L~}ro1<_kM3NV&C)=TR}{Jdm(o;an9nzW@PCnq zsaMOTwS+Fou>twXuiqd;CFQ|~D2A@mn1E6gu;U~?^0bL4y}0BR@tL2UQBJ&JlX&OM z$EhT%{vz;GeZ5Be!~M+%y=Yd0&oo8Xh*--vyb_8iBjAX#udkJztr_IjlWpOir_Ya8 ziz0IM*~%L1(C8j+JJyOGymQU2Ish%qR|*ly??V5tDSQ78c@986j|RyB+AkPbhm1YD zHn7jPfFv2W*>BFRyQALNJoEv^HlP0XHeZ1rxoDGed^=_@cBlr*q__O9wF9vG9~G!E zj~Z-QxxDI2i4Uh3LS03*^mY^Iyd|SwaU_79uT4bTaohiupSN$}!&!$dv9n2VjRM~I zOHC}9Z5-g`f8@whBygXJ&O&wxjREE(*>5G$sDV0+!dtEfdnY2H^&Cgm#co!7Ud`Xe zq{PJif9k9)yN}nn9kw-e+ux*J^XZu`UTp*ExHCCjXr32lZC64X)BbAIGJ=Y+FeO%Q ztJ$e=_0$L=@I@9jyqhw5g4XT6mfA!(9Lczs?&Uhxt(~}0y{Xch_w#cmRh;ZAhgl|L zzkBb(x5#YLsHZ!OV?_$_LqiHjyfusAWy*~dx{eMDip}|9`Op7d0**dGggAWt^kYF< z7UI^YE)&= zOjk9^JR4-YcQa_v%{+cspm)&brV)u#opQV93i4c&>rbE2=Vs_&wEbk1Fg}ufS8|BG9-r3=cqJo0 zy8E4a!@%~v2GG<=)n&#GHuC2^FxydGNL>{a!VN?U9#|l^s}|~c(8J{2!s-LnCErzC z%tb$LN-OijOUE+T->P%LT8s}T`n^{>qZNR(>(m`2Bp&g&T?0-^{`Gr1k~*eIW0fZ> zl4Q&5MB3-XkoE@U$Ym|LrOq_9Cf{fx2XfZ1=Qp~A)kKclEYcYj9Zt{9g!x8&erQkH zYwI6eP5K=09yMc3)Zelx4Qvoh0I#i-A~E8J1Pf-JI|^(;#NT4=cnzMC@!ZQ2ucYe& zQCLy0((1j%+{HB8BE?sgDW;8L9 z>*1~59P&%8DFrr;u8_=|{Eo#1ElB2+0mgb8)76P_@@@4(a{- z!c-?A7L1^Huw}lFx{@8SW%+C3-@+JB3meer{e3Qyo9nE@o5$v-8+~V&f570&pPqw# zO+}%U*O{O*FEN6adBzCC{Yn=awHlp+?i+l#+szlyMSv7HLqp2#595gEcM&NhuW=g6 zVm(E2FmQfSruI6peVQt#s>XTXsxadMl*Q13P}8JqGNgvq#8&2;BSy4xo=K z6zeoutxbHTG++Q;{_!DYS<)VC4wHp$JrscaZ(GD@)Dk#BQd=(77>01st4{?1=fSI$ zl*K*ZBVyzO?H9D~v&i3W=1b!Ea!KM+`fVOcJ_y6j0y_e*#$M@1EIL!>F7}kp&Kdw| zZMDv4PYIF102)#INq=_~>Dp|wtIPH{j`UK!5G8>4S07#3-(SfU}t@rWYIYkC@}SJ-99z`o;cuUS6j%J$0ta(E)5K(p0S z>xd{yaHp22yAs~&bPesi)z+j5PNprR*(|{e2xUQ+y?p|WPmevj5382%e6L)vd8&70 zVXVofuCaqp9JeV7c(Am2$JE68W5tRIBkyrESDY7>-9(e{sH^q#H5Si4@bM{PXJ^-W zeJsGakLn1MGYq5cgiZN^o2S0Rx$-KB_Vr47UP4?`7EMTXR5HIK7}BK{j3D2IfS;(W+K%ac_9>Sy8sYL4Y^Y3=QJ{#!cPP;(#E3~{u5dJnO@PNdnyhP zS&f-d;#Tg+If)~-YyTu0By%DX(|<-u=75lT_%SNpSU+Eu;sjz;Z? zi3l%RGL>ESgz_}1KiUh{!`ymc|DT%5a+?%OVK zFJT*8)5h?FEAcDaGMB<37OEZ4FGDyBI6}6-%B zqfw}tk6Ol+#j9;)@|K@Z&Tm^Oe7P2y*c?@1c~qtYP}%TRSKh%qLTLaM6^%J-(>L+< z+SQR$A^S{E@!qt^PmocE-K0RbNjacqjmA;i`vZ`slIqblD(KctD#hnH_p?yI&7NaUQ&J_?jo0Q(iq}BzPo@205<}P#@<&!==(NbjrJ7_nR-eYz9KVSEVW- zQALAN>n{CN2pGBnw%jUq@n4>?^NSC)-2>Um_(Ibzf-D@!>8lc5w}sul0}@7*lBl6{ z59H!gx?gnh3iwfJl~4@r1z0`RpSyB9=pJIIWf?brlMPZ+c6H4XP5_Nl@^lG%?E_~GbH`$+B-yBe35!4wP;ZFNu zKg8@n0xt+vFDz5>Y+zT?$lEDRo+@oO!8nF3At#PGAt#n8LH~W!tk4j3?5y40oi+X7 zD(R=e)%zpM(KoT$?;V{7lU*I5BeLDEnK7Oc7RwA>!w-c^4=@(el)n%i5n0P`74E@1 zYT}57oFHIVW0gFa`_>cxfCCEW-JqXHN-~%G^$uJ* zb64hDd3!J^XX{~i)kJs6is&+_i5)cO%UtkIB0BYq6fH=6t&s_0X%h@L9 zZST;pMBoZ@4|2WI^+H(x#KAaOa`r4yzi6`|fwf2c&dLHDSS_$+p1TqEfh4eE?FH4F zY~9-JggGr_gonzEJ%C2y0GENy2NkIl>PkPYd*{_}7+{-5gOPy!rrS-DXtT$4gEZN& zutSofE8YlrpJys$x2PC-ca#fFmWABz@8Pb^$GsmMX`g0peACL%_(nNN{}p53UQ}FP zHL6nbLc>m#-bbOE;hRyB-o~Znp~E8VgbA2}l0oS5w+G)%cCWoD z6E!l6u5WHh;4QTYiAMAEBHA^V6$^BHp#1APKsl7R@6~-5pyRHTIULXVUiPS;5-zeH z^L*t4e<&fg-p?dbRGWi~(ACQ49Q%p#_vWV2-!CFujiV!602y%spHrrTT2Ma26Z2=e zH`KF~`x;yn6}jbHU7)Xu;(-B?y1Jfx#AOrHdl>E5)QssKeTIs1{tP zqu9bBhka}CMtDQpz;l%K zI2x;3nD`FlQZhWP`+xYlREXBCtsADf>=b!5n-5c6O?-tMXW&o|(pL%&$WxzwG)?G$ zJKW&(eF>H7ALRI`)+&9 zvEbkf&*mxWD!02Yf$7@^lje5Qyjk~c@X-Th_{kaG5y-e!YHp^*t9u#DVb1p52`S7d*5}aC z+j*D0!A4Mki+=y_!@{$4B={HaiURiApUemH`|WAV!%Cm4!Ucx=097TeExx0RhcnL@ zZX)rklz#fm5PYI=F4@DIbtl0F0O40sB!S;3>vD1e-rp5SduiQXzdtEY<$LDfy;ym% zwy)gNr)<5SsNdd9$9I4cO4~WG|EAee9zNT?`SJF+?vG30jN|d)U}Yf?D#1GN%`I-) zk(j-H%}JZg|3XG8W?a9t*d$4ry|C2H^<|B}sqEQu-(Bz@x5h+S#e=>MI{}*U+EBt=o_LVlf@hjADgH<#aP%_8fg} zq7zY$NHn<7!kF}DB@->Mz|r&P4=1&PWG*Pc)`hE|#t2~*v~Obf8_()tkTk-V!>VDO z!6}6%0hocm@tKsyARKnH@hKG-FH>eG4x(6AS`)9L?{^|fl(tlmQ9NS_!z{9>uP|J1 z^ZGt$)4c(^#9{Drk_qZ1g948~U_jJRMZgfr?4)t!oRo1ue5`(n4eYR54i~w`hEks- z7sLb@{yjRX{CKh*Vm=_SkV&DOwMn;B5$jiM+Fu1jUKFy3S_Y)(Gf-Bm3-8q7h5gIwX_i>kU z1?0Iv1cCBf845DU^{j8X_^bIgzdBchrjHpOE5E5R%AgbQwSrE=tKf)D|NhyR3NZEI z62~Spay|9mfk=TD-!tr9{`7H3ewe*`SVgOA(R2_yf4Fie90@%PH$ww)yRL+J&1R+HHxj>jw+ z0sFBYK-x4bpYT0y^q}th`pbBrT~ZbVW;4Xz-anI37K49WNf6JND@*#Y|9U4*z4dsF zsm$R*+n5u4Ya)b|}4IIu$<*Z!OZH3Qe|#-giIFHE({6XU=XJ=J7o z0$%2{v^3&ie2+qDTGJc@HKy(bCoR+Wc0ZPg#By`bWE+j;)h-s~MrCoKu$*3y`=%@N zXqMx4RFxF=dTlCg#r^F<1t zAXamxSt3rZ`zC6f`p-D@p*`=Psiphq4$Kz91KpAeI1boKqXeNn>Fst3aBk(@c_RD@ z%u4F>JL}$$`R$kz@ww)aq0E$x{fa;ykj1|WNSUFD2uKT}(i8FGiFpZ80U9Oo(G{!$ z&g+>&#x*k2=TtOtjr&X;{>2%yQS5a^PVxGDMhO|7R+lXUE*N5T5OnnhhCv5R+yTRo zqQ2^dJGpz4AI09ij@)+FZ~pjhegJ`rnhf?C1my(voQM*yEp{DKwox(7LuUo_ z3a(nY|9H&P>q?94@M@O7>v{Pra@7o>EwW&x=$WbQNUd5_bTc54^Fryck-{{~gWk-a zyqz2CrG1tGiM4#^{E^z{Lu_IgveTa>Cutxqh}`I4^&Xs02);8fe0iViC4XFT(DZxS z5zl0C5Xja(ahO|%C^RYwUBEi`x!@hUhP-{Ri?l`JzIuVyPS9DAs77+8BqEjANtK;r z?F52h&vE*c0N0OPPICze65%{IpuMpTaOurmY+eYn;Xy*de4t9D5V!S3Vrz_g;pJ}< z=k6R5Wuy1*Sj>3Fw(%5Aa~mGO{Z^iDxAPIrD&5yDNBoGNV$x{y+E#4~+L;{lLsAgo zhb*G~J3W`=Kw9#Zh4{pK<+6_;8~)KXBk1*}C%n-k(U{x)Z8x~kk!!NSRhM$ z^@^70)kPS3Ohn02ZqkP~c%2BwKDRZgP)w+M^tTw7dAJ`$QG~@?HW}J;O$)ENChVUR zR5XBC15pONz@JCDO3|h|I6jm-3;fXa>WE}bcLPrZ^14HtdlDyk983-C8Hg*~9AenH z{Y1kV@|)-F;#b(rt?1oRpul?~cU3oeJfi65#|Jz2I!jl9*DjH+hxkxuGAHCt=59a> zO4SNbsH}CId#$NriZA~&k$S~1cd)|tgcRBmcRgTU-4MUfum$Sa7F7*+%e5qOgKp=b8BF(Q(%m`x%sPHhlmS{27yX$DJi>y+ zmoy-3?tkAoBddot_k*gR)gnbN26H;9soOkhIclcRL=z37k{61@#GLZ9e03xcdJG&# z!G`qRS?-gsd)*>hhKeyzVSIsvmx94q%4xmV`-aOWL{TifN*Eq-$+Oaxm9}kkK-};d zg`ODmDSWqZukhtcfmdtcVy0$eKuQWay*}r|dqHY?20X-ho#7uxU zWtFv5L~|@8kJAPwSzuwsk+Ak0n_a12i_)S9u9u0gnq$XK0T&EC^1S}E`?pwFT9&SO zR!E3hpwhn)mW>JX&g@Aw`GwVuo!I12DHdN(b7Xf`0;_aNds3z_57=K*6skXMSo_M~)NpVg-_xpfm2!^m$k;uF z<bKX=d=lVj?*(~GY;^Lk6Z>23HcUg*QI>|H5a<62> zu$7gElp~>0bel!_%Z&<^a&QZ1b{OrNmDJI&EGDuWXo! zlr))*;o27^nabW@!CgLC#r*0prRv(EvuvVrX9Wo~da$d}$6%zfZo^bthrm?hvCGOo z-P7Hyyu#}Oy?~-HU|n;$=U0<8-?MzAYe`Sb@gj3)$}H-!$d4;56t-!apBKp;mCh{> z%i%dW2l*JceLwawVBURe7?_u3hQ75l@|Yk7wojbUoBhiT-IxUk?Zs| ze-b-~f`a05v@HDx5UuL!?JbWw(+M9SY!i(Rv*)yN9^CTv$hUi^ z+zt>m9!0p@_im+!Ey*Eua?QS`^2Ky51TEFCQtGmiFGPPF2MdGTO&R-jCS;G}*ahc zz38t)W>M<)@znKq#jqzbhRM`J`|J<=E~a6eNR@JjFP;LV4ZEbN4Xx|wn9>R05*X$Q zDq!PcAPL4du<&i2KNed(4U4Mv`oTBaet_q_oTYRuHdE!|bnwfich}HmXC1lOTf4|L zRaF~hX|RE)*kr3>G#-0g;ilb7@Z}dkt9Z z2sF+<6e@?&b&we{Cmp1u7GW{2TRJ|3Jz#BhJ>pCQ>}xxeS>ERk8Gf zt-Iessn5~@_gpqm+r)5R73o`XoCA2i0u&gP%v2ORGkFma)T0dCD+q{YC5(@2oC&LU z-_h=KGumO9tr>8`Rix19zC7tTddsGc7fU0T_xk+_s)3-7!7|%G(rA6T+FPGS3&$)5 zh`f*d@hmRLavlxdP+z>dp8*CopMsZbkp)hfwA#I2QU<>pCEKqos3LuC8Lie`%TF{A zHle(6?bc5P3$zsL9qch|4Yt7cvm=&&C}R)tH~jA1>3p~I(0qlK^eyU|Nz~xj&O0@T zOByfoc5oG+STc5-BwUL=2E1zVZ!IKEr=&nEMVG7*DX4F#TfR{8;K^}U#@=e@x$x?K z9?$AI%0gM^FHJGknK>(IgNiG?lMYMS^x1~v#93ae(%A*?+}owIhT{RWIm^oeTbIQ{ z)&8O38g_0L561CSliQDRlSHMTpPEPAI>Ys=tTbNO-1#V_wRQ{?_nK`{@#HJ@Y8m3^#fjwJ{Z*t{R#Zz&{phRm7x>j)VVX9 zLWk8P@_^0jDAz6aw37E$T>5BsU9G9?Q)1>q5o(D#v85f|Wwquwbx?9Z_^U* zj%ut|fmQ7$&8|^u{1bddG~(Ys=~CF7IAqJvj9IZJAY>e)t!9bR@Ks&#$;}@8RvI%4Jb_PDH54cKtEZ-bY`rG;^&whQLkK1lskJ0(h4!RUx^rE0+ z#YQ#ulgf3kp`soJtzmEmKs+hs9%D5`xRq*Q#=ph;$nVZkfT0q;AV{cS56^7s7 zded-MU48q>+(y-S?I8S(C(bK7y%%~hxk)f_jbGO3Yn(?dty7 zweq#O_K>wL9K$tFN}s-Jkt|wKeK$GmvVg(i*Sp;117Q6xI?e9#`L}LskgM)c-s72J zq*Y}H!NGDv-@%Q9qCrpDIH(;e;y1HaP92w_MYgj0AT`5{e$cIpLR$2ny(BtP<}xIX z&jtfT-mVcHNoab}twP0e_d;{@p0Ug<)I6(ITy!HN=Z_(OKZo>S$kz;P8(tTII)&`a zb*%&OpWHT*d8`7K;x^-D?u?B3OZO?WInk>!)I|U@W%Q|A}S-MdH9=$ z2z$1#2Tz}blg`;?8L)<(=e@rYx;n=e7a z7km-^^M{scL!uEs)1Q+YIp(KuDqOjNuf<*NSE&@3;AtAXPLpLoyEjQP9H&&|5^S#ZwsYJ=-r_vYKH zastt|j8&>XG*!_%YJOMmR`+t)!P@80v~oE=@D<$CCZeGFwvRgc4K;0cX4ltmT{y-2 zEBEHZ9j{SI&NKt+m#eo&D6pHTDgej@i=Wo6ECtekV1kGu6Deb_lw<^mkHeVVsD+({ z&mp0q4Q*h>DUhbaySRLo*Cc-yvHD>fvAu2>1IBu$=3!m#tmLTgD;~gQl}1r;hg&K7 zk@U4k!m|^S{)oB_Fg=TWWJT1E9&VMJZ}jZVo(5@l&yK_UMFdC=)G9?3NO`2^b#@O# zFjqce%_P#_R5ukqSXJNJrZ={NBleAU>Kq)eL^{i#;@(`+lZRQ3Iwfcan6_=i#?x^O zpOhvuj345$6H)6kT^TpR^Syrn_2D{L5VD?QNpAxViSnf8QCZN4y{n+iAbwmEHwSEK zJpeBHu=cgpsh+I!mTS@XnM8V6b>vREyV(xpS!;)_DHxO2!{jU5XB%{7-P!IU z?=g-?N7aZ!bKz)6j-P0-#4ljz&_khN({bO(lfuoz*HH39Ybg0;y~U4vIRjE$`Lwep zJMgFm%2NWYaih=vu?7A|aL}2bO6~d?zLS-kM(X0t_lua1I|E59+p!yfR(0vY^qvP_ zr0aOk``$Np(fR%@ZiocKl20fhE_;&X22ra5$+V8jg{Q+FxTXQvfiM{kCpx6sdt$wO{$+idN1s+#r%g8HZE z3Vp%*^~o6eJfnio+8Aa7_q=;B|4a*--U@%(Zp{^?1SQ)A`gbS zv^J>iJlQR;QwP~w@j>ren^&tSz}fZo+ebFbEJI1lpE5xHyZZ1~yI@Gfj3p&U#=bXZ zyR2XF<#0km!rCK4XNL7Q3#lU9imEP!!7RivJ46|H?O?Dfx27Ad= z7b~89`vL-OXXu{dko&c!uJ(4nWR-G(@y~)|V)UM|{C0XNylIiAS>#JN1^wzkiI$7y zX~yJ&zWlfG3$VATasRB4G?1Po(H@ZAdCe&+oJXl#i+&5C>2w(6MGPpl= z-W$V=zJT7QN^HPNi?-$CP4YA`cN7d@s^10ptfY3_K=B2!~ zCH_K=hH+oQOdNd)t4tWhRBLJoH`mtdF5?}PpUn9Ic4~2dIwO@K#6y<#GOXHTBR(U1KM-x z2?|^xIwH0}$+p$|jJ?>>>lwR(i}8&U8BCPzJtRYGhn0V2z^y^5hwbjkrx%NiY0s%6 z820W2PrGzA>orq9OR@a7;9mryH?GYh{_hO3E^7>^#-Qxj_Kc*W{_5;l{?hC?wvZGN z2MFK-L8gjZIiOLf0C1%m0Kr*7ph7J3!3yr|!R(C~!!O`nVf1Uu)|IQb??@|cTkYEJ zc>rXjvH|%swYM$_78N%dqbcqQ!R9O#7Zy5$E9!=}Yt*`B!SM>n^xFvTCzw0N>tu_k zg5?K}^?2`S@WgF`Iwy~uh;G}|N>ugN9_DqIc<4{x*!)jJ(g?wyuvkDG4sft0?m+u% zt!CK08xQcV#ssrggFNPdyBda)X0)=BGdv4;^N%F$YIcV{>c28d$x)sGb=-gMuoFKX zMH99-4z6AU{4RJ_LV1tQk(3I#YR3I5Sq*tyWcn4)RhVk2tY#`8cuh}%7?fCa7W&0l zN!qenCC2Y^BUg_ONuWRCV{eidzHF2=N?p-JYI^X=lwGH`OP{0Rspf6t zu4y;wOb$|%bC79pfDoX|2w6^^Mgj%L8HgHxqh**$7xnC=emo6Lzy3{p6A$}h*8Q`W zw7>iSgei3}{+myT#f9;DnnkffzNc}~(O6J)m(iIlW6SQ(n++*s9x}X!3n&>HXXoHA{!YBo?aBRFqJ!` zvg~oc8<(F#XXyAG_|%1~g!n9irF{0#LZ_3R-+@tCsTjr3WDAPILj$ zO(=c4owwO_+N!zZfd6WxWp4FLRhz|ag}2M4RHhwNJtsSD3s+jDXum&& zKzpr5`5OxTyT+zAx@Q7LS8pv#Z_VlhP0rC6^=2wm1K%CVD>0-%qpr}E2UfGW9MhUR zXbxE?z<#nu)yhJJ>=3A2Qlv@8e z&j;Uilqa)n%Gf*d^czoW%|aL}t|kL4)eP;oN$aG>y-XIOV2<^dVud2XtQrBI+}}A8 z2fsxgNm~ikXjGfcNMNp#m+hV!?AjEBsI(n(CeweCY9f zcYs3dKz93LL0NIj;Ykk4%#-$;NB!=RkiZ?z=(6|3B;#bf-LBBx13X7$dvE-*Md6qy z-!ghy{bC4$)ZEO2Wn5*aA;dh2s(ylbi8l0&8k6ElU-K*|Z_hYfRk<}5Wh6GRF zvxGB!Pvl9xJ5K#*zvgneNLZVuBUdmNG}6G*<>fqmNaOWte816zFsWX&(5o*B?JXYW zZ_m_rs%4kk8c67QtC4A}OAbbjt$3L$Cmwmm^;&SxFCPfSvmXSm#G3ljLtUNL;W zBY|l6jV>*EP0B5#TK<}G4pe$)0>w!T#T7{^xL*OA_rUrEO|qKSN%R;iHfu3?uoIb? zaAjKAoeO&eQ0bYzmM}@UWU?Cr+^^CH0ENdzD0aR) z^>g&JU8Lp>fA=(~d&)SF?Kz*L2Ag0R<__jU-8{)p?oA+B{TKI59H+5UPcIWFitlUuN%PdyE&PD(Ys0_W5G{|ug65IC3po`d?q@*9JgC+5O}`*2H1a)p!wEPSzzo& zT43&^+NEki-o;C>BAd@1PtW$bnASPqY$;tEMLdR**>`Z&{EZ5cZX7@YGKzV%LWH};_ zoHY%N!FYvcZ{PIUS^;rKLpPQEz5BG=25A=W-8HRI&)=J0^~$L$+mnyEWbo`(i9V^l zKC}=k;gb3J6!hsUqkLQv?4;RfLJfJ&#x&hizc=a0b9r#xp-eX_Vs_d)Pa`|CsFw_q zFyX9tp!Cp#WlSAu_a%tEt^zm~;lT$Z(4HYp`1p=I)J{|iK7(67Ktt?O(D0m@9El!X zhM}F-mfACA)dOAn_CV2(G*EA?O&Q$$Ak}~CQ%7WoV7H`l8_63sod_J?Wbj#%_`2g~ zIqB=~=)7i-6dYD9z>10Zb&N)Tb)px!aV=smt6sKFXmuO|XxQ5gsXS`}B)N}+1J%Dv z6uyeYky3e5)gmWhAMzLu0^Fhc7q%Zv@`|{5>OlMBdK0r>`(}-q_6H?j#5WgT<^c^aFPDTG;c%c6Ki26H(2K=OgkVIcNQk@g7zpGv;r37v%Jh6+r zwX5hGk%_cJak=@x?QH=|i=Nw4tL7=zwrR88a?TOr%p3B_3dDl@YiFowdaS(XEsdg3 z?pjebG+29cr3Dwgfe{E|u{mum;l5INFK5>x4ks4pg!3IKLT^gK3y_2H6?)$Y2Y2)a z9+now>C<@2Dn%9leqD2xH`?<$P4fXWl%CeaRW+n5#k(uP*APHruQjnEfSnkUZSPx& zYhdR8HjtCRiX;ZOLB?)qmvQ5gkN1T}z>U5-QTf5sqy=-FizwRZjovXsab(EHLs<_ z0w-N|ZHCi?G3qag30c|6O~WI7%|T9b-)2WZ2fx{gt4fY!Td4r=pTpL^SMHnk0c>;^ z2i|Pjl*rHxO`8e)VRI)7TZxmOOkRT5)V5euO1`btiV-AW0Z3tiIYd`qcSQA$w23)$ zlfuVNm>z15jLy;n(}eOzT^|~99lCS#+oSgCc*r7*fJDU5{oTz36c+>a$r}te&f_;T z7i&{@?TI;6(FuTaAD^RqB?I70Rrjg*b@wmr%4ZSh!Lzks$j@L93^9oj%@(}4F^R3c zW{ru{$03>lzVLX?+)*oXLs{oBpj_z=9M)&YeKXVpjKU6patxZ>ECNwaj}>LMec| zMzQ7hdi_Nv6iE=fVqtuUUJ0^b(O;G%2>-H}BZ;!78*Zu8_Z3lBKMb3svIFu8Pj4;W zt!{)MBkZS^av1y`6F#|>%#|ufdG9RnZ<>|HT=4aN3$B;R$1vww3*e#wB9*8if z^tvT2+iz%mR1G@Q%jsp?Z+!!4b<^VZs7Trw3-50ZIOyw-4UAveqfTkUeV`*1abWCc zVUX`klU(i}sVNFELaVUv%NOdO?=T>+c25W`J&+p+9tIrx8n2VF8k&1=o!hDDJL%fG@SppCEbhR~cZ0+(BRBr5RRC_!;RLtu zM+V_)GUe7i3CaK9=_{k6?83EQC8fK&8wBYRkfD_B?hd6J=?3ZU&H<#;89Jnt?(UAE z`5w==&iT*c2R!@U_rCIrAQhxxi^o(XLBnbrc$FqRt{t$zT*)hSW0s?^thGu}zMN*a ztGt{m?s;Q^6dAm>e8^ zug`%!AG~94OjD7GV*ZM&TNas;u2526|5`r)5H5~?u-Vr}jE@Kc<2Bbue|Wfe7H>R< z$3`^c?Lwuc6B9ET=C*MEc`!86mkwa1C06R5-NnV~U7YWkbuLj+)Q@8CLOu!lUZ)=~ zb{Jv!dT4VPbh9i7w%HQ@HyR8x@z$zIBrnE61uMyZPOO@%RY+|bqp-`k&>eFcyBofo z=b2C#92ccOy(Vt+-KnIbF9RBA5AKUgOGevJ2`yed!p+wLgPnJm5#$svJSZ(N5uKf{ z=pYYl=>)s+uv{@0ML!CWGVu;kB8c(M9mk|JzCRo??YWbSDBNoN8N%7%)5(!;fL6L; z!i~u40puF(_7{hbtU^Z%?P6CU$!z z;0+pKIms2EsQubwNi773T(4o}Hn9tGz?i2wJ?GCrKUaMu-AJHP&8ix&05JGzF}!)@ z#&kZTWt-4n$E)*gHn=@JkIiM(*npko&B}mP;GNTW82}5kPtNLT1E9hdu{n-_^FKczvYG`- z?ci?}-{DO9&HjwgQ7_RtZh60Y#|=GJ^*#81>N+JX@@1itXwkX5@<{T%T;PlEE4icV zX#~_D%@4>LUkt28`5!xQ@FUi{JmT4ty3+J*Ke|^6R+|BFOx2vfQWB|&jhs?L9BJuF za$LS|aJ~@GGS9B5i61hA8gd!}H}VM~p5D|O zDC>)hys>&>+@gD3!rjzJao#Y)b}O{anfF#eE!kg2wA0Ddy8^Y`Vrec-NydSSmuJ>6sLUccQc{LI|eb)ne z>WftOk6@YZG||VNls8g6KM24*>=P}%YKC?4kFbuB1`Rv))}SbV-?)$vx`X@Sj|YFd z(yDcOrXKY1F)#1X+SH}BWMQNNRnja0K5S|S&c8|7b1C2;Cwcj~^%jUnS#*;LHa2n@8D z%YD8a{$4QKI8a$7C_K0}Eg(o5TP^T2)v-@dA|K(qnv27 z#V7%<(r3z*QWIgw)A0r-wu%{6Z3%LFW~Qi*dmsD9x-%*5X`&4t0YA{s^()hyb(cQw z#$Bc_Uw*LSJ`N4T@)|~Pou8{9oAUhQoHbh{?c*cQFT!nnZmrq(cMgIt<3BH-kK#w_ z`6*M9$n#QM;8qjv+Gy$b*7=y5R*xvNSB%~SDkB6pTiIvO|HE777#kCc1u5lMH}E%y z75X6pT$D$;Ke-f~VG}=MQbcQ}HJo9Jz;h5^|MQ~}E*zG;=AxkkBtno&Xk-m@;Z%SD z`7Krm{jSdm_-D@m8tBDALRe#LZqDmIZ%y;=7@a&u8SvOkqH|btnG!T+&nGhdBb-l3 z>OcC=SY`Q7hcIpbak3OUd5>ySeE8^u3Q37pOz^&&5R$)25zYpPc z9vxAey$bx;=V>H`NK1s~ceJ27qYGanhUJg8W?0z{nVwtnqPO7Q%9rsMZ~J^o6d5=( z`nQ!1=BL9jF>x`xnAD%BbzFs2n$AV;TH(gf&#vUZgQ-6Guswr7fnQ7{s;!J}EV`vX zk(0%_aO5tpIx!V^PNOXWOiz};Z!$u#RA_~h>=Ynu2qGZXeBX<#vD=uOop2^QjnqY7 z|Eyf4jsY6;dI(MoOce2q!prGq%1u$&RzO^xz|(t zHoMbF3`c1f;YN(6QWOB5k)SB*)%o1yDH}iqX%30_r*P`>Ck%}@aX&V$u+4U+%3c|Y z2EM4Xqc;BB<18O}Wz2Kn@PP$Xy+!Wm4i;BClm2ds$cRjn>vy4nua5TQ+S+OPWv^sT zSD{BDZ&=0;X&9BWhZ$4+g3xPw*h=GLLPADGDi0^8k=XH+o@ksgJ#Eou{xh;82Kl|= zZ`?nt^*&(R-wpONx;8VXe)oTjvWA^r@2u<=12i^9qi031kM%oUb-qx(d2B(7mp!_r z9HM-E%I=(N3-{&q>HeI>tF?OaSHu7Hj%Rvz1#|mxi;<p|E|JH;M~AY{(LT>B{uU zuS)xrY#0xYWaQ-}vydMtP^OE|6uH|;Ze^mX&{>+Mw^fvD zf#5!NFC>6e`X!fGtsAwB%zP{zN^pjen(Piow*hxFp#+kDiHTDcz%)?rVvRB|BMXLy+Dzq|*Jgj1+n!#oW@jG4YS+iSTwEP%CKkKxO^T0q8!X+dKy6vJp372P*)3WPVvhDC#v5(+pWbP0%DO`7(3T>$zY$SXA! z20`X+WkH~2LMG-K7)t%r<}hV)zmw1GJR#G&Lui&Zs+2~SqQ~F=ICyG}W?)|tIFqEI zW$f{JiOu7Ngc;^eLFW-`xJmihFkFy2wTU_yo5?w4xRi(E{>l|>%Nryyr3XlTa}^wK z$aG!v%?Td1zji9Q>wg`Nq7Ef;IVz})ITy($+B#Pttc% zNlnhyF4PU#o&e9M5VTKB(^GE6XKPch;$$l$E#X9#3juE|iYB9<i#oQzeD#f=JDwelUXj`AG?s~plyv+)1gue}eQ*n=>-yWJi+ zW~R4eTZFYo)3pn#YEA7jxL$^hGP|mE^Qg3^+)ozDR$-6gqO>bMH)>{SRAavyGE!JA zxq^PYUFv#S_9X8XZ(L3nbSVYeRLVL>Yb$}xffMlv1uT_jBSiF1j;xE=NpaPCX<|@B z|1Kzj*KW34lXjOINNz%eynPG*W=e#}OCuQDppcgd1(97sRrB|cKcYsekfDWDb~?LP z{+A1h&$Aab=bOZBT&-1Pemg3Hi<>a#-L2U~AJ;rU-No9B^M;I7A-d#lQ3v3D6glFp zY1704bZV9CIWzQ1qghWX0bJ0#;PqxU51_k;g&VcGXRi}tG(_pFjtE~aq($&MATjO< zh_sgXu%>vSaJ0ank9690*ap{jV;3?c#q(mqx{WHXK(ZNn?Fb}-qy1*6lE)b~UvfDa z{=5yz%^LV1Em z*X1AS@a@!^;lNq;2ftY#tU{`Dn@vRIHy&Q)i3ac+$o6Icud4sglgv|;U(;k3)3zfI7t*Z%9*SdUf_WDOB zpmT9qahE$5)l6I^EiBDA#2aWNrHMSlsCyAp#(7XmE&QYPSAc0g_b(qlQ~9=vG_Qjg z^}U^tLOm}S>cy#j1w?(ktTO~mk#5F`+js4OEP(hw3`APqaCwL2mG}{tMy!vc|EcE| z(U1iqQw$2Keqm`l0*cJ<=#VKV8{o{+@$d?WJdsA=}wqA?;Z5(Zg0-dC#sBoHWb2Z^Y>tA7|n zBE*_agj?NDGEqQStyFXnAFNcMK~oWdcApP*D|&wJT{Eq{_`WS_jmG5k&lH>?G4QgKksZKDUC+PDGl{cEGfJk1gq}W`jYRB z$R-`}42)dx1!zEImmh!A!S)UDYv&6><>WRkl zYekU~Ig;_r2+-LO(%T&o$r-I0aL-*QJ_Y~mPjdSrN~rKv%xsMzVDdJP3=aF}Q!k-i zc5oOMf<%NUT73%+2ovg%kz=SoC3d=|hlyhW%W$MRr#Qz5ZbPwjb$OCR8%#GJk+8T&p6OA-l( z30Yn}LX2D=@6QE#UhLOz&TB;F5}tDjbBJ;L#Yy>~ zd7^}#AV8yCTg4TJ^cDr4l?W3dxC`KJm1?eX8b1^nU3~uvksak<)vVFRYVW+(%|b!g zO4zSgdRctJ*QvKOSU2Dg!VY2iRyLu2SIxjfBrzFyHW~6A4nhEY)pQVm>j0v0#sjBT z2wq}Or(L-UJEoym-Z2SoN3-t`-3FV@pgq`))kZyrO(cTfHbXM`fM@f!tKa-umFAxg zfUK5v{CXr46@bAapNrNpE!aVZMnhSxwxL#M!;v18T5#aOiI>mvI2?lRKabg2lCRmT z=ud;wc4VX1hG9-3w$DDHZZ(haRn|F^zTTUIE34g3YS zVqdU7IGI9FYJ~xP320uarH~p;7IILz-0TC!0zpS>G(MnjhiEVpE#%Z7>h_#uv0g?? zuMPM1T8&0Ohbi>5jhfFKur`P?%XGJ;Qqy)XFgu};`#MWhV`jP5<~2E<0Ca{d_$bx zvB`NHV)_L$vQkL2nWJh9?*u9Ct#kA!h|VZu$TxX zWz{@8%QjQvORkZNIFtasAoP@kT27u>AaHCNvn)hGia&WD14Q;aZnJrqUG(uv%U2OKjV;Bl(Q%Icl zK(D8{R)(j>On+yKcmRu8z(;c2_bHCd;a*tq;qZ*!|JIuMOC+r2@YhWdpjAl%%PkH_ zJAd<(Icf?>0*=aX)4Loxy9rewP*8U+OJJ6CPk**^S?68iPmj`K_9GyyqFwg(HeuFP z5#aHJ7$YHe@{P{iErS8A&u6S5RJWH-sEa~K=q4zV7^1NNWhW_mOG$dB_R80>`T#_< zrS@P&tHZs;*0U4_*dcO01-aHsFX2xdM4!`&9~gz?4~>}C-*}yHzzquU@_9% zXTQEJ~9Rwl_DAbXM7t_A31Ez$5{12~4^3Cq(Tdi?sRVyo{YagOfu#uu4eVszPF zpYQGOUlG3~=n+yAwPCM+NHvDX`b4+wY0;+$ezNQwI-&jKNX+4U#g*_laKGK}W$`Zu zf#H}rrDQE_Xu!pyVK-T8*I$b+&*4h8qr}n6wG!<6!>tjo&81Ox)Qe)l9YRZg%6;|s zQz!*81DB>8s9Pb9-qZY%K7pO^)2;4c395}FGt))ojwDRK$*nf%-ZT?AII%%NBh5sQ zGm7OAtixD$P%_)_FcO@ho9S=@8P0bzEej6aJQ_~qGmRtJl4>IGf`QU>+Vgp3-ch zNHcPd-qad}pn)b$0m=$%*q}opmNzJs#_&kWbEI>VLpEu%2({R_ARs2`>3)B_Dl~b# zKAgw8XJwm*z;VTkCU#m*%;3co|AhHs

mMJka)QQ;=vU_|l@&z}k=6NAnx`ERdlvbW-4QT!%aB{k0E3 z@W#U39=>AL{CJ%Vz%L-6{dc`#PHedWk#BCzqAFj3XOo9*3HjH{1H*(b2f?HrMO zM4-FDIZ%t(cecsIy;T3MF^kOa2GjYvX>BxgLOdB7{jCy+Q2xsj*TYnCv^RWTa8h&d zqM-=$1aYAI$V~H(B_|duun1IeIgrJRasZBQJ?>fblt%g-dOr)LVc||?Af#mWs@_Y# z|NGYM$%S~!Q@%(x*J!-v(~O{bMBUS4ySR`d3`o{0KNkw2ww5l;lVQarFa4|gKj80} z_`_8ETf30LfAPFY85tGr79VZ)lk#OlF+dH^Z=kd0z)M@A&1#a)t9_5^fX6P9P2At` zwiJKl^qNM;OH2h+v%-+aZov5yBPTJoBD8^hiB*qV|MF%5{@%48F2AI0`*dye@H9rHSr99LZp{BbyZCGxqQdY%G$ zcZUN$>obaHKE*!4Cc)dY{W2sDTtO~KA$S?m`WHSnWXerUvL)Da}og4;StVZ6+11j%_0OUNAm-W(>K=4y15Sk`?x zOj(*de8vzdVxF?5L~y_Lm)k~gg5BuUZFJ^yylsXm?wxNsr`Xy7%Rb)tEuGWg;xv=klk`XLQ77e)*#;A(-v(Z{LOB zzs!mKa zb8{(JH+0N_A=EZI;TJbN1!wk>DvA;ZzR~-3vJ2hO)%5P{p#o=AzX7m8ho(lI!%Dk` z8w4ms>UqA^(_ju49#Vc69`&=Y?~{g2m~cFCrm_K$UQTRa5*o#VRvx!@x-*(K{Vk#>ut6ux{6CHqEI)ZmOby-3~@sZ>P9|3w-12t9#fabh! zT5j)$nFFn!xx$7>&s=}3J#DO6*~!~ zeH~M26X^Vz?Rhp~8h`HsmMR%}us9u^o zSytG8VNKLo%T4Bc7E2-&zDeE%a--(N4mo)+vVYX*I4&gUG3Wt{C3T51L0&gU*Ivz! zJuwQlo@d{%<+km*<>rmb!?&Yi>t2&V`DRvO%k6+xP|po?O4Ot4KjRibqOcvO)3Hs^ zh_#SQg3R}}Ai`Uz{ZR3UU>ZGLPaV_v?Pbb zlTGTr%`yWg7qUOwEH2OK^8R@nZKZ=!sjQ`gG^tzATPR4GFRxTAY<&|S2h)ae|M*?5 zq6DxeWSa(*=PP~r8W&XCx|t|Cy+_(2@&P+ADnK7sR5V$yCMdwnKm9DPhb5^kTtCs; zZ%@0q@>k~+H^OMcS(KI#o69h`hb<{Dw$Jye#?*0a?$ybc0S)we_!ew0vXy%MHt*1~ zO6Au>qbAF2$;3`-3^D7B@nMQyWWI4{LSW)wxAbDp2T*58?d3=58lvQ1lwv^DB2jIO zOCs#|;LAE(L7#pjnFOJ3`wWOGUpb(gP8!uHX}L+1F5uO-ZFMbkLKyDZEW44^_BW-0 z_r{sj-%CLG$Ta62|6^HdEn4`o9gp0I0imix9sye=>`i7O$D?ss zbH7vlD!VM0hOpv9O<+?AgRQ^yn61{KMrBz5;^WI%`X+y)upDzyadD(hEyAZ*lz*2( zU{i5`{w5Tdm@KJSj!`jEejj^9+IR__r!KD+`WM70x_R+{0{}3_+bd$HtO1^zfE@5T zIaysJGG0|*m8Jtm@gvo#n>N7r&`BaV;U54mz_n zisKyiW-ez|N4*&cyHNdB0I*UFW#YEXgG-_;Wj@_ZHfv+JT9#36E5uJMwPQl5jNo)y zfX|ZX4tU0#&6|+lU5(vj9@AQ}$|0ZBRdn@KRqTX?0K)T9I`(JPD2_b5JYMm!mbXo0 zUaFp!Wwz{q?EGgj=Ml?&_--^KqeLiwJ<6L>KfR|ktJeZa&w^;PU&^t7QHu!@l=?5} z<;mFHjnT;M=*a~C}3x7|eztbm!-s>4Dnb!p8&a~c2s>t8yrk|joN?-f4ccJtWA<3+sz z`}rE(=;JZmfMNC|azU|$bX6)~Ye;oe+a0=slNogaaV83nF+6>^fcaOhcO=9#4K+rBCL1QOgaNjZdzN3~gIig3e2uy_dL0 zUhotxFRu$enCGqItY3aw!4_7$EK8SiPZx5(Il<-|*hh7oJ1iCwE#y)ihBYyYW#z^M zt)c|2z6-tqNJ?ZZcpeEHI*A}zvaLSoKyE~mqOb~#plt@wvzTsyO!I*?_e>4-chbll(YI!tto|M2-{<%~ zY|I^fmS>wnAVMLCQO|H43;C-$Dkc5(t8UbL|2cL~vnuIG3hyW`f7QwRm3B~Pdp9v> z?fWV>K`^Y}?N<~RZ3AnEQc^X(L&BQyArv z|L6XaXc~8>#>sng%`SVAB%pnK=qvqqt`d#sRl`M(Id4kEpy6&Mm7V~qO3fHeY}$L; z-O6hNgkC~wk3O1hn*nPa0^!CMDzZN9Cn3 z!*bXonHy4%q{6tgcFe81eq}_58KyUh@BK=fi`CKSNwA@RPAuo>vB4O{=&=dNiiB1n zT{Dn#(Y5*=a79mIkEh8!KbU#rt`t1ewdHX^nJ`h%V;=J7zy1=(5^TGd=MwbT!09Fv z(8p)CB2RdHNBg;q*JP1xxfMUY;SwdK^l&-_StB@Pib_i6i*o3kLCy^xleX4&tcTby zJEvFlp4UG<=^|!vQP{R7Ef*U*(wfHT%I!j~N6k(BlC#!q6;ai@B1kFc@Zy zLWCzSP~F){rd6vCfdnJXh~~i@J)p>YsL065HuFryUk!7$T+>zYHa^7AY>PmXWJ0hv zzU8NnMb!O!c9HW4rB7J^8h$kxdg+FX1_fYxoQ~v07g+JT`L#CI1A%V?Cd`v=QEbfSxb1&%~ z{cePCWIBTzc*4~U5`B9#WXWLseVDJbs#XD^g}qsm=?TV0rCIJoExp>Aft7XaOsMJA zAqgXD(Z^Rn#3w0a&UVzmq|b!VuBKJlVxXeX`#3^z zAo&F8e0*%j)25%o_w}6J_v~$vsD7ag(^q}AL0EhVGxl}~^XU1gQ|ARVHOZDp&9uTx z9|0efnmq!&%2HbQF+{o$pF`XTu)FPrdk;gQeZ%il%q2OmnEwkxbJXvq$tGgeucWnv z5S$0DHnFqR7V*U9FM}5udi7Q>9QKA}5i<(G8%@Vd zoxFNQelQ)P?@~XXzfO&!R&+4ro35qB?Fd9wwt%7qzO_O8G#M|7gA6+){8@ox&|OnNN>oG2QA?dMrOnn5tjw z+CBAl^Aynz@!M?F@jQtS(4hG|6!{0%#Rx1Q6$eIsM+Qv>!7_1Lp?{f&zIx&1ZQ>?f z{LT)w4G^1YHtTC0PJi!_uo#}O*xj%?T%TmM_(ZXRop4uu_Fw0f38%TGMb$o`BT_u} zm-u26c;vH=PVl8zW!dy}0T*;FcgqVr6N(MpQTed(oIU0LwB41})dMsSR}EZn&bz?{@li#UX)t4stE4niRe>BwsKPIv^VaJt%Iq$Lp zQDOEl2K5k1nZxBb5tI)MIG|@@uMVwW%Gsz{w@)3EWJYP8=X-|*l61bi?nJ_Lx z>nqVhU$VaXcsng;h!gcgmL`+^NHrY{zG^XkTEcKK<2~F`%s)OyOFpHHz09{MkDgj( zuF@HMrdCt&q&huZYc2g_D$g2)QhW1JXq1TfG5~x9S$l-p7%)bIU-y0+#^*q*V!y<6 zSs5_{FjR5Qlv@PXrpYy(Nnf?-*gR|9Cm-h31ImaV45B#xu(-hvvmVHPQ@4OCD}Gv( z?bj0M_h=1bkX?5e8KC8~R?Tig>e7es1jE*}KhnHNwp`e)uh!K~;@Pw$gd;Q{M#nfSX{^ zw2LcZyYuP0(7OXfpAh81COz$(pn(OEC)uo9BR;bJmX=&dOG`Girxvwai|7LVWC|L= zgAOvj!S5*lXc9sb>QsD@JA~z-{JGV@bRe%q=eTf)#iz1zc<{F@TXW&~FXW^S)QwA` z8r50j-eGgxmwh|12~-xN)?-A%~|0{VqN>?twA${af<`1l$G|c3a|c zMNI!Kkx*XE<1R;)qZwMgbcQkhk>WxnipCy;sAk6||C79d2!Z5r{qRDQD}xa1+53EU z$&0^D>b=C(5>j=bnK`y8*O5BdwFnU(=-b%J{r;M&Z}7+*fbs| z&{_CDV|DnT+@9#i-Y-4BUx3kp96Cd=NqgU0Uuj&gd80p*@fnZuqOJO(_wpGGr2pP~ zKeGp~X}=UMwb;r3#8BkBrd7T+IF#IRlrKA7cV_mx@y0+0)y3dF)3S9>r_^$rm6A7F zXZR7!Wp(L*s_0LAoB#@m>tuZkmk%iqJ8F&@TZ9ik-ec-v~h3FxuN)cD5VcqTLg5*G3%LX2-SAkYaQE zjA_G~_>mD7{3*!|%V~a>A6Z)KL|YUTYj=HgDQ{!2sqxG-s|~@aMdDRinVAV0DZ$U- zZ{Is!^6&Gz;ys`fhra0@U@8c+=}oVV{&O^-ZamufoZaHtw#fhDxNNlQao;g5K>kN_ z>OeM}PR;Bffkh}g7vWYgckj*F-1yhWgX-cT$Pm`E*cgdQXW5l7dGUAxLub#Qck*S7 zq45C3lOh>-^@k|Kd2c*tb{~J^fC>Y(py<5&*Hx$u%oDus_8HRKR0F#BUdVWcn;i#3 zL@CExCN_XJvczz#H%(X^!q}e;W%ZX5l`?N_E$dw3C&f;u38zFV#@|F2^Anm=`&{YM z#obrQ7o~9jv*NHV<}|4F|G7$4V4Od@rPCF?B0 zgx{A>qE*~yjcTMKX%?@pDH<(w^fD)tu|uP9S(O_+(Bv^=q-Pd1xVBgR4y=gV?&v^P z?(YJ8_r#m9LE2lvg~&ZW1={tdHn3xu8(x-P3LIv4Z1F6FzWlgOfAM9^V)G zM0COB9mEA4Ao1BuN!6md9Qabb*nsW_QtAuu9WebnJ##Kd8CVy@qR;F!5Zb_y%~IVz zRn2YRh8O*ow0NPeil9US3W-J#cUAz-OjAq-PDHO-9@d!UB4t{r+^o;f3q`X zt~eRyEaEp(jm^ZcqesS{=g`Cdp5kk)&SApPbIk67ySW>gJYtiOw+OUi-9pwHO|qwi z(vVw3J6A4r0%^o?*rqP2rs0RGjqEfr{5i{adqw9aTyJbj7_NoQmB7+IHsn}DR=&m( zx5=tJVoP=!rf9U%h6~pH1$yo((nerbea<2k?NPc9O$Y%iCMs8|+V?9AJUG!~@{L}Z zUr94Cs&=n6@RY9HS!3!Z1&@4^#}|Uy0iguaeEouBOD<~3WWK6xJ!1`aX@mI(1Kr55 zU?Y}|jZ<&gM~5f8i>2*7_tIaj-q}Nld!;g>%x=MlhzStxmTw zNn(l5vCPjS+r2XUf{F8|FLkN4WVk($MRwRW_Cf6Uy{rtGQC$uomM_V=FQbq8ghheb z?67}b`X?KMQmDBjIH|p`0jGCRQ4^aOPgqy?6#rve&ddxiOQ^c7Zo9mwG$aJ}MrcW$ zgvB8sJI7%hid@9Wg!PqVeDs5cg~bjqU$0uBt{Mx1Uh=Z{S4epqU(eqY2~p9h^jVmA zpa?Nn*p!zW*CaHH3bmaeN=5S-AWTp5V5j{E*m=D+>iqAgMN1_O71}T;7iQHETeVATw?`T&+tK%isBW*>Wl6)q|{i=qM z6{OHV^On?onCVqcj=rYf!kT-T{-Oqmh*aA(HFuWo(h`*6~F3YDSsbDe0rJ9!rGYf*ZVh@`=j zx_j<9q1-h5>iOwW^W4X=A4}^fdGjcS;2U$hV$pvq?oRx7PUIl zB+Q4n+=%$_*#7M%y}B(^JdSOxa^wUq4Rz5sKRqb=hIZ`Ue?7(N6t^c^z3Zg(f0Z-x z6>=m=h0p$ItV=zf%DeShj#d*sum8KC!lcuze?K$RS(Rq!-UY?*y2tcFSYx^yPBzoI*Op)SID$Y? z2{5<@Uh!7BIY0CLB{{}s?OC$d*hCJ^IVfW*x3#r;qlDscgU87dJYHlyEsxhxJgvGp z^tE(aH)6VfX);@=1hnX6%g6Ms_+o_Q?;}j+pc{LY&JVzsVC-#eg3%8&8ZwvCr$!(45?s& zvjjCLHy#v7MzH2wa4X0V8x`Mkj}PFfvDV3O`%t!nl3GCt=k&`n3rxsCKKtpVSi`x` zuHNF+SCy>me0X>S%u|5~lW@UOWM-$KuqeJ=BE@Ty@m3Vt;@?jncpLrFUu!!{$hR%B%fpxO*TZjgak4VC_nhoUQ$bIM-R>*MsL3iZRm}y*U;8HGv^c-;$sVB5E zXEcQiif1sJYUv|X>ztgsksON{cd85<=wWEYV zmW(h4wqu3Aa=pieWYEt84MgB>o$n^mU3JXIB)ey*pI&vM>mIhHvzZ;7StD9AIeuhw zIR47bvbl5aXLxcR{gxtsB-q8(!4Wpe^!=-+HFYj(YbYh>N+jh;r!^sOf(CN=o9!8I)C1PB>{Z#1`U z_CESF$sHdxZG37VX64lRc8XzFsy*Y+E@q`Fz1X%o*F2Av<>LfiW<>GOwNp-|6o@T+ zH@bpK+e=XJ@sUlZ8!oKS`Oz2iO(-GjAG?e!V>Tt}*%VQM?G_52X7c`zYom8ietGH8 z>x;-wlqWu%Ye$&OFl``$xEeknS`tk3kc%wWHAKp)M{hi{5hH{0zy_ zk+8;afvEOPi`2M}x5}2b1f?rN9;ew+MBi$^6v`xU#f$l{Ob@dnL!V8YxNqNDPOO%( zM`<@Akww??$eTi@HST@`#@$0(I))YZ&lh*CxFDgoXA{*Li3u6#XE#|FbMZaDjKuE9 zuoI>hyGk80!Qm2w?>vuJGQ?IF;0t)L!$a565VYO7O!T6I+U$VOzpO47i&l!MGA%W= zGL9|B&*`uh8i8jNz;!Z1e1IXHPl*(TAG2+I62D!MN9{O7`9t6qJhaq?_GO`hi~ldA z5TKID!Zyi1STf|_S`xAJVieL%lHPZ#DIfQs{T3W%G411s>9ipPxwENNG&Z6hh|MMP zDf(D_&>$?jeR!8lmKh2qr&VsWLSs>^`Q)OBRvqTugjT@*dB=T1@c#BQj7ExaK43+3 zxCVK1oI;O?*bU;)DC^O_`hO2Wc#{wtvhh$EOj8Qk@66fH$xgq|z7Rfge zFv%Z3*k;oEr26w;*uX9qYZBdgJ~b41XMSx?AJsWkMY+1aVw7cx@}QViRVc@l?VIlx zr`@g_$ogp!9Apz)7 zoAlE8ibcmoFF9f3fk8+@@YF;jmt;Y2?&3(;l+0&YCN8Eo!EfR0!nk(Sn{P?GI{sAl zy<1!y1$`i@mXG*~RK#28%&fFSV|6O4U}?7t{U za~7ZhEL;u*c45Bf_i2?_4;e0m>hjg&LCh6lF`4g|9VdcVa)?vA(AI7-_%tHX!cl?CKT|_Y8r4#2fQ!&p8 z%~`ZT{~rR-VpR&n8hPWzvzV(;wCH#2O?js`j*S9{#($m?oBy0wgQ<(ooX~cQRyhqT z^0548c`H^v`cf41c{JgO2YtaVjMn8|Ye;{ZG}Qm+RB}?tF4W$fjnpX~051qGJ!-z! zH~g*VhH;_v13_->S!F6Xb^jrB_bS&pFv-L16^dQN@YQ~nu11D!YVH@O|H4y0?F$=h z9K;8#vp0GdCtFUg)w{#5FTX_}XLAarBN}cy5hKlvG6kMpgK8$Wp>$T@X)EcgK*3xcxur%qF=K zH%iJxzs7#UzsvQ$!3!aJ2s7s>U;5V#=Jf2s=R?t>DC${Mi_>l^WPZ%E6Zi>ye#fxb zs936GW~3Qowo0Vo5)!ax(CwZ#k01S;@K1t)3R3h8(CN**`%a`HO=mUf9tSM!eh)o; zq5%XSK%uxTS#%fA;U}z+=DJc$a)a9b=DZJ`xeB8r?;UR6`o8RZ{G9jmzcQ(bDw<=m zIh}p!KRRPiw&smy<+w4cW+W(jOKuIP1EJArDb~G2#?uz)D?goFfS6cpRo0gFSnQkI?b>uc8;=1>@v5dwVtLoMAmH9ll< zYcIDgRujhZq%3j>o=7O%Gh^lK;j3fU$p$kjmVo{rx%dR#Mb&SibX* z6O$OFI66=BNpCJGbLEeR(|L1^PtUTTib`7Nf{~b{P`C4*9Hg}>{`%W7`f6d)I0x*O zWGv?o9s03WQ#V%{3@y;X;A$!8&^^u5J8PN#sU?-h-oh*W}* z`@>)!OLYg8*Z~WU8m2)mc#&1#?l83$&YQvSw0<7fyT{5K74MRytr&0>& zxqa6AoORaw!SBeu+57tC)ey^)v%hrgltFH4@?EIvpSQP0dl^GnN% z&3$l>0l%W`^7RdiGgn2^S^}gO_oF9MuaM$9}o0bdDq3Y6{sF z7A^D~db|trd~OEssWr+?;H%(u58ep)soXYFQ)bSatz~u{8d#Mi_KR4{Ror>{JeB(s z_X+2VgnOz_!+-I<5dV!>)!2~vDoDrZwfIur-~#=%4zBFk-dh%tW?a(!$LWtm=pKRm zl(Wgrmk>h9k3*|};}9Q|xfe8r77x%?@vMoJw4mi(?=glV$>@PuqBT{KO0oh${)x*xX8E(=D;2Z-e^>ars5;>@gY_GBk?WPfA3!Pr@29y zMGeu?WsSf=`6`LN!&0r+iQBEz|1;^|y&i)xm_*>jD!OhzK;yD_2wZL{J`hAEYN#{* zqqC2Q$q7@8ixCnm+VvQtMo$Jx8Ksc+9A8g%az-ROz2w2dI&iv^_|JWg!qF}?owYGl zf9n>WFvbaCK}e`1)^SKr`%|=s@4AZmn#75j^16a4dItZT@8i)*@Ex^X7wv zMII4}FNXm8QSG|)mukFQObGPr-m23PrDlG#T1A^CA11l0YPK4cDQ{R~n0R;^#i14d z1$Ix^AJMw7!zK~NxGODnx|xI1qQK3szackMy)`q8sMi5t8gp{!Zx)`R^~RG@x%8_Q zTAci`LzWtsclYa@xz+?<<^nPoV#6B=ZCzbm9qQzQew=4yfER?4uk@#0Rcj4+XbS#$ z~6<@m7PR;Mjg1A#teQ}q(;?PyNMQ1HnFUwj#%TIQ}=aE71(s1 zAIyPS{8nyG*&mqIB*AVS`!XHph?_&?-qXBRgT#sGo3<6yh(&g&@|bU)3I7n;c#{ zy?3P-0lhriwKxu!S3=d}5ikAvd@l=5uuc`8HE$u6ylXqIA8ARzfh=8c8K^{aZ^Ns& zXB{Nf3R`#%ifv?{AIEaw@a_P$i4T5ZM$5i#xylQ>1=CXg9#vRdnbu5kIY4rwExQ0a z%Y$0-8pU8ZGM`LFvNV$#Ox|j25WrTVwB~ z`b&A3aF}8PQV3_Y!3}b;-1fz;_(=JkGVlerY>j<7@Tl_t74W>axEmWgLIi;VQ zPM=Y+X{FKPZL4&*J9sl#PM2cF8Bj%J8W-xeZ=BfGB!12*S6&o9TGPpJI;o(73-3ykOlA2m^zcW`X+RWr&Z-3?{cEqd>IWv=c;WOfZ zgkvSJ`jJ(y0K<1BqsVJ*!Ei;peVuiXR53rzb26%w4}zL(I? z4@EkhMy^&Cbe1%zU{SMKF^TruIYs~Y+21bS!nMs37xzfTh74`FUBMVpXlV^^HI8AK zK)q%gxM2t$vD~dbO_F`)zi zla*ir7<-ajXnw7V@94)PMkW95<^>)kur_=C-*aBYjU+d2x*;+&)(cPGAGnx!%@x4! zj4eSU{G=)H(UqGSM2=JG+VV9@QHwc;-2wK-{>fraCtRI<(G00i=h#P-c{!vG>v&moFZi8)7w<8#I{!OL(}65acvnh*V1 z^!Puc)hn8Q+X^`9;99$MU~Zy65fbsBdZoG%mA#`4af=fq8ur`S^L2r%u6+0)EZQK| zbz_aeY$5?<8#igauaIHmL|9j>(OJ4`5~(Ock=T09|{L{HGe;L zg|wi!ui~2pOy>gC5iru+(bI#=dWe*VxYDmS^%e(g1@gYc;iv(WghMmpG*(y(wCmzCS|?FVS1N-q<)mwfMCiulh~;DB(W6lyR3;ix3tGJoVIxsLGaa3N)@A z@$zOGjH5|cjN>RbLclRpca%sCtnyfyWi~7pn*B1v7$+gDV>cMGYZ!3)J^M8kiu{SRZAH|hqHcW*F2ho9Y-7<2nVI}DI0Q%>_J{W{A;#;DLsLu3 z7hhrQWG3|m1+6tK(kz{_`&pMux!Nt%Wb&J?L&Z6}9OGw>6EODL{p`yv=ccS1n<^*W z_v+b;#r$jI0wjwW4R_RY!FmfqrL!n%GuT`4wy_53=NQCLI8GmujxV_n^HdF;)a)Ic z&B*_4Cll%N_HDG^7YVa{tXi;o;#G8~iyiUje{*^hXU`URfz^Z(rGIy<8{PDg7=!cDu_?r5CdS>G>qYgqQm`CxM;V)rHmU?pwI zjn5w@&8X!d4ma$k}XX6`TEz?VoOgfHI1=l`_JBw-cZ8h zhVmf}S|%hX8Su*3Anx6!CfLB^5@d}W+w0V5NtLZ8P1K?o^EkF%;*0o>oY6rN0<$nU zeTr@!J}CpZ1Eb$O_jR+Q*z>O$0R9lF-`V_v8xODKxEogT0c+?Mpd<}c5SdAb9aVCE zQ&mT7>r=6R4~NBNA>m1^qRvw+h?wENzitt|d+#j#V-B{X7+o~aM)qZy8}DV)>Ao!Z zJ*Eg-Ts!jMW9G|vg;CSNq5Rg>l+R||Ki3)xTUSCK1(m?0%WzH*Gs$9o|8B<0lOm|@ zPm3WYc4K`T)!^&M8tt5(oj>0P5iMwu z+{ma;$oJVZDOoiW13RlX?U$}iN%qr}HC?sVrlYhlXCWL$K7WvxQT0L9idvs;wRm#q zV70=$>|mkoF5@o2(vqYOZxwWx78#RFRiMk*s<`PSVn$ox>SZdGC)|JJl?=eDLQc-cv8h zSSX0uSR`7LJ+l@kDfKTr=yxifE~L`D%X!go->Tlwu+D_)KN>Ir1j-=2Zm(mK#5i z;?_Mt``=J<+7I($E}F#lCoc3s-{?NJcvBvIDw@ejkI2eUBl%SaOS{Dc(hg54V*MB# zv?NK+@i>3~u!FLm4p9>ju{%}fBq{0%F!&W)6k!_dJ5GV<&GfcGW^}jq6<9Y}fc@OB^ zp>m|KgU^Xycz05jZ|1c)S~qO^D6FovncleuG`%(Gz3H7Pt{LEe2S0sTx-XJ%J?tW& zpCTlcWWEc+Q8-$|A#rq9r(Ox33r!b9X^Pb3*FD+GvC_mW(mOfc@;h$1e$6)M)l&>u zwDQ1VS?Ob@A>QY)81r@m`IM;2_v5~X?=@)5+@;r>n@qN=ohY z4d?VuthT`0Z5^jDirQhZqzvj`F+1Aa&N#sq%z&(WWY`^gBF8kwPC_%HlG z%@zsx8XCn9Tu0%rvp91%hW!+g^QrftNFVcZ%{_w?=v)r0h%kRxBcK{jMKAwxj{(&P z4nw@{gI!h&s`u_W%;&ElX4QCl(pq1ST&RCEfhVh8fdW|d|)gFH4tD@QKpPBp0wR`tyIE4`hqPIXI)=vioGq8-*LX@BUYCs zG?Vp3Tnu#?JBUR@kf4ErnGOVe70@T&yFD!PBIDOFXP&& za@n)EBXYTeo9JxAbSGqF6NLuTJ~vB`uTn*ABwL$r`2ne{0WwCVHaQ7{KSI5Apq|bFPHeUH(Jztv0 zVlq2qX3AJg?6#+Z0sJ*X_|SrhVcDrnJ832<89x^~kq(Op7#Ka4R_gaVDFAN(*Y=;# zo1X#ot1&0o$qLVI=BKqMPFwA$>|69r`6<=Uf+^qcqz@SD6g#D0DAO791(C8no$S}N zsmrRnk-m>q;VD`PU0-_5W7*cT+>zHA<0WyDM1A9_!;vN7>BHe|_(j&rh&RgvN4;~4 zK1TN-aG5a$FEbIb^;1)U%c^Fzp72+)P7#B^+wga*8h&=xEo|z{ZJkdHUad>@ojPgQ zbYMdQ+uZLNU0;=uTyvt_&xAeTlcD0@Re zkxW~EMmCzFQOAJZjPluvm^17dN6U9^>yg5OB}ZuH z^m6)iwnQTNF6;zc(7zpGR|#Y4-#qOP*G ze<9;IquCT|r)vloRjjdadR3@j*! z?CswLKdQxWDy^Q6&-?ut1aUa-#sp$x?o8S0@@reoWItlrXegIE)|Z`bi(Fp|P;o|m z-7 z+pjFLhp=ER)nZqnB`1?a-wk-=YSX>c zIJCmKUl_}ts=K7{N?Q(}x14%y+@x#vUzaWed2r1dG+?ZK(kep{GNKvDQCaKr$27&! z(y};azKEVvOw98~m&i+__@NP2GPRT+n(Z!YBR2?HPlGOP{{}MDXFmP+qCFplj-Cx( z-}ex~h+uy}Z+ABOPu~VZkE&HacG$CE6L82WkJ~k;?0z<%-oWBityjLpm3A9+lJZ{f zz5XlSfr608f@`*&MX48e=H{?+BQPOI;*f;5ixfP~%>|vU_@D;C`haADURp^~6Qw&0 z51*5fn6Q3ulX)%?tM|~0DonzzH|AdKuJuCq;r6^LWQ%4#Cr;z5;jBAlZh_k;xY!hE;Tml_~J zqyb#oD`q;Z+H6#!);|S!KQ2~`ajbLrDy2_E&8si)9gw5+$!yIk4DcCR! z2h)@gi~d_FEE<#_S1HwHTkZ{?ArN2^=-#pzN{_702=1ilRkwCbY&Bi!V8+F*-=12n zx%;l~UyQl*SlJrii@G~vzEx*dB|ZJ!Bp_Hc`2&ascLwsWEFc3~~(Gsxa`Jq=G zSk<@qkt1Yi`Du~&qp>pkaCxBM%-F4npHu7t2S$%ph*y{V<*!zjt3^lWZ=5e)kQYdZ zU_o&Lsacx<1J8!el|9j9OK-M$H=g;I* zUysoW103V8P-K)f#M?;5T%B`#5(m_YR{H(R)Rc~w981jf`_IGHuCDcdmllbN{Z0QK zJE3M93oRb|r|A_evD$7@ZCG)=cX$eWz40;E&t_cB$m4`BZ&--NlHDXKk@YQBHwPc* z3^e%^zvM_FqGlK-%@YPG-wQ(XUq(O?kNd{QP$ZMTu*9Q#G&icwwn>+i zpx{NH3w&@DDtWW;pPdPHgWN~%9x{md%}|M1+%5A}me4cBrwNc3ZPL(0wUYvtZ664_ zMUTLC?3bo`#ygIL@7k5$d1K%eE$w2j*y(#PAD0|QxO~E+xqlFf)p8?!aLL5`v`k_7 z&jhq&bNNNVSmvrpRs&Ouwymg$eBadzfP%<+q3}iz?;$8w3!0cBu#BFVfV89d4$89| zeiK^~wN^e|A)m)Kq zV4Jm8-P;3d+7#_$JwXt3&4M>mjWh`3OLFfU!@q)rl2=YIl<)qti;ZA(*?*UkFAD#i zq6=n^HRD&{Oe%v$4o&U+GoYAPK)#=k8H~LI`N0V zwplG%Y=<}iv{t*gceYEBn&tQGb8qCnrjy)!HMB$*0hm%S*Qu&szSDN;AI8K1eB=MP zuQ^Me3DP0#Ya`y$x^2IpwlAS(A=Wu>`3qNURr{~%r|Xc?=M>+qIXX;-{JU6t*Np0V zRRViR6gSrFhntC+4W|UF^j{`6ZoGUVs7U&HiSpBe*$m5rHK(RXRpHGj$fl{R4H3m- zQqp1Ga5ZZdo5X8HIytoxgQpnEJ$C$JxVkSYi3-VMZXv{6BOYnRo`7`8qhn-tl3g6N zVgYYO5mI!@M|0oUl3+7Ag@Z_ykzSlXqxs!@q93qiq6tuq{R+o%+)bx_ez%R8 z`_-v$lI^KiE3gG6aac9#u@O;%+M)i8{)E;KBs_Vkl4HwXxG$ytLR6HhOf}z`6uLYE z5fd|ne&nWUp6;kOx*Mi)Y4yltN9?ZX9O(Z__xrVtg6+~GmL3%XMKC(Sa zHX0KkzCnd!6*YAuou^%w#(fM2;?8V~kvULXZ&u`3wp+_&#MrB+&!O0*)7X=20}<1h zO1j5kZX4P4d-F`x6R&iV=t!h;_T2;~>GZANyiw?l!KT=0!2+Du??5c8j3@l^8KH{g zvh5tDGa{eVL$&0l%*HF@!M%<&8`-_O@TACMUO0#*2GW8-wT;cW3?TFHLYUTzo+;yJ z5}WJrpy%-!p2!F%1DnWGF+d5R_?)*_wl$@1@`)E&4T1L;D81pas+Biot%r6M_&G!lG+ z>cDp&G9$aAtELH)aTPUibh-0JK1FH>+B7%RFLSU|xC|dPeYrD?X7DM3U3I=R`7K+p z)Owr|%ttFsig(K)cc71p5mw1XL_{>pmN4D%xqA)JCK4*(d2ztdRaCe>#L3)TJXByl zH~l;Yatn@aI}ZIK*r$`k#PsuT=q&V{b*tD>%O$1m7v=Y3jB?dKMx7@XDYiSQcRa_+ zPQ6R>4>z`ig2%Q~%-zL%HCGgP8fI*cu!{T_YeUz0ELR*XF_zZWtrh8|K1Tqx8yen% z1%DNWKX$*!>quh5GEluEyK!pp-;wf8sT0FuIhG8^CGAG3M!-v ztWT`Jbz6a3En6xj8}DIkziV!WxJrgcWo9ygBpyen@th?zC>*Z!|}r6+p*f_0>n&28a|2l`71T0dL-h}X5r>b=w9f%lyhvU zKL<=K)Do)D$Q0a$SnwGfq|?RjxyJ7^*TF9yo_?bz=17Y@%ptY@OCEeoIj^|?%tOFo zr$!s+2$vZ?NGfy`EhHB^jhGqPr}X&>TAs5K$if;fT@e z<0U4%1L6q$@#l*#FW&s4P@sf|m?(dG^pC?QqPCM`YK+lPXk-+4miU|SpW<24p@i_cd0pq2;%@JIggF%2e#=+Axs=^At z$9)hfQ=`~HbIj|l*90YGrhugB>(+(|A&}9*g23%6!4qbU%PE;HHw3XcK2}swu|br_ zr=IN%<8}5{Sv*u6C>1^%a>TqKAv%P-qC5#<7Dw#{0t`hl5uEQ3m<|a*5lv{NM!H#b zMTm0A^wFE$c!4KF#9^%jODzuVbp#I4YoxH=i}*zjg=h!|uB5LG9}%|wd=QQ*t6`&ZIbZ`p&6f71zBcX}INzu~9oBN^1s{p_XA2B9B}F*e<`*fmWs?Bf($QPWKV zDOY-={M4Y4=uomOXwi3W>Md;GiX_84Rz-Pn#Z=WpRiSN&_GFDtB&s8EO{Z{&8=AIY zIh!|>RiWY~emZ10U3Wf7_SV;_Ap%pw_dR2PF)2BDTh{dZe-YUF{vyGkWx}IZx*Rv# z#}q5V%R!&%&ader+V1fOZ7fPnhi@L2Y5WZq2n$WOROk!csEb5fO=3r?bD#704f%11 zkc5W4U8!uvgvg?@(}&#*hcjnkS{9bIn`T-bmXprGPLHgWy_m7hb5D5{xLwy(0LcHT zmJr6G1m+arqdZlI4DmCQXj7?c+rV=BBdn8++7C`{2$vKYiiaF!WMWCRP?Ix9cw}HD z?FUO+dF8Td>E0k`VAiAG0+oMe^dpnZ8l{_(?~>f`T)Z{(BENAugU z7xocmm6hQ`mg-*6b|V6jyc}dT{|DtPD{a1lI=03QZLpc!-BjBUqD_^rceZzPv?d~4 zQk$TttarR~HcyBM1Y)pjLEF-cxDBvqVly?S>r^i3Hdpt!-5%87hD9qq;(gT)NQk%y z<4)hNkSCXN1(Fov1j%2DQ7`2ZX`P(%xle5z9jixVV|*11-Vvfclk4|G3ZnY`FCKpV zOf_9D3_Zo)xgwEfX&f9H5>7klkpJJBg9IdIZZ525OHbc8q;72#cK8!B&PnwTOAs%U_@26Qw-y;tI zBc%R*jX>3RE)j6(AJlK_Q=t!mZgy;xL&8I3;YkA&OyGLw$l_T)d6u|pHzJrs8Tae~ z_}9n!4jB{gp8l9@bnBA@9`hMt9Og(c_oXdwudp55r=4^pd1AEcHESV)7bS0qmOkg$ z{7uCU=ao$s=#yoCAr%I7_e>ll+8S=9o20uOn#J7Y-tL36@1kxo;Ts{RHE8lSY9&cU zyuK5|F0H|E_@LIVhCY+J^0$@T@;pQ6-F8Ys?53V??oZN6RVO_Tq(m?;C4$(j(g{9c zuC=TvJDO4RiBY{(SJQG|7uqX!AmAvMv6{PV8)oiB^-~2=xBhJEJ_KbHD%K-+c zaz9G}K0cvRBDAec*)BnY%Gep|;3ugDumazkY*q0dGIYwt7ZoTTP{gW^X-(Zz-BB$< zloU0YI8N0m9`NVPn z4+ev9D%-4VzDmhyC11rB6%uiI7yzghkw5?gOd0>VlpW*2y#{Zp?&+V#fzqQ703`a) z&h`nii31SJ`svzME`DIJ2NiPOmQ|hJH1P{`w@*gs2(AL8Fjbn7t(10n2mhxXb<>#Y zVX`j5CdeX2ohy49e5L-|Q|`arH49{sPuRH(8kpXRO3uZXJGEB6_a{<_o5m;6Sf^mC zRP*^x7NdPC-H++7ezjfrbD@lgpYJ$|#hhH@jB+R?bc>^Y@;p|J+l-0Ln?@#3Uw{ME z(~o$ZCaBS}<>j_SRR`{AEfsBgmrlBq!fIDF?CchoUSjjCXrY7`27>7ERQ)r(UM5gW z1c1MM`BJIdMURoWk9%KhV3l74bUKbnu5KRV%$cwX=%{=5;iw3*7(b zE5j?AkhL)Lo0tXPzQ5d8w1RjZ0gr^PI|8*S{NMEBDRhoLjCl#<)Y+;-XL}NIM|A6y z*@!IX!sV%_s^0O-z7jzQ8=@1%P>=}XGwquLx@w$$13o|!)I(m=zQl2GLlnTGnKT5? z-|;JJ)8awDn46SBhO}GIZ4|S=`TWGUKK~)tC#-mR)1G;^(&}Nv6?d02)b`-A z9G+AndKq}?uSyEbQWBuZQHty z=!#q@?ptc^V-D_@BpGFa`N12`KPOk_>sPYe9uPPJCvn#EF%+D8c{?Io5*lyJPw`?f zN{6laO7{yyUf_nuwlW5zp(jD{cYNe#uAXOzE5MPXPnlv!5_I9)SXFARhlEFU8?uUT zONf;9REuT!p@yab_(iZdZJc+C$CoANJxF=FeBG;?5@^w8tNhy6svygT6T9tbt|k(> z*}1vZC`f;QeygS$Z~-D*wX!nidF9vL0{AswePJGVfxlacE?Kiy#vF^pD3D5*^q*AlD)T_{<1t zY0r`l#i9Sd^FeL~=j!_f9RdqDk^Nb8VHpNw#1G4|qzvvIjp*qVSnnJLtX_tMT}!g4 zplz_eQ-?s(YPFw!xrq|e3Wg8O(aeU7;J>wNwlH2>d! zf3M!kN@C^Tq(eXi!?pgVpFryJOE*=we-zY5MdQP!mNQzxXYu*QYl;U5%wJR6##$u|vMVNkSGoq&0;)q+GGq0G}{mm^N zPF5t-Jk{Nxs4f&t%;tkpB=I1ED;&;Eg?n?YPNJUgEx9~ky6McG6$g_oPT$6%69jn6 z9$kw;LCOK|5&DYqR=Ee}THm8FM@7Y0BIz6tKMj^IU%$QsDFMU{Es4ZWcMnj&E@rFC zY6NGtfZ52+sSpuKaqXi3k|m#jbAqi$TTveu=tq$ois)y_dnAh~?OuD&+6us(!H=Ih zT#9CWI4ED80s*&$zho0;pMmPJP%O0hW!`yKG7<{4sU*ivj%aVjvLg zAN~H!&c>65G0qpf{uW$OTNBh0TukbMgmS(i#K?i zxG{W-R9JYhH%e!}d~AAuci0K>4g3ZkKiWfLLPJgza3ZJ$*v;V5L*)>%6hYmE_Is(9 zfqG$h9#i@k$9OmLgs`XwyDrj=^p;Jr^|&i{oUccm<&MpOQ3`%1jT1^V4yH0!w`*ya zn7rLT6`)phY>;ym`wW>pt#oWQQ>~`JnOseo?jQYltuxV{((k1Y%#80^RCM7zhz)oS z8#}^%VmWX<6iR+F1Bqi>p|q0nqnLXyOtulP{`8sT`wxx@Da@$I~f*fo;x1+u=AoHj5nNSv)d}q%h`>KTO?&Q;*oSHZpj<8GRS?|}ud$9@oo4^deaYIahNbd* z3g}#L5HAQOvj+|LLlLML`u>m!_sNGLBz#LPR%1zfZ7+f+;$ym*VXcNy+ ziS5fRWBfPGgxb)b#?=CB3_(#BCIrrfWcvPH$oodD^p$Z)Vnm#D9|cZ5$3;pd15$+E zPo&B}erT3cVfq5AFXRhVtJzhISLLXmseU1mD%fh)ILW(o)7&YEw?x?qP7>58@#U>k zNA>`M$L>*pRI8C~mpZ{Rh2;{yqZbhPtuxox&4(NtVpifCw8{VA`(46GmoHD$#4?ej zkVSef?dM~1=H2C9^4;xB)8(R$OoQn)#>mWR-t>$U_e%Xu45{R0YgxNrU=^Mm@q{fO zYTnn!l^Y`V;6kCbcW4uJNCcGikuf{(LIDpwmB3Z@)N1t zR@46LcN#xTot+~l5Ht@r_}?H1U}`1X)!{c+aSc_-T=?hW{&=-rriz=Es~{WXRb+9N z7hcvkF5s{)Z*I=`^x3mikI)`LE|cDBKPR?+6+*Pc4@*~*r>i{vdrC_ABG^M=4(2SG#e21LS zHJi1SlA5)(+CKNmA@rax4Ft)}R5+&o;}uv>B*hXJaPFQ;B$Fqa9eEy}x^f%?&;!y` zX^C_WbA5bvSjLBfL@oh5{|%H)^_MuPClsv)7P>I7Ers6t=%ut@hFVuYx>ZeA4x;(g zK99k)`)*BoSQyI~eAU9(8^zjiva{-;=Nbrf2Z9?ozZToayHZG+JR29akk-=h_dva6 zYcPF&VpUsJ>#BGr$qg(iyD0#p(^}epHtLR4cKGN$A z2kP8XFWK#?8udGO_V6g(xDB6YFSma-KMD?5A3h-1 zmHHRv%?B6a+;NxRs>7wDJVZF}H+x#n0|OA>d^m|y?5x zzx~Gufr!`MRnUu7)pPp(nq}fJ>Rzs4L9BMKG=V5UGyPFKr~Sytl!d3+h3e5vXu>9diVC*Sg=CPKEFoGy@BgjYsDXnf?n1{HPfEU%Vs`oAS=exW&i{>%^p_d_*5o$F z9WhD=Y{M zEW8~oO78K9U$j{b&FB(+vjCad*J4zNN8kTS1O287-|9Jxz5GeDPiFxBRra`av3U#o z7VL=GPmty~LJ&%Hg2YU(K*)fZ5EST1)6x$YuGB$14xB-&E+iXAg4F+FBmAr0jQkMd z1^$+su+@nQr&jYZ{$%l<1vY<$nynD)!QCv)-6#)z&b*h_Rd^1_359Xfnva`Kt&H3o zQKgXwgKv`<+fWhFBOG^`t<*8>KrN1xWvhmn&dc^SW?1YC1FaOy@T3-<8lbW(VrJIO z2J5y2(f>5RylZTQ+H5xB`eMTd#b9dB`Mdn?i;TMn1D(w6h9=?}G)h8Z=Iegui!syOo&!kCT%w8GDSO{%{x*ZN#oUL$&OSU+=T zIp`Z_+({|QCAafNiE-~lED9hr%x`LCmi^h4p^@bzdd_J0l;OlG9^9;Qq>6MxKCITx zn`MKfWX?Wh+IP7#bW(Ou-S>Q&(X7Nvb|ZUV;}`XrZtN(G%=^C}^+{7-yX6w}X1u0y ziO);O{~aNb#{C1?N&hgGmV9@Hdh-y)FDw1-vM1KcDXnA>WUYu<_8$?^p{#v3P9e9nlI!JG>wDV7Rw&c6jqcKQG4g||s z-mOoEPTiu8Ke?i!N0eA9`m!Zr86!jmF(MCP841URS){>h)~XfPa|_xhQ4QrR&us3} zSIlLkTCgONU|O<)D&=@`L`rP416Dttn>YWr^m9VjZzk`ZgIflkTe!FZSbfBh*P2md zvt^U9s+tz~CKZ&lJ%Kqzyte8JDFtdg=6~_f)<&U5Kxat$Nb>U(9QD{Bd9an`!k@V_ zR+PIvE-XiZ1Nqr#iDs3s1TC`_nCh~1m4rNT?5w;{=jTF6e&DIuF%F0mits|LGsWpc4BX{(~<(3H960Fuo(93N3~=VB6yH}1$vao%hw z4IrQOgIfY}i4<-|Y|7v3^}(U@IuUSlK>W#QwGwPKjFED+rT~hzR_A<#ftW@7Vr!I; z(nk9;iyp!L;{&}D%)W#_Rju3UqI8hd#Z1Eo-#NF3>3zQ5U?JK~9L~?TuhLeFWT-HZjN?-p-Hml7_^ zAuy(x2iH{Pk_Er_MR?EfDYV3sP84`!j;q^0S@qKeoR|+M_BbsEk5wWB+Q&##aG6hC zc!yfMMn3FhWW`EjjJT16laR^%Jt}~5#tNJ(;T&a++l%e*z1*+hUDoj8?6XuYf~tod z_R@am*4SmOY%x9NFJjw}IM2ZwAr}7@KIS$~f(o(Y%WM$fqj>Z&Y?HHMnM21~2ls=b zD?;3&zOqI3+diFhTXDR3dQK4g3EKRgQvl}(4`w)5yLI?PP&2FAxSDG_N_VC$3?UD+ zmmE~ZZ_?&fB@L$;U@W+i|u|dgeZ459E{n<6rt|;!2Bb z#Y{i{7jWCPIkfq>zPY8-_nS10%On9v^NwgfHQN`br3;e4&G|D#ZZZh0P@|TiCHVg$ zAaQ4manzU+5nOVrgZ__^X1j>gW%BpL3opNkwfG&>y0Wc)kE< z^dmYukn$#_o~m0MZYk%}IeX`LI0G4RXK#SKmRi8u>aI%29atP|u-79oShO3%R^S@W zBN3kNHAfqhAL9)GvMza|WGI=~5`+n=~xe#EJSXWUj&5rT>R-^uX z2NRjK6^4VDhMFM`_xHYUWHbrl_G9<0SFmA&Il8g$7JB!Ouk4ktl1+izwVW{POXrsj*G-mg-^{8Ia2so^KM+mz`a zyjC_-XB#3N0{Q%$(fnG?)o|oG}Vw$S-l=~0|@7xs~|d#eD)Vtf`(7SL+riPo?O@ovGP1Pd+(jbS!uFGMam^sV~`1?*;otBOMzG8XG9K4y`hX zbE+5T*gms>ifg!$W+cjsIX&?|{7!RBi(>$l1>=US3=&q+d@yQiUsI)1hv@7?@q|wU zMa8lQEJ}%9(p`}qRlL#-mN(;>LP00s%Btqb7J5vi1@dY@Pfw5SM~V{`<*NG1%8ED} zznjgQ=PdbCe5ItsXj>~0xBm=gRV+#M_4WP_D#F6TzWcd8(^WcL@BjKK0b=MsXOSn? zztTAGRp%>O;U^|>`4JUVKBlTCPX0i(oGd=fJ*SSZ@;BY{WRKK0ug!7^N}X52fu;!R zr_oSSi#{LY?5uRV2K+Lz&nDS_;k0h=oYapke{%p$YJoo(hwD~C?F?>Bcf#e-N_eu0 zLFAPuLz^850}9~7H-n>T8h1A#;D? z*voGdK?6LdKR8Z=e04>QE6OV?!V8BmV@vj7(d}VV`mmsS`upnu_Eu;nkI?7P|3lbY zM@8MWVWS2pjYBs`cPU*`10o^atObq zopoHxKg7k%?|1LL?|sL0UH4tZe?&Nywc*CxVd*hjR<`I(bAOMc80MdV=(buX0@Y1@#qY&K zyN`#bNt$jO=@ejrSfiGzPrf!$mDk7QEPUS=t7?cfMh((!%CJ?GKC=v*9R029mz;+` zE_8w#S!LYjZ)lC{`t09JX|CN}>7^47r#07-jaG%0RqgMAj52X;AFpM^#St?bThOqj z>(8fXf&1(G{?0~C73UWhMeZ^tCZAdBINkbCBt0jVTlSeGF3`1Xc6hW^Wtap7Ndo@N zF3t!ZliKw>*M~Ek9(T?oRn_dpye!<2A~A;=ci@@t`9A;FwkBC}`<@jAj$It@6FIx#j)3gbnC4u4KlQsF|p) zS*p;es#5a-KBqBJa7_B}OOiHkwh&Ieyb(LpT!JN6)gVJb)xIya`KL3PAA>4deD@>& zOpt_syRF|KxtaVF?`hv9esbnwaR^|jH5=z%U-1SFncHz==$Da^9xDPtOe?t8A*(r0 zbE>TS+~*V(p|YB_crrSn?W4<_UtV~JyO-i)z|k6};p5u2Bz^?vU3w98{LNolQ7zPK zRpBWyCq!{Hs89U!jr=0XUl7NS#kXbxZ&;Q@&Nbq+B}N4cfOoqRTeXKhe6ZZ1 zZ?fu&UWU_(37M_w=4WR=Am%daTxju0P!EF8hlhvTk+mZLVG^=zYEs->T+Djn?0NEo z5SA`cAwD`fq7l<+QAS)(gJvjgXU74m0GeWu78g{?cTrJM(JUw`Z-=vGe@OPKNIsbZ zM1&w@W`L3Gy2rIKT0M+501+Wk%DJvg;jJ;{mtVh19N7tu3}${k)Tfr14nqrnhmx#88H z$qBKuYwlS1IxkS@^GCx<}2acJRa zh7TwUi6RL(pmY(h`kpv$6ND%xzdw5v{Vj3yx0&C%Cc}psVlgQjHfwrwKyb%OYtjfO z11X@pQ|_*jlZ?Q?Ano>_)o0umXHSnaYvunO_W)oCgTH|#p$x^S%`Cz)p)9e&eEsm` z{Q7&*`9|IAv;S)N_usx2M?q<_rtTzog0b>vW~ltM*FUd++prp# zfwZY@5A{qZ+T102#@iNT96l-KT}VYsYtylR{K)*g6uT1C-UWMr(oz(AqlvV}ZjS7h zqu0gEMFS5aH(U01X8p2lM8S!|>YnNSJeKP5K=`3IyLd*J_^kPXkZgpVYKm&jP%y-h zB3!D%ZZbjeFj$42v2Z~l&bkD+f_Ow>Rz`kU{hBVb^eDsScKR!xKX*_P%L_dEp z&Vw)U)eNVFc^N*m#J6$h(L3taXvECBog4EJf1B%>Y;-a7Q|`h3{;qI*CXI(_`NZbL zkFC#M{7vz*M25%4VEXm;?Td@Xwd7M@X#uD({7WEmbQ*zXGgoENn2V1`g|eu${z1Zh zJIP%B47S$=Z$2N*yct{eew7wF%;35&GD(^B`9*B-FcVzLiAW%=VAW~at@qgQQiLMs z`Q^!0=x~l)iF_;AZIdi#p|dLn1?A=CIM;v9w52c>+1yOmN-A2_9yCUa- z33{K5Yik~7m2gWPz_O!CmL#jXb?V*vJoAjNU}0B*|HXYw654Y(KMXM?vF|$JWlCc&C$l+K*=gWs!x|@ zS(HFr$M{YAjmaIj_Nxz$xrGL8G*YW5h0a^jgRCu+y)?){Mzq^uI;idE0pgX*#7b8< z=E15Ravp=uda8(BlsFB(7fi$okqM`L&JdQn+Cv^~-KPW7Zlel03ytddNoeDEWkB-f z2=n#gRH3(u_^Uv9pVx(!+)2Z?AJ7MVrn_R>@4s8q(A%%9MUw03NO!^)9jc1P4BGT8 zx^7b6xluJrspi!Tz|(o$dCYMz^A~w@223<($5aJbP&4|H85zpC_1;(|VY4utJ~+$> zGJIp=BJDR*+K_J;zev$~KZ2S-mRWg@%>c-`@v{fkypyHGHJ9#5UJU?Vop|WYO zpI1%dUf9km`4&$Tv+wWv^uP5w)1yw|zuh;CZ7@_T;j@O%Ko32}>XIe$4J^dsh<2vi zv->3_C4aQHFNoNt@ydqmAO9^TO0IM6x3G$d8Rq>nETWMn?1q7giu!|v(NjE~1^(vE zo2ALNn_A~w1v{c;Np}4@#dM$2sHybjCPLJ(P@xJITHl)sB$yljTkK42!p=v|B{S}c^ zyF>M>{-aN#J)*mp7lAYo7Pw6_(3;;T|9tmRTk9!j_=%kRa-Wm>kj>n4MZK+uZRAD8 zH)uI8(sBgTqF5>fqi%P6HQ)G+MYxe5TXe^%O>-Zk;z7eG`b_ViVFEM=HlxGTqs)DB z!8q08?s<+CdzG)U_k&LqTc-*C!L?xTjy&RDGM+?T4k*X$j%hnUV9s(i5JN#e&f3Hx zDf8!#noz3;Kd!`_7lcb$H)Ii;EL6f@3?(T4XXi40L2PV#36fXs`LJ?!citpPsNL-z{$ApB1^-dn( zWpIM40u+|!QS-ggv9UGNnWv0Qc723%a@~ikr7bY%L_OAr2tXKwcKLO39t_N|^GgbY z7{2~|z8q0K^*NFp3~w6EDE#JS5F9I)oY<2#T4O;V$l_YZ1m{NVORmWJ%(h=9mcEyg z^q;A*Dm#H5Z=ACLd>-(5%i)qvGI^8MJlTzPM1ZQq?ebMXoD_)ZMx|$4hgUiZZ^bl3 z&^FdWKYZk0-cNsEmq7z=DXcrxhsY^^odLW%DPfDpc9^wP%ncpL!Yf=g=*!9I<0Puu zb;tfxD;0Fd$s90%Cl+w^cuZ1sOYAg&8EG;NAa#!;MMQn(jKB- zum5`SaA{T6DH{M(zZRtGV}7kJ{L{$x`_I7ONq%B#X7A%{ z6UqBInnOz-^J!i97VRBwGfk_m<{!g(Gq=tWp;C$jA=}}IUvSpu-;Gi|3T zSxg-SkG8RMC&|&#&|diZ`lg0d@2~yGH{h(h$*$9wi@d-1J#DT%gFZ;)>N&!)v3c$b zC}j|;N7r*(=wR5=fg~SPaJS`bL7gQB$oP*y4zk2dbLozn>>tbKfze7Orlm>@T#h ztJN*ACs5kN)_S9*SH(1uYaOxfrVzNI1lp`0*H?NS&lG_Ik0?7U;Y{!tt)hf4rSYYK zv~fQPsu{7uE};O`q((nv(en5t3eown{z-y*G-Et^C7FIOq}}E7=d{es3Noat=a7yA zJJuKu zbw!6_kp^~lc4`&mmaN9_Ju21bwiuweI<0Th937f!N-gr4nhqIVU+;6`vp}-brI7Z| zHF-GHVpFI*W~sO7`@}(|xt+P=h!Gcc5ArM?PSA^;=x~?FX-^9XAR77Y6Zou=F13vz z0COT@*yqS4Rfl<&&rE6&M|t&1Uu4xgdgB3Es8DK2Q0DBnqrl)Up^QH#yG?t=^5;x` z<&{)uTY;7KVNHwC9d&lI`4Jy`Iy+sN6Fy~T8gCuA%zIqdJBsCthFsRfJgYDYg=L=Q zfF0bTp|_oMwo#C22Ig|u)dls)ReVKkA-} zQOYdajKMN&z}p%$Y7f7%*8HbM>^)4ChCn{B`iDm6_tpk1y9_dhf7T(i-XD86R-m?# zVI3qDO6Ri;4*QWpTl?v5a(bw-ZHvTK^(~XTbZ|j6OGEY!+~|T;i<0XDYV+SqwH2YO z*OEDvZ?50Lw3Poc?<;GeE%c=( z-IpIq4QW>GDUQz;7T*GCreiPhMH{GM`Ab6CfG1bsWO}7&%3n;EQB8j97S`y!;(YKP zoycJDS=I}YTUKkb*SfP|ae83-gd*T=VC}JKG2}aDOlR?Lf3=5J@n@`r_vGx*Zh3H9 zcb4kr48t3)SW86{U=?*d)@zM;ax;-vo*L%G9QnhS-rA*g^e*6qH8m{Y2bYH`kNo_pIIbIL7v%TnbooaDo0{#sbQWEz zY~qIJn2*)yc{+~syyVXI`I^ud>v2{-?4Dtko5Z#&REL(6PtMI-ec9i$s!cmWCVn}S zDffBV&oyLqkM>^7*i;mGrT1*n-rE61f(^&w>|HF%K};fc%XzNr^9|aEXPG_9XI}g9 zh+xjo`|(z(X{anWAp<>7kBHk9;C!u`SzStl~su{bnsTITS$XCvB9+tc2u*+04}o~Vn*VmNqK2@)OL9^Q1+mV#Q0j%6xmOYBS04>N=vrMTnr_WVHa3NchrW*;_HaE2<}1 zn=50$n|6Q}zs-fDONGeRL50Ms;#@ce`z&h9eF4W$-*78y-!Ne%_UQCb9Tt1n9zv)G z3+OFq=)<9el5w%|p&b5??;y3!0+zYObYDdHb;pVBNR=y6wX)$)Yxu3IH@6YJ?VYwj zq#lzRhdRdN61$5$Ga%}AT>xXSe?BbWSST`J$|cVn_*ezsTUSn_DQ_~aDA2m`=Rw=U zp$HGh{Iu+>0grfMH9-~FT-3;R&M`+FPsm(UZ`v{56iX*zfSN$HRi9ew>5xd+a+W+~ zkqH4>^D8Q|cAi%0O5wDMnJ3lb{KwM{-M_G&rNCWhM2N2LB}J5c=?#fzA!2Vev5KNF z)hi`TES(~-3L502^QBdq!m|q2ZjcRUP74|36m;m=-C`#hL?axGA$mF|m$CYzX0=BJ zYPY5_LAUPB$w>WX9^&I&I`L7LfbV=mbX)wlsL}1s_^G8LdPA_e(*<+6ofIaWYyi~*z|sH zlYgEityhqno2$v4B_tv~y_znzxUmk32AZvpDeKsDJClzpKXpV*btD%ra`C&hA$u5Jd~#^qXeJ z^c?B))Pwrf!+gc$5n*MI=PrVYJ+w2Ig8qkRYl5en1vD$ol+6n#Z-oo0MkuGB+f(08 zAea4utYQSCvr*_Ch8?-DgKc_j=j2wt)nTY^rMmywvcpN#IL(IMxrHE5FnV^?m(z`} z@%#5xG3PaTx4kzt54-N)xR*=Cw^ECKx-t~v2*w|1GwZ_m^=Bj|lT&AXy)Af)=NHdt zfnS=}MHBB~$n4?GpS_Z;Xg-Pa*+YXjH4rNm5~qxSu|ierMdtI@+aq01kvmJr@E0q` zpbXL#j7j{2grsod`g$+G7<;llG4tO%;Q)a2ww}&uKz%Tp+bi2gbLTx3e*DlJ>ni4$ zD_z`t|ygo?QaouOW9MlP`0D~6-`N*p} zBwow9ACrj?R``oOkRTVsTr{k~zBS*ny6T|vVJ!=A#e-%v>6BxX1l+!1^l!cvHA-17 z!zgJJaiw77(jC{+X{jqW3Lf6VHC!GB$cAOh!21s8QyOI-h?{pF^qy%iL}7R-Kf6&n z09a=u1B;HK4k$gb4eq;mb4lF$0d>Mbgv6stI$qQHGLRN~G&*?_!fd&CW=R=x0icBc zl4R6^RCUxcWctwd`gBg;tyn+SBqB%5$7as4T6&?4?{e_WXN(-8qkzJU_$sGS^VBAaDU}m6 zPTpypDdul0*#jV6dlAYI*AF9EdG(KzXuGE&Y*T};+*z~o^74d2PDPJDiYeY-E9aLo zHO<-#Rzc=fuf}ggt}8ll*}VqhVi6icn9sLrnBZ$`YlUd<1r~kP?c&)CLOJVRf8Xd` z7u(oa$HpEv@;6+n1q6K2UF2YDC@x7FeTE82l0RafVh5U*Wl?`Vs$ zFg91SrkmYHI)EbMVq@zFrS>oE9<5SJtC#k$Z9=#;lt-?27zRTkL@9R3`aer&WTX^TJK;y*X&h&B5JEb^0fTOg?h5Wc(KuUa%aggdNKwzhP;||pY(XM zq@s8+-O(FV*B;#gPJ3dg9qc|FJsrU}#YM@_VrAxRpMIqcau{N9Dt@Bt*5nw}KS7X> zMlcsbs1M3Zn>S(eg7Dz+7$6Uz`CSN0xAH+IoFvA{g}7Z}4Q1rZ7gb%uDBrSJ&);SZ ztT#8i|15jv-7;Uf&iP*T{kT3qJ;gjPC@VNvB`rBX)VX+a*1Q;pcsVV+yLwl6x_@hp z2DIse#6p8&<1)elB7kAD!RH(^<`JEkUX6uq`Kd@no0(MRL#->*NK^@9b4|1FE-5?; zYm1Y*`vW+bP*i;<_GBEdNQKOkLJ8E#zKf$`MZt_WouA|}KN&waUl1w*wPZP%S#KQX zJKL~ITABqo=&9D0rJd_+T9{j^2Ho;G?VhOeP2PcMf`Gux4Mi)8QH0R!35? zkK6=HqdC>JZa!0x4TXz2J~XmWcjT=?W9h0bw6)Y?InM}Q_{aCX7!Xth6XMH-Ld0kH zjrtPRP9J5{!Q3~;SWZ^B&X$-kMU2-6i1bu8;h?23G#$o$xMpI3<{n|fWmxxc$|e2l zLb{JRru(_?#Nf+IbZ=JMv*G(2n}Xw}vKd9 zGnlS;P0-Pr$H5F3if1k;)sz(ll;vBrmyXCC52JxVdWgcVo{9o#S&@; zTG6A#9X#&4X1?5>1l}rX_bbein%9sB8qhh&kpZMh^Q~VxSV=7?)L5iJ_wn1>-!H9x zA7Fc3)X3aWx!=^fjfhiAYjA|nz2o>sZj9X?;46eBkI#PTe&18VBI|^6Qj2RAgey--mv*D%!;2XAn<&$zwX`hRF|ouvJ_4W5V*A z!~i_Z7C*w8qc}`h-OTL~d)P(0XQ_s{cXLC^TtKAx)9JyPPd~UpzI!>uGNi9N#Ydp z0DUV)Lvxab=LDyYa=#}@D00XG;R-*Rfhn2Bq5%%loqkG8SVv8N)3C>gBG#XGoD=qo zQ8rZqs(MCQYOYSY1GrEz-n`=cM=y)4rZ%WykZPipK>+tl@TWUS6_?(hc(^ITr9HpcL*rJGss=VRX>P=dnUz5C)QaLPnQ-+7kpe^k%;m~pNpO#}G zd^W4_ndd}C)zP=xecpBD0ubm-Xp7Xe$VV<3*NFXJ96UU#YL<7_RY7&q5hW!_mw#M( zbCpP-ch;jm6SpG-xIC2e<)hpqo>VISIU6vcR0`s~}@ z+3ZBdKO*hR{_AEka>23D7k**smjoE%Vu z=UNYLVhQA4d2_lw&8kPw$*C+mK^GY2VitvtV}AX}LshnMv?T`- z)=J5alKJuD8p+J3(=?=5RP-20){}3~RTmZ(iuqSoCrCDILDdI|X*0S{b@+M5alw6Z zQR}upJs1M52W18oYzgPJF!MqhQQ`lstS-s$a!_O}4ZC+ny750p+O&>`2!`CZGngeF z&lPgT6lbmoj2lXY?I=0$7--QD>My|TuZ|2KAox&RK$T8kDniS`2M8W8raQFkr;w0G zGIDZkJ#?98a57UQn%BZ2H8}2HIMKS$paBML{_{M?oD2*Mo_j54GlFH+U%rfq?g%w* zsGAg!Meh}IBO2+`jAD2lyXM`GHJD|1Q+|U^8x8`2ppf2MVW%HD*t5C(9fj*1K8}YrnxJyieiRwkMJZtS_WLGGBNpNqew0naM}X* zbMF?cUD*aC1dwc3@sT2hDwzg}jFC^d@#)d#!pX)yJA4e$>(L%W64d;*No2_FnpWdZ zwDctc+2iN>HE)HNE)k0 zFNd^q8j-UO(6T8AZ|l-)5j_{q}`v7L-X7MrBm0+J))w7JO(t ztRvgTL?g`QhaxnJ+gm1MkFsNQCQgyh^U7n#*IF{5 z8a+DdKYZR&&|%(5<}V$BW##r;okq9S*NgmpM{-&k1q04{AS6aChCxNSBFPdCPFn=G3wF{|rlJ4RcOxC9#ZTulmG;!xyiwOqd=6 zVjAV(Hi{&&dWa{NgGDq_5R+~Podz))+7@p^*2HwbtL79|w+sKzNG7cR(7wEq{RF4< z*#O8aIA`=d0_p&0<7+f~v`NKqWTAarqv8{o1*!1CM$M3tr*9Hxq+3UlR3s5l3j|}m zdvvnsho?a8=`~0B^aew3+4{bRwq{Dzk0?@GdK8 z1i&K+M>aMJC$xs*u!|2)Z@f>ZUh}$f{Qvp5m`6VGU$l#kxp(ybTINaPg9#dWMMaqx zFaE)k)scYn(NA4SdI~Z#R$;$va^Fb-zSNT+93))N?Rxw98NHa$%q#s{r8#uEaz0-J zvv~r_qw1Mg zKI6rjl{)NT63C?}`(fL=elmay%yOf`nOyt@go{D`w^Tc6)X~S)h7}MHknnOTCq`Uq z4`42GxmQxUb=F1yeQT8V9Fq%RZ~R2a-@yog$IKGr^D)O9Evyt<=y>Wrp(WkmHSktusxf_ivf?1B;_4mIyMn~E4(iO z>~P@jTo5_|ko8K^17;SMcAveLNxEQ2))v6IffoeqpCIhTXBGp@Js9fN05e4O>({U7 zD#Yr)jIN<%60Ao+TA(PS#n=7lnYg%-w=ZTO%`rDPRv{jXerK)2{sV}xVav|km+?at z#u9|2%ZhGpwRr092GWXXmB8#1M^b}N;xXV?@2W<2|JS!}&(=Gv?k{)zXs2bV6(;_> zkAb>oi_Z~|yt;fXUVZ(S9$QXf2E2sS;CosDbz?E+gggD^4Z#+Xr_$5~TorT(w5Uav zzy{~-DIOqg$Pa*ZcfK`HZe(capY?Ui@z?n|!C&8!Dk}}kc>c%g!kA*g6JRaIk5Z!9 zeusLveLx4lGEc7kG)FAs6F0(}2|VeY5Z2#M>QOT=D0Lnk8J05l=E$GMyF&!u-NOT) z^YT#9(b3CTYVH^iYS#0ES$EO6tMSaMJVHXkJdA861_m)#*0PHuWXZY|22DllC9AWG z3#Izhvanmbw3-zww6pxO!fI=X67lX^yN|Z%gg_o%F|$djTI=?0er;R zvlPB|9g{PEFEF|832Zm2X=UqOHEARgDHpx^<&d04cn zwst5;JWau+xp|@3qvP$}==}N4Ok(&Gu5Z#~_x#VAbU;psr;x9lUW|eR1=_Bro%5oY z#GIWHH>(oG%iiho`MPh$dI7?xXoP;0xz6|cWYP`=*AT_);#Xpo#UK?!Ve{?HpYx`+ zKO+D4()FySs71C!PrVwqt`*LILiOmcy?0l>eDn8Wo2%P zPerl*R{;$T?SZEg9OGb?-tVSrl|o8qzR=T4;k|R}PjVXKW`nvNPir8Bvdda?0+Q) z)Z^&$K7kk5{|=%pC*bna@s0`f2;=~cEAN>+al7x;05V@D>h1&B??(K1nr>kXPBPG=TLF!U!t!!=MNoR6LBj>YC6qy5f9Wnp ziW#5aU=%2)gCd!!&4O3f(Qx(4q0S<3HildrPxg4d!Q}y_pubMzqWJg8Dbjpkl~0O> zE-EXH6&2yat*$>RO^khguf&3{fyq#^=plbklZ273d@~$_$Px<&XWi>}6SCPojzC^B^;^H4X!FSun6yPPC6l_-1$n$m#)rtLynDto znQYk%QN<#+>r1zUR=6@*{ultQ$A8oV|A~+Wu>Wh*f`{(nCWc(%4!TG-1_oK-e?%n> z236g=LA>##k*WO5Heyz467-<&K9#m526&D}CPk+u0}}P!NtHX|LmF`UKBwEN11TRq zJb7bb@k)W?&gdP$=;GV3Zv#}@zTc4STRv6l4?;0ji1JOH#8vX}qwk(B$p4=G0X1=j5ATsgq?{;(n6GVA5tu36rQ|MY3%_rgz~T7nK=;jyu?C9uh->K!tj z7r67Zw6s3uj^Tmtrb1h+pQ@4+xL;UOBCVl8aJsixkx{bk`-GaBD;=ltzFMRPFyNnM zJ(rKI_g`j>pMb&~{Iju%vnlYPuG9v>kgpOFVx?MahetjL?ND+Q z33@-`Pc2hd^b}<$VoOQE0wQPX6C-9HS6Mv?I5;@u<>g<1Sjjv8%lhSbiMA#aN|w(z zqwmMq-;eaccl#`*nCZ)GF@gJK@CjBbVL|HMa!C=(owJA}O=(}p+i<$u;i3u$#D&XbRkz4%T`8#$Jh==8 z&(rUuYsvdJA3&SiIrm6c!TfF?E(vD&ym*{;{^)Ljh#LiITi-JQ#{d>FaQ`Eu$L9>N zc_hQ163DLqGv`Z+8u`9EiEKonDBj>zGR<6CV^FYX7K z$(Om?TM!b^+ze38DJXSu_`7#fj4q6cJ1n$Djr~*{v+8qBe5XuoBJ=#K1S;yUB>rjQ z+bd&lw%L{=ENdHb3Ue`h2AJh7m%!i+KmmxCcI6E?-?0%N3zSK&`-9Mvl!jymhGd$KZh;B$wR9Ytc#+lc5Fr({m z$%K8}_N%)Q7l>2+kOfC~)T(!4?(xPk1Wn zhycz_OpFrfp!}$keh-s+X=PP(4D%Qog~ggDf^pu-srw5J3F`tD&qCPuy9(kb8we$Y z%>qbkvGBDno-(qGR)y?79@LERBCM?qlUG1AsuyrG(A+b>zUKLqi9?wpGS{&*D1#n8Cctn0^U&~oD~V92dXFIP8RqNPdcjMTI#`D5 zTUzJqVb^xs3bu#1nnksZrMZLAe^6- z=H9~^nXHTc<4M>+zbWhz4~%gf8_xY~_9F4El4aGtDG#JBW{%NMEdw~uJU z?mm>giO#Y+a5aUsHQI9!v8l0=ExVN5%Nfl7d^U{YOF0pKIUF%S5P5-Vdiurs*Y!c416*JgQL<8GCqJ)^1NuCO zd|^I8FoA7K6cFBNYZ;0|9n{g$Y*{FCWdy z*49<=V0$DU7CV+kdz}6i;%8yo88tgyJP|f-Ev>6bIYBA7s&%|x*gx+};?*@@;>iJs zCga7{5uLfYCObvyNf5k1mY!(S!-LhNwcqLjlWk1aN7(aC!~rLV2%8eE<$5+PlV*3Z zbs&0{RT|r=;X(ifk+vqseF!u|%v1)QbVj0-7*QCLLR75~^Y+Ws>)|(2GLqO6UB6Aw zlL>r@(*B7FTuJbArl)$S%xLcQ28Z*vR#tN_TD-d-?~hz%{YT(Ertq?IeWVKpLA4N$VW!HQ&?w4qLkpdTi+n~~%hSW33 ziGm)WWrsC^cazuaBfjM;HXOby4<~`%W-gCjbk13migM*77 zv&(V{``jr#tWKJ63+8+CFW3I|&G0xT^CO#6?C&N9G)jcL8q~j}y0x(!qK}*D!RF~Y zmR}(jRx^iJ+r0Zv1OZQ~YRP;LU3^^S=DMmPCQi4Eo;(_(b-nIdELjIp*UtYdqWuf!?}THS+Aca=~!Bf;^G?Td8^Buy*YZSts+ z>njTSTWkgTA_2V*`WD}U=U6>^)>z-a`4&$9vnek8!!d8Jra+cfYPn=8XIU}&eU>~R zG_@)N6~frW#(6K(8M}*CaeX&DlWN5!&P^7`u#G!rS#)?jKw4Y}u`@Hv*G7rVoc?n4 z_PI3ukJ(kTkg9d*u|1UUXP4}69_z~0r_V0i-~7>4SvZZ(h>2<3`FFK4d^y~H)p;EI z((nEb_#pP<;=6~e$C<45s-N0lW?{|yDC*y#zq>YfY3&DvH=h8AL&NOFo&}|wUZb#; zu=W4PnhzX(2Frg7mLF*@SAVTK*ptz`L-|X!uBE`}l`GDE2J5lG)K;j_XfhrQhkB;U zyyrtg!ii$RW2Y7s*W-ng=MAxOQC#^I+9$GC(V=url@!0m-5Px9P*=5go&K(NxzIl% zLh}}j8>JORCDL!C9%!j=3%a7=<4|{>yW1MPxYs>;+;)9EjwG>by)WXvl%BwLAkuF% zUwOZx)M%a+p1X!DIpNMu;;N~wtp&vp5TSU#gT>}EJ~T5|bK3vLfP!iy>+a6;^Brag zj!w|twTr~nN+{h@E&FTqr#!0lPJ&AqIFt=x$2AYukcnP!ZmFukY+3iR`*OPz1qmOeI+|Fz z+yU&Q5ZWlkE&>U9}nM{?H_h~>lf#RvkR(o{eNh-dMDMi?S141_3qFGC?X1s8 zZ6~o@>kIeimvZYj4Z{A%X4{}bPqlO2LS23q9=*_%@u-no>gnp%bZX@g60P}4*<>za z{@f&RQp~KUg9LDOH#a$xe!j~^u9?KRXBxV$KlyEq+`jtu;^(OC?s7*`!SsV2kRDgnYQ4?miU*(=)#I4bi$BBH#ZiU1dALH>bn&2vM?bht z#~82LZu0~(ZWATxKb6fGE z-zO-hoyEGQ(wNct32c&YmU`dFrLg;4f55FBRH<$IlPQn**++`jtR8VC98?ShN=m0~ zHLa?Pfza$PEz{mwc7|eKB8rONzj(z*wq5K-lNQTLm#_IeNz9*}7v~QF;1}mpks-Tb4fgY>V%yPYg?QW)~6)Bp zMZCquH|snIJdVV_dmq-0CCn}iAI1JXQMyRF9QorB6sa>nddiZ1O~2g#p7^k$?SwlfYh3DO>%usTB2m|1HhdkE5!b z*_%S7`JH1pWS(6xtYEnI|9)~v#bOqQM0^B1H`U_md+8E`-aPJ;i9OM+FGR7^f@39O z3?k0D%RB$9YAvS^_w7N1sU{jzxy_y@*X;DRFZU%@N$}$R$q-6h{uQc#7WkO4;D%!y?tz5 z4G{8#%7dU=zI&lKY9u_LTg%Z232O_BOXbXSBt@XuBqC;FH#^jAi2BFkO7GLr3nfadYf0CU1y0iN(Sa(s{QlmI z@fCUHb9c_TbN&kVi<}ts2G_3}*RcXRSKR*wuvV6NRrC}mLAghBUocvvty zJyG)IOF=heG@b-=#Oo(Q>7Vj%a1<0}!cNb6$21r+D2DU%UPw8;`7>T}ZavC)W#5Hy z1ztQ*J7~sI>OInjT)6|G@=? zA+o%uyW71XwCpYeLX-0NZ=Do|W5!LQ(TIit1o-htNWyY+>7NS-h~yvoCh2EHznDMw z@W^Xuesn)eb;?h)S^77=>wRgW^S`zd!JzX1DuAv#WLFLgommZng!iQ&FbFLiBa1|; zeQl{s|FjUYBO(h??mM_YQ^}FYnKc-KeX5~1fcPFkNYdtziAG1ZgF#1Xd~foW&2dZQ z#d0%$QBCVffZxbbFl2{`FV#-avlV4^a=u-0QSn5KqXIqZQ6wHeZ%Jyb-gF^KEHnr8 z?F@1}kj%CrHU?Z!g@|o9^947v(Kx-SVeEzWGl*+}hHU2ZWcEUV6jdFE7e?v#YiD?M zYYb&SzR@yys}T+4veEFMQLdrY+qw`avp;Ap8_FskUetT+84(K6T1kUcAJoah|64BK zf5PoXq;7dP$T@=UXW0O4&Acwn{&P6vGwaRN*Lu24A5GcX1;ff;#E=LPQAXvUqq8ckDe9#}V3

)ohOAS(%rr7Ni2gR?Hzz$unpMaqr3CR6!qi+B#n9UKUGcrze$sHnw5O`xDF z2#dX%ez8gYz6ST7L(0O*fnija)1}&g%&!5t`3y&GA#oF{N{{4r@P5B=dSaC z(coU4jr4FDU8;m2h=rO)f1GK7`ja#*oN9icn6B~&3SDS)dzII};sR!rfG}89M+Yr3 z@-^$-&I=sE|8J9I`Kc2}x3YOeS#xtUzZ)@ZAXItilJOzlvqOj{Ct2#%py~YkXDR8s z1p2i|!OQ-I6)iL;K0^|#qCUx&S5Sev`)|Wr3;Qw0^LvB)M*z4Puo*oSv83YSG+fbw zpCl-=@oA#dBYAm0l4N5(B~Z2mLqGY`I^1PtYB1<3UX$pyQMDPikhPs1B5Hyj$Lbnj zRi}o7LHGWDwXI)c16H987aQ1=WoKWgxttm0`d1%UpKSjUGj&Uv-x+q?5kPQQPW{vsf1jQ&l8k1&hp z>Gh!&Pg)B0kmKqR$q}Bs5p_=1f7&_jYMPt%{85qI?MQS>WKDc#HupQ0loEB*>bj_! zb;Y#EipO0&C1W}SBFx_0c|=`LBIrx`@Cu2IRg~=1U0@w`R><07o|P~XFSm|ISN{EE z$1`70MYs%Jc-e8V+oQaIs{cYFOKdvgWg#OO+|Eb8DS@88sb8=&+Ncldd5w#!avH;{rWz8Ry&rnSBQp}Ke@@O5f$4kN)Zm1`BtXC9}}ZZ3&a3k(`TKx zYv?NG{MsvIk*b0beO4+_sXsY<>$_3NbJ$dCa}esbb+8cJp1~l zqu+8NbqP{b14^#`r^azGy5+Zp<@It=mE7J+Iiy8iO7dKmQZJ(*vNH!^Y(?59k^}Fw zX^WaA(P;=|brRQPpkG-VTlx7_2;WrjCpoUWql=51sWiE1le`32Vf3Mqk?ibmX|l07 zaxt`^^Bx5tR(H;@_kYfiq%s3>S6NAis=@1QrU{)%GnI6=vYBNfCZZok8uQKfmG8AmO6qUfXIg?(|DrrV=aBMmBM+E}>Y=cwi;IiX)%k%Iav01s&`jZg$O&h@ z6_L_tWb=^fimwYLgeGZ~@b9IWs|Zswz}JwgV<%gJUVrNF#5v!*efnI?Fr1p;CFeT} zy61G#c|*cE*M6MO)WaDFlms(IFJz(FxA{t*e$&p)&m4FdqcZNdJ*}>4+M`G5Ka_Iv z=4X#y*-{|jsr}qc^RP;;8RFx}&#Dl)J3%u1b8aN?%PdPntp#peVBl+Az2a=BH!me2 z)b<2AHrNJ>(00$dN))#gPg<)&e3zR!d&*`{w^l4>4P&Vt!Az;zG~s;2`KmjKuSkdT zL+Jjw_1NX&eiEg2lviuI79eRBTF$Zs13Ri6s!pLNJ)v$NYub zpt5@ z+egO~rWNnfUB#5HViOg+Zi&*}we0BITuhA@_YqE~n40hr7SB?I_EK4EH85H4)gNU{ zxXMsBQ;F#;XK2oColu{>rymX^5~X>W`5xraZ|B`=?rxBw6$$B%Q9>G|>-XW__rC9Ut>0R%1^k1<6X!W+pMCZ|we2RP zh!UQw&&?^^m;u3&WXY@YBd$UZ!q8qO1H~tet6R;m!)(j8H3pOO8_4H1-kct589j-b zifJMGF%^FWzlE|gGK8XJ?y%CuWNk0k41U#_xT4zUV= zXuB|!5X<1RFG!L+1Ay4O6@v)8vEFG{)7D;3mcQ%20&T#5qnIS)7us4tt49D}R7XG! z`|oExZJ_NLtK76Bq-Ae7dlni$7Av~x4@9hV2!>%h@_N>1-AfP>UT)BHZ^vzk-eEe= z8N(n(C1?+)r7(;Nw<9ZR7b7KYB5t?x5#>Cr3 zSRm%tU5hR=9%j|gT>KQw&%P0L{G5_YJz0uh9mD%2BPf4nZDTL(;xF=Et4wlLmIk_m zj*D-fz#BFL9u4YxIRS7lX>(wzmcrWPH%FYMhcB*L@i|vl1qNy9Fyo z*wpuCwB)KeP))USA8W}Z;5>9Yec89hjEWFe{khy35)l<8si+tO@R1$-v^4BW zj4+5}IL^m(J@JH^TsuNWZ`QnSk6Xr<-p+bm?|s4dBdT;HKVe@&mYJ`22Em{*`O6z~ zP?uG&5SQ(S5F$QDOnG%~Q+r!!%|I44sgEls)y7bV*&wOkiMPQTS;MME$@o%I52BoU zp1uA+{$A_?!^`MeluPW4Xj8wzw-(0bx*>G6vGj0dDTs^GPK#Osz#b>da8Tf&Ia&{0Zb!9SooH*axf{NhF z5F642kIH}y!6}p<^AYh6b9DnU`wLZq&D_y1RjNxQrJ94}J8le&|Qf*v0qH@cwVB?o(qGJw3LSXMKcpR$33 zxgpM1r#;vItZ;I3ad!4SFJdS3)rk~#MibeJ`qWeZuapLv)p`M8%A;XL$_~>O0m%!` z6%QxFY_cA=Is0zhhum1)4_<D1oyT zXA<*mBUB*g-dZBPwEP%DO6N5imrU z#oN+%&i#Cs^h~>!{FQWAtoinI_q|dHW0%=)KtC3+Q3IGENq=B0yIRk`%?S+;GO-K`f1Io+GCq8IlM9&JR28lCg*24~yRKM-djMwQ@T?(kx;Em`| z$ECkQFGM}vEqxUVipG>_I>%n{0>2&8dTP<_4|&2@F%iqn{?YQc+s5tiqR$su&DTNm zw_1h`I`td7#jk2iE0|cGs*y;me4dUke|lejk5-XLgG8D{`rV>14v{Z@1_JT%of0;C z+reeWlA@!xPb)J{f`z4Pdtj{T+A-JOf?wcidcy6@*(?3==8lWj?qsJMzc$Xxy64H- zHTYU$6O?b2>w0YIk*(n#8M4d$VKLL(RssYBO*HXs6|z4WZ^O+EgF-5Ir)Yo9!3A0! z=?P*fLPi)WR?ljNSG?;AoVN#T1t#}jLynFj;s*!qKNncBeEa%U6(v_dV7yYFw%Co| z5k&g9UH7B5A3du+4qff`Hbk?chrALO%GRi4YVl_f+rI&Z>i~!JvbLSB#B^dE{MyDY zoppJbr7XOn1~%>Vm?YY)UBm9(j*$K`K$reG=p&n5Ry-75FyW(3ZDz!$|^4gCUs6VgiHN%NI#04Q{NW@ zN44Po=Xr4B2xdN z;>VAx00l5osvMbkK&iZ#1Y>T=oGc-h?}ijb5!H=xJc6f-XMnc+gI#HIGPUrtY-s-|z;=y#u- ziA#G7KZYmE+ud$lOdntKPcO7$(q{S)fF?3~IdP$3p-CYcdRkY;;F*H%c%0}Q7d9bM zJbs2x*W}Nv=lwYJ2!!73E`?>IlT})KFQ5!S_3TbbJCtX>wj!W_9gC_qkHmhdAR#Hw zVD_Hd`OsfzD9;M*59cEb%K(&6V%B%m0qa1=SBUtMkUa*m28y13YxuQes(6stU8a&q zvQ+2;{k!6K=KZ%|Pzk;p9aL>%GZ6+TIg$iSv0smSu6Ek#khRo*L@g_3!qD-m0!iM) zjz41Fy36C5%yR7(d0ABT_HNQ zxu`~&G@=%hkOMC$@kb~1RoPljcFz@fH^&0ZZuk zr>K?<)&CL;)jt&JgOamohvm@1t?`X}NB6FTKYaXfw5~Q%chpdLn04yBwUmkuk7T`4 z1E(}HQF2C7U<-eUisx2hxreBO>w$yP@TV&f?guWjMr%oX3YT8K`p71sqmw+0d-6|8ECb;8 z|70X;Z<=OP`Z9w16PeW$p;3|pfakT##UC5q;3@5WQq#{br#O>o8Xvs0dhEjKh_y9SS0tf*Fzo1DG=;q6&*p-z9gR|}S8P3rh`3ha<~S6>|L zs|!B=*$}aL5F{{hO$o_`{kYbHfYk|w83QvIks_B6rRw(n#}m$1IB2IXxWMmqUU=!} z{Lkh;y6LTt7Oh(+%)nX|vmeBJ_(xIwwVGAleYD7K#@DNo@_Zj16uYsE!*X2q0x)}K zjCXzVVDCS;;V|n8M!Xu3cAl3Z73Bg%himmg!R=3C&5Thpba_@qdryY>KXT9^5fL!8 zN6FN7w>Q_tnGu16oD=BZ6D1%J=&b^p;vep-iqXGNRCc1AqGC@xRJPLp{4lr~s!&A= zV4(n`?tD@XCq}tBWb!wg3S;Zg&yp)(5bw z?|Hq5i^V8#<`xlStPN1p&5y0vAT)O<@dtUkn}_DUi~iw3IuSBXCu%6U7j=9rW{9F% zz*B5fKpF>{b{HDJp{$6KYp|<2jc(P@>-?yp=Y#71hHcKmjt)HVFa@52ds*%&5yCe& zWYmS@)Nbn-&)9jPLB+R{AX>)t_bkPW*K^K1Pn`c!yx8tKjn0jC=6kF=ljO|Cph#+N zRSU2wqi8)*a;}yH1dI&kN^-5l(z9&hh$-@2*@W}U{efB7b|gO@)CUCRQQB){0SM*; z1Ei+iRNy9W094wZZ&D}Kno_0hxVd2EbKuIvD^P~=^YaG*qQpSPhd2b(2>v;`dDyZ) ztC{>%RNlGDj|%pD75`4a{SgrAlQ=z4%g$#sXyt9m%+CWjrvjl zo(yi*rTo-l#0;y-^Emgc0kMu}^B6vy@GqgP>W@yoc!QH!iVby;vcfu8piv_@SE3j%|Kue1UU1 zsy|_ZXma^ABn@`Yis_EfzE|hudSHe-S+)>@0~qrvCur01@ccMixH#c#!pnu{Jm#)+ z^`nJ<7l=H`mE0ez2B(W9MH-mvx$4CdD+$Gk=KQdk!G(_62zWfBQYY;Ggf1p(Z8s4& zN=YII{pdfNTY!UC+;JIc$_aYTmer?&gl48Q`)SKREeBqmxo9d&ceq)T$a(I}hPtf} z{TgQeJ8-JB|L=Tq#x3$rQKbmFF-(>lMgxdU@dmL|4>=;9TpaRt%!=db&b%tb@I0(c zPL)hcsHpZnk)T&uF(-NS|E(ngBa%K9YfYkWecDwN~}N-57|v=_sE z+K+5q-J9Tzz4>h9G!HWENfB=491gTEXN)K_F=})Us$uGp!SGE9oI*uhuy$_ZQJ5Ok zQzZ=%PKp{Yg+!9M+}|6eLpQ)X0{~S<%wy?0a<*7azmU4!9d|qUX`=SOtsf?+j@Mn0 zr_=0iBVo%fRF-@jaJsu-r0>_Qjfh7MveET9N}L@|Imkp+SE{|r;|-!RTdUAkeMTY% zz@3U8<;&{4xy{zfwS#fSZ0Xq+44%GsZtoKRNorgGLs3GvN*emU&eE8C$C7ffe)$)Q z|9N-*y*O4=Iw1LRK1^6zao!7BSw3}IJ^R>$ohAIlPrr8XF&tPjSQi1GJ>uO;SG@D` z(`qg*e;&29J?<+pL0+tTE$>Hul|a4oyo|;pG{HE+2~nzZN;&5_ z4={6pp9QnxW4TF(%1i=` z9SjMkz5l+!VV?^M(09dHqYKpXd#dL07qhPkZ{GZc2n~G(H0*;MPn(=qf{C>n1C`ON zC^<_lzURI6(r1VH^|UgZb9e$?uCH(6y)#k3d?d28&juHIjycWj4>KeaFQJ4+^U<18 zgvPTcg@Vv6M4IM^o+eoL}Q>00>-y9H`0EsNZDLi=2fm>V{-v}a}} zL{I;GB%P@&tEW{ipYbcEfdKj!v$I_b<=NcwQ5thO*ieT=Ks;CaWOpGN5IHt}*0=|F zneCJ`6xjU@97{0a|M!TQCm;R<=A8Z}&|0RbXAWkG)6CU7sOJWyoOBz8yINS#@c~nK zKMK41`buUQGIQ8MZKt zw_ebaNHM)BOoe`Hc;?v|7TiqBL#p^*+;}4{x+<9$UfdCX zK%EypAE7U?Y|HIE*~{A}+2XA+g`%wSzAKNohO+tw=wDS9^gIzTsv#q2`vJy+$4bsG z2K39l?4%d+Z5ypI?DfC=PTP9f%k*f2TQd^cPEg@&>r22#BM^Qg4w0(4cWHEOax+KWLA9BqoJOLbo;ustW~jH43H&s+eggI>bLA(B{_@c`9Y^Hn!n^`(3i{GYes z$A6}jh%h+bDpfvaR5H1~I1Y{a={nBghH_eH*35fhiu*i@dC255PW0ALGUo$U?Q)Hr z=mI!yQXcFOjXL(OyG*J#i@GcT5oF({J!_BKwC1C6%-oly>mG z^hzi{s~s-GK3`#%-ZKoX#j|>smJss@y(m&;!R*;~&OpHL5Y?3{3%&Vr&q9qP{*Nxf zdF6t3LI!H`w>{;zF0NL&*evbE~$ z4Y8~c@Cx+rFjj5r&?==XOTm@Ohd+O7)-y#6-$X=UA0rFEN~-C5_q0PtnZ3EW-Z4`= zc<^9?JL{XRsbP-v-`ENfc$y9M{^M~BYM31Lu&KdYIJ zo5iLjUFmc_o9Ae6@VR9E^UmP<>#DP^VQ23NxPgL5Gz8uLxiUT>Bed|rR;A-~^z^BN zoAe%`^lT3uebl?bpB50~c1W7|1$H>_g)s{DqbP#;ZTZ886v@yMS2qseMUf?y8y;{8 zTyhg^@hRJ)^I7^81Z!-~fE09alqYSi`}<}L0W)C<89R$&HUdGG3=Jz6$*+iasiCrx zP&F7gj37%urER``<5*05FX9_d&iC~W zrHh__(F7fEQ+k}=KNbhS^`&{#fuaojBQqKrj|oieOBlxKPruhDsw)#$dwhyki(OYs z)g2i6Dmhq{FkNHMPQdYqr=BVz_ZuJOoN*j9dh(h5fiJ|cYTyiF0daa7%Vre5|61Z} zESpYA`?`p50Y~rq(IxY}-}rKZUiX@2dRjXgLx^}D^OkUeOrDQ|h<)fN=G?bIo|A!Ttn#r(r~EuW69L_1ZD&Z+Yqr?R zHM!L$wrw%jd%}`K&;x&l)%V<$e6%?C7!#cT*t4iHF;Q?Q4P~tAMzJ6*C^{w(2n^Ei zRsQF$3Rz;;QC7S%&iT^g`%Oxm>AXdrdy6rotXd>dY@bz$vQ;Ea4gS4s>HocKNs?Gh zW0tBORJ95 zeok+c#*PMxun7bsQ&<~J=8+%3q7E~pe4ZD$7VF^kVMS9q_t9v9s(LCj&zSw>o?Yt5 zX;Jfd5;4L}tGK89Ef&LWNmhG`G`Riz=1WV+v~NK@l-Z)4LEuFVv6`D7jCQ!Ev2 zhPgCf_+#{)()5l#2zL?NEOjkRqq=Hk9A>1a{f&`vfz)ByP8=Tiikd-SbY}^LK0>#v zDfvHn`{^^bAmr_O)@GC+YXhpfXAZV{r0abW8RxQhJImx(Yb)!1xgjhqlkuG7rOU~- z%wS3#^)UEIt8AL=6nrG+uZ-pYr_-BFuae?>nt#}3acyU95v$9Me-x+FyQ+*`?;<4{ zjMACVioT(~1VRr~8|h(vmxB_xLr2Emnt&$i#p(0M2mNhS6Bi|vM_PW32~|V9*5|V$ ztO!u%DSdSPC)0)Y#tJq4c|X}FBFSK(tEDVcOnSr&P^Oy z9jXGhyE_>wt?0v<1!hmS%1SGrgJCkV1JJd0Z_8oIwvfj4@-n@UJ z@D=I5O}|!%(3p;Q25oOFm2kOSlcc$rkI;|gz|bLXcuI1?97QN;6uW^HFnF6?_}GaN z%KhZ!dIBiJnXF)S*uYfvzz2G=Knh2FmLNn?_V+$>gSSY23$#IZJ>^x9rlm9ou4Kqb@IWYnhVUM z<;M<<4L#yR$NLGb(gfK?$?jhNwb#x`?6CMGB*|zaltewJnDw)jc29hgU4w&nKz1XUzA0fT5N!b48hqxO+&U z!rPexmgu9DVK?~0=YUx9M0E8~*Bau7Ghii8;&XMQbhevD&$5c>tKxI!&}+RAbZpsFoIeX^0FQf74rRSk zy)?+x<43nl!R-4Ljs?Yb*#I}tP^vj8mzChlItC_by3Aoz5yCzF6<>MLfv(is)jv%N z>Bv`IGts)gYZwOx`6h$-fRCW=!q!{4p^=VMl-f>tWT5b??bpnX&wVQtcGe7_;iY{a z3wl+4;-d&k2L+MnfPGMj1~-2O$^O32Ozi(A_xln$A#{9vWZ{G~TFg}f)ycp(abu~YP1SnaRd$w1bh+_)2 zi7vV!c~-@oudgzfT-p?lyKH6mLxB=%wv|!7hU4N@cQllfg0|21hvL^mh~3x8QbxIZ<|)|TlWZA@->Vy*&7B@=C6u2MmsuybfoMrp9Z)!u z#Dd6>3zgS(O_4LJ9URln7O}U*yR1mxe3U0NB8;K{BpcNw$wCR>M5?WyKFO#CuVPd@ z>%ouJA;iJyi~vDL8ePoC%MG6Z4I2?7-%Wb|i_L;*KyHqhjj6CwsS}`~asn!l?wda_ zfr0tr3;wCwUrEL+Pei<7Mu76maZ=G+o#A}hIBM(Z%4|K3n7Q+-BVfQR3qX8Uw<eKcnP2EmC$ zea2yR9s@S$N7){*`VZv2VO1TDbLFN?vSy0TxW~zGp5wEH#1a;Bp6^*QYIg$vq8tbGk$kQ+Ll#<15U|w6-51 zqv~zfFX4Y-C@}euam66ey+3r^o<6FT_vc@0rO|!oKU0nB>Y?!1+6Gazd*6Y<6CD8#=Bp+uzD=$TWBwgOdszsTIU+sqwlQ9L3 zy#2b>yFs&vMIyiPIfKXMJ@NBJzdccUHUFdU{2TL4+`q?*Lf$^WVhLxJ{WKPNd1vwA z2dFkr@J#ZXP(27-yJFX?RROMgO~9om{k!oJZNi0Sk1hnxW0>V2xb=hl9CrUhLTq;7#|a~D-M-|$3h|jY=;?(EB8}5Sq)6GGq{d_kd7{0s_b{x>c@`S z7d3DxmopW*_FG3m$18M6@kw9(_waZdV)%ypQpc$PbyGn|8BDECQdr^Kw2qjSN4TC! zBE!mW9S7?469;;#ZDVDR=5@C{Wml5P9LnM*d_I?ZNk=*$X=*X|u}i1UpWpGUtK@8J z&zSS34R1y_DVM8}nasl~+Y9(G?-Ryg#|4_!Dg_+7t=FRSo=0gc#Gy7lYr_jV*5Vm1 z7ye}J`ruHq2ZWz=Z?Dhnf4giyYI+lGBPfvdKE`Q13za5CU~)3+-JLlgtsyCtqh$4z zJ!Et0`O4tA!iTWvQ5vLJr1DqkKb!6!2%?!AX;%f}m!M-1J-pB4ePDV?&Uneff6mIX?tdQ-s6c9Rk^XkNy$o*@YpE&9T^=c7@&}u0 zwjIHUh_9rtcxoo4ExmX4h;hoR7ibT3aJ&NAq2wf7cX$z`T4AiKAB0P<(9*@DEA)YM zY*z)~?LMra-|DY?elJ&Q(f>%1{v&LHREEUJ4eqZ}y4>u&kg^tq>c7*5$WdhSR6&>~ z{s1IEG!X-U4!1@WO*s@uWM!y$9cDFfSPf1A-Kz0Jpu3^@ZFKb2N|+fQR6V);+v6c) zH+C080rRhY@&Pg{A*;b*_ocrS zn_O*iRFEr!ecWnO;n}N`9ra&;NUu^4U=T*hN0+aY3~6+EG%`RxkQh?f}eW(qs|vWrL1p{;d%sL zAHx@^e6fv(MMK|3knlQOUCFfyp8aK679-_6Epye%^>9q9hov(_vZq

HvLc{lRr> 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%0Da)6DD_KG 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 TzLD7y>8_C$mlMku(ed~{-zqOa literal 0 HcmV?d00001 From 0b7218d4d04bf2d1e5f18d64dcbc9855a9ed0419 Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 10:32:19 +0000 Subject: [PATCH 16/33] Fix references --- how-to-guides/add-packages-to-image.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/how-to-guides/add-packages-to-image.md b/how-to-guides/add-packages-to-image.md index 225db76..33e846e 100644 --- a/how-to-guides/add-packages-to-image.md +++ b/how-to-guides/add-packages-to-image.md @@ -3,7 +3,7 @@ This instructional guide shows you how to add packages to a community-maintained upstream image. In this example, we add the [Python package `xarray`](https://docs.xarray.dev/en/stable/) to the [`jupyter/scipy-notebook` image](https://jupyter-docker-stacks.readthedocs.io/en/latest/index.html) maintained by the [Jupyter Docker Stacks](https://jupyter-docker-stacks.readthedocs.io/en/latest/index.html) community. ```{contents} -:maxdepth: 2 +:depth: 2 :local: ``` @@ -35,7 +35,7 @@ The following summarizes [Section 3.2. Allowing robot access to a user repositor You can also edit permissions later by clicking {octicon}`gear;1em;sd-text-info` *Options* next to the Robot Account name and selecting *Set Repository Permissions*. ``` -1. Name your robot, e.g. `_image_builder` and then check the box next to the repository name that you created in [Set up GitHub repository and connect it to quay.io](#set-up-github-repository-and-connect-it-to-quay-io), e.g. `jupyter-scipy-xarray`. From the dropdown, select the *Write* permission and then confirm by clicking *Add permissions*. +1. Name your robot, e.g. `_image_builder` and then check the box next to the repository name that you created in {ref}`Set up GitHub repository and connect it to quay.io`, e.g. `jupyter-scipy-xarray`. From the dropdown, select the *Write* permission and then confirm by clicking *Add permissions*. 1. Click the Robot Account name to view its credentials, e.g. - *Username:* \+__image_builder @@ -83,10 +83,11 @@ Once complete, under the section *Repository secrets* you should now see two row 1. Click the ![Git icon](media/git.svg) Git icon in the left sidebar to open the JupyterLab Git extension. -1. Clone the forked repository from [Set up the GitHub repository and connect it to quay.io](#set-up-the-github-repository-and-connect-it-to-quay-io) into the hub by the clicking *Clone a Repository* button followed by entering the URL of the remote Git repository, e.g. `https://github.com//example-inherit-from-community-image.git`. +1. Clone the forked repository from {ref}`Set up GitHub repository and connect it to quay.io` into the hub by the clicking *Clone a Repository* button followed by entering the URL of the remote Git repository, e.g. `https://github.com//example-inherit-from-community-image.git`. 1. Change the working directory by double-clicking *example-inherit-from-community-image* in the file explorer on the left side of the screen. +(add-packages:build-base-image)= ### Build base image 1. Update the GitHub workflow files with your quay.io repository @@ -151,7 +152,7 @@ Once complete, under the section *Repository secrets* you should now see two row ### Trigger build and check the custom image on Binder -1. Stage, commit and push your changes by following the similar steps in Section [Build base image](build-base-image). +1. Stage, commit and push your changes by following the similar steps in Section {ref}`Build base image`. 1. Visit your GitHub repository at `https://github.com//example-inherit-from-community-image` and click the *Compare & pull request* button. @@ -185,8 +186,9 @@ Once complete, under the section *Repository secrets* you should now see two row //: ``` -e.g. `quay.io/jnywong/jupyter-scipy-xarray:739fec9705b1`, which you need to provide in the Section [Link custom image to your hub](#link-custom-image-to-your-hub). - +e.g. `quay.io/jnywong/jupyter-scipy-xarray:739fec9705b1`, which you need to provide in the Section {ref}`Link custom image to your hub`. + +(add-packages:link-custom-image)= ## Link custom image to your hub 1. Open a [2i2c support ticket](https://docs.2i2c.org/support/) to request an update to your hub with the new custom image. From 2db1e1c4b8d6430c61377bb884fe3cbf90113a22 Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 15:33:21 +0000 Subject: [PATCH 17/33] Fix links noteable.io no longer exists --- about/service/comparison.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/about/service/comparison.md b/about/service/comparison.md index 35155ab..4abf0f4 100644 --- a/about/service/comparison.md +++ b/about/service/comparison.md @@ -475,7 +475,7 @@ Updates There are many companies offering services and platforms via a subscription fee. The experience from a user's perspective may be similar and they may offer some open source tools as part of their services. -Examples of these products are [CoCalc](https://cocalc.com/), [Deepnote](https://deepnote.com/), [engageLively](https://engagelively.com/), [Colaboratory (Google)](https://colab.research.google.com/), [Noteable](https://noteable.io/), [ObserveableHQ](https://observablehq.com/), [rstudio.cloud](https://rstudio.cloud/), [Sagemaker (AWS)](https://aws.amazon.com/sagemaker/), and [Saturn Cloud](https://saturncloud.io/). +Examples of these products are [CoCalc](https://cocalc.com/), [Deepnote](https://deepnote.com/), [engageLively](https://galyleo.engagelively.com/), [Colaboratory (Google)](https://colab.research.google.com/), [ObserveableHQ](https://observablehq.com/), [rstudio.cloud](https://rstudio.cloud/), [Sagemaker (AWS)](https://aws.amazon.com/sagemaker/), and [Saturn Cloud](https://saturncloud.io/). Usage cost : Generally charge betwee $7 and $50 per user, per month, depending on the complexity of the resources needed and the service. Many SaaS offerings include enterprise services as well, but their prices are generally not advertised publicly and are often significantly more expensive. From 835c18dfae8cf9e638c0f83e53724f730bf21aa3 Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 15:33:52 +0000 Subject: [PATCH 18/33] Fix links Jupyter Real-Time Collaboration has since released. --- admin/howto/control-user-server.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/admin/howto/control-user-server.md b/admin/howto/control-user-server.md index d714342..e78a764 100644 --- a/admin/howto/control-user-server.md +++ b/admin/howto/control-user-server.md @@ -29,7 +29,9 @@ Accessing a user's server is useful when trying to debug or reproduce an issue t If you both work on the same notebook at the same time, you will just overwrite each other's code! The state of the notebook will be that of whoever saved the notebook last. There is no Google Docs' style - real-time collaboration yet, although [it is coming](https://github.com/jupyterlab/rtc) + real-time collaboration available on our hubs yet, although + you can refer to the [Jupyter Real-Time Collaboration extension](https://jupyterlab-realtime-collaboration.readthedocs.io/) + for this feature. ::: :::{warning} From 4d899ffff33d68b29ce819179b429d43a4f4da2b Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 15:34:09 +0000 Subject: [PATCH 19/33] Fix links --- admin/howto/manage-users.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/admin/howto/manage-users.md b/admin/howto/manage-users.md index 57fb00c..62d3418 100644 --- a/admin/howto/manage-users.md +++ b/admin/howto/manage-users.md @@ -2,7 +2,7 @@ ## Authentication vs. Authorization -- **Authentication** allows your users to prove who their are. +- **Authentication** allows your users to prove who they are. - **Authorization** gives users certain permissions depending on their identity (such as "access to your hub", or "administrative privileges"). (admin/configuration/authentication)= @@ -144,4 +144,4 @@ If users are running into strange errors when they log in (for example CILogon e 1. Try logging in with an `incognito` window. This will help determine if their issue is due to some cookie / cache that is stored on their machine. 2. Ask them to clear their cookies / cache for all CILogon websites. For example, [here are the Google Chrome instructions to clear cookies](https://support.google.com/chrome/answer/95647?hl=en&co=GENIE.Platform%3DDesktop). -3. If using `CILogon`, double-check that they've signed in with the correct account, and [ask them to switch accounts if needed](https://infrastructure.2i2c.org/en/latest/howto/configure/auth-management.html#switch-identity-providers-or-user-accounts). +3. If using `CILogon`, double-check that they've signed in with the correct account, and [ask them to switch accounts if needed](https://infrastructure.2i2c.org/howto/troubleshoot/cilogon-user-accounts/). From caae3f65ba8b9d7cd91dc9ab8afb45e8e192586c Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 15:34:26 +0000 Subject: [PATCH 20/33] Fix links Branch has switched from master to main. --- topic/cloud-costs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/topic/cloud-costs.md b/topic/cloud-costs.md index b3987ae..e49f464 100644 --- a/topic/cloud-costs.md +++ b/topic/cloud-costs.md @@ -62,7 +62,7 @@ We recommend checking out the following resources to learn more about cloud cost None of these are guarantees about costs, but should give you a general idea. - For general information and explanation, see the {doc}`Zero to JupyterHub cost projection documentation`. -- For educational or "lightweight resources" hubs, see [this rough cost analysis notebook from the UC Berkeley DataHub](https://nbviewer.jupyter.org/github/berkeley-dsep-infra/datahub-usage-analysis/blob/master/notebooks/03-visualize-cost-and-usage.ipynb). +- For educational or "lightweight resources" hubs, see [this rough cost analysis notebook from the UC Berkeley DataHub](https://nbviewer.jupyter.org/github/berkeley-dsep-infra/datahub-usage-analysis/blob/main/notebooks/03-visualize-cost-and-usage.ipynb). - For data- and compute-intensive hubs, see the Pangeo two-part series on their Kubernetes costs. ([part 1 link](https://medium.com/pangeo/pangeo-cloud-costs-part1-f89842da411d), [part 2 link](https://medium.com/pangeo/pangeo-cloud-cluster-design-9d58a1bf1ad3)) ::: From b5ccd32be48dca19d535b45c53797b420d1b8db0 Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 17:25:56 +0000 Subject: [PATCH 21/33] Test feature-table.py in RTD preview --- .readthedocs.yml | 6 +++++- conf.py | 12 +++++------- scripts/feature-table.py | 2 +- 3 files changed, 11 insertions(+), 9 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 19536a3..5b530ff 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -4,10 +4,14 @@ version: 2 build: - os: ubuntu-20.04 + os: ubuntu-22.04 tools: python: "3.12" nodejs: "16" + jobs: + pre_build: + # Generate the feature table in about/distributions/index.md. + - "cd scripts; python feature-table.py" sphinx: configuration: conf.py diff --git a/conf.py b/conf.py index c6d6ac4..683acdd 100644 --- a/conf.py +++ b/conf.py @@ -1,9 +1,9 @@ # -- Project information ----------------------------------------------------- -project = "Service Guide" -copyright = "2022" +project = "Hub Service Guide" +copyright = "2024" author = "2i2c" -version = "0.1alpha" +version = "0.1" main_doc = "index" # -- General configuration --------------------------------------------------- @@ -54,8 +54,8 @@ } intersphinx_mapping = { - "tc": ('https://team-compass.2i2c.org/en/latest', None), - "infra": ('https://infrastructure.2i2c.org/en/latest', None), + "tc": ('https://team-compass.2i2c.org', None), + "infra": ('https://infrastructure.2i2c.org', None), "jb": ('https://jupyterbook.org/en/stable/', None), "z2jh": ('https://z2jh.jupyter.org/en/latest', None), } @@ -93,8 +93,6 @@ def setup(app): app.add_css_file("custom.css") - app.add_crossref_type("team", "team") - app.add_crossref_type("role", "role") # Add the JS code for our FreshDesk support widget # ref: https://support.freshdesk.com/en/support/solutions/articles/239273-setting-up-your-help-widget diff --git a/scripts/feature-table.py b/scripts/feature-table.py index f60e2ed..d33e08c 100644 --- a/scripts/feature-table.py +++ b/scripts/feature-table.py @@ -25,9 +25,9 @@ import sys import pandas as pd - URL_FEATURE_MATRIX = "https://docs.google.com/spreadsheets/d/e/2PACX-1vQ5p52Wu166vKpcjTu9jf5J2yNG6c_C2-pHRkNLGQwKN2gJ_1UoGlalaglsgtBfQ7W0-aTP11phpgSA/pub?gid=1864974850&single=true&output=csv" +Path("build_assets").mkdir(exist_ok=True) path_csv = Path("../build_assets/feature-matrix.csv") if path_csv.exists(): print("Feature table exists, skipping update. Delete to re-generate it.") From 17689fd0d7dc7775707aba7bb496268e2d1886f1 Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 17:28:21 +0000 Subject: [PATCH 22/33] Fix typo --- scripts/feature-table.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/feature-table.py b/scripts/feature-table.py index d33e08c..30792ba 100644 --- a/scripts/feature-table.py +++ b/scripts/feature-table.py @@ -27,7 +27,7 @@ URL_FEATURE_MATRIX = "https://docs.google.com/spreadsheets/d/e/2PACX-1vQ5p52Wu166vKpcjTu9jf5J2yNG6c_C2-pHRkNLGQwKN2gJ_1UoGlalaglsgtBfQ7W0-aTP11phpgSA/pub?gid=1864974850&single=true&output=csv" -Path("build_assets").mkdir(exist_ok=True) +Path("../build_assets").mkdir(exist_ok=True) path_csv = Path("../build_assets/feature-matrix.csv") if path_csv.exists(): print("Feature table exists, skipping update. Delete to re-generate it.") From 89a9d6c4d90a9c8e8c1e360c8333a4589d3faca8 Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 17:31:53 +0000 Subject: [PATCH 23/33] Remove feature table script from conf.py --- conf.py | 7 ------- 1 file changed, 7 deletions(-) diff --git a/conf.py b/conf.py index 683acdd..1f9befe 100644 --- a/conf.py +++ b/conf.py @@ -102,13 +102,6 @@ def setup(app): # -- Custom scripts ------------------------------------------------- -# Generate the feature table -import subprocess -from pathlib import Path -build_assets = Path("build_assets") -build_assets.mkdir(exist_ok=True) -subprocess.run(["python", "feature-table.py"], cwd="scripts") - # Download figures we keep in Google Drive from requests import get figures = { From 8529fdcfd37f305a8563c3be53aacc0465ac3002 Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 17:40:12 +0000 Subject: [PATCH 24/33] Move download figure script from conf.py to scripts/ --- scripts/download-figures.py | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 scripts/download-figures.py diff --git a/scripts/download-figures.py b/scripts/download-figures.py new file mode 100644 index 0000000..6adf1b6 --- /dev/null +++ b/scripts/download-figures.py @@ -0,0 +1,17 @@ +# Download figures we keep in Google Drive + +from pathlib import Path +from requests import get +figures = { + "https://drive.google.com/uc?export=download&id=1Mr51-s3D_KHPsAuTXbczaQ7mlPZUs9gm": "collaborative_learning_hub.png", + "https://drive.google.com/uc?export=download&id=16r5xE7SguunLfMh5LhSynSUfjb7IXs_n": "shared_responsibility_diagram.png", + "https://drive.google.com/uc?export=download&id=1gWAIQVKcB-uxuJsBHqlDlRTq88oki1zn": "scalable_research_hub.png", +} +for url, filename in figures.items(): + path_image = Path("../images").joinpath(filename) + if not path_image.exists(): + print(f"Downloading {filename}...") + resp = get(url) + path_image.write_bytes(resp.content) + else: + print(f"Diagram image exists, delete this file to re-download: {path_image}") From 3a0933a18a1e1ddab3a8e57307393196f33c1137 Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 17:44:38 +0000 Subject: [PATCH 25/33] Add comment --- scripts/download-figures.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/download-figures.py b/scripts/download-figures.py index 6adf1b6..b2f5e9c 100644 --- a/scripts/download-figures.py +++ b/scripts/download-figures.py @@ -1,4 +1,4 @@ -# Download figures we keep in Google Drive +# Download figures we keep in Google Drive. These figures are not version-controlled in the GH repo. from pathlib import Path from requests import get From dd4e34925cde389d8fe149407635d7e2eaf63c6a Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 17:45:21 +0000 Subject: [PATCH 26/33] Add download-figures to RTD config --- .readthedocs.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 5b530ff..5414f76 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -11,7 +11,9 @@ build: jobs: pre_build: # Generate the feature table in about/distributions/index.md. - - "cd scripts; python feature-table.py" + - cd scripts + - python feature-table.py + - python download-figures.py sphinx: configuration: conf.py From dbacd8feaf6a773076f951d6f755716168ba5f5c Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 17:45:43 +0000 Subject: [PATCH 27/33] Remove download figures script from conf.py --- conf.py | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/conf.py b/conf.py index 1f9befe..9dbfab7 100644 --- a/conf.py +++ b/conf.py @@ -99,21 +99,3 @@ def setup(app): # ref: https://support.freshdesk.com/en/support/solutions/articles/50000001015-launching-the-widget-when-a-button-is-clicked app.add_js_file(None, body=widget_embed_code) app.add_js_file("https://euc-widget.freshworks.com/widgets/80000009162.js", **{"async": "", "defer": ""}) - -# -- Custom scripts ------------------------------------------------- - -# Download figures we keep in Google Drive -from requests import get -figures = { - "https://drive.google.com/uc?export=download&id=1Mr51-s3D_KHPsAuTXbczaQ7mlPZUs9gm": "collaborative_learning_hub.png", - "https://drive.google.com/uc?export=download&id=16r5xE7SguunLfMh5LhSynSUfjb7IXs_n": "shared_responsibility_diagram.png", - "https://drive.google.com/uc?export=download&id=1gWAIQVKcB-uxuJsBHqlDlRTq88oki1zn": "scalable_research_hub.png", -} -for url, filename in figures.items(): - path_image = Path(__file__).parent / "images" / filename - if not path_image.exists(): - print(f"Downloading {filename}...") - resp = get(url) - path_image.write_bytes(resp.content) - else: - print(f"Diagram image exists, delete this file to re-download: {path_image}") From d215cb1a4e503241e675029f69f78b390b7c987f Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 17:49:36 +0000 Subject: [PATCH 28/33] cd into scripts/ before running python command --- .readthedocs.yml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 5414f76..5379d2e 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -11,9 +11,8 @@ build: jobs: pre_build: # Generate the feature table in about/distributions/index.md. - - cd scripts - - python feature-table.py - - python download-figures.py + - cd scripts; python feature-table.py + - cd scripts; python download-figures.py sphinx: configuration: conf.py From 5ee830d3f26c4f898d2138ebd6383a804aa4df6f Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 17:59:56 +0000 Subject: [PATCH 29/33] Attempt jupyter-book build RTD preview Following example in https://docs.readthedocs.io/en/stable/build-customization.html#build-commands-examples --- .readthedocs.yml | 20 ++++++-------------- 1 file changed, 6 insertions(+), 14 deletions(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 5379d2e..599d421 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -8,19 +8,11 @@ build: tools: python: "3.12" nodejs: "16" - jobs: - pre_build: - # Generate the feature table in about/distributions/index.md. - - cd scripts; python feature-table.py - - cd scripts; python download-figures.py - -sphinx: - configuration: conf.py - builder: dirhtml + commands: + - pip install -r requirements.txt + - cd scripts; python feature-table.py # Generate the feature table in about/distributions/index.md + - cd scripts; python download-figures.py # Download figures not in the GH repo + - jupyter-book build --builder dirhtml . --path-output $READTHEDOCS_OUTPUT/dirhtml/ # Explicitly opt out of trying to build additional formats such as PDF and ePub -formats: [] - -python: - install: - - requirements: requirements.txt +formats: [] \ No newline at end of file From 3bbab2f7a577f22b576340f81913af6ceb9acc2e Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 18:11:56 +0000 Subject: [PATCH 30/33] Move build artifacts to READTHEDOCS_OUTPUT/html --- .readthedocs.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index 599d421..a711cfa 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -12,7 +12,8 @@ build: - pip install -r requirements.txt - cd scripts; python feature-table.py # Generate the feature table in about/distributions/index.md - cd scripts; python download-figures.py # Download figures not in the GH repo - - jupyter-book build --builder dirhtml . --path-output $READTHEDOCS_OUTPUT/dirhtml/ + - jupyter-book build --builder dirhtml . + - mv _build/dirhtml/* $READTHEDOCS_OUTPUT/html/ # Explicitly opt out of trying to build additional formats such as PDF and ePub formats: [] \ No newline at end of file From 52ebc9a2be04ce3b496187d2c63f547471e7179c Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 18:16:13 +0000 Subject: [PATCH 31/33] cp instead of mv files --- .readthedocs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.readthedocs.yml b/.readthedocs.yml index a711cfa..cd8f015 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -13,7 +13,7 @@ build: - cd scripts; python feature-table.py # Generate the feature table in about/distributions/index.md - cd scripts; python download-figures.py # Download figures not in the GH repo - jupyter-book build --builder dirhtml . - - mv _build/dirhtml/* $READTHEDOCS_OUTPUT/html/ + - cp -r _build/dirhtml/* $READTHEDOCS_OUTPUT/html/ # Explicitly opt out of trying to build additional formats such as PDF and ePub formats: [] \ No newline at end of file From 654b4a0a51bc1554f283722b92f6ce4ca845fc2c Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 18:16:40 +0000 Subject: [PATCH 32/33] Install matplotlib --- requirements.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/requirements.txt b/requirements.txt index 29f4636..5199bba 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,7 @@ myst-nb myst-parser[linkify] pandas +matplotlib pyyaml requests jupyter-book From 76900ac3b129806f7ed03df8fad43df358a517b1 Mon Sep 17 00:00:00 2001 From: jnywong Date: Wed, 20 Mar 2024 18:20:17 +0000 Subject: [PATCH 33/33] Make $READTHEDOCS_OUTPUT/html/ directory before cp --- .readthedocs.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.readthedocs.yml b/.readthedocs.yml index cd8f015..560ec3c 100644 --- a/.readthedocs.yml +++ b/.readthedocs.yml @@ -13,6 +13,7 @@ build: - cd scripts; python feature-table.py # Generate the feature table in about/distributions/index.md - cd scripts; python download-figures.py # Download figures not in the GH repo - jupyter-book build --builder dirhtml . + - mkdir -p $READTHEDOCS_OUTPUT/html/ - cp -r _build/dirhtml/* $READTHEDOCS_OUTPUT/html/ # Explicitly opt out of trying to build additional formats such as PDF and ePub

>AY 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