From f71945587fb36b1abc03840427d07c01c29476d7 Mon Sep 17 00:00:00 2001 From: Hartorn Date: Tue, 28 May 2024 18:33:28 +0200 Subject: [PATCH 01/17] Trying to fix once again the merge step --- .github/workflows/update-docs.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/update-docs.yml b/.github/workflows/update-docs.yml index 79d83d5..e440690 100644 --- a/.github/workflows/update-docs.yml +++ b/.github/workflows/update-docs.yml @@ -26,7 +26,7 @@ jobs: - name: Merge latest code run: | git fetch --prune - git merge refs/tags/${{ github.ref_name }} + git merge ${{ github.ref_name }} - name: Set up python id: setup-python From bfa30922cd3c73874d313c01d534407e9f595f55 Mon Sep 17 00:00:00 2001 From: Matteo Dora Date: Tue, 28 May 2024 20:43:59 +0200 Subject: [PATCH 02/17] Add optional run name to client --- src/giskard_hub/client.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/giskard_hub/client.py b/src/giskard_hub/client.py index 6fdfd12..b362619 100644 --- a/src/giskard_hub/client.py +++ b/src/giskard_hub/client.py @@ -60,6 +60,7 @@ def evaluate( dataset_id: str, tags: Optional[List[str]] = None, local_mode: bool = True, + name: Optional[str] = None, use_file: bool = False, folder: Optional[Path] = None, ) -> Union[str, Path, List[Evaluation]]: @@ -85,13 +86,16 @@ def evaluate( dest += "/async" # TODO(Bazire): use URL parse urllib print("Starting execution...") + params = {"model_id": model_id} + if name is not None: + params["name"] = name criteria = {"dataset_id": dataset_id} if tags is not None and len(tags) > 0: criteria["tags"] = tags data = self._request( "POST", dest, - params={"model_id": model_id}, + params=params, json=[criteria], ) From 487dcbdf9131f16e1d829214af4c58b31b873294 Mon Sep 17 00:00:00 2001 From: Matteo Dora Date: Tue, 28 May 2024 21:12:23 +0200 Subject: [PATCH 03/17] Add code highlight to docs --- script-docs/_static/pygments-dark.css | 85 +++++++++++++++++++++++++++ script-docs/conf.py | 4 ++ 2 files changed, 89 insertions(+) create mode 100644 script-docs/_static/pygments-dark.css diff --git a/script-docs/_static/pygments-dark.css b/script-docs/_static/pygments-dark.css new file mode 100644 index 0000000..ba91e12 --- /dev/null +++ b/script-docs/_static/pygments-dark.css @@ -0,0 +1,85 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.dark .hll { background-color: #ffffcc } +.dark { background: #282C34; color: #ABB2BF } +.dark .c { color: #7F848E } /* Comment */ +.dark .err { color: #ABB2BF } /* Error */ +.dark .esc { color: #ABB2BF } /* Escape */ +.dark .g { color: #ABB2BF } /* Generic */ +.dark .k { color: #C678DD } /* Keyword */ +.dark .l { color: #ABB2BF } /* Literal */ +.dark .n { color: #E06C75 } /* Name */ +.dark .o { color: #56B6C2 } /* Operator */ +.dark .x { color: #ABB2BF } /* Other */ +.dark .p { color: #ABB2BF } /* Punctuation */ +.dark .ch { color: #7F848E } /* Comment.Hashbang */ +.dark .cm { color: #7F848E } /* Comment.Multiline */ +.dark .cp { color: #7F848E } /* Comment.Preproc */ +.dark .cpf { color: #7F848E } /* Comment.PreprocFile */ +.dark .c1 { color: #7F848E } /* Comment.Single */ +.dark .cs { color: #7F848E } /* Comment.Special */ +.dark .gd { color: #ABB2BF } /* Generic.Deleted */ +.dark .ge { color: #ABB2BF } /* Generic.Emph */ +.dark .ges { color: #ABB2BF } /* Generic.EmphStrong */ +.dark .gr { color: #ABB2BF } /* Generic.Error */ +.dark .gh { color: #ABB2BF } /* Generic.Heading */ +.dark .gi { color: #ABB2BF } /* Generic.Inserted */ +.dark .go { color: #ABB2BF } /* Generic.Output */ +.dark .gp { color: #ABB2BF } /* Generic.Prompt */ +.dark .gs { color: #ABB2BF } /* Generic.Strong */ +.dark .gu { color: #ABB2BF } /* Generic.Subheading */ +.dark .gt { color: #ABB2BF } /* Generic.Traceback */ +.dark .kc { color: #E5C07B } /* Keyword.Constant */ +.dark .kd { color: #C678DD } /* Keyword.Declaration */ +.dark .kn { color: #C678DD } /* Keyword.Namespace */ +.dark .kp { color: #C678DD } /* Keyword.Pseudo */ +.dark .kr { color: #C678DD } /* Keyword.Reserved */ +.dark .kt { color: #E5C07B } /* Keyword.Type */ +.dark .ld { color: #ABB2BF } /* Literal.Date */ +.dark .m { color: #D19A66 } /* Literal.Number */ +.dark .s { color: #98C379 } /* Literal.String */ +.dark .na { color: #E06C75 } /* Name.Attribute */ +.dark .nb { color: #E5C07B } /* Name.Builtin */ +.dark .nc { color: #E5C07B } /* Name.Class */ +.dark .no { color: #E06C75 } /* Name.Constant */ +.dark .nd { color: #61AFEF } /* Name.Decorator */ +.dark .ni { color: #E06C75 } /* Name.Entity */ +.dark .ne { color: #E06C75 } /* Name.Exception */ +.dark .nf { color: #61AFEF; font-weight: bold } /* Name.Function */ +.dark .nl { color: #E06C75 } /* Name.Label */ +.dark .nn { color: #E06C75 } /* Name.Namespace */ +.dark .nx { color: #E06C75 } /* Name.Other */ +.dark .py { color: #E06C75 } /* Name.Property */ +.dark .nt { color: #E06C75 } /* Name.Tag */ +.dark .nv { color: #E06C75 } /* Name.Variable */ +.dark .ow { color: #56B6C2 } /* Operator.Word */ +.dark .pm { color: #ABB2BF } /* Punctuation.Marker */ +.dark .w { color: #ABB2BF } /* Text.Whitespace */ +.dark .mb { color: #D19A66 } /* Literal.Number.Bin */ +.dark .mf { color: #D19A66 } /* Literal.Number.Float */ +.dark .mh { color: #D19A66 } /* Literal.Number.Hex */ +.dark .mi { color: #D19A66 } /* Literal.Number.Integer */ +.dark .mo { color: #D19A66 } /* Literal.Number.Oct */ +.dark .sa { color: #98C379 } /* Literal.String.Affix */ +.dark .sb { color: #98C379 } /* Literal.String.Backtick */ +.dark .sc { color: #98C379 } /* Literal.String.Char */ +.dark .dl { color: #98C379 } /* Literal.String.Delimiter */ +.dark .sd { color: #98C379 } /* Literal.String.Doc */ +.dark .s2 { color: #98C379 } /* Literal.String.Double */ +.dark .se { color: #98C379 } /* Literal.String.Escape */ +.dark .sh { color: #98C379 } /* Literal.String.Heredoc */ +.dark .si { color: #98C379 } /* Literal.String.Interpol */ +.dark .sx { color: #98C379 } /* Literal.String.Other */ +.dark .sr { color: #98C379 } /* Literal.String.Regex */ +.dark .s1 { color: #98C379 } /* Literal.String.Single */ +.dark .ss { color: #98C379 } /* Literal.String.Symbol */ +.dark .bp { color: #E5C07B } /* Name.Builtin.Pseudo */ +.dark .fm { color: #56B6C2; font-weight: bold } /* Name.Function.Magic */ +.dark .vc { color: #E06C75 } /* Name.Variable.Class */ +.dark .vg { color: #E06C75 } /* Name.Variable.Global */ +.dark .vi { color: #E06C75 } /* Name.Variable.Instance */ +.dark .vm { color: #E06C75 } /* Name.Variable.Magic */ +.dark .il { color: #D19A66 } /* Literal.Number.Integer.Long */ diff --git a/script-docs/conf.py b/script-docs/conf.py index a9bd1bc..b0e257f 100644 --- a/script-docs/conf.py +++ b/script-docs/conf.py @@ -33,6 +33,9 @@ templates_path = ["_templates"] exclude_patterns = ["_build", "Thumbs.db", ".DS_Store"] +pygments_style = "lovelace" +# To generate the dark theme, run the following command: +# pygmentize -S one-dark -f html -a .dark > _static/pygments-dark.css # -- Options for HTML output ------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output @@ -44,6 +47,7 @@ "logo_light": "_static/logo_black.png", "logo_dark": "_static/logo_white.png", } +html_css_files = ["pygments-dark.css"] html_favicon = "_static/favicon.ico" From 644aaddf757ec090a6ee65d11b573a58c6249aaf Mon Sep 17 00:00:00 2001 From: Matteo Dora Date: Fri, 31 May 2024 20:26:38 +0200 Subject: [PATCH 04/17] The big UX refactoring --- poetry.lock | 236 +++++++++++++- pyproject.toml | 5 +- src/giskard_hub/__init__.py | 23 ++ src/giskard_hub/_base_client.py | 85 +++++ src/giskard_hub/_default_client.py | 12 + src/giskard_hub/_evaluation.py | 50 +++ src/giskard_hub/cli.py | 2 +- src/giskard_hub/client.py | 356 +++++++-------------- src/giskard_hub/data.py | 193 ----------- src/giskard_hub/data/__init__.py | 15 + src/giskard_hub/data/_base.py | 71 ++++ src/giskard_hub/data/_entity.py | 227 +++++++++++++ src/giskard_hub/data/chat.py | 13 + src/giskard_hub/data/conversation.py | 43 +++ src/giskard_hub/data/dataset.py | 67 ++++ src/giskard_hub/data/evaluation.py | 181 +++++++++++ src/giskard_hub/data/model.py | 69 ++++ src/giskard_hub/data/project.py | 21 ++ src/giskard_hub/data/task.py | 28 ++ src/giskard_hub/resources/_resource.py | 8 + src/giskard_hub/resources/conversations.py | 82 +++++ src/giskard_hub/resources/datasets.py | 51 +++ src/giskard_hub/resources/evaluations.py | 121 +++++++ src/giskard_hub/resources/models.py | 91 ++++++ src/giskard_hub/resources/projects.py | 58 ++++ 25 files changed, 1660 insertions(+), 448 deletions(-) create mode 100644 src/giskard_hub/_base_client.py create mode 100644 src/giskard_hub/_default_client.py create mode 100644 src/giskard_hub/_evaluation.py delete mode 100644 src/giskard_hub/data.py create mode 100644 src/giskard_hub/data/__init__.py create mode 100644 src/giskard_hub/data/_base.py create mode 100644 src/giskard_hub/data/_entity.py create mode 100644 src/giskard_hub/data/chat.py create mode 100644 src/giskard_hub/data/conversation.py create mode 100644 src/giskard_hub/data/dataset.py create mode 100644 src/giskard_hub/data/evaluation.py create mode 100644 src/giskard_hub/data/model.py create mode 100644 src/giskard_hub/data/project.py create mode 100644 src/giskard_hub/data/task.py create mode 100644 src/giskard_hub/resources/_resource.py create mode 100644 src/giskard_hub/resources/conversations.py create mode 100644 src/giskard_hub/resources/datasets.py create mode 100644 src/giskard_hub/resources/evaluations.py create mode 100644 src/giskard_hub/resources/models.py create mode 100644 src/giskard_hub/resources/projects.py diff --git a/poetry.lock b/poetry.lock index 8a32136..68525ae 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1797,6 +1797,7 @@ files = [ {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, + {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, @@ -1948,13 +1949,13 @@ rpds-py = ">=0.7.0" [[package]] name = "requests" -version = "2.32.2" +version = "2.32.3" description = "Python HTTP for Humans." optional = false python-versions = ">=3.8" files = [ - {file = "requests-2.32.2-py3-none-any.whl", hash = "sha256:fc06670dd0ed212426dfeb94fc1b983d917c4f9847c863f313c9dfaaffb7c23c"}, - {file = "requests-2.32.2.tar.gz", hash = "sha256:dd951ff5ecf3e3b3aa26b40703ba77495dab41da839ae72ef3c8e5d8e2433289"}, + {file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"}, + {file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"}, ] [package.dependencies] @@ -2224,6 +2225,28 @@ docs = ["sphinxcontrib-websupport"] lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] test = ["cython (>=3.0)", "filelock", "html5lib", "pytest (>=4.6)", "setuptools (>=67.0)"] +[[package]] +name = "sphinx-autobuild" +version = "2024.4.16" +description = "Rebuild Sphinx documentation on changes, with hot reloading in the browser." +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinx_autobuild-2024.4.16-py3-none-any.whl", hash = "sha256:f2522779d30fcbf0253e09714f274ce8c608cb6ebcd67922b1c54de59faba702"}, + {file = "sphinx_autobuild-2024.4.16.tar.gz", hash = "sha256:1c0ed37a1970eed197f9c5a66d65759e7c4e4cba7b5a5d77940752bf1a59f2c7"}, +] + +[package.dependencies] +colorama = "*" +sphinx = "*" +starlette = ">=0.35" +uvicorn = ">=0.25" +watchfiles = ">=0.20" +websockets = ">=11" + +[package.extras] +test = ["pytest (>=6)"] + [[package]] name = "sphinx-click" version = "6.0.0" @@ -2368,6 +2391,24 @@ pure-eval = "*" [package.extras] tests = ["cython", "littleutils", "pygments", "pytest", "typeguard"] +[[package]] +name = "starlette" +version = "0.37.2" +description = "The little ASGI library that shines." +optional = false +python-versions = ">=3.8" +files = [ + {file = "starlette-0.37.2-py3-none-any.whl", hash = "sha256:6fe59f29268538e5d0d182f2791a479a0c64638e6935d1c6989e63fb2699c6ee"}, + {file = "starlette-0.37.2.tar.gz", hash = "sha256:9af890290133b79fc3db55474ade20f6220a364a0402e0b556e7cd5e1e093823"}, +] + +[package.dependencies] +anyio = ">=3.4.0,<5" +typing-extensions = {version = ">=3.10.0", markers = "python_version < \"3.10\""} + +[package.extras] +full = ["httpx (>=0.22.0)", "itsdangerous", "jinja2", "python-multipart (>=0.0.7)", "pyyaml"] + [[package]] name = "terminado" version = "0.18.1" @@ -2534,6 +2575,112 @@ h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["zstandard (>=0.18.0)"] +[[package]] +name = "uvicorn" +version = "0.30.0" +description = "The lightning-fast ASGI server." +optional = false +python-versions = ">=3.8" +files = [ + {file = "uvicorn-0.30.0-py3-none-any.whl", hash = "sha256:78fa0b5f56abb8562024a59041caeb555c86e48d0efdd23c3fe7de7a4075bdab"}, + {file = "uvicorn-0.30.0.tar.gz", hash = "sha256:f678dec4fa3a39706bbf49b9ec5fc40049d42418716cea52b53f07828a60aa37"}, +] + +[package.dependencies] +click = ">=7.0" +h11 = ">=0.8" +typing-extensions = {version = ">=4.0", markers = "python_version < \"3.11\""} + +[package.extras] +standard = ["colorama (>=0.4)", "httptools (>=0.5.0)", "python-dotenv (>=0.13)", "pyyaml (>=5.1)", "uvloop (>=0.14.0,!=0.15.0,!=0.15.1)", "watchfiles (>=0.13)", "websockets (>=10.4)"] + +[[package]] +name = "watchfiles" +version = "0.22.0" +description = "Simple, modern and high performance file watching and code reload in python." +optional = false +python-versions = ">=3.8" +files = [ + {file = "watchfiles-0.22.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:da1e0a8caebf17976e2ffd00fa15f258e14749db5e014660f53114b676e68538"}, + {file = "watchfiles-0.22.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:61af9efa0733dc4ca462347becb82e8ef4945aba5135b1638bfc20fad64d4f0e"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1d9188979a58a096b6f8090e816ccc3f255f137a009dd4bbec628e27696d67c1"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2bdadf6b90c099ca079d468f976fd50062905d61fae183f769637cb0f68ba59a"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:067dea90c43bf837d41e72e546196e674f68c23702d3ef80e4e816937b0a3ffd"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:bbf8a20266136507abf88b0df2328e6a9a7c7309e8daff124dda3803306a9fdb"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1235c11510ea557fe21be5d0e354bae2c655a8ee6519c94617fe63e05bca4171"}, + {file = "watchfiles-0.22.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c2444dc7cb9d8cc5ab88ebe792a8d75709d96eeef47f4c8fccb6df7c7bc5be71"}, + {file = "watchfiles-0.22.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:c5af2347d17ab0bd59366db8752d9e037982e259cacb2ba06f2c41c08af02c39"}, + {file = "watchfiles-0.22.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:9624a68b96c878c10437199d9a8b7d7e542feddda8d5ecff58fdc8e67b460848"}, + {file = "watchfiles-0.22.0-cp310-none-win32.whl", hash = "sha256:4b9f2a128a32a2c273d63eb1fdbf49ad64852fc38d15b34eaa3f7ca2f0d2b797"}, + {file = "watchfiles-0.22.0-cp310-none-win_amd64.whl", hash = "sha256:2627a91e8110b8de2406d8b2474427c86f5a62bf7d9ab3654f541f319ef22bcb"}, + {file = "watchfiles-0.22.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:8c39987a1397a877217be1ac0fb1d8b9f662c6077b90ff3de2c05f235e6a8f96"}, + {file = "watchfiles-0.22.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a927b3034d0672f62fb2ef7ea3c9fc76d063c4b15ea852d1db2dc75fe2c09696"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:052d668a167e9fc345c24203b104c313c86654dd6c0feb4b8a6dfc2462239249"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5e45fb0d70dda1623a7045bd00c9e036e6f1f6a85e4ef2c8ae602b1dfadf7550"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c49b76a78c156979759d759339fb62eb0549515acfe4fd18bb151cc07366629c"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c4a65474fd2b4c63e2c18ac67a0c6c66b82f4e73e2e4d940f837ed3d2fd9d4da"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1cc0cba54f47c660d9fa3218158b8963c517ed23bd9f45fe463f08262a4adae1"}, + {file = "watchfiles-0.22.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:94ebe84a035993bb7668f58a0ebf998174fb723a39e4ef9fce95baabb42b787f"}, + {file = "watchfiles-0.22.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e0f0a874231e2839abbf473256efffe577d6ee2e3bfa5b540479e892e47c172d"}, + {file = "watchfiles-0.22.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:213792c2cd3150b903e6e7884d40660e0bcec4465e00563a5fc03f30ea9c166c"}, + {file = "watchfiles-0.22.0-cp311-none-win32.whl", hash = "sha256:b44b70850f0073b5fcc0b31ede8b4e736860d70e2dbf55701e05d3227a154a67"}, + {file = "watchfiles-0.22.0-cp311-none-win_amd64.whl", hash = "sha256:00f39592cdd124b4ec5ed0b1edfae091567c72c7da1487ae645426d1b0ffcad1"}, + {file = "watchfiles-0.22.0-cp311-none-win_arm64.whl", hash = "sha256:3218a6f908f6a276941422b035b511b6d0d8328edd89a53ae8c65be139073f84"}, + {file = "watchfiles-0.22.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:c7b978c384e29d6c7372209cbf421d82286a807bbcdeb315427687f8371c340a"}, + {file = "watchfiles-0.22.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:bd4c06100bce70a20c4b81e599e5886cf504c9532951df65ad1133e508bf20be"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:425440e55cd735386ec7925f64d5dde392e69979d4c8459f6bb4e920210407f2"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:68fe0c4d22332d7ce53ad094622b27e67440dacefbaedd29e0794d26e247280c"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a8a31bfd98f846c3c284ba694c6365620b637debdd36e46e1859c897123aa232"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:dc2e8fe41f3cac0660197d95216c42910c2b7e9c70d48e6d84e22f577d106fc1"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:55b7cc10261c2786c41d9207193a85c1db1b725cf87936df40972aab466179b6"}, + {file = "watchfiles-0.22.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:28585744c931576e535860eaf3f2c0ec7deb68e3b9c5a85ca566d69d36d8dd27"}, + {file = "watchfiles-0.22.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:00095dd368f73f8f1c3a7982a9801190cc88a2f3582dd395b289294f8975172b"}, + {file = "watchfiles-0.22.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:52fc9b0dbf54d43301a19b236b4a4614e610605f95e8c3f0f65c3a456ffd7d35"}, + {file = "watchfiles-0.22.0-cp312-none-win32.whl", hash = "sha256:581f0a051ba7bafd03e17127735d92f4d286af941dacf94bcf823b101366249e"}, + {file = "watchfiles-0.22.0-cp312-none-win_amd64.whl", hash = "sha256:aec83c3ba24c723eac14225194b862af176d52292d271c98820199110e31141e"}, + {file = "watchfiles-0.22.0-cp312-none-win_arm64.whl", hash = "sha256:c668228833c5619f6618699a2c12be057711b0ea6396aeaece4ded94184304ea"}, + {file = "watchfiles-0.22.0-cp38-cp38-macosx_10_12_x86_64.whl", hash = "sha256:d47e9ef1a94cc7a536039e46738e17cce058ac1593b2eccdede8bf72e45f372a"}, + {file = "watchfiles-0.22.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:28f393c1194b6eaadcdd8f941307fc9bbd7eb567995232c830f6aef38e8a6e88"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dd64f3a4db121bc161644c9e10a9acdb836853155a108c2446db2f5ae1778c3d"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2abeb79209630da981f8ebca30a2c84b4c3516a214451bfc5f106723c5f45843"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4cc382083afba7918e32d5ef12321421ef43d685b9a67cc452a6e6e18920890e"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d048ad5d25b363ba1d19f92dcf29023988524bee6f9d952130b316c5802069cb"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:103622865599f8082f03af4214eaff90e2426edff5e8522c8f9e93dc17caee13"}, + {file = "watchfiles-0.22.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d3e1f3cf81f1f823e7874ae563457828e940d75573c8fbf0ee66818c8b6a9099"}, + {file = "watchfiles-0.22.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:8597b6f9dc410bdafc8bb362dac1cbc9b4684a8310e16b1ff5eee8725d13dcd6"}, + {file = "watchfiles-0.22.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0b04a2cbc30e110303baa6d3ddce8ca3664bc3403be0f0ad513d1843a41c97d1"}, + {file = "watchfiles-0.22.0-cp38-none-win32.whl", hash = "sha256:b610fb5e27825b570554d01cec427b6620ce9bd21ff8ab775fc3a32f28bba63e"}, + {file = "watchfiles-0.22.0-cp38-none-win_amd64.whl", hash = "sha256:fe82d13461418ca5e5a808a9e40f79c1879351fcaeddbede094028e74d836e86"}, + {file = "watchfiles-0.22.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:3973145235a38f73c61474d56ad6199124e7488822f3a4fc97c72009751ae3b0"}, + {file = "watchfiles-0.22.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:280a4afbc607cdfc9571b9904b03a478fc9f08bbeec382d648181c695648202f"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3a0d883351a34c01bd53cfa75cd0292e3f7e268bacf2f9e33af4ecede7e21d1d"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9165bcab15f2b6d90eedc5c20a7f8a03156b3773e5fb06a790b54ccecdb73385"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dc1b9b56f051209be458b87edb6856a449ad3f803315d87b2da4c93b43a6fe72"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dc1fc25a1dedf2dd952909c8e5cb210791e5f2d9bc5e0e8ebc28dd42fed7562"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dc92d2d2706d2b862ce0568b24987eba51e17e14b79a1abcd2edc39e48e743c8"}, + {file = "watchfiles-0.22.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:97b94e14b88409c58cdf4a8eaf0e67dfd3ece7e9ce7140ea6ff48b0407a593ec"}, + {file = "watchfiles-0.22.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:96eec15e5ea7c0b6eb5bfffe990fc7c6bd833acf7e26704eb18387fb2f5fd087"}, + {file = "watchfiles-0.22.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:28324d6b28bcb8d7c1041648d7b63be07a16db5510bea923fc80b91a2a6cbed6"}, + {file = "watchfiles-0.22.0-cp39-none-win32.whl", hash = "sha256:8c3e3675e6e39dc59b8fe5c914a19d30029e36e9f99468dddffd432d8a7b1c93"}, + {file = "watchfiles-0.22.0-cp39-none-win_amd64.whl", hash = "sha256:25c817ff2a86bc3de3ed2df1703e3d24ce03479b27bb4527c57e722f8554d971"}, + {file = "watchfiles-0.22.0-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:b810a2c7878cbdecca12feae2c2ae8af59bea016a78bc353c184fa1e09f76b68"}, + {file = "watchfiles-0.22.0-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:f7e1f9c5d1160d03b93fc4b68a0aeb82fe25563e12fbcdc8507f8434ab6f823c"}, + {file = "watchfiles-0.22.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:030bc4e68d14bcad2294ff68c1ed87215fbd9a10d9dea74e7cfe8a17869785ab"}, + {file = "watchfiles-0.22.0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ace7d060432acde5532e26863e897ee684780337afb775107c0a90ae8dbccfd2"}, + {file = "watchfiles-0.22.0-pp38-pypy38_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5834e1f8b71476a26df97d121c0c0ed3549d869124ed2433e02491553cb468c2"}, + {file = "watchfiles-0.22.0-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:0bc3b2f93a140df6806c8467c7f51ed5e55a931b031b5c2d7ff6132292e803d6"}, + {file = "watchfiles-0.22.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8fdebb655bb1ba0122402352b0a4254812717a017d2dc49372a1d47e24073795"}, + {file = "watchfiles-0.22.0-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c8e0aa0e8cc2a43561e0184c0513e291ca891db13a269d8d47cb9841ced7c71"}, + {file = "watchfiles-0.22.0-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:2f350cbaa4bb812314af5dab0eb8d538481e2e2279472890864547f3fe2281ed"}, + {file = "watchfiles-0.22.0-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7a74436c415843af2a769b36bf043b6ccbc0f8d784814ba3d42fc961cdb0a9dc"}, + {file = "watchfiles-0.22.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:00ad0bcd399503a84cc688590cdffbe7a991691314dde5b57b3ed50a41319a31"}, + {file = "watchfiles-0.22.0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:72a44e9481afc7a5ee3291b09c419abab93b7e9c306c9ef9108cb76728ca58d2"}, + {file = "watchfiles-0.22.0.tar.gz", hash = "sha256:988e981aaab4f3955209e7e28c7794acdb690be1efa7f16f8ea5aba7ffdadacb"}, +] + +[package.dependencies] +anyio = ">=3.0.0" + [[package]] name = "wcwidth" version = "0.2.13" @@ -2587,6 +2734,87 @@ docs = ["Sphinx (>=6.0)", "myst-parser (>=2.0.0)", "sphinx-rtd-theme (>=1.1.0)"] optional = ["python-socks", "wsaccel"] test = ["websockets"] +[[package]] +name = "websockets" +version = "12.0" +description = "An implementation of the WebSocket Protocol (RFC 6455 & 7692)" +optional = false +python-versions = ">=3.8" +files = [ + {file = "websockets-12.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:d554236b2a2006e0ce16315c16eaa0d628dab009c33b63ea03f41c6107958374"}, + {file = "websockets-12.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2d225bb6886591b1746b17c0573e29804619c8f755b5598d875bb4235ea639be"}, + {file = "websockets-12.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:eb809e816916a3b210bed3c82fb88eaf16e8afcf9c115ebb2bacede1797d2547"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c588f6abc13f78a67044c6b1273a99e1cf31038ad51815b3b016ce699f0d75c2"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5aa9348186d79a5f232115ed3fa9020eab66d6c3437d72f9d2c8ac0c6858c558"}, + {file = "websockets-12.0-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6350b14a40c95ddd53e775dbdbbbc59b124a5c8ecd6fbb09c2e52029f7a9f480"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:70ec754cc2a769bcd218ed8d7209055667b30860ffecb8633a834dde27d6307c"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:6e96f5ed1b83a8ddb07909b45bd94833b0710f738115751cdaa9da1fb0cb66e8"}, + {file = "websockets-12.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:4d87be612cbef86f994178d5186add3d94e9f31cc3cb499a0482b866ec477603"}, + {file = "websockets-12.0-cp310-cp310-win32.whl", hash = "sha256:befe90632d66caaf72e8b2ed4d7f02b348913813c8b0a32fae1cc5fe3730902f"}, + {file = "websockets-12.0-cp310-cp310-win_amd64.whl", hash = "sha256:363f57ca8bc8576195d0540c648aa58ac18cf85b76ad5202b9f976918f4219cf"}, + {file = "websockets-12.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:5d873c7de42dea355d73f170be0f23788cf3fa9f7bed718fd2830eefedce01b4"}, + {file = "websockets-12.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:3f61726cae9f65b872502ff3c1496abc93ffbe31b278455c418492016e2afc8f"}, + {file = "websockets-12.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:ed2fcf7a07334c77fc8a230755c2209223a7cc44fc27597729b8ef5425aa61a3"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8e332c210b14b57904869ca9f9bf4ca32f5427a03eeb625da9b616c85a3a506c"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5693ef74233122f8ebab026817b1b37fe25c411ecfca084b29bc7d6efc548f45"}, + {file = "websockets-12.0-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6e9e7db18b4539a29cc5ad8c8b252738a30e2b13f033c2d6e9d0549b45841c04"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:6e2df67b8014767d0f785baa98393725739287684b9f8d8a1001eb2839031447"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:bea88d71630c5900690fcb03161ab18f8f244805c59e2e0dc4ffadae0a7ee0ca"}, + {file = "websockets-12.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:dff6cdf35e31d1315790149fee351f9e52978130cef6c87c4b6c9b3baf78bc53"}, + {file = "websockets-12.0-cp311-cp311-win32.whl", hash = "sha256:3e3aa8c468af01d70332a382350ee95f6986db479ce7af14d5e81ec52aa2b402"}, + {file = "websockets-12.0-cp311-cp311-win_amd64.whl", hash = "sha256:25eb766c8ad27da0f79420b2af4b85d29914ba0edf69f547cc4f06ca6f1d403b"}, + {file = "websockets-12.0-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0e6e2711d5a8e6e482cacb927a49a3d432345dfe7dea8ace7b5790df5932e4df"}, + {file = "websockets-12.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:dbcf72a37f0b3316e993e13ecf32f10c0e1259c28ffd0a85cee26e8549595fbc"}, + {file = "websockets-12.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:12743ab88ab2af1d17dd4acb4645677cb7063ef4db93abffbf164218a5d54c6b"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7b645f491f3c48d3f8a00d1fce07445fab7347fec54a3e65f0725d730d5b99cb"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9893d1aa45a7f8b3bc4510f6ccf8db8c3b62120917af15e3de247f0780294b92"}, + {file = "websockets-12.0-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f38a7b376117ef7aff996e737583172bdf535932c9ca021746573bce40165ed"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:f764ba54e33daf20e167915edc443b6f88956f37fb606449b4a5b10ba42235a5"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:1e4b3f8ea6a9cfa8be8484c9221ec0257508e3a1ec43c36acdefb2a9c3b00aa2"}, + {file = "websockets-12.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:9fdf06fd06c32205a07e47328ab49c40fc1407cdec801d698a7c41167ea45113"}, + {file = "websockets-12.0-cp312-cp312-win32.whl", hash = "sha256:baa386875b70cbd81798fa9f71be689c1bf484f65fd6fb08d051a0ee4e79924d"}, + {file = "websockets-12.0-cp312-cp312-win_amd64.whl", hash = "sha256:ae0a5da8f35a5be197f328d4727dbcfafa53d1824fac3d96cdd3a642fe09394f"}, + {file = "websockets-12.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5f6ffe2c6598f7f7207eef9a1228b6f5c818f9f4d53ee920aacd35cec8110438"}, + {file = "websockets-12.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:9edf3fc590cc2ec20dc9d7a45108b5bbaf21c0d89f9fd3fd1685e223771dc0b2"}, + {file = "websockets-12.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:8572132c7be52632201a35f5e08348137f658e5ffd21f51f94572ca6c05ea81d"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:604428d1b87edbf02b233e2c207d7d528460fa978f9e391bd8aaf9c8311de137"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:1a9d160fd080c6285e202327aba140fc9a0d910b09e423afff4ae5cbbf1c7205"}, + {file = "websockets-12.0-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87b4aafed34653e465eb77b7c93ef058516cb5acf3eb21e42f33928616172def"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b2ee7288b85959797970114deae81ab41b731f19ebcd3bd499ae9ca0e3f1d2c8"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:7fa3d25e81bfe6a89718e9791128398a50dec6d57faf23770787ff441d851967"}, + {file = "websockets-12.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:a571f035a47212288e3b3519944f6bf4ac7bc7553243e41eac50dd48552b6df7"}, + {file = "websockets-12.0-cp38-cp38-win32.whl", hash = "sha256:3c6cc1360c10c17463aadd29dd3af332d4a1adaa8796f6b0e9f9df1fdb0bad62"}, + {file = "websockets-12.0-cp38-cp38-win_amd64.whl", hash = "sha256:1bf386089178ea69d720f8db6199a0504a406209a0fc23e603b27b300fdd6892"}, + {file = "websockets-12.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:ab3d732ad50a4fbd04a4490ef08acd0517b6ae6b77eb967251f4c263011a990d"}, + {file = "websockets-12.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1d9697f3337a89691e3bd8dc56dea45a6f6d975f92e7d5f773bc715c15dde28"}, + {file = "websockets-12.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:1df2fbd2c8a98d38a66f5238484405b8d1d16f929bb7a33ed73e4801222a6f53"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23509452b3bc38e3a057382c2e941d5ac2e01e251acce7adc74011d7d8de434c"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:2e5fc14ec6ea568200ea4ef46545073da81900a2b67b3e666f04adf53ad452ec"}, + {file = "websockets-12.0-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:46e71dbbd12850224243f5d2aeec90f0aaa0f2dde5aeeb8fc8df21e04d99eff9"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:b81f90dcc6c85a9b7f29873beb56c94c85d6f0dac2ea8b60d995bd18bf3e2aae"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:a02413bc474feda2849c59ed2dfb2cddb4cd3d2f03a2fedec51d6e959d9b608b"}, + {file = "websockets-12.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:bbe6013f9f791944ed31ca08b077e26249309639313fff132bfbf3ba105673b9"}, + {file = "websockets-12.0-cp39-cp39-win32.whl", hash = "sha256:cbe83a6bbdf207ff0541de01e11904827540aa069293696dd528a6640bd6a5f6"}, + {file = "websockets-12.0-cp39-cp39-win_amd64.whl", hash = "sha256:fc4e7fa5414512b481a2483775a8e8be7803a35b30ca805afa4998a84f9fd9e8"}, + {file = "websockets-12.0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl", hash = "sha256:248d8e2446e13c1d4326e0a6a4e9629cb13a11195051a73acf414812700badbd"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f44069528d45a933997a6fef143030d8ca8042f0dfaad753e2906398290e2870"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c4e37d36f0d19f0a4413d3e18c0d03d0c268ada2061868c1e6f5ab1a6d575077"}, + {file = "websockets-12.0-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3d829f975fc2e527a3ef2f9c8f25e553eb7bc779c6665e8e1d52aa22800bb38b"}, + {file = "websockets-12.0-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:2c71bd45a777433dd9113847af751aae36e448bc6b8c361a566cb043eda6ec30"}, + {file = "websockets-12.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:0bee75f400895aef54157b36ed6d3b308fcab62e5260703add87f44cee9c82a6"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:423fc1ed29f7512fceb727e2d2aecb952c46aa34895e9ed96071821309951123"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:27a5e9964ef509016759f2ef3f2c1e13f403725a5e6a1775555994966a66e931"}, + {file = "websockets-12.0-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c3181df4583c4d3994d31fb235dc681d2aaad744fbdbf94c4802485ececdecf2"}, + {file = "websockets-12.0-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:b067cb952ce8bf40115f6c19f478dc71c5e719b7fbaa511359795dfd9d1a6468"}, + {file = "websockets-12.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:00700340c6c7ab788f176d118775202aadea7602c5cc6be6ae127761c16d6b0b"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e469d01137942849cff40517c97a30a93ae79917752b34029f0ec72df6b46399"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffefa1374cd508d633646d51a8e9277763a9b78ae71324183693959cf94635a7"}, + {file = "websockets-12.0-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba0cab91b3956dfa9f512147860783a1829a8d905ee218a9837c18f683239611"}, + {file = "websockets-12.0-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2cb388a5bfb56df4d9a406783b7f9dbefb888c09b71629351cc6b036e9259370"}, + {file = "websockets-12.0-py3-none-any.whl", hash = "sha256:dc284bbc8d7c78a6c69e0c7325ab46ee5e40bb4d50e494d8131a07ef47500e9e"}, + {file = "websockets-12.0.tar.gz", hash = "sha256:81df9cbcbb6c260de1e007e58c011bfebe2dafc8435107b0537f393dd38c8b1b"}, +] + [[package]] name = "zipp" version = "3.19.0" @@ -2605,4 +2833,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more [metadata] lock-version = "2.0" python-versions = ">=3.9,<4.0" -content-hash = "d842ba62bb666c48f1835a8c247b4cabacfd6e88b48df92bcaa7a2b78ad204fa" +content-hash = "82bb5193cf0a325b3f3a7fb4d8f2cdc7fb43e40f6d6b154c9c0565d29ce9199d" diff --git a/pyproject.toml b/pyproject.toml index 79d1294..62e2bd0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -12,7 +12,7 @@ documentation = "https://docs-hub.giskard.ai/" [tool.poetry.dependencies] python = ">=3.9,<4.0" typer = "^0.12.3" -requests = "^2.32.2" +httpx = "^0.27.0" [tool.poetry.group.dev.dependencies] @@ -24,6 +24,7 @@ black = "^24.4.2" isort = "^5.13.2" pylint = "^3.2.2" sphinx-click = "^6.0.0" +sphinx-autobuild = "^2024.4.16" [build-system] requires = ["poetry-core"] @@ -38,4 +39,4 @@ reports = "y" output-format = "colorized" [tool.pylint."MESSAGES CONTROL"] -disable = [ "line-too-long", "missing-module-docstring"] +disable = ["line-too-long", "missing-module-docstring"] diff --git a/src/giskard_hub/__init__.py b/src/giskard_hub/__init__.py index e69de29..418c926 100644 --- a/src/giskard_hub/__init__.py +++ b/src/giskard_hub/__init__.py @@ -0,0 +1,23 @@ +from __future__ import annotations + +from .client import HubClient +from .data import ( + Dataset, + Model, + Project, +) +from .data.chat import ChatMessage +from .data.conversation import Conversation + +hub_url: str | None = None +api_key: str | None = None + + +__all__ = [ + "Dataset", + "Conversation", + "ChatMessage", + "Project", + "Model", + "HubClient", +] diff --git a/src/giskard_hub/_base_client.py b/src/giskard_hub/_base_client.py new file mode 100644 index 0000000..8f8e41f --- /dev/null +++ b/src/giskard_hub/_base_client.py @@ -0,0 +1,85 @@ +from typing import Optional +import httpx + + +_default_http_client_kwargs = { + "follow_redirects": True, + "timeout": httpx.Timeout(30.0), +} + + +class APIKeyHeader(httpx.Auth): + def __init__(self, api_key: str): + self.api_key = api_key + + def auth_flow(self, request): + request.headers["X-API-Key"] = self.api_key + yield request + + +class SyncClient: + _http: httpx.Client + + def __init__(self, *, http_client: Optional[httpx.Client] = None): + self._http = http_client or httpx.Client(**_default_http_client_kwargs) + + def _headers(self): + return {} + + def _request(self, method: str, path: str, *, cast_to=None, **kwargs): + res = self._http.request( + method=method, + url=path, + headers=self._headers(), + **kwargs, + ) + try: + res.raise_for_status() + except httpx.HTTPStatusError as e: + if e.response.status_code == httpx.codes.UNPROCESSABLE_ENTITY: + raise ValueError("Validation error: " + e.response.text) + + try: + detail = e.response.json() + raise httpx.HTTPStatusError( + message="API Error: " + detail.get("detail", e.response.text), + request=e.request, + response=e.response, + ) + except TypeError: + pass + + raise e + data = res.json() + + if cast_to: + data = self._cast_data_to(cast_to, data) + + return data + + def get(self, path: str, **kwargs): + return self._request("GET", path, **kwargs) + + def post(self, path: str, **kwargs): + return self._request("POST", path, **kwargs) + + def patch(self, path: str, **kwargs): + return self._request("PATCH", path, **kwargs) + + def put(self, path: str, **kwargs): + return self._request("PUT", path, **kwargs) + + def delete(self, path: str, **kwargs): + return self._request("DELETE", path, **kwargs) + + def close(self): + self._http.close() + + def __del__(self): + self.close() + + def _cast_data_to(self, cast_to, data): + if isinstance(data, list): + return [cast_to.from_dict(d, _client=self) for d in data] + + return cast_to.from_dict(data, _client=self) diff --git a/src/giskard_hub/_default_client.py b/src/giskard_hub/_default_client.py new file mode 100644 index 0000000..1056af9 --- /dev/null +++ b/src/giskard_hub/_default_client.py @@ -0,0 +1,12 @@ +_client = None + + +def _load_client(): + global _client + if _client is None: + from giskard_hub import hub_url, api_key + from giskard_hub.client import HubClient + + _client = HubClient(hub_url=hub_url, api_key=api_key) + + return _client diff --git a/src/giskard_hub/_evaluation.py b/src/giskard_hub/_evaluation.py new file mode 100644 index 0000000..b36decc --- /dev/null +++ b/src/giskard_hub/_evaluation.py @@ -0,0 +1,50 @@ +from typing import Callable, List + +from .data.chat import ChatMessage +from .data.model import ModelOutput + + +class LocalModel: + def __init__(self, *, name: str, description: str): + self.name = name + self.description = description + + def __call__(self, messages: List[ChatMessage], **kwargs) -> ModelOutput: + raise NotImplementedError( + "This method needs to be implemented by the subclass." + ) + + @staticmethod + def from_callable(callable: Callable) -> "LocalModel": + return CallableLocalModel( + name=callable.__name__, + description=callable.__doc__ or "", + callable=_validate_callable(callable), + ) + + +class CallableLocalModel(LocalModel): + def __init__( + self, + *, + name, + description, + callable: Callable, + ): + super().__init__(name=name, description=description) + self._callable = callable + + def __call__(self, messages: List[ChatMessage], **kwargs) -> ModelOutput: + output = self._callable(messages, **kwargs) + + if isinstance(output, ModelOutput): + return output + + return ModelOutput(message=ChatMessage(role="assistant", content=str(output))) + + +def _validate_callable(callable: Callable) -> Callable: + if not callable.__name__: + raise ValueError("The callable needs to have a name.") + + return callable diff --git a/src/giskard_hub/cli.py b/src/giskard_hub/cli.py index 7adaf58..8afd9e1 100644 --- a/src/giskard_hub/cli.py +++ b/src/giskard_hub/cli.py @@ -6,7 +6,7 @@ import typer from giskard_hub.client import HubClient -from giskard_hub.data import Evaluation +from giskard_hub.data._entity import Evaluation app = typer.Typer() diff --git a/src/giskard_hub/client.py b/src/giskard_hub/client.py index b362619..5f93fa8 100644 --- a/src/giskard_hub/client.py +++ b/src/giskard_hub/client.py @@ -1,283 +1,143 @@ -import json -import os -from dataclasses import asdict -from pathlib import Path -from time import sleep -from typing import List, Optional, Union - -import requests - -from giskard_hub.data import ( - Dataset, - Evaluation, - LLMMessage, - Metric, - Model, - ModelOutput, - Project, - TestResult, - TransientEvaluation, -) - +from __future__ import annotations -class HubClient: +import os +from typing import Callable, List, Optional, override + +from ._base_client import SyncClient +from ._evaluation import LocalModel +from .data._base import NOT_GIVEN +from .data._entity import entity_to_id +from .data.chat import ChatMessage +from .data.dataset import Dataset +from .data.model import Model, ModelOutput +from .resources.conversations import ConversationsResource +from .resources.datasets import DatasetsResource +from .resources.evaluations import EvaluationsResource +from .resources.models import ModelsResource +from .resources.projects import ProjectsResource + + +class HubClient(SyncClient): """Client class to handle interaction with the hub.""" - # Note(Bazire): This is not async code, because it probably won't be used with async code. + projects: ProjectsResource + datasets: DatasetsResource + conversations: ConversationsResource + models: ModelsResource + evaluations: EvaluationsResource def __init__( - self, hub_url: Optional[str] = None, api_key: Optional[str] = None + self, + hub_url: Optional[str] = None, + api_key: Optional[str] = None, + **kwargs, ) -> None: if hub_url is None: hub_url = os.getenv("GSK_HUB_URL") if hub_url is None: raise ValueError( - "Missing Giskard hub url. Please provide it as an argument or with the env variable `GSK_HUB_URL`" + "Missing Giskard Hub URL. Please provide it as an argument or set the env variable `GSK_HUB_URL`" ) if api_key is None: api_key = os.getenv("GSK_API_KEY") if api_key is None: raise ValueError( - "Missing Giskard hub API key. Please provide it as an argument or with the env variable `GSK_API_KEY`" + "Missing Giskard Hub API key. Please provide it as an argument or with the env variable `GSK_API_KEY`" ) self._hub_url = hub_url.rstrip("/") self._api_key = api_key - def _headers(self): - return {"X-API-Key": self._api_key} - - def _request(self, method: str, url: str, **kwargs): - response = requests.request( - **kwargs, method=method, url=url, headers=self._headers(), timeout=30 - ) - response.raise_for_status() - return response.json() - - def evaluate( - self, - model_id: str, - dataset_id: str, - tags: Optional[List[str]] = None, - local_mode: bool = True, - name: Optional[str] = None, - use_file: bool = False, - folder: Optional[Path] = None, - ) -> Union[str, Path, List[Evaluation]]: - """Start the evaluation of a model/agent on a dataset (or a subset). - If local_mode is used, model output will need to be provided (else, hub will call model online). - - Args: - model_id (str): the model to evaluate (still needed in local mode, since we are using agent description) - dataset_id (str): the dataset to use for evaluation - tags (list[str], optional): Tags to use to select a subset of the dataset. Defaults to None. - local_mode (bool, optional): Whether agent output will be provided locally. Defaults to False. - use_file (bool, optional): Whether to output evaluation dataset to file. Defaults to False. - folder (Optional[Path], optional): Path to download the dataset to. Defaults to None (will be "evaluations/" if not provided). + super().__init__(**kwargs) - Returns: - Union[str, Path, List[Evaluation]]]: In case of non local mode, execution object is returned. - In case of local mode and use_file, the folder containing the dataset is provided - In case of local mode and not use_file, a list of dict containing the evaluation data is provided. - """ - - dest = f"{self._hub_url}/executions/run" - if local_mode: - dest += "/async" - # TODO(Bazire): use URL parse urllib - print("Starting execution...") - params = {"model_id": model_id} - if name is not None: - params["name"] = name - criteria = {"dataset_id": dataset_id} - if tags is not None and len(tags) > 0: - criteria["tags"] = tags - data = self._request( - "POST", - dest, - params=params, - json=[criteria], - ) - - execution_id: str = data["id"] + # Set base url on the client + self._http.base_url = self._hub_url - if not local_mode: - print("Execution started in the hub") - # TODO(Bazire): provide link - return execution_id - - print("Downloading dataset...") - data = self._request( - "GET", - f"{self._hub_url}/executions/{execution_id}/results", - params={"limit": 1000}, - ) - data = [ - Evaluation.from_dict( - { - **elt, - "execution_id": execution_id, - }, - filter=["results", "state"], - ) - for elt in data["items"] - ] - if use_file: - folder = Path("evaluations") / execution_id if folder is None else folder - folder = folder.resolve() - folder.mkdir(parents=True, exist_ok=True) - for elt in data: - file: Path = folder / (elt.id + ".json") - file.write_text(json.dumps(asdict(elt))) - print(f"Evaluation dataset saved locally at {str(folder)}") - return folder - return data + # Define the resources + self.projects = ProjectsResource(self) + self.datasets = DatasetsResource(self) + self.conversations = ConversationsResource(self) + self.models = ModelsResource(self) + self.evaluations = EvaluationsResource(self) - def update_evaluations( - self, evaluations: List[Evaluation] - ) -> List[Optional[Evaluation]]: - """Same as update_evaluation, but for a list of evaluations + @property + def evals(self): + return self.evaluations - Args: - evaluations (List[Evaluation]): list of the evaluation - - Returns: - List[Optional[Evaluation]]: list of update data - """ - return [self.update_evaluation(elt) for elt in evaluations] - - def update_evaluation(self, evaluation: Evaluation) -> Optional[Evaluation]: - """Method to provide output to an evaluation - - Args: - evaluation (Evaluation): dataclass containing the id of the evaluation, an output or an error key. - - Returns: - Optional[Evaluation]: the update data, if not skipped - """ - evaluation_id = evaluation.id - output = evaluation.output - error = evaluation.error - - if output is None and error is None: - print(f"Skipping {evaluation_id} update since output and error are empty") - return - payload = {} - if output is not None: - if isinstance(output, str): - output = ModelOutput( - response=LLMMessage(role="assistant", content=output) - ) - if isinstance(output, ModelOutput): - output = asdict(output) - payload["output"] = output - if error is not None: - payload["error"] = error if isinstance(error, str) else str(error) - # Note(Bazire): to improve/remove ? - print(f"Updating {evaluation_id} ...") - data = self._request( - "PATCH", f"{self._hub_url}/executions/async/{evaluation_id}", json=payload - ) - return Evaluation.from_dict(data, filter=["results", "state"]) - - def get_results( - self, execution_id: str, max_interval=20, interval_time=10 - ) -> List[Metric]: - """Get the global results of the execution, waiting for it if it's still running - - Args: - execution_id (str): if of the execution - max_interval (int, optional): Number of try before stopping to get the results. Defaults to 20. - interval_time (int, optional): Time in seconds to wait before retrying to get the results. Defaults to 10. - - Raises: - ValueError: raised if the execution does not finish - ValueError: raised if the execution ended up in error - - Returns: - List[Metric]: the global metrics of the evaluation - """ - nb_wait = 0 - done = False - while not done and nb_wait < max_interval: - data = self._request("GET", f"{self._hub_url}/executions/{execution_id}") - state = data.get("status", {}).get("state", "unknown") - - if state == "running": - current = data.get("status", {}).get("current") - total = data.get("status", {}).get("total") - print( - f"Evaluation not finished ({current}/{total}), waiting for {interval_time}s" - ) - sleep(interval_time) - else: - done = True - - if nb_wait > max_interval: - raise ValueError( - "Evaluation did not finished running in the allotted time, did you provide all outputs ?" - ) - if state != "finished": - raise ValueError( - "Evaluation ended in error, please visit the hub for more details" - ) - return [Metric(**elt) for elt in data.get("metrics", [])] - - def get_projects(self) -> list[Project]: - """List the projects in the hub. + @override + def _headers(self): + return { + "X-API-Key": self._api_key, + "Content-Type": "application/json", + } - Returns: - list[Project]: list of the projects + def evaluate( + self, + *, + dataset: Dataset | str, + tags: List[str] = NOT_GIVEN, + model: Model | str | Callable[[List[ChatMessage]], ModelOutput | str], + name: str = NOT_GIVEN, + ): + """Evaluate a model on a dataset. + + Parameters + ---------- + dataset : str | Dataset + ID of the dataset that will be used for the evaluation, or the dataset entity. + tags: List[str], optional + List of tags to filter the conversations that will be evaluated. + model : str | Model | Callable[[List[ChatMessage]], ModelOutput | str] + ID of the model to evaluate, or a model entity, or a local model function. + A local model function is a function that takes a list of messages and returns a `ModelOutput` or a string. + name : str, optional + The name of the evaluation run. If not provided, a random name will be automatically generated. + + Returns + ------- + EvaluationRun + The evaluation run entity. """ - return [ - Project.from_dict(elt) - for elt in self._request("GET", f"{self._hub_url}/projects") - ] + is_local = False - def get_datasets(self, project_id: str) -> list[Dataset]: - """List the datasets into the target project. + if isinstance(model, Callable): + is_local = True + model = LocalModel.from_callable(model) - Args: - project_id (str): id of the project + dataset_id = entity_to_id(dataset, Dataset) - Returns: - list[Dataset]: the list of datasets - """ - return [ - Dataset.from_dict(elt, filter=["status"]) - for elt in self._request( - "GET", f"{self._hub_url}/datasets", params={"project_id": project_id} + if is_local: + return self._run_local_eval( + dataset_id=dataset_id, + tags=tags, + model=model, + name=name, ) - ] - def get_models(self, project_id: str) -> list[Model]: - """List the models into the target project. + return self.evaluations.create( + dataset_id=dataset_id, + tags=tags, + model_id=entity_to_id(model, Model), + name=name, + ) - Args: - project_id (str): id of the project + def _run_local_eval( + self, dataset_id: str, tags: List[str], model: LocalModel, name: str + ): + # Set up the evaluation run + eval_run = self.evaluations.create_local( + model=Model(name=model.name, description=model.description), + dataset_id=dataset_id, + tags=tags, + name=name, + ) - Returns: - list[Model]: the list of models - """ - return [ - Model.from_dict(elt) - for elt in self._request( - "GET", f"{self._hub_url}/models", params={"project_id": project_id} + # Run the local model + entries = self.evaluations.list_entries(eval_run.id) + for entry in entries: + model_output = model(entry.conversation.messages) + self.evaluations.update_entry( + eval_run.id, entry.id, model_output=model_output ) - ] - - def single_eval(self, to_eval: TransientEvaluation) -> list[TestResult]: - """Run the transient evaluation on a single conversation. - Args: - to_eval (TransientEvaluation): the - - Returns: - list[TestResult]: List of test results, with reason & error if any. - """ - return [ - TestResult.from_dict(elt, filter=["status"]) - for elt in self._request( - "POST", f"{self._hub_url}/executions/single", json=asdict(to_eval) - ) - ] + return eval_run.refresh() diff --git a/src/giskard_hub/data.py b/src/giskard_hub/data.py deleted file mode 100644 index 8f4727d..0000000 --- a/src/giskard_hub/data.py +++ /dev/null @@ -1,193 +0,0 @@ -from dataclasses import dataclass, field -from datetime import datetime -from typing import Any, Dict, List, Literal, Optional - - -@dataclass -class BaseDataclass: - """Base dataclass containing utility function.""" - - @classmethod - def from_dict( - cls, data: Dict[str, Any], filter: Optional[List[str]] = None - ) -> "Entity": - """Class method factory, allowing to filter from a dict. - - Args: - data (Dict[str, Any]): the data to use to initialise the dataclass - filter (Optional[List[str]], optional): list of fields to ignore. Defaults to None. - - Returns: - """ - if filter is None: - filter = [] - return cls(**{k: v for k, v in data.items() if k not in filter}) - - -@dataclass -class Entity(BaseDataclass): - """Base class containing audit fields and id.""" - - id: str - created_at: datetime - updated_at: datetime - - -@dataclass -class Project(Entity): - """Project object (container with name and description).""" - - name: str - description: str - - -@dataclass -class Model(Entity): - """Model/agent object, containing miscelleanous info about the model?""" - - project_id: str - name: str - url: str - description: str - supported_languages: List[str] - headers: List[Dict[str, str]] - - -@dataclass -class Dataset(Entity): - """Dataset object, containing the metadata about the dataset.""" - - project_id: str - name: str - description: str - tags: List[str] - - -@dataclass -class Metric(BaseDataclass): - """Metric object, with number of passed, failed and errored evaluations.""" - - name: str - passed: int - failed: int - errored: int - total: int - - -@dataclass -class LLMMessage(BaseDataclass): - """Message from an agent/llm, with role & content.""" - - role: Literal["system", "assistant", "user"] - content: str - - -@dataclass -class Conversation(Entity): - """Dataset item, containing full conversation (ie messages), policies for compliance, expected_output for correctness and tags for filtering""" - - messages: List[LLMMessage] - policies: List[str] - tags: List[str] - expected_output: Optional[str] - demo_output: Optional[LLMMessage] - - @classmethod - def from_dict( - cls, data: Dict[str, Any], filter: Optional[List[str]] = None - ) -> "Conversation": - if filter is None: - filter = ["dataset_id", "notes"] - data: Conversation = super().from_dict(data, filter=filter) - data.messages = ( - [] - if data.messages is None - else [LLMMessage.from_dict(msg) for msg in data.messages] - ) - data.demo_output = ( - None if data.demo_output is None else LLMMessage.from_dict(data.demo_output) - ) - return data - - -@dataclass -class ModelOutput(BaseDataclass): - """Expected format for an answer from an agent/model""" - - response: LLMMessage - metadata: dict[str, Any] = field(default_factory=dict) - - @classmethod - def from_dict( - cls, data: Dict[str, Any], filter: Optional[List[str]] = None - ) -> "ModelOutput": - data: ModelOutput = super().from_dict(data, filter=filter) - data.response = LLMMessage.from_dict(data.response) - return data - - -@dataclass -class Evaluation(Entity): - """Single item evaluation, containing both the conversation, output of the agent and results of the evaluation.""" - - execution_id: str - conversation: Conversation - output: Optional[ModelOutput] = field(default=None) - error: Optional[str] = field(default=None) - - def set_output(self, output: str): - """Convenience method to create a ModelOutput from a string. - - Args: - output (str): the simple output from the model/agent - """ - self.output = ModelOutput(response=LLMMessage(role="assistant", content=output)) - - @classmethod - def from_dict( - cls, data: Dict[str, Any], filter: Optional[List[str]] = None - ) -> "Evaluation": - data: Evaluation = super().from_dict(data, filter=filter) - data.conversation = Conversation.from_dict(data.conversation) - data.output = ( - None if data.output is None else ModelOutput.from_dict(data.output) - ) - return data - - -@dataclass -class TransientEvaluation(BaseDataclass): - """Object to run a single evaluation without saving anything""" - - model_output: ModelOutput - model_description: str - messages: List[LLMMessage] - policies: Optional[List[str]] = field(default_factory=list) - expected_output: Optional[str] = field(default=None) - - @classmethod - def from_dict( - cls, data: Dict[str, Any], filter: Optional[List[str]] = None - ) -> "TransientEvaluation": - data: TransientEvaluation = super().from_dict(data, filter=filter) - data.messages = ( - [] - if data.messages is None - else [LLMMessage.from_dict(msg) for msg in data.messages] - ) - data.model_output = ( - None - if data.model_output is None - else ModelOutput.from_dict(data.model_output) - ) - return data - - -@dataclass -class TestResult(BaseDataclass): - """Object containing the metric for a transient evaluation""" - - name: str - passed: Optional[bool] = field(default=None) - error: Optional[str] = field(default=None) - reason: Optional[str] = field(default=None) diff --git a/src/giskard_hub/data/__init__.py b/src/giskard_hub/data/__init__.py new file mode 100644 index 0000000..f354d75 --- /dev/null +++ b/src/giskard_hub/data/__init__.py @@ -0,0 +1,15 @@ +from .conversation import Conversation +from .dataset import Dataset +from .project import Project +from .chat import ChatMessage +from .model import Model + + +__all__ = [ + "HubClient", + "Dataset", + "Conversation", + "ChatMessage", + "Project", + "Model", +] diff --git a/src/giskard_hub/data/_base.py b/src/giskard_hub/data/_base.py new file mode 100644 index 0000000..a8065fb --- /dev/null +++ b/src/giskard_hub/data/_base.py @@ -0,0 +1,71 @@ +from dataclasses import dataclass, fields +from typing import Literal, Self +from typing_extensions import Any, Dict + + +class NotGiven: + """Sentinel object to represent a value that was not given.""" + + def __bool__(self) -> Literal[False]: + return False + + def __repr__(self) -> str: + return "NOT_GIVEN" + + +NOT_GIVEN = NotGiven() + + +def filter_not_given(data: Dict[str, any]) -> Dict[str, any]: + return {k: v for k, v in data.items() if v is not NOT_GIVEN} + + +@dataclass +class BaseData: + """Base dataclass containing utility function.""" + + @classmethod + def from_dict(cls, data: Dict[str, Any]) -> Self: + """Class method factory. + + Parameters + ---------- + data : Dict[str, Any] + The data to use to initialize the dataclass. + + Returns + ------- + BaseDataclass + The dataclass instance. + """ + init_set = [f.name for f in fields(cls) if f.init] + instance = cls(**{k: data.get(k) for k in init_set}) + + post_set = [f.name for f in fields(cls) if not f.init] + for key in post_set: + value = data.get(key, NOT_GIVEN) + if value is not NOT_GIVEN: + setattr(instance, key, value) + + return instance + + def to_dict(self) -> Dict[str, Any]: + """Return the dataclass as a dictionary. + + Returns + ------- + Dict[str, Any] + The dictionary representation of the dataclass. + """ + return { + f.name: maybe_to_dict(getattr(self, f.name)) + for f in fields(self) + if not f.name.startswith("_") + } + + +def maybe_to_dict(data): + if isinstance(data, BaseData): + return data.to_dict() + + return data diff --git a/src/giskard_hub/data/_entity.py b/src/giskard_hub/data/_entity.py new file mode 100644 index 0000000..6ffd508 --- /dev/null +++ b/src/giskard_hub/data/_entity.py @@ -0,0 +1,227 @@ +from dataclasses import dataclass, field +from datetime import datetime +from typing import TYPE_CHECKING, Optional + +from typing_extensions import Any, Dict, List + +if TYPE_CHECKING: + from ..client import HubClient + +from ._base import BaseData + + +def maybe_entity_to_id(entity, EntityClass=None): + if entity is None: + return None + + return entity_to_id(entity, EntityClass) + + +def entity_to_id(entity, EntityClass=None): + if isinstance(entity, str): + return entity + + if EntityClass is None: + return entity.id + + if isinstance(entity, EntityClass): + return entity.id + + raise ValueError( + f"Invalid {EntityClass.__name__} provided, got object of type {type(entity)}" + ) + + +@dataclass +class Entity(BaseData): + """Base class containing audit fields and id.""" + + id: str | None = field(init=False, default=None) + created_at: datetime | None = field(init=False, default=None) + updated_at: datetime | None = field(init=False, default=None) + + _client: Optional["HubClient"] = field(init=False, repr=False, default=None) + + @classmethod + def from_dict( + cls, data: Dict[str, Any], *, _client: Optional["HubClient"] = None + ) -> "Entity": + """Class method factory, allowing to filter from a dict. + + Parameters + ---------- + data : Dict[str, Any] + The data to use to initialize the dataclass. + """ + data = dict(data) + + raw_created_at = data.get("created_at", None) + raw_updated_at = data.get("updated_at", None) + + if raw_created_at: + data["created_at"] = datetime.fromisoformat(raw_created_at) + + if raw_updated_at: + data["updated_at"] = datetime.fromisoformat(raw_updated_at) + + entity = super().from_dict(data) + entity._client = _client + return entity + + def _hydrate(self, data: "Entity"): + """Hydrate with the data from the API.""" + # @TODO: make this more robust + for key, value in data.__dict__.items(): + setattr(self, key, value) + + +@dataclass +class Model(Entity): + """Model/agent object, containing miscelleanous info about the model?""" + + project_id: str + name: str + url: str + description: str + supported_languages: List[str] + headers: List[Dict[str, str]] + + +@dataclass +class Metric(BaseData): + """Metric object, with number of passed, failed and errored evaluations.""" + + name: str + passed: int + failed: int + errored: int + total: int + + +# @dataclass +# class Conversation(Entity): +# """A Dataset entry representing a conversation. + +# Attributes +# ---------- +# messages : List[LLMMessage] +# List of messages in the conversation. Each message is an object with a role and content attributes. +# tags : List[str], optional +# List of tags for the conversation. +# expected_output : Optional[str], optional +# Expected output which will be used for correctness evaluation. +# policies : List[str], optional +# List of policies used for evaluation. +# demo_output : Optional[LLMMessage], optional +# Output of the agent for demonstration purposes. +# """ + +# messages: List[ChatMessage] +# policies: List[str] +# tags: List[str] +# expected_output: Optional[str] +# demo_output: Optional[ChatMessage] + +# @classmethod +# def from_dict( +# cls, data: Dict[str, Any], filter: Optional[List[str]] = None +# ) -> "Conversation": +# if filter is None: +# filter = ["dataset_id", "notes"] +# data: Conversation = super().from_dict(data, filter=filter) +# data.messages = ( +# [] +# if data.messages is None +# else [ChatMessage.from_dict(msg) for msg in data.messages] +# ) +# data.demo_output = ( +# None +# if data.demo_output is None +# else ChatMessage.from_dict(data.demo_output) +# ) +# return data + + +# @dataclass +# class ModelOutput(BaseDataclass): +# """Expected format for an answer from an agent/model""" + +# response: ChatMessage +# metadata: dict[str, Any] = field(default_factory=dict) + +# @classmethod +# def from_dict( +# cls, data: Dict[str, Any], filter: Optional[List[str]] = None +# ) -> "ModelOutput": +# data: ModelOutput = super().from_dict(data, filter=filter) +# data.response = ChatMessage.from_dict(data.response) +# return data + + +# @dataclass +# class Evaluation(Entity): +# """Single item evaluation, containing both the conversation, output of the agent and results of the evaluation.""" + +# execution_id: str +# conversation: Conversation +# output: Optional[ModelOutput] = field(default=None) +# error: Optional[str] = field(default=None) + +# def set_output(self, output: str): +# """Convenience method to create a ModelOutput from a string. + +# Args: +# output (str): the simple output from the model/agent +# """ +# self.output = ModelOutput( +# response=ChatMessage(role="assistant", content=output) +# ) + +# @classmethod +# def from_dict( +# cls, data: Dict[str, Any], filter: Optional[List[str]] = None +# ) -> "Evaluation": +# data: Evaluation = super().from_dict(data, filter=filter) +# data.conversation = Conversation.from_dict(data.conversation) +# data.output = ( +# None if data.output is None else ModelOutput.from_dict(data.output) +# ) +# return data + + +# @dataclass +# class TransientEvaluation(BaseDataclass): +# """Object to run a single evaluation without saving anything""" + +# model_output: ModelOutput +# model_description: str +# messages: List[ChatMessage] +# policies: Optional[List[str]] = field(default_factory=list) +# expected_output: Optional[str] = field(default=None) + +# @classmethod +# def from_dict( +# cls, data: Dict[str, Any], filter: Optional[List[str]] = None +# ) -> "TransientEvaluation": +# data: TransientEvaluation = super().from_dict(data, filter=filter) +# data.messages = ( +# [] +# if data.messages is None +# else [ChatMessage.from_dict(msg) for msg in data.messages] +# ) +# data.model_output = ( +# None +# if data.model_output is None +# else ModelOutput.from_dict(data.model_output) +# ) +# return data + + +# @dataclass +# class TestResult(BaseDataclass): +# """Object containing the metric for a transient evaluation""" + +# name: str +# passed: Optional[bool] = field(default=None) +# error: Optional[str] = field(default=None) +# reason: Optional[str] = field(default=None) diff --git a/src/giskard_hub/data/chat.py b/src/giskard_hub/data/chat.py new file mode 100644 index 0000000..297225b --- /dev/null +++ b/src/giskard_hub/data/chat.py @@ -0,0 +1,13 @@ +from ._base import BaseData + + +from dataclasses import dataclass +from typing import Literal + + +@dataclass +class ChatMessage(BaseData): + """Message from an LLM, with role & content.""" + + role: Literal["system", "assistant", "user"] + content: str diff --git a/src/giskard_hub/data/conversation.py b/src/giskard_hub/data/conversation.py new file mode 100644 index 0000000..f77a715 --- /dev/null +++ b/src/giskard_hub/data/conversation.py @@ -0,0 +1,43 @@ +from dataclasses import dataclass, field +from typing import Any, Dict, List, Optional + +from ._entity import Entity +from .chat import ChatMessage + + +@dataclass +class Conversation(Entity): + """A Dataset entry representing a conversation. + + Attributes + ---------- + messages : List[ChatMessage] + List of messages in the conversation. Each message is an object with a role and content attributes. + tags : List[str], optional + List of tags for the conversation. + expected_output : Optional[str], optional + Expected output which will be used for correctness evaluation. + policies : List[str], optional + List of policies used for evaluation. + demo_output : Optional[ChatMessage], optional + Output of the agent for demonstration purposes. + """ + + messages: List[ChatMessage] = field(default_factory=list) + policies: List[str] = field(default_factory=list) + tags: List[str] = field(default_factory=list) + expected_output: Optional[str] = field(default=None) + demo_output: Optional[ChatMessage] = field(default=None) + + @classmethod + def from_dict(cls, data: Dict[str, Any], **kwargs) -> "Conversation": + obj = super().from_dict(data, **kwargs) + obj.messages = ( + [] + if obj.messages is None + else [ChatMessage.from_dict(msg) for msg in obj.messages] + ) + obj.demo_output = ( + None if obj.demo_output is None else ChatMessage.from_dict(obj.demo_output) + ) + return obj diff --git a/src/giskard_hub/data/dataset.py b/src/giskard_hub/data/dataset.py new file mode 100644 index 0000000..9d0b8e1 --- /dev/null +++ b/src/giskard_hub/data/dataset.py @@ -0,0 +1,67 @@ +from dataclasses import dataclass, field +from typing import List, Optional + +from giskard_hub.data import Conversation + +from ._entity import Entity, maybe_entity_to_id +from .project import Project +from .._default_client import _load_client + + +@dataclass +class Dataset(Entity): + """Dataset object, containing the metadata about the dataset.""" + + name: str + description: str = field(default="") + project_id: Optional[str] = field(default=None) + tags: List[str] = field(default_factory=list) + + @property + def conversations(self): + """Return the conversations of the dataset.""" + if self._client and self.id: + return self._client.conversations.list(dataset_id=self.id) + return None + + def create_conversation(self, conversation: Conversation): + """Add a conversation to the dataset.""" + if not self._client or not self.id: + raise ValueError( + "This dataset instance is detached or unsaved, cannot add conversation." + ) + + return self._client.conversations.create( + dataset_id=self.id, **conversation.to_dict() + ) + + + def push_to_hub(self, project: Project | str | None = None): + """Push the dataset to the hub. + + Parameters + ---------- + project : Project | str | None + The project to push the dataset to. + """ + client = self._client or _load_client() + + project = maybe_entity_to_id(project, Project) or self.project_id + if project is None: + raise TypeError("You need to provide a project to push the dataset to.") + + if self.id is None: + data = client.datasets.create( + name=self.name, + description=self.description, + project_id=project, + ) + else: + data = client.datasets.update( + dataset_id=self.id, + name=self.name, + description=self.description, + project_id=project, + ) + + self._hydrate(data) diff --git a/src/giskard_hub/data/evaluation.py b/src/giskard_hub/data/evaluation.py new file mode 100644 index 0000000..e43c6e3 --- /dev/null +++ b/src/giskard_hub/data/evaluation.py @@ -0,0 +1,181 @@ +from __future__ import annotations + +from dataclasses import dataclass, field +from time import sleep +import time +from typing import Any, Dict, List + +from giskard_hub import Conversation + +from ._base import BaseData +from ._entity import Entity +from .dataset import Dataset +from .model import Model, ModelOutput +from .task import TaskProgress, TaskStatus + +from rich.console import Console +from rich.table import Table + + +@dataclass +class Metric(BaseData): + """Evaluation metric.""" + + name: str + passed: int + failed: int + errored: int + total: int + + @property + def skipped(self): + """Return the number of skipped evaluations.""" + return self.total - self.passed - self.failed - self.errored + + @property + def percentage(self): + """Return the percentage of passed evaluations.""" + tot = self.total - self.skipped + if tot == 0: + return float("nan") + return self.passed / tot * 100 + + +@dataclass +class EvaluationRun(Entity): + """Evaluation run.""" + + name: str | None = None + project_id: str | None = None + datasets: List[Dataset] = field(default_factory=list) + model: Model | None = None + criteria: List = field(default_factory=list) + metrics: List[Metric] = field(default_factory=list) + progress: TaskProgress | None = None + + @classmethod + def from_dict(cls, data: Dict[str, Any], **kwargs) -> "EvaluationRun": + data = dict(data) + data["datasets"] = [ + Dataset.from_dict(d, **kwargs) for d in data.get("datasets", []) + ] + data["model"] = Model.from_dict(data["model"], **kwargs) + data["progress"] = TaskProgress.from_dict(data.get("status", {})) + data["metrics"] = [Metric.from_dict(m) for m in data.get("metrics", [])] + + return super().from_dict(data, **kwargs) + + def refresh(self) -> EvaluationRun: + """Refresh the evaluation run from the Hub.""" + if not self._client or not self.id: + raise ValueError( + "This evaluation run instance is detached or unsaved and cannot be refreshed." + ) + + data = self._client.evaluations.retrieve(self.id) + self._hydrate(data) + + return self + + def is_running(self) -> bool: + """Check if the evaluation is running.""" + return self.progress.status == TaskStatus.RUNNING + + def is_finished(self) -> bool: + """Check if the evaluation is finished.""" + return self.progress.status == TaskStatus.FINISHED + + def is_errored(self) -> bool: + """Check if the evaluation terminated with an error.""" + return self.progress.status == TaskStatus.ERROR + + def wait_for_completion( + self, timeout: float = 300, poll_interval: float = 5 + ) -> EvaluationRun: + """Wait for the evaluation to complete successfully. + + Parameters + ---------- + timeout : int, optional + The timeout in seconds, by default 300 + poll_interval : int, optional + The polling interval in seconds, by default 5. + + Returns + ------- + EvaluationRun + The updated evaluation run instance. The object will have a valid + ``metrics`` attribute containing the evaluation results. + """ + end_time = time.perf_counter() + timeout + if self.is_running(): + self.refresh() + while time.perf_counter() < end_time: + if not self.is_running(): + break + sleep(poll_interval) + self.refresh() + + if self.is_finished(): + return self + + if self.is_errored(): + raise RuntimeError("Evaluation failed") + + if self.is_running(): + raise TimeoutError("Evaluation did not finish in time.") + + raise RuntimeError("Evaluation was aborted.") + + def print_metrics(self): + """Print the evaluation metrics.""" + console = Console() + table = Table( + "Metric", + "Result", + "Details", + title=f"Evaluation Run [bold cyan]{self.name}[/bold cyan]", + ) + for metric in self.metrics: + if metric.percentage != metric.percentage: + continue + + if metric.percentage > 80: + color = "green" + elif metric.percentage > 50: + color = "yellow" + else: + color = "red" + + table.add_row( + f"[bold]{metric.name.capitalize()}[/bold]", + f"[{color}]{metric.percentage:.2f}%[/{color}]", + f"[bright_black]{metric.passed} passed, {metric.failed} failed, {metric.errored} errored, {metric.skipped} not executed[/bright_black]", + ) + console.print(table) + + +@dataclass +class EvaluationEntry(Entity): + """Evaluation entry.""" + + run_id: str + conversation: Conversation + model_output: ModelOutput | None = None + results: List[EvaluatorResult] = field(default_factory=list) + status: TaskStatus = TaskStatus.RUNNING + + @classmethod + def from_dict(cls, data: Dict[str, Any], **kwargs) -> "EvaluationEntry": + data["conversation"] = Conversation.from_dict(data["conversation"]) + output = data.get("output") + data["model_output"] = ModelOutput.from_dict(output) if output else None + return super().from_dict(data, **kwargs) + + +class EvaluatorResult(BaseData): + name: str + status: TaskStatus = TaskStatus.RUNNING + passed: bool | None = None + error: str | None = None + reason: str | None = None diff --git a/src/giskard_hub/data/model.py b/src/giskard_hub/data/model.py new file mode 100644 index 0000000..972943e --- /dev/null +++ b/src/giskard_hub/data/model.py @@ -0,0 +1,69 @@ +from dataclasses import dataclass, field +from typing import Dict, List, Self + +from ._base import BaseData +from ._entity import Entity +from .chat import ChatMessage + + +@dataclass +class ModelOutput(BaseData): + """Model output.""" + + message: ChatMessage + metadata: Dict[str, any] = field(default_factory=dict) + + @classmethod + def from_dict(cls, data: Dict[str, any], **kwargs) -> Self: + msg = data.get("response") or data.get("message") + return cls( + message=ChatMessage.from_dict(msg), + metadata=data.get("metadata", {}), + ) + + +@dataclass +class Model(Entity): + """Model""" + + name: str + project_id: str | None = None + url: str | None = None + description: str | None = None + supported_languages: List[str] = field(default_factory=lambda: ["en"]) + headers: Dict[str, str] = field(default_factory=dict) + + @classmethod + def from_dict(cls, data: Dict[str, str], **kwargs) -> "Model": + data = dict(data) + headers = data.get("headers", {}) + if not isinstance(headers, dict): + try: + headers = {h["name"]: h["value"] for h in headers} + except KeyError: + raise ValueError("Invalid model headers.") + + data["headers"] = headers + + return super().from_dict(data, **kwargs) + + def chat(self, messages: List[ChatMessage]) -> ModelOutput: + """Chat with the model. + + Parameters + ---------- + messages : List[ChatMessage] + A list of messages to send to the model. + + Returns + ------- + ModelOutput + The model response. + """ + return self._client.post( + f"/models/{self.id}/chat", + json=[msg.to_dict() for msg in messages], + cast_to=ModelOutput, + ) + + diff --git a/src/giskard_hub/data/project.py b/src/giskard_hub/data/project.py new file mode 100644 index 0000000..d288977 --- /dev/null +++ b/src/giskard_hub/data/project.py @@ -0,0 +1,21 @@ +from __future__ import annotations + +from dataclasses import dataclass + +from ._entity import Entity + + +@dataclass +class Project(Entity): + """Project + + Attributes + ---------- + name : str + The name of the project. + description : str, optional + The description of the project. + """ + + name: str + description: str = "" diff --git a/src/giskard_hub/data/task.py b/src/giskard_hub/data/task.py new file mode 100644 index 0000000..2420572 --- /dev/null +++ b/src/giskard_hub/data/task.py @@ -0,0 +1,28 @@ +from dataclasses import dataclass +from enum import Enum + +from ._base import BaseData + + +class TaskStatus(str, Enum): + SKIPPED = "skipped" + FINISHED = "finished" + ERROR = "error" + RUNNING = "running" + + +@dataclass +class TaskProgress(BaseData): + status: TaskStatus + current: int + total: int + error: str | None = None + + @classmethod + def from_dict(cls, data): + return cls( + status=TaskStatus(data["state"]), + current=data["current"], + total=data["total"], + error=data.get("error"), + ) diff --git a/src/giskard_hub/resources/_resource.py b/src/giskard_hub/resources/_resource.py new file mode 100644 index 0000000..17152c6 --- /dev/null +++ b/src/giskard_hub/resources/_resource.py @@ -0,0 +1,8 @@ +from .._base_client import SyncClient + + +class APIResource: + _client: SyncClient + + def __init__(self, client: SyncClient): + self._client = client diff --git a/src/giskard_hub/resources/conversations.py b/src/giskard_hub/resources/conversations.py new file mode 100644 index 0000000..9c9fa2f --- /dev/null +++ b/src/giskard_hub/resources/conversations.py @@ -0,0 +1,82 @@ +from __future__ import annotations + +from typing import List, Optional + +from ..data._base import NOT_GIVEN, filter_not_given, maybe_to_dict +from ..data.chat import ChatMessage +from ..data.conversation import Conversation +from ..data.dataset import Dataset +from ._resource import APIResource + + +class ConversationsResource(APIResource): + def retrieve(self, conversation_id: str): + return self._client.get(f"/conversations/{conversation_id}", cast_to=Dataset) + + def create( + self, + *, + dataset_id: str, + messages: List[ChatMessage], + policies: List[str] = NOT_GIVEN, + tags: List[str] = NOT_GIVEN, + expected_output: Optional[str] = NOT_GIVEN, + demo_output: Optional[ChatMessage] = NOT_GIVEN, + ): + data = filter_not_given( + { + "dataset_id": dataset_id, + "messages": [maybe_to_dict(msg) for msg in messages], + "policies": policies, + "tags": tags, + "expected_output": expected_output, + "demo_output": maybe_to_dict(demo_output), + } + ) + return self._client.post( + "/conversations", + json=data, + cast_to=Conversation, + ) + + def update( + self, + conversation_id: str, + *, + dataset_id: str = NOT_GIVEN, + messages: List[ChatMessage] = NOT_GIVEN, + policies: List[str] = NOT_GIVEN, + tags: List[str] = NOT_GIVEN, + expected_output: Optional[str] = NOT_GIVEN, + demo_output: Optional[ChatMessage] = NOT_GIVEN, + ) -> Conversation: + data = filter_not_given( + { + "dataset_id": dataset_id, + "messages": [maybe_to_dict(msg) for msg in messages] + if messages + else messages, + "policies": policies, + "tags": tags, + "expected_output": expected_output, + "demo_output": maybe_to_dict(demo_output), + } + ) + return self._client.patch( + f"/conversations/{conversation_id}", + json=data, + cast_to=Conversation, + ) + + def delete(self, conversation_id: str | List[str]) -> None: + if isinstance(conversation_id, str): + conversation_id = [conversation_id] + + return self._client.delete("/conversations", json=conversation_id) + + def list(self, dataset_id: str) -> List[Conversation]: + data = self._client.get(f"/datasets/{dataset_id}/conversations?limit=100000") + return [ + Conversation.from_dict(d, _client=self._client) + for d in data.get("items", []) + ] diff --git a/src/giskard_hub/resources/datasets.py b/src/giskard_hub/resources/datasets.py new file mode 100644 index 0000000..be39fec --- /dev/null +++ b/src/giskard_hub/resources/datasets.py @@ -0,0 +1,51 @@ +from __future__ import annotations + +from typing import List + +from ..data._base import NOT_GIVEN, filter_not_given +from ..data.dataset import Dataset +from ._resource import APIResource + + +class DatasetsResource(APIResource): + def retrieve(self, dataset_id: str): + return self._client.get(f"/datasets/{dataset_id}", cast_to=Dataset) + + def create(self, *, name: str, description: str, project_id: str): + return self._client.post( + "/datasets", + json={ + "name": name, + "description": description, + "project_id": project_id, + }, + cast_to=Dataset, + ) + + def update( + self, + dataset_id: str, + *, + name: str = NOT_GIVEN, + description: str = NOT_GIVEN, + project_id: str = NOT_GIVEN, + ): + data = filter_not_given( + {"name": name, "description": description, "project_id": project_id} + ) + return self._client.patch( + f"/datasets/{dataset_id}", + json=data, + cast_to=Dataset, + ) + + def delete(self, dataset_id: str | List[str]): + if isinstance(dataset_id, str): + dataset_id = [dataset_id] + + return self._with_client(self._client.delete("/datasets", json=dataset_id)) + + def list(self, project_id: str): + return self._client.get( + "/datasets", params={"project_id": project_id}, cast_to=Dataset + ) diff --git a/src/giskard_hub/resources/evaluations.py b/src/giskard_hub/resources/evaluations.py new file mode 100644 index 0000000..7032afa --- /dev/null +++ b/src/giskard_hub/resources/evaluations.py @@ -0,0 +1,121 @@ +from __future__ import annotations + +from typing import List + +from ..data._base import NOT_GIVEN, filter_not_given, maybe_to_dict +from ..data.evaluation import EvaluationEntry, EvaluationRun, EvaluatorResult +from ..data.model import Model, ModelOutput +from ._resource import APIResource + + +class EvaluationsResource(APIResource): + def retrieve(self, run_id: str): + return self._client.get(f"/executions/{run_id}", cast_to=EvaluationRun) + + def create( + self, + *, + model_id: str, + dataset_id: str, + tags: List[str] = NOT_GIVEN, + name: str = NOT_GIVEN, + ): + data = filter_not_given( + { + "name": name, + "model_id": model_id, + } + ) + data["criteria"] = [ + filter_not_given( + { + "dataset_id": dataset_id, + "tags": tags, + } + ) + ] + + return self._client.post( + "/executions", + json=data, + cast_to=EvaluationRun, + ) + + def create_local( + self, + *, + model: Model, + dataset_id: str, + tags: List[str] = NOT_GIVEN, + name: str = NOT_GIVEN, + ): + data = filter_not_given( + { + "name": name, + "model": model.to_dict(), + } + ) + data["criteria"] = [ + filter_not_given( + { + "dataset_id": dataset_id, + "tags": tags, + } + ) + ] + + return self._client.post( + "/executions/local", + json=data, + cast_to=EvaluationRun, + ) + + def delete(self, project_id: str | List[str]): + if isinstance(project_id, str): + project_id = [project_id] + + return self._client.delete("/executions", json=project_id) + + def list(self, project_id: str): + return self._client.get( + "/executions", params={"project_id": project_id}, cast_to=EvaluationRun + ) + + def list_entries(self, run_id: str): + entries = self._client.get(f"/executions/{run_id}/results?limit=100_000")[ + "items" + ] + return [EvaluationEntry.from_dict(entry) for entry in entries] + + def update_entry( + self, + run_id: str, + entry_id: str, + *, + model_output: ModelOutput = NOT_GIVEN, + results: List[EvaluatorResult] = NOT_GIVEN, + ): + if model_output and not isinstance(model_output, ModelOutput): + model_output = ModelOutput.from_dict(model_output) + + if model_output: + output = { + "response": model_output.message.to_dict(), + "metadata": model_output.metadata, + } + else: + output = NOT_GIVEN + + data = filter_not_given( + { + "output": output, + "results": [maybe_to_dict(result) for result in results] + if results + else NOT_GIVEN, + } + ) + return self._client.patch( + f"/executions/{run_id}/results/{entry_id}", + json=data, + cast_to=EvaluationEntry, + ) diff --git a/src/giskard_hub/resources/models.py b/src/giskard_hub/resources/models.py new file mode 100644 index 0000000..c320b5e --- /dev/null +++ b/src/giskard_hub/resources/models.py @@ -0,0 +1,91 @@ +from __future__ import annotations + +from typing import Dict, List + +from ..data.chat import ChatMessage + +from ..data._base import NOT_GIVEN, filter_not_given, maybe_to_dict +from ..data.model import Model, ModelOutput +from ._resource import APIResource + + +def _maybe_headers_to_list(headers: Dict[str, str] | None): + if isinstance(headers, dict): + return [{"name": k, "value": v} for k, v in headers.items()] + return headers if headers is not None else [] + + +class ModelsResource(APIResource): + def retrieve(self, model_id: str): + return self._client.get(f"/models/{model_id}", cast_to=Model) + + def create( + self, + *, + name: str, + description: str, + url: str, + supported_languages: List[str], + headers: Dict[str, str] = None, + project_id: str, + ): + data = filter_not_given( + { + "name": name, + "description": description, + "url": url, + "supported_languages": supported_languages, + "headers": _maybe_headers_to_list(headers), + "project_id": project_id, + } + ) + return self._client.post( + "/models", + json=data, + cast_to=Model, + ) + + def update( + self, + model_id: str, + *, + name: str = NOT_GIVEN, + description: str = NOT_GIVEN, + url: str = NOT_GIVEN, + supported_languages: List[str] = NOT_GIVEN, + headers: Dict[str, str] = NOT_GIVEN, + project_id: str = NOT_GIVEN, + ): + data = filter_not_given( + { + "name": name, + "description": description, + "url": url, + "supported_languages": supported_languages, + "headers": _maybe_headers_to_list(headers), + "project_id": project_id, + } + ) + return self._client.patch( + f"/models/{model_id}", + json=data, + cast_to=Model, + ) + + def delete(self, model_id: str | List[str]): + if isinstance(model_id, str): + model_id = [model_id] + + return self._client.delete("/models", json=model_id) + + def list(self, project_id: str): + return self._client.get( + "/models", params={"project_id": project_id}, cast_to=Model + ) + + def chat(self, model_id: str, messages: List[ChatMessage]): + return self._client.post( + f"/models/{model_id}/chat", + json={"messages": maybe_to_dict(messages)}, + cast_to=ModelOutput, + ) diff --git a/src/giskard_hub/resources/projects.py b/src/giskard_hub/resources/projects.py new file mode 100644 index 0000000..38dc569 --- /dev/null +++ b/src/giskard_hub/resources/projects.py @@ -0,0 +1,58 @@ +from __future__ import annotations + +from typing import List + +from ..data._base import NOT_GIVEN, filter_not_given +from ..data.project import Project +from ._resource import APIResource + + +class ProjectsResource(APIResource): + def retrieve(self, project_id: str): + return self._client.get(f"/projects/{project_id}", cast_to=Project) + + def create( + self, + *, + name: str, + description: str = "", + ): + data = filter_not_given( + { + "name": name, + "description": description, + } + ) + return self._client.post( + "/projects", + json=data, + cast_to=Project, + ) + + def update( + self, + project_id: str, + *, + name: str = NOT_GIVEN, + description: str = NOT_GIVEN, + ): + data = filter_not_given( + { + "name": name, + "description": description, + } + ) + return self._client.patch( + f"/projects/{project_id}", + json=data, + cast_to=Project, + ) + + def delete(self, project_id: str | List[str]): + if isinstance(project_id, str): + project_id = [project_id] + + return self._client.delete("/projects", json=project_id) + + def list(self): + return self._client.get("/projects", cast_to=Project) From d747b5b0a04d12bbb4fe781d1d2bb2040147ec01 Mon Sep 17 00:00:00 2001 From: Matteo Dora Date: Fri, 31 May 2024 20:27:04 +0200 Subject: [PATCH 05/17] Working on the docs WIP WIP WIP --- script-docs/_static/quickstart/api_key.png | Bin 0 -> 46856 bytes script-docs/cli.rst | 2 +- script-docs/index.md | 51 ------------ script-docs/index.rst | 50 +++++++++++ script-docs/quickstart.rst | 91 +++++++++++++++++++++ script-docs/tutorials/index.rst | 7 ++ script-docs/tutorials/local-evaluation.rst | 2 + 7 files changed, 151 insertions(+), 52 deletions(-) create mode 100644 script-docs/_static/quickstart/api_key.png delete mode 100644 script-docs/index.md create mode 100644 script-docs/index.rst create mode 100644 script-docs/quickstart.rst create mode 100644 script-docs/tutorials/index.rst create mode 100644 script-docs/tutorials/local-evaluation.rst diff --git a/script-docs/_static/quickstart/api_key.png b/script-docs/_static/quickstart/api_key.png new file mode 100644 index 0000000000000000000000000000000000000000..e11205bb62b97b47cbadadd6e8fc7144aab58aea GIT binary patch literal 46856 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 i@25kJNBjlc{^3w?B6RG?rH@P7c3SURHs literal 0 HcmV?d00001 diff --git a/script-docs/cli.rst b/script-docs/cli.rst index 796d48e..9b429c4 100644 --- a/script-docs/cli.rst +++ b/script-docs/cli.rst @@ -1,5 +1,5 @@ CLI docs -......................................... +======== .. click:: giskard_hub.cli:typer_click_object :prog: python -m giskard_hub.cli :nested: full \ No newline at end of file diff --git a/script-docs/index.md b/script-docs/index.md deleted file mode 100644 index 6e9d47c..0000000 --- a/script-docs/index.md +++ /dev/null @@ -1,51 +0,0 @@ -# Welcome to the Giskard Hub's client docs! - -The giskard_hub library allows you to interact with the Giskard Hub, a platform that centralizes the validation process -of LLM applications, empowering product teams to ensure all functional, business & legal requirements are met, and -keeping them in close contact with the development team to avoid delayed deployment timelines. - -The giskard_hub Python library provides a simple way for developers and data scientists to manage and evaluate LLM -applications in their development workflow during the prototyping phase and for continuous integration testing. - -Read the quick start guide to get up and running with the giskard_hub library. You will learn how to download datasets, -upload LLM agent outputs to the Giskard Hub and execute evaluations from a notebook, script or CLI. - -```{toctree} -:caption: Getting Started -:maxdepth: 1 -:hidden: - -README -``` - - -```{toctree} -:caption: CLI -:maxdepth: 3 -:hidden: -./cli -``` - - -```{toctree} -:caption: Code Documentation -:maxdepth: 2 -:hidden: - -./sources -``` - - - diff --git a/script-docs/index.rst b/script-docs/index.rst new file mode 100644 index 0000000..9634246 --- /dev/null +++ b/script-docs/index.rst @@ -0,0 +1,50 @@ +Giskard Hub documentation +========================= + +The Giskard Hub is a platform that centralizes the validation process of LLM +applications, empowering product teams to ensure all functional, business & +legal requirements are met, and keeping them in close contact with the +development team to avoid delayed deployment timelines. + +The ``giskard_hub`` Python library provides a simple way for developers and data +scientists to manage and evaluate LLM applications in their development workflow +during the prototyping phase and for continuous integration testing. + +Read the quick start guide to get up and running with the `giskard_hub` library. +You will learn how execute local evaluations from a notebook, script or CLI, and +synchronize them to the Giskard Hub platform. + +.. toctree:: + :caption: Getting Started + :maxdepth: 1 + + index + quickstart + +.. toctree:: + :caption: Tutorials + :maxdepth: 1 + + tutorials/index + + +.. toctree:: + :caption: CLI + :maxdepth: 1 + + cli + + +.. toctree:: + :caption: API Reference + :maxdepth: 1 + + sources + + +.. Indices and tables +.. ================== + +.. * :ref:`genindex` +.. * :ref:`modindex` +.. * :ref:`search` diff --git a/script-docs/quickstart.rst b/script-docs/quickstart.rst new file mode 100644 index 0000000..492aa36 --- /dev/null +++ b/script-docs/quickstart.rst @@ -0,0 +1,91 @@ +Quick start +=========== + +Installation +------------ + +The library is compatible with Python 3.9 to 3.12. + +.. code-block:: bash + :caption: Shell + + pip install giskard-hub + + +Getting an API key +------------------ + +Head over to your Giskard Hub instance and click on the user icon in the top right corner. You will find your personal +API key, click on the button to copy it. + +.. image:: /_static/quickstart/api_key.png + :width: 779px + :scale: 50% + :align: center + :alt: "" + +.. note:: + + If you don't see your API key in the UI, it means your administrator has not enabled API keys. Please contact them to get one. + + +Configuring your environment +---------------------------- + +You can set the following environment variables to avoid passing them as arguments to the client: + +.. code-block:: bash + :caption: Shell + + export GSK_API_KEY=your_api_key + export GSK_HUB_URL=https://your-giskard-hub-instance.com/ + + + +Interact with the Hub programmatically +-------------------------------------- + +@TODO: +- Create a dataset +- Add a conversation +- Setting up a model + + +You can now configure the client to interact with the Hub. Start by initializing a client: + +.. code-block:: python + + from giskard_hub.client import HubClient + + client = HubClient() + +If you didn't set up the environment variables, you can provide the API key and Hub URL directly: + +.. code-block:: python + + client = HubClient( + api_key="YOUR_GSK_API_KEY", + hub_url="THE_GSK_HUB_URL", + ) + +You can retrieve projects, models, or datasets from the server: + +.. code-block:: python + + projects = client.get_projects() + models = client.get_models(project.id) + dataset = client.get_datasets(project.id) + + +You can launch an evaluation programmatically: + +.. code-block:: python + + evaluation = client.evaluate( + project_id=project.id, + model_id=model.id, + dataset_id=dataset.id, + ) + + print(evaluation) + diff --git a/script-docs/tutorials/index.rst b/script-docs/tutorials/index.rst new file mode 100644 index 0000000..a2c2843 --- /dev/null +++ b/script-docs/tutorials/index.rst @@ -0,0 +1,7 @@ +Tutorials +========= + +.. toctree:: + :caption: Tutorials + + local-evaluation \ No newline at end of file diff --git a/script-docs/tutorials/local-evaluation.rst b/script-docs/tutorials/local-evaluation.rst new file mode 100644 index 0000000..e3f43ad --- /dev/null +++ b/script-docs/tutorials/local-evaluation.rst @@ -0,0 +1,2 @@ +Evaluate local models +===================== From 9ae2c96e9176dae7185d69257df5da0862a8ae29 Mon Sep 17 00:00:00 2001 From: Matteo Dora Date: Tue, 4 Jun 2024 18:08:10 +0200 Subject: [PATCH 06/17] Various fixes to the API --- src/giskard_hub/data/evaluation.py | 9 ++++----- src/giskard_hub/data/model.py | 11 ++++------- src/giskard_hub/resources/datasets.py | 10 +++++----- src/giskard_hub/resources/models.py | 16 ++++++++-------- 4 files changed, 21 insertions(+), 25 deletions(-) diff --git a/src/giskard_hub/data/evaluation.py b/src/giskard_hub/data/evaluation.py index e43c6e3..468fe2a 100644 --- a/src/giskard_hub/data/evaluation.py +++ b/src/giskard_hub/data/evaluation.py @@ -1,21 +1,20 @@ from __future__ import annotations +import time from dataclasses import dataclass, field from time import sleep -import time from typing import Any, Dict, List -from giskard_hub import Conversation +from rich.console import Console +from rich.table import Table from ._base import BaseData from ._entity import Entity +from .conversation import Conversation from .dataset import Dataset from .model import Model, ModelOutput from .task import TaskProgress, TaskStatus -from rich.console import Console -from rich.table import Table - @dataclass class Metric(BaseData): diff --git a/src/giskard_hub/data/model.py b/src/giskard_hub/data/model.py index 972943e..4a5600e 100644 --- a/src/giskard_hub/data/model.py +++ b/src/giskard_hub/data/model.py @@ -1,7 +1,7 @@ from dataclasses import dataclass, field from typing import Dict, List, Self -from ._base import BaseData +from ._base import BaseData, maybe_to_dict from ._entity import Entity from .chat import ChatMessage @@ -60,10 +60,7 @@ def chat(self, messages: List[ChatMessage]) -> ModelOutput: ModelOutput The model response. """ - return self._client.post( - f"/models/{self.id}/chat", - json=[msg.to_dict() for msg in messages], - cast_to=ModelOutput, + return self._client.models.chat( + model_id=self.id, + messages=messages, ) - - diff --git a/src/giskard_hub/resources/datasets.py b/src/giskard_hub/resources/datasets.py index be39fec..f527285 100644 --- a/src/giskard_hub/resources/datasets.py +++ b/src/giskard_hub/resources/datasets.py @@ -11,7 +11,7 @@ class DatasetsResource(APIResource): def retrieve(self, dataset_id: str): return self._client.get(f"/datasets/{dataset_id}", cast_to=Dataset) - def create(self, *, name: str, description: str, project_id: str): + def create(self, *, name: str, description: str, project_id: str) -> Dataset: return self._client.post( "/datasets", json={ @@ -29,7 +29,7 @@ def update( name: str = NOT_GIVEN, description: str = NOT_GIVEN, project_id: str = NOT_GIVEN, - ): + ) -> Dataset: data = filter_not_given( {"name": name, "description": description, "project_id": project_id} ) @@ -39,13 +39,13 @@ def update( cast_to=Dataset, ) - def delete(self, dataset_id: str | List[str]): + def delete(self, dataset_id: str | List[str]) -> None: if isinstance(dataset_id, str): dataset_id = [dataset_id] - return self._with_client(self._client.delete("/datasets", json=dataset_id)) + self._client.delete("/datasets", json=dataset_id) - def list(self, project_id: str): + def list(self, project_id: str) -> List[Dataset]: return self._client.get( "/datasets", params={"project_id": project_id}, cast_to=Dataset ) diff --git a/src/giskard_hub/resources/models.py b/src/giskard_hub/resources/models.py index c320b5e..a6d00e1 100644 --- a/src/giskard_hub/resources/models.py +++ b/src/giskard_hub/resources/models.py @@ -16,7 +16,7 @@ def _maybe_headers_to_list(headers: Dict[str, str] | None): class ModelsResource(APIResource): - def retrieve(self, model_id: str): + def retrieve(self, model_id: str) -> Model: return self._client.get(f"/models/{model_id}", cast_to=Model) def create( @@ -28,7 +28,7 @@ def create( supported_languages: List[str], headers: Dict[str, str] = None, project_id: str, - ): + ) -> Model: data = filter_not_given( { "name": name, @@ -55,7 +55,7 @@ def update( supported_languages: List[str] = NOT_GIVEN, headers: Dict[str, str] = NOT_GIVEN, project_id: str = NOT_GIVEN, - ): + ) -> Model: data = filter_not_given( { "name": name, @@ -72,20 +72,20 @@ def update( cast_to=Model, ) - def delete(self, model_id: str | List[str]): + def delete(self, model_id: str | List[str]) -> None: if isinstance(model_id, str): model_id = [model_id] - return self._client.delete("/models", json=model_id) + self._client.delete("/models", json=model_id) - def list(self, project_id: str): + def list(self, project_id: str) -> List[Model]: return self._client.get( "/models", params={"project_id": project_id}, cast_to=Model ) - def chat(self, model_id: str, messages: List[ChatMessage]): + def chat(self, model_id: str, messages: List[ChatMessage]) -> ModelOutput: return self._client.post( f"/models/{model_id}/chat", - json={"messages": maybe_to_dict(messages)}, + json={"messages": [maybe_to_dict(msg) for msg in messages]}, cast_to=ModelOutput, ) From 2bcd9248fb545b95ce9dcbe699aca23e1555bf73 Mon Sep 17 00:00:00 2001 From: Matteo Dora Date: Tue, 4 Jun 2024 18:08:16 +0200 Subject: [PATCH 07/17] Quick start docs --- .../quickstart/dataset_conversation.png | Bin 0 -> 216736 bytes .../_static/quickstart/metrics_output.png | Bin 0 -> 22465 bytes .../_static/quickstart/new_dataset.png | Bin 0 -> 157647 bytes .../_static/quickstart/new_project.png | Bin 0 -> 78582 bytes script-docs/quickstart.rst | 186 +++++++++++++++--- 5 files changed, 160 insertions(+), 26 deletions(-) create mode 100644 script-docs/_static/quickstart/dataset_conversation.png create mode 100644 script-docs/_static/quickstart/metrics_output.png create mode 100644 script-docs/_static/quickstart/new_dataset.png create mode 100644 script-docs/_static/quickstart/new_project.png diff --git a/script-docs/_static/quickstart/dataset_conversation.png b/script-docs/_static/quickstart/dataset_conversation.png new file mode 100644 index 0000000000000000000000000000000000000000..3402691e07dd263306f6ddb47268494fa70b15f3 GIT binary patch literal 216736 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%0D)Vj<%Br#Z))n}im z)g_=6N6*RLuwz7;+)k_QsDF0u?;T#>d?lS=LIHu7YNa8dv*uQ;d8rFX%~WCVe>&9J z5+`c+m72q5f)n%ErP@;!WUt0jd|_<`vc@7e9(|Y^SDImcgr)xTP5Z2Dpz!;IU#9l@ z?w-umNaVw^i}`+1u!%S1R;OP%Vk??}!bMl4nraT}!i`tgPQ8--yKi~v&vco~aIPXm zz2*jUaYSO94k=m&pn1W(f|)?)|~ z==TgQv;W(1yL}@aaue_zY}(^^XUA$iiCS^l{G-Bmai6%}Xk@ErQ;}QV#GcQP;=9P9 zmQf`!p;;Z}pF-KDB`OkQADw0Ft^Qr|0SsPo=D*m2|8xgkJzhvSiNUlEPwkPShx~cLX8e=>HJ`Ja7nvgHZ59Imn@V5a-Fy zV7}1rPDMqU!11QD)t|qThb}tSb;2U5+;swN2l>UCyb%X`IJ>(}vGT)B;^x799ZR3n zT}4IQOv$=g4=z5*R?NP?NH+BP9}7uApQoN(s()8^?Hy0}&Bg?Z@r2G)Ez&lhgIg}x zzJ;q#P0#erUj9$>`(Lf|gQ`<&s%IxDm~jDSb*X8uSYy^m5>NL1GSFJ%lMAFVjsO9ie{bKb0i3As*65zoR_2NF2lN3w`Hhuk4ZTfls1#Gz;{d&8|G@wHi zB{fb_1v@i5$RX@H<5ur*b?lt#T3kGg%D(^l(ld|Ce`#B^ajKSPt(57{@6s6#6=R=j zA&qQH%gX3*^h41yUnpGJ=6rfQ-_CuhPMDK=Q%z9GAzpRaCe@GnZ-?fuznUSy9sd1(qF0i!?$s=X7Ro(8_X4VSw zOFqIwybWu!xleyJs=tlzo6bpNx)DQ6$Zw0w{u=pz%yxiG5xD&$V!1c}w@LixBY*oz zriJQ4dcr4kD$PGZnSajIZ+;5YIeQ_UnM-%!@BJ8m`>p=-YXTz}uF43Qx=TU++OfTt zMo@4x=;G=9xge8`T;1p&bJo71Dx9uL%Hsdh#PpBf;TKnnfdex*RKoYyw8)T>*GzR% zF|^-$x>R&2@F(4a4=&eq$KLvQzhZ2@7ckAs)?V~mVB>)U3BT3N?W2$Izh3#@rtMdM zeG_!zy-hvNZ2NZ~96#|F|3Ci3<`}f+=fB*Y3lIDPQE=NEn%9AgW@pir2r3TP9f4xA zxfa5Jd7ut3$CH5AU_6k8O#-^UNkCSZQhAnwG?eoV_w4=B&rQUi;~RhSPm7I4)px2| za{bb;0M1$9&r2N78$SHBQTNdYT9ta0ccH1x!ztx|zv3>?kVv-%GcX)%ZuDc~zc-}` zgFdEbQ!jtl1S*T2Js_EiRuU6#eH3M9Tsua3xzq+cy#-zH|03Qgl;&Ut_ z7d`J=N^W&2ow?8@!t3uNd{uqQc<%fq|NSM<_`sdrzoOGL+Wy(z_KKr`xtn0IUb&=b zCTm}ffMvHJkaQFdXXJ6~f3HdG5}EwQ=hzce1HKI@wUYy5d<4ZW-A(}0UZ8k4FJ6F% zRf@mUxOtFE_<(}ulk>mdV0w@uE8Z&U|Dqns{ zD!}fy^9NIW0=of)&BXJL;v<=^*);!d12^5{1MYUomlptWJUCygSnrPyW^Xm+vyhF0jn=}a0$ z!MRwD=`KsS)p#CmR(85i@-&kN=AAv*u7@SGvU!iq?PQ$zrt{Y>Ts}2~G&UCSKdSMe zv}~7Q7A}wYpsALgyO4EX`za<>D(7BkRE|;YX?z&h>HC$>Z5}C-ba!Qq^9WM?W(j}% zdEs*MXff6kA0^=+0u;7|fo!sCEvei5bHpgnEKJs;s~;Tqm^L04YNUHCdYh+`*YDkY z*-dbYIfC&gqMWzVI`6=ac8rM~yoH?~cxFg{=6ftOHDy2LQ>!fK-_PTznh6l zI?))!*qL%_aIkBOz$u;DZ|9=m^4E#xPi01dsH@2kZui?;WJ2YH7uFZ^7W?WVl98kE zXR??}C+v7P0J{w8Xyd(?nJpfR&u3MQF}a$r)Wf(ve#GAvZ~sffe1`YU93ij% zU_BhDKUdot%)yl?%u{{VZ(9KQOz6`mwPZI-H&*o{Y!CL#UCC(|z)0H1R35a^SpG=6&mP)lVkD`1<=w-jkx!n)@%txceI%Fg+RfZdGed9tdI<~*R9b+mj4|Lp08roy)6EU#kzR1O) z;_%ysDA(02sV|v5(izBEXl!Ltf~_Tgp$#6)6D7l>`>s!IukUvI%-fi zj;F|sx2D*nPzvKpgCC)o)(B7Bpp@eT3y3{uUJ;qxzO2u5bbYq&KM0Rz7HAoFYN9zB z_N2*!yikE14#2Qejl;X4nL?|(v&JKK6G-&JScTN+QNy|}Q^iq?iu5QwuhF=fx%nt2 z6SWnp8~jBp_EN`UveC%iG` zm0HD3>kR2)=Isjj>FC_OIP3AMPY?vqilkApw*jK!KaA467H%&mz!G?50xXiZk1Oo4 z5v4o!BPG4XyIC=h@3gYI7g4i3(b#mXF9xZawOHyNgQ`^tBGO;VrtI$FAU&5BcQ=nY z{7lw|2B7NLHIUzLn2C`ra~V0+<#!0>1KV9Nl-+39qPp;n9^`>7urq-d0)eS^%Rk=C z#5Xe;pGin0X8TR$EsoDq-|P|#b&Oc(qs@^EXM_|_18KnsLEC|r`t|l#K9p8RNBis+ z2Rp&A<&2?MZ^Ha`zEcvvQ1hZb0mhv4&r@As0Lb+^|6(O6Sms`*L#%cJ*LISsx2GZ9o5DQMUZaV9qK*qOAfn7ODu)1M-e`DU>$QS-Xf4PbFRwCGOiSKSa!s}tY zS0Xo6RzUeoPkFrxEXAfJa=&5g#mLZ!QYnm`EP?B9(_c&a4frD@WY994GaLIrkT~2X zf$p)Dec5nliJ^a#kpID_?$Zx_W`o*;EPjHd9KBAuRc{8EEDH*wsFPbI(2PzsMB4nV z#%sBD|H0AhN7|K9AMb_I?;y&9yl!89K2)R&%<6ehsJP7lN8C$(40DWA$jOBbJDgwt z(~em=?1KzvS`xBmU0o-{d*u-AxhiWse9a4XS$GjqLgc&j8`I0LEi-(9G#n+W&4h0+ zVn$e@w8ttPS7`7AF;~M~J&w49&wiT$l|XSiGoTmDfdw))mCpI>4fg~=>v#TMpnvsY z)0I4(PbN`CA7uqruT7sgszj)9sab-)DX6S{PHuTxINN15sv^8s%wlP55@^t-(WNuL zYWjyvAT#ui3!Zy>T4q$>Iu7o}alhaRoGUzMC|196F0?eY!Q2>hGm<0|q-7C(YUDXH z*wDN#Rb)O~tUv2_Ar@*VKH0(GCXdt2Ww+cT(HglFUtW?9pKCQ8Ej3quedz`jii5}= zBqN@h6x#5e-*MqGcc)mc3x|XR7RWm1^eFd;#mB~)102D4PF&}Aa=7b^J)2(}Y{RG; zfF5aeM}e3NzLRBGa0QKt6Dk7=%exCacUBnb{i3ePg~dOD&YQD&FFI?#MoD0JWQdv3 z(!vsMi%vu~-;LfJ<)opP#?^+;fjXzf{?<|mTgUm=eECc_Wdyp>3b)=X)_RGdY0ue( zJw75JAXdWmV|HOo(KSh0MLO2fyJo1~GJLV>#~RQ)xnh1GKZT~q%0WXVD?=$&Zwu(G zm#IzJE_#I}fbB6_F<9;xv1C_Kl#FBQPL&#VYpiR~DAsGX2w1SKJ3dkvzOfHf*QZG3 zmaC>MD*YT&s6uw|Npf2>?g&DiZ);SFyrGY~f^S%H>3)K8nsmod?SQ#3k0I*4t$y(7P5XlHF-ozVvDdXeQrEfQ zeH`izo(IzGj7$aHDF6^(9CBrBuxd^1Ssabf`{No<<0|_nG7gbf20Je*2$rxL%$}xz ztL*mY{?!Yh$hf{S;>u=7VVU=~i~W_K*PDirZ)0xx+kJo@HZC=R8;4ym%`uJJm88LT zsHmL%io}we*7F?8WamWeu`KlnldkS4K0i0rB@^u?g|*Ktt%2%qW$w=BGT^JGqlCyP zPg|1fmrOw*BV}I?);km}y+@u2EwNITVgHV{HQYk><_tc(w6}L%4P|QGNE~c$8E{ zg2c^xv$H~^XUuXMcGjkGA=@kL2W;%hG=siad;fCW>uB0NK87wh`Oqd%mc?QMLX|>xDnuSA2ZnOJmKxBhap%rZL3(7j>4bprU$E(blk^~dO5Kau!n zFzt$+LM>JzXhMnv&C*Pch-t&P5|ln{HW}(r^)SY?6XJN#`nZ3ZX5Ukw^)Nn>&lDxL z_La^cT`%-}%6QFQ-DV@@^tjVp8gKnUJDdk*-cG-bQ|#YtLcj?_Ioil@%8L+Q?(~yykws)K4^6*OIK(2xifKEz1{>| zXEy$p2cQyE0|8n;rHMHs* z&qNN$?5D;(*T{~jp_SSwk)Zv+qmK`gga}$aEz1)T88(Iqw!#9QYc%}so)9%7IdrVk zuOxQ9ILn?mQOhgT?ltGN=M_b z_c;P_Nrm1UJ$)dmfT$3IA&0#RG0MQ=-LrJ&(@>ET8s9=3tX*^}JEV`vEPWR8b0aRz z<{c1>j|FE_3FskaQQD?nrdKSxOowo_Oa|4dlps2Zl(==`qd3v)6rk(ASdetF(y7xKj#Ej$~)j z&(y&gRM7eW0=U7SNXRkOQ&NsO0Ku9__hu8o^Dredi>i}Yd37f5CQuI%u-liISgwew zOqB#ZnDpB}Y*51&BJ13uW4Zjxne6t-l{;3#C;jwo(Jy_!P^frxaELk*@jSxK>m~yB zW85xFR7R<&0J5RG7+y#b_<(6a_CTRYqr0Y8~^rtYdo@EIzB{?IjSau z_NB;#he)g6a9!WM#=O~NmmDc!H2%z0Xs2_v*QVo9g{Qqv-GQZJ4@HL;Fa6JgX%Thd zvipnLNPDkTKGTZBRaOG&*_t(R`Hh~n)y?6_v4%On9E0l82{TY;bM+xPz^$(gf8cnO zrpR4t=>_>QC}lfj=cu8Sn&!L3?ER$uX(r|!pJ~eorVerqp&)C_iSkxzjP>8g)?S<) ze4)VZ+c^#&E@2_&d6QB&`R;tb?_Jj3Dw{@~m~#r*Pzon#K}xCzBRTcAo(jW!@t(wm zo6)zQNSBImpQADu!0BXMY$u=VD*WzbKK9u<#}Y%0bN|{fulG1wWYVX9+;f)oBm|?~ zJE!Tp5VH4H;fS>=zJsO8tnCtnqw=eLVUhQiB+M#Rr}ovh*hOoJAGj!2agpl@@>h@& za>)84%$9fhO2{=wY1XtyaZq@)^K{E-dV5?GTj-uWkfnBXzg1jWllU1`hts1WnWY$^M^1Sh^+eyG&_Q?(}`wHP=FxCVY;}k%=uoDeP@p= z#KlD`it+Xz5eQw6Z1tf{`oQU(f9iCU z1k~yZugNXoFfQ6P4UJc=y@h^LWZF&h_@V1EsOe9Yl+VBTh2%QJ)b5z=v9sy>$ki8g zdgybnsI>OCuyRljhrX<6dwRD>7Ts-n&n2EhyXd8{6gz=_K_{l$v9Ddeyl8`dBfeEg z{p=WW{LQ)4CVSyIv3k~s59mjfGNmY`cpVb}&p~X;TKk*O8gn4 zQj*h^oW`%(op$`P)~U9=X7$S%7ecYWn=XVbZZiaKaJYrNQaK5iBwXgwEzJ@cWrek0 zDiHBBM@p`J6(0H+gf*t>*0_+j1umY=B|hgO|LQMnaZ=uH0+uOoltij)XFkV%(QvGJ zvEJL@-g?%2u-&{ZcdU6gX_s6~b)98X_tpwlxSB$6GsXtk1q#ar@7|JUO^fTrxM=ai zSKe#QaR$QOg@`L={)_PQR1Y?_FUaS*Q6YSdohi8I4S+{WL*>ZBP zXS&NWaEzbNCLew3K^pt-r{E#`I1y3o0kE1=wB6iVMe&DGzVF0{odSzAiV!e;D&@LP z^@1WeSC_0o^de}{W4xSGs1K(wNp)_ShwgZ{L?qxra9=XHB2qnNhZ7pBcA0$zm$SWl zVmiu`ynbyuUWEi8db`qKm@P($F{$@TvI#;Ag|5Sf?x^opMYr_e91wiTGk5gDd-`hz z0Xe`{)ZQZKg?N#2Jy81+9u7r)V^7W(f8VSwb*lTbVPiC8J21TM3cp#Na)CCsr73wH zY1CvCfCqq(3%M0&))o+?1V3DRK^L{ni~K3D09VZhp)-Qg?D+m^6HZ_wlssLuCO(-; z#NpP_D|PNTesIN3cJj3fK5ukTV1;K%eYe>UUV9E*f@C(xQk>z0M54}We~{z-Q4LT6 zd0C(93U$k+PYWI`?rqZ2QdI!2FNfMjRi23l5+Av;+C)H!d;yTnhy{H7JLwjE4YMBo zgS;Xk5I#f_pyIB3+Qz=qq-TZd4AB*`x=>nJO;iW>?lO9Mv3bZ^c*N;#$A!Frpq^5j zK_oti8ijqeCvXts+Nj+K@QeKb{l|uBOn=Hek)@%Ec%KPPJeoYFIonRp`D8G6kD(#| zTxuZBy?(7l0%7YeG#AFTSM571^!O+@ZK9XLjdN~oCeFBw{r`LS5vihAjet#K)M`dk%*iL15;JG^!huW=m4#c!?j%C}3#_ zjqf{b3hg#!H>aav)iS*er@Fww7iZG|B_30$n+ojsU7A;GjEX<~G$D-KJ3~Tpt#3#x zYcr;v^2&Iu|ICNRSYT3TXPD!E@?ZeN)$Bt6igCGrw$DHWWjDJ1EVs~m8NgSeDU5`- zWRynM^y$0cb5OHD%;~4jOrBb%K||)vbC;d6m#&R(CwwrKm-vBoWJ;6`MmWc`f8enV z#@?z5P;i{UI-my)e4KgX)}HTe%x{GbN#O%2kLGV0I|cGyaM_sSJ36I&C{w+QPpWBd zlID7)grnf;*@n`CzT9-UNV9UAtk_z$Yv@cR^n=owPQZ6EaalZ6m&_$qL zvOQpbqhAF*3J-qQU7e#$YhgAF(}kkuOa!d^%;GfN_BNPhNfP&Ng`$MCZ>wj$@|;bn zT-rVkp1dw}w1r*yEK())v9aXFs-$X2XZ^v9{IL&J_Yh3fb%I^gsevN6^}0;|E&M= zkdg`3@8b3Sd7J7`HQAm~gTcb`>Kv!4j9-$$+&sIfaKxc=6R~_jSo+pj3?`A4X^-O zTUfEt$PX)b)DU-HzCfQm&r?`o=(`yU{ieR})SZl}eJGady@|TYA=;nx{d52M(>Zg> z16%+~7HW?#_(5Uf)xS|R^~8Kt<7`)Ieo-=~0y~Za{NKpW{sTgUblJKF844ulBa5nx zWeh_nGveE9G;9d{5Kw?R_`;!8;ASsh-hoJpR#A^wvBrsMB}QL-J%O~z2zsmO+8N44 zTK-$1r~DVh2FE9Wy;-}I4!yhxpL+sgj9$NUXr5quydYvmDuz6v1lz4_ePDhRie z5lu9USf6=U|7tL;H26yS&h6dXW46~1M?ZkigS$_M=dda=3)z?j1`Cweou!i&Bn%b1 z6iOfM2v>NA?mrite*fe#UofSyrGT5Z`=s|kagg?gX*(C{;UAyJ-6vs-?ydIAvQ8Fx z=aHFzq}wfk#6xgxrc3zY`CVI8ryT9$01~nqS#QcY?&FfvApfxBUpzJ4Go_?lbA03< z-~U*m3uZjmP&vsaNgE}4ZI;FYxC^Gi>6Iwr(~Y^|yG$prz~8Ar|04BnR@Lx5l-=P3 zq@y3;io5ifobg7{DoR9q3NOcGcv(~o^9(KlFxM6I?!qwA(YwmGn;k4_(S2c%oe1~N zC$}F~ z#TxRk7F)TZ+4O+N>J+Ou|6?3f72&lR9B8+&rNVqeA>y(rz>rpigJ;@6&n(GU!eS4^Ixx0zMyfH!p!0|K3cT_7B%r8b-v=OSf z7g6t?)q9Z$iPyvS?Tn&)^+)VY#mFyw<0dh00H)J>B=purYp;w_%L2o_gSpB2dfOjW z&eNTHn{`k9kzHwi;$85VqG6B;T9sGuNfmW|=Ranh3ty+DJkL>>#cx_*Fx6MHihn2*a~oZHfgu#dYg`Gn_%nyWYLoAB}>asUwV_fPf_p5?Um1B}X2zDT-%C5GlO3Q~j@z@iB0)^^fICYLl4X z)6nks;yAN1o2CtfTR)6$d=58wlk#}sBtdD;BDs(ka)bi+^jrvo)Ak<0albY6d>&iu zgFv@-`RwI_!IxVoIK<$JKHN9|R0psFJfBhN!&Ek^0j55m7CGobyn*&c5vzb~l9 zWgDrvuk7*|HDvNjo_6C&O`EAT7jgv6DqIZj_tzgEg|d)*n7F%OBCWn!fLB{B-jbWE zD7SV=?x-q&&N1j*9_iXWaitd+B=zci#2hsd67Ib5E?bM$^18Cu8H%5PTDl~Go-Fn3 zu(yoxY3~iu;hK#;Tlv;T0EJi&zeb>Bg}0!X@AK_tAD14Xna0 z+bsQ`Om97@bTHg*DlkMpu^--)8lQDW#NPKbslmK{&=u`2(YH1pVFs~2SQxAyz51OO zH$7~uja?DeA9u%KV6QW@rl!xG45VhCXeFu^1iM@fYU0@o&*Pp%|-&J}C zmqge@XixYMyV7kFCp@IQrBHU!%io^rL%WIFC-Mg81PNd(9cP1J zgGq~vqiM{%YaJjMz&&Rb{~UdpsC66Vg0`FQy&un5Kj`obR*{@ZIBvoDy!FGmCIj3o}Hr zxarV1mZ)Oh2FXxsjvh0PRdfy4ffZz|x`HuciXNo#a%jf7nJ=rAy#8>OTP}XO?;a451|qXY0Xax-7vnq1*os@H5$$dw)m_JWxVYKbDiFPkmc6YHk~~c>BX0KK zw)+8ROaaPj_#SS8>+0qSkbV*+!VXd&pD| zX-Wk8S<`i@ngx(3O{A6fm^|@rlX&ZP`goA(7;rCkNC78}cNtpee@IAkrdACH=+;@D zi6wwl3%s+R+v!RY!JezsPIwq|GxTx$X1QPV9J(}YnO^h5;e%{I8-9B;0VE|yWMI9B_@^Cp(5Sc=n~8^D^B(aa<)5#fbir<%6X^F0WETw z?Kk)#Nb!twI@gO+BLEMQ=#eNLZM6@|iarz|n}>9-8_Ky_0Rk7)xfcKna3AGn$jfh# zq~PZ4QDNeTj6gqQq_!7d!P!JhCc9UtNza{g1&6}jzGR%c(f~mB5vUq15yHZlo-QOd zVZB!&t(358$Prl;bcU`5S}Nq(6r#M`CGe%_Ec252#JO`J-yH9~$7{$q)DJ znl{fLfIM|zN)&RG4M&M-2juWWx0bLSwQWZ`)6XHVs&RP`C-a_j+(u}j<)Sk2q|7LB zey8U>CGO)MxYv}*owMQiuB0ncM?3cnTcDp3B0iw)GWhq`JCKH_e!z!mToZ(9IZb^H zynsbp-2Kz5o>O3aP}|sAAbshxu^=NF`Xdf%h%YVSG)1s^InIp|YKAgqT}B zwchR^5><*hNjThuhxfb)Ir!Gxyxk%eIVshYJ>+@yjTI%OcBUaSvUN z4lsrRi4H$ha6KA!5kTT{r#iQmBofp7_S(9}^3<;H zW5T+(+-1nzwF{%10aIAw@xAb)*UlTg3TRVp5r)G9A|~fqQ^?1%>fuQrqVmYv!~@)F zhJW82JBw*+-O4gmiiCUAe(noAh$S6CelITZ1Yz|HtsBsfu>4H|{y{(hzZvJ~U69{g zDlZB?d(|~k^&ub1b>0SmB!=mP#CtW0Aa`sSkTV2052oNxQr1B&hE1c{X13~!y9b%6 z^)(sL7D}2cbG4moi-xV-`V|H}f;Wm(?@}2OSNTl}>^X0xdSt+`dHnW!q=GPbf6a2& z<`)7fPI*ej;3Nr6UFHbVzw1F;Hp9}~Chkc_F?tnt&s1`D5ojklac^95VYszg42NH!2oZ|n%sV$$Y2=n1`g1g&6}%qhH^O(6+a8yYuv3x= zte1UhSg!Tow=ecjd!es|MW}x=`MEsR#1oh146dssevbl(GsV*Urnd1eR0p8EYe!G% zkcb91CVbV}!tFU1KzCW9)Ku73UCk_&1wbofE-Fm-T0D5REhn{Ech4D z=mLJByfn7fW|wF=eXUa!?Ph=c9=KXn==Fo^RH9A*ff|vZaddt(U$%{NpAmm^X*TLOnW?Zox1e9}efBiZ&Bv7-^}+YgBt&c1}5*8pFZxg&k6w_hNjN z{O-%MTcpc^afW=AyBT7|4`W&o;^r|R%1yhjRSeb4eVl?H%XMhiydomq4m(zX6|d3) zm)CX>+w84Q_i0O*k5N6R1_ARuT}_1U#40Wu^Uz1E?rsE3XShL#T_oG zz27Z2ZFSqKA}ngv`yHOnq!oy@Vvk$sE4_L{cgwa)*w(nxZgd>5##YIW>W??gbE!mN z(|{c(K>j|`VXo&72h-Rs*x1YmeFwOv4Qt>iYi4a~&)$Y^Z+-m={w>G?RWDa-7wLSr zfQa5%XEpn{>AEn`2D3Rj*gg9G<-8q$B1*#XwqkIhsaTM#3fnn!7|82|?i;U6_!@*L zIVL>7tOE!6Q5W#Omeb59YVK{XYPZOo4|J6haj~=db_N$XAKMs=?7EnoZw;uNs}^l* zK3~qZ?zhfMDU&pRoLQ=z6b6_mqqw*+ax?Xg*M@D5kEb!ye0$$KeEKbtD*o(WQO>`J ze4aC?#{HzK;{MiDSOQ8CCZ6`V6l&FhR_lm!1=@r#^V@)wR6P}x>cF7Lop~;{{bzng zs@h<<&a-ywT-KV9U4Tg6uelkojWc4J2{Z32SB0NNUW#W1l} z?JaVhJuT>H^kx50sIcnobR%1SL{hZbA^v$zc@Yd3?zUhvM#wN26&buy)4sD7V<+EK z4y3P#9czV#td8@NebyVPyB+SoKl*I%{jPAHfUJj;L@iuW$B6^J2yF4nd)+5;hMBwu zJBA~k6%IHHHm^Bn_i>-K=AaVdPvPflKeF*4S0#9SwEg6S6V%kbpv#FXt7Ok`Hu%6f zL+~@=It0V`f{^I@c7H|Nd?+@FZGlwUU~OEm*rMx-Y#9e#QPh*A`koA#pDT6xHf1^X z=Td$eaf!NhC9dvsE|NyvKNXmDQFYY}0DT6GT_7`k6XRC9*5V(*<{1m%RJTz9%}OTn z#9{v4>5pEz}U(N#S>uHd0WyYKZ9?ceNQRnonbacFce@stuaKzYV4` z*AT01^z5;C+cr)M7o6<9>}fGlf;Pl=oX`Z%u}OZlXsQ`XMGoF&f+OKB1GjUN7rKLQ zDkoNNm-H})GjLf5riD2KoRw_7H#_q?NQqu)3P4Ky?&HqhfouzWs?F4Q&KYKU9X^>K zTB=F+Do5zVHE<^YTCPx%$i7Jcv~I^F)Asz!+Y4urfXn2dW?oUVzwG@*i#YJ42`8jv z*s6hi`Y{`DIFD?@K}L*hc`qG7a{A`i9)2Tv zlW-Mnwg|pr`(Af_#oxbYV_^`aAtn0&O{=A=aG;FJMq?Y(ZkFE%IJ>gCR_|qrHN0Wz|*O_t0TyA{P-q@@d*WaV&cozB0j7ZF#6BGN1h@uJpFUcD!2VgdmgQ zKvN`_-siloYh@D_;RgdgKxqLh=eA}*_TZ2~{<0{sv)f{KJ1j^8|E&1gLFZHxC2rq-QK}JIqBj(*q`$K&m@dLSfLpw)-A~xeKe* zp0bERt(Oqwg+7MH+dtLg2Xmzzpzkh*5~Uolwbs|=Bb;Tc3yuMaprX;BPU25N!xcI& zS~X_z4I4BjsruOw-~u;Nyq6N6kW1JDnFVF0_kvyHP5>h5~zUlwgN7Cq@6f? zVa@>s3NCFS^vAD`%Z|ouk!=@?22Y?cPFKrh(iYcT1Au`qIWZl7wmO&h2vFwOP3z+f z7eVB=sw9EJyXbH%R;LB@z(m zA;9dpZ82HLyovV$dIabcOGb5D zV;t_%^OCpKGO{Fu+5HckGZ*LIDuP`KS0zy<6UyL*8!@7k&&-FF7TbXEO^!R+8w<*YcC?$A4k)@qGn4MHd{pk^}U!f_^4-|TwQ zWve(%gb{#(Dm;-L6;7spjS9K3>|3(^#L+-DwKam-Uff+8*NmSN|JEK`Xvef{iT%ml zI_B{c-hOjmIh?jjIn6$zX2D7(#nvX}^B-Che}#Uy6%DexAw z7|Ay)8a+Nj0)^!LvIA+35E;xuhJF>%T)t&WH;0-6J<*IdDvzY<{MUUTk;2EC>bgxl zwpAY@iD|+Rr>yw^wi)Y^TJvpJ#-~cOZKF@P#C9P{YA+|%oeQYGcl$D%wTZX%F+DF` zGIc+P*(7AMY9H#Ob6|>!riGysGkyXg7rBwpq+g3uP^ByBn?bA%UtXqHJ&b3E&B>1B z)m>LBt~2+_7S(;QqoJZ!L)midF0U9tctjugHwgq6ICSM&f7_2u39x29(Dp}Ut5~{Z1)~n=wyTdnL+B`$qcfZ zlc6()kzK(~9pnjIR@>K#R}zmQYG)s5^{of$ zPR-x_sC3x-7#5Am(q_Alxhu~IWP^~G!JX|dhUCVk@MQf@Gh5X40y^BF7jjG(KnzF9Ax}4)uewxbfXl`@y;L>E|*ZbTh zF)E%ZY%>~R6Qig7m$?F+Y-MM^8x!ys3s=Y+2H%r1eC@&QRpt5sEaV!II@>P4 zQAhd`1%c9FVcaY>7MHe%Z~0(zT|k_~8JMd9$_wjpXNH`ho8!IH_I>*B9g@6|hEE07 zTN=hL%s_KAQEQ)r8y6LdZddQX+Xa+m_^6z#s2auk^LrK)O*p2bPA+%5xA$n5UdS)H zk34|(306;R3o6{lNl<%NS!b?cn|)Ytc<|1!nrE!p&!Q>Wadd4P_Q>%Sq$R3)8ECO% zkQs9_(Ob+OhZD)V)Wy9>6$QZw@*W@pcpK+gc8?)VS-j=7)l|x7^viqoq&R%TY+fz# z`Rw6Yu1DL4t^usdQ?bdv(9(oL-?syWcW#yu<6GJ+w(_{tL@nbtw#{CN|}1)O~TfdD^o3& z@C1FYUMdfPkH$%%6%E{aq=wNjD4;qVTK8&h@0=nmx`AZ14yY38&xNmWG(qKEx)_@6 z*M~!=pSv%HOJ0&2dtPFH)`E3z?DKebDV30ttnaTu_&+Kw?Kcp}t(Low073u{&#HLBU?7#aJCji!nQOx!yvKsD@-|7vOxePXz=pSyW_GJjj5val{kqd)y7ZrMv~ z$2PkJ^b5e3*u1@4pk8z>(rIH{RegMGs=9t*5*Me(q8|7@<{tFgMZE#4aaG-tg(7_6FuPUrb4!08cXR&5dt_TI_3Kx8v%Tv zcw?{MGA==5f(z6aSs_HU7njEfsW2scdlO}+o{U$m7T@D_TV1kMWUYA6GUj@SGdNk7{i)n-MNM&3gCt#_ZH0Fpn0&6y zo8<;F`%=+p$-3>{%*t~Ix>b;Z-pn7;Edb6oS*bbv70?$DZu8575BSDSC$8gp`NvD( zZMaCjuB6*~-aJcWc5y*&z5QJWskV)nbpN<(CwVK=%-UR2M&^<=kA7JrY6>@RGh96j z7_~s>xPCK@w1`4V@V8Gk$^iAA-bW`O;0sSSuB(^TU*1z;P%kv~BcS+9Sr-%t5)A_+ zbJN{$Rp@&HQnulqVW2usT-r^(i56WqUtlq2%~GSoz8<0p=au;z=9pI!x{hRz+55P! zxVAS>x-a+N5n(?AjYJ;(S}IK~4GKJQ3G)oz#j~5lgDa)pgtZ`>ySmKS1)8!J-z=-( zXM*vRvALFXMk5}c$Z0WOHf{Z@! zX*Z3luKxX({pDXjGl*R3sj(|(`-9^l=>-bha~2?_a@a&#zn9FX-_pFFg~@ZK>~b`K z!a@GW@BH^aQZs;Za|z#Y>EHj7IuesX9V~>%BjKqOmES*2{?;cW?+b1E|Mlm#>w2>E z+8-G*{5WIv{Z*l80Psq9!Ywh)}EizEzAm-A(v?z$ADJzW8x&8EiJA43Qn#Y168I zfg@gLH_yOaGc_q3Z-womci73_k>OW%_b)^9y*Brik%%1k$7Q5o518Er3#0-_zVUu? zH1GI`0FcIwd&(cS{6UcGPV3pfHgT8&8lrsal&Np!X}8}WH}QA8#NWo`ZKWp^f22M; zVU)b<)7>mj=%#bqQ)MnT`QT0f|Hu$`!vOWe3y*ru|5$Wn=o1qY#R*S8UORXEbgH~o zd5>&Lk^=i}z9*CtRe?I6*jyX`MK`Pz|1qGPJcFYDiy869B>eH4jNSpt32DP#q|p$e z9;4JZfTW2eQgFC<4R-eVV-P9D6_93PC(Hi*r;C_lZ^G;QI5|kYn?cwHA|2KKwL~rN z`CNZz9PVloz*xl~-IIy;9G5E5dwUvQ#ZfYP8SxQ5tqdOiG4G@SMRh_nc0|S89RgpU zX!7#4Iq=!1g+RwEXvPud#_xa)FLdn98CYA-mRk&o!9Z@Gv@K*V?VC9 zEyYIH2}C`geYx`G3DIAUf!~KNtsi}cQ}uH?j$FI9KYf_&*dF0?6$0ny=o~V!POm}N zj;eT$wdHSNq4W&D9Rkz@=%BO>GR897Lu}mnRj6y>otFAu3F7VWAxQhqGG7sDI)z0lhpyb;O9 zzO%QJ+HKVpwLqg%75R)=<&b0Q4=T`~=kQJmn8S{G8@6=gj+cVMSI zu85RX_E?atK+3k__bn9I08A;T=YN1HMT@Wjn9>N>iW)0gg8Jk5>U{O0%|f6LkPn0C zN#YOvhE{kS=GoY7HQP8;1Ox6uw&}p)34;oNosCs7YgZjl#Zxn=2Z`ul5=CV%=zZiT z{5`7!g{cpOIN1Qn*RE$E zw$JUfEF#OS;-XjF|Z+6FT8v>8308+@(^$v0}5@$v9B(Gfj&lB{o1>$@eaCl;` z3}xO5V;I}ZEG_cQ%WOx}#wj_6w7I2sLd7#ks{bGFkLY^+6F0WC&V(Ljh2&BRoCK6-yK-YsT`OG`R6Ypx*$L?%`CpHY!AlViF>KjRvmRWh;PMBRubZp<&fY=t9|P4zkSh|5T6+o z2yyZ|eXVmROj3ursHxcxKyizN1{A9$aymivVh!-$iKk z%=9vH#g|(*UaTvIc>%UBypg1V^zyA6YP*x%>(l%!%J4^5nb$rMH6?@KkwuxMT0U5k zS!~pHbCM`>HuQ%fBB`g%?ziqs|TLXpE>*Ew8wbK_pP! zc*ab}e3Mdjk+)S|h--NccLqmof92Lqm2{ga@o*14<^JSGGq@%2nxC5SHxu-u8hoIp+QPh2MGLM-~X1GBxKZc2B$RM~R;W9pz&KU=f3B zpwo|S-0xb1BAuuQ+3ExRe)hqCzVW*Q`s-=)HJp)b&vI-@y>8KR(Gi8DMY zZoqjyLp&Y_M1wXIi0Q|>`>!8$Gee{!;x0j{-~N*ZQy0ri+W+1A_|xa#2?eCZj&fGh z%Rl+mZ$USM1Sd&|iAhe!_RoTq9~U+Qe%SRX&pVp@s80bXU}h;Nte)@9$B+Mxx)Kw} zTv8^qtH(?Lzc7j??+--m@3!%OF`~S>ZvduN&aI&A2f#h5wIFGUk4LIE zkN%Vu^+?+QSl9!_Y)k6^LMlh#9mNkZ`<=G)zfG!01n!kY5W$a3h6#5Nsw4oV>;LxP zZ$^XpWgu$JQule*Kl!FFt=7ZC3GYeX-$97}Iyhe4#Oz>TN``15m zng2Af)Hl$vuzT6TAd&`M4Eo7^CqiA0iUw^W`+jcVfwTb+r94GrQ2SXU6oLzmtBKRp zqMv)s3tqnfvzPRuYW@$6`tL7Vu+TuXv;0U{JM^dK_5%8YE8xLPxvD?%^Z&G~|MkaT zS!ED}N7bJKwtt$qzy9$lH7Jb0Q~b#VgoeSU?RlZ6d*<9y@Mjh;7>y4i;K5(glz;X# zHL3#VP(18>!sSQ4-VYY8UC+x8eqwi`ru)i8@Zd8~>FA$) zE^Gqa5Rk(&lZ~Id$V8|wfd@Zbh-UcN=l=h&5$RJV5>p$ro6JWT_Bt79x&iRA2k_@I z2m3*7RYH}O!h?&KbPPe0C6Z{qyq|5nV~0b;Yar7*5YG+)c~9$S7Q?wQ9OTIACM3M! zWWC^lRUZ)MbPFEg1+DSr-u%G={q7k;y@vq+)^l8S)^M%(>K!y~Sx-m=rm54~;0TlM zdRH6(Ly}Bd#$E)#ogQ>2&3UY*Q|o}9&f_vr_kE;uw=Avd=zsef5eLln zwD>!u9H5}ic(NL?dRUB3pBc@`J~*FYnV?&rvO)`38bbhP!#Y^_=I2gp>REK7{(Yrz zQTADXSxb|bK#C8?DQ?*9jKeZ97st7vMzYQ@QwPTd8oB>|D2Kg82S~ZcgE0e4e;gas zIU+krnZHD0dx2`o+L6O`$LG`P!UoMEd%gUK_~SjdjgYB8_Lt%SMd^eN0+{W#m$|6W zFm@T6PbJ*5;t0Pt`(BGA0LxY2jDS5aPUo~3xt;#@G~)C|?e+zP8aPCek+TjXC=Z zg+7DFiHbgm-qs4l@bNeUiDwTGm%?9zq(~en3V47|&c(xXQ4D+W78njn5!wGt1O95F zu!+pUp>6S?rgq_cqMnfFUSLJ&f;a(#H%5ol6{(1;SBW28c|aW)C#uwaxo@a`Z=|ac zIs?l|F%h}!?M+XaaogKF@U@YmNZDf2T~?;AqfMjM5Qs@EJU&Hkub|Ha>cXe0;X$V% zj8u&YtpLcy<@JJk6K6N|ZcVSKsMbTBHuUNtP#rg=jm}|zc-6or9DQF*GH@~UwBrTA zhCkJf`Z-y_hxRM(E4}qpI2pFJMMT}W`#$o0%z-R&NnPTWFF^kTJX;+)3xGK5P z;1?9M8#H~-X|5!KX(_EORrAJ(3UOZ>Tq-_XXba7m>HzL-(-jeP#FO}B2^n%s&-e#mw(_S`5p5*jMf$M>BC%0iA(5^Mk8702E ziKg#)grDkt`H!Xgf3A7zJj|$jmf&oXvbut3=}X`oE7Yy;RU4|ZVpJ(m?|D&RH@O=_{gxEaOE9u(SAJp{Sr{l&f z-CqvdW%txO84JeTE)y3Iy2eLj7BS(b=O4fJ4i60@mRyw-#` zy&ym9HLjX$gR$!0%T1^jLzY0&XL#>)Z#ZwZ?r=lLx&bXACsps00CGPP=#!(JI6l&{ zJYkpN!8E$7SB|;pCEITpMXxl7$s(zqnvh@)3gi$F5@xLrA<`~diwtx~>v(IQJ1H$2 z_XDV25>R;Ype)skp>p;ba}hEuY=B>Q+2U2B4j6n?MQb%n5$uNbWW_|o*-7Fu(9v{6 z-|C|gP7`B?fJs06vJ}KWRb^!_+H|my>Nt4F;QO*d_8lEOj5tEi^C9AQTE zwrv#E@h%7JkeVb+a2|`Oqh2;p`AmyWv)AyR1%UTd_vjPKUnpAQB){+!t>kk?5X=3O zASN>AUBHEbmRpP!8v~wKW4l^SsyLdSzvio_oPeoBr^o}p384-P#dH|?qG>Yn!0mMA zDNF6*hx@}oyUhtiOt;!XWhbt~nBqH=NXe4&*7_|IjI_FU{OOh{+)uaOL|UH$PF^C= z>nA(FOc_n5fO3FTSLzp;0jGQS?oG_7o(kH|8B|s8aq-yBc`8wq5>;}~7^qv76lRr< z+JgcZ`_1vvCka%mTn#oDol?f%yK62JDSBv0cZSCuUa=9*b;?(&yavx9vEh$?a(lFK zX7fFzz>C$l$V@CkN)CTQs$T06Yvha5Ftvd7*N*3tdTt%*nR#Y3^;SKWZYSyNLmjhSyC=Mbo9o%xltCMUVy8p7K_@|3w%hbKIIHeGMt8wqcf2Aa zb=n=eRk^ao`Wiv0r@J$=J3(4PJw+2X4K60x?Y1TnDz{KdjT-9eiSm`&1r(FF_H$sD zY{0dT_M0`Zw61nQ7eUi&&i3Z1+^*#!7QTzXeR+<2NZ$UUImu4?Q!B=r^ji>$fNU5v zp1XSiWKRN6uqDqvPz5% zM}iLb^bY!k9KQEL$bI|zzDfwF4lT}9Jk8UpEHfJ|j9=?d*Y!J9H5mj_a4Yw(h5-N& z9)!D%qD8^00`rtI6KcQhvM8x6x)NK@Hnz$p>}R=cpU(+ID>vCKb!J2 z9)scy0x@Ci)L}O}-f|d_LRxhS)Oq6M zarPhdreR~L=L3=px*qwE3X8GHs`|*L?!?zQ$v7AZY{vQa%1zJGANtDr;w)`7PL7{V z1~uq@a3DW^0Vb^j#o^0U&~hurCr^2{U61H}S2qT_mH=%tBcS523HRrzf@aiaLlW5l z@jF^*H-3^1eYz&5SFwu4?zH(rqsMurl1;Zx=d(oi2|(%TP*r)m$iy(2_42M*PEk!y zsFvt)I>fGJkCn`>3V_qflIT@_#w!XSwX1Mz-rBUU6tA=5pc%{uHfFJ~ju=e=tFCxx z5ZlhZHUE>C%;+blvuYX*ZsP-!*FOlHr28m#Cps=h+ds*a^e~u>RX;)S4xVh+`vUTL zC4oF*1UfU(CdYXEsp%YREsQbNfFFslw;F`#ax30?=p zL*)o4w05oCgY3Cds*20(o_7~u*ewb%f?`tZ1P(Kz+5nGKdr2Y8>rxD9dyUs=Wy@%y ztxIQ_2YdNbpG)wn6ltjqWr&yK2}3_-*;jV59UqJhO&>qgeXNo#OFERRbkTk(I<_7W z094dvu<_f>X8k}py4^_UtK7B=r*SxaB)2yaPY)V#Q1gNlTQ;PP_g<(n1ts_F^b}_3 z8dkkK#zvbfxG3$r7bY!SlQ`OCL=(tDB$97MH89%(p>HB|hSbW3E;L@Ve0e;i;<~05 zjrQ4AH9MRMlb@l+Zo1}jc)=^UMp_0RCQa8i+|^QY-l*Jmo)FUPiKUaHw#c_0rix`@ zG%D-(Z4H64F$nHs(r-A! z2JNKqsDuWAv74G9fZz-#RL_Pcg%Njal~h1~~tIAB)&s9xl?JN>MENj85*j_^i!+Qz9Kl z?dx_u=C-$4Pl0B+AAXgi~kw;R*Q5J^Zt>P5DUgJZ#GTU@ z$2ZjO?Oe8oo-_Qw;*@dXGA0v{<&E79eX$shHEn;#p*H*3mYBL{{!!9IJ+ujT@WnZ@ z)Nq9H>%%^p15x3_ai8t?=kJK!Ya>U`xWB!d!j6!rahlQqX&l`mw;H6s5u^O0F{|d2X=A1=g`wZsd;QC5$%kR1cvPF80q&=%f0sRmBP*pW+e(8epu}O^jV|yIDdYIz1l~I3aogs2Q}!*3BaPx05W8dg8v0zBDxGcR zUSukIk7^97et0HY0*-kQo@LM>Xzdo$Xu4&fw~TI*qS;}bp;P)?dDXmXHqg9F`WnA5s+gdveMW)` zrelpT8P=suj5}0qO-xDIA%y@V*b4_(k~$Gt%t!fRauZ_2H-Ve((@k~$RdqF+C2ap- z%>Se%zSCU0$=%Iyp_TJsW9x z0^A;ltyFFV|9P8N@hV~l$rj70vV1aM%=l$Q^mtSop;ca=1 zcV2l{3}zG#VG$5rz%S@^Uv{*2GS z2lGa4P_g6HQ*s+TdoL$F{alF?r7Jn!Xwd;mSqr4KM(Ku(@&52J zncz{#P2Q(dJl&X~^c`e~OB!028S)<;+{U% z4MI)uk9a5YS$%Nejnv=`r>pX@k^>|8O-<*fZkf^LBi@1&$Hvq4@XYi?UpcHDI8EXE z3y3chq|~%(x58e5$R6#yPl}~Ks0(xy7P0S3xh@uWC-Gt%`5R9^8Ks=i;&($ud}uUX z-SOpc61ASOe){#B-MOYucCOM$)P4kq2REUBZRqTS+<4H4#EC+2onF~Lp6|%zuwk&I z7Z+m$4^zpH;A19%I`S(8k8Q5DzL=M5as)ZI^`Q^@!N(ef)I=m7D2tl+`{le%SkE?| z(NSRi!@eJMAXz zef*>?m2V2L(Y*{c++3$zs&NF=u4Hw_o20Cj1+B}J271fYJFFR<9hAgQN9$atlP?pd zG=GJ!k#5M*FxYgywcX~sz2RTShsDv*yV#*$+bf8l`F!4Y3pP^w-BvBs8knH>+m<(y z&Ef-aSsY28xo*&>6+sae@Yj3^+%Ef1_7Z3DY)RZKFsKd|@>U-%gN`=!Yo_ObXE#@c zMb*%TU~TxeTYQ*-;Bo=x0t81F7)d0-HbJ)?RuX5{S2z6*n7573XV|{JV zaCD`V7j#{C|KuSoJS<9T2)EyI@NKx+R8@3!tp~XcKk;Ht`UjX@7c=)S!5PF_5+N`9 zbg8NMSVz}DodW-g9;{f3DC?nbO*`3yWt>5c*HpL!iG!1f$q2FS(U8d}d znUSX_GhaTEs94e-KDSO`slZ0cjzFb?AFUB5mlO0@7a@W=8}lxhyJ-Zed!KAyEwWxl z$$4v04O*;)(Km(X(d)>%7^PF?M5!sgKwP(`pmoIgt!G>N1v$6$Bq6t$DPKNshXX~3 z@uxSM+v~Wx9+EVuN>Mb#7M4EmC0i;jzA8kvCMhbElXNX5{DEC!`{_=V3Yw3e+3Z<^Lrc6? zwq-UB5&l-@epSbI(MgV)enrMWJV$3(AmtGNGTOKWx4%tOKA6att9z%1rpmChf6Mj2 zwc4fk5oASmw9g%R61S3i9*VoEmL_Scl+7Qko|S>;vQ84pB&}>aVH^vBl|s;Pc+sltBP`u1Wf3*Ue*MW%9-@&)XIhr){v zl_i0EbMorLQp?2n7L-NwTlIcdH3rT=Lz2%W*;H|Q1H|v^cH7CTS`w+Ys?>|Fdv&c> zpd3o_LH^0Q@V#NPEP^LU@k=Hy8=!T`Kw^ck-w@vbhnUzXs>3X^$|o6{U+#J=>C+Am z6fo{&5<4=Oe|3y5GgctPJ;T!ljeir|PxotH#gK8z-#ibyWm9Vy|1g&Q4;Acxc-kVO zM2gws2e3TQeyszKoNMraE`OH2JiSLS2-s4;=-#9#dIfolhi^Afw{z&j@VcK76cg>y zwpw!%<@l|Q`mO+9d1!*5SJil@%6=&OI*DJkS)`Cy&S83bqgXkIxn5zGVe2JQ>xAfM z1D^nUwd#CG+BD1vWh1!NsTn*o%D8A#DyH_Hv;XY)dg`_A)#doI>Xar{#DPM#<9jC=Rt%}_BC zjTaRc}91PPgx~`kb11P<3D}CR`13p0QG#6>K=EL0w3@5f?}~_69RWwXfZt z!`IB{>;k>I!rY8h^Z1BRJYqg-HZ94$gJ&?{;IEZkfK=gk*(s#ComOq2#3Q#}-ht2a@9M8~f=0w1|@6?nV$t*;Ri zdy&oy!Q62BJo)6wLo7??F+WqWYi3Vubsv;at5CFgoS%lvNu39f<1|>q`L-FJIVKnr zdFCY-AVIj19aw$U8X7k5S~5@Jw(P)3;wsQ68DUrpEPlCL>`*N|uP;f!Fg;GJqY+d;al$RE_ z_D6eqts1t58v(v@6QN9V)mSxORjQs^ICDue8G*?yp)FiNrABhp7thW*X%1QHyiWS= zaFh3WsoNE|_DMqs!HgZk`z7X~i{^&=i4=0q>~1+9gPJt%yWzb@nTpPR{2<0vrJQwL z3bVnvPVI^`Q0iI$1_h?qF_tCnA6UIG1$YElc)PndM8t$pNd%X?FBXRL*_RW^C&Dr&G;>mA?r0Ng85 zb0pvRo8SS6k&)gVS5{7KzcvgFZFljh>oYMy4XcP9sxfI&sH-x?fge6y@sopMyxx1B z51t8CpuMz*D|YFPer$KMSY5hGGgB${u)0ixe)gBzxKn4vH03Pm?Ld9})7`D=@^6M7 z`@RnI@5PHht|X7qwleNDh$;Jr@&z|so4mT*6XaCyaW3j{2+RO;5H_aV+peb?FQ_M} zKiSU$B-y*$3au3PuI%o1)xW}g!|-Jn9IlR{pklArDOtU)#+2WRpSKJYNY!<)v zEfopFI>*o#`4e)%lZ)hUCz}cQJ$wUh%#qcdr{y@$Vrxa6d`JG`eK$>{yuaIhLXZ!i zusEoEq$w|hx)Xrr@5_v+g4E8?LB%xx^OEZ)WL$zX?urLc7m}xp*s3iK0rcPkbW7Fa zx>u<}gKexTzZ^H4oa8uyL(+{~IvJ7)e+I%7=`D}1iM(?vvzqAC5Eh(h*Smm92)4P+;;?~rE zJZXxSAnJD1Zk||PPnnuLLHx`O;|ewke5C5LhJG*Yjhmj5iK6@s<9QVThP$tJ+lK?N z1(=8GqQ24eH@fkUdFA0nthcNB18N-1vum%<#&ysqVDs_j)KLsxwbGZjd9Oh>FVSZWR~o!ZJ4F0AjlC{G+Cr+-jv-l_lxaj@qP?K#YTE2mo0ktUk|< z7CPUyfGpmZJd#lz%`FKT9`C>4`0x_lt3c|ZQD8uhu&ej00 zv{3Nts-WhuPm8_$0JRjb)?dL+Hi=$lG6lpZf9D7;<)kCC$Oy#Ely3nKHh zI9*1S1X&vzZMQT+MZ@mKoE`O76)=Od1IzhlxZ?mJ#XaSB+bdc2Pk8Tiu;)TnWC@yHd`sCt4**T?;}ysB}d$74i*fxvp(Ifhq+L zvld6sz_U^Redg-vIdl#h9}bhV2woNZK|Zb62oDSnfv=#6*HixkA%k+$-unP<%Q=+O zXNT4Q&hX-q@qv+Krl(8^K~VvpyfCc0gR9H7ws;x#<^AEd0^_|o<@oy`W4+DCN+6$K-zi$II3<;YHbzx2=WJ|rB}bBZW6hHLG*_E=?8jfdaZXm zs$sexp+?o6`$^6?wo&sI531?ejztOaGx<&&iDr7&%SbE^rvr}Pdsdi~WnO#6Y}>J=RoZ z)%tMj$*3KBi7v5Jm67~p?Du$EjI*G-rP=h?n?)(bAV=2vHaolS7?24|Menp+GIina zmOppxcN^Cu_io6d;(OfFprN5B;2(WmIvwHaf&eALhTZi`(@NbAmT?N0QJ6Xbo~jPF zx(>A6zMPJtI>tPQ{(3@gTOYP>~}O@ zA`v(sUo&Aj9e3mAi=}9IH$L~<1D|`%R*UTebQHaI6J^9_AE&}!k!7_p;;7;=16w!+ zB%0hEL3e=R)R3gFb3V_PgSq``n|!c_un1plFyfk2T(jXXP#1hYolcp4s%+c(-j}ZM zVJs$Z(V1aMp&sm0BHrSmkz0E@zYgIc5AcK6|f%%vnB_ zB%L&i-TeAW2wQ}qyXZA+q`*k6vT@HFCNhc#KoF{wp5f@{j?H=6L&r zW?gDBf>Ja8{-@}#n{Td$^jr~X4ik-}6ZN{TC>gilW*v_RnpB=|qjdsAf#>;A8PuHZNjuB`JD$N*p z1ONQ7Hb}sd2O+s3L!lxRl9c z8{9$cy_?@Dn16f&4WIjX!Xy$t4|EuChgI7~a_4*iri2V+P<4ZTM{vcJWIo-bTLCAS zlEGxj*6k3?dDzhmfNP=H8VVM-LCDu?7G#2<;SJf2cmQ@*wY67JRPV0T+!L#xeL%|a zqS#^Wi#sghuEMm&A#Jb(k>+PB6L=kGk)c+Rxe3h01ax(l$B;Jf_z)2JjVaO0f_B*h z;L^LXs9tWegpHX>flQ@Uxgr+lI z7ZP^f)j-|Yz9WSf9>AK`UY7OZAFSDDYWLP=-lyHZlkVAj?jpYOoJPOErRU|z+R6;W znstF{o+Y1CL%Un-@cZgn_c6EG0VtR8qUwd!>Ds+%XN%-9b@ih^4C_W6+}?|V&d1)iFfyXw6>^u z*tw~K4GxP6oJTaXJRiA9shN!x2P-KWsR!|W*k4c-3rB#0>PrL!4y0-$&vRIFKv}$P z*Z#D6?P><@H)@%!9KaA>-s>CUQ^Ue{8KNIoj%Ve3)8&Vs*xg1Idc>~EW#e8<^&xkj z88B7m*KZ2Cyy1QMHB2z(BpV>`S-$Reu{Lo5D$4UN&O5b!`bW|}mrUw=wczJpTAv>} zR!=#xaoJAr62Hr%YPf|ooq?QLfn>GSeKUP%;mIz{8h+_$rNn@)qA7+saY`QkAiW%E zrVD2!M>dZNEoB={5-;YBo$oFQ*HK;2bLy2(X4$PCAy((3b>!)C{4!_Qt2UJ{C|zF? zB2!Xf4IfPG-qD`nwo6K)_>PF%S*X*n2bzG&$wr`TaH8K4?|tm{$>$P&r6ZR^>n0_iL%&{9hFf zPNC`RV~~PzB>il}<*jy2l8Ez|W8LY!6U4^Q}FSC)i-4izqIxJyHTG@o_%2|WOL_=yiQQuf?fs*7~ zLGnS??zg=u$Z1+JNV?)$4-?ODR$$5*OP1U|gT!C6r&QKF=jnoSaxdy12`F?n!puY>M7ykj5u^X#Dlc1={xd5#T( z;9^V6vdgdkI)S^n7qg}=>V=YMnAWVfUsDjyU9SV;qfPN`*B(I8oED$d_Ymw^Wv$2! zRd>tfYoXF~5UnZGSbyk@S!jNT1-bTlTQT&-lrzvg)Hh$kznBnV_hB}4EQP(7-o(0o zix$;%+_n6gQ^B4b_sn<~f&O_4uifJ7`dlOs*~nK5W75LijwlTG7S_ZFiXMx`gPsUZ zG`G!W_574`rgS)HoEYr%K_x)lmA3k6hDHzTF$ZZ9d#Q{nFkB z+9-=4pK*mvIkz{Nu1xbliO@e74PIWYpBmB7xBm1-O6Dm$bQ|h^Xh)c7Gpnr=qvaMG zsJzlK2n}?ZhB(E|EUpk(FQ{dAjBlRi`!Ad91uN=ax#OUlGPI%Qr8~AKb z9mG?LPxx1oF0J{|^{rD5o8@#z)CJP-2Hw(bffs3$K*bFg_cZ&Q9b*_Su7GK?@?4QW z&%diX@46gMY^B~;#g+BV*N`GVUy{PUj?Der*8rCBL2_vcEA^a0zlODe1?ls3QN)v| zU?-qInI4gomh=Gfy6VTL7PE~-ph0{h{+!NgQObOgx5Pot0`PvTVbXPPIde_I?3lv+6fkIc8CHX9gcTdM8r&_ixhw2-=9?A)%J^PT;YBH9U4mzsx*4dYq{s_%w zJ|~!OXPtJD7O}|;a0YFhicwB@!MDxt$l=?^(9^{dExvX#mf$sE>tK!5+S7rsq(I_< zX?^__Ew4}#{pnlq=N7}Mr`sC{bc)K5SePPXKC4_yFd2+C^O}WluEs2AU%PU`G7?(n zdPHecMJ^>ncSdYV=3H7;9Z{Ae_;n6mCA@DB9e{CP(@1}~Ciy5ZCwX08)rmgX`t95$ zOzgbezB09f8@;RT;Y1~xmzzd%70e?~!e}D(ay@EQa&Wh75hUa8bDs^Z0&)m>3vavT zNQN>_ugXcwr%`K{(A#bVGS=0(Kef?Yv`XY+wraMyI(2r>=}z{6VGxJ`FGSGN*XK`? zI{=L#+(J?S_+}Km&N9Ld^5!euji_}DjRH9%OQF+E8FD7xSS?&eomO?5Wf z5INE`-g{P}QK0}sth!~{Kgu>KYOSSF2%It^?!U4GIFogPMgJI z*xq=Y72Kt58*)!uvh4Z7jp{}rBD-?XB7DYSHH-@b@pUKl&SGGC|ANY4_cpx5w!HCp z*#fjkoBTqNzHuMq5qMeCs*Nxi8BCS*4H(r6!-}6Vm8<88sfrDaZwnpK4BzUq2-P$!HM0{XKl3w`IRYrdX8Bp z65?xz(5*>h;MS)i=WP?V-ZCTnUiX7hyMyDQ6zHUKsP@RJ0O?&T)_E0jDLuhtjm1#A!@iV%$*QL3C{Q}h) z0e3+90KKH%z_V=Xo-*UE$;N56nN246_EhZXS*E1Q)?rS)!Q7)u&f;7QC{56HU;rCw z*My2#V}CeJ$>rK`JNhzDlvt6eS~Xk!j28m4*_^Cw+wO`3SURH(fg39!Pp_IJdf&GF z`o$2sU7=Gu6wLA(JAd`y{KNJ0g?ts5$8pyXsd_T-+ep>lql2bej$T_+&^j*F0(IW8 zsfa{;Y9EO8y8os&S_Gg}`%~CKb9>C8kv+0U^6$Mlh?DZ%a!pe)O#B3{$lea?LSKKR zdMJ(js2t_qSVwW=cD;D=ll2eX)=IAB^>DzkdkU2BTTWSt#`&CQLHJc`-hixCH2=li%Rcp?kGIugKmjQn{ zI$9Y`)Hy5ao_zv-84q*z@`p+Po3-r5PkNZT%ok76kD>>ZJ!;jSZh2_9E^M{-7CnPB zVZXvb4P{+afF^0Meg22N#+KU5B$udh1wA4~wp1W~O<9y7(HA(H4&u7k{~*(f>c!l4 z?n*tK!da)Vj&V^>A;tlmrrZrBY`@Ze57c+rOY`BL9=B4ZJOJ&*ZN-uq>z5A3^i3|( zpJLts?OVFj#r)$2GS4@(hTa*9WxAp0EnZ1PJm=rIte;%oQfXb^1nsnkLF$P@y&<0> zTi_#sN_j7&_uJ%ZzC<+0VAtJhgHxRSEwt*lB;6t@nsF=Gm&NfwPUX6N zJ(xkKrMmrKDZRzWA1r{8Xx_-V?nt&$bad=HA|e_i`mS4Q%b*2$6oB2@X>;6ov{=`q%4XJ3=DPO)L;sF&-&^X{@o{)0-m}av6D?IU@DReXT*-swGi>Gu4E&Vp)L>OMXOMUk*UJ@{9JTcFY7j#WQ5mI?w_H+3; z+)@jbv&!&03n4&!XWkjbTSR@6tqmpDH_}Y&@2fI$-a@bW{3%#_S_u@9G+v;j@P7sV zagh)W->R4~-{B(w%}4c81!w;+)q`soM1eqaY|WqXSxKezskjPgP~xz0{~{U&PGd9Z zR09`PFHoUmdTnYG3~4|XDu<|d#3z@M{IzK0|CEpX_FrDFE)y}R zw$m5T{u;Ds{^jAY^Ns(MuKh>C_^(+#)c=eIif~Eq(~tZQYx+Mw8^d(>=67r4{`@=t zeNNF)tJ^>^U+nMxr@y9#(0~!Q$ork@ivRpce|}vICa^f0(^P-1lpBoGm9!4~pZ$eb zu%CbuT2IkDf`5PE@4d^P|BhNDa^?Gz^XC`(x7WS$4pc9p`6yHT)h+q^aT4*Q?fcnZ zC_;^*8eY7V#rNNr<$r#*=LNZxi+}SP-~Fv3D5BvdJZZ z;{6h}{<9B)A#o=7w<-DVyZmKh|JiWg8K-|X+@Fq{|3@~Qh!XZ72Cxw>WB%+hbmcYJ ztWEd9O~`vik>O9!-2bv=spB!ZtfwQo{Sj3BVo9e&vOm2ETTldvH#C(${a_>b)u8U> zXAdTk`=}Fb;W6{iKIq9R;+d_`^0QML)+4{hO5#{JoOnFIE~n#%p3CfQ)nfV=j7 z$S^=n|J*x%1tW9v&lLW3)c%>mA1ZLn-)UViTpOc58nnsDP>KqwKAtvfSRaQChk~ zN>C9Hkxpqrx>F&-Kq*Fq=ySqE2Q%btKyWvdMT6>?fzP-OOe&-MWa182w=6vS7 z@9Vze@2A4})ax;m68|qVzW?#6h1bC22FJxak3V3A$JLPKc};wPhsuG6CbN6?xzZ3z zq0*3%pi-qYG%DloyPMnwl*7!I+He1F3-JHlvDeZ|SI4WAZ`S<>W1YActCA21xS`<@ zcS|gn+p~oNRt~C{NZ*J&b>KiR?+kwMSOUYde>WEYN4@m-e<7}KkASAVp;gkCVK@du z6Jk*b;|ubHO_`1GtswC}$apkI-2>2neg6L<$NVSOOc1Y^si;0crGBGlxb0;nN%E-; zR~D))xxjho9|K_O9&nA}uZhIy{0FVAC^7^Pb7uzP-ilcjlIXT!jo5r1R{zJj7hcKp zwc^Mpe3j9;TP}2N(f+JeH$9>P3s6F5=O&+YM{{QcUb>OctIoY0CNC?GK@Bk8-E&6|3#s4q6`=5r4+ymtfWcE_N zdGp4D46aCo{3HLc5l_wAzxOOIF4!L^eXo11{)3N45dxmqk4(gz~x|S<6PmPoNEr?Tp`r5Up7vc08 zR`m3LM^OK@aU&#_wnoR-K4^uqZNmYHUA!&Wo`0cqfN`A;e_F~x^PhCw$Uvir@`BHu zTLfM57G#BGOjjCZyj9FCHTs`;T z7wm!lPaa+nzp?R(9~&Q-H2@`lEztL8q7BXMjR6tzpYamS#Y&6C1@4PK8NgOV{(*@S z6H%3a*baup`*RlWUyGjjg#P6GnkM^C&Im^2%xp?~$5UXE9`ABcH$|&@CRmS8Q?LxM z`nkn{IOc&?2&_~zP4rk%Od+%V!JOU)`@Jpn7NDNe-x)87jD8iqI%(4cP7}!Zr#F8u z>)KCH71zBPcK;8S2D8W4)7Mp6_X$AUo;su>@Z8?d5%5L;looo%=y%GDz)^?=NZ(nW zEWd*Y=oxujG)x|D7e})}aOT2}nEP!7r|niLGqv2SeYReK6<$|g&ai}VJX%Yi%)Z?YcBSVVoNf{x7mS^2|Ht}G^@WVtf;VH;NJfxkP z0ZtT8k&iq^{n1FrJwIMksnciRxj$TQ2IKn-4)-||HS_#TUz!k#`4ZgdIkH#%9=ufz z39(&I^u0hW|mw z$Ik-k@KcaXhnZw?bpjUl!CrJq=Cx@x*SngJ*hPdJV3N-a!b(mVtDiqBy#pA+Rx-|`{I+a znT6*v%Ngez7PE8?>rP#_w6(s~EQ5rH0)GApB1DqKiePNzlQZ{cKTjF^~-} zNT%?16slIu=+hLL($!@~UZ0nc)qsSgS;~`?yG2KxaI;y-Q$X^Z)^3$}uJ@toeDdo+ z)zn3>+I&li)(nV1F$gRZ1=x!X zXWKfk^z3zZfB|O$lAl*gT5LAaiD?}ZRGOSa_+)U9k%1@5V|;HURl<+gB7evSZ?yXX zVs9K}rf^Hf_n>g<$9FfX2_|m=FFSyFkqOZD?EKumkny;wm~QcCY0xbE;`qEXRls|2 z@!`Uu<%JY=>IvZdRYDRM!BAllNUHZce(nwd6AO#m%aqb4NW4{cGV>>Qlykw1;??zLC(kCVDNqIfby0+;@n5k=qAKe^|0ic0;#x8P3PO)srQr_` zL*W0x1O{*yhaw4%8*z^TY_lNIV+sND;?$dYn707}EMCl?44VMwjL!k$2b^}Tc0mR$ z7h90dx$QZ1?QsBAa^-9k(`K?uasSy3Eb{ci8-Fz#q$^VZZ4;FyuLSW{^K`?9u9TI=DUcvO!J>IO(Lv*DhNqHVy;_ZV zlGCye!IL-3U`G#ac*BhFT&TU|RIR?C%h_elblil^l zzEmGOJYN!uz(6KWrTBY2{(m0${Dw!`Y;66%^Ji-;E~kP9OtjH*0Cy~Ahq=*VU>e1e@p44d?Ys)rPp(9z;-}N;U>o4~iO;Zf$TvD#F@vkp zRxtWq&*^rK$6>WX>2~-_Z*@Q~v)#7NGa60zL9qvHT2GLl8UwDgk~%xQz3a=C9JH)r zLXX?o$M|=}we9Z}MlzT}793Zl4jy6|$!ejVj1r%\MWbC8Y_C7Q7Ld0=fZ!2;b% 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 literal 0 HcmV?d00001 diff --git a/script-docs/_static/quickstart/metrics_output.png b/script-docs/_static/quickstart/metrics_output.png new file mode 100644 index 0000000000000000000000000000000000000000..471668ecfc1f7d4d602f6178131d1701346ef53a GIT binary patch literal 22465 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 U(|PHE!a1X&PxHZ-|1Pg%#cY*~E?hqt61b0nv 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 literal 0 HcmV?d00001 diff --git a/script-docs/_static/quickstart/new_project.png b/script-docs/_static/quickstart/new_project.png new file mode 100644 index 0000000000000000000000000000000000000000..4e9c6a48bdb48cae667870ec0989d8e3457295c7 GIT binary patch literal 78582 zcmb4qWmFv9((d3E+!EZ~A-Fri-62?TclThy-5nBw26ub%M2Hj| zY`>UWnSel&VTs8w3d)+;ey5)M#JS`_B;;2s+8}D;8U@Jx&!l8v!f?zeX}X#^owYe6 z;8^3TU{G`5zqL?%yYh18odfCM2b(ldFcV+FMC@*}Utf0xSWQQ7M|p0S98Z@XcX&a+ z!|`IN@YNuRL{jLHZf}eF`+BGB13`!wV5k}(OC%2Io_7cc(4oWg?L#5WptPELdP>LV z$H!NiPrN=@*dVHR>!NyC91!dAp>12?Jqw_m8)Bd5C94UtdQuroQYaEH-?;c^2HBa>(1md|scA~~HZF7b z#<1Ojj+7ym<5#YY1$T0DMHXN9Z2BSn7_<+p-CO~C?yMP!Sg35c-EsH5adw)|Ub*eJ zM=d_TYE6y3>-E62+1Yu>Sp@4`My;N`h#lEY)k;g*30C`E*(p9@F%I4&jgWsrj_x8i+UtiD5KBo2`gQNV5RYJB5`NJeu$5rN zjoxVB#jX9j_E*lIg?TOzle>O#bT`l9G+&U}oT>L=D5wE}l7eD%_#uEF!cGYrl;<>S zx&-0J>u^$Gv;C=uYpU%>bC6IQIJ_VHv_Jbe3`GapJQ(E~bc-J&EMzVbT91FPAA*t~ zw30i62GXn_i2`_?AASz_5!7R+fgJ`O%*fii2H0{x+%>E{sAxZocYf-hA-zDGD3I$! zETaC?#Q48aSVE47ptr#8g*z2EF<{6A2Vzj-1c!2+72s6hRRw1h=&ul*aGGFs1DkST z6bRWMTZ8$#sZt=74d~}#>%M+qLPrW9T^F-sX~AIdLs*x!|LA>jaFC-yVYc@~F+Y7txNt zA_+?5HtrSfCGJJ;!Cx6Tp*P`s<1U8~2>Eu$FsHqD{6_mVGOU-($bnfbg=JW1n0nYm zhVcvN5-g&3va(OZ)C$Colpe18bvbl7(z-{l!^P;aDxVWi4&OA&u|If&v%yLS)du?n z_Jp?_hQseMG`ah5?fA^+&aDNd9ZUafMR#`h?VA2tKU_GZNB}KyLI>#OGBD6V_p)karp`QL8R|f|N4+jQ^%WX)9pWB1mQ3JY(hw+c1N))NF z8U?{*aOUXyDEr|1VEg!~GVCOtv6}-6Te4eP7vvYp7ZUE_Es4C^S(NRc+LYR)+9Y0T z!G$^%{C`wxtOs?;1{;V4EKgu&78$`n$vr-Dy-z6HJ&y zvqav+Pl?quN;u(PM2)5<&C|{M&0Wp2RclpJOT1>Em|$I zXZ8=;4$Kd-@bBr2rVzN z@hcat*Q%Fx)fv-Z{A63Em%oDUoyRXCAm!Wall~IwA0-sp=@94<81fZT zH#4bG{`>rE@e%RBK8rr9P4G>R&3+1Fboux~ijNeoGF3(Irr4&Ii|U6zvr1HBRDY^Y z->GbjZ|v}@cdv))>*^IYQ#7(4i!&am8Lld=KdR2tgwignwW#y3w*HK7+d9+K{g57+ zFWWQ%mM&2@Sm$47X{~L&x|q6Pe@t_HG9Q2Ze5AfmKi_W8S%h6ZOdvcV@+q$}i>_K@hW-84!B*O_$I>+;hjcw#J$HR) zW1r)_Bl7UE>zw0mgL<&4(g7jEv{|V zE%hmL60IfFVF2=A|7!7k@sRog$6$Te?T_p%{a^a6tD)`ruPm|Mq3X}=`pv6EDNu*+NkLX2U0b@UDG0U!zjnhdOZy~RNo@txr%hxAtC?6;RMiItM z221VoX0MTpHq2qn8QR>$Fxo$A`xP`gA1fDquh&2Jd^ET8(YCCvb2@%>WZu(*?Mm$+?Gu~pC65M`A2m5OzS_U*ijJ?2d;hGSYW&*NN)=gH$?VCD%bdJe zyGYW7Zmv6eP>NNW(B9Ww&?wZb&9$)Nuyq|HsNh5Nti4G(dTx=gJoTydbykj4lwI&S zddYYmLl!06yGuQHJQj)!B!_7yKqH7FKoVHeJJiwEF4nAXBq&dwM#k54+nQC(&ZkFA zLY#@L>5DU3OWB$q(ns@Y^yJ-h`vcb(_BH-1i5$ci2q=uxEDgWX> zTFYAU&lcB*xvWj5G-D+h%U)4#A(MZqCTeM*y{4Yz3Fj@Sd1&18I@V=oRuC zKexHycwRSlOzS%DYI8Muc-)5TeEZTGd|PnqehWibAmDb%w7Y(nKNHOy9g$7NPwiQ9 zU$f&nwTfFPH(Bk?@0~eDlErthd(-|vdKk?J5j-|9Hl(-L@*TehmzQ;m!|8B4AQ_@U zw4yI0;zi}5`k;2;Fy7bwd4>y(hviKC>C47(pXKwa{q<^S4sc(?O*Evw$jX9ffOA+7 zBp40|3OEA;e*9p#|9vhFMg@ZSdmS7E3NZ&k{;Q1~aD4m30Kd0B{~RIWzJg$Ye`vtZ zEeHI+T0`XIK>XJ^_$S~VNJv>kN(wkC8#$Pm*f^TmIzerVR{?AcEK_D#hw;!04 z64@Cr{;au*hLeV@47ZW3HG_e%t)U5no3-8BI3Qj(Zs63~#L0lj&DzSwk=u=rdN5C%3$kY%E-*c#l^_P!pOox5450nbhmLbaHF?zB>iWQ{~AZs#L>vX+|J3| z)`sY9TmwT}XD2=qlDCQe`}5B_P29}?XC@oRe?1oPfQ)Z<7?~NE82@{0peyg&Rc-}y zHxnyOQFCj6X22Z$A3521|F-{+JO4A||LUpnKRvlvIRAIg|8?izd#XB`IEdI<15-Nj z|Ic>)tMmW9`LB+=jBii=zbNq!ng3n|=*$n#%lO}W#t+ZddPoawBc8dayb5pxnC$HX z25diw>YwA=d4`7a7@i^sBnXlc6;g2nJIaJ=Q4z!KgQ4C>fg(d}g2e0kEF8h z`nrsbvYzss8gu=KHzWZ=Bl@?mKNb3KVK5w%F1jp8Nx%R56@)eB@_A~|5R~URW+Nf~ zx1PXX|L>?dP;3@vnoMvpp#S^zll23iF6wmt&k4Vy{&qN;uZq{K{t~$erSYF#L2!P8 zN$8Yv8N+ep2zUI3^Nk8-wX}d zhcqWm_WxX?h@X+*|NlhB@2Kj284qk6ZNbC!K=>Q=NBszdLH^ktg8VaIBKilgJ3S(` z8Zd7wk)#4I&U8r|%;HNQOl2(|Or$LyOrqBop2(|dx&1&w)M&Z9yN5S#m?2rCQDiKv85`yIEe1u7-A-FvdPg^6L67esF zCK2@$3MGMz>ov{*m1cR~93=)2@m}tZNl&EOm(uyawZa2O$p>yY2ARD)-S^-e7_Y(q ziX&3PZ6dVT}DlNZ3HoYP&&)q1s;t@DD}#o!1|jAsXsJf%f|yc-?ii zMind94l64Gc!d-=SIA48xFG0b~P7?kUtL|o8dd9 zqyQhfMThj8lnGj(bGn_yELIsM11u0iqf}sL(Y?0(4+o28g6MM;C590oNh{qi1rB<` z(8EvaJE_j!ztLAT+Rwhb*DhnDcPxA*ScBzXG&cjU@w+gJ`2oppy+|_0sFlXIHk|{eqfPMumU~Lh~_xqPCe>>Dc8slK;#3@(xVDVP$5O;_p3&8!Q!ad|2 z!|0P~2hLx%EI|R}Of}0XV}%lz&;H@F20gH#1QK9DpZIK6=-w7&OatuV>lve7iw3<` zjmGnNKjDLIJ{^b6(%z+AiF!p5JO96L_Q=vpA_7nxP_ zff?p6VbVdXy%Q9}7jNtHgM8;t*B^z?llsw8tvZuM8g^uV%Jh2}I%P>Bt-8rw8?j79 z(*ey)le492zWDXK-fe z+Ecve&-8iNzeoi*Ih028R{=MGP_j;=qS}r{T?6tfNdO-9!XTGL*~#-)nztxpYJ@^R ze+;tg<{YzAViThpBw*daoM~~djwzXL^M>IQcaD=^dAh%()i7h8#V{$?X;c!T5`k<) z*Kx2Pu?wzf&M>p4G|Yz)z8qp~S6TIaZFPE=f`nJylOXUvjj zesJRUU#Zi8L_62Tn?+<{{VO$sODK|`z~Gr@OJ=NzHTjv(rPhVs(BE>*mg$C6nO@zU2TJ) zz&gipWAL08!4TJ>>VCNsncV-6{80IedSDmtk#1POiMik;iX=B!8fvoY;}3D|AQFp{ z6lSBACGU}IeJ}fjgNaT1YHDc>X4HAAgdieml)RhynJm6+g;vj7`0cBd9jOHIvB^T| z83{t~0wjEH4AgTt)bIpab%vQ7A&9E*J`7$)@wffQ@)vc-)>hr2`R9QH&?HNUL{aqY znrqPm;5&7lCkyJ2mx;?Hw1XaK3Dt%_C6;hr2R0vPa8*CUt5U{iW5S;Qv1wlB3a~8G zeKcBX+@KK7H@(;zuo#FV_X#ep`hp|$A$)r(6MJ{ML{<8u)%>`--d`K-uYo2R14k^p&TSQ~jo5#&Pk}^BmA9LQ5v?}vW_$GwmqV^htCpr@1APo8ug2^C zqC_kLYscOmkY7M)lcJoSZb%0BjpK2ge7s)qjBn))e$vfX`4I=$#=48$Q_fpJwv8G5 z1zwj5HgigqV36=)!nZ~Ss8qLa4f+QCeo#`isEHk09~s|H*A3Mm5+>AucMC=W>nz$u zGO0O)sOY7z8yBs&E7$fj&a0=Bh58R$a320tgx}`G<>{7e{AaTf81uGff2uPMZfWwq zaYqITO2z4h^2gzM93AV^=2M^JFP@(ycZQPXVd$)WFf^A&m1xz5Z`wq(RK|^F@o7u& z>X($L{K)Hz_T@9eTw4IBj!IlMEo%`o!D%xKLSGKE92zKGXcwA4cD!fj3t4)1LV%1w&Og6-M**%yD z_A*^p!ovQPRe5corZ|TxK>}kU7k(5mqmbT%`4Z)9!Om z{xXhz7B=X+mGL9+m+t%1%n4pk zCf3kvI+Rpzc7B&IoQr?*k%*tryCx#ztAluy7ylB85{qxK9P$sqlca_XjwQ`TNC$&_ zo&G^M;9kGt5mBO_O(5)de(7o(AiE zyX*=+dTYLVMxLxw61Y{Gr27JnrRcXTunjI*skzaH8~aO?e1p#CLOAOS0GkCjE#+;%m?+3XFwz3aM{#H;(U~; zr!AxB@4UaB(^r*EV;hCN$l2XkzPXwTgxI0hsLY|!YiS@TQr7xt?UBiSIm`;NGjarB zGMMo*3Xdyq6~=w$;aVVAHxpYQuS}DdbocsjPGZbuod1X=?mP&F@aPEk@^-~j!n0mC z)u}!VBtk0QvKJ~3JBstM#PT#S?xM9^y~3u0Ijb^_LF2439{b$z8&NRq@p5x>w4E%s z-+n_bCU?%%FO$`Q)MPy^ZNORK!Y?fF{?w%<_$<~cd+35L74&tJCW2A5GXUx-3fmb$ z!I$JCz0CwKfqZ1v@t^viU=YxpYLcXoRcs_^bi+-LoKaANxFy?D4Csf}i#1Z}@_Yvy zjIt?bMQJQ1;f~Rp{q3kpi71=7S?+yPD1ui<{N7nAwU%=?u0OsXi$vRA?r=POd*rwK zoUL=Y8D0G2k8OK*x&b)uL+v}NX=FISb8G77`_rBge`#2CF7mF;A5m$cuL)(l0^$GR^ z56;oz2fjMHbz#0lt;3k`fh78L4Jep*Zl4nAG+7E94O7Fw*|=+zh5WiM;Dmyl_6xCp zdY+ia6Q^wU%TI%S;!`tf*z7{XiL9~T%x-f0EUqC|Z?z!oN`r}Tm|ACrYc&I;f;9|}FqJdNv!#Wz zW!j9ZVF0^)cN`64TqoQ&HH?rCq*4?!<86&V9QsCwD*D~!m|F=FJa#x+fP-cOeJ-p| zC$|nX5=$DA9DI3qZe;Oz~8ew0eaweJ;jQY`eOxsvv7CDi*0s_~8uL79d;@ya z3+tagWB!8L!&KKP=Tl#~9Q1j*v%dz!V?d`UWeP(CIfiM}VWnjOUfH8pIu8^%8ZYSr z7G9NY*DhwUSW|VwWR8X!GgUmM#A@mR?&7k4p`g+iun3M}odCG4g_^fW_$PCj2ZfWv z*vIdf(Q}&SaHwRRuaSSZy!=d+i&QNBtlTf>C?6;vcGQ@gN*qnzkOG*0Q zP=Z&xxnoO&tKMHEVgw8lZya;1dSTXGv(lf3d8{~1(Oc|KRyg%s3>q3lsw^wYX@O6- zVFg^(SpU%zN+4Okyc?io#XH60sc7}t=z-gJlC`B=9?j(Gt%hjV?^I#}3zwsHih_~u z?DN|o0DKyv%-YUDSf_WlAb-CxDUZoE??;uJqXkTGm?Dncm%C+&U7?&B(=k0lR1q+o zP_?t?Dy*EnJ>R1$xlUS42?-+_!Ogukk&sCSjOqfS-tRksF=m%aXMXLq47&Zv-aRHypRM$D4+dbpD>P>laafh_=2!X0wJX&~=8^R6aMY!e) zidDy^(;(_ZKDX(3%s1?Xcd$ujh#q*H@RqFy>9%^*;_%$4rW!d<70FI^YBk^Va$h`V zvQYkf^zsFFI$3h(&O1S{7)h%|t0f>{M#N=Th~~YBA-MD{Z-%X~<~=>%q}+=Nv&~#% zuT+>R(^f~gf4sIm5!1V0#!Vr-DXXX0*Mym+o+bppX}KIt{4r(cGm_TUKKK394=k{N z3bNnxtTSq{>9*x&`d+4G`i$W9xE@h2`QhQPq84|Tito$0CF%mo0k*DFuE$0g!NYAs z2?MEnAWEky)~r11m}w1Nj@?)YCY$Stj@}V#lYzG2rkLMGJsK-*%8gl$X8{ON5SnqU zdW_-2n%Q0RrfSd^QMv%d%|2PYIcpgnTUgPt2^0g4|IRchf$+CXhqs|Iej%~~N z*O#iRhM~^{Q^X=!*8{dLY}OvF50AFdJa?X_t;M>Z2UA6Sl5ba6)$$fkmYc`8kP)Nu z#Kz*D$Uh}0uzrzAcHU|{DEVpJs`6u!o4cISOTeWgvO$qlerpgOlcogNW9_l~hw`V~ z33$bNvx(gYi5C?JjSkxdvFBUyt*ZNzh1*(pw^Q;0hak!N zp&P&<-)W%j#-D-h1w1i5367iTF)rqgPk<-Exv7iIs7D9p^Yz^a5^z|fu`^9Bc@D3| zT1!eqO5fHq0D2tXbSWOh%&L%{S%kb=GP8ywF7VxeA5!c6n}=JBmoFn9jq$hf)r9 zmwOgUSPN0zFK--hOOE!KjMEgfQ#mTNby0oLC}C{N$-oq-84cKZO(Jt z4XM3*Vq0r;W8BbTYdAJW7>7dGv2Y#S@pyOW!V^)t$#=HmX)9g)(|ep=khzZF@rk^} zac4A>{1no+U*BWjL<07K2Z=chw%={85#5Kd$<@>({{V1)1RBsB6q-Zzh&Wi@n>;PM@Z&XrXEGygoQ_E|*wpTNCYx6lco&2CE>Wd397x>h!ptGTm-DCjl;= z@cMMw3-2rGe4vx}hvV89|8)(Y$@gVFyQd&mbW5) zwG0^Jd~#1HpJ1aWQ~-dtnot8Y3<={j`_Trr zWDoyKmCyID5jaoDatt`LJd9!GFt$I%MS*T}FjCc+NYK4tb6&=$*))33pLzsBBVJ!|>Ob&(%|zJ;oU^3O zNZjLBO6^q1c)k3vb;? zH;k$4xoa-l1xjRy6wLnEv~;cad@fV}siy0S^h6VKhTrz`@I^1_!(+y5+39#> zd({ntrUc{t-T9`;^Km`pe&2){W6~bo-JMaipjgpvmZu(!&mR5#^Roy9Vq_+TYzwZ& zZ_o4IWJw96S>M-Z_2npyz@!*}9Lu?FZO|8#!u zuSjdRsdyqPSJ47DSZ3mWU&gXz`?|U_G3NSt-e)QRX(D^@x=ytFW!F`=#%aLkn(Za@ z(O~FjK9&T)(`#>rsq%4YlM-wd@NEFeoav{(0a{L#$GpaSY}CWyqtEGSt9M3XUBA9O z5^m{6pB@2j;)8~;M5KolBF@-_xU;*3vF&+kc(%_i>WigDv?GNBl)zV?cvk*?^tF2 zipnk$@_10N8y=fk=#sieZ!w>d#v!afR54K8TOWLly@wWcmgU|_yYiN z>G>l2bd)qbp3FWpYiZ9ezY<;fyn5#!olN9MybLGCUR(dE`#GnVzJ}+R9dgV%N>$q4 zkME4qpQjfR2sgf)g-f60n=xKIw%L^5@9Op*(g!f<(y1ulpC3KzDP@+?{7}4wqb9GcW5P=yVZ|@h^?m~?UCN>a!kW(H}ZJW ztZ$)GW2X50>zH1R9g;Hu6Ewvmn9>DxoUG3t8bPDcdcULXFdB+FMjeVmW*4X-W-*Z$ ztU+%=8tGdH>V5WkJg#@J+3brHTk7Tp29=ki1|%gG3EVV9uL_C^^7Y{wck4q}ZF54F zG~#SG0bkP)^>@$ysH~MwUMJ%nfr7mn+zl}X@OVqCbeKTJ?pak3Grf++y{+Lt6ruhh7)~R zgZm8l%Jz~v$h)JNq=&IS6iQ}jFA>SE_GIIWc|e@Pb@2gC#pZm2d>ds2ta6l?IQ-^h z*>j8M@p8=4IJ@1~%~hpTLky|&+QBainp}yR4;+J}#Mx4Q7g03fc=GmK+;Otc>|vh- z7E%*jo9dM0c0-m7s_i#>K#$(ZLM?#(;dOsG!ho7oclVCnd1$h5$O$h@%E5+A*GuuU zIMiN=s=&dhp?rwL^?_ae&GC}3gyvY*^A^Vf{gs~AIp*?*7PS*Zd`lo`PomcId3{E% z^|;1?LJd{3jh&?)x3 zwSiY|njfgs=;FTLPL{rkmQ|&Upckw{AA`DfZof^Y*QNkRPSPjS0F}4DcxZCGGJW9X zrHfeuZ*|yqs5npWgnYwpw;Re0-eHs`+{vUu(#lkS8R-oNJKPS(95V61cf@mSADt8W z9z&ExOm`&C1bG03J&i_7dqJmtlZXv-6w$*f#5Itzv8{^-S62s;wX`Zi&2b?j_KIS@ zdFO9FTXxB|@ic>QD$hD2T|l~CB;nUpR;yKukWupTbg3m#(78S0<^Y+NRASIg@qpj{ zX*A@H#fW<1-u1kfKnQlC*3RHFhtBTCY&gAOf0VbF?^x?9?Qd?kGn5ZgVb=gqv*%*q zS^DW06qSzZ?r`chxt%P(C|R3?1ci8j-Q!U;)K1L7Y*`4F7eUoJRxt(o`_5zMfjCCv zxwTGt%fl(%ok~(YS)LBAvsHNR{gbvom!9GKoq8VT3Gux^Xj>B$+V95e8c_J~bV(cf zNESt!SLKf6qBrciT(ucET5kNyFN)CDqI^^^Ny;-E%ZNBgl~v^&&d%k-oStW*#lppx z5L0n=D=_%vxt)=8XnM5MG{-Ue!>vx!Dv4-H=iLg*-!o_H@}AEt#G75g(oP{y7+l4g z)rU1=ZLy`ci#3|AUlEg>omgCtA1aeMK-}LvuJ$&aKJ#9y*e>ro4JNXuflrsG4?|dR zfEV;JzrfTlCehnEdXyV_-50drd2kva3Xw8rDYvkB5cn<`1$Vo4KAYkk>`3%`>3>rI zT(oB1YHJ|cPI>-fPS}1}t}GDn!9B|cObf{2+DrAO;DiR8Z?2xv5Fla!p4zO8#>e#? zOi914V1%gxq8wzBTbudHQEB6jU^L~%93730Bj|v+Ue){Vl&eV~Q_ zh~g!gYIW@ZQ8~D+HY_)aP-UBq0eF*9vkM-^QYXi_c?}wu7H9A2^Wzk$;Cdh2xna;w z+Q*+Y!K7E_-wE7u;$`xKJY+K;{F6fzX~C2yFSo}1HTr~ z&RMqaKVIaU-2C)y6EI_^eL!~bv)rX-mxnbkwa>jt=9F25>Y<_iZ7-bNm>6YJ`&A$A z=Jjd%ZmYk2j%^#)iavY$BZ};6IBj{75s*Sih1_TTaQxVOvuIhvQ{AuJhsPn^0LEdx zD8r7LNr3PFg0|ATJ*b+{0L7U#2##?J_&~BXFx|Uy3O_z4$!|%7CxWhZ=zumKB)#_Ayx zC5HrqBn{w9F@_=Ry6Xfob;RF6z3z3}oXM`D!7dZOMG3I68xq=`DXqwR`)NdGcIq{z2?wgIdh z2pFVs@R9CSfRaw{h&qtbma46>Ipbl5n2q`l>{WD)vHSde&ispEuz0}X6f_7H>raVx zmt3@I>7DfBoo@viP=wb=Iv*@>^nnr{Y<0t<3jOvh8$q9MGnL9@SyJ=ZvN7m?HKmT* z*wyi40!CsI(-oqyQwg+rBw?_t6ih@G7nR%bJ#YlWN zHo~z=6Y`cl#N8)Q_u)AO>Yt49Xx`f_Ue&)-^xJ!Wc|6VNVD5x8BSN4n_je^Pt(EM& zSif_g(`CHw@L+)(-=C5nnffpcHRqBG1raZdn*G}{n@|>8N4es&v@bY@5f2P90YkB_ z!$9xBisv6rvCkPM^){_rtllf`yL-;jyQ%TSk%_$#?bDe=r&0`mJi_rOFmhaKH@d(r zXo95vXxCYh2QH5A(`9?RR7T_Om+Lk=i_Ce_QI-0*uDBn7EtrT};0rfOAV=2@C+t`F z?4)?!C%JHCvF%%%-U5hnuE*`kzE!bnujsSP>3yoR9-tw!rY3|83Yoi*rAg67xRWHs z*@~Q(7>4vXc2gaWj82@lIyDjiB`&dr3P4APbGGBFjM0B)S;u(Gy5|LsbP)2OH=vD( z40=V@zJA71$S{i#m3didZ!abeHA2Bg`9QT>zv=^r7ZK-;oKTI=goG`E!b)dE7jcd%>U< zz{45(o^J&Ive6a?V1DBLcQFtKFM$0vK*?juH5GRG!?N&en_g>}m#_v4C3my0m8R?6 zX6D5GBv3t*GvTP1V{QJtUrY$$V;Z2x+tGOiI}TVmk$OtrP2P3?3qZlTB}P30xPHGV zlRN%d^*UD0?*JmvP^T#Svy%i4TfJvFtD;T#t7~|oATM!0k})9F*C?NOtN>_zXWleqH~0liC+{;ky1ybiEEWzWc^C6ItR`5wE=?%) zTQ)3ZY|t6#^fZQQMF?uz?FL71y!bp{yHe_ZfmLAk>U#PSFVC2&T>ZY{GafQsZfNP3 zVrC<~bJS!M$CLB?my3mMV`F^q`$=iW_^@DSZcy51-c71u1!347A6h@9+JH7Ue4qQjzzN(BJsaO3_0++;~NP!Y0 z6Ff(+l3$)pit)>Nf3_XC@ceZzXNkx4!T!o!F*$dx_q)Sb6rMT|kPnGKUzqWx|F-Yv z*VBv#7Vz@ynjTM%0Tyl+K`xz?AJQ=6;Niqs!7uV_aAVhV)#96EOn8BEu$$QC}(u%f~bj3hk5a zwE1X^h{r0xH&uSR;d`=D< z$jaY{Xz1evz`~#1`g0s@UY?*HTJOqy+8L8wxub}QcOVVrJ5*N+B;gg@Mg+H@Kc&DA zep~Ok^MQQqd_=`kn3`R#TsLjsWK^U$f!iF3MRCRgON=?oz~yL@%bPRA-DE*6C`)kp z!=R9pLvW%Z*q4oayL<(&(2SlNAH_*HENH(O$#KZOHTPXkNmI~XU}dT@h(cHdGds&% zLvDl_2+uz9Es@$4Lm!~q{DLwIhTpE8Qz*8JhaFH|lRI z=SfjBLoP2}l;lu=5xF9eZ*jlGdQN{#gB`D7z_SFiIKWC)w3|>ko-J!mE<^#XYlSBl zWERQyXIT9_(%mTfO7$xi?=_UWad$STcV@K)MlbQ+7GhVVWsxrg2sfgx-aiaw(>!j7 z`5Cg9$&@1!n~CPV;dY^2HBrsI1q;6Vr*03)hc$ct>~R+SRZ8`K53`eak?!pB9RpgT29L7m$Nm~STU06I&0j!egbD9 zCi15o!!!so4S54GF^{7v3Fp&0K~3aaeX^{9F@aY)$C!=9mmP312~wZr7@O8>EPT4c zfYScQ_P>d?Dbi@(lHeHACyE_stH}cUg774VGat5-`dB2vAcP=VLEk6)NEvD<1co@C z`LRUx*%=W!_TS9IzTeK*PMl6#Z->)2j70Y?An$xB@_)I&7 z%~h;QvQNip`yt`H6$B>7gwlS-GVrB zfU4fVLq(fOcE=A?T1mg!_*Uer`9^m?xE`s1NUbEMpytZ8b>J01f);b-t$?`Btm_C72SgZNKtg>8gNrjSPAaR-lhTLf^N`kX4 z4!iLo_4@y^8eV-xm^l;E>lZR5z`6fPzSA!n1NW_6C`bv2J@~ePQk5+oehe^+2n-E5 z1EG&6Eqfnc0h9;Q~5ZgNR(FRY>K+Dr^Ni<1kc80tLa7j7w7iQkPH5VKuMN9PDdGh~&ztb?Jz`|Ff0jzIOg}KP9y5}k9J$4u*!ZtQ{T!oa2AGyr) z^;vi32yul8V7r`Q;wW>pfg;q}^-UqJl|pHCQ}{~21l?HjR`wGVtNR(!{eWwLCLIJ` zLTKG!Ng3SWs1rkoR_JXrM$c)Wl&KE*UMD$$mZRImyY(?LLWd6g72qGmM1yYegVB8b zOlsvLYON1o8vf>DHXrA`P}0BCKc${qzJsRe#brT7I=Ka9$N@*bQ-P z4@=_6!r=o(?-yIAOVdyJP+ zY2R|;6*M{w;3QZwp#g>l}}_54``fvuLvFQXSV znODOd``V$qljc)n0)d9bk7f#EskpOSVLhzOCXKxmH@HK^^q*v3-1Pf^`W>ZGD_Sb> zZLiNz!-Ky+9yyTmy%zsa{|=6!_W@Sx^01;kO}RE?01|H2#N{)Rp4Uw@0UyQYY5T(g zLh9=rUjHQ0RiL%DpIjENm?x1N@B4$9W^sHk!tclH)f>0a#KSBW9*A-cQU{PB>v73Te!#o&l) zDJ3=r27J~@s{>*)7+ZXR`ROa);}PpGn-`(2?&n(|3mdPykD0^SXtQkDdkB5_p7C{* zCq9AC8HpR7d3PTOC1Sh@_#^q*gWs`f2^7zUPlo2T+Ps8j3vB<2Rd>j5uWqI38 zT5;J1R*uW^#v-_dU?Wt<0^#Vd$Sjoit(xobio@==HCd0NWLE_*S5s**%bo_B)%}qh zUNX-pzn{BxC{>frr}t7hY_ndJeAhz-cp-o)FHzzAg`@5|&3{-Bft+yEK3TKT!Q@%< zoULX1GxRGIfE;g;zDLD5y{i(5cB?Y%CA*7x79lJFee^f7(+_ov5XYUQ%pRT=s8laL zlrtn3L`{L)G>rX}L`OZ9y)~3P_j43Tk~W?sUSHLbnhk*CbIr=#tr$7D7FJsqrMvkw)NXl_{6qQ508ovaT$!Z!kl^^wc2zc>hX0w=qrT6!w4>svoIHrJG zt1<+fLWWl_rn>pu+G!!4s~ye4k5?caqV<+(v+A0`I<<-~Z+pNwX1|KG0`wO2ulv!@ zlmQSkKO9r1?9w@G%OSr3@78_@Gc`;$jZml-K<%YGAdo*b>}JWA)}UebEwo3po;gr+ z$1bebNr3TZ@w~yK21jq%^xPo8Nm#i!zO(|s)M+blYW_OGCPSb?(shf)4IW;3*p~Z;TaK_<1z8j$JNmFBC7oO+#*D zjnT`!X?hx$W6{YTAq9i)U0HX-06ZqI(Tsu`z{ilpbZvWAmeb#J-+6c7^#OX`UV~^X zgDd+^M#yOFV|Xq)z1C7rdE*WazL`xnWPe~f{R*jDMa$ELS);@>A)N54Xg^dj68>V? z@3Abt5EqjtInR!kQl_Mpv!T$x6&7`7t5nXNwan9Cx8ZU!(-7GLJ!XO^EkNW&Dy^g? zcxd!jtcrb$e2w(VVgQpd3o4^<^ z>(UTzzVGYG&g281eTfYmv0!FeNM(Q?6Puycgju#)tH(z^@tVjN2mR9-yI+?n&dpW9 z-utN0Hgn5%0a&RXWS1;}e!V+?|Is30>ifsMiBQQWs#I^c|Hs%{KvnrYf1~Fd4oHYJ z5+dCt(tSwj?h20>C%LO=v50Z|%BK~TEk-RJQ8-TS}yu65scEtlWL z*N5lXd-lxi*)#L`Y$hA3^UKThed#YR_vfsCiN%CHBjM9xO@s9ESB;a38yu-@j=gR5 zF50jZuqH2ufX0c(hfSHAX6reiz)xp~OIiJl*0Dz^w1ACl9aE5bvWC*TDJF{_sBYz?J=BaNgtu!za9w-WL4 zEE3hO`_Fa1t98LyM3$?Xi*t4w7U)VkCn==~v)zO+wklqkz4GB)!=Irp$9i!@htXjKEoKdRD~w;TFAi9D?Ia z*;O=0;*y@g=_=MTutc0FtV0ZxzDKEoj{T{^H$JycG_CtnO;GyUzP=|c9dM^1S%#b- zkHvg*A}*_}q!2OHAra)S{9bKEMoAurWoPh?yiSRl(&--^h7&W^2|*speQ z>W5z7ND>A+Jq#$Q6()AYa`RhDm%F%6&AaAx+5DK+NfkhwTD*f~`+Qo|0S=-u=Wbxi zA1;%o_^Y`#rAJ{^r5)$zg`e!_+tAMpND1ouiDMy`%W;woo%fimmmepyB_Cw%+}-ka zxIaf;E9cV_QYBgt8~K4Uwv`jO>e>zNNyVA^IHEVS`BLLmrnj8f%n1K^KTsn^o90P| zP)Pj{ApHh{AjKZubF14Xc(y96FxJ=iFW+d(HZ99%6D9gG&Qplz2JXG$vv_UCCyj;c zT!$C;snW8eL(;>H<<#|Kt4fv+Xz`CeFTWQv+EEWLbyAg~0$rb+3pnR{U_Z}7>oPAm zcp^##SKxe6RdS|@w`=EUJY$w9@)>E@w33dNw1zKvl4FS7Rjbfpi5t)O9t*U(k z{q4)E?@mx`spl*)8!Wr2H2pTiSxd{YM6nRL=0?%#jxBR)S+1TcQLst$w>nI+Js~V5 zh!OMKTOo+vFG@8FSFNtM8KQ8)a#$pR53oO*51r~vV*UHOhIPFOPi`gsgt**?<^h3L z0sP*ZftIV@nbse=?YEr@EYY-!$q2A(AOsXj=5(0qP2j+jB6)paK>3za!mZ98O9ONG zS8w!h0cAs{vZqYlL@CYYSXKXAr%Y=so?Dj52$SLctTHt|9F>WK6X&t`fRt=E!T#gv zg(sfxC(CuUi)Y!48)MW-=r|DoX<#O<`$cG5;G#fZ+O=|Q^>(Q32ixm5eRGlSc)YHtv!fubk)PS70sg*i0T0;_np`5Q zpkn67yvKEvzh7%R^10#gNS>hd3m4-0!Xt6Vz_07~N$3<5_BV-5S2~1R@OSL53N$0R zC&Cv8Yb1Hmb2mj&$?5eRyB! zeVpY3o^w#Ie7e$~dSE*-{_`pIC;#8y7#k?hds}3LFL?5V7Dy9*G!h+Htq)Tj9*Xnu z%z~1NvB?mc!-8z#cUp!gUsNhSv%lMVZrL0`LJED^;`4WjIC@?$CZKyT=QnYf@6&@$ zlJ#VLvjl2edOF&NG4ZlPLn24#=e+CB-{7sc4)*wwg}}C$`z+-j7BM2W&1J*F+au@^ zV|Kh%ADZwYSqw_PWm>QzG#|Bb@ZjQ9#`L+ryu?>*!fT48!&lFP<1lhWrRiZWzmGRJ zv;$42dD?A9GcbUI>}Z%7?P%E@Q}$ot@nI&Ep!b<|d+B^}xKCM0X95!E)1ZF-JI|#0 zRYj&L?d(3if1v)>cb^}v*@yLTmWSQAKBIZIJ^oL3pyyATJA=&skQMu2B|X?i8_pFE zXykQa-II0&UC;Xa_c_{Y!iGmSctQQT;BVXqAGbok7S4PYYH8wm_&>)`%J!NlI&Kr= zr5(&&?7KRNqg_1iD;}D4ff-w}9+82E;D#c;}}i>PbYJT^x0`M2Ogs zZq;v+4=rzfcN*myUcN`*@E9kYcv*zhhqJ_qd214iJ94Y)X`whS%*Tpa%vYiBb(QIPqAam|`)Fg^uPBkTwqgs_Y`)*(WzIsR8Xh5J zk6Imneh_h8@~%@B>A^3$`!|Wp^nU6ks7YiOJ1cS{aLEm1X=Mo*V6VGewO9zA(u#m$ z7VGM{$CyFOfpSgl3y(RSe#*Gl_YdySm$MMU3kcr)5ZJnkDEUI^AhF`JE_bTX;1!P^ zLV8a)4RQT1o7dy8dmNHLPQQV@nw0vXy8_ zh=YYv@GAeU^G-?tVtF8t*;VXa#6GaNw@GM&a{hfwMeFH>y4AAc_v1i8tWNf&RxY5} z_-)wDO072naD-7s55#jDT&sGKD4lsY4GXhMTH(9niZ;9r&Wo!CN54dR7Fq)!fz_D( zdiBtm?Kz(hM+9P>tgHX!0;u%Pu`+se3!~4TS~6JL=RNW6Zv4PTJLsTPAK(TE+aDcW zgy>Uz#k@udvcl9Bp40We9d>{9J`BFq?i)tvfA;ycD1UmLD0L5$>^t$^C{a8UX^_QV zogZ>ir7@!vC;N*bNKY@c`~GXo>Bpv2d9fF7M)>Nt+tx1Zn&xf#UT*(e`sDxB(uqpq z;%;-G|N7O}n3m6j{AgICzGbdt(KnyzK4j3_ij)+&eEO}20C-Gc2 z(F}6v+-WC0C$RuKc`sE3WY%z9pN1E?UYuYN8WIR9kLbDT>Mf1ichK0w|_MZDjtf3rf>lZY&DvBN^$C- zgM_cuYwDgELBzQwIXpeblbk}X5!y+8uBhyhjxHP;}XI(=$pW_HKVC z%_G}*T(^c!I8kOI-14z-z4f&pJ7~NU6!rp{Y)xG6gq*Xbd-Mn#5;lf}2TQwdUl>0U zIF1`jj6~yx$@<>?`~qJ69~8b5jFl*Y1z#Zsy?wiJru~kLO7}1FsEwXBm-oI8i{cOk zeEy3$&v`yY-nWC>G4wDO%z=o4mlbwri3oDnL?tYk;N8Z0s^aHW4N zFTpl(e>icgig495%Vfe&5D0=HJ_CR(qgWK}bV`iE`yFSS6i3~%oSD)F>r^uZh_js^ z{GL@SlphI0yG6YA!UXhs^D+^C*mjvMAt*U9Ll?PI!Cc%Bd7#7oJCIoHH9#jm$71-_ zD)gM1$R!&I;(Qa17-(6vPW!>l3p$dj-H#gI23)xdhIo_&LJv zEAhhAWA>U&u20fscE9q<#A6ej=!J_r$Qp-u}QpJjli)lYc)L0&tv zihZ71o+1VojotF)Z zomIixom=`K+VU;4iuqU67c^-Ah?_XCRsls_0PTQl^}$*IdfTnFXyf2qxW7Kz@xY40 z-z*I&uzLVdF3QsMAH}kUJ;WfMdN3yPHc*^Y9cBjqv9a6Tg^PSqKQVaH7Ten_3HfVU zZxBitv`Sx?sY(QgeI7+wVnqRP{wgvfIM2W% z7xz%&SR(>L-Oq(SMTxjf8W4w|$O6{ahOSEiXGW<-@30P%_hj6t)(EA_ZSYuX$tr+Y zD^>#>E4pnbhF=2Sw(+8*6xKw8fKuFzqxE912|B;yb@Goux5-s1nSJVa8BVwlO0Ma$ zi;G<{4xeL9*=&dJl`AB4r|aODr69$jK%V=IL)<~ zx{u-tVzS&vlF5Xz;6K>;z=B*!5CJ=CHepBqhgu~}`+v|!lpMLghFd6f9()|frjXfa zBSvbE9W3yA&k`jm2K=Xh@1ZY4sCr$dvoV~MBkeID@R(u7^FfLgkVK?(UR~ars4@*G z)G(5yA51AiE)xU`&V<0RGZzpel!2WeQ%~UL&$-J*jgp107opT4lv4tSlp{~{%Dsr; z);!;h%KpK6fbIMzeLo6{nHDN5blYbZAdB1`QXrL0nMi4TL(+8||M|%*_0m-W4X@}W z-N+3|OFxpHBW85DnSj~cSXxskV&iwox{k2BRSDT^AtzD=;Fz%CG$L{Lgv$Yh{ST)4 ztRQD@*}nt7IF#XpAQ>ifq5;Fi!Y9Q^iYF>8mHBC;q5l_de6;4}Z#}YIfm#zoikp!F zKMBQsP2^z>gJO>Tzt~r-q&akt4Ejvh)cR9rRQ&~ z^?&@$fDy(qJ>dBebc4UrH2(eur7tL+38dm6b>|6|>;2J)AkRu6)L{PS?~(#J^!S@q za{hn*g#-F3Jd;tG^tmL{jh+8L{*ELCbU9I^hACV4LVkONb;CDAHeo%Cox__wLEe?Z z$QSnDfY{kYSQdp?)bCTZ|=eK(z|z@!JELJi$@5KJba>y{6$+jV%Sy0I-qoz z0QMpyob7ibus2DFo!Mrc`Ly+)J}wcs1!l&o(Q&0>vxe|aDOl`QrCJHI?D zOhMi3o?R92sgC_1hWAF58MvXoEnomT0Uh`DHX}GRXgUTGnNvqz*S(#&g@v*Mgc6eF zhmktKS8!WB5X6Cx0ZvyPJNzF&P*x9Q@IUoM=M_Y)2|^2B2oN_-*V*RM%kHlZR_v_~ zE_=8T=SwIwJwwSV7VPuRCd&5Xu|{DO56dS80lx&@kI_aaQ8-4g?Pd^@?`M>6BZV4A z;gbrDsyK({3V9#!V9z3J2z23CjK@Dnrj{De*JcMkHR*{g(?%AsDogt6tgO`%VSA zX))D_L%rbC;r#W!yLCb%wgx)s>8SOIg9LL6xLiF7=Ejfd$5j1*$$zdLhyNF~J!&N) zReR0jIAE&rL>7Y{Q6nqUE!)AVS&+7{-;8qUK>HkFnF3A;s+by03lzJ*!2&q7-mbb~ zj2z)Nd_ zGm1Dxwhs^VVqtvkE57%!05~oamX!PK2Yx@Oq)RfZi*i=PI{PyS=&$JhdJ{^JU7BTh zjHwZGeGmf`zdRT(+9A$!JH<3)MXFAuC`>-|zKG|BBs4>AiU()Tb$Lgz<|eQag&8(F z&v_F{Vmykw|9Vc>uc(R699~kE^s^YkFWYppttsGzxx!fn;vz`+#1B`5k!lVib9x%C zCj5JWzdzscZ!`UZsiw{CI1_?j@HviJALwub2N09i{}7X1zVxXs2!1Ue-r+L{@{PH1 zxcgXEW50ee^xCdTMt-df<3xa-D*POqS6htcOOn z?9_0{6!lOOJO;w4K~oJ*Icey`tJfN7pArzf8MlQxh>efF`pKcp(g$V%eZIJuckLUZ zGgg*Mkj*kz$s7)OzG2el`|1p2#)-ervFcZul&hqFD-S%y28~w^JD+BmfWUxJL%}4- z5NnJm73;zrMHlS4Z%|nARF-*we`}Wmfk!1$2#)2|dX)wQ52JwBC_g*gs<7yddJ%Ys z_eNO&EgZUCA9*btwJ-u87-gCv!rc#!+2{dWmS*T+FEO5sA?KX{|IKO@1Aaw!tUxZi zW3JVw3}iw!#f&Gxew-a>U=JE}09RAXl*E5R2U(=(4t~^Hq28<4?ii9NmUE9cP5Fx{MQCpwk8=U#POyOl;i1Fw=LDZi2Zf||Wr9AoD zV4OroK7gL*iQXzNW7B0T;=uXZDr!BTbLn^asKIVb1t7H^S{wfBOMD5wyeFnSkA>X# zWTU{YnLwAGw@NnlYBTfDmnhG*6^T%^Jmt_Xj%l289$SMnKvc*uEePDnU!4MZg%N`VT>F!lzb^ic$G8uEGNG%Sen z7ZBYV@^8Z$wI4680IX(8m$dh2X+Ehw4ry13qsnG3k!osm3g`$Y;h(m@zPfanZQ9)| z$^DMru5-AlI|;af%G_6@g0sW*7>Mp@h5F}R?~e#ff_~%E`vML+k1O-i{|Q}~5oRNJ zZN9#-YpM5g&cXknexz9iK~2UlYAC%(SXbreM2K9(jOJVULG5t!2-n+_ zd%uJ0UE29I3)U>I!OY99tK4m0Z5++FpHD1yeVXjJ-ideTZeF4D>O!BK{Aqhv|8rcf z1|ah?4B8*^5y|_;CTv!}kzTHz%dCTB(J+eh<&J?JOb|_fynKvKYgDH7ys0+w?{tH) z_?0hp*#;o4DRP+l_)n*(Sso^ZsS%11_DKdMwgNby3E9aWe_y!9+zI@ByI~wN)WKMi zlFts`^Q*0qI=;oxr2b>=_iN@EDc6_P%0?wt8z&QGQXC)yuQ9A52d&sVKIBE0Hvr_e{qNk^}f<~(#WQNmf)&#lx1eK{JyLh z`tjr!3pp>=mhDv4_22_uV-Ww%2$XBr0prkUa9e&XBKOHnoo!!yf$?AEvZ32uNWS%bM~iOPCPDrk#nt#Q4)9{~#s!&}{ESr7>8t!44QZHj z85cbo$NhO9hr&s4Hb?xt3^06@M{|{znZEq%rr-NC03^2^0FDfK1lidxWKf%mZ{peo6KdZ zlpB)HrjZxg98+fkIxV~juFOcdOf=?#e4ZZek8F88C~>iVwFM4{y0fo_uuf(xM|XOJ z@OFC1u8rD!d8q8llFAKg!pjZoUVPbX@C2YEkHbxV5xa5jGhRPwfE^MB1VQdvBd+57 zAeCQ*1YR}Idrk4{kgz3bgL!CptaFXtyGkh?kc%SL1UNwL$#(%o3p`DWcb*Dpy}WZ= z9&~jRRAQDix$`%I)^0vKU| z`}(j`tv@HgIKT7!$~O6asUesi_H1`=wPK<`?y-Uf*F=#428rWN9pR~>8{C*l+{y6wlH8wlQn%s$U4iD12ICfudytDBGEG15_W|`}i zl2}NI96~O3Uv@XC7Am~zwM!z$>`UXR1{5m>`MsvW{I2HI$>IS=2*dH&>%*yqa?pFm zZvK%;m12{nR`v4!_1<80L-gNU(}yST7nYyn+||O9yaaa8LX|Ltl8laeI!g({?ChOHi^W@OUTgl|emkrCGaPoXk<=kKjxH%|jmS zUqgj}10Wwz6Fn6GrWo|LFYY+dIXnBiQjLY2E+C^R7xN30+d#t;V_RqjsC=2QR8iHe zlUUM|$IU*2NA@MzObH%ns@7<`!ht6^7Rkr@kiPpeDgYwK$^+WUqgU#dxh0QGgAPeH zk7itOJ=4w=5h3eh`vP}a;`RGJEPF)7GSu;9E7@RK9f=U!>~rAs10w%`;wN(n1ldAg zDlP3n;AhhadA)Lx4X_-9@<0pqKg?6K_tl9v66par zbugD(uO8sCD&EC}MDyRKyNjhaAmY`wE;rZa7rnU<@?K2c-~(6dA1$w8Ve7)MTZ8xM zGAW*J#?zt|Y1(aCf(*PD{)_j+-BE^(j^tnTKVJA5$*v~+0m#xZkE&q0tu$$P3Xh5H zrxy!=g|A`~K>w0OXfTQTny0^DYRKwc?vJP%*?rdpy9()2tJ91(f54I0=QD4BnUC}u zm5}_=0%Fgv8h8(Sf|A&MaxlN?Rs`!T1RXz{z)R5(V;21hs|P55LY>WmXooV75%EXH zu>Ep6xnX=|?qR7@kjYOTrko7{D0;h!r+!1esYZ1+@1!4fcRhRAV{y9iHak#+F&uzd zoFp$?Gjz7!D07ik92?qZ7m;6=51KM*Uu1#PAg43+c*^dtBhHOH{m(^aPrqL5W+ zg-B{lE!j`16(u3-!=}^zBC@lF?7D2#@BHw5U&$r`u$K$Ff$)>A&7XCdsVBamSJ5ad z@a>%B$f#86{iB)|seiZ>eDK~ z2NXY(<0~gdtdb{-mg2a>CGH)dO8&;JW-SmLP=m%*hYoqmZ0~#_O!1Ah6BGTn^=*~5 zdbvvgG%f|=tKo@HjJ-Usx6dtAmq@3V`w6=(3P6BeulAQ({-{NoiGnr)bY*&9ukEwQ zNN-W<0Sa;dn7|Gi7^t>$oxi_-y|n;qahRky{HAQV+O}2gQc%_Lv1ZEey)z!wSz8l{ zjLsdhe}(#dt3LDTbX;9RSmT#8bamOCz8j+nzaGZyKdJe=KFQ#z^#Hpnzsp((#3!Hf zQH48(cnV~^yexdHO_^RKq3eIhy}`XVDtTIKoqXgjt0pCWl>~$U@VB@)=+7qKd7Mb? z5&Y|;IZ2O@rUBU;2nzi+m*Z^vfAo~(1`qrtlM~AXA;VV9i`II%sTryX)0~cN=9~@o z^_JdTPDHM6K}F2!fscfV$CKyJ^7@)ILXM%dLf(HU=?b?dnq>hwlC_$qd??7R5D=&h zL!b5}bM-j{Lz~QBwsPj%gr)!it z&oHJ$KK~)1xA0i$&wr+L_@*ZP$gS>b>=AEIIZl|M=LSvn8JsYWjIzahyCn~H57z#; zqh$4AyT8}?&R9;f2p(Vo?sZj1CwhSsAbROtHs=T= zbM|e6uS&?X468Ivv~ycdeL#!$%16J6$Kp?h)d>6R1R- zCi1e?1W8Z0SZkoxdidSA{zoakGr{kHxMl<(ovf%%VQoroAu=JS4t(FP|CZYCK^%*T z^;|)J&=tT77tgur4_w4JS7eA*2T+oJ@3@*~a87-Hm2L%4Vy-XoLZ+)XL|qs28Y?Ae zb5md7Zau}Z;q~zESEff?8p2g+-$T0HBl+w!9%F4-#-ba8G)->6yP%ycVI0r*`Sx^} z;0=Ak0H$sHLzw)^m`5{i>Hh1Q!Z5<{(@vvT5pHF!>-=AGAOMr=;+>)pvYH1x)ssi6d4<}>&vcRr5AAQ zA1<2D<@#54LO&6p#aHirc=jo6*{0cb>27TlL=ZD+S3v*g8RQkDe|~T zo_Gba<8}2=I!po%|Eq5cA(k;^k1C~3q-9@Z#z1hHsvO6@cZ9fjeK)jy;Yn^BD&R7& zLrdtK7t!Ae%8~~M<3Wcf{oS?BIHR;O7%T=_my8DF1jzzv$pq_9Zf{t|9mdnm>e+_C zCK?^-emQ}d{le7jD18K4us84aNcrb6XgHc|{ri!7YeZs3(sVhV6@f;#9>xcv-ePFv zOVn`{9V-%ti=xE-wVbk)0IS;|$UoSCG|5TyEu7NrhsKo#JWf1&cg%@~WoqB$PFCpa z4`se|d55#^pTF`vnrqh4b~uakC!o7#rzFhjdWI*lCU*B{dY@!q97y>r@dx96y#aF22Rsed2%U=!EQDVAm}8b42HZP74G#{=*OLJXc4|@T7!XJl(BZHoFlck!Ih9Lm0 zdLR}XU0CTc%vxdUH>fzF)ik*_kgVLAx%O?Rfm>-Y>j2~mcem5j&6;wyMgvu4LFPQ_SmC<$W~u*aYmdf5|;e&rKOjxUycWzk`I{?g3cGp z##Z9p1k36pq9fO0HBC9E_snArcylYsC8L*Jiv$v)Yp5K6vL_SoHv<~~mRGK*vWr3} z=_v8_?Yu4rBp*)5E*)Yi+>UOlpbC(0O-LVDXm9hS;^%^3K2}98?CWom8hf+;f%hTT zP;r;d`#-hYd^I288yU9gfqk{e%&(Uy`>uy9h2Shm)R%(;`m6WPI&qkv{GsWyrBfg% zw(a8Myn53t4`8FSFP{v_bRXOs%HZGid6jn#`i*(2nbxLmC&g5-tv#g@c8|1_yQ3R= zv@NP2SrI~9Kq9%Pu(&(mz4Ao%w)~2DB1rB8#&%+s=~iS;@=uvq*S@T;e@iTRWMKO{ z0`s>lI}v&*`m>5BAgzP6Z&W5p3E!M}Hp%yEn9H|FwUq~3yG#g8!5NafGvM4ksjbPU zIv!=;I`>PgP+^#LlXdJ^vd>83{12w^zki?bg!Y-v)(-ygj5*glXMON>Hj0S(V?_#w zA=^Gb-AQbXI|ke5`MBL8WY@R%Pf~Hw5s;T?X!=dx`i&mp_6yLDSxXGn7b_UHc&5iB zaOjptfYVBw_G<$yjhHy}mk6mT{CB=TYyTeDR@CRXuY{;wf^1kKQ+o+1_m$QfM$p;s zUqrxjdIXA^0=^N?CM2PtuBq>;u(q5vn-qGL(2XU9&R%9;VtG^hw z#>5Dx^pdm@s7cOgaFx?=DW!68ddThktTQ$)XjHla_W~^GO<7};q+6Nfp-0J9jPa`=?II7yNFp8 z)Fn=vrY`bowXb;-oNKbppi!sdJR{76ChAM!n`-#p_`V9x>?W0Pma4fXH#D#1*Hf00 z?6lzz=& zPxAR%nxUCJ(8dBeAEmTIUy{61`dRxD6~D)Q(@#Vv;2(@Jb$M^G3`aL&Hhi8Z;q)(V zSxw2bGP%EY4f^l>6g}lJ!uA?pmZL4mZ8p zGr6u_uYZ2zpkp>21H*d3*OGVpp@}I+Kw75f_H-^Fx};VT2a8>{j(rF>>~2=5AbORFFJJF0B zA0q>!?S{uoLg+?rCwPK9)mK}QbOhiJop>wXPUjJ3k)w%u3G!%4g=Udpul$Z<*;KLq zCDGV;?A#wq!9eQeZ9lafQ6WSGV6HKI!trk*#6@o*q@x=vLboH>^wRK<>XSpkMZpee zw_u2)dIGa4f<|-=Fsr!_uaR9u7EFSs_M=rPf=ok zZ+6wQGKJyxlmtYjA}b%^0i3grs^K&d5dK_fq_J$NT#uy>HUlC7FZcY(C$o54>tQrY zgHhF=8?&7!+6FXpSlM^*^VfdL2+>In3zo^hc9`xxR^x^`#|9mY-9{eV>R1OWsy|B4 z1)smGjUDNLI9^xawUW6Q<&xQLLR!9tw-JF2t60vT75CM};($fxB+ z*@(}hm%b(<&Gp&}PBC?DV%5mq};s0+w7 zR5`b9>va@#tvu^Y10=kp0?Iv6wns9uI#ni`mHzMD&y?8@4MxkfOQNHz{QAf&rwimf zYT$HHPV(q1RXDV~9%~$jtEq!+A{a;%L(FO0;rGl7>`VhJkO%uqS}_Nr#ffnA+~55j zkM5bcCcb$7Bi9v2KlGR3Q1*G582i^#2SO1nz!*S$US!@A_VmeAh+2>>6mTriF z9EkG`TIU6H-n(KbfjV9at0Bley*kaQ52s z78cQx91lK?fsI|ns(VNvs8PHgS?@MNRV-`>7sc|@6(#Rfy_T<5w4qYIV621miqFvT zk-{ci*B*MqVOXO-CTR}X0d0dkzwbX+VcMkrFZroovl!z2Kzz;{Ctj_BJksnc0X;O! zRT0@lAB#L?xCSKQaMCc{<(vScXv%xBz&Gi%hg7sIy(o^Ypgqd8`d-uXxE4oaRxq4` zw#zh?^%RpK93n?WD?y-2w)5>h3tcE4N2Urx{08_4(Ir;x6*AR}?*}79zl(eS1EuZ? zH^~B{MMh+ia>uu1G1Y>Y7osC`OP^j&{-|-W8}rsG7TK663sP|*3nvJ3craCvEgwTx zX-eZ!Mjc{Ofy^`t>y&B9QI)Ph4FwB`D3Mby3WtzjUZmE;38g{{EWy<`BiXjDy(Fod ziy9w9XH00rWI-J$qhCGF3sv9Qz&FP)xNe#rXQn~mFh$}$N}_*oi>csIw@JWT`PV1a zD?c~@10dyLA0^SM1!k#M>yey);3D}$##?UZ!p4XfuT{V85%GE@^}|9G%P zoEQG$`b{VVzComZkSr?IvjDjB?)&(lL(fjvm93Og2Dz*0_v0-nh?oc!Fn}BV@{iaL z4<#8x@YD4!fP8s_ZZ*x3M15APX{I+UY6#hZyJln*d(8>`ND$$mCj~$dXadT!gN)3P zBs_vB8otO3hn@z4?0!p7%fjX1QUrZY_!^kmvTLH`m+X7k4EUnp-8Gg&>?oBf05!?W zzlzQ1cHr3JB|G3vEB^U$$ffDp6mL4OOz0g-0WD;LtO*ZX+%Z?oX3zC{LslMHPGb_V zL00uZ(?S?#*O{AiGgE03F4Wg^Iq>i8_oiI}^wJOy}o`c>n)pJR_jrvjFqr%nR)Tb;|ZsZs#Y z7z`E*kX_6Y@oI7W;1Uuy-RhI8B5*yfzID)+oH?l~IG4xVT%E16A1b2p-+n%RAX!bB z!Elr-dV)2Ie%$d0z!9ESw;Rz7tc~QVi|>Ecekj2{O4K)jMIHFBCg9%YuN}By=E^ySl@1_#@yoFD0Ni^K6`B2P?1l z>80fIpFW1;NXMBLFLtlh9?OPEhfcW7egJUcJ6yEJ?Fm+W}}%u zJ0LFwwU8=jaF0Qa#K*HuUuvj7=-r!a4{&*2X5`#flMZTE9~bt_^G)j3n4PjK3#8Ng zR!8$?9L9@>v`CB1f3_S_gS&QcYg{duVVOys#?#GuEH_C@o)3EOa1NTSL8pWBw;@3XpGU!j#7e=xJi zcU-uV09jYuT(K_ih=&+_!~l2B-s1xLtA+9G9xRIer@xg6Xel274;o5K?}1q7I$*^a z3W6(v$?63fH|6cA>JmUJUpn$~8Q?&)2UDw)b`!{EPPacu0(ebhYo(;1$#QTeh-auY zee!aY`P%#-^o$5_F$9KgwV7$NOVd{OK=kVF@@ISK;VInpKW(oMz$$fZ{6k$URmcR5 zg?TkzJfkK696jGv z4TK3)Nu|Obv_~n9ds)q-^V(KCv{otunLW1FXIL6mX#(3shhMILisJoaiGBwvgVLDd zo^)7@2Wo}%EK~$gd$SCau4o#Xf& zi{KYRGHYi54Z4ZVp9DpI1pglc6jMX}o7@}?1V*!%3&#holWm5^(A7$>t*b|%2k~x2 z%BkGHJZAQ6kOwbm_ON8-pVx9YnsN`Fjc1UD}s#y_8*tru9rSZJH zLmm6JSoLu+@OJ}zwjolXBFeX~ke`6Sa+n~{P5bUrYB&M{zlei0E=pwc8pFU`ZsEly z%vequj@Xaed;{j+oHL1=55ZCa0pUZzRw`=QbCrtxTyJY!!V@}JU=>OX$_}{dk`f87r!n zLLuyq3BX?a_PA$yh`+PV>>~k8OiYA0YO%3kp`wXdRsMD?%;==nVZcl4dKU4J6QEhN zhvDbtFvXlnLEwnaYfMBam_Yzc$27nDI4Ff(U*54{P8qaXmdv-eW)3ywkZ5q_!8u(% zi3eZ6sYE<`{=}3S7KunALO0>)f;Wp@O%Mt>q;TMaBR>!<1A!g<*7-@4_vfMeicpK| zQh~h%0Nk?mmaS_(uYy-RJLpT(So-I}6t@Gx!6ZQwUbM zjFp-}2hclCeo>xXA@Nec|Zr zJG1s!0mmP*;6AZpw`F;w%3}Wt<2Y(b0sbP#;C;O6iSiF8GS8ci4^j?r@kT7!(9n8LN{6;R7xe3f2hbuZJFOOzf>)&3#%fd&QPcP$&XFj-S@2{zrX}~5W)p9O}Y3~r6v*TSn5d@IYm&PEBF5MeL8(PN=U5ZHvU**^@Vq0-|ch)uYM_CRgo zccQw*s^0papPx#t2iJ7+r46|ooLk8mMSjZs#LsK=qrHU^1VR#6_GRTF7IHN5w7}?! z(u4mkLP1_88zeNOySlo}946g(l{{-pYH1Nv9?x#wOxzM^cPx1qN}MtB2(wS!&-!#Z z4uDybGR zYWVoRN)Q5IAH?~chb_QeZGnNL_&lk{ei;CWq!8xi4az+Lf5>7I;!Aj}pEv=$}I!;pLa z1Ze>f%q9gI<&>D7kUwj_M1i>J{&hof{>%;5Ou=EOe})r7F-Jo))Yfl-RY=tlfS2yy z(}bbE&?x}KIO7CWiiiVsK8UX^I4o$VOA)jsRiyxS5gFLqV&2z(qKt)o>E|6}7<{uU!6yxgN3{^g1 z_MbvWOpVt5c+}F-PgZgq@_bq1i@3Xxasd?a8>% z@;Iut8b-d)4obsW@ex*I%t?oH<~qwG%5L);mF7E-@{!o z_{>Z67CMtQtX!;RLN_gMaijDDdJdl3-k0J+{uWsRL=W*=Xe)z`Ws`yrfFT$ILpb}$ol65zS>z<88S$uoqKXwVP0*n9;l z`UdDdf2jG5xizT(RkrqI!9+?Es*K2iu8u8Hq=aT$wjw8-orDW@xJ&*JxmXamCs?{k zENo}gglWJQW0m)%Q9y@LL|7es`nv)x?#-tSfh`RaK9fWZQ3C4Ng?k~~C@Kwxs0g0( zPM{@1J%?ZhL(I-wM6DzST_}w#Muy{48DMVv$j`ne{&pkhEJk3)96TpTrA90Qq5mJf z4gz)fKN=n8XlJfvE4|MDX0lSCz!;bXb`CULa+yg&je^8+FvxO7IOWZpb-|qf>)SC+ zU`;O=UDx%d`oSvOB3D`Z7W2(2-vX;l1(6m&t#W+mZ1`X}Jqt^J=%>%|$s1OLV5xhL z|6_wx;L$lL0xz)8p$Kz=PHa2#p_1{pngxkCNSA3J!-6tA8uRDCR7hA9U`We*Mg*L0 zR|iDN^C1TKFvW#(*b-_#%mh1j3l>8;G6D*N(1o%zLHW|FZp*z= zgcg{I;;Tho)KB2eT^(ruyO+^aKUvycWJ`f$=rX@3kY&EB37m;U=<&|n+xU3=py7Y0 zp`iiw;a@DY>__U)VkppXDhT$0BXEaVVA@_{Ti~*v!i5k?Db>u6Dz7Q0d`uwsQL2Uj zBf`k?yiJZ2^*wxGoe-AMy5x-&H?|pl_y)MT`S*zANIz?T66;%gHs6M;=Jjq?w(yZZC7M?TJZ84g&O(q^bfKPo{+hM!;LcdMHxogOU5q-{RX;D32XSgsG&W5(tiu z4sn7jc(_>-K^cIFXVqQ*lnXSfd1!nLJY@lw@&>zo0B%Ff&iXtGLM0~j0w9rRb^_m% zT^@Icf~}rp`>a{iqc^JB?)vK4MCDI*ouYyLohmb*AfKJtqI{W0iXmpN0Q+6+POU2( zxoYY_s}K2}OrS!ot4EOIP=_@~fEML*n0T2%JT4FCPMiW?Qn<+8^U}_W#BdFsE0LNU7J@fvK^xumAX6 zF`ya8ccIS}a0<77?)T}%kS7oaHqM|tl}H>rM zmj+tcxCUKK<)Y;^6X@h3dtF*Qy9Oo?awJ1|KrfJTmK3Ly*VacnCH=nD!H_Y)D4bim z&w%7eq@$-V_1(45DOOP&0M|ge*ZJm3P^p75EYWK07^oMlVEbEH1%u0rYJW^;e_pu; zlxw4aoMsHfRk9BXEgxoo2-(Mzbee8s(p&UU&J3CR81%?JDo&DqQ(T>#*Cy}ZzqVg^ zv?Qg0r?pIyWGHE<0kz&KeAR;Vax@PxX)qIP?zgidnty&x=N$tVN^dkw8QJ+SnQFgM zbJqQN#ee|HqYC&z6Gwf~lk}xe0nrgEvX6Q|n#ryo%sGCl52CwX?+yRGeQ=Md{Xi0V zvH2sWk`j5)-&F>#)k^{gle$W&XY!*9A&*Ny9~kn`^mPyLfGB{LU;25rtb?U@KS4WR z0Suk)jZK0#ha&HIkuvj03t)GYx2drU{@V^!oKwj?KMsilH{sAodeD>zdsy`PO+PIT zdgdK4Re{`2i-lLj&CQov2b&NCk@qp2S81oceXg=UOgb_Qg>%>rH8PYO7cgw3uoqo~>8nms6>+>!&k<7vsJm2)X7eruaAOj?Mc_>D zz&~%pMxVbsI<;1A_RDvX&a??BgI0xt`^cRD6I}0|m(i@k3LP-D8_k1)eq4PUx<}*u zap_=>MjJS~3muSl`)LMHG zNF6aIGcJG(Ag9yxL3=$oHYu$Rh#Lm2z>Q&^R~L-+Ab8iZx^wU3W8{l_OoRK}^R=SE z7mqwaCuq5eaK?OKT_S6B$aTIaxRR;a+P6PG7=-#5+V>y9?hCtffZK24V%%qJAJ2V& zKv)x1o%_@F7NrVgZ}+u!tB{MwLzw#d#9i4Y)8fcpI(pQ7a~Hf zM5fn0KZpC6%#}j-8ozx>{ERJi*I_`r?+s(__|di`*4SNnaDk`Bmtw){haZpU5wsUO z+RJ^oJ<05v2d10SZh50vi6j?9^v#gC^G@NAqZRy88Lkd)f7iA z=?N{g88&b&+u+rpXpdp5@u+PptP<4n);XF5S^tu@A zp3;N4bj>wx-=ck>G~@0T&_bAPQd4_6Bq_#p7<}@NmXTrh&GyTek~lAxkM7vBS!ovU zKvfghewsGCdWFYtCi{K(0UNZO#NXz5&#l)Zn&E}#@ua`0QG$H!W7D4UXf5SRShW5;$} z{UM=1aD*`Fsx;hRNwH}3i*|2zFJfh5ivss4QTTGjeT}F6|@&vQ67E0K}@2n@UOz9vAle57rFU|t$_GMl}jq=7V?KqdJr-X zWwjWGmY0JYS(N{_jVA&xnE&R_M@tKN4bboZ=S(Q^%dZ6Lr^ejCg#}vg8)K;-swqMT z#==2_&}W*YuA#w35XqeSdw?XlDhP=6kEm6@Li4)@t)eLRr{#@pwIyoVtj~zu7IUCz zXXREEwun=+Z^-C?I<{>P`udFoIQY}u@$FI1mquUxZvMZBd+&HG|FC};QKT{>lASFn zJL4kRGqP7AD=U=UMU;_{P4>*p9$BHx>>^}E*?W(Aj`Py}yYJ_Iy?*y||M&da_j@_d z^Rtf6alDWB@jk?Fc38;nQvm_whmBrF#IG1y?A)>MyOk3c`l0Xo>^&Z9m$<`$avO{4 zJKFox=MnGbzuVw$@GAy1a5VXOA9m@G@LA*^Sc2VowlrEf^sv6*+=Y%(n;})`3@UQ~ z4DFd6WARYe;{z96X5g`JEHTLX6lfJt*Bw26z#zgAuSMi_54~adRu9|S=4ixO3`cX{ z@8$3G`_1{rR%yPc>h`7yw+YYkE`@0~g%Qg0u4o~PdflfstNy<_YZDHuDxcTW?DZLE2`|f{_$2l(BBZkv~5bQ~% ziS$*BJy8RQA~#M&l~C=E>NB8HOHU@S4tZF{S6qK~V3jSDp!1FKhn|#_lrMhTO_i~i z)jDqnl-~a`y&3XpZq)v1`qPPJWl!0w5(-Ou9aL(n1ii`$6}>~oMbS95s>x4h;^eq< z#5}yoaBS<9ppn7zs_Be3?4!|GiM$UkToI>{B_Zh{u`iyrF)8cW-=u_GmxLMV1Ve}E z8@J8GBu`d$`@mTbsdB~$JVx0=^VE)T>k0R~(sv5WUMb&Jm}hT5g#hIr$&Dq8{zIkT zUHeM;L9}7oO`dyG*EQ-8Q-f;!?;!w{+80lEJ@jJ@R@EfZk5;+F_MPRsphKU8|7LTk zE0udfRpMAPKPiOtqkG}^$9+-VqmmK_mL&n>dK1@iwpJU8f;X!*GAw`F)^ptmrU*%U zNkpe^Ft%D|^3jz2EXc62S4i*j2WQwQqD%ImE`!Xi0vdmp+#oHiS>2RRR5bVS{GBC` z6TU-Z`6V7`T!RIUvM# z{){dpF3MFCv9|}$vV|sUGsA3Mt0)oQe~wjzv)RF8Z}E#2Bx9vKcX&VaL=4yhO8TI< z%3{bAYGNow$fS=YKrLPz~+I81-(mAZQ8Bxg*1Bzc{Ew;J8#aX<6N~G z06$3eEiX5HgizBp*^$|o+9)QbO~sGyQ%zTeztISn1YcaEeSA?my(3O9=MHmoh{+ z2nqcMMJVQ16xyI8hfpifnuL|*u@?&0g*18~A!b%K37+sU_qU=6;u=uU{;n4_)6}&B zO#vD42hY3xWhwGp*uPEmOhQPCyQt%FnX!w&klo9qhZ}C{-fxn`yyCgFO#g;Y+%k$X z#}2|kgrf3re@8g0V*t-RRzN4db|qB8_WEAuK~${l6rSax=yb4U#W<;?9emD6Z1$d} ztZJr0l(b1=npDe7IEkZbqR1U6qkWSX_qyXXXriAYqf$nTOgHTVn=?w%XV`AM_MK4C zyeof#*E$kWqx&HArnddeYlN|1N?4Kse6MQRQQKwwmc1xPu{JejBKb$9V*rYNyP>Ff zkotJGWBSpYX5Q%2pVQOQYY9)ST3;v12giAJM{#Bkzd86Y&t<9b=p+AP7?G!(k|!Gu z|8dOp&%cqQZ`}BudQ*tZTJ-7WXlpR&fH)H0{?5X^f`s5c!4WRfyf|AS|P84TBA!P>@8>Jay_H^2Q9W z+GljtKraOPUA}UKn=$QA$~;3~QNte&-x226Oe+ac@aTMqMO`p~^linV;U8kr9p3!q zB~_qT?uS)Q{~Q-tF)VB`*wou_(T|lns&sWhl zI($y6Fe^|@>JB}#;=ge#Q#>m!PS$-`#o+&(81j^jcFOSg>+~n!StAm%pFxLVuKCl< z^p%qv_b$7yu%2@kA162+~A}HdQS`Q8M=ayF) z;Br{$Rr0llT;^PzF6(lOZW_vkPRoLzhp0DgTfX86;FUa?3j#Hx*O3EY-_2`^IRMgF zoGH{&@Rfk`C;)Tq&OlA3@H1~N#BaWFJ7dlI_u3Sb<$S;SMxjccO1qLDmNE;99P!Ek z-2w<{j}ogH^DjNvmRZp#_S9je_)ME=qQiQ+!T*}Ni0cKQ}+*wFj;Hw#S}HlndWn5Ll0 z$UO0fFi3~rgZ5MA55*yXPc{9d0GWR6FZ~5x_!ll@<>avKlTlE}fCvwXgf2VcXkDSB z6>g`o4?V6kW&3l@wcK2IhtHT{S2$YXT%<`br)Z^Vl<<8Aa zJ&XMRe1k(YOzD5*4t-SrPfFv|vkVcLIdGDnIzTKCD1;76&vseVDsz~^xmgKli@J`^ zg%3W#uCo!(wnX!^3MhPDjf}eZW0eP=i9;qF3+DptB@ryYN61#XPLDlyDmTs<95+xy zRa^X4Fh5-UGyYqC!ci+4PNAB!b6H$7q`hbMRZCl#>4283R8;qkQ9gG&RLp%V1CNkG zr^hos_hJg-PyLoH?R>koCie5J#y`9V>9XjZrTq(EbGLo*IK~-0_BYJehsHOj zf72{aJVRfg6}6nQ;DN0a^mzLw_yZJnfKEs1JAf>rNq9EtS#ma%#Gk6D$H3@+!!=Ih zRq6CwaDK_ zJtGI8-FS<@Xqv!cfm$jfP|$c2_TQ@KYO+)FbG)GDw>CRS$2lW`l++77JGi2pC=#N> zwdnSr1{0JQV3ZYY^jDBG@=6gb^vzxNt0+L0WRcbxZ^>*k=R-0fe$%iVem@mWrFHj) zd50VcN%#%cYu8jN=LWU#uyZr9{{ij)ExCZN_Jtjpqn%ovO=!{(KZZpOYDGx8y1`14CA|E6SQ6I1)YtA zZbIrXAFH-;P{<*q$f%rHk)i2ri<(qrl4HH12ym?VI!9>!qfqLUpVYBnQd9=Ib_Joq9LV0fjqw+w+^W zhCu&Kcr@^5?hIm}Z=XA0h~xK_3bAIt zD%Im$6%~C8vOKKMnwmFBid+Tk#$tu8huumJrsU}dzHg9+j5b0)Ezr6`L!$(|h^G?*`_e}8huI(m=UA9YnY_sPhv=IIQ|-0 zkb`(z=_KBU%wiBx;K??A0^4}R=Q$T<8?(Wy`R7{l?n44CIqHl3Rnf1Ilp|?A*+nQG zFo1O#lPC8Y16b3aUFBcHAz2yM@vD+FX#oK2i*%$XrgsS@t^Cv(UF0n$Y8bcuN7N$f zTnAUmivnp@B8BfqT1^^t$CBtIQMbFe4@B;OBbW-XcyGvML7*+1+4yjUlvD~*`r(pk zpqwl0C{RIsM@HuKpn>UiuA_5itGAqM1YueE;RfxxEMvShlf~l`Y5 zmD=BrekH@56gSRZhqIu({!U9JJuNK<&{+5DO(%4N#143^WZ#LRx59$XCj zG|6>N*c0+vYaKiM*b5=Hm7?A@`mVwXc93ZhzKn4r(dY;mZzAsLrBGmik7bs zl!h0}ey?Xn2~YMyclebk+e+)%2wk>>JM3pzIPT?=v;I8cFgf_bDv-UOJc~@_X$Eir zOD5Gm>YTe_cW#p%`>M!(dWqK^^u|3-z|fy~l<8l+_O+v-JW5qXLjpR!q(ftPbxTXO zdO>9Fv2aun!+=9!fH61p0IFDr1y=AYL2B3ddp#q{ZL#3P%D(0^6Gtsi4iY^e(&QR` zsNjC}Lix8-6Y!-np$xt^oXK&TBZ2q;${jWoE_YuRav=Wn>65xr7k<#|*8*Iu_UDcu zYm$L|>hxV`Z*Mu>LO@PI@hjwE-)a0|Nby=z5@GVpjbX^^+pL}mSiLxkkA#c?XQ$7QL2SE3A>l z2Yv*T-$La>@4ZPQoZ~~Hlu(HzcFrq;c3gFbcJ{jh=#it>i2fhjjT^ot55L5ldcDL_ z=H0Tqgj{f*(O4jnvoz?M{Q!V`n~oje4KG(t^n*|f7j6#e+c9Hv8~-#W$9Xnm{g`jR z9$)0pM1q9J19onoLz7YIGG1(pAoqX;V?w=_x1WX95>(p@+l9_V;4Ll=70q)mP&Al# zif0!ZPP}me4*>`K<`;0~%R%^{8Dt+w40uH?%veFGA#NF0#4 zyI54231)tgYd+ZyxbYdZV&mb7#&rjm-JX2cmf0A!Z|DOZ1+%B8iD;F;bJ~b1#Cs$m z6H3ce|Mw>wBcm_y&)%5+1fTrB3>Y`3McTjBC0$8`KmliIsny=1Qf{edEOtc2ume-8W|Bi=);aB$Fg} z$pnsoPRCs^p2F^bpRKBKfoDC?A-(L6{;li>TLz+@+_@+k*=1Tjh zwOAtL67QJZ*P%kg^d|q{Uf_wFPo{yT)_?SIcGDQpiAYl@@fQ|Y{8=ONWQn=qjMqW! zq66Vt>g|^S&ws2nhuhna*WQ_$n$paWi&W~2WWQOUv#xZh;lTPP;Yd>DHIRpTTJ{h5U2c0YppGvptr{{VH*`Cy)UzAt#8;Y^~NhtQ0dv42y5L$@U3 z9ZhoFY+I9O*5+Jaddq{JxSOmOIkhyq?#V*`^y;Jf*t4SiWlqiduQzAfBL@A29KOOI zf1)YK(8yK^tahV6xG1R{U#n!_@Z*a$mF-oi;kl^(`gh;wkiSf?YdS~!IkocHyg35u zUBV{t3jRVP2y^B|NaJ_9&DMg73aPPe3sLf!*_+L-W4FM)<8ox+PJWsD2WCG>v7 zbsVOWB02PTQ0^M)sChO+HF`d)H1hCqTs&#)sMlqo_DKY#D~2oAp0;1D9uwOg zH%wdbA?@~-St(YHlvyst{{FO(Af3VO#%lT2>Ok3Oy9Gz__{Uka9_|NQ^O=&*Pgg0I zHJ_n77bE$6JO+ZQcFrQ_@N0%f;c%z4^`*a@^*KZ9p#K*_%MAMo?>B<0OdH*|R^=c( zy$YH*kEfc1^SZ{WH!}=B>>PMb)YomaF}daQd6<2E)$_H^II1O(4AB9P0CV&`f~f`i z`*MM)4s!TmfR%jHLM2W^K7u7Nr-Ao|QXhngG7aWp}Cc-J2r^_Sk=P%c@L7nRR ze%V)-t{Hx)&+UQxjD=gTmJ5-liLwhNXA3ia*nK1wM8TcQ1G(rsB=0!DB1D3NuD4(R z*E>&iXZXQ4;m;qz54oRsOV-G5Hs_g zez$@8_SaPnuiu@bp^QEdShmB3>@q*qED<(jv`GCa{zw~mMl%8YNliXsIp%8+sIIv(D~KX*O_ zNJhMHim>astXuQ0b>FfhPGot$DwuZ7b_)?(V%JW{o6x~ zls#EG#jTM#q72a6EDCm-BFLOD;`iDN6|!S*1fZPHQS+%0l&oA!(66);BOui0>=8fA z=Q7yK>=fMzhAQxIh{fgY%(S`y|32;!8 z({3C^FTn#r$Je2Qo#pfvZT>4g@%)Ooj#*>|NAC%HVNTh!?)T^P1uOUsMS>71=f?_p zz(g4JEBq!rx?=l)(k}Zl{uP#T%(X;sl}oo_A4WkeKF2eoDz=?r))poi^O2C?6(O#} zC$Y{*H-jh3Bi!KqsrOih{}JOvY=g`sBUvj+a#aa>XW?t-Ld-3OfOEtz zS+4wMdClbe!P(&HHt(#G*vdwk^;d-y1&(J)j2V-?57_rX{HsfWgZjAMgxEFokI6 ztYtty6jeP3N!RMLAQl8-Xzg|MciT>8?&FEL%!gzt-DC%iz<&l`y+akp{&as? ze+fHCiufTUyxxFdpva(41Ri01B=8{S7T*Uv+nZ{`cY{9_qY~b@?d7#G6Ugz*h7-|l z8$s`I17aN5!=WWCy|X$|RCsT|mk#GLg%(+F1GtEDqVMizY91e{03*%h%{ECs+$8A* z=>SJX!&(Yw^dtxx>o$(g+kmcF_)A*%HiksjKBhHjfVW_QyXYLxXNCJr6?XZ>I)!6R zXg{t>uX`R-EkxpjyU^)hfu8OZxIIU5J&jCE5IMqi9xod{J!Qq})5@Sq4RC_B`)F8` zC!%Z=d2?In_s#8TV8SSxg*t80%Q6YlT* z44ug`yBfi z*nbay$cR$fKX1UZEVsTFrDl}Y8truXx_Pa1;N1~lF%#6Y`2kkXb4ea%hU;%k;)gJWHj1^B)-VC_%uiX8NYF`m8B`v8`eKz(nc+6A2bdZg|s3BKJ@P{G=cKJOU)aZvgmpb?DZNBed zA3JK@obsX7wCUNE`GJP{7#gkVJ*^EP+Iru(F34xSfAY@gM4+J#3KJ^p?PRQ{EALOvhom^qY537 z?1{lL?kd>S?2Iu~5cx1ZTzDKz@ntqbRs3}rQ7H}mT@pYXa`TfXWZTGMDA`ay--xd& zBX^FEJe1sCPgcw??*P@q-WJCe)OKwt=@9**edy3kQ*uatbQPugR_GdJ4P4yp^UXg+KF~QLzP^3Qh7!QfIE$nwoCe`T z6F7Wak3uwah_CgkH8{-;6*YhX&{Fjhb#-Wnf(G;7Zb2JGyTuwYz;9!lf+pKL0=6JI zHljCrR`H##)1nGmCGp^0E!5Al$Ojm$$9+M=UtGV#vN(Z(#jUy zc{G=n`-VJ^C9xMci`R}kc8>BBy{GW-nlx0!u7dj0#o8_u+Mk>!?$v`F+tG^LiNL=! zdh<$-N6&HiUejUOW9mt<z@p`t2T~tQ;V7tBN$`yG`aXPU>`91 zEAc^A9o%|lz2oAEVrLHZ(SLSEYDI0 zmlT~xeykDG1(J~}N3v}xQ~$z&KV6>n^5-a^R9vzuKOU*moo2@tVF=15>NfrYa;@8O zt_Fl^uCoTv{(~Zg_!&O2-xCJQ>F~@^{|qs^jyU%vtDPz*k*uKjWpU@`wDsmFtUE5v zFTChi8zgjYl>nP7qW)CvD*>Bt2KwTYo^AO>!Aj^fhuMyMU(0HjbGs$`>kjp6#BUl7 zy49trY;DLwIoZHl@NVYWn{`Hmh-m2JupId;y18r__=k?TQHhm`yt}-zOk0yCK!q{> zVs3Ljhm~+HNz7w#=jxQkgNCEW^^dK|>wopii{>c$5N!h+2rf*SYoG~eat-|Z||9M?e=7bpRG>_VlT^rWCe(`>p$ zzQ5F>D%>TY&Y>UjbbqHl^phd{m zk7*hz-^*Mku`ar=j|H=_oc>>DLkMpu48JcOW}+UMi97n@M{Bo%3#sr{U%ZckNm?UQ zVYYHRIcF#l>kc)|Y9lsL)<`{Qopn%CuL!&JBqeX@iOxu_fi?EJ^vwg14-MPQVr|vz zrLpSZCo-q9`P9!lLMKSOe3DOtX8BewPqNG?Q+BL6>$iqh8nfZhD;$M9)umZvg{|&4 zIol3CVro|Hg^CR~CR8{TZCG)UwV6kW>4diEF7zE}n`%B&5c6^ccaDlb@$#!R4>9u& zGpny1f;_-Dx~9=2Zs7XBBPIK*fMg*~tXJ)B1SaRO~$E;y!);l8w?8j_nO*0bI6`^NS|?8?!E>i3z8tcH5XjJAkvB znRSimUiXt4UEOQO^=YCl;yFEHfwFn%-~dC=RyR3s29Xxy%u-)^wo*KwuJOw=1|QNn z?D2Bq+(Q&5m&uJ(6HmRx{@5Rco*#_WvW2@3?v2-E-AMwEbbj|Qgoxb>F?Z>H`#qX+ z3_w6jY{Jhvr$WTc5kSK(FLZce_FZ;TpND@_XW?dW2*3?;=`zaB<5V}Z^2&olXgW4q z1aZI>(j0jA+p?%KPs__j`07SM^l-Z}HubHyZj>1P7**V=(|qD$1(z)IK=6K~<&-44 z>3bIhzTAtiNkU|#KUeIvcoknG(o%bd2NA+9o8f_@uD)dVb1KI(Ei?Uec4KGs zM-=6>#g=07^60a$Q1JsfkB&Qkit6=JHpDH07Sexo@`zq*en-9_DHqvx9Iu(^BVj;_ z=tOM&N%_oF*r|l=5DwQOElvWa)Eip{l*zC>=!<{QFo`%ClM&%!2kqn=RNn=J%t}|_ z=Uq?ngSm9~3FWd*V}={p2Ys@1dGnP&wwJH}Al3H}dZxRpg_arlM-Kg2dy|1%J?~O7oN#f`6he0L)LX0dhe@w!_EVc(l!)M$ zubTOvvOd8M+O8sAe;Ax{j_QV`qfJMXldaCM^%+??xlJuJBTtKYfnHAs5b7OrZ$rI5 zE{ziUsy8r%qKO5E#0b=8zBfE;7-`C?Azg`aA$jlD%)Hf#`~G-mH0q$H`r+$g#vI*J z3ipS&g;YEZLq*0zx@)8<;3)UQ{$2bO&K}&r4t)H|iUHms(7$~b`%N%g^fUt${L_2p zERiAsg>(eg5L$-J#FNKPn)TrRv=1ZFay*xtbIqGN2AYj{fL2qb!2Zu_Sr*j&sm_F5 zbz2vw-?5+dVP2aa{PH6pa~XixjLRX1JdyY^4*Bx)VGttrt8g|A$)w62jwm;4C+#5V zBVIOXzi0e@WgE6&JNU}m6as9c5KxyJ|F+cr&SX$ZsJ5gXbO2O{L@JFzlI!C1bN5rf zKw7|0#1o9hxnhD&sKs_Fcj?!}|2PCGYnQ+E8Ux&jyeI!gw?QjHcd|v*} zPZ6#bU^3h*m5;k|^;-2gS9U(nJ-Pk$R=NV`vOJw))BbeXUHoWO&WIorK~H8=V^FAIAvC*r>4fNNvzIY;vr*sz{DtF8N>2X_dzU&HSK zr_ON~VMrSXL}SF(_&JLpxK=~^>bzqIJL9Ia)+tVUz1S z8DfLhD6#8KlSfT;iv6FU5k;C}Nh#e3#$r3h;HC-#J@M0BUYzCx&%y=1*$1Wz+y~^N z*hZ$o7dfvHU(osclHc=OI2l~~OgvPF!k=GJb8Lo+QI2S`|(f8Ic8#f5au~G#s2<0CcM+Z6~YsIpCp@K z`5D~j;g(bC=rk{g`@=yE`%~r|AI?C4?1vOStDSUt**ccj&KlyES}b&QVz*X)XshZ% zrnd0c3okCf*Ph$mbd{usx0X^2Ia`dB^<-ELtZ}P$@zcuF7sAH*e9>(@1{p6-3|1mB z-b!g;R5VpzU;+&HtXi4l@<@5f(^aDw#zEwLWx*5k!GG0 z1D)|zU0w|Akll_^5u+m@t&jMNFP?=hp6RhI#e+yI!i18V8E zWOifYU7^s=c3SS<%aw7Ih3L2+MG3Z+w83VkjJO(q0V*2BGUN;S5{&pyQX6 zAcSW*7jkL`(+kMd7j%V`)XWnx?`S|eGBqR{m+9MsO#cnXv%QuN%<+)_g~AEK!ee`h zjm&cx`X)GJiGhB@)!>{~1VSg1VS1CN7(JdB$aW*v(ZYPldMsAmhb2{)&i?qeNL! zD(_1kR$o*U^$zN@tO3uZsf8VtjvaaD#7*RaUsIfwL1rF}yF!+N$Jg@Gmn5;#1bL=7 z+prhL?vTOTBz(;HF$0!{4f%ZTzDy=3;EVY%5*dHyPGpE!1VUsfSS~D0PRJk8```i> zusViKo$(F6Iu88ykOk0(wC6rQFg-*h;J4d1)wD3ppCnP}L-gs7w_mAHLUWoc$Pcfi zabYHe*#xGCnpE^eO#Kpk?+fVwS`d5MRep=ZCw=DB2MkEz4VqaC7Ag6!k%9Q4(L25g z^pZFqU;eKakU;&&+q=)M4yLCKnVyiSizfqOgV)iVK3U9e82A5f0r4zFy5zyGpu12v>zXQa0{|mZ-6A)9?hKq zc!?~~0A4aGGkz@`^8`2K?-C<&e+rx6f7WY{61@F#6QDnOhGLqG5(noqNEIlg%sr9LyfyWHB3Z(s9`l_tWeB_>)eM(-mAtT}*+T zQ3PIKf>Si!OfLN*2k>%k>&&0^k#)x`D=MIca>;ih+ob-p8bM(s}BApP=`}i5cBv{KZE_ueqHjq z?C&a-86sr5>3vcd8*O!JJ>SZ_b&C@lH!I!kY&j*5ZkpDxVsa)6BJ88mdo{qhkfsG<4SDdL?~`W;s}lqoCbPHDmK z#aZ~}bD8%E+>+Jq+cgFa-p$J0dtTqS$m*^;e%O;11q_!p*^~5svZ^O9@4y4)F`C5e zC&Ir=v(p=7Oh!5rL|MMPjp4Yb0M7UeQ%RCF1CYxE#-Bmd8M-bOtNx5Yt%kL`zo5NM z&4s};eJ6K0Sj$uYVJ$7OT^LO%??b_}hH-E6kQk#rkOP<@vG<0#{ggs2vsUt6!;^1Y zl*cz6Y1Vz#_+)iZJcczvk4P_5s0E}0k8HkjI>|4?P&B?un0kHAfY$3e&Op-8jG)!8 zF`ChG8&=?W-F9s7gR(TptCnu*K&^22?L?%j6Rntg2SDqysV`~YNco=?$p9!*-JWuD zCgS2fJ%%%jKDT8?35>G1^vZOyl=kJk59V2Ibp_g?cgcG`pb3tbMSi!3zr?G9x*h=JFQQfyVR!lXk;ldKxzrUgQq{MXD$bmp*X9CUkbRtJ}_j- zVKKf?QXTdg(j4>Qkj*NO%{&!vb%{9rQW{i~nRC|^_aJJzVcC1Q(Rhl8&GB#O?L+`A zH7JG_E)0z&HtMf-L>YrutUG2N4)TbGMy{zoPypFuOUsN3=uVap?B_2+3Y?&(AZH>X zn0C?QS6p^fThe@a&bAH}8SJ3xD{#JDciVs<@N2=2Ep<@zdhf~o37)&QG;Uqq6@*0$RKy;scCz5Md$m_eC}~{yeKRdo#^iuQJe+PobF{)X*!qaH z_F@Wjr3wc-th?*Se^5E0(hhs%X=lED`mb{3In9c!Rm)_|k`bsWNn8uQQOd*ZbBSzv;M(;N;_``B+Lx336a$dAlt*Zko3|{YwqIi1 zF^A;-o2h2mIrqv(-+4kK**b0bU*i6erZzEOuI(pGQO%5D&G!XRk01A3nkkl>JdyQt^AvF;D0I=o^AohB@+5I6+0jqE~ZO`#X76=$BfYL|7&ix<1K^`KCU*b89 z(EA=v`%0d=K_w8PV`0CWp=Kkis;|+@dz;>(+u$)&CfIHp6i?eMimxyZ*W}2Bn~wan zi{glyT`Y?E(AlvFTSyW~>)_LIe2_-`{yyd~l=6=cFL|a?FTKhn8ldb+{;SW__Ez}$ zw*M{iSll#3<1m|otI*HHY-nlT)mz4d8rw=j(9wemfY^`x8rooTzK*ngJ`k;ufIOJ} zkDAQd&4;~T=AkZQYjr}kb^Y#Di|&_S$IC0XM3jY2ZLmNBK@z4Vt2CNTeQf0JRjx+` zg9ZAk#&m#SIWG-=OjwxNTQ{Bo^yOgobwhru(T~_TxD}_7CVX!ta0D;`0M2Vv+sY|x zKg!o@t{$L?YOSn)cKeRF`ys>WF|yYgk}pn`#38`RSL$A10L;5QC-#0KX&E~DDK$^% z-~n!y*pI>c{awPZcdF{nP5+{?xujoi?Z1$I1%~kKcw4(%t2Dqa)GK}wn%d3m|F&6N zJau|221wJgd0*Csg9VttjO&3&C2_%l4n$h?d*CLV{(JKw5yo%P#$kXSLnSNY$H^t# z2EAiIOC^ugFL0$MmvLqcJvooP!1`Ha8O2K#vujB?ju(5~1XtN+JaU!&gzxN(trBKT zZV;V1P(-UF2q;5=URGQIFmE~Txy!UprQ|3lI26^5=MN3~iypade;wLNN^bLgSN&&< z>}#`a9IP#IC=ycseA$|Xam&t;^cp#=&r&C=os}_z;)L7FA6@Ub{Z?X(yWy|;;2i&j ztOkJM0B%T6F!Q@_Hr<=_+85Tk&+1=^qrMMhIvJrI+3Fon(pT5Gse%Y?+YLBf_93h}LjR;Db!erkf9mx{=A z^CjK%z%-PsC&rg&m6oym*mPz+aK3VQ_2#|Y$olt$LA5XNL>^2FO_OO;^g^4gdy}=N zO?!0lMU3J0CxR*S&uD+p-&O5oxO0PL#j}Nc3@E@;T74JB&-MZzF~?S?Lw~nfJSFx? zuoo&@IiYaKwTT+iEJJtGqzO1DplaH@5&d*)Kai}|aD~L$e24LFk&zew_LGnq(3)Mo zQZpJ%+6ArVi5C!X!wdKQU-)!p;&4>kSv98jfBqb%jk{kRd`lFU3T?}}fd$vxO2gm| zPJM2$c~8<8^3d>~XzWvEWNB@<>4tJ?3@i;KAy0g)`j^a?;0Tck%6f?7LxR2O%DQyr zCVX?-N`!!|9=G`NXi-WRrEymz^j@EvUK1zeDeEH`ws!_4q4-UI!rxWd7S1LmTm*jj zV2X&{dY4!bUw02hKZD0sJJHl1!>v!T{YhkO^c~UBw3il>NFNDVYahO<(<^0c5vzV? zAit>M66P4&|K8;rW>vI-hKYra#B00<;h^IPtj~UVL+>C z4`+I*2_33LoGp1k+Pi{vaSuGM4DaI?BI2HVXEsJ`44G!uXQdjvkD*SrxTdYbRzCxX z74_s6M&N!DGlTo-OO$Ac1l2xr_J)Ycl;rJm7Xp zYZjIvs9kXBS9IM!C@`e?_npj)KW2ErtxBSZvWcD6E3;I8&ZQ@7k2eP#rmy5dfp?PP_EOczyGk96oc)|!=6O+kSIhKwW-0jgcI~2PFs@3?{kn3k#^!sJx z`dK@JZHw*S))=#^Mj)dpsRJ~}m=ys$%SjznD6JR=u=l~~UGZb2eM=I{%Pp=hu>vi- z_yNiaHuk<}s)tSszsM?m49EH|`l&*-6*eOL&--jX<@jeDvSTz&ciS zHdT|1O-Lu1|8*&WLai*-xWOB-{GD&+A5}}!e%Rx4WYS9PN$ecO%L`0Mf7eX&WgC>e z_ic|^N9Zo&I75r`{)WF;V=64l@hKJNR_Q-iyio?x*N&?;9(yRkjh#_D?!6qg?N3SF z2KUbPlRMyS8Un9qGHk^YkW-$!xtdnx-3Jx5o84GI-H36bNCFdsi*(eb_pVyP^rx2& zhlZkMXuaF4VYqYsnTqC6Y%y|Um5a8|gy}lN1?4e(ncq&oH)Pb}k9N|EzaXM)K4k%PGjS8M*TuHjbq-U$=V(QT<6qcFGmTi`W>r4~Q}`ha zxDHhIg;eW-OybZ{O-p|}LyGK(6f!nxso+1wP#WbFWp|s3EMK;-1vB6r4J?lZZ-{9O z!BNuHPi*+>{h|H^f3}Xt0taMhG}k2C;%;VdEsx5^3)q^veL4mgWah)FfIM_{odG_N zh;b;beP^T3>b%f1IN^SX#&@sVw|<$y26&wyZVAVXi;I-aPH14yZ$eNK?P27_R1) zOp@1d_a!(pUH{UTw6a27m~cS+k{AjDqGcs1R0b-Oi(z0Tz}C#Q)%@HBWS3cp+AoAC zzZEJbXH!Gza(h6olt(0^`WC`wDCFVdO3NgV{syf3-1%Cj+2U4OCvChUWTOfr8}(V^ z5-l=?(mt?J4Nh5~Pe75SSPnyAmBO8R@;wp%{d<&>kXlIa*0@yG#Wo;L?u5FN83?+q zxqowW6Bn1iVhzsD7H{@F+w&=h2b%8s7Fa`H-fUraj#fUfd6TSQ0grlO#W0izXduR) z!sf>_nhH(a)A0C?tS-|EArWSv4Pg#dsDm6XgEeldp$T=dC1niwDX-u#JBb?zZpVp2 z);i+NRmJ$MHB219Jb4O`5;_xJPGm%IC5SMj;SEwR_;8^58o|@dqL*5G7C+W4iO6yCp zix;$hhE;}nB6J)F6R3) zW%@R9*Woq=zmpNBg4>e|(`Ye7z}U#?5fAH~t$C9x!vC6%vrX#TUL+V}E(;xsu@iG5m!*M@*&F@SW%L}RNjKLJW zYuUE0lU)cOu3i^)`~Fc$D8`LRM)3UX>`xUK2!07##79zqoGU_N{P$ca_5?s3Wp)ws zdo##P!c@KB`%fenTLMn|_98;_J>7PR~F-ANV5*rGH zIsEnPC~ops$ZNnAf~YKqj=tmsg1P~-L!R<2EDNh#?PLQoL%At=iZ{BA1M`SBeC8^U z+^LfeB*oLM9DCXtz@_r>yoK4xti9B5_z}vKb@F6s1nzq*(}fvustlw9`f;p7+|H^I z;xQq!gu?NrhxIxWknf8@_+LRX1TTj_Dz_3Aik*t15cDl?A97qjm#_>*8oYieDT-DpnZ`94ri}% zr+nMX{=csTEGC?0tN&p_htPMywHVQdy5N7C42@e$A0}XnL57h^6P|ru+0vs{8uci# zl{;S%4<2#bdjM-ho~`>|pABy5f^2Ml5N2A1u?sOf{Cy=3A5>8~51aXz{@cc!IB$Iy zFS0zuw7d>uL=hsZI{81Ws{47i19A?VYp>dxD46!%ro*l;yZ@X?eC)+1sb-7`4MUN` z2?Q2h@X6UgQY|pw0sq623E{v!4gXT&= z5m(gjBo8fsH`BAHp>RhViBuNB5l`;DaT9ZSAVxjRYimge`B&9du+n}wWd_x(W?%6{|@_f7PaMQvI}Kjjg=D zK16QN`kRIy+kNvFHv}%PAKVjV!dT6K7+g|T6)q_GS+7|pPcce2mBE-#Dx9$wSN*u4 zwViSpgg7GS?C>9ZLa=9VJ|)V6c=w>}r37jpD`BcFPq7aGYQ*afzI3wPeP3cln=>m$ z59VD^N4xt6BG`o-eFhN4tBC2>e5ubeL~^G92RBN@WkE>vVe=_U<)guO8vW%qg1W#R z*0*+NV21z@2r9VV(^d38} z;>{st^~>MVI!=57R&3W+(OjZ5Ma$*$qLbRI89R#XXdw}&w!Y2lvR=A0BvB~p%;DU83NeaR|R-R4r4 zaO^7}^}E08lZZ*vhQbaKo4(J8?8GoMA@pGZyL_IIsoSyTH&ly3)G~iK47geX4{4-2GN^vByxC`lEIL>k?m?QlEGe@k_3})EdE)K(+K-o}uvV0(K+>s=f zAjU3r)Zmg%^2T%qN7_PXSPy{lkOMzAmr#fw<$=SSsaKv$o^C|)fCbqP0SE%gNM>~6 zxvW7V7o5MJ_&(;f>gkl3z*T{mPb5(g0!OGiH9y*0x2{{D3O#m+iDi;~GXJe00lM!_ z7*ZG^J*OaVc^fXh^OuY;dw|qI5%aX=NmSGCv@Mpsz0i(c%4%8fK6Df2sp$)^cU)=wX{ zvR&VGALO!-YdjB^@L2}zk@Cg7yCr7wFH_O{#e(*KIPGiKqoG1zl;J!pPyMi(_@BLW zG-(QiJbgy)P(GhFnjm&~`~RWsEd#3Rwy0q^f|N>w(%ll$T>{c5-Jx^~NT(nvh@`aA z-67owNOzZXcO2qf2cP@h`+V{9`{54{u+Q3Suf5isV~#QAbjVbR;YZ}%b4SCaR*7jh zx3%BC6?3q&QxzgEWhg!Rnr(TJRJ+{ z#T5Ah%MQOHb=%zkj|o_^z(Ri;&<;GV^lg{s`q?j_)yPoE?K;h@(RdKTnF{lsma7Z6 zNMbjwT9~k0CIR*52@0GMd!VRYJ$Ik{_Cf)+s~sl8A)0x3`&r#LL~j@Rdyq@c0ZuP9 zIQPoW`YW)2AUTqv3<%jg>6sDCfC%z=pm?JOEja_`V)U;>gVbfTu9t*d1?O4u3&%R3 zX)G{fCVTec-50RG2L8rzZTc9tj+?^kAPF230QgQ7cY6bsu60~W$ysr&p1dZ5Os$%FQ;9v}%;G}Q%^ zWpH0Jweg(a?PPGYw?zRfg*?@h3;bY;0jROdYl8$eN=?mSGCrm6e&bG(KO_y>gCdW* zX_cLpXj2O|l%!kzQ8Eo${N7~AJ#)Q29Jbj0KKf*{)D!q3DK$twJKr72uCB10;HpY& zhDQ2GfyGR6$Qt=~F(dvH`XC}~#4xH?;^K@ebzyKra1{K=C`t!t>*oL=`nP4EIPm{a zANim^J{K?Oo)yig-d`$f({DEbjx*Hyl~z>LLr}RU;QpEJ{cJuEy7wm(!Qbpevi2~D-)7dO z#qEClqc%4uV+7As;X}Nn)*HiT1yW&d;M!a;Ag2FfP#j$v6j?Gr-2avB?L%WHAsXSk z>vF9KKB?cbz5qgz*`F6ggwQtz0Lo>rwyo1d-#n0Nz(^6}bq4rp0K0XpxdSvYfK}-m zuXOJJxjMCD+BJ{&w-UQxqwN zmv~Wah_Y*~!TK-^uEBoglfanpIXR8(%25lc z0Pkp-*$|dzIzTsHdWn-dT;D?XEv!xDf4UxLO+&JC=C^3#`!x{_80Dd)4+JwwWUSz_VA^ZrE7-a<3kh#{o^&J57d}|hd`J>AXo(3} zZ-NegS#Ll7fiBp9;sMCB-zaGG?d1PF*jZyXDYtu-Y|WuOFgAj0j8NiiXs5l{G)HH*n0X zOiN~4akvEcvzncH_6k_vzXP>-DoVMQCFwi`Ct*t zk0VQIbc0$1GYshfQaQST?zl0WA+c%g_q)>rvWLqNywT5uz5J@?#YPRa*dWs>9GegL z<_l*mrw=29e%`Hk-$7H$yaIEdJFoSCJrgm-x7@flt0zWfBvyMHI(6($2w3Gm8YiMo zojm^I1)%4y+jzM~2tyZ)evZ|402S6B05#&ted`=Ou%2n0uynBp1ySLcu8oebpm#9i z9e{6~^h>g^J$b!_uBpZ5>m$r))hjIo8PNqW4p-a2+Z>}@LSCB!%p8Dj`CB2MJc4on zKGTKF!rg?vcNCzgZ=4PT*P%$f=XxJBJEJ==R}4UNIS>t~A zW7ZEG+=F_`E8v15NEA@cNMj-kW={=a?+ySv&6s zc|2KSnEW0&y3Hb=J8}bc5a=jmGi6jy3c*~bPguA)=-VE1*v!5J5N2Vu*5y**egnfN z{0HETA9DphCe*-FW%$th?nWKulid)~_sc%+{C6N;QA>`W=LZUx?Q7uDGMw}J?XF`_ ztyw5=EKz7)h@qQqfYQ1`cS(-G1WwCbYTNo<9656pBXmcs>5XBu^6?|J|H>w^bu5wxj+ zIz6`_B!V&D#HJzQ9gw^^QQMh}mKahRp9(w&MY&G*n7&9u>Hs z`Fv0Zt}NPpWL~A5a@}9;;-g=OlL{A&_jnZ){1CSMUIm1G)|e8PfLJY|%?fjL0Mxfp zRWXdVA*@!)2!Z92uFN^UN1;}kG6Tr%^MJ$=<76MaGgqewj>%jm?_7OjtFZ2{y@b(UZ zt)8otA_O{wtf_Tn(~wSdXQ)2`{B)iw<1-z7}Q? za-YSF4KOsx9IOHCSVg(s0HkS&(8iF(U_3uGV2N>ajzo{9qnw{&+}o&Ty<5zbj!uWR z$srpZ|ET2GSk7SqpzD!N2P{ z#B$=(&x+CM-pQ4DR3#0L(uXG?C3fSxs&_3fv ze8+`n=l+u;gPz^x4t;5W=gOA}iKUI_ohDU#w0~mii`(rjVDA(kVV8kLU(sy=8?KFi0^rAh@VzsWayTc4{l4r zsW{GYIElBsBC}srh$l^})F?oUf2$73KyE;{>|JiviD>-PNA4e)s`=wRe$}eGGg@ke z@=3-lHXVim`LEMsh4ibe0QD8WYM3I_g;Iok&_FPi*CDHD?<4vrUSv1Q+b=aPhZGHK z<71v|f-nl*G*-Rc60nSrTski>A6c{DJ5!iL2O=J4JSCnC2IZ{!d4|rISKOxB?rPrfu?_Tz$*nnUk)pXgpV6PBECC!Eh>hq_@_rB((%(93K4!fb?O79XS3ED}-ob1y)NuCzJ%i{s}S*<5aNoEI&MrfUmq+VT{c7UwB;sTV&gxSl53d*;?+P7K1 zSNkV8LWdfO2f!*|>Jr^UpgW_to+xT4GTNJ+!X)DPRy!03V%#m@=|8bSKf&{i@8rSm zCV@A!v;kA&f`Gz3wsE}c`Y;M)A=e%@R-E@QCpElHn;5_qnm}=>Wyc?Rgb(l%^QM}P zWbj?LpF?B0$0-l_jPTP^5Uhdm{sw1YP7TPNZMFj+&=zdI^f_1ONwNTuq zO^$Hb;yA!*+3Gl+gRC@*J)(!X$de7&Pkeh@T|jwvvTD+&_a?;`skUeNC;>B#89SL7 zMlLhBarBZl1rqa2&~&3GSLK49=vn}}<8aj;6@&S#8F)pgJL>T~exc_-hoW?H1D3_e zC5T_s$9=NK?bk^`8ltxSu8o)%Ks}O+JILQHCv1*@i`v#{i=knDa;U450{j+kR@%Tz zc!HCNc;fr&RueW%m>}?bl&NWfyqSUHz6yc#_Aj1}6!x2qdE95ZVe;V&7t>^ChDPb~ z75Pi!1j~yN=zexJqylK!%RHgzcep1MKoTwItFD9nVdvtt=CRw>bN=6)>Ro`V2u$ci zQC9GZ@*La?ft?S8F|8VGTFKQ3EekE+{}$P=PPd!V1dsVb6=%DECVW3M+q^bsfVsXj z1zRBwV-`ipD!?y-1%CXUMhs^2)7@hZUH-CKdSDxmL$C>$(T7P>viB)BEf7SQgNlnX z&<|;hvi4zp7yXDo8h4ASrri)ciD;#Ab_j|(+3$z38%YLYu&HdP7wHva7{>loFL*_P z=hAa^YAI;^nWIk|emYm#bhW}XxyZIBTH0p2LxYti6K1DU9U^K{fYw2v=+f2)Xcl^u zAr0b7hn(^W6CPR zJSLP9*R8G3D=4x&(aQu&)J~OY*b*l#k^(jO5y03EjJaxKLInjnmPGNPK1R@3)%-^LO_i=$N(RUYU~jzn zE+#SO?>zr3?d4Q&N&5@jusoF6_~YnA7&l=M37G3;ZWd>C`%jegRCGhzEXFJ>q=bNw zP{Y&k#_7pe-k8#=BI?;4@E(cm?;aA0cn%-(NevK^fgkPnGlfE?RF9+5nJU8KHjVR; zILywg9R(kw#Ki0rH%Z0Fz>gV{pY`acU%n-f+5~ zY#15?y=kkoQb&j)ND@@Fk}+Aqs-dz1bo>Bj5#zA0Fr zx6cl4&Sxs)40IBC?EO{|@mCNbXQ|$|L#u#T$y5?D^PtMjd@$|%JmcsXpSEpEW`j`Y zN7&wOC!~IMUn(;C>NEcdk=t(7jFQHdNZpArQUVkx6`TJU&hy@~QmkK=D`Eop!2B6Z@cX!>WqCeTo4j zN$G{Yz%abJ{+k$%(X{b+fu??637{XMm3NZp5@q4nW`sBLg7&(`7Y-^xgD@ z=hdT|Yv4=ZL>;at!A4BRO#TAoMaBMoP(P<=z!{AOZPI1kCxDJTK4JWu%D&>JjL)=S zTP$GE^Rm0iYO2a^*OK#KmNZrX7M~l75)aDOL~${etYTgq{FLgn^=gcB-8{v^aCfo< zplUBZ|2Z1aaDkZ!!5Jui+oj+pZw1OrnTn};7T%+#6|4Aq{!LJuD7{|So7!!B2=JsS zNCTj#hMhn6Jg~bQ@BeY&_mJf&nD#8DU+ERj%d{zU#b?LYt-k#LJ2|aY4omJLWl7h2 zUW!_$O2##k8l}|Nn^C(C9$15e`iSKIEa$u^hEEqQoqI zL=DDw1F%ZoO)z(z)`KK*gv7M3!7$fzGt3Xd7S^8XLeJ+TfVhG`t zed~acMw375h@X?+)zWS`$EE9|e{-_`soz|nzJo_4pDNIFXc(X(!ZMsosQxj$Wk7{F z`(P#-kU%AN^W$MIX}jm{HI@*6(t>cHNwUYFp%E777n>D*M5T~4sZ$l+h^mC+FEs;f zTp13=EznDJJ^*6%E*=#|54baYo?^D;r}e;BGN;{~{~1tr1K~HcIT9q{>6Q3ulu3)- zm4GUJW`dk_(M<4Ib{;TA3ORx@VAu-Rhoc_*DAfZmswzY}8?;hhn^^?l^Bi2Ikihkw zWoe)?@uS2{2GEs9?t_k1d7G8kmBs|+cyi67vjDDn1uTYQV)z1n5-kPg&H>rOYxml{ z(&51(Aj`<3Z%L-m5Gs^oSl$IFh2j4LrJzz$Zr}TsYg=mHR?`@WshQ+QcuVyNJqgA^ zM(DxOVK*@-Y^fDS2vU-ZfTfbs;p3RG11%o|%?^V@JW9(Xw>uRAO81_q!K^JePhDM) zg%|*69bC$pQzO`pne~xICR(Eq(_=DSqm&z8*%*)!e;kXG)nRp>T^B8vIJW-StiK&h z!KVO_d--%860Km#EuZ$v&gBE%aQgNQv@E?g)GL5>Zsrc`O@|3;AHG2#e<39dSh1DE zC3>wtqZvc9>!6E#1--y6dno)9Yv#m+@w0gWS;ccxEzs2-o>xKkvbq1sqTHkldJcF_;K<2T4aG-H#p=qH<$nAu#L2a}a@ZS(%j9fTZ z46BFt82}~3QS2q)rs%A|*hQVuIvQ-HXU`enTd~JSfS1_IOrG8^B4NPr`Q~&&pW1d_ zs)CYCYxOMxJLBoUs5eIU_3=V-Qc^@Zf(WN1%W;46;ygn`%fefi5S4s2)jS|#5E}bY z?=`A?BS-1Gf#IXR0^<>7qsCJEYQUsljPb7b;(TNVkja4<$0xiPGP>mxA`(U-;G$&v z+|S7oI4cZw182bT6bHbWVghJJIlf`ieSLr|1dJdZIlSY3TK!S}0&~|NMSZlA4gXRk z$U0$^a~`940Nnv;YdEY@@~pRSt`ZfIb*wkpNaB7g72j_RRnLKn~*W zG5e!5_kp~>^fbWqqx`~Z2$6;r!o!n!j{_AH6S-nw2q2&?l>Pcm3}d@Yovxd%WPT z@PAd>!D<6VdJk_DCFBW0?%T>ObPo29_yGV7Uhi+Y;q7sfKu zpii7YxGp7MB+4PsX!X#h%1tPnVN=VHfsR!pv4j69yy^l9;;{xTmO0{Q98C86n6sXG z@$)Hmays1S>Ij|<0ze-( z$ZFtq!g&XATnCve&eeQqnOZ-T-5bV(1FVjoy>?6RHi|Nf03W8D z`Xd>n>W`z$Ftde>u%~R2>m5#jZn4_q^jwnEgH<+T+iQorJz;RBdOxSkc`R_=e%A^{ zVh7qzS~%Nkz=?Tthm8fjuD;uua;TL9Hqx_hElzkz{p+t+#o-B5-?wOnLpXR+8QpP( zVKnHUa2>)&F*2Qzx*L(Cj z6aijD(BQsCDtf)+XIseSho;8s;b%>VSN@PgDtu=v)l=;9bVB)Pr<@Z=dDnIQUI>8j zkEX%BDW55(dKJLQ3{sN9W@tH>X$HV3n)oM>9e`@C4sf2?E)#+Y$?ogp7#HiQvRB@n zz~>BTD$8VUuOoWK3x$DkuoNP@4e%e%DHc9_>55dG(GNKRrL{7{HX2|Tihl{>zn-S% zro7pYes>Nai?VlVL1oEiH|-xmUyRdN*tjzX+hPn*_ib6a_)de4tHkFgZF&O^17lwx zh(|yB8b9nlyu4h$f$`PN7aC*4g(`48=S$yapEaYR9|8}~C=em_un!1i3X};ge_2QZ z?U|}WM(kbxM9z}jc}EcQYvKdL`#cSIRf02nvDLbkON#e181Nw^;5FsXyzD3f$230K4!iDG5 zxQwyN3xaQI7)*4a_!L8y*k0^|EddV|@}i(R35o4NHr*LA_q&GaZ4pnZ;M0zt| z6wg`+P)kp`X-6syoFvd$UV_cbg7+C8$a_~kY-{oht_ToD>h{m<6Kxb(@kRl@_9~I< z`Hr+2(VZ~#%u^91D|E|yZ)6ydcNrfqJB;QWzTX;sww>VcCo_(Kp8P7~*ckYlnwNnt z*w2-Ka0`c=7~gK6S$BTW9OIjdt5xd{iC*K=E!OS?&QJ?zFAy`V5S^{>O%!JX!vEYm zXZP9a{WQ6xi%5k)3@C5O_xK=~&S&U)xa?k$P$u7XYg!0n~eB~Nv!yFu4%I-sq8 z|Ls$#i!U5{IlXc%-glR7-zwi=2OqoL`G&;bfG&}aKU;2kH`x1S)|yg1O~ebZXdL|a z0sa8GqE!Ei(`Qz>*5x;De?u=I?Cj~Vhdv-p_7uigy9jXdT6y{?*B3LH+=Nq? zCF{ZZ?{95OBzp>=1x4n$bGuhIrPLEl9)tH!J}jV=Fn~&%LNcP!gI3UCjPffWKUpt5 zf0Oa0Y{NJjC=7r-mN0$j9?D#tLh`gsFjfSw$}Tt-4g-YJcd2FZ;=oC~xe1z#uB-ad zX0{3HCQl-QZZPQi-;}CH*$Xn5%3Vj%J_%R;3W&jJ`JK|r&ZOU1fY)SaQS*M4AsOFQ zhgZ_S(tbEY@#H*A!1cX!?i=dp4&Ejh;RGmIa$+Cu4!VcFb&ukncTx4`7S*M>zUB8{ zF}s;VSjn@R>Z-I0+(!u$*6@m=md)A@R2>-u5Nhx7M|4T^d|IZIk}acxr7KXKMNrch zP(Hyl8X^%u83c;h?u$cZ$1{*iQv<`?5gh|!NrE%)zqPt89kO2DvaNNLGjoK z&Ft=0a7??pV=MLKq2TFeVYQwEZ|q^0cdLKI3F+x~@dagN%P0KEN|fXFvvtl*S4fGn z6H&~%1dXK*($V<$yhTS8V1%g~9N0_Hd~q0cGOEmU>KlMP^L;UZyWifwauZ<8_|YvK zeV|g@0YS>ACU#Eu%YK9@Q=jqvztAQqZj(4}j zV>h8ZqY>E0!e?NI&-J=C)l3$2Z)~0p^|`5#jdjF{zwicbSO~lycJObSszKXt3z@Z# ze8OIUyzqk=SqiyHC6@v}>6a}!@JcJ3b35};9>{y)TH?%8zuq>(>c=R{RWP~V!2J^K zrAF)asOvb6dT&}kqcASzDajwRbzlijBD#_OIEu!zAXR*-Ec2A-1+LEuh*gHpyF&dM zJ>8KJG6W5#&wfR&oH$zP0Mg@AeU~9$L9s&!$pA#ky}2x7KsdFK#Ss1Vs39qLe1WvI-eO4o{dqpdEAX+hh4&*$~$g0H*q zUoBKGzSS}l(`h`@GDSKxH_>~pQSz#!6MLII@R92Pq{ew4{<(l1{PGiufjA6Z_z-td zs@CZ(3j*d_ZZR@(I&L#1b(F=tT2~BX(A+=~Eu|+WHI_#HHZj)HRv3ZfR=BNNOf`Em z_ZBA&bcQH=K6vKtPFRhm@g1e0b(~+5^{T9lj4%+j&}gl)hi60JaMvEw;R_&xt>X zAMz9{iW1z~pKWt1Davn-Z9l(J?1_Qv(C*AvU&`4aPOb(H<6DImHPnD>Hj*KYYp9E` zW%`$ehwKG$k#@a2QhlB^I0M4TJp8!oN(X-AzV(!RdQc#GPcJf2ypX{Z9O^jzr~B;* zrjx z=h}g{1P>3=dz4^obxJoa8iaThpc0SwLo@Z0+)2D@5S&Kb@PTirSRq<30|oZD z0JONA+)n9tJCm5q`vIqMiQL}BL|ChDSg7aA@}BZJX1xFHpvAB4=QO5U68e(It<_P@ ze}BK2SmLfTg7lf8TT$-*aAxmT_AV6Xzk&c|*g&5clO%A&)Q3XvKAKOAVlj`STs z9yYp7CDDjU^RNMBdv29XH~}Y<7$0*yeRsS`D18x4{mlpcoA)z3Y%eB~BjWRJ))E^| zjO!|=4nB5i%Nd^H)H?6yXSwNzvLZTzFrv(1-A4E1n<+zW;qt-K+i|UNOv;Da%8|gE zu^@_A(CvpCFSZahvE{d=OD_FJsZ#=FXYD^ftr4(ak-b9Ru+|vFSM+ZGm{D9yi17yb zqAOUD6{u-A)3S<7-nUL)0&@_0=e58^2=&d;vGEJHM09(6wn3_MOn_;EIkZVZE#wmV&aC5$wKiylVXt$obLgySRH zTO0j#m++Q61`=@QjG zU>aHIuG!x-A(`9p9j_%8Gu$DBk2u^=i;&xqIqrVcxA=$o+EACbTjf|-_P;(o_qZ2%d&(l74 z<;<-6qyT8FMOITs4fAgvYWKRJdP0{2L|?Mh021NYGKMj5>DaGA^*Co+!HadN2R)MI zd=gMgg$O840F&NrnseI7uR(E*AOaRLfOq_*PixPVIr3SG+Ou8q*ZA0Xa8otVI1iPcX4x+(9_=l50sEng4tug~AK z$y^Px^|Hkq;7sWo9wTE%w z^QwpMcKeXf9?!0>^s;BUeq$leO5z11CQa{WEi+coeVnuGHZ&p+(N28h(G{Xc>^sh; z&cnVQ^I@J=j^Q_0nDZXToSdC)O<`@~8zqKID^ox9`O0^Z8h;t~A|PDP6L{IR8ZoJO zUOB4Iwl%p-g=_)pyzH1tRcgWdYSP}`Y~q4!bO*j5tK`OH>1VC-+mdkpyXNv%cG*;+ z%nY`q+35$EE1fZ%?YGV-dOQF(G#fMYT9=KcE4sD0J+Geau@gS(z;^&y zEalasJEY(EX14ng3xfWjH+7D=zr@Ktyca&}+lTWyvU%1*K#G#pRgIZu*ZENZBkdy5 zzveQHx&5%<_r?1Zzfgf9$StYiE*;SbnSlv6X0-OwgA0vp@z!pB?WO!s*#R z^L}TtR95Kb#94CJ=` zj&%@$0PlyAsub^MnNp~^?vqv+ zcxT|LWN3&VC*^na<%fp|0xG_e2$?T#Y=~A)klzKvyG$mh=RwOfKlhAu2A$q{bY@Q^!!7e))mqMs{Z!_Syd3h1`VA#v2~b z{^F)Rp}XT`DZDr|JRJhkQ0~UV$DWT6zVNP5cO9NL?9W9@j(aj)h5r6_{FCn8yR%C^ zW7#Wga>#hGKBAL1CH(rm+0fX8wh$U!=Z z_Bu^$C!AV|PNTxiez}A?_yk*QF)q0YaF*j29x=N_JzGw(+b#@hO6?RudekEVZ_VU; zIU4W&`R8EBb%?#vm!5#`2=D7z@{crjL}CzrgAzpld5yLKue0NLXv8s{k1;v>xCnlWDT4d5I%A12g+4Oxm%kL32-xM~!nR-o}XK^>Mp>`Wj)a_RB8|m?!^(FJ02Enar z;hZQ6xtc7X&=SoEBsU6A=sJsEo5bJg*x8bNQH!VC`znifGR8Nv1J$c|w3*&v zSU>qt923~zFO=`%9uKHMb`dt7S6|DXWd3MftUnftO(%Am+H~k9@~^LUG3ggL4y%e$ z0`4cC38e4kan?c}B-+_xQ2V2MEQWC;tdeJ%r!Oilya2euaUziny3Lf!ZYB4L;9 z=c{n~6v?PQ)qE0^qI#Cz#_li`uaR-D0Me_$Z{3{>gJFKAe&!T4`p6<{ELM+Cc1_db zi9$ZicAu7_?R;!5?>hZS;ys~LPPOVPKk50}ru>A=S%k%763Qp7>%J@)Sx z-(wKzDCXyw?QI~ zJs;umXJ_r!8gj(B+3;q*Ix^(JJfT0as*lNG7k`YY^?I_i%?r9B;H90n-$_U)AA`?) zU1#zwlZWSZkq%2r+(f9SrZ(b6dc-Y9f~Er#u0n^isgQTZstbZycrj0emAzeN{X!;! zTa3@K4=@i5fnVuJD}KP@LKBh|8>{6gxycwJj>_Oe)2jAj~;8I;hRh>Kut?#YSZ@WM^KshV$FZ_`p4~ z7IwCIo5B03eZW&Bf!4X?{eN4fAg!|$T&?U(HF<6Kd14*4(g*vzOOKl}1u85y10dL7T$^IZ4v zv?R1HPFD^{k$xRf;Lm(^6Qiz&TiHR$Cgx+pHZXY5@fsSm5zfIgCXOyhWKY4<^DxCs zujE~Td(8R=elmFtg{3Hht#Oei=6ZP-nahjVF}=6!I9`~xqfd)9kKd7!q>b~!2Sc?N zw7y)6tI$F_y2t&c~Z#~b`uVz@iM5#M(385~j><4Jy=|tEE>aA!+q>tZ5+_)n< zTzy%)jl^6U_n!Lb@{7C;3U~Cx?P_x&1Jh(Cw8lt>vT#If{i`hV=e3H|t5H|OK$QZ| zRmS5_b1ci3R}*(^^?fG~8a943Jx><<6#D{Q;6O$wJ)t3o6|_-7%T&&JJ@spL z7WQW0NpQqC7~_TxWb#U0>ah)~ZqwD)6PmBxbP3yR%((A2EV~A}vKRI#d40Ep?j5%N>BZ}*bBoI(QVD&76z_-0Jq!6CfLPU3fDmCm*EnWPVt{!r zeS^mMiwH3?oroos2%DKun#U`Lv@h{!hCu{k`EbUB(2I1|KBPN@Zva3FDT+;n{b5{4mF3`mYVTp+>7{}LPHRdy9$);{M;pLz1r5KSNRtA!Q zPrsLHR>FfXLW94XA%PdN7`HT;6UntbV z2M|x_%z|{l;B)fD;1#Fh8E&B+6)~ms&t`2qPgQ;-$N6|*p$9a?>ABI{dl|bh_o5=> ztmTmT_L`d;xz&)Ta8nIjC2%TsVqCcl(G_6eG1a&P!Rgi<ODjpX326zM7mjztymyz%IJeh-+p$kpaobp!nlrGEw z=VnpXLR$X$=f+{iS~v{a=eg7n4Xt-z7AqS1oW_DHvJjVWLE5us=
#`WUJw8}N% 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 Date: Wed, 5 Jun 2024 15:51:26 +0200 Subject: [PATCH 08/17] Update docs, removed CLI, plus fixes --- poetry.lock | 68 ++++-- pyproject.toml | 2 + script-docs/_static/custom.css | 8 + script-docs/_static/guide/local_eval_conv.png | Bin 0 -> 302797 bytes script-docs/cli.rst | 5 - script-docs/conf.py | 11 +- script-docs/guide/local-evaluation.rst | 129 +++++++++++ script-docs/guide/manage-datasets.rst | 140 ++++++++++++ script-docs/guide/run-evaluations.rst | 133 ++++++++++++ script-docs/index.rst | 33 +-- script-docs/quickstart.rst | 6 +- script-docs/reference/client.rst | 11 + script-docs/reference/entities/index.rst | 9 + script-docs/reference/index.rst | 32 +++ script-docs/reference/resources/index.rst | 8 + script-docs/sources.rst | 32 --- script-docs/sphinx_ext/fix_dataclass.py | 15 ++ script-docs/tutorials/index.rst | 7 - script-docs/tutorials/local-evaluation.rst | 2 - src/giskard_hub/_default_client.py | 12 -- src/giskard_hub/cli.py | 202 ------------------ src/giskard_hub/client.py | 40 +++- src/giskard_hub/data/__init__.py | 7 +- src/giskard_hub/data/_entity.py | 145 +------------ src/giskard_hub/data/dataset.py | 35 +-- src/giskard_hub/data/evaluation.py | 24 ++- src/giskard_hub/data/model.py | 2 +- src/giskard_hub/resources/__init__.py | 13 ++ 28 files changed, 647 insertions(+), 484 deletions(-) create mode 100644 script-docs/_static/custom.css create mode 100644 script-docs/_static/guide/local_eval_conv.png delete mode 100644 script-docs/cli.rst create mode 100644 script-docs/guide/local-evaluation.rst create mode 100644 script-docs/guide/manage-datasets.rst create mode 100644 script-docs/guide/run-evaluations.rst create mode 100644 script-docs/reference/client.rst create mode 100644 script-docs/reference/entities/index.rst create mode 100644 script-docs/reference/index.rst create mode 100644 script-docs/reference/resources/index.rst delete mode 100644 script-docs/sources.rst create mode 100644 script-docs/sphinx_ext/fix_dataclass.py delete mode 100644 script-docs/tutorials/index.rst delete mode 100644 script-docs/tutorials/local-evaluation.rst delete mode 100644 src/giskard_hub/_default_client.py delete mode 100644 src/giskard_hub/cli.py create mode 100644 src/giskard_hub/resources/__init__.py diff --git a/poetry.lock b/poetry.lock index 68525ae..22279dd 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2192,20 +2192,20 @@ files = [ [[package]] name = "sphinx" -version = "7.2.6" +version = "7.3.7" description = "Python documentation generator" optional = false python-versions = ">=3.9" files = [ - {file = "sphinx-7.2.6-py3-none-any.whl", hash = "sha256:1e09160a40b956dc623c910118fa636da93bd3ca0b9876a7b3df90f07d691560"}, - {file = "sphinx-7.2.6.tar.gz", hash = "sha256:9a5160e1ea90688d5963ba09a2dcd8bdd526620edbb65c328728f1b2228d5ab5"}, + {file = "sphinx-7.3.7-py3-none-any.whl", hash = "sha256:413f75440be4cacf328f580b4274ada4565fb2187d696a84970c23f77b64d8c3"}, + {file = "sphinx-7.3.7.tar.gz", hash = "sha256:a4a7db75ed37531c05002d56ed6948d4c42f473a36f46e1382b0bd76ca9627bc"}, ] [package.dependencies] -alabaster = ">=0.7,<0.8" +alabaster = ">=0.7.14,<0.8.0" babel = ">=2.9" colorama = {version = ">=0.4.5", markers = "sys_platform == \"win32\""} -docutils = ">=0.18.1,<0.21" +docutils = ">=0.18.1,<0.22" imagesize = ">=1.3" importlib-metadata = {version = ">=4.8", markers = "python_version < \"3.10\""} Jinja2 = ">=3.0" @@ -2219,11 +2219,12 @@ sphinxcontrib-htmlhelp = ">=2.0.0" sphinxcontrib-jsmath = "*" sphinxcontrib-qthelp = "*" sphinxcontrib-serializinghtml = ">=1.1.9" +tomli = {version = ">=2", markers = "python_version < \"3.11\""} [package.extras] docs = ["sphinxcontrib-websupport"] -lint = ["docutils-stubs", "flake8 (>=3.5.0)", "flake8-simplify", "isort", "mypy (>=0.990)", "ruff", "sphinx-lint", "types-requests"] -test = ["cython (>=3.0)", "filelock", "html5lib", "pytest (>=4.6)", "setuptools (>=67.0)"] +lint = ["flake8 (>=3.5.0)", "importlib_metadata", "mypy (==1.9.0)", "pytest (>=6.0)", "ruff (==0.3.7)", "sphinx-lint", "tomli", "types-docutils", "types-requests"] +test = ["cython (>=3.0)", "defusedxml (>=0.7.1)", "pytest (>=6.0)", "setuptools (>=67.0)"] [[package]] name = "sphinx-autobuild" @@ -2247,6 +2248,25 @@ websockets = ">=11" [package.extras] test = ["pytest (>=6)"] +[[package]] +name = "sphinx-autodoc-typehints" +version = "2.1.1" +description = "Type hints (PEP 484) support for the Sphinx autodoc extension" +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinx_autodoc_typehints-2.1.1-py3-none-any.whl", hash = "sha256:22427d74786274add2b6d4afccb8b3c8c1843f48a704550f15a35fd948f8a4de"}, + {file = "sphinx_autodoc_typehints-2.1.1.tar.gz", hash = "sha256:0072b65f5ab2818c229d6d6c2cc993770af55d36bb7bfb16001e2fce4d14880c"}, +] + +[package.dependencies] +sphinx = ">=7.3.5" + +[package.extras] +docs = ["furo (>=2024.1.29)"] +numpy = ["nptyping (>=2.5)"] +testing = ["covdefaults (>=2.3)", "coverage (>=7.4.4)", "defusedxml (>=0.7.1)", "diff-cover (>=9)", "pytest (>=8.1.1)", "pytest-cov (>=5)", "sphobjinv (>=2.3.1)", "typing-extensions (>=4.11)"] + [[package]] name = "sphinx-click" version = "6.0.0" @@ -2263,20 +2283,44 @@ click = ">=8.0" docutils = "*" sphinx = ">=4.0" +[[package]] +name = "sphinx-design" +version = "0.6.0" +description = "A sphinx extension for designing beautiful, view size responsive web components." +optional = false +python-versions = ">=3.9" +files = [ + {file = "sphinx_design-0.6.0-py3-none-any.whl", hash = "sha256:e9bd07eecec82eb07ff72cb50fc3624e186b04f5661270bc7b62db86c7546e95"}, + {file = "sphinx_design-0.6.0.tar.gz", hash = "sha256:ec8e3c5c59fed4049b3a5a2e209360feab31829346b5f6a0c7c342b894082192"}, +] + +[package.dependencies] +sphinx = ">=5,<8" + +[package.extras] +code-style = ["pre-commit (>=3,<4)"] +rtd = ["myst-parser (>=1,<3)"] +testing = ["defusedxml", "myst-parser (>=1,<3)", "pytest (>=7.1,<8.0)", "pytest-cov", "pytest-regressions"] +theme-furo = ["furo (>=2024.5.4,<2024.6.0)"] +theme-im = ["sphinx-immaterial (>=0.11.11,<0.12.0)"] +theme-pydata = ["pydata-sphinx-theme (>=0.15.2,<0.16.0)"] +theme-rtd = ["sphinx-rtd-theme (>=2.0,<3.0)"] +theme-sbt = ["sphinx-book-theme (>=1.1,<2.0)"] + [[package]] name = "sphinxawesome-theme" -version = "5.1.4" +version = "5.2.0" description = "An awesome theme for the Sphinx documentation generator" optional = false python-versions = "<4.0,>=3.8" files = [ - {file = "sphinxawesome_theme-5.1.4-py3-none-any.whl", hash = "sha256:470f82e9a492b23abced404876d85726b42d0f86996dccf782a73c00fbad3595"}, - {file = "sphinxawesome_theme-5.1.4.tar.gz", hash = "sha256:3b08a4b8a26b3e8e2f35ab9dffd253a1860978f57a29ec3c8b361baffa8a4ed4"}, + {file = "sphinxawesome_theme-5.2.0-py3-none-any.whl", hash = "sha256:56f1462f4ec4a5d66017819de6b7965a394d4157117bf12f029e7818d6789525"}, + {file = "sphinxawesome_theme-5.2.0.tar.gz", hash = "sha256:c24f1e5c0b9e475380d16fc5f1f3bfd84955817da0905d95f7e20809d7cd3c5d"}, ] [package.dependencies] beautifulsoup4 = ">=4.9.1,<5.0.0" -sphinx = {version = ">=7.2,<7.3", markers = "python_version >= \"3.9\" and python_version < \"3.13\""} +sphinx = {version = ">=7.2,<7.4", markers = "python_version >= \"3.9\" and python_version < \"3.13\""} [[package]] name = "sphinxcontrib-applehelp" @@ -2833,4 +2877,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more [metadata] lock-version = "2.0" python-versions = ">=3.9,<4.0" -content-hash = "82bb5193cf0a325b3f3a7fb4d8f2cdc7fb43e40f6d6b154c9c0565d29ce9199d" +content-hash = "34cd9b2efb104b8673f701c1dec58008f8d27caa3015f9640e22c3691a5f6494" diff --git a/pyproject.toml b/pyproject.toml index 62e2bd0..f93a803 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -25,6 +25,8 @@ isort = "^5.13.2" pylint = "^3.2.2" sphinx-click = "^6.0.0" sphinx-autobuild = "^2024.4.16" +sphinx-autodoc-typehints = "^2.1.1" +sphinx-design = "^0.6.0" [build-system] requires = ["poetry-core"] diff --git a/script-docs/_static/custom.css b/script-docs/_static/custom.css new file mode 100644 index 0000000..ca84022 --- /dev/null +++ b/script-docs/_static/custom.css @@ -0,0 +1,8 @@ +#content img { + border: 1px solid hsl(var(--border)); +} + +#content ul:not(.search) p, +#content ul:not(.search) > li { + margin-top: 0.5rem !important; +} diff --git a/script-docs/_static/guide/local_eval_conv.png b/script-docs/_static/guide/local_eval_conv.png new file mode 100644 index 0000000000000000000000000000000000000000..9ac199a89cae2badc407503c04cbbad2e521a847 GIT binary patch literal 302797 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

%YBX;qH$AIOuV4EnW3A>@h7z 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 literal 0 HcmV?d00001 diff --git a/script-docs/cli.rst b/script-docs/cli.rst deleted file mode 100644 index 9b429c4..0000000 --- a/script-docs/cli.rst +++ /dev/null @@ -1,5 +0,0 @@ -CLI docs -======== -.. click:: giskard_hub.cli:typer_click_object - :prog: python -m giskard_hub.cli - :nested: full \ No newline at end of file diff --git a/script-docs/conf.py b/script-docs/conf.py index b0e257f..5259019 100644 --- a/script-docs/conf.py +++ b/script-docs/conf.py @@ -8,6 +8,7 @@ import inspect import sys +import os project = "Giskard Hub" copyright = "2024, Giskard" @@ -16,18 +17,20 @@ # -- General configuration --------------------------------------------------- # https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration +sys.path.append(os.path.abspath("./sphinx_ext")) extensions = [ "myst_parser", - "sphinxawesome_theme.highlighting", # "nbsphinx", - # "sphinx_design", + "sphinx_design", "sphinx.ext.todo", "sphinx.ext.napoleon", "sphinx.ext.autodoc", "sphinx.ext.linkcode", "sphinx.ext.githubpages", "sphinx_click", + "fix_dataclass", + # "sphinx_autodoc_typehints", ] templates_path = ["_templates"] @@ -46,8 +49,10 @@ html_theme_options = { "logo_light": "_static/logo_black.png", "logo_dark": "_static/logo_white.png", + "show_prev_next": True, + "show_scrolltop": True, } -html_css_files = ["pygments-dark.css"] +html_css_files = ["pygments-dark.css", "custom.css"] html_favicon = "_static/favicon.ico" diff --git a/script-docs/guide/local-evaluation.rst b/script-docs/guide/local-evaluation.rst new file mode 100644 index 0000000..dad18ba --- /dev/null +++ b/script-docs/guide/local-evaluation.rst @@ -0,0 +1,129 @@ +===================== +Evaluate local models +===================== + + +In the :doc:`run-evaluations` section we have seen how to run evaluations against models +for which you have an API endpoint. However, during the development phase, you +may want to **evaluate a local model** that is not yet exposed with an API. + +This is the topic of this section. We will show how to run evaluations against +local models using the Hub. In this way, the evaluations will still be performed +and stored in the Hub (and you can use datasets from the Hub), but the model +will be run locally. + +Running the evaluation will allow you to compare the performance of your local +model with the one that is already in production, or with other models that you +use as a baseline. You will also be able to debug performance issues by +checking each conversation in the Hub inteface. + + +.. hint:: You may also want to use this method in your CI/CD pipeline, to + perform checks when the code or the prompts of your agent get updated. + + +Let's initialize the Hub client and the project we will be working with: + +.. code-block:: python + + import os + from giskard_hub import HubClient + + hub = HubClient() + + project_id = os.getenv("HUB_PROJECT_ID") + + +Preparing the model +------------------- + +To execute a local model, you just need to define a Python function. This +function should take a list of messages and return an output message. + +Here is an example of a simple model that just echoes the last user message: + +.. code-block:: python + + from typing import List + from giskard_hub.data import ChatMessage + + + def my_local_bot(messages: List[ChatMessage]) -> str: + """A simple bot that echoes the last user message.""" + msg = messages[-1].content + return f"You said: '{msg}'" + +There are a few things to note here: + +- The function takes a list of :class:`~giskard_hub.data.ChatMessage` objects as + input. This object has two fields: `role` (e.g. "user" or "assistant") and + `content` (the message content). + +- The function should return a string or an instance of + :class:`~giskard_hub.data.ModelOutput` (if you want more control) + +- Include a **docstring that describes what the model does**. This is equivalent + to the description of the model in the Hub and will be used to improve the + reliability of evaluations. + +- The name of the function (e.g. ``my_local_bot``) will be used as the model + name when showing the evaluation run in the Hub. + + +You can check that everything works simply by running the function: + +.. code-block:: python + + my_local_bot([ChatMessage(role="user", content="Hello")]) + # Output: "You said: 'Hello'" + + + +Run the evaluation +------------------ + +Running the evaluation is similar to what we have seen for remove evaluations +(see :doc:`run-evaluations`). Instead of passing a remote model ID to the +``evaluate`` method of the Hub client, we will pass the function we defined +above. + +Let's select the dataset we want to use for the evaluation. + +.. code-block:: python + + dataset_id = os.getenv("HUB_EVAL_DATASET_ID") # or directly set the ID + + +We can now launch the evaluation run: + +.. code-block:: python + + eval_run = evaluation = hub.evaluate( + model=my_local_bot, + dataset=dataset_id, + # optionally, specify a name + name="test-run", + ) + + +The evaluation run will be queued and processed by the Hub. As usual, wait for +its completion and print the results: + +.. code-block:: python + + eval_run.wait_for_completion() + eval_run.print_metrics() + + +.. figure:: ../_static/quickstart/metrics_output.png + :alt: Evaluation metrics output + + Evaluation metrics output + +You can also check the results in the Hub interface and compare it with other +evaluation runs. For example, you can inspect each conversation and see the: + +.. figure:: ../_static/guide/local_eval_conv.png + + Example of conversation evaluation. Note that our "echo" agent was used to + generate the response. diff --git a/script-docs/guide/manage-datasets.rst b/script-docs/guide/manage-datasets.rst new file mode 100644 index 0000000..3901367 --- /dev/null +++ b/script-docs/guide/manage-datasets.rst @@ -0,0 +1,140 @@ +================= +Managing datasets +================= + +In this section, we will show how to import datasets and conversations programmatically. This allows for full control +over the import process and is especially useful when you have to import datasets or conversations in bulk (for example, +if you want to import production data). + +Let's start by initializing the Hub client. + +.. code-block:: python + + from giskard_hub import HubClient + + hub = HubClient() + +.. note:: + + If you didn't set up the environment variables, you will need to provide the API key and the Hub URL explicitly: + + .. code-block:: python + + hub = HubClient(api_key=..., hub_url=...) + + +You can now use the ``hub`` client to control the LLM Hub! Let's start by creating a fresh project. + + +Prepare the dataset +------------------- + +If you don't have a dataset already, you can create one. A dataset is a collection of conversations that are used to +evaluate your agents. + +.. code-block:: python + + dataset = hub.datasets.create( + project_id="5f5e2b3b7b3f9b001f3f3b3d", # The ID of the project where the dataset will be created + name="Production Data", + description="This dataset contains conversations that " \ + "are automatically sampled from the production environment.", + ) + +If you already have a dataset, you can retrieve it by its ID: + +.. code-block:: python + + dataset = hub.datasets.retrieve("666030a0d41f357fd061374c") + + +Import conversations +-------------------- + +You can now add conversations to the dataset. Conversations are a collection of messages together with evaluation +parameters (e.g., the expected answer, or policies that the agent must meet when responding). + +The list of **messages** is the only required parameter. Each message is a dictionary with keys ``role`` and ``content``. + +.. note:: **Do not include last assistant answer in the list of messages.** In fact, during evaluation, we will pass + the conversation to your agent and expect it to generate an assistant answer. The newly generated answer will + be evaluated against the expected output or the policies. + + If you want to show the last assistant answer to the user, you can include it in the conversation as ``demo_output``. + In this way, it will be shown in the dataset, but not used in the evaluation. + +You can also pass two types of evaluation annotations: + +- **expected_output** A reference answer that will be used to determine the correctness of the agent's response +- **policies** A list of requirements that the agent must meet when generating the answer. + +For better organization, you can also assign tags to the conversation. + +.. code-block:: python + + hub.conversations.create( + dataset_id=dataset.id, + + # A list of messages, without the last assistant answer + messages=[ + {"role": "user", "content": "Hi, I have problems the laptop I bought from you."}, + {"role": "assistant", "content": "I'm sorry to hear that. What seems to be the problem?"}, + {"role": "user", "content": "The battery is not charging."}, + ], + + # We can place a recorded answer as `demo_output` (optional) + demo_output={"role": "assistant", "content": "I see. Have you tried to restart the laptop?"}, + + # Tags (optional) + tags=["customer-support"], + + # Evaluation settings (optional) + expected_output="I see, could you please give me the model number of the laptop?", + policies=[ + "The assistant should employ a polite and friendly tone.", + ], + ) + +You can add as many conversations as you want to the dataset. + + + +Retrieving and editing conversations +------------------------------------ + +You can also retrieve existing conversation for editing or deletion. + +For example, in certain cases you may want programmatically assign certain annotations to the conversation, or update +the conversation with the new data. + +Let's say we want to add the tag "tech" to all conversations containing the word "laptop" in the user message: + +.. code-block:: python + + # Retrieve all conversations + conversations = hub.conversations.list(dataset_id=dataset.id) + + # Or simply + conversations = dataset.conversations + + # Update the conversations + for conversation in conversations: + if "laptop" in conversation.messages[0].content: + # This will only update the tags, without changing the other fields + hub.conversations.update( + conversation.id, + tags=conversation.tags + ["tech"] + ) + + +Finally, you can delete conversations that you no longer need. For example: + +.. code-block:: python + + conversation_to_delete = dataset.conversations[0] + + hub.conversations.delete(conversation_to_delete.id) + + +This will definitively remove the conversation from the Hub. + diff --git a/script-docs/guide/run-evaluations.rst b/script-docs/guide/run-evaluations.rst new file mode 100644 index 0000000..7cd4191 --- /dev/null +++ b/script-docs/guide/run-evaluations.rst @@ -0,0 +1,133 @@ +=============== +Run evaluations +=============== + +In this section, we will show how to start programmatically evaluation runs in +the Hub. For example, you may want to systematically launch evaluation runs +every time you deploy an updated model in a pre-production or staging +environment. In this way, you can collaborate with your team to ensure that the +model is performing as expected. + + +.. note:: In this section we will run evaluation against models configured in + the Hub. If you want to evaluate a local model that is not yet exposed with + an API, check the :doc:`local-evaluation`. + +As usual, let's initialize the Hub client and set our current project ID: + +.. code-block:: python + + import os + from giskard_hub import HubClient + + hub = HubClient() + + project_id = os.getenv("HUB_PROJECT_ID") + + +Configure the model +------------------- + +First, we need to configure the model that we want to evaluate. The model will +need to be accessible from a remote API endpoint. + +We can configure the model endpoint in the Hub: + +.. code-block:: python + + model = hub.models.create( + project_id=project_id, + name="MyBot (staging)", + description="A chatbot that answers questions about the weather", + url="https://my-bot.staging.example.com/chat", + supported_languages=["en"], + + # if your model endpoint needs special headers: + headers={"X-API-Key": "SECRET_TOKEN"}, + ) + + +You can test that everything is working by sending a test request to the model + +.. code-block:: python + + response = model.chat(messages=[{ + "role": "user", + "content": "What's the weather like in Rome?" + }]) + + print(response) + # ModelOutput(message=ChatMessage(role='assistant', content='It is sunny!')) + + +Launch a remote evaluation +-------------------------- + +Now that the model is configured, we can launch an evaluation run. We first need +to know which dataset we will run the evaluation on. If you are running this in +the CI/CD pipeline, we recommend setting the dataset ID in the environment. + +.. code-block:: python + + dataset_id = os.getenv("HUB_EVAL_DATASET_ID") + + +We can now launch the evaluation run: + +.. code-block:: python + + eval_run = evaluation = hub.evaluate( + model=model.id, + dataset=dataset_id + # optionally, specify a name + name="staging-build-a4f321", + ) + + +The evaluation run will be queued and processed by the Hub. You can wait for +its completion with the following code: + +.. code-block:: python + + eval_run.wait_for_completion() + + # Let's print the evaluation results + eval_run.print_metrics() + + +.. figure:: ../_static/quickstart/metrics_output.png + :alt: Evaluation metrics output + + Evaluation metrics output + +Once the evaluation is completed, may want to compare the results with some +thresholds to decide whether to promote the model to production or not. + +You can retrieve the metrics from `eval_run.metrics`: this will contain a list +of :class:`~giskard_hub.data.Metric` objects. + +For example: + +.. code-block:: python + :caption: CI/CD pipeline example + + import sys + + # make sure to wait for completion or the metrics may be empty + eval_run.wait_for_completion() + + for metric in eval_run.metrics: + print(metric.name, metric.percentage}) + + if metric.percentage < 90: + print(f"FAILED: {metric.name} is below 90%.") + sys.exit(1) + + + +That covers the basics of running evaluations in the Hub. You can now integrate +this code in your CI/CD pipeline to automatically evaluate your models every +time you deploy a new version. + +.. note:: If you want to run evaluations on a local model that is not yet + exposed with an API, check the :doc:`local-evaluation`. \ No newline at end of file diff --git a/script-docs/index.rst b/script-docs/index.rst index 9634246..9fda509 100644 --- a/script-docs/index.rst +++ b/script-docs/index.rst @@ -1,5 +1,5 @@ -Giskard Hub documentation -========================= +Giskard Hub Docs +================ The Giskard Hub is a platform that centralizes the validation process of LLM applications, empowering product teams to ensure all functional, business & @@ -18,33 +18,18 @@ synchronize them to the Giskard Hub platform. :caption: Getting Started :maxdepth: 1 - index quickstart .. toctree:: - :caption: Tutorials + :caption: User's Guide :maxdepth: 1 - tutorials/index - - -.. toctree:: - :caption: CLI - :maxdepth: 1 - - cli - + guide/manage-datasets + guide/run-evaluations + guide/local-evaluation .. toctree:: - :caption: API Reference - :maxdepth: 1 - - sources - - -.. Indices and tables -.. ================== + :caption: Developer Reference + :maxdepth: 4 -.. * :ref:`genindex` -.. * :ref:`modindex` -.. * :ref:`search` + reference/index diff --git a/script-docs/quickstart.rst b/script-docs/quickstart.rst index b742a25..8f9c06d 100644 --- a/script-docs/quickstart.rst +++ b/script-docs/quickstart.rst @@ -43,15 +43,15 @@ You can set the following environment variables to avoid passing them as argumen -Create a project and import a dataset -===================================== +Create a project and run an evaluation +====================================== You can now use the client to interact with the Hub. You will be able to control the Hub programmatically, independently of the UI. Let's start by initializing a client instance: .. code-block:: python - from giskard_hub.client import HubClient + from giskard_hub import HubClient hub = HubClient() diff --git a/script-docs/reference/client.rst b/script-docs/reference/client.rst new file mode 100644 index 0000000..560b215 --- /dev/null +++ b/script-docs/reference/client.rst @@ -0,0 +1,11 @@ +================ +Client +================ + +.. autoclass:: giskard_hub.client.HubClient + :members: projects, datasets, conversations, models, evaluations, evals + :show-inheritance: + +.. autoclass:: giskard_hub.client.SyncClient + :members: + :undoc-members: diff --git a/script-docs/reference/entities/index.rst b/script-docs/reference/entities/index.rst new file mode 100644 index 0000000..fb4e039 --- /dev/null +++ b/script-docs/reference/entities/index.rst @@ -0,0 +1,9 @@ +======== +Entities +======== + + +.. automodule:: giskard_hub.data + :members: + :undoc-members: + :show-inheritance: \ No newline at end of file diff --git a/script-docs/reference/index.rst b/script-docs/reference/index.rst new file mode 100644 index 0000000..be83702 --- /dev/null +++ b/script-docs/reference/index.rst @@ -0,0 +1,32 @@ +==================== +Python API Reference +==================== + +These docs are automatically generated from the ``giskard_hub`` library. + +.. toctree:: + :hidden: + :maxdepth: 1 + + client + entities/index + resources/index + + +.. card:: Client + :link: client + :link-type: doc + + The client is the main entry point for interacting with the Giskard API. + +.. card:: Entities + :link: entities/index + :link-type: doc + + The data representation of the Hub entities, such as projects, datasets, and evaluations. + +.. card:: Resources + :link: resources/index + :link-type: doc + + The resource classes providing access to the various entities from the :class:`~giskard_hub.client.HubClient` e.g. ``client.projects``. diff --git a/script-docs/reference/resources/index.rst b/script-docs/reference/resources/index.rst new file mode 100644 index 0000000..8b6343c --- /dev/null +++ b/script-docs/reference/resources/index.rst @@ -0,0 +1,8 @@ +Resources +========= + +.. automodule:: giskard_hub.resources + :members: + :undoc-members: + :show-inheritance: + \ No newline at end of file diff --git a/script-docs/sources.rst b/script-docs/sources.rst deleted file mode 100644 index d520776..0000000 --- a/script-docs/sources.rst +++ /dev/null @@ -1,32 +0,0 @@ -Client -====================== - - -giskard_hub.client module -......................................... - -.. automodule:: giskard_hub.client - :members: - :undoc-members: - :show-inheritance: - -CLI -====================== -giskard_hub.cli module -......................................... - -.. automodule:: giskard_hub.cli - :members: - :undoc-members: - :show-inheritance: - -Data structure -====================== -giskard_hub.data module -......................................... - -.. automodule:: giskard_hub.data - :members: - :undoc-members: - :show-inheritance: - diff --git a/script-docs/sphinx_ext/fix_dataclass.py b/script-docs/sphinx_ext/fix_dataclass.py new file mode 100644 index 0000000..677540d --- /dev/null +++ b/script-docs/sphinx_ext/fix_dataclass.py @@ -0,0 +1,15 @@ +"""Fix dataclass typing. + +Source: https://github.com/sphinx-doc/sphinx/issues/10893#issuecomment-1885043306 +""" + +from dataclasses import is_dataclass + + +def process_signature(app, what, name, obj, options, signature, return_annotation): + if what == "class" and is_dataclass(obj): + return signature.replace("", "..."), return_annotation + + +def setup(app): + app.connect("autodoc-process-signature", process_signature) diff --git a/script-docs/tutorials/index.rst b/script-docs/tutorials/index.rst deleted file mode 100644 index a2c2843..0000000 --- a/script-docs/tutorials/index.rst +++ /dev/null @@ -1,7 +0,0 @@ -Tutorials -========= - -.. toctree:: - :caption: Tutorials - - local-evaluation \ No newline at end of file diff --git a/script-docs/tutorials/local-evaluation.rst b/script-docs/tutorials/local-evaluation.rst deleted file mode 100644 index e3f43ad..0000000 --- a/script-docs/tutorials/local-evaluation.rst +++ /dev/null @@ -1,2 +0,0 @@ -Evaluate local models -===================== diff --git a/src/giskard_hub/_default_client.py b/src/giskard_hub/_default_client.py deleted file mode 100644 index 1056af9..0000000 --- a/src/giskard_hub/_default_client.py +++ /dev/null @@ -1,12 +0,0 @@ -_client = None - - -def _load_client(): - global _client - if _client is None: - from giskard_hub import hub_url, api_key - from giskard_hub.client import HubClient - - _client = HubClient(hub_url=hub_url, api_key=api_key) - - return _client diff --git a/src/giskard_hub/cli.py b/src/giskard_hub/cli.py deleted file mode 100644 index 8afd9e1..0000000 --- a/src/giskard_hub/cli.py +++ /dev/null @@ -1,202 +0,0 @@ -import json -from dataclasses import asdict -from pathlib import Path -from typing import Annotated, Optional - -import typer - -from giskard_hub.client import HubClient -from giskard_hub.data._entity import Evaluation - -app = typer.Typer() - - -@app.command() -def evaluate( - dataset_id: Annotated[ - str, - typer.Option(help="Id of the dataset"), - ], - model_id: Annotated[ - str, - typer.Option(help="Id of the model"), - ], - tags: Annotated[ - Optional[list[str]], - typer.Option(help="Tags to filter only a subset of the datasets"), - ] = None, - local_mode: Annotated[ - bool, - typer.Option( - help="Whether agent output will be provided from local execution or not" - ), - ] = True, - folder_path: Annotated[ - Path, - typer.Option(help="Folder to download the dataset into"), - ] = None, - api_key: Annotated[ - str, - typer.Option( - envvar="GSK_API_KEY", help="API Key to use to interact with the hub" - ), - ] = None, - hub_url: Annotated[ - str, - typer.Option(envvar="GSK_HUB_URL", help="Base url of Hub backend"), - ] = None, -): - """Start the evaluation of a dataset on the hub. - If local mode is chosen, then model output needs to be computed manually before pushing it to the hub. - """ - client = HubClient(hub_url=hub_url, api_key=api_key) - client.evaluate( - model_id=model_id, - dataset_id=dataset_id, - tags=tags, - local_mode=local_mode, - use_file=True, - folder=folder_path, - ) - - -@app.command() -def update_evaluations( - evaluation_path: Annotated[ - Path, - typer.Option(help="Folder containing json evaluations or single json file"), - ], - api_key: Annotated[ - str, - typer.Option( - envvar="GSK_API_KEY", help="API Key to use to interact with the hub" - ), - ] = None, - hub_url: Annotated[ - str, - typer.Option(envvar="GSK_HUB_URL", help="Base url of Hub backend"), - ] = None, -): - """Update a started evaluation, to provide agent output to the hub""" - client = HubClient(hub_url=hub_url, api_key=api_key) - evaluation_path = evaluation_path.resolve() - if evaluation_path.is_dir(): - print(f"Updating all evaluation in folder {evaluation_path}") - to_update = [ - Evaluation.from_dict(json.loads(file.read_text())) - for file in evaluation_path.glob("*.json") - if file.is_file() - ] - client.update_evaluations(to_update) - else: - print(f"Updating single evaluation {evaluation_path}") - client.update_evaluation(json.loads(evaluation_path.read_text())) - - -@app.command() -def results( - execution_id: Annotated[ - str, - typer.Option(help="Id of the execution to get the result"), - ], - max_interval: Annotated[ - int, - typer.Option(help="Number of time we check for evaluation completion"), - ] = 20, - interval_time: Annotated[ - int, - typer.Option(help="Interval in seconds to wait before checking again"), - ] = 10, - api_key: Annotated[ - str, - typer.Option( - envvar="GSK_API_KEY", help="API Key to use to interact with the hub" - ), - ] = None, - hub_url: Annotated[ - str, - typer.Option(envvar="GSK_HUB_URL", help="Base url of Hub backend"), - ] = None, -): - """Wait for the results of an execution and output them""" - client = HubClient(hub_url=hub_url, api_key=api_key) - print( - json.dumps( - [ - asdict(elt) - for elt in client.get_results( - execution_id, max_interval=max_interval, interval_time=interval_time - ) - ] - ) - ) - - -@app.command() -def projects( - api_key: Annotated[ - str, - typer.Option( - envvar="GSK_API_KEY", help="API Key to use to interact with the hub" - ), - ] = None, - hub_url: Annotated[ - str, - typer.Option(envvar="GSK_HUB_URL", help="Base url of Hub backend"), - ] = None, -): - """List the projects on the hub""" - client = HubClient(hub_url=hub_url, api_key=api_key) - print(json.dumps([asdict(elt) for elt in client.get_projects()])) - - -@app.command() -def datasets( - project_id: Annotated[ - str, - typer.Option(help="Project id to use"), - ] = None, - api_key: Annotated[ - str, - typer.Option( - envvar="GSK_API_KEY", help="API Key to use to interact with the hub" - ), - ] = None, - hub_url: Annotated[ - str, - typer.Option(envvar="GSK_HUB_URL", help="Base url of Hub backend"), - ] = None, -): - """List the projects in given project on the hub""" - client = HubClient(hub_url=hub_url, api_key=api_key) - print( - json.dumps([asdict(elt) for elt in client.get_datasets(project_id=project_id)]) - ) - - -@app.command() -def models( - project_id: Annotated[ - str, - typer.Option(help="Project id to use"), - ] = None, - api_key: Annotated[ - str, - typer.Option( - envvar="GSK_API_KEY", help="API Key to use to interact with the hub" - ), - ] = None, - hub_url: Annotated[ - str, - typer.Option(envvar="GSK_HUB_URL", help="Base url of Hub backend"), - ] = None, -): - """List the models in given project on the hub""" - client = HubClient(hub_url=hub_url, api_key=api_key) - print(json.dumps([asdict(elt) for elt in client.get_models(project_id=project_id)])) - - -typer_click_object = typer.main.get_group(app) - -if __name__ == "__main__": - typer_click_object() diff --git a/src/giskard_hub/client.py b/src/giskard_hub/client.py index 5f93fa8..b74f11a 100644 --- a/src/giskard_hub/client.py +++ b/src/giskard_hub/client.py @@ -18,7 +18,28 @@ class HubClient(SyncClient): - """Client class to handle interaction with the hub.""" + """Client class to handle interaction with the hub. + + Attributes + ---------- + projects : ProjectsResource + Resource to interact with projects. + + datasets : DatasetsResource + Resource to interact with datasets. + + conversations : ConversationsResource + Resource to interact with conversations. + + models : ModelsResource + Resource to interact with models. + + evaluations : EvaluationsResource + Resource to interact with evaluations. + + evals : EvaluationsResource + Alias for `evaluations`. + """ projects: ProjectsResource datasets: DatasetsResource @@ -32,6 +53,23 @@ def __init__( api_key: Optional[str] = None, **kwargs, ) -> None: + """Initialize the client. + + Parameters + ---------- + hub_url : str, optional + URL of the Giskard Hub instance. If not provided, it will be read + from the `GSK_HUB_URL` env variable. + api_key : str, optional + API key to authenticate with the Giskard Hub. If not provided, it + will be read from the `GSK_API_KEY` env variable. + + Raises + ------ + ValueError + If the `hub_url` or `api_key` are not provided and the environment + variables are not set. + """ if hub_url is None: hub_url = os.getenv("GSK_HUB_URL") if hub_url is None: diff --git a/src/giskard_hub/data/__init__.py b/src/giskard_hub/data/__init__.py index f354d75..44df2f8 100644 --- a/src/giskard_hub/data/__init__.py +++ b/src/giskard_hub/data/__init__.py @@ -3,13 +3,16 @@ from .project import Project from .chat import ChatMessage from .model import Model +from .evaluation import EvaluationRun, Metric, ModelOutput __all__ = [ - "HubClient", + "Project", "Dataset", "Conversation", "ChatMessage", - "Project", "Model", + "ModelOutput", + "EvaluationRun", + "Metric", ] diff --git a/src/giskard_hub/data/_entity.py b/src/giskard_hub/data/_entity.py index 6ffd508..3354f21 100644 --- a/src/giskard_hub/data/_entity.py +++ b/src/giskard_hub/data/_entity.py @@ -77,7 +77,10 @@ def _hydrate(self, data: "Entity"): @dataclass class Model(Entity): - """Model/agent object, containing miscelleanous info about the model?""" + """Model entity. + + Specifies the configuration of a model that can be used on the Hub. + """ project_id: str name: str @@ -85,143 +88,3 @@ class Model(Entity): description: str supported_languages: List[str] headers: List[Dict[str, str]] - - -@dataclass -class Metric(BaseData): - """Metric object, with number of passed, failed and errored evaluations.""" - - name: str - passed: int - failed: int - errored: int - total: int - - -# @dataclass -# class Conversation(Entity): -# """A Dataset entry representing a conversation. - -# Attributes -# ---------- -# messages : List[LLMMessage] -# List of messages in the conversation. Each message is an object with a role and content attributes. -# tags : List[str], optional -# List of tags for the conversation. -# expected_output : Optional[str], optional -# Expected output which will be used for correctness evaluation. -# policies : List[str], optional -# List of policies used for evaluation. -# demo_output : Optional[LLMMessage], optional -# Output of the agent for demonstration purposes. -# """ - -# messages: List[ChatMessage] -# policies: List[str] -# tags: List[str] -# expected_output: Optional[str] -# demo_output: Optional[ChatMessage] - -# @classmethod -# def from_dict( -# cls, data: Dict[str, Any], filter: Optional[List[str]] = None -# ) -> "Conversation": -# if filter is None: -# filter = ["dataset_id", "notes"] -# data: Conversation = super().from_dict(data, filter=filter) -# data.messages = ( -# [] -# if data.messages is None -# else [ChatMessage.from_dict(msg) for msg in data.messages] -# ) -# data.demo_output = ( -# None -# if data.demo_output is None -# else ChatMessage.from_dict(data.demo_output) -# ) -# return data - - -# @dataclass -# class ModelOutput(BaseDataclass): -# """Expected format for an answer from an agent/model""" - -# response: ChatMessage -# metadata: dict[str, Any] = field(default_factory=dict) - -# @classmethod -# def from_dict( -# cls, data: Dict[str, Any], filter: Optional[List[str]] = None -# ) -> "ModelOutput": -# data: ModelOutput = super().from_dict(data, filter=filter) -# data.response = ChatMessage.from_dict(data.response) -# return data - - -# @dataclass -# class Evaluation(Entity): -# """Single item evaluation, containing both the conversation, output of the agent and results of the evaluation.""" - -# execution_id: str -# conversation: Conversation -# output: Optional[ModelOutput] = field(default=None) -# error: Optional[str] = field(default=None) - -# def set_output(self, output: str): -# """Convenience method to create a ModelOutput from a string. - -# Args: -# output (str): the simple output from the model/agent -# """ -# self.output = ModelOutput( -# response=ChatMessage(role="assistant", content=output) -# ) - -# @classmethod -# def from_dict( -# cls, data: Dict[str, Any], filter: Optional[List[str]] = None -# ) -> "Evaluation": -# data: Evaluation = super().from_dict(data, filter=filter) -# data.conversation = Conversation.from_dict(data.conversation) -# data.output = ( -# None if data.output is None else ModelOutput.from_dict(data.output) -# ) -# return data - - -# @dataclass -# class TransientEvaluation(BaseDataclass): -# """Object to run a single evaluation without saving anything""" - -# model_output: ModelOutput -# model_description: str -# messages: List[ChatMessage] -# policies: Optional[List[str]] = field(default_factory=list) -# expected_output: Optional[str] = field(default=None) - -# @classmethod -# def from_dict( -# cls, data: Dict[str, Any], filter: Optional[List[str]] = None -# ) -> "TransientEvaluation": -# data: TransientEvaluation = super().from_dict(data, filter=filter) -# data.messages = ( -# [] -# if data.messages is None -# else [ChatMessage.from_dict(msg) for msg in data.messages] -# ) -# data.model_output = ( -# None -# if data.model_output is None -# else ModelOutput.from_dict(data.model_output) -# ) -# return data - - -# @dataclass -# class TestResult(BaseDataclass): -# """Object containing the metric for a transient evaluation""" - -# name: str -# passed: Optional[bool] = field(default=None) -# error: Optional[str] = field(default=None) -# reason: Optional[str] = field(default=None) diff --git a/src/giskard_hub/data/dataset.py b/src/giskard_hub/data/dataset.py index 9d0b8e1..6b3c3c8 100644 --- a/src/giskard_hub/data/dataset.py +++ b/src/giskard_hub/data/dataset.py @@ -3,9 +3,7 @@ from giskard_hub.data import Conversation -from ._entity import Entity, maybe_entity_to_id -from .project import Project -from .._default_client import _load_client +from ._entity import Entity @dataclass @@ -34,34 +32,3 @@ def create_conversation(self, conversation: Conversation): return self._client.conversations.create( dataset_id=self.id, **conversation.to_dict() ) - - - def push_to_hub(self, project: Project | str | None = None): - """Push the dataset to the hub. - - Parameters - ---------- - project : Project | str | None - The project to push the dataset to. - """ - client = self._client or _load_client() - - project = maybe_entity_to_id(project, Project) or self.project_id - if project is None: - raise TypeError("You need to provide a project to push the dataset to.") - - if self.id is None: - data = client.datasets.create( - name=self.name, - description=self.description, - project_id=project, - ) - else: - data = client.datasets.update( - dataset_id=self.id, - name=self.name, - description=self.description, - project_id=project, - ) - - self._hydrate(data) diff --git a/src/giskard_hub/data/evaluation.py b/src/giskard_hub/data/evaluation.py index 468fe2a..b767d87 100644 --- a/src/giskard_hub/data/evaluation.py +++ b/src/giskard_hub/data/evaluation.py @@ -18,7 +18,27 @@ @dataclass class Metric(BaseData): - """Evaluation metric.""" + """Evaluation metric. + + Attributes + ---------- + name : str + The name of the metric (e.g. "correctness"). + passed : int + The number of samples that passed evaluations. + failed : int + The number of samples that failed evaluations. + skipped: int + The number of samples that were not evaluated (typically because of + missing evaluation annotations). + errored : int + The number of samples that errored during evaluations. + total : int + The total number of samples (including the ones skipped). + percentage : float + The percentage of passed evaluations (not considering the skipped + samples). + """ name: str passed: int @@ -28,12 +48,10 @@ class Metric(BaseData): @property def skipped(self): - """Return the number of skipped evaluations.""" return self.total - self.passed - self.failed - self.errored @property def percentage(self): - """Return the percentage of passed evaluations.""" tot = self.total - self.skipped if tot == 0: return float("nan") diff --git a/src/giskard_hub/data/model.py b/src/giskard_hub/data/model.py index 4a5600e..8f0f6ae 100644 --- a/src/giskard_hub/data/model.py +++ b/src/giskard_hub/data/model.py @@ -1,7 +1,7 @@ from dataclasses import dataclass, field from typing import Dict, List, Self -from ._base import BaseData, maybe_to_dict +from ._base import BaseData from ._entity import Entity from .chat import ChatMessage diff --git a/src/giskard_hub/resources/__init__.py b/src/giskard_hub/resources/__init__.py new file mode 100644 index 0000000..30227b1 --- /dev/null +++ b/src/giskard_hub/resources/__init__.py @@ -0,0 +1,13 @@ +from .conversations import ConversationsResource +from .datasets import DatasetsResource +from .evaluations import EvaluationsResource +from .models import ModelsResource +from .projects import ProjectsResource + +__all__ = [ + "ProjectsResource", + "DatasetsResource", + "ConversationsResource", + "ModelsResource", + "EvaluationsResource", +] From 275a09aa1f528c889d3e275fa38cfb2c82a4a4b0 Mon Sep 17 00:00:00 2001 From: luca-martial Date: Wed, 5 Jun 2024 16:47:02 +0200 Subject: [PATCH 09/17] update readme --- README.md | 282 +++++++++++++++++++++++++++++------------------------- 1 file changed, 151 insertions(+), 131 deletions(-) diff --git a/README.md b/README.md index 7c0fa9b..90cec1a 100644 --- a/README.md +++ b/README.md @@ -1,173 +1,193 @@ # Quick Start -## Install the library +The Giskard Hub is a platform that centralizes the validation process of LLM +applications, empowering product teams to ensure all functional, business & +legal requirements are met, and keeping them in close contact with the +development team to avoid delayed deployment timelines. -The library is compatible with Python 3.9 - 3.12. +The ``giskard_hub`` Python library provides a simple way for developers and data +scientists to manage and evaluate LLM applications in their development workflow +during the prototyping phase and for continuous integration testing. -```bash +Read the quick start guide to get up and running with the `giskard_hub` library. +You will learn how execute local evaluations from a notebook, script or CLI, and +synchronize them to the Giskard Hub platform. + +## Install the client library + +The library is compatible with Python 3.9 to 3.12. + +``` bash pip install giskard-hub ``` -## Evaluating from your Jupyter notebook +## Create a project and run an evaluation -Start by initializing a client. +You can now use the client to interact with the Hub. You will be able to +control the Hub programmatically, independently of the UI. Let's start +by initializing a client instance: -```python -from giskard_hub.client import HubClient +``` python +from giskard_hub import HubClient -# Note: API key and Hub URL can also be provided by setting env variables GSK_API_KEY and GSK_HUB_URL -client = HubClient( - api_key="GSK_API_KEY", - hub_url="GSK_HUB_URL", -) +hub = HubClient() ``` +You can provide the API key and Hub URL as arguments. Head over to your Giskard Hub instance and click on the user +icon in the top right corner. You will find your personal API key, click on the +button to copy it. -Next, retrieve relevant objects from the server (project, model & dataset). +``` python +hub = HubClient( + api_key="YOUR_GSK_API_KEY", + hub_url="THE_GSK_HUB_URL", +) +``` -```python -from giskard_hub.data import Dataset, Model, Project +You can now use the `hub` client to control the LLM Hub! Let's start by +creating a fresh project. -project: Project = client.get_projects()[0] -model: Model = client.get_models(project.id)[0] -dataset: Dataset = client.get_datasets(project.id)[0] +### Create a project + +``` python +project = hub.projects.create( + name="My first project", + description="This is a test project to get started with the Giskard Hub client library", +) ``` -You can then launch an evaluation, which downloads the dataset to be sent to your LLM agent for completion. +That's it! You have created a project. You will now see it in the Hub UI +project selector. + +**Tip** + +If you have an already existing project, you can easily retrieve it. +Either use `hub.projects.list()` to get a list of all projects, or use +`hub.projects.retrieve("YOUR_PROJECT_ID")` to get a specific project. + + +### Import a dataset + +Let's now create a dataset and add a conversation example. + +``` python +# Let's create a dataset +dataset = hub.datasets.create( + project_id=project.id, + name="My first dataset", + description="This is a test dataset", +) +``` -```python -from typing import List -from giskard_hub.data import Evaluation +We can now add a conversation example to the dataset. This will be used +for the model evaluation. -# This will contain the messages, expected outputs, policies, IDs, tags, notes, etc -to_complete: List[Evaluation] = client.evaluate( - model_id=model.id, +``` python +# Add a conversation example +hub.conversations.create( dataset_id=dataset.id, + messages=[ + dict(role="user", content="What is the capital of France?"), + dict(role="assistant", content="Paris"), + dict(role="user", content="What is the capital of Germany?"), + ], + expected_output="Berlin", + demo_output=dict(role="assistant", content="I don't know that!"), + policies=[ + "The agent should always provide short and concise answers.", + ], ) ``` -You can then send this to your LLM agent for output completion. +These are the attributes you can set for a conversation (the only +required attribute is `messages`): -```python -# Dummy LLM agent -def dummy_model(all_data: Evaluation): - # Simulated call to an agent and updating the evaluation - all_data.set_output("Sorry, I can't answer your question.") - # Alternatively, could be done like this - # all_data.output = ModelOutput(response=LLMMessage(role="assistant", content="Sorry, I can't answer your question."), metadata={}) +- `messages`: A list of messages in the conversation. Each message is a dictionary with the following keys: + - `role`: The role of the message, either "user" or "assistant". + - `content`: The content of the message. -for elt in to_complete: - dummy_model(elt) -``` +- `expected_output`: The expected output of the conversation. This is + used for evaluation. -You can then push the completed elements to the Hub. This will start the evaluation process on the Hub. +- `policies`: A list of policies that the conversation should follow. + This is used for evaluation. -```python -updates = client.update_evaluations(to_complete) -``` +- `demo_output`: A demonstration of a (possibly wrong) output from the + model. This is just for demonstration purposes. -Next, either head to the Hub to inspect the evaluation results in details, or get summarized results directly in your -development environment. +You can add as many conversations as you want to the dataset. -```python -# Extract the execution_id -execution_id = to_complete[0].execution_id +Again, you'll find your newly created dataset in the Hub UI. -# Extract the results from the Hub -results = client.get_results(execution_id=execution_id) -results -``` +### Configure a model + +Before running our first evaluation, we'll need to set up a model. +You'll need an API endpoint ready to serve the model. Then, you can +configure the model API in the Hub: -## Evaluating using a Python script - -```python -from typing import List -from giskard_hub.client import HubClient -from giskard_hub.data import Dataset, Evaluation, Model, Project - - -# Dummy LLM agent -def dummy_model(all_data: Evaluation): - # Simulated call to an agent and updating the evaluation - all_data.set_output("Sorry, I can't answer your question.") - # Alternatively, could be done like this - # all_data.output = ModelOutput(response=LLMMessage(role="assistant", content="Sorry, I can't answer your question."), metadata={}) - -if __name__ == "__main__": - # Note: API key and Hub URL can also be provided by setting env variables GSK_API_KEY and GSK_HUB_URL - client = HubClient( - api_key="GSK_API_KEY", - hub_url="GSK_HUB_URL", - ) - project: Project = client.get_projects()[0] - model: Model = client.get_models(project.id)[0] - dataset: Dataset = client.get_datasets(project.id)[0] - to_complete: List[Evaluation] = client.evaluate( - model_id=model.id, - dataset_id=dataset.id, - ) - execution_id = to_complete[0].execution_id - for elt in to_complete: - dummy_model(elt) - - updates = client.update_evaluations(to_complete) - - results = client.get_results(execution_id=execution_id) - print("Got results") - print(results) +``` python +model = hub.models.create( + project_id=project.id, + name="My Bot", + description="A chatbot for demo purposes", + url="https://my-model-endpoint.example.com/bot_v1", + supported_languages=["en", "fr"], + # if your model endpoint needs special headers: + headers={"X-API-Key": "MY_TOKEN"}, +) ``` -## Evaluating using CLI +We can test that everything is working well by running a chat with the +model: + +``` python +response = model.chat( + messages=[ + dict(role="user", content="What is the capital of France?"), + dict(role="assistant", content="Paris"), + dict(role="user", content="What is the capital of Germany?"), + ], +) -```bash -#!/bin/bash -set -eu -# Set env variable to avoid giving this info everytime -export GSK_API_KEY=GSK_API_KEY -export GSK_HUB_URL=GSK_HUB_URL -folder_path=./test-folder +print(response) +``` -rm -rf $folder_path -mkdir -p $folder_path +If all is working well, this will return something like -project_id=$(python -m giskard_hub.cli projects | jq --raw-output .[0].id) -model_id=$(python -m giskard_hub.cli models --project-id $project_id | jq --raw-output .[0].id) -dataset_id=$(python -m giskard_hub.cli datasets --project-id $project_id | jq --raw-output .[0].id) +``` python +ModelOutput( + message=ChatMessage( + role='assistant', + content='The capital of Germany is Berlin.' + ), + metadata={} +) +``` -python -m giskard_hub.cli evaluate --folder-path $folder_path --dataset-id $dataset_id --model-id $model_id --local-mode -execution_id=$(find $folder_path -type f | grep ".json$" | head -n1 | xargs -I {} jq --raw-output .execution_id {}) +### Run a remote evaluation -# Following line is faking a dummy LLM agent changing data in the json -find $folder_path -type f | grep ".json$" | xargs -I {} sed -i 's|"output": null|"output": "Sorry, I cant answer your question."|g' {} | sh -python -m giskard_hub.cli update-evaluations --evaluation-path $folder_path +We can now lunch a remote evaluation of our model! -python -m giskard_hub.cli results --execution-id $execution_id +``` python +eval_run = client.evaluate( + model=model, + dataset=dataset, + name="test-run", # optional +) ``` -## Evaluating a single dataset entry - -```python -if __name__ == "__main__": - # Initialise client - client = HubClient( - api_key="2b437295-dabe-4084-ba03-cdb259e3e678", - hub_url="http://backend.llm.localhost/", - ) - - results = client.single_eval( - TransientEvaluation( - messages=[LLMMessage(role="user", content="What color is an orange ?")], - model_output=ModelOutput( - response=LLMMessage(role="assistant", content="An orange is green.") - ), - model_description="You are an agent that give informations about fruits", - policies=[ - "Agent must never say the word 'orange'", - "Agent must be polite", - ], - expected_output="Orange.", - ) - ) - print("Got results") - print(results) +The evaluation will run asynchronously on the Hub. To retrieve the +results once the run is complete, you can use the following: + +``` python +eval_run.wait_for_completion() + +eval_run.print_metrics() ``` + + +**Tip** + +You can directly pass IDs to the evaluate function, e.g. +`model=model_id` and `dataset=dataset_id`, without having to retrieve +the objects first. From eb55fd925ba33995d2c574cc5aa882da2f4bad36 Mon Sep 17 00:00:00 2001 From: Matteo Dora Date: Wed, 5 Jun 2024 17:03:52 +0200 Subject: [PATCH 10/17] Fixing compatibility with py39 --- poetry.lock | 30 +--------------------------- pyproject.toml | 3 ++- src/giskard_hub/_base_client.py | 4 +++- src/giskard_hub/_evaluation.py | 10 ++++++---- src/giskard_hub/client.py | 3 +-- src/giskard_hub/data/_base.py | 7 ++++--- src/giskard_hub/data/_entity.py | 10 ++++++---- src/giskard_hub/data/chat.py | 5 +++-- src/giskard_hub/data/conversation.py | 2 ++ src/giskard_hub/data/dataset.py | 5 +++-- src/giskard_hub/data/model.py | 6 ++++-- src/giskard_hub/data/task.py | 2 ++ src/giskard_hub/resources/models.py | 3 +-- 13 files changed, 38 insertions(+), 52 deletions(-) diff --git a/poetry.lock b/poetry.lock index 22279dd..7275c97 100644 --- a/poetry.lock +++ b/poetry.lock @@ -2135,17 +2135,6 @@ nativelib = ["pyobjc-framework-Cocoa", "pywin32"] objc = ["pyobjc-framework-Cocoa"] win32 = ["pywin32"] -[[package]] -name = "shellingham" -version = "1.5.4" -description = "Tool to Detect Surrounding Shell" -optional = false -python-versions = ">=3.7" -files = [ - {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, - {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, -] - [[package]] name = "six" version = "1.16.0" @@ -2549,23 +2538,6 @@ files = [ docs = ["myst-parser", "pydata-sphinx-theme", "sphinx"] test = ["argcomplete (>=3.0.3)", "mypy (>=1.7.0)", "pre-commit", "pytest (>=7.0,<8.2)", "pytest-mock", "pytest-mypy-testing"] -[[package]] -name = "typer" -version = "0.12.3" -description = "Typer, build great CLIs. Easy to code. Based on Python type hints." -optional = false -python-versions = ">=3.7" -files = [ - {file = "typer-0.12.3-py3-none-any.whl", hash = "sha256:070d7ca53f785acbccba8e7d28b08dcd88f79f1fbda035ade0aecec71ca5c914"}, - {file = "typer-0.12.3.tar.gz", hash = "sha256:49e73131481d804288ef62598d97a1ceef3058905aa536a1134f90891ba35482"}, -] - -[package.dependencies] -click = ">=8.0.0" -rich = ">=10.11.0" -shellingham = ">=1.3.0" -typing-extensions = ">=3.7.4.3" - [[package]] name = "types-python-dateutil" version = "2.9.0.20240316" @@ -2877,4 +2849,4 @@ testing = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more [metadata] lock-version = "2.0" python-versions = ">=3.9,<4.0" -content-hash = "34cd9b2efb104b8673f701c1dec58008f8d27caa3015f9640e22c3691a5f6494" +content-hash = "80eb5b184b265f8e4db54dbe3ebfc96351efb534a2abc4a2d7fcca8d87bea6a7" diff --git a/pyproject.toml b/pyproject.toml index f93a803..1e052dc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -11,8 +11,9 @@ documentation = "https://docs-hub.giskard.ai/" [tool.poetry.dependencies] python = ">=3.9,<4.0" -typer = "^0.12.3" httpx = "^0.27.0" +rich = "^13.7.1" +python-dateutil = "^2.9.0.post0" [tool.poetry.group.dev.dependencies] diff --git a/src/giskard_hub/_base_client.py b/src/giskard_hub/_base_client.py index 8f8e41f..8d153fe 100644 --- a/src/giskard_hub/_base_client.py +++ b/src/giskard_hub/_base_client.py @@ -1,6 +1,8 @@ +from __future__ import annotations + from typing import Optional -import httpx +import httpx _default_http_client_kwargs = { "follow_redirects": True, diff --git a/src/giskard_hub/_evaluation.py b/src/giskard_hub/_evaluation.py index b36decc..74f7d86 100644 --- a/src/giskard_hub/_evaluation.py +++ b/src/giskard_hub/_evaluation.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from typing import Callable, List from .data.chat import ChatMessage @@ -15,11 +17,11 @@ def __call__(self, messages: List[ChatMessage], **kwargs) -> ModelOutput: ) @staticmethod - def from_callable(callable: Callable) -> "LocalModel": + def from_callable(callable_fn: Callable) -> "LocalModel": return CallableLocalModel( - name=callable.__name__, - description=callable.__doc__ or "", - callable=_validate_callable(callable), + name=callable_fn.__name__, + description=callable_fn.__doc__ or "", + callable=_validate_callable(callable_fn), ) diff --git a/src/giskard_hub/client.py b/src/giskard_hub/client.py index b74f11a..a8816f3 100644 --- a/src/giskard_hub/client.py +++ b/src/giskard_hub/client.py @@ -1,7 +1,7 @@ from __future__ import annotations import os -from typing import Callable, List, Optional, override +from typing import Callable, List, Optional from ._base_client import SyncClient from ._evaluation import LocalModel @@ -102,7 +102,6 @@ def __init__( def evals(self): return self.evaluations - @override def _headers(self): return { "X-API-Key": self._api_key, diff --git a/src/giskard_hub/data/_base.py b/src/giskard_hub/data/_base.py index a8065fb..d0e9c59 100644 --- a/src/giskard_hub/data/_base.py +++ b/src/giskard_hub/data/_base.py @@ -1,6 +1,7 @@ +from __future__ import annotations + from dataclasses import dataclass, fields -from typing import Literal, Self -from typing_extensions import Any, Dict +from typing import Any, Dict, Literal class NotGiven: @@ -25,7 +26,7 @@ class BaseData: """Base dataclass containing utility function.""" @classmethod - def from_dict(cls, data: Dict[str, Any]) -> Self: + def from_dict(cls, data: Dict[str, Any]) -> "BaseData": """Class method factory. Parameters diff --git a/src/giskard_hub/data/_entity.py b/src/giskard_hub/data/_entity.py index 3354f21..931ef39 100644 --- a/src/giskard_hub/data/_entity.py +++ b/src/giskard_hub/data/_entity.py @@ -1,8 +1,10 @@ +from __future__ import annotations + from dataclasses import dataclass, field from datetime import datetime -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, Any, Dict, List, Optional -from typing_extensions import Any, Dict, List +from dateutil import parser if TYPE_CHECKING: from ..client import HubClient @@ -59,10 +61,10 @@ def from_dict( raw_updated_at = data.get("updated_at", None) if raw_created_at: - data["created_at"] = datetime.fromisoformat(raw_created_at) + data["created_at"] = parser.parse(raw_created_at) if raw_updated_at: - data["updated_at"] = datetime.fromisoformat(raw_updated_at) + data["updated_at"] = parser.parse(raw_updated_at) entity = super().from_dict(data) entity._client = _client diff --git a/src/giskard_hub/data/chat.py b/src/giskard_hub/data/chat.py index 297225b..f82d26c 100644 --- a/src/giskard_hub/data/chat.py +++ b/src/giskard_hub/data/chat.py @@ -1,9 +1,10 @@ -from ._base import BaseData - +from __future__ import annotations from dataclasses import dataclass from typing import Literal +from ._base import BaseData + @dataclass class ChatMessage(BaseData): diff --git a/src/giskard_hub/data/conversation.py b/src/giskard_hub/data/conversation.py index f77a715..950238f 100644 --- a/src/giskard_hub/data/conversation.py +++ b/src/giskard_hub/data/conversation.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from dataclasses import dataclass, field from typing import Any, Dict, List, Optional diff --git a/src/giskard_hub/data/dataset.py b/src/giskard_hub/data/dataset.py index 6b3c3c8..89ff520 100644 --- a/src/giskard_hub/data/dataset.py +++ b/src/giskard_hub/data/dataset.py @@ -1,9 +1,10 @@ +from __future__ import annotations + from dataclasses import dataclass, field from typing import List, Optional -from giskard_hub.data import Conversation - from ._entity import Entity +from .conversation import Conversation @dataclass diff --git a/src/giskard_hub/data/model.py b/src/giskard_hub/data/model.py index 8f0f6ae..25ae15b 100644 --- a/src/giskard_hub/data/model.py +++ b/src/giskard_hub/data/model.py @@ -1,5 +1,7 @@ +from __future__ import annotations + from dataclasses import dataclass, field -from typing import Dict, List, Self +from typing import Dict, List from ._base import BaseData from ._entity import Entity @@ -14,7 +16,7 @@ class ModelOutput(BaseData): metadata: Dict[str, any] = field(default_factory=dict) @classmethod - def from_dict(cls, data: Dict[str, any], **kwargs) -> Self: + def from_dict(cls, data: Dict[str, any], **kwargs) -> "BaseData": msg = data.get("response") or data.get("message") return cls( message=ChatMessage.from_dict(msg), diff --git a/src/giskard_hub/data/task.py b/src/giskard_hub/data/task.py index 2420572..88eb381 100644 --- a/src/giskard_hub/data/task.py +++ b/src/giskard_hub/data/task.py @@ -1,3 +1,5 @@ +from __future__ import annotations + from dataclasses import dataclass from enum import Enum diff --git a/src/giskard_hub/resources/models.py b/src/giskard_hub/resources/models.py index a6d00e1..f996f3c 100644 --- a/src/giskard_hub/resources/models.py +++ b/src/giskard_hub/resources/models.py @@ -2,9 +2,8 @@ from typing import Dict, List -from ..data.chat import ChatMessage - from ..data._base import NOT_GIVEN, filter_not_given, maybe_to_dict +from ..data.chat import ChatMessage from ..data.model import Model, ModelOutput from ._resource import APIResource From a16026d322da916698a1d008ef48ee9b8c8176f5 Mon Sep 17 00:00:00 2001 From: luca-martial Date: Wed, 5 Jun 2024 17:18:33 +0200 Subject: [PATCH 11/17] update hub url in docs --- script-docs/quickstart.rst | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/script-docs/quickstart.rst b/script-docs/quickstart.rst index 8f9c06d..3a7be76 100644 --- a/script-docs/quickstart.rst +++ b/script-docs/quickstart.rst @@ -39,7 +39,7 @@ You can set the following environment variables to avoid passing them as argumen :caption: Shell export GSK_API_KEY=your_api_key - export GSK_HUB_URL=https://your-giskard-hub-instance.com/ + export GSK_HUB_URL=https://your-giskard-hub-instance.com/_api @@ -149,6 +149,10 @@ Again, you'll find your newly created dataset in the Hub UI: Configure a model ----------------- +.. note:: In this section we will run evaluation against models configured in + the Hub. If you want to evaluate a local model that is not yet exposed with + an API, check the :doc:`/guide/local-evaluation`. + Before running our first evaluation, we'll need to set up a model. You'll need an API endpoint ready to serve the model. Then, you can configure the model API in the Hub: From 86c07500d2c9abfa4e2e21e0c584df396555cb19 Mon Sep 17 00:00:00 2001 From: luca-martial Date: Wed, 5 Jun 2024 17:43:12 +0200 Subject: [PATCH 12/17] update docs misnamed var --- script-docs/quickstart.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script-docs/quickstart.rst b/script-docs/quickstart.rst index 3a7be76..bd00ff5 100644 --- a/script-docs/quickstart.rst +++ b/script-docs/quickstart.rst @@ -202,7 +202,7 @@ We can now lunch a remote evaluation of our model! .. code-block:: python - eval_run = client.evaluate( + eval_run = hub.evaluate( model=model, dataset=dataset, name="test-run", # optional From 93e3570b197681b93254c6eb2093cdff972f6317 Mon Sep 17 00:00:00 2001 From: luca-martial Date: Wed, 5 Jun 2024 17:49:40 +0200 Subject: [PATCH 13/17] update readme --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 90cec1a..84929e3 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -# Quick Start +# Giskard Hub Client Library The Giskard Hub is a platform that centralizes the validation process of LLM applications, empowering product teams to ensure all functional, business & @@ -13,6 +13,8 @@ Read the quick start guide to get up and running with the `giskard_hub` library. You will learn how execute local evaluations from a notebook, script or CLI, and synchronize them to the Giskard Hub platform. +Access the full docs at: https://docs-hub.giskard.ai/ + ## Install the client library The library is compatible with Python 3.9 to 3.12. From a87661eb7dc83fa8c9fdd6332b81ec68c3d1b2bb Mon Sep 17 00:00:00 2001 From: Matteo Dora Date: Wed, 5 Jun 2024 18:08:06 +0200 Subject: [PATCH 14/17] Increase default timeout for evaluation --- src/giskard_hub/data/evaluation.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/giskard_hub/data/evaluation.py b/src/giskard_hub/data/evaluation.py index b767d87..17dbce5 100644 --- a/src/giskard_hub/data/evaluation.py +++ b/src/giskard_hub/data/evaluation.py @@ -107,14 +107,14 @@ def is_errored(self) -> bool: return self.progress.status == TaskStatus.ERROR def wait_for_completion( - self, timeout: float = 300, poll_interval: float = 5 + self, timeout: float = 600, poll_interval: float = 5 ) -> EvaluationRun: """Wait for the evaluation to complete successfully. Parameters ---------- timeout : int, optional - The timeout in seconds, by default 300 + The timeout in seconds, by default 600 poll_interval : int, optional The polling interval in seconds, by default 5. From 1ee98921f4c70cd7946e54fb046249e9a9e329d0 Mon Sep 17 00:00:00 2001 From: Matteo Dora Date: Wed, 5 Jun 2024 18:09:53 +0200 Subject: [PATCH 15/17] Better explain the `wait_for_completion` method for evals --- script-docs/guide/local-evaluation.rst | 5 ++++- script-docs/guide/run-evaluations.rst | 26 ++++++++++++++++++++++---- script-docs/quickstart.rst | 15 ++++++++++++--- 3 files changed, 38 insertions(+), 8 deletions(-) diff --git a/script-docs/guide/local-evaluation.rst b/script-docs/guide/local-evaluation.rst index dad18ba..9d7d13b 100644 --- a/script-docs/guide/local-evaluation.rst +++ b/script-docs/guide/local-evaluation.rst @@ -107,11 +107,14 @@ We can now launch the evaluation run: The evaluation run will be queued and processed by the Hub. As usual, wait for -its completion and print the results: +the evaluation run to complete and then print the results: .. code-block:: python + # This will block until the evaluation is completed eval_run.wait_for_completion() + + # Print the metrics eval_run.print_metrics() diff --git a/script-docs/guide/run-evaluations.rst b/script-docs/guide/run-evaluations.rst index 7cd4191..c52c557 100644 --- a/script-docs/guide/run-evaluations.rst +++ b/script-docs/guide/run-evaluations.rst @@ -84,12 +84,30 @@ We can now launch the evaluation run: ) -The evaluation run will be queued and processed by the Hub. You can wait for -its completion with the following code: +The evaluation run will be queued and processed by the Hub. The ``evalute`` +method will immediately return an :class:`~giskard_hub.data.EvaluationRun` object +while the evaluation is running. Note however that this object will not contain +the evaluation results until the evaluation is completed. + +You can wait until the evaluation run has finished running with the +``wait_for_completion`` method: .. code-block:: python - eval_run.wait_for_completion() + eval_run.wait_for_completion( + # optionally, specify a timeout in seconds (10 min by default) + timeout=600 + ) + + +This will block until the evaluation is completed and update the ``eval_run`` +object in-place. The method will wait for up to 10 minutes for the +evaluation to complete. If the evaluation takes longer, the method will raise a +``TimeoutError``. + +Then, you can print the results: + +.. code-block:: python # Let's print the evaluation results eval_run.print_metrics() @@ -103,7 +121,7 @@ its completion with the following code: Once the evaluation is completed, may want to compare the results with some thresholds to decide whether to promote the model to production or not. -You can retrieve the metrics from `eval_run.metrics`: this will contain a list +You can retrieve the metrics from ``eval_run.metrics``: this will contain a list of :class:`~giskard_hub.data.Metric` objects. For example: diff --git a/script-docs/quickstart.rst b/script-docs/quickstart.rst index bd00ff5..01c6ed8 100644 --- a/script-docs/quickstart.rst +++ b/script-docs/quickstart.rst @@ -208,13 +208,22 @@ We can now lunch a remote evaluation of our model! name="test-run", # optional ) -The evaluation will run asynchronously on the Hub. To retrieve the results once -the run is complete, you can use the following: - +The evaluation will run asynchronously on the Hub. For this reason, the +:class:`giskard_hub.dat.EvaluationRun` object returned by the ``evaluate`` +method may miss some attributes (e.g. ``eval_run.metrics`` may be empty) until +the evaluation is complete. + +To wait until the evaluation run has finished running, you can use: + .. code-block:: python eval_run.wait_for_completion() + +Once ready, you can print the evaluation metrics: + +.. code-block:: python + eval_run.print_metrics() .. image:: /_static/quickstart/metrics_output.png From cb3a21a265784d14d743d6148febb5f4e5494fd6 Mon Sep 17 00:00:00 2001 From: Matteo Dora Date: Wed, 5 Jun 2024 18:10:03 +0200 Subject: [PATCH 16/17] Update README.md --- README.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/README.md b/README.md index 84929e3..600f665 100644 --- a/README.md +++ b/README.md @@ -182,8 +182,11 @@ The evaluation will run asynchronously on the Hub. To retrieve the results once the run is complete, you can use the following: ``` python + +# This will block until the evaluation status is "finished" eval_run.wait_for_completion() +# Print the evaluation metrics eval_run.print_metrics() ``` From 505945e255d1cc994b4be5e65c916638556b0376 Mon Sep 17 00:00:00 2001 From: BotReleaser Date: Wed, 5 Jun 2024 17:01:20 +0000 Subject: [PATCH 17/17] v1.0.0 --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 1e052dc..a4bf09e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "giskard-hub" -version = "0.1.3" +version = "1.0.0" description = "The giskard_hub library allows you to interact with the Giskard Hub, a platform that centralizes the validation process of LLM applications, empowering product teams to ensure all functional, business & legal requirements are met, and keeping them in close contact with the development team to avoid delayed deployment timelines." authors = ["Bazire "] readme = "README.md"