From 48519710e59ec567a7723214f4692245e104cfb0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:55:03 -0700 Subject: [PATCH 01/43] Bump mypy from 1.10.1 to 1.11.0 (#713) Bumps [mypy](https://github.com/python/mypy) from 1.10.1 to 1.11.0. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.10.1...v1.11) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 70 +++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 36 insertions(+), 36 deletions(-) diff --git a/poetry.lock b/poetry.lock index 5c87ae90..4b43ff21 100644 --- a/poetry.lock +++ b/poetry.lock @@ -312,44 +312,44 @@ files = [ [[package]] name = "mypy" -version = "1.10.1" +version = "1.11.0" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.10.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:e36f229acfe250dc660790840916eb49726c928e8ce10fbdf90715090fe4ae02"}, - {file = "mypy-1.10.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:51a46974340baaa4145363b9e051812a2446cf583dfaeba124af966fa44593f7"}, - {file = "mypy-1.10.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:901c89c2d67bba57aaaca91ccdb659aa3a312de67f23b9dfb059727cce2e2e0a"}, - {file = "mypy-1.10.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0cd62192a4a32b77ceb31272d9e74d23cd88c8060c34d1d3622db3267679a5d9"}, - {file = "mypy-1.10.1-cp310-cp310-win_amd64.whl", hash = "sha256:a2cbc68cb9e943ac0814c13e2452d2046c2f2b23ff0278e26599224cf164e78d"}, - {file = "mypy-1.10.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:bd6f629b67bb43dc0d9211ee98b96d8dabc97b1ad38b9b25f5e4c4d7569a0c6a"}, - {file = "mypy-1.10.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a1bbb3a6f5ff319d2b9d40b4080d46cd639abe3516d5a62c070cf0114a457d84"}, - {file = "mypy-1.10.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b8edd4e9bbbc9d7b79502eb9592cab808585516ae1bcc1446eb9122656c6066f"}, - {file = "mypy-1.10.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:6166a88b15f1759f94a46fa474c7b1b05d134b1b61fca627dd7335454cc9aa6b"}, - {file = "mypy-1.10.1-cp311-cp311-win_amd64.whl", hash = "sha256:5bb9cd11c01c8606a9d0b83ffa91d0b236a0e91bc4126d9ba9ce62906ada868e"}, - {file = "mypy-1.10.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:d8681909f7b44d0b7b86e653ca152d6dff0eb5eb41694e163c6092124f8246d7"}, - {file = "mypy-1.10.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:378c03f53f10bbdd55ca94e46ec3ba255279706a6aacaecac52ad248f98205d3"}, - {file = "mypy-1.10.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bacf8f3a3d7d849f40ca6caea5c055122efe70e81480c8328ad29c55c69e93e"}, - {file = "mypy-1.10.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:701b5f71413f1e9855566a34d6e9d12624e9e0a8818a5704d74d6b0402e66c04"}, - {file = "mypy-1.10.1-cp312-cp312-win_amd64.whl", hash = "sha256:3c4c2992f6ea46ff7fce0072642cfb62af7a2484efe69017ed8b095f7b39ef31"}, - {file = "mypy-1.10.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:604282c886497645ffb87b8f35a57ec773a4a2721161e709a4422c1636ddde5c"}, - {file = "mypy-1.10.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37fd87cab83f09842653f08de066ee68f1182b9b5282e4634cdb4b407266bade"}, - {file = "mypy-1.10.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8addf6313777dbb92e9564c5d32ec122bf2c6c39d683ea64de6a1fd98b90fe37"}, - {file = "mypy-1.10.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:5cc3ca0a244eb9a5249c7c583ad9a7e881aa5d7b73c35652296ddcdb33b2b9c7"}, - {file = "mypy-1.10.1-cp38-cp38-win_amd64.whl", hash = "sha256:1b3a2ffce52cc4dbaeee4df762f20a2905aa171ef157b82192f2e2f368eec05d"}, - {file = "mypy-1.10.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:fe85ed6836165d52ae8b88f99527d3d1b2362e0cb90b005409b8bed90e9059b3"}, - {file = "mypy-1.10.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c2ae450d60d7d020d67ab440c6e3fae375809988119817214440033f26ddf7bf"}, - {file = "mypy-1.10.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6be84c06e6abd72f960ba9a71561c14137a583093ffcf9bbfaf5e613d63fa531"}, - {file = "mypy-1.10.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:2189ff1e39db399f08205e22a797383613ce1cb0cb3b13d8bcf0170e45b96cc3"}, - {file = "mypy-1.10.1-cp39-cp39-win_amd64.whl", hash = "sha256:97a131ee36ac37ce9581f4220311247ab6cba896b4395b9c87af0675a13a755f"}, - {file = "mypy-1.10.1-py3-none-any.whl", hash = "sha256:71d8ac0b906354ebda8ef1673e5fde785936ac1f29ff6987c7483cfbd5a4235a"}, - {file = "mypy-1.10.1.tar.gz", hash = "sha256:1f8f492d7db9e3593ef42d4f115f04e556130f2819ad33ab84551403e97dd4c0"}, + {file = "mypy-1.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3824187c99b893f90c845bab405a585d1ced4ff55421fdf5c84cb7710995229"}, + {file = "mypy-1.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:96f8dbc2c85046c81bcddc246232d500ad729cb720da4e20fce3b542cab91287"}, + {file = "mypy-1.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a5d8d8dd8613a3e2be3eae829ee891b6b2de6302f24766ff06cb2875f5be9c6"}, + {file = "mypy-1.11.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72596a79bbfb195fd41405cffa18210af3811beb91ff946dbcb7368240eed6be"}, + {file = "mypy-1.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:35ce88b8ed3a759634cb4eb646d002c4cef0a38f20565ee82b5023558eb90c00"}, + {file = "mypy-1.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:98790025861cb2c3db8c2f5ad10fc8c336ed2a55f4daf1b8b3f877826b6ff2eb"}, + {file = "mypy-1.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:25bcfa75b9b5a5f8d67147a54ea97ed63a653995a82798221cca2a315c0238c1"}, + {file = "mypy-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bea2a0e71c2a375c9fa0ede3d98324214d67b3cbbfcbd55ac8f750f85a414e3"}, + {file = "mypy-1.11.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d2b3d36baac48e40e3064d2901f2fbd2a2d6880ec6ce6358825c85031d7c0d4d"}, + {file = "mypy-1.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:d8e2e43977f0e09f149ea69fd0556623919f816764e26d74da0c8a7b48f3e18a"}, + {file = "mypy-1.11.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1d44c1e44a8be986b54b09f15f2c1a66368eb43861b4e82573026e04c48a9e20"}, + {file = "mypy-1.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cea3d0fb69637944dd321f41bc896e11d0fb0b0aa531d887a6da70f6e7473aba"}, + {file = "mypy-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a83ec98ae12d51c252be61521aa5731f5512231d0b738b4cb2498344f0b840cd"}, + {file = "mypy-1.11.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7b73a856522417beb78e0fb6d33ef89474e7a622db2653bc1285af36e2e3e3d"}, + {file = "mypy-1.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:f2268d9fcd9686b61ab64f077be7ffbc6fbcdfb4103e5dd0cc5eaab53a8886c2"}, + {file = "mypy-1.11.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:940bfff7283c267ae6522ef926a7887305945f716a7704d3344d6d07f02df850"}, + {file = "mypy-1.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:14f9294528b5f5cf96c721f231c9f5b2733164e02c1c018ed1a0eff8a18005ac"}, + {file = "mypy-1.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7b54c27783991399046837df5c7c9d325d921394757d09dbcbf96aee4649fe9"}, + {file = "mypy-1.11.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:65f190a6349dec29c8d1a1cd4aa71284177aee5949e0502e6379b42873eddbe7"}, + {file = "mypy-1.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:dbe286303241fea8c2ea5466f6e0e6a046a135a7e7609167b07fd4e7baf151bf"}, + {file = "mypy-1.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:104e9c1620c2675420abd1f6c44bab7dd33cc85aea751c985006e83dcd001095"}, + {file = "mypy-1.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f006e955718ecd8d159cee9932b64fba8f86ee6f7728ca3ac66c3a54b0062abe"}, + {file = "mypy-1.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:becc9111ca572b04e7e77131bc708480cc88a911adf3d0239f974c034b78085c"}, + {file = "mypy-1.11.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6801319fe76c3f3a3833f2b5af7bd2c17bb93c00026a2a1b924e6762f5b19e13"}, + {file = "mypy-1.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:c1a184c64521dc549324ec6ef7cbaa6b351912be9cb5edb803c2808a0d7e85ac"}, + {file = "mypy-1.11.0-py3-none-any.whl", hash = "sha256:56913ec8c7638b0091ef4da6fcc9136896914a9d60d54670a75880c3e5b99ace"}, + {file = "mypy-1.11.0.tar.gz", hash = "sha256:93743608c7348772fdc717af4aeee1997293a1ad04bc0ea6efa15bf65385c538"}, ] [package.dependencies] mypy-extensions = ">=1.0.0" tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""} -typing-extensions = ">=4.1.0" +typing-extensions = ">=4.6.0" [package.extras] dmypy = ["psutil (>=4.0)"] @@ -827,13 +827,13 @@ files = [ [[package]] name = "typing-extensions" -version = "4.4.0" -description = "Backported and Experimental Type Hints for Python 3.7+" +version = "4.12.2" +description = "Backported and Experimental Type Hints for Python 3.8+" optional = false -python-versions = ">=3.7" +python-versions = ">=3.8" files = [ - {file = "typing_extensions-4.4.0-py3-none-any.whl", hash = "sha256:16fa4864408f655d35ec496218b85f79b3437c829e93320c7c9215ccfd92489e"}, - {file = "typing_extensions-4.4.0.tar.gz", hash = "sha256:1511434bb92bf8dd198c12b1cc812e800d4181cfcb867674e0f8279cc93087aa"}, + {file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"}, + {file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"}, ] [[package]] @@ -963,4 +963,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "e3fa63991d39989af47ef9380ec497c17c30d57bcf4a6c59d8e2146d22d27828" +content-hash = "7219da9017d63f148c248f80a66242a67ef5a0fbb826be70332651970a6a7e35" diff --git a/pyproject.toml b/pyproject.toml index dffc7ae4..f5f940f3 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ certifi = ">=2022.5.18,<2025.0.0" [tool.poetry.dev-dependencies] black = "^24.4.2" -mypy = "^1.10" +mypy = "^1.11" types-urllib3 = "^1.26.25" Sphinx = "^7.1.2" sphinx-rtd-theme = "^2.0.0" From c2f955ecd3a9878ac0166a997b97ec5e73d91f0a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 22 Jul 2024 11:59:18 -0700 Subject: [PATCH 02/43] Bump types-setuptools from 70.3.0.20240710 to 71.0.0.20240722 (#714) Bumps [types-setuptools](https://github.com/python/typeshed) from 70.3.0.20240710 to 71.0.0.20240722. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 4b43ff21..b258dbe8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -805,13 +805,13 @@ files = [ [[package]] name = "types-setuptools" -version = "70.3.0.20240710" +version = "71.0.0.20240722" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-70.3.0.20240710.tar.gz", hash = "sha256:842cbf399812d2b65042c9d6ff35113bbf282dee38794779aa1f94e597bafc35"}, - {file = "types_setuptools-70.3.0.20240710-py3-none-any.whl", hash = "sha256:bd0db2a4b9f2c49ac5564be4e0fb3125c4c46b1f73eafdcbceffa5b005cceca4"}, + {file = "types-setuptools-71.0.0.20240722.tar.gz", hash = "sha256:8f1fd5281945ed8f5a896f05dd50bc31917d6e2487ff9508f4bac522d13ad395"}, + {file = "types_setuptools-71.0.0.20240722-py3-none-any.whl", hash = "sha256:04a383bd1a2dcdb6a85397516ce2d7b46617d89f1d758f686d0d9069943d9811"}, ] [[package]] @@ -963,4 +963,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "7219da9017d63f148c248f80a66242a67ef5a0fbb826be70332651970a6a7e35" +content-hash = "0d5a56908d1fdb653867db55416e55c841b5f5ac94f8607b51dddc177115d6d1" diff --git a/pyproject.toml b/pyproject.toml index f5f940f3..931d9805 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^2.0.0" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^70.3.0" +types-setuptools = "^71.0.0" pook = "^2.0.0" orjson = "^3.10.6" From 5a4e2041d5fde4a7536ce792634b66f805b54f62 Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Mon, 29 Jul 2024 07:52:22 -0700 Subject: [PATCH 03/43] Add related companies demo (#717) * Added related companies example * Added image to readme --- examples/tools/related-companies/data.json | 1 + examples/tools/related-companies/index.html | 30 +++++++++++++ examples/tools/related-companies/readme.md | 36 ++++++++++++++++ .../related-companies-demo.py | 40 ++++++++++++++++++ .../related-companies/related-companies.png | Bin 0 -> 193270 bytes 5 files changed, 107 insertions(+) create mode 100644 examples/tools/related-companies/data.json create mode 100644 examples/tools/related-companies/index.html create mode 100644 examples/tools/related-companies/readme.md create mode 100644 examples/tools/related-companies/related-companies-demo.py create mode 100644 examples/tools/related-companies/related-companies.png diff --git a/examples/tools/related-companies/data.json b/examples/tools/related-companies/data.json new file mode 100644 index 00000000..2b63ea05 --- /dev/null +++ b/examples/tools/related-companies/data.json @@ -0,0 +1 @@ +{"nodes": [{"id": 1, "label": "MSFT"}, {"id": 2, "label": "GOOGL"}, {"id": 3, "label": "NVDA"}, {"id": 4, "label": "AMZN"}, {"id": 5, "label": "GOOG"}, {"id": 6, "label": "META"}, {"id": 7, "label": "TSLA"}, {"id": 8, "label": "AAPL"}, {"id": 9, "label": "CRM"}, {"id": 10, "label": "ORCL"}, {"id": 11, "label": "AMD"}, {"id": 12, "label": "NFLX"}, {"id": 13, "label": "WMT"}, {"id": 14, "label": "DIS"}, {"id": 15, "label": "SNAP"}, {"id": 16, "label": "SHOP"}, {"id": 17, "label": "INTC"}, {"id": 18, "label": "ANET"}, {"id": 19, "label": "RIVN"}, {"id": 20, "label": "GM"}, {"id": 21, "label": "F"}, {"id": 22, "label": "LCID"}, {"id": 23, "label": "WBD"}, {"id": 24, "label": "CMCSA"}, {"id": 25, "label": "PARA"}, {"id": 26, "label": "T"}, {"id": 27, "label": "ROKU"}], "edges": [{"from": 1, "to": 2}, {"from": 1, "to": 3}, {"from": 1, "to": 4}, {"from": 1, "to": 5}, {"from": 1, "to": 6}, {"from": 1, "to": 7}, {"from": 1, "to": 8}, {"from": 1, "to": 9}, {"from": 1, "to": 10}, {"from": 1, "to": 11}, {"from": 4, "to": 1}, {"from": 4, "to": 2}, {"from": 4, "to": 5}, {"from": 4, "to": 8}, {"from": 4, "to": 7}, {"from": 4, "to": 3}, {"from": 4, "to": 6}, {"from": 4, "to": 12}, {"from": 4, "to": 13}, {"from": 4, "to": 14}, {"from": 6, "to": 5}, {"from": 6, "to": 2}, {"from": 6, "to": 1}, {"from": 6, "to": 4}, {"from": 6, "to": 8}, {"from": 6, "to": 7}, {"from": 6, "to": 3}, {"from": 6, "to": 15}, {"from": 6, "to": 12}, {"from": 6, "to": 11}, {"from": 8, "to": 1}, {"from": 8, "to": 2}, {"from": 8, "to": 4}, {"from": 8, "to": 5}, {"from": 8, "to": 7}, {"from": 8, "to": 3}, {"from": 8, "to": 6}, {"from": 8, "to": 12}, {"from": 8, "to": 14}, {"from": 8, "to": 11}, {"from": 5, "to": 2}, {"from": 5, "to": 1}, {"from": 5, "to": 6}, {"from": 5, "to": 4}, {"from": 5, "to": 8}, {"from": 5, "to": 7}, {"from": 5, "to": 3}, {"from": 5, "to": 15}, {"from": 5, "to": 12}, {"from": 5, "to": 16}, {"from": 3, "to": 11}, {"from": 3, "to": 6}, {"from": 3, "to": 2}, {"from": 3, "to": 7}, {"from": 3, "to": 5}, {"from": 3, "to": 1}, {"from": 3, "to": 8}, {"from": 3, "to": 4}, {"from": 3, "to": 17}, {"from": 3, "to": 18}, {"from": 7, "to": 19}, {"from": 7, "to": 2}, {"from": 7, "to": 4}, {"from": 7, "to": 20}, {"from": 7, "to": 21}, {"from": 7, "to": 22}, {"from": 7, "to": 5}, {"from": 7, "to": 6}, {"from": 7, "to": 8}, {"from": 7, "to": 3}, {"from": 14, "to": 12}, {"from": 14, "to": 23}, {"from": 14, "to": 4}, {"from": 14, "to": 24}, {"from": 14, "to": 25}, {"from": 14, "to": 8}, {"from": 14, "to": 2}, {"from": 14, "to": 26}, {"from": 14, "to": 5}, {"from": 14, "to": 27}]} \ No newline at end of file diff --git a/examples/tools/related-companies/index.html b/examples/tools/related-companies/index.html new file mode 100644 index 00000000..1b5ae182 --- /dev/null +++ b/examples/tools/related-companies/index.html @@ -0,0 +1,30 @@ + + + + Vis Network | Related Companies + + + + + +
+ + diff --git a/examples/tools/related-companies/readme.md b/examples/tools/related-companies/readme.md new file mode 100644 index 00000000..9f107550 --- /dev/null +++ b/examples/tools/related-companies/readme.md @@ -0,0 +1,36 @@ +# See Connections with the Related Companies API + +This repository contains the Python script and HTML file used in our tutorial to demonstrate how to identify and visualize relationships between companies using Polygon.io's Related Companies API. The tutorial showcases how to fetch related company data and create a dynamic network graph using Python and vis.js, providing insights into the interconnected corporate landscape. + +![Related Companies](./related-companies.png) + +Please see the [tutorial](https://polygon.io/blog/related-companies-api) for more details. + +### Prerequisites + +- Python 3.8+ +- Have Polygon.io's [python client](https://github.com/polygon-io/client-python) installed +- An active Polygon.io account with an API key + +### Repository Contents + +- `related-companies-demo.py`: Python script to fetch and process data from the Related Companies API. +- `index.html`: HTML file for visualizing the data as a network graph using vis.js. + +### Running the Example + +To run the Python script, ensure you have Python installed and your API key ready. Execute the following command: + +``` +python related-companies-demo.py +``` + +The script will generate a `data.json` file, which contains the nodes and edges for the network graph. + +To visualize the relationships: + +1. Take the `nodes` and `edges` from the `data.json` file and replace them in the `index.html` file +2. Open `index.html` in your web browser. +3. The web page should display the network graph. + +For a complete step-by-step guide on setting up and exploring the capabilities of the Related Companies API, refer to our detailed [tutorial](https://polygon.io/blog/related-companies-api). \ No newline at end of file diff --git a/examples/tools/related-companies/related-companies-demo.py b/examples/tools/related-companies/related-companies-demo.py new file mode 100644 index 00000000..221d5f0f --- /dev/null +++ b/examples/tools/related-companies/related-companies-demo.py @@ -0,0 +1,40 @@ +from polygon import RESTClient +import json + + +def get_related_tickers(): + client = RESTClient(trace=True) + + # Fetch a limited list of tickers to keep the example manageable + main_tickers = ["MSFT", "AMZN", "META", "AAPL", "GOOG", "NVDA", "TSLA", "DIS"] + + # Prepare data structures for nodes and edges + nodes = [] + edges = [] + id_map = {} + current_id = 1 + + # Iterate over each main ticker and find related tickers + for ticker in main_tickers: + if ticker not in id_map: + id_map[ticker] = current_id + nodes.append({"id": current_id, "label": ticker}) + current_id += 1 + + related_companies = client.get_related_companies(ticker) + for company in related_companies: + related_ticker = company.ticker + if related_ticker not in id_map: + id_map[related_ticker] = current_id + nodes.append({"id": current_id, "label": related_ticker}) + current_id += 1 + + edges.append({"from": id_map[ticker], "to": id_map[related_ticker]}) + + # Save the nodes and edges to a JSON file for web visualization + with open("data.json", "w") as f: + json.dump({"nodes": nodes, "edges": edges}, f) + + +if __name__ == "__main__": + get_related_tickers() diff --git a/examples/tools/related-companies/related-companies.png b/examples/tools/related-companies/related-companies.png new file mode 100644 index 0000000000000000000000000000000000000000..ac9b14c73a1e281835da8e68ee7b9e9dbe13ef23 GIT binary patch literal 193270 zcmd>m^;?u(*ETI7f+BE(#7K&C!yqNn-JQ}g)X)tgD&5jZcXy*8-Q6hNNH^a#fcNtr z@B91*-w$$lP3*n)>UFNQ=d+xQC?+}~IvgAvrnuNU1vogQIpAL=DhlvQB6%@292^3x znUWe*O>O)L;$(-p8jg0jjETLq4itp`=0CG&Np>G&rXS6hXSmW;L?;>yRjsyN* zJKcZde{c!L{JZY~+y}(S_^%v+hkrG}2m*-T4v@3VN&Xg~Bk=YLqHp1f`iVB+-~`~r z-w7%?!*9<$N>mzaZ25D0B4Ld;&5-&DA&t%#7Z=0a;2`-kqex0y2tAdEG%FQzsl_(B zIUS?9L7Mz~K_$5jx>ujrI~hQD&%?^f8yha0m+8ul9G#4JduI=LQs`Lix40MVo%(K0 z6AxuA%D%{93&6o6{hvQA%s$YLqBj5k^TyqWTkt^ZKmEMn5Kuw?`;Yez1f)44loh-G z`xfwVZ0Hiff8S3Z-WT%3&yM^5k^=0ATKDJi|Jez)`(g>4AZLJJEzy6W1P&m?8Rfqo zz(&nGHQ`69)|3BoayWpHH;Dh0dM-MF!9IOChJgQeaDb5H|GFF!5x}igrdP2-|Bcb! zsV@fp>v9NBFtDNa|3vk?{NF5weOzEL*yO)02L~U3j9SP2xO?Tl9vl!G>wjC$`~O?9 z2~Z*Zm9;UZqLCM$-g^JUYEpyXe>e@&Lokz8K~qaGV|Y-xcQmQ3 zm3gk=munvk+q2pGOz@BUB1FU^fBvK*80C@Vo6%q-Fe5Y4o!}s4-3fz4Shp``ktQuP z1atn~7m(+fHlUCTZeLICg^iu=jWRudQ6qyFJJEfaGS<1sH^oxKC5v+M1@e4mm|Z!- zB-UTUIpSYg|;|cD=B6sZ^yX&+xjw?EHtcd6@F<+@zn}zr;nA+FCVJ zs5evp!hCr-fUl)%BO!W7xzRPMpHBgk!5 zdkYV$DpfSQN)Y0h=oq;e5J`|%|4D1|B)s+iMWpnfZH<9qpp4-XEDI#E%BV zkRNV;T~iAh;38yR*;~_L(!N4Z=f0gr@aNmFT&-lChf? zBDsb5+$|a@)_TS3BBlN&Ux`_nRH^Wcx+n`O@r7k=Uj6l#C5nIpl0~?Ggnw4Ekr`$= zIZly|lI3_^RTR-&W>-&CtNH{D4-BWNrNZdcsPQt|L7HWpuvX1F*dUN&5O3pv@M^Z9 zQD@bQD1x=%sf}uc5yvy!nWqnK-iHHF#ObgS_x$ zRbEZ>=1tvG&15sfAY5(p!Y;>-{Fi8BY+as0>7+w=J65qpxfNO0D%}J)7|Y!_80ox8 zOaHFlf`$#n(25<=gK^9Ugx;&GO+7+7LxxX0GhyGy=~Jyd@nm0X4o6u(iHxW$M*jsn z*F>qjm3HCQ!GVN&L!ClDcSXY0S#2nhOELj8+r+ktJ(;UIo@lKayzRTXZ)B9`5QTq6hORTg;_)Q^dr4n+*PH` z)D4vycr;s4fAS)cF;q>Ex^I}EA`OiRV195u0%ZEpQsBYP)2KE6GWFefZGsBOx5j^u z9{>mqysS@sPxw6E*FWP=rc`!zI6h2xe&2VmwQ_vr9=W%W!fc;Fca||O;XO3RPCom6 zi289)xt|Z~+D_Pv?#q3={}>Hw6=1)5r~HMYFkiY~+Okvr)^4&BVJP*Ju7tR4Q^8e* zNKA~nIue2$^n+%x?_-|D)z#G}+tEhU8_pIEg|l6sI60kg9UeS_4+T0lRFaIN`t6-- z2E`#@(dUGjllHgK5vYKi)JBZ2bs#Ra!z8~r%uAenv*M+X;Vs%`d}TMU=Xooz{yL|1 zCGS+t>~}=>A<_F32})nx<#uTim9T+KT&rq?jC0*kHKRTLd|DKL*XA0PbA)9?Qp`-)%~U#GCod0>P)w+g`s#H*2wzB^^2f~26HK)*xiZcwNGdYahf;Ibtnb9yfpfI(_bHytv}g z16#rPp!M7gm(;$hY(m1DoCVa!!UXiBKwj{kiT&)_-KD(39try(3{p|6h zhaA(}8b}_`t1Qg^fvp3$z4#BQA15xZttDvaHh~NmQBAoE;ONEtmbZss7uv`|=$d?>s;wkS{MdF=O7b z1~o#!b>BEv;$y&zLUGV*3*W;JPxey!>L9Hf5RH2y6IcXDL%w+mR7)^P$Rb=~bw>e774M{39S7aC>)B-Y3;I zfi0~+$_0DVOeNb53{$r@Xh^};eANNLF@=5 zx6OIEf=fmB)>Wen>LXl_N%}QD&8=HJ_QGPt``bM6#`yCVd0lwRvO_FB)qA~xgO>#g zr^9!g^5XZD*HNXy=WGYDP3;HYisH~~D^g}l(`^$z7OfQleew~RSX6v^|3PfAJix1D z*x9q*KR;u{j&hhQ8;;MAW2O0@m7mQwKpgmv=*kcNl*DI46u0xsL7p?iug~`Qo(eRv zLqPPl>-rx(QTuZNc8A|$h!1>Vt}Q@dAY!QEeN?td2l&HkG?%5psnS;p-Z+}N zKIygHcFnCDoD@_)IFGqdn&aCzz5Xt7U^`f{ov{%6;yxk*&NCMqv>t=*u>1L5m3)y; zNTas49OkOFb7IBY=dtFOkzQ^1^BwS*AVx~OY+bm~`kQKMkpa~iC9xp;gOC&!BWTVK z=BFj788`AQ`YvBl#Jakh=laS_(`s@+j!$#i_8*Bxy8p`tpH$!w7!tB0GB9TO2%t&5 z>W^sHhU$hmYU=3Fn2^l&;a|rwNIO=k>#}8G1fMy-4>tX%{g9ZUg0PVQD-c{an!eLG zY%!m}?B|_sTUW7i`hPYh&Zm^DspXikGEh>XN3linYo}#U>F7kh(!ssH437u@>n%_Y z$jcag{=r`{`UrhA5%(Dosc)=rlE@<7E^d)_G-k@uT2;F(E@z_t$Le@O_L+v?gA_`E zpctqea(K^xeeV{d@j4UI!r~JFX`bS=5R{S1S%wsi!ShxUu)&2q@_|g8*Te#=HnW$5 z7(>}OVaENgfDieCZC5KB_KQDzzJB&yhGT`28jV_T&K z4dNG-2qunNf=St`I96Q64(mTmrGPPY(`x$83t+4HbPVj#%+S7gLolgsOy9zvDjKh4 z>)V_a{gFQ?mRR%EUg5FsFviGFPQE8y?R=PD<2erg4bl~OotBM04^=^i#^O$;Lz#_3 z5>Ob4`DIAH7m6&nXvh+-Jegq?Wf>VUylqvFFu_cX0odXSMs`USe`JDAm<7AJ;xg>oKByg1Zub_1$a4w|?3)iD{2=*Xo#*sGbq~%5Q!R|+Mn%!9X>pGJzNTbuWRgMGb?Zl^Hz+7Cr z%AS#V))vZiHx)&b5-GjnEqMIdGwI_$)?Rbh=3=YvTGZ(%Yju44Ssqtf8yqf2+w(rC zISf}BG7$INw^<=uB-Whun^$he))7E5Y@?i%^EV>}g*^uN+a_5o^6_7lb^2)fuJPAH3T}f8R{Cnh?x8oH;Skb-OoAGynX9zqc(=t9 zQi1oC>-wf}xZLey5JBQaxENuEx)CMLS1!7lP3l`J>Gf@&dIy!v-s>6-8F0&tplFf` z`1%vX?pM?(zh+WgIq5@$#}@kl*!jC0JLx-D!+}63rgkJ=7$o&e!=R_|sZyY7!1C;m zx~|NQXQ)g`&_l_W>NQy^t`0pCQ_vB{s_`CH$?EQ@0K9Ia4rIJ&%0Elj?Q6vb5|e@bcA%DIE3eM-B~J?m17Ye|l1Wgpv_ zdkTs6z3R<4ZZG2LINi0fsQ4YG1FOGLlk=9#Dv#~C*S4pSslYdhrHTu6Qy_zcs>KzF+9!EN;MPnYX#}PO! ziu$4NMJbER7{@QGGgnE5(nR@v@r#VBz_pF#o3}EG_gGpQmFd}45H9qSC~TvY1pWz1 zCziBb#5u)AgR;u1#Pc>2mIb!3FvAfnwb{p(pwivniNb41KP-y|JnxnbUBf~iID%znRM45S~N36UfM(H2K5r%ZI} zlVfB|6NZ(G?j^OBo%o^~w}t2^itboWt5B~bm>c!B5OME)LfD9*MdBv+sV>(>v}T>3 z{n?_;zP33G6&?{vvd5TFobqL(c8F<=rSQV8MTIBHWN%)lqYz@!CRyFJ4o21m~~A_ zA{rN}SyiO6`9gU9vR4DHNO{UBl&I9WL)_Rn(tY2^FVRb^Dbek@;*til@Uc81&l+!C zJ9@*4rbR<-&w*}FwdCn6n+uDcq69n01HhDW#q2nYJ#17o1pCh^{6BBHee%0cY{dKl zvsKEmmj%qWr2|1n`|6t5qD|Ak5^rp24aeF3;Ln@A0nHWPbg{6-s12;$h1ZSsM&0YJ z_2a1ao6|!&9XhcC627+kC6=`ZAM}Fj>g*jeD^GqsIp0I$HLOm~)ePPD!&EMFapUE$ zPV;bnK+$|C(AG)QXzmq`i_B&Y3>Vxwi?^qFn@`S|ZOX}g}D=nyrVaBYOsfvH;1 zRS|tdpt68yBxWUx-#n{ZWaGGM!Nlj&hLv%)jx~wuE_t^#B!)%Dr9j++3sLqH(|IM7 z*$OOC%-+b^*~bJP$0F*c!5{yo1K#yWES?s)PRgIB?-B%O`Nb1;0Pp%-xjK>amQiJ) z=)>)cyL5o?&QF$IrV_CQK~(Ce z4vm#MI*r>?Jlq5MArQ?Y+s=5tSqe_i;sE!x7QN#wEECH}FRw8WHOZiM-I@{CaLOMY z!vUS?Q!|$LyNXDInL2M zD+13jyK6vpw4l5T?Vz?*V=Hy5dhWUB|<^t^_)(HKWxw@vo|WAz)J zQAC)32TdXrY~XF*WFG?(^Cm|C7gks*Mh3|aGG2u!v3v<^*gtXP9**a5;%=@H`G$8c zmvnKmKGldAJH}G>>CkPr)Ytk{vz3z`M|4?I=)J})JQrp~qoNAs7Ux9wq#*af(tGrb zj8|%{93zSsk4X(FOa9p_qrl7Z{8e18Vi_w`I0P}|#8mzDkcQ;~say=9(=IFvIul84 z?bfTkWq;wp+}#KLg7N~|mRQ7KF>4;mFVO z@XgA~(6_{1(If6`e5z+C7^tUtQ9a(Js=1Z9y`=#Ip&7nvfsnbMt$S~nomxdVTs^kv zu5}U#Z8SihKf-zxOR|*&PA~~mg+)7fq$`S+BL)6rDl1sjR{+`gRpvN%F?ks=jHb4M zEP@L(bHGEsah z@^xc@-_G;|@${J%7E3h<*&?(yYqP|58{u=yv+3VO!T!ymCtq55ZmQIy%W?{2WQZo_ z?1Lxxi4wJjg?61Y-#%#y)2m(shoRqNMIxX%PWo>z?+6gbKg*i#KG^VK4>9l=($#o$ z+7-cLqWaSgy!HW&$dtZLmc^ebjH1zsz(#Ud+QTk^pjfs02Zp0F%c60efY-<43XzQ@ zKKuNsw!c6Cg*pHPM6}it!%`e-pIc2Oefsg;g(23Z0`^3_Xy&)H^Cl|UZ_I~|f4=&R zKln5!@=JmLKj%E*AFN zbE?TyGDBotEc}!&|E1b=xych9y5sFNUbTwOh{dttoH*>FBgJFl}v` zJZn{$`#16PSq9)M$tG?mSjFr9vZOIf`~r%lSvZGZXg-4~og=3nJMQ>MGYwA-QWz>M z-r!xdCh}Q(vGp8RK_2Jw9Kxe`>x`Xe6*0lTFP}d9QOe_<)K4G*GJjMiOA%NZzpl2( zY+;_uFuHS^hK9SFqWCf(WdFusd8XPr)@i|`S~}Lq*jPee|J!2%mUndyTjR#f5K~Lb zsIh!iNpm${^fXEC`Po0Qou ziO{@y6=u8ivnx+I->@Tun8o(@J6bp6nP%i7wbHkF`T0B7efUe#@8DVeV~=Oao;lPk zg{Zz>*$+o%aV@DXi*}rRWwCanaxz9>t<*J?{?&0d4)^k*wpIWVj>vc|7+8e*)jK40 z-))G4PqnTOzfY^&IQVLrnt!8&enQ(RiO9Z}nLgxvyL@0d-l8ZxnpU-HvWT?lddIql z(d%5YtFyD@)J#uykJ+gEdF{=`Rzm26A-WU)@yA5R1@@Dw%f03W&&Iu`%Z!Q&B|JJc z(A1Pw_PcrLh_qvgZ0I*ALuxu&T=z_^Vg@-$V)Kt!FR8(l_q5&l+igsMy)QU$kss4O zbOFSoVPUh&UKbWNe<0M!T`o6byqWb~&*N+Gs%k7s5J$zHo7&~M;8{2iNwn*x>BF5V zGYaGd@1)#bWfKd$07G+v{$c(;Uz|RDHPUML!Cfrcasmc(@(=#d!*c}U;bs-!}#3QLkTEwfHFwv;wCAfDIneM21G z^yWEUuH(%dwyNLzfHnX|pvPnHhdCz%2Dur~vplRPZ?)e?78CO5wZKie?KNsvmUXFjsbym@7#rl0Jul2?UcZh|l;y2- z@j6R5KV0i+M63#3_Vp~`NTPS~;OT5x(kc4^UZeAa zmEl1>OrOWJhpT-SIzqbxUN_}Lo{M~GBcwE+pX%{ePijl{Y-QwF&#)uEZ%*SGAmXQ! zjfpEbMYSNg7#=RX6# z9L6>`Hx1jr;40|oKpypwxGX#rf>_L>dOrBGvaIXTeM&tMFSrJ1eG zOw&`ntC#wp*wd`1rojaKqql-T1^9Z|2w}NMi!$Jgw<7Tm4h;~V;bX8d}i>2lYCwA}Oh;t6RlyT$mV zAP?rG)qKMgp9&%bi~p*G*tz~fmJY&Zy&Ywa5{D ziO9)Q=%GF12*+K%Pz}Ix_L8!4Sg`X5A(-6^&r(iT)VU|YzO(WK6-lcj7_ zQ%`lBlZ4g9u(*(mc6?p2)7?2ut@OM+i7Lw}vH%iS)4&~fQ{Ba3^7_i=AJeWq^wkw= z_InYM3}#P0#YeJDA-CTmfbE>7z_&rO$6ldBZ|`Vk#0V2>?P(O91I*UvIof&-Bk?tE zMnpIec|E}2w?n=xE}^bKKEu+T?q!w z+XM=zwA>h$+gcP7K@EH4)gT)f*_+G;ZK&Lr+vO|Y0!SjZiko%VP_xn(W%#e5Qx#^B zZ*I<(%FM@J$AKO4h~JE4pm|+y>F&%dxNa31uq2D*g%+J=`7{F7uFBEdI7Ue96!sh! zx68JJn7Z6#08hHX<|lzkXNGv>wqDr0#m&`unj*=-o5NnQSffiXB(TN+W=20UVf+<1 zrt-Rq^X$|bb%*n7;k~QQ5CiEob7YFe&A_T}J{&Gn=PLKo%6^l=FSChKTg@?Md}iA#vMgcC)I*;yV+N;rfMC3wZx&DITjP z0&7d3{&9Q1-1k04Mh<0e1B+M0u6o6EF1O|JA@Y-d!SWDPq_tapuJ7%_cUg)Os3+b$ zjyRQnCdxy5q5&l?HU$pTH996n#L}0F-T7q7WM-R_d|rlUhwXed!Fn6{oSiFsMiXB< zy)fPF>ShhUi(e?ab6{YX9_*nUSVVcUrF%Q=Sv*mkn;SmoIMa92%dd^IZpvF-r2TSI zlpWdjTeqGQ_kAN)07Qdeb-Q4v0O^swBc_2amEc)VQ_-;9z_zcjhO} z5v=0#xadq3^qa=4aj4vh{6gk-vN;y$t*QF*)_yk0-sznSN@#T;lMl?Wh$EcVSEJ z?|(cP0lBbu8zl)xT=>If_jlZ;0zfdvhy7&lG(h_~7l1ve>!^&ir#HGyuI@P4E%Qyy zTX|zxc(%$TGZaK~<{OUN9~$q>DQ*S9AACihw9%y`or3nIVV(k$1ZmOuIw`* zmaqq&fEgQ8&})9$z6nJsU|=DFl?sYO7lM zu<6Qnuf74_zW_DbGoVxhsWHIx1W8cOK)$L$b9aFzE7RibFe|6tVSmKYqGOcQOL67> zD=Vo%mYCyNw)b>Ku`NyGgeHP&=?a>O7MONDr8jzSAMjM4HdtES!0ZGoyWDAQx=PO@ z)<%XP;O?DEN@P0{j8W?CbIQ24?iD>fn-t@VD+$(3G_t(MO76J(LsQ%Y(tPI99nx{9 z@?s2&YZ@J5+xPvjmX`on_e9W+0PuC79E3IL{#aZ-qMfYt*^B4Hv8P2q1-!MAIWr z-Du26i`FKAzX>qBiKlV?>>ebZg`HA#L9Ev6d-jKB_l;ZHN)06PcEVwV0v)Ho2>#W* zKLCXh!O(2mRR-YMyBL|_O__j7;qkyUaNt5+zT3}I%R-VY{%6oWSIAH1rhMBf^dN$- zTbB-V9M;9rKSZD9tbD%LSdcoxl}I?9*)A;2I#XLj-HNUGp2((d9E^SF>f+>)ndoA} z$(&|Y}{6pF$5w;cZr1K`B8 zi(mj8lGx(G61w4M_P4z~1aJ--8!^O~2j#g^w9@100GX2+>I3u~)gk?0Xj?x`md*{q zxcucjO@0(9@o-_f(B$7K#Q!-bD2O{~202Zh*G#6JTkUE|xJfGTApE(G)`GO3{~GbQ^zaD6q%Dnk85KMz?(NYTP$^f)8t_)H?|^xh4swyp^z93& zZ*2zUXQ0#Dw;Cg>5AYQzObaHW<5dVuM0>~#)glT+EN?XD%g03yC0vZ!9l0+DA$DD* zK?vf;DRHUc;^<+$Zf@5)u_WSfl=2>2edsccR>-+mN_YiNx^SfuP8DN^@$Pgf6xJja z6P1Ty>MfE8s>yO7Ki90TM+{gE8&L|FHN;>tO$MG2Z_U@q%n>y2ii@^t<)2a8)Z!*y zKqI|G>OD%Dx^L3o{%)&bxzBM?-vI`RC;st%8qO9?%faB=^7*OV?pzH*n-Q8! z(d}sRSW;bVRZVVgK6qf+wGLOvkW0JW5wa*W@^r$*t0I9aAnsEB6aVYB18kco_e(#4 z`1(5<~g8a{_l^brJzI z6JuO_c!*Yc>^RNBpir%Yt&xHk<*Bt0i~lFKr%pg&^o~%}X`StSw{}BebI3C5BEa9i zaG8lxSUsf9hWXxFvDfPWwJ6fGrGV`w5QGr<(WooW;*psA0$Z)gNmf*ltEO=F zLJAuz07Kjcu(4&0TmO-8E8`1;jKB>~ZSt+&fGX(5nb?HB+crYH)Hf(S&}A16Ys1l& zx4Zd@QJ8vt_S=&C@>kz@dqP2qEKhbek5~3&Q4asDN?~D?km&NKkXKoE>I>L057Kaa z!S9efIgEQfdAFOWO@mt*e6So5)+ay9s7Y9GtFSZ0+T&^!QE|jJRgx)FAZQl>!3@_t z9P8KXyYaJIz9Pq<C?5zut&2Y(Sm|6W8hQ@cse7X&!;z zqv1}G&$I76MILV^Q0hXgqlScLpE{3tC&+m5Udoj*Q}6Lj*0_2vUp=s$Oz;^P4^@ z2vj-7I+{CxtPz%Q2~7&1yfWL4PvVcsYw zNB9=RLk1#~E;$#;#pY+GA_JU1f1#|8nvC1q|5J$(%L>n_eOl_UcuQuXEkS&)GE3d} z#2c6`$iq+#+QUwg09&*>=9ZQ*^V`Xgx@^zt{Lv08zegSfK;M8;@>zFJ``vQ`RcfvcGd%&nOkKDo^qxq0L>%nixP6w?THSb&)x%rP*%gqY z`Z?sCeV%FR4$yY#*^cHh+=(4K=)u8Q`E%&j?IZNH_p|b-XEpgiemnvp5#NzrZ?`J7d8IvF$I1-Z6R9n{@9smK*977ZuiK z33AZysZD*I(46`zx))CVNIgywYlbJk&$RwsRf@$!??B)RINEQ{W%N52%7+UoeR}{N zM~VT&G_IA+Wxiorp*&MQ`7G31apCepYv8g*C8jVx7B@wOQ`O8wWtB=CpBA%R`8z9f zD8W}+f{kF7IiQhf<~)Jm(1*VY>n;Q332Kdmx9vvJ=9Aa=&>tYWUQItIg@@%JtULxNQuB~&guuU z3792e?^k-OOZHHx?mN6!oa7>w&PlI(MUTw3E-7B%jaHM(4&UFVVefG74}2*AOiip& zTJuhK4Dbf&vIwzR$U_a9u&Eti56-))CM7SAAVSSqDN7M98gc<_O3ItJ)MGX z=RnpVxM4PZ2f$!gd&}^Q==P&Ev`bIzBLAa5%7EdMdZJD=5JF9hvV6}KxO~Jo-@xlnekJ37%6S;;wF`ESx z6(i|1D#VUz_9KAO{`%rL54EOVFT=nE=vEbNPKo6dOB|m^oku_K=`1-8m6WNir;v~zagar6=~w`O z4r(*hE=O>{^YCsr9QH>7Fp22T5Mo-OtkuhBO}{jac#Z8G*k4$l?tt`7=2X+cY9`gv zWbMN0c0Hey1)WwfDG#2LxU}0o2Bddav%s{x3P2N_vG08Cv)4A?(WpB|a}{^o)=?{o zc^o?zZcaGe+NK>Qw5ca_y*v)DZ;y+;*qgloe#{`v_4Yp{7wKf5(0b1&;owk7r`x2J z>~-UE-lKbC5SqcW5~Ub_y7hv1B@4d#>dIZc)-JO^r%~ewTpEKB^18%N=%R;*+{i#V z$UPZl!MEXOLR?dCIqo^ZXNOR{|t48!~Dua5)J|h3k#pDvn4UO?zcYbf#DLY z#=Rwey2Xtr@uTD8(-N@$K&+0dcnJTE^QA?9BKN`Zgl;vhnwr`x01I|Hj1AG^*(xYs z-pntq3Qgg()=4>+J3>6HVW+g6?qA7dPM3UAs=| z2XvKokXSTNgj)f6!bEi z(4BVxQ}|Sy9+Qy*y`&_Lx+dawZuo1GF`7&Y8Jqqn+K1T~feyeWf=~1r?_3Q665q|) zdpFl?nd9w|>`;#YlVq2lp1encLObEMb+U->37NJE)=g^<4(!fETQFD(8@iZ|kxbdxPeCS4$4E7C%tXtQcQ-|z(`;0ay-f$@sA zh6QE_j*Y$9njHPT`*45V5)a|qQHzHSJJ$&70Vt7zy1JRF=md18#x@;*bb4;wcWc+C z(XgN%m7#nWVlbe_Z8~@NYS*cmHkALSX8l~0$o7Lr!@1~$F)a-ZGpT07X6fx^^X-g5 zf;w$~0X+Z@KCcDvm7UaNw3bS)m)%(LQi3?N>-e8>)7mW7Y%n>@25EBIgW?S@((Prv zJ*~k{f&72(LKLyjvp_xUM9<9H;zC5+QNf$ozod4_R-C%P`*^D`80P`0m;iWZF zb$HV^P!P8P?@eRCL;7Hv&}4vU|>syW`8 z2sD-$v+E#sn%w$1MS61>8e%h2xdb4ubnNWxeG?OI9)P|d0BCRbSLXNMWj}B5e#SL0 z*xIMSxB~P5@DC4*i;DW2Ql=Izl)avq$E*XG za^-yc0|bC=;{zK$g(4`!;>s1BO+WWqr&)HAF{iw!jcE&A!}_S4wzagRGnJx!Z<=u6 zGT^zanDgF6zS6R7$6dvC0VKbjn^`^YnjZvU`moMjgZ0Vw)QKBrzsH{2g2g;!e!VdX zwa&~&3=rsZ4&q$gHob7>;8XT>N1%u64}dZrUmTOIpHUaoIeL@h&sr2WZl~z?#L!#V z@@kU~Bi%YI7lnMn!1_S1(=f>=>*Z)RC>?05HqQTwjh%f;J;{M$RtSsNFm%*otFW4a zk+Jxkgs`*zXjpP*Kv`M&Zfu!mBo0f2heK=@OLpPAen&ZM}j{@d#g=I5(}i;^wS_KPH*iEnb_s*}SBaLIoI|8}t)p7Sf=O zH$)d?(^AqQ2irwFOM!Wx(=)MQUv(>`e+m_Vy*&~zKxc;Ja zEB5u`xHt#GTpDn+QaLyPKS}0d{|8o}%(scluW96q8l?G(OUEXYcOVkqc}Ak=#m1_Q z&VA?=XrV-?zvL2Rx1A}+4?ycU|4B^et>hceTrMGgFOYRE{4Mh(%8 zUmIfk1wSSI_>bdP?*x?Aq^dXTseapp8w2=?P>O^YvyrT+VhntS3f*JUr0+$U4!-zq z@AJLN%AJf0=;`PzE3gdzB`*@d zu$xv(p6DKXf-`k+hPcjI3w|V&-QNa;N2&vEvKICz5#3GZE>^VU7dM&f9srKou}#uz zOLL*@bc0Qv)rf7l6?`p$XhxV(f7s8nLV9}^&={hyWv0IBj(HSJ%roB4W$MYyarxV0 zY{Q3;jfFh+ccYHn0B77AzhO`9f#7HL-h7O8MFwdI5DnHojl6X8zNlfqKD$(PJ;vS; zD`op{4uGUb(}WSt<2!{1&=_Hb*x6<*mC)Hp%8lXPI8FLc!9bR}Y~?yB^Iwo}k-y^J1@yA=%)?}G=+;Tmk4(}~7NL0_s$W7j$I?cm z|H5614DcfV&X{_8ha$1rWROFk%hH1)mfS60seS)bwuln%s45=+T~}=UPyxuboCl+ zIoZP5@e232i2zWE0uyv&qz_CoL7-6i)F|ZlRm$gh*1%0is)a>89jPPug^4N@Xi=Wj zMFH{g-Qkf_5{lQ^uYkZ^AhkK&UV;+3sdj&QN*-T46TRfHTpSX?O1@fW_oU;Y@)tM& zLKWpe{QXERl2Qv2La$h&H_N-Z?Nmy|!S-94A&jq5nX8v{7qsuZJ{F~C!IuS)dQS4y z9@m8vBEh=+Z_bw^9R=tBuPMo?USS&Up{4qa#*_?2nlL@H-0b2+@anIx6vx+-uFi1LP#*Ja}J2DX+uGQklNvOG0bo3+4e4sB977(k?!CF~l?d8WJU~w4MR8 z=AIX%4^m0Tk3zHFD0W>*_MA znW%(>-XKz-Xy;(X*>tvi3G`VP<3WFq<6FVL1n7mdRcsdh0=Y-XlOFyjt;U;(k0m z6%ig2d;L=uaFZF#^+j6*^s4K*+Cblt^MnpsjYHq(^as@fRRXG|ur&Z{ZUQqBuk`TT zsY~CkC6RtGL@!tyKexyB{NTC3^qpSo!|6l)wx|NsZ;%~=&AaPrix%+G1tmERKV=FQ zw?2YLxp2PPt=kpVJ>IHyXylPfji<@f=3ElHPyVpQk^r|mI%R*CF8IJh+{_K*S@#s_N9XZPoB566UqcLKWn_Wy!8-e~J=+?WmFYA@|N zF1h1;yEF(tJoN~7t6Adx1<#oXt}?hwmSHKXBru~>f8lpOFNq}AQXp$Io{tU^43Iu? zV?oBOQ<%nQg6Cu>TO4nCdS4R*eykB@urr*akMF8F0l;9_8_KV_kX0w_(<>NLuL~_m z%v<`9vS#=r9{Qg!L^GTc?15e^t^>2M|YjtE&o)0%aS zO{)dzg;+sJe){!SDZvTabl?l0ag3A4%2%H7Jro^q2qZvzWVKZ$z58xIU|t>A!DBo2 zcvp%?%DeJ<9K|9ZusH3C(sZ_!>>dc#$sR4T2NLzOpP7|3&EFPe)o!Gpc80TU$zCs^ zm`D~K&xp!=3=_yu54gXo?+LpKzc!y~bw^w>-r%C2ctL8qmoG^WQ`hsW->F-p^6$PQ zLV~Uif8xk%=ukT~;zdlmhR0t}}_e z{v6cgn!a6a5<;XDMIW%&M~Y|p&&?g~vY#ZN5vlAx@tW|%ofKdp2F z+oFJ@%u`~@%yjP3{hwF`tR|l1)?OO4?bl^SM}u$bhY{V>pH}?S1N+SY{a|m+2C$*- zuLj_10cFQ(hcmm(z2&!fz;thddK49=dvL&=ZK~Y2VTjgL0_B_2@K){(6|IarHs2E$ z({a9hZvH9F=)Zi6r`*~06xmL1s9!H(#AysJF~mFJQeF(WO)cl?uH`dQz36(!CsYb; z?|10p)N3E_AKx(ozaSvI!hWLEus(1yK|ok>V5iSpoz$4^V<=Kndnw*zrIN{u3EgeB zSOI=u01cxi_xlHZ7Z!7y@)iSItFNSQu{#%mLkR$%8Cq;Lo$RTQcz-JuOf? zYjLG&>yvPw*o)CLi$gQC10^%g(`&2pw~j5+qE$&y0Vi?e7W!FXKWn$0aA0gcVR_W8 zy89XJ663@D-(tYi9BPEh!zSc_t7jPNouJ4ewolmLw^E{CTq?hMN9u~~2+v?mdtwsm z+B^r4dW+bgC5N3V&Rf=KHs#i;@txV`SGwp2tSgBD)tyP@PE=Z^9*_S{jpYNTUVZZT z_~CY+uQ$p(v@JF+4gVLDE@b?v0a&58N7ye*kdA6GYb3*u5DK+#zP0(O64zX(k`*F3 zw_YX22i}wxo#$mLehcyPcbF&RF1my(8ZL z=q)oe0+Ja-um*Pz^iZ01A+ibN4ba3%%$<+wSW~`UR}XucUfBCh=T*nff;LHfv(Wt2 zC-(VAp@Yp@@W%)eKX zFeRV;HgrL>1~V4qVmzRX&Na1(@=oA!y8>?GuY~*aY_reKs{iP$9L~+6{DHnKTkOnu zMpCQ1eQ)ULfROl4UR&J>2{p=FykN0?NVgOkr5Z_tWW~!FxlV36V)ou8OVPGJsM>L| z3r)e+ntC_43)giyyJv&78f?p5=mvtoZDcv{1E-ddMnJMw_H18I5hg~0~ zCKi9#f(d~tJ$FLHH}1k|WlXZ`xzzs1fKSf8x2D{9;a0c(X4QKRRgMc_F#ONh5F~os zw3^-z;^+_>G=l3 z-NE1c-Z(vFo(yM!#|*l$GV63opMAW3)9!Kr3=pl77vDS18sJWM0&Sg-#C`U**x*g2 zq6XCP7d=&^fvV4NqKXP}i=_jCS6zm3dy!_-o=WzW&RD#ALZ}iJpFsVq2s~}&d~2yI zn=gw%UVTT{|N0rEYSeX8rbxBcVjoUMsc&N~*}4FI;ZaDlvj@Zrw!9?jHA0SCNmG9W zNfu`6-C|~$6Qr_8_J9d5K*!D`0OE@4B7goruC6jF%C2h*0us`tASK-?NSAer7U07;agF=)w1T)^a1*=8JH8C(&S$gH2e$228|C!y4;8 zzVB>M0*ZP+y@kz2-pr{W?S+xrKo}a=D#qQfkucaEh+=)&{xk?G1seUum{P(&$!5K! zUi8v|CtG-_FRx}%4TLBv9%LJv-@nWHB0=94S2kBDi>tCZ1KKsiMn2-m{Aico``#B6 z3a#WHj|mDEZlh(me|tPAph+wKgevM`;Jpz6l8kWW)IS|0kzNR- zRWlz83=+j%SYIq+<;B(nj_X^buXz{9oX z8G!9hLbwB$bVT9J=d$2@4YGOhL!0xZDF%1-p6O( z+s80^7?g$umgBLZhx53cj{BIFE_T06>x(McM8wwBHjYX)QY^L~TqU=otr=s!y2&$} zIntz?k7qW8=}~$Ixc&Lh-0gnvDkbIuuPEi}`r4xj5dqY)`l3O(r-%E^b}bo5OeJZ% z%Ax4KRQ4RM(xK>CRtdaweVY0i!Ord}#^wXxz}-EtMp|PC?cta%VKErn$GoXqs@FuL zUx?I!SO4^rmTN(H$&-YqRJ3|D+JilLnC`30NffxYm#{RP^|uqU=LZY~wxch{qf2@R zq1GclesUzY&_}x+^pcrA0Atv&YHFUN8HiHR8U{n{b8`Jj=4jd~t{k1>UvV|ph)T%y zcI^JP3IEHe*0>Fc!!Y!wt~T;x6KxkpZD|4+z_#P@LW0!q@^>q5v85@)?Rs)Jcsj|Q zY;HK{q3c|lr5?=u>w9p(lNP;)m3^T}YA7`#6n@GC5|tT{b&J+0mRD0kRB+7N2>%4! zZL4Tvi^J6*J>2YQP37xgsr_aw)nyYu^k7_b(Sv|V?g?cC9ID~io%%`oH#R<=T?#HVryw}e!30NL7 zUfymnsQiuu77&25RKFpN^B5N_L9sBTY^TNWNiOYS%ty=yOZ?C=uyqc2-#j@L#DN$I zh`vzG5+UC9rs;~q>3fz&N%Ypp5P)Q?eivu-VA}tOF$&h2N)wH`lKUXC8#o6*u>fkO zl$Y`rdq5K$C^uU6(gtIrRIs{>Q}L1XL}YLIHmTw+kwfL-sM7_%y!H4~Bya~b z7dYxLkw72FQrEWeKnH%!#mQ8(l{KufNuootm3yg9&%Tj%lIL(N{x}7FU|n`xYlN^= z%3+K!XY*JDYX=2ym$fje>`AP2cRv)omz>;6BI{+Uu>lMqR+M|=?coLmFf86%%p_w- zvZT}$Jw-LnBx7>YONuawCa4#oHcpZY3u~t{Kn;gEf^3>h*#+g~x)iB&(|S8b(5d|M z;2@~L?bB*b5;)M(=|IBnR>Ei)!sPcYVZ)yci$5KmWx;x|$QMv72kA|uY~+gXg_xl0 zGE@O?s_7pnGvW@0i)%l}FfRu~mAds|$mK-^8V#Rby@pnz=jGAhnN=_jvbB=u)XMXd zisE+B@<`2SbA;}H$kYfe08@je-xKlR8xPXlmEGq9wrkR;V!lW%4;xm1sBwY^Lwo_J zJ;r=E+5t6n&s+t-uz%JC^6XMfV7Yc2Bkz;#=N;bys7OiMMRKC5t#@b?p6B!rJ@Of1 zU^wsm1p3WG*T0b&@=ClO#;UZ^^hBXJj52ybJ2gZoYexYRlr>^^JBMT9SE{JWVpnq! z?F=`{+SPqT^-?t)yDuxBDjo5)w2b+`M_sc@?8?Q>$iEKiC{`}ZwLB=v$-p(mowCo z`CLC5#b-s;9?DQ;jVD9yHgEeLA*z%Rc#~q?qax$tR;rA~d#L7C zsz0skc&@ld=TuCmGNb~se{Dl^3x%O}X_KC*}-{0HA9iE|%B?(XZ z5eZ{1&PLv&nW?dLqJ4{&)>SF*W>0K`s z?*pqz6D0kbuFEGBbnWDK-|a6tA`IjfQV7 zzS2p-RyvAo!{EUh=Aj^BU{qL|^YVQ>OCvxgAmRg$wV;gxM4D=`R#`kRFHgK2^iEJYn z5@%=d$rqU9&^O&Qp$bf)l+moQn`I$ep&Pr45ETmJq=TlXTc@)u*?Gh*EXL~^d0Ak= zt8cw3MRh5HVa59;d8cQk3fvJ<`(4OleTK?MwLa7nvby4w)B;7o?4#I_8_rUt0=gE3`Z2ARrm!m8b z766(BEw)J>UBtkg{zDVpurQ)!dNxx0`MZNa13ZIa{dZwb_BK=dwDd~dDF}8zJ?7F< zQ&x)^(zwtx?M(#BJbbyDj;<-U^M39EH(%+Cd%M)A1Q-zK(Rh~M&66h(=djTx=~?i# zn~cum|! zEmq=17!iDX)h5>l_plQ(n6xA6g3K^lL6-@+}X6UKf&NB*Y%xX8g*?_wu{83Vv^;wGTNZldg=@^~-W8e554U8)Q)?NGSH7g|=p)%wcUsD5YYeiJH;S`jGa%*yWQyU zJA$KK;kskis#>q&If>~r2e> zqC)JVh*;$1HlKbMf&ix)dY_TROwBy-m;se~gN3}4pJmC$p`^x+sW1{~vep6BIuSq) z&Ggiz%P0|dPdi=6NM=HZKyocpg6)OOvj;6lF;^#?y%e_;di;|w$pr$j+)$>)AItcT zLchX@u&paJlQL&_bP#HWrBkFakNd|(xnZH?*G7(0R;VbaYroLu{ll@f;$7S6Z|gX$*!T1798 zJX8FcC$M#zl#?Pgt?m4e7cB$>r3D|tsy_@q@5nXD6+fyP2l0sMXhD;Uq{nO~43@D} zr`QBA3Rep0W4T(}CrMTq--Tfiefst%)C#8YC?(4w+18u+!<2_&K%2x*M(Yb-%WmU> zxV8byqGrG=+m=;LmhB3v%RlP_EFWdrmrAnh%s?Y6BkL5^Y03Xw`7ETrwUynS4CjM% zoPiQADx%(|qoLkZR#<>75Szf*#JzemUL8P|Vx0UXC~trL^e2wNFj~D7?yyMRT+YZN zGmhJR9aPC}23L#O#`4_`o0{qGmemj5(K^)A1vq^*)01rL2Ap zQ|S}Y{N3$2m~HzSfOcIU&s15Z6&4mcBs!$5*B-Xxh9)M`o7G>YPtpLh@JHA4cj|h5 zv7@zpwd}x9;Hq82b$n_@23YdwWLUZfm~0&QHCg+T-7t01wpHCD3RZl@2pC zBKS0gqg&SREGpkD<0mBX6FcR$V<{0}6rc&(wsF^=xj)!xuSz7rVeRGRD!m&e@J9yT z%n+*KZiE*CcKKv3aWBilSTzd^OQ)IZF)rr<>pc<-n1^4jT2BbWHLH~s6BFCn#nEA2 zZ9(QOeF{=}me&&|%|mH7YZDdcxRqtAR@N^mDYbuBkqd8@Ng}FsWG!!83%^T zD=tiU?!kXYz(nt4%0Pb29*3y7c!}LEfEHwO{bheSR#8vNHftRw5z8V9gY=350gI;a zT*G!!w~u(-8h)$Q7kw32U&v}tR8Pa*joJOgdmru2xZCY<;t; zM3Mpe2HHa0`W-$2A!WIHAjpy_CF><^8gaG}uFw|FyE%0Yg?RAu7f^So>gdAQXprxo&+?GxPJyzba{W1e!8>jm((# zMl;$r($dpQTc^gtRj;nCb>B}g(>MGoR!~qVjn=yArY`6NTI{JsMT1CdF~+n&U*FZ~ zbX1A$*-UT!-fRspy*u+d(e1WsWo2aoe2TAPZCW|Dy3Tu7Ro4!N8E^KJa#AZZiuiTz zc4ud0z7ODCp7B?hlRNWO8*G|&N20vI5ixueYv_9Z?7 zT8>R5NljWwWBbY;mN#ya?p|uCi2*uhRNSsg7l|^k@RT^AxR6hNj(cd1+ zqb;{P;}^-`zS>ART8+{WGc?S)Ni#0ptTq*oqKg2CB|6<9IKS@sVbKhDF{PT-)p(CWfIx`^;K5cxqUp9H zSr|+BuCBWO<9ui{!*M_Gdsc~|ph$>E_-?36`oBLl#w zfwfs0(}Xg@T>-yvc4gi{;N}cowmyjol<^CP{vbU8%zyWS*`!&nv-C)Bmi*{<=w~Yc zpEsE@<_gTDPb*6`T+i-z12#)f+HCYjrMHu#@7q<~zRS;Bj@{DX9hcaX#d|RI{4w(V z8GHf>LeWeG<2rh9JeU@Dz6{7+T^6+yU(5psYrp4vVWt5l+aZO(j8McdWzJQZrCJ1@ zGuZVVTa~$3k6{Kdk|&X-7LPMM=Q2|+`PD>aFA?1ce=yxea80)2bR_?314D|I!zkBA z0BSa0p0%KQi;A=Hjn$fj(=OXA=(`@?sAjAlHM{0FGWr- z0LRgR|Ax)w%9{PSmwDCgcHJ%2Y`*^9xm8rg1u7298goqT-ki@@oEtVui!=tjVwdX& zkib|S+ZGY6EXws%eilKQ5(qeDVIKg+U?UHk35z8W}Q z<-^h6qrUOXhu_Sf&AZ*P2K4p!mjl(OO>k`PLSYLMI&(znX%p{76Y@^dw6xom{BMXo zIR`_B!GT0ZmeC+(j!HpFAV>FH`gZANXW2oqW)tLfN>-Sj#ORU6-KmD<#t)yV{g%7I z#@S~C&V&T67e4@+8J@)&``>*McRsOuW8xVPekk_3^U(m^w9Vz7>@-zSEO#Gsz%YH zbt84$-RkXpzvx+ojA)|)$#Gd@?rxe|-B^46u$R9!rQM1}iVWTJ0SXAD)=fuK71z@o zjY(gWlR7EHQNx^jr)MA|$(*}I0dzVH)oi-6=TtM2w=&siaWahyHmnu6_ha-EiuMQR z7)>7QZ84CBV{VPHp$>w3f2g)$Td9&fl2p}^M5SE4Un$I3Qt9W8TVK_Z>P8$bdgHJ= z$<^D_S_q`_fpH8Q!I>)7M@s`JI(t zT{*G?wqTb82Iu+kX1a>?_e?$7QPV}Cry4jC!+hZUvUDMlAwyQVK1Uq&`l~JKszqNP^A}E?>C*gq6^>DfE9t7f9*wVIJF2~E>tu3QT0A?SL$->6Q z_F2-lhrnMU0=#|=CFfcQ}iD9xu_ zR7o2M1>0381?yxYBb3C1GWl;g>N2*o#gqDM)CB%a?KIx=&pS_KvB3QzUuGQPlyr5Fjy^~0y-CUVLdHBx&YY(7S3&>CU9%i{4cOfhK zv%@QH)rjRgY`EU^5vy9V_uim6Q7F-_XADw)UA0_z&LLbQR*tfez|I|47Atd9> zEk%)EPV`L2Fta(!lmCnWh24{|%IJ@$!Ith8FFb-+fVw{x5J%npoCEW1%6>4ut64t@ zW=DY~vU)-U7X!>}FrYtQ^4Ts>;+IkIB>a|~l-ap7_jB7bN#KP52Fj}fgt0p3sF){c zgnU{sXneuFaPMI~pL3`BSl?}D71qqVUdPXKe8|X7C{bL`JB)L2T^|AGXPom)M}{Qf zkpN(`-yd$+nUjwxxpztOWC4Yo@`lJM%sX7AmO*irI%(*7TYXm`j47tZHA*x>h{sQ% z`x7BH1Q-vp;3seopA)ht^c6kpNSiLNQ$=bIY*PlXhMF=a|9eIe3Ev=XWJ|wP*uxd> zvrr)CRN1+yK_dC~i$v!}l9*>oJ0Zh?nc+D`{|2y{$)cTBST63ua1JQJ))FD$fwWt(}w^NiiMFgxKS` zBl;sbK!mXL5Z^(Ic$_LykM{^6WpLKC7Ni)gAiXod@El0yGpIRF=5H<>?3B{C_5bhT z=};8aZPp8urhj%Jq_HoEt*iHtyM@lQwB#e0sz-cvDD0|xHAAGKpsjf6=CAlr6d}_- zzlpPb6h9z~AU;83pPhXQU-gbqM;0sRG8(n{SnKebzt`|V%Dx76O)RCW{&AoAI^lll zDyQ_m!0m&A_Z9q#GW=#5DR(*2K5qKo%La*n%Q&>V68>D42}hXKIPsNQaMs7!UqoY2 zAM5W~BJ?moOWMHdv(PR0BV}_)l<*_eh{yu7FhSxtJ|YLcDb9CicEY^jtX1M3tL!TbgzL3B;k2IB{-y)quPuo3vK@#w7$i9gFuS|lGfjz$*SSow` zN|PM|vw~1BD-$LR-RlkJC}A=`i+mG}GR1Lm&gPaBSN%F;$oQO%7M-@7HzHNk2k<$2 zU7oLK(4^#F!F|I9?s-hBf!0v3_1M&P#qQPd!PUxVRIe4D4zGVo#dOVvL5?ZFo5 z|6K@RFb2YaYZACB|0t0nihE}|QF7Po={ju0P>S!y7FJh|`ua5zJhl2vaMWZ30sq+z z;2#H`fF4UT6r(*Zgd&bF85`F~6l1b*52tn_nWC5!9n4fLH})$>%^P_q#*^r>nqoJq zUDD8hXyJcE>IJ+8jk|s9qkhzq1&iqn%gDl-yf;C47D5|itgGy6MWJpShqqzH1h@A; z%k}`SrSN}!{a^w$xjo+fKuj>fm~=#*?6tr=I>>Q~M?ZX@Ug)Bf)5}$5W`@G`AfSi; zj{*mYG5ea)e+TNfZE+8Pl7lm~IMeCT^+w#{-d|CqI(ZZLx%CGQ36A(5!@>tCgp#zO2*oug_V|_96Rqjy z4BS}~SR4+VQJRz~ee}f6wW{5g@=kL3kLC5sJiI0SPy%Crl;M8YG~s|l68Rje?_m#M z2_WE2=Yl5NGDf<763kJzWC(G7HHR30ifL}+x?VS!arvM1RPijMzg+TFP z?;lSLuScj<#)KIeEy?4ut)N_wt;1%HdetjD%;JWW=y=N7KWXQ(>q92iXjl02=29^= zgB`2#Zcx!FR=D8oiTyvM=}$#3DWEdy7gK35C|inmaE1v)o+bshU2r zHtTJnSk)3TLFcNKk7vsT2{pl|dR02xX0c7#7%1<5ybg*5#>jcnT?PA3+yneM^Q&*j)?0t@X zIX7uDS>1p9ujxa*4`RN2?WPL>f*8I}a60IwOWmZ;Z`vo+?8l|XsVxSThRAU%H3vbP z8meUIwAgcF9ABpQ+Ha10#9xgD{Li6}ym#i76O)GbZ}kle0&^Ng?E9NWI-ZCh&Yy8U zpGx%F?6_W;r*K_5`Z?RC$A1}Xk$S(mQxtJ@BR%46_`-nt?*R&S?|_Pa-=v+C8~C8B z8j!x*<)rx#YXz7lc`}exm8;CQg4yD!ReACtrzIEmjQWN*%90^z7^3KOacb+ii^5HL z1ME%Lj}G{L1F3-XfE5vFmP;|{7tMat@qIkKPz&B9*xP`6#w9lW#s{u3%gdPlNGDQK~skiE>k!St?g>k?LTD+p#BVRv_uk0?l#CB9HTco#(V z-Rq!6Y7nv3O7^1axW8xUwgnRJH5}x}JLsm@EoYHk9?yeUTfBiDK&qVgNkQ=EuieK| z)lWhYbpuNDrrXa|S0`F>R*r^^Ruc5VGwfCOA+mG*=i)udUq1hu-=X`R-drq8v9ebd zqx*DB76W@9@`l1?>dONRlU+6zyl)}BVD-Aj1SY!e@WZ3NQCAXSoSwBw4sHBWvYsEB z1&wMWWrvsF#9MYYcIT%PcGi`Y%+9)Cd)q zm)BT@&w=Vtj)A@S@8d4$o&bu25khVB>nTVy364BNGc?=|cexfy=Zskny!)uue_Fl0 z{3}N?!L>w)^{v(nw%(Xn!cG{+7m(fp2)_un?PYx2}n#M}1JAQlZK!#`RzJ!3TLr3Mf>) zwuZvbsC?rnXg}Q4Nz^Ga|5iUS{kiRxOo*0eiYJwJlUI71N~1&vgcnQrU< zGPPPy1tpx&mhk_Iq!kPVQ}#h_b9HWud92C@3MnjQ*4?Rtqui~f20*JiVeKi0Jae~0n3cFOft@0XYnrC{U~j-`PBo@m zLpOYRB^v?yxZM_ddx!tcu~4>d_8?~SN@Dl$)!%mr<~spG4!^l*oJ~~qRM$)UFqTs5 zPET3A)^eSe56;HcSS9Ke+6~n8E;lRnO!Hkh9Y8#Xf(Us6@@s#ajIE9UifI;PmX)Wk z5NNHII8Eow@Woiz^|pa+YAW?n<50Da`$uCM>45NW2M1ujuUhpbyX>=aTD=1gY9Qea z#8>svYXgrnpbk+5^czQob2Z!HIs2&}?=%tMVF@KRmX6!J31bU`Y}P~?jSm&LN8vFG z77Ue4_%|rf-s({MvSyD@Cl@^Lw8j1TZ@}6L_^^r>&n+3%Y8OLCY-t4!OGC|}$EQe>!dlcuE(q^t z3h9;$xhlHVMOO5HfrM`JU6DnYuMfH=^x4%y;2O82q$+RPmTX)3 zw72}`UtcAsR8WmSd!{syb49izQqX{l`u1#b0u=dqF7Vn^+gxEk}QU#oJC==Ob4 zr(RKw-IBXUy}T+qUc}{jE*V0?cnXw0&ncpA@JKB$h+G_PcFOGHCrmT=tesBEV3hZD zkZ))FIkIx7LZ}h*eq_F+twS?#wE6zbnN(B2oLZRWD>sF!S0t5*cQh5;{aOA`MM;2k zGV=Y`X*vk|j+q04l#>F=Fm@4af@E#TZ5?vomf};%Jr1+ylFa z(K5B8PM)!=C!Ge0Z1|!V^VW2}no&a{VcjCH1cOpn?FZIxzjj}Bc{rwQn3e0{$&pMZMIXiVx=I!1c-)#+^uK zC(?eTZJp{JUktMTYi8YG-|`F5kPJvJblgoZI95uQd@`5!BdYCtp+wEbHJ0gfAqp8n zet@8#C-kikQ|i+O5V*lYG0{U+=$L0(4Sh4J2ym;nBm8<$fcJwwF?s1ZbcJ)~qzkQp z=c4Rd*+RNH$ms*jqUt&G2J+?scoyml6C-2E#<|No>?W`Hg&ao=(~24P>?+1kMi zu(c>`btv>S##&x>31ZAOvw%w9xItF%I1r{f-dxA$qomIzT#kp|;f3LSMuwdC#(O3p z9c9)_N5L285e#XOK49MTi*^-{3{F!*c0n?dc7=(6Q^A~CFChsDUAN79$4YH_bU^NA zWck;h(EWD=Mt+}6zdBd1Yw!8xLeJXS8sg;@becV|{XMS#9<6ak_>>r_|?m)UaAPHub%&%O6XJ3ofuI`_A zIiJ1fM5*K*&XBeX64beF|1jRoJ4UlzEyY%U9KYYG&wH&ryL*_Wp5Pd~R1*4c(XcfL zh)0&#*0>#i6_+UXC8`@)j~i`SyiVo(c;T{}uIF$Tpvb%#7RJjUo3KL;2lh;@u`ZXqUJ@a=IXaTF?i{X8&%P;Etl< zqK*DjP$lzEu99(T45-V08#t2@unm=m$j)Sb~Rx2Rj^nn zl+Env6s2tFCA?8(5P9+icT6g$;-mTSoV2xPg__ibapDmYnS=}l(H#qIWz$!wFmen( zDtT^Z{eEj9Hq&JQFH(y8+VOg~q9z&VU6q3Fe7(yN&=2bV;S&%UAo4Rxxdh3AUeJCM zXwB;Y+&#tihgzbf)rQ|F$G!*(Kzm20zwXuk>rqgUAth2#f-IyadpHw}Lhn@OHtdHc zwuQom4rrb&?vBljQU1Is;qHmxl7zHHyBNGP4hNDB!Bdld_G00=`C%e9o^Bm7+y3mC zJSO0EL%pQg9G5V&)Ipb?8LmL5D-!5ziAB<>Q8}Hb_uH!|Dy~6J-z?gOl#?mFmH#52 zAr+B$v!id=B5r|KJ6oDmK=b$2fFSEW@k?0VJG*LG3+!~L+BBE49LuO#&Vrd;C5Q9$ zZu}Yl2J5b@f;rrnrr#n@PA$;u;WCBu29%cacCo#e``>0 ziczhHQyiU~iau+;r#gQXi7QOC+jrEwbVojaJ$JqWoWx4!MFfpt;Qf)JbZB5{M^T3T zv5!dpI^|$K9iUF*w=}qEwi8=~^^LaSEuo*g5pexi z2A}CrYW4kdA~bmV8HO1Gh?zhFgkrrZa=|syS|sy`i3W zesSDUA_y&6yX&6i0a|LS0c>-@02kNvQO*2Ke;)BHFD&B+GdAGZrL->p-CGn>KupQp z^@dIr#u`4Qt(sjWk!PW$&+WfJnY?x{98wk;fq$1%7dYHkV6pAfe zNaH0T8TZUcSUyS!4Q7WH*IGGfc1zI#Xp*L9tKb0SZ~$5V(9{%F8s>+if+4v4@o7N6 zsT(f)%yb5l_${YRE2`Gz6&GHOc*4I$KK$S6fa`sAz^r!`|L)BfIE+vqv?U=wbgk|( z>(DOqd0|L5`>a6+QR#gf?UcS4lP?*YdD0dTmlFOaZ=)zGW6GZ;SbOC*M0V$E)y~-N zPOa*Z;!6H!UJL{5_6a!FRl+~r-MK?K7d^D|Mj7kYFzV*%!= z9~`vgDF2Ah>3VSlK-SY#mztL+S#CB@XFQ&716|>ZPF@X%Iy8Gvi_)XdbNsUE?)G|h zzTj6a3sNlUc?7|(9=#gyvkbN8b55X2%HlXZDjY5NMMQivZ1K|8Qwf*#e_;p_VLzEyXRzN zKq7Z>O@!a6b7gZ>1(b=b4ywxKJqM_PtZh&e3{!*yLht$fcy2bOYZ8nci&Iw`@6fM& zm&ZR@1^DA}D(+pkXz0#QOLu*Nmad8-CON&@E{Fm;_Nrz-FE+^(Ds#NHt94Ub!~RhR zNl4OoDPO(ui5zRFezi*RcEoLTU+C%KQ^vy!Q|VfIAgWk+O~^ooZLMh;jQiUYP;QIw`C+M&rB~bmHRA@ zRs_?^S=~Zjv8F`#BY}1qfo|Y zLQXD1_BDBP)%02GGl*ZFK(Tr1UXfP*2>RI3EAH{!h3~N2xId4^$4yMEXLX=O7>lIx zhok+~4|6p(?5F?q;yfnqYnI?2fo38^MhwQEoIB>%67~%@!<%lH3gC20ZmOnOr$lFp zO`f7tt#tRa+5m;LVx(B5U1P91f{qu73`My#RV=0ovVepvOPJx0(*vHrYD4H@jtbm8 z|1kN!>4W;(eBKX{$wcO4oCC~Ktpai}GV>Is`=lm&*t0(%To6XS5Ja9iY>Y}jK1kCp zPRsa1AbRZs1(1#-v``GTC&QXd3{qVc%PR=g#z1kA3{-2RR`s>O(-vgc#nWZD zBFP4S!JRq-Y(!{~Abn)q-iuBO_WY!m40nQII zhr=*oOE0c4tPi^d5sA_f5<$3z2W8EA5X)b*bCb+DkTgA52xg|i4LzbZkhhgTN<({n@-x_51Fvz4!` zf1zT^VWOK=WLt(ziFudm#-IUF6bXtJBr7bauxWb*?giQi!q37a&v)p<0^>f~-?HGU zbHo0=+73{)?aMzrXv6WuBTCVKHD=><+b4WEW%#DvT$h+67}*2u$BQ^*dUbHDJK`5y z8s^miZ^y-#Sk{B)YV@8=d45Fc{6SRHe>=Aj$H0ch=$q&wgdqpra_FOAk|X)K^5(^9 zvQSZb3=P@q9@AK`v@_iXh1saDSb5NX0RyJy;9DqA0Hm)yf1#Dl0;H$^*{wm+Mx~^U zK-2aFm)#K#<+>uu<+)UvW8?pNLq0q8Juu zPoi;jqtjn*N$!3MBeb-F9IsSE>w_Svf;=3%@5shAe6S z&>6^mcxc_i5$cS898G9Q=e2NeVDnIBMyC5cqrl#|=}jmTiBm9?PwsA19kdCmc@%|p4G zXX+n#=9(Em9tMtXi{~@Et+F2^jxJ2C zBi^V#5dV>hHz0QAPlEE>c0aQ*b6v2~u-)vd;w_%n83{1MX`2|_biym|eQTAa=R7Oz z5+z94Q0#pxxFS#_`i*IGRWEx_tNqD2-TX?t9o5*klCs1$%YWeze2~xXTa*&P^my}1 zV10UW_^DxHz`v!nXu$6EaV^V~%J5bTfVka)`6}VH9jr(3FNbzGF0WoXJHRbpv`wy= z_2-49Z6oE5W4=K;u*6l6e;t*ef?k&Yav!-FaWtiu3{}jO3F66@gg$i;Rj9+Hoo8e+ zL+glmcJ4#7`8V2T2dI?wB^1HVgoXuXn|tQeA01?y!oxg$TK>B z0!1xIiQc{l=^r5y1H1M4)tj%Z8gB}O*Zgxr$16Nrj@KgkB;}?CH*-ZQq))sC2=Nsq zA%$U`$CZ5!NcFj!DRfc2qox~1$A_*<-CtUD&DP|i&kP{`KHOvlJQLd0d?teY-?E}& zWF@EjuKp^cJCr3c;6&J@imJD2^hdi7Jkq`dOM-g@sn0v-+L10>e%%(Ii3rYOW7Xys z-*>q`ZP>@;PoW?cabnj4GL>t&)3W>=VIOdN*vNX=RjNh?UH7h@6_n$HD=1<53UBJ& zU-Q_8x_~Qd@$0n{n`Z_4a?VOQ`CLW+HOw3z3Y7FK4WO{V0qa-K)Hs`ZkpAxCB^jg= zr+T_7k3q?v1GVR3PoTZM2Rf6}J7u2p*!rxz{h$7lJz#ad5Ii-eb%!-SjH?G(LVJFnlp(AnnrsmjQGoMoTKN+7 zp|(|`7F1(@sTDqhbS~NmAK!}dHT!bjkEv@FsI@xLx09PXqJ-bcSjipGX7YTK%0Nd<`)v~Wux7gGQZx9de&3Hn=tnk=CiWBM~lD;P;g{jUNYU!wRjd9!?olo3GGA$8XwWA0Gw zrUu`*^w%~XW@{e{k)L3G^Vzb2KUC#Tt2H1tvf&F?knIs(6z%9wHT`^KdCUQ&Af(v) z)H_;ucT>;pZ&#GhGZ|N(zaMHr&D#@t`B_xu>k0Ud<6a%*^7<}QfT&mv#nR@qc5X2> zW=a}k?xc-z_>@ZovK-~2X|k+1=ZBi2$@8Ftv#WAF_PH)+=hc{5^~|g10t!pa(T=wK z;hq~hawB51mLQQ2D80K|zX}9ye2F42#~1GKVlNtVBE!76yrUh3B2WJ-&j<4zKo!?K zhc+XoE%a}+iz^#Buo_Nz_O1x%!-ja5qs1_mS5t_i#(Eb|p&qj~%#(#77g)Bjo%V6WLkF|15p{zyq^xN8SUG{C1C~R{aB6@n?}7 z;?mO)0_Wrcd69i5#}A>)5H6on4?0H0*6G+rP9{Rye5c4byw>e^BlXxn ze@dfn%`kqd1$hM-0xj^GOUVy)c(@EbeR=CLV_uqdYR@N1HCjOY<^?eqHVVg^nUNsY zNtl1)ZFlzjyp2(b+c*#xqL!leLJ|Dd0b6G^QgL#g=xBe%iCeIj^r9tR&~CRp^Mr{laYdV*w9^P42q z+62v8(&^pRdM0-iLt~EsGH&#iM#9mFMo!c=@t{7PF|w)mquBowJ26ND&C<1(9of*o zBI>8VrrBjG2Qz45bD6MMljqa_;tzzFrt@zU-#+i^W&DuOW_U9(l`L3=P?CI||3S(U za3MIlKf=;ZF1YICPOJQK*0a7#UeFa+Wil9b3lE=yi)-dCiBVhMhj|gDlWi7*{u=Xx zs3+)@7d_xSXbC~?JyiZ+BLF&Q7 zWzjm*b0FAImT+SFw+rhT0>l6efjFjTp6>Zw=;YG4(v3xE^RSsH5fnpwxs^w~DoSth z*(zHx=f^;XXt3Jq*dxBZsVLJpsvIlyQo^Ik4&GsUC2%f+iOG8|IFY9$@_kh%+R;B9 zMuLi@;)XA02u{kn)D6>j_`ewzqv&VTj{O5w`wyOL1q(~!IK>c74)qj^86BNFP|g=q zsgIMe-eqTjY4YHVN6B5au1GnO{iO#2CCcQ%ac4I-NDVwcOFr&eTtHop$C*15&89Nq z#Rhwgg4IIELfT&?uqH!yKF~wUN$MS~r{7BbS4|0@1GpEW=PB=S1JDMrKiem3##6dX zGEPxYlLM%;Q0_n`Um^|O6ybxfmfK;HLksq4vuCZ>Os)nIr2v=10L1Fh;GwKZwpCvt z|LRe{6nR^r{B2o|Bvm|bLpXa;4yKgwBGtN^*M6cJc}crs<@zas+KgHvHuv5r`Bob; zRJLmVG;WMO>N0E)>1poi_b6Y-(DgW9R;E5}^xYUBn@483;eFz|ew3(A{_Y4HD#sU=;rNyB*MT-Y_ zDQ-oJJH=gsyHlLv?hxGJJGt-s8~1*HXN)8#IcM*+*P8R0Ub+_ziLMk5_BwS2pws^? zBGZ5yXr<#xjtRUtt7Fj?U z0euH_AM7>f*G;()A<=mZyAk<~@&BI$=zywC4C68!of#t$LHF|H6n#|=CDL2Y;EbI* z11Z>QNw|ElEQ%}G9R@8T|4a|>VI^#1>mEm6Q>4`~K-GCLZbatJAy( zoX)dgcE418&0Z|d-+dNqN?B(L}F0x zbrem#*O;YYTrols$ZRw3fv9^NUENxO+3mV3tTf4aenm<#gQ2gcFQ;uMTu@Tvh+?zS zzRf=rkdN|o6vT#(P|1bFxToFy_eU2(asrx2CRf*Ejo#=h0YM#FZGPaYtZn%sj=8}g^)Y&YPJ!mvK6i!Y}^#fTYt|Yx9j}Ld7 z0M|aQ-4AWBSKzWjce~Ddkzs$PECCqZNdt~Kqx zv7;<&3SQZn0Wqrv=%TY@XYd$%+4o47?JMac*jva4$p^_Iac+;)-&CY|@m~J>*Zs3Z zZl}i~LK{t`Q9c`U8NlRq#$8k6L>7>-e^q5di>@jD-%@$?jpF!j-1j6|3psrCX4e{R z`{56j_S++5a#NF&ePx~(j6mY4`OL|`#+^+djP>wi9a z#+o+cwKjav$aa9&B}pCQ;QnWL{tG`fVDF1rzTe`~x$7qevaYu`0S9YbOiav%O4_j~ zM09m9a@$NJQ&cE`I6%M38QifLrST#yLm2Yp9qp=w^36}qX$RVWp>netiIIoVWf%+W zguE)vJFzqN*rO^R_2trQ3T%hE61V^7*7{e@cV0k#czAd^Y~wjW&;uWkCcQHbiHnaP zINcoFOmjPmhR0OH<54>Uu^0=)A+4DaTuTs9z~4=y_jsCM47k!uB^QBlBh}Nx^3!2$ z>-SZW!jh81Kd1-3b)=uPv{IlzpWJu<@jPF!9|$X8NxvB~b=9^pKr|&v- zXct>nH-#bN%}iH5plCHOM%l6#Yzv7?2YU$zIEsLkY$`IiUwpKmIubb^bs}$J+}(^1 zSH5!bx6EhwSjINvz&qv0C-L9EjQT4%u#R4aOJ@+4XjJtOEC7akz8kKEPZ$?&kKYFXyan*=fRSj01LPqq&E}G zKMlxxt>91gGbK5=2N3yNp*w*+i$o9kG~Zd%$tddaU6H_aiXGI-W+vhUt-ddjt+Y^N z7Ow{5DNtGsZVS$asaYqoblD$p=9@v=*vc!|#H@e+XTz)ooC_#g5*>KFMMXv0GUb7< zq2qX%{p|t95#aNO&sRUm$n3S=(&~BvQ7{cn zKs=EQpQSr7YY|uy)`4~Wj1Ujzi?9_JBB?uR+K3HV6nYN2eKod?d!Q=&Zqa!%vUbcX zw&Q1^XCh%&8|oQPn58WHsHzPoPOZb79LH3@{r@f&?Qk_B%<$_^6c~x9$TLWl$L&OV zJjV#PsL4>`s%ug^rq$6xL-WC6vs)cw3{AS3nc0pl=uVv$oAUQFH0%Rgd1vszN2|Z@ z;YKp(#kAHt{SIXQpQmSlC*3}>)1)=DMK*A1qT5E-l9j_}GevVTEJGikVdXI1nz?9* z|MHS4trw7=$7kz94{ctDhawI4m^ z|CGc+_3#$-4CGZ^ZE^9CoHh&?SgWQ%*3fSjk3F{^GgjxSOql1FU_-doSq)827yrbl{7yhlFGCq;zL!$P$5IrWFmZ zo6Q8{z9>qh3jWW+X|mCl>p>k3gCl9&6Ae@CCe2s@Cj zz=(1tuLIfeOqBYo4?TljJx3Uc|0*lgJ7oRB;v7f)Z&^X%vjj9(FHG?6r~p2L^-KD9 ziE9DG(l5$QUL&*IFF4Ixm0qRz`UYPDnLUcmO#-WPm#N3@`4+8}mE(&?J3Bic#MRZ^Zdr52*u9_uR*I1@2*;)_C|v=s<3G zlTL-~=qmnbH#`Fg?k;@;nD~Ff6Q)`&N^EF!$1RAFIMZ0QodMuIrr4!wu0pzibrzmG znzrNAXFDL!<+A=@H$UBpgEW%IJa6G_K~~aX-}Yk^X)wMN1o$EI@Y4L}nx=4shpG#R z`noDJluGwa+9}46|9kO$aB~WukNAU~zt7fY5PT7DpEV38bBNohep?EvIs+_?r@ z1L-?NkP+$xez(hW?)P>ZQZx8yWadc&KycB*gw#@$x^>Hq3D*!oF9QPuvadI@cmN)T zO>LM|{XrYjE**$jPEFVA!4aN%6ji0RElryWIFtIuGDUSF>m96iZT;PzdcE$0v_|E) z7B>X8lZ9XI3y36=zc-6os9KSHx1C4mY{hla_vfSU?WAlcxNqfQ>!%L5q@yt+B|<#U zC2!`%?QT$kT7i}BV$car)=r}}k&GO8xJnKWFo{NVC+vDZ0kpDj~k2lu>BR-?r^ zH=iOdUUDhL^A8EW$A};snC3$}j^_%7S88f%=}O?8P5mnBE4HuRRAPsf23B=l0`v-H zd=nIO!s~y$}lPV>eK+y71og?==;V)LZ@;M*2GCs{6-=|Y4 zzX^_|`zhbM-Xz9pX><7QQKo7?C$Cbh#pyN5E(_hlKSGysc(>Rhumf9kh4k4UEY>SX z`?O_VId(tRN-u9;UtTyN3+L@&q+ddcZ;*4*avJB~G^^3XcdNAM z8!`y?Hw|3#8=F`qm6xf6uh{FA^TG<_aYgU?fSv-+=Q?1h>SE>A1Z{2lZ2dH^%i}Cj z^1OiM=b%D9LIS>!?mykVufKrHUJve^LJ<4U#5&Eo40;+u;&p#w*GCxyBD9c%&<_C9 zcD3*MZxzy*{-YKudsU3%2!t)wXBGn)XU;QuB9$m0d%fH71Pp7c9b$SY3O~}Sxt^$L z&8Lesj;f04 zzAjN6j0DQ&na6rE%p3S~5lGaql<>-?|3y>bq>3Fh2Bdg&?DB)xFxK&t zfe<+jxr(me0BW~`PZ4(A1Zw94CPhou{a1g>aVm<(U^W+E z%&HZWznEATRL@wa#|_yf5k_D7TM^=csC<5={N2p!B{mwaB?R0UUL#AEH|LH$v(MJ% z*{OaTclVft*xao3M4NJ?lLA%0B83RJ`masru@vYt9qy}%O8!w^Hh7i%yh6!-rKNfKut7+M?Wx)2!1 zZ-ss51;V0qSUHXG`E3spGP}Nv+W=N~Vc@2t8Wntk!i93DHcyu}{Cmm@ zBqZ|rx0a5C5TI7$d<+>Kv!B4Y^; zsRd#gKGCG)FX`VzDA@6H9;6Ur%gxw46V7B*{e~fT&wG=2@h^cMai7 z(VlONR|Y1nX%?TDRKn#dc84`HjdJ%uPMA|?8*Y{>0QqR@joPfw%{8spQWrz?cuQGI z6Nz?7Ni8n?UG%9uEwwOft)lQ&!$tuK_STpZaUOl)+$@&wZuFT&-R?&V&RM>>6Uc8{ zv9_|MGoOW9qgbrBfBvaQe1h@6LcVpOB`#KldbhN7t}`>Ro;%@UM}A;X70O`9p$<$U zv};}RQ~U!L-!;x(@Bjs35|>TdJuFBtE-&w`8ibhN)nUfPzrFn7HnA!TAhBh>o^C$;+x|aG7zcP*X_@q(jTDcJkALXy*YMPeu?>QZ-+~ zBle0u|6cHao_;%--#D_{bJcRi509_BpYeJ~_yt+}@y@X4`PB<#vI{3nQ6yZx*dIx9 zl=b2?+T#v-vNL7&!+E2C!onvxdsOYE*rAYc#fcDT0Vb9GyqGz5UC_k2!*}&rMb83Q z<90_hZ7K#1{F?W>D*X)04_-QcRu0zO&=`k=~FfQUnUS_XW80tfIY0*v|zZ&J2 zt85s$FalYs{wK05PEoe!e(H%Z-RHjZ>krELw< zxv>{&BirO6IR|1cO5Po-^YSk!9We@*%j-vTOpdGhlAp7Z)VE!%qt z7ciwk5Wz&|f`m|qvZ1IA5Q_>U7)G3oZfz2VjO4H@H`{*UPTKEKp8Vo}B)*ySezzjX zg`|2$O?@kV#tEnp%6?R~7@#lI)=PWVRa2_^65l?Lth=qKIo`llppzo=(y)uWdw}akfis5=7Mt3VU z`D@mvJgk?WGtRSErlSQBJ!(%|W1XV_Vm-wdxb&XWn0~k}VM1c2FD)LZdct4Hof-G; z|8srsfaXnn63%FhH!Cu5WxhNx31t^F{ex_6uxCAB@A};oY%9G5vKuGtDx_@AjwkL*m{T$Bloi)kW#{)u)$_iZ5Je5B{0z!yVx- zu{fK|xqRp#GqZBsko^^&+$Bldn_RLq!`h&BaVr`M^4iw50t|PBt)77_DGO^Np-T0ziVr_1Q(P+ z>bOMF%q~o;(T3UF-t0a?Kc&A=p_S%-h{t~Ao>eogbrfe40Y!QenHkDqVz+-k8H zQcra&;pm;|V-DRtjOS(7{YOs|1#mX%9E|Uj1cU@eZT2Y@QRc8vC3*H8RP0BAD#|DQjvI_SZjSkonG^8j%NJ>DFA0djS z+SgLMLmfQkdGgP2w9O0nhwe>B2&IAX{cQ{mD!NMkAA^B# z17*T56cdY4ZmK$h-XA__HtOnR`rK3)k@U-SZ?hH{$E$o8Hble^w(yPjuIO#N;b$hT zY^AydT^;nRfX}A$T!!>21^PH z#=d@s$qQu}7#3U9oqxS`TYhAiNoFCN2i}UtNk6=n=XMmS7L{>S1sgP)5YNb}lKpFq zp$h}-Ud`BXne4GNh2rCx)&hde;fan74L^fG| zQeULtAPsln)E6O^9wHp=xFM3!tYV}WCc@H7s@?CnXqWWzUp4{-Gq75J`vXHppOr&c zLkZw&>IF?3<1zVa&M=vo?;UO>kb3?|7e=>v+f1)iN1r)fb`t5zd&|F8cV#x&Q0Y~O zUR@np&C{W!jUgsM_-_w@4mb(c8SI?s;(-8jqs<^!4Qfl8Y8zd#T(Wh)*68)%{vI&8kMmz><^GqEv_ydW~dtx1K9<=o~{I9G8>X z-uZ85ED8>hIS7NGpsULvAoT!xATY=V@Td=(Ypok;zh(C)qetUIcu>D5?V$Ci5^S!y zCtQ+6H+&I3;bk}#StRRK*~Za5z1w@H`gI1P#F*{kAtHso_~jgAa{rXPd-Kfmz%_J+)D!m9Lzc+07k+UTOf^y*FnqYeg9%14)ph& z>YljcrMjyQ;NAo|>0Z%1zgUfY+x_CL3SA)CF^$g<^2hbfg@jkAqyGqdHspYXY^e|O z41HDxcz-AjaMVi0d_v`u&FhNtZrap1gN?mUQbf$c?V*rj7wK%(4{{Z7MI9@Y+Mfi( zefxpKOsj9&j4)PTmz8VI&*6R<{KoZf7YkfuVZ-Jc%{ zSPRO>RXx}!p~Bierm^VyVY=3Z5`P{I6VI5aza|TPlfI9^P=#6bpI00F2Ll2AhIDU3 zJ>EGu(w!uf1>34Az%?yxIA4r=86z{V--Nnk-Cb(>bJjFi2^=1x6DLq1&sy6|xb(%+ zEIT2E=$WB3>GcTAz)Ik)O1Y5`m8FEVG;~d-?$|u`wqmI)<<%;EN9jKbI%+^29FOeZ zL=C1vVt@+!XTY{b`-&2N3YG-45&-W`0>udR+xco?mXpwtLJz1EF9N;toUYnrqU)Qc z*Xk_slS7YjEy|P>5?^B$%XLpIzD)<+?o^aJn+T!LNg!yeSkdqY1Epc&WgAR)E5*?7 zV=r((&;v-(a!bANrE~lzEy;Z7qkO2={;VGZ&g7BU_cE_C-t3E<)z5(8I(L#MpVjtV zb`@}l@s9*dOuqRe z@b8A-VXb~m@KG?!GhKl9nr!^A;410iEFD3FncU;hTWZB?-!dAxLlR-RzbTn_lWUZ- z|F=zDUmxYqcPW$YFS}HSy&FAKU_xeM?*RvwJi=B;krBYyGovhAkI=Zl_~$zf-i-Rcw_d z`&Y>ug^{2F_2U4=o?~)(#tCFLg_&bB0ubQICVZ5{n{aYfdaAq_wrd~y$XaAT%1(_C zS&I^yVx(u0|Gvg?V6tM$Zk#;{rB*c&_G`C_)7B{btL~$rThRUGO{(3JZOyy-M%Ar! z37mS>14tOMC0s7|AFkKRGeqbP6*9W6INj~qvFJp_H{X2*0?x_3!!Lb{;4oQ`QowA? zDF5w!yAxkRLof?N#HO8^3^BlGgPHD005Dj=}#!(!THYFpaoZ5+9oR8Oc$rvDn#Y|%g+CiiK{_sh%qJD8gZ zvra2A$1EtJ?M_%_!(SrNZDm{0RFQ{Fo{i1}Rd;K%AwJFER=PGLBNwM+p$z@qX@^$$ z=>^A*a2y^s&gC2LWxbYivxNKmXw+AL>g5+tL;AL_mR&Y@1+avOak{Srf1j~QASU}J z+u{$OjuHYkfPebPuoQ#~l}XdxO+V zrn_0XPxvPG?49Gxl2g)$qio9k;uv3Qz8>vQ zl`Qi*Rm^6(F%2bNE9}QUtzYcREq_LtKiV?IAm~!iE=61%2T(`g7Piy%?%&cBF~E6; zK(H7#CSpb;V~Y$nNDi$dM&<%ZC>f^7LpWBWO|nMTBm~o(Ma!=mH;D5N9q)=+Z;>PH zA6tJjGyce_n=itWvs*p5uacGUnw;wtL)u<$kf}X7h^xxG1O{lsm$Z53u~tpuBdrrR zK>(CCarEzJcDS;Et#Yil<=VWJUMh7Qa;*%Ur(}RoszYESnHq@tIf|k z%htXi>7#}!jNq%ayl2NV-A`d|pY%RU^Y(KBPX}>AbcM?=Gp%#DaqjVDRSG~ge)cPnZ@sn|@K2`( z(!D~gJ@HN5r~z6Tu)pGfk)uUEaoUuM?1gpk!*mB<7`!IJVaB=(yrK_D(Dks@e;L2s zK3Fl;m?%rhlud5UtMFQnUgi-uJi*0?N$1og8<0WoJPOk;R53&Ly-uXEq16?`xCt#R2<3A~s)>98wZsb+FmPjoo!ki|u3DvKds*lPU1Nd6~O` zJ_q>?+cM^^6qwkPOBhB?+RJ1TXWux`{eh!aogxl-I4z<*vMR(+ zGOQ&h#ey07AvQdzLguF;Vlg}UIyE6p$h+6(noPE?4Fob{O?Rt@=AS5Jbn(Y{e`}~L zps%>0FH5SUt}KP3_S>{B=s6uNvJOrMIeXO2{3=(bR;d5=N@iW4dE(ORPfW9&yvI}Z zww0hyabEdT%(6#YO^Ovc(_bPU;1+ztm2&__he&#NXjwC1YK&rqrkZNjG1bLqyAgNeQSF| zfnNj?&gCY9wnk&%RWKI`B(`(DdC&Q=lTl20wWA_h7oQv)(I-=4N^o z>I!5{&rsZElf76Wk*ttPuj#r$p{yL+X8Y_R9L6|*@b>G#{D+gdUF&cy>L@`(ESjm~ z6|v*mjlWUD=W9HUr?>II>8W@jh#PbaJs!cF$-4g15mv55{@xMjXaAMD06*MZ;A2Ja z;q!_jal+*@XFFq@c;&$ex@&aM3lebbKKq3weTy52U7SwkR}3w6gcFc!%|4ph@}72j z^za^?qKbvDA4*pc3P=!X5HiV@Tj}67x?E?i%0obx%t%YFL|?~$(lTWMeONsC?x(iI zPlR=Z5iNIwc_odYYwe}8M8VM`(K#q5`QqW5`C**#2p%EapS%UE3>>40%z(KT^x~|8 z{1phD)F?-#2s=lba1%EJN0lJVJ zK8=}~Td9?&p>_C>bES7j=upoF#_!Y*3(3h>O(JXON}CN%p)=i4Z9&7N(SVCspAT@f zGpP^NEXJV;N&{P7i1mMzm%$W>P}n-_(zP*kR(!EDB40g{$hE;J9g%^rn;GAbGnz?n zHC)$vZd+4P?JJWU0c0JR90(wf(|qd7$JV}cq{ZA}d~z;$e>l%t#{DJ%3uQGYvh*)i zHtNs5^cKP;rZ~>>Fh4AC`cq{wyPdA}M<=PGu??pEK+j5`a7+XkIKxbO)AC5sG#Oqu z5x-%1SyGv-L$2grbJ9=2bcX&PdX+L{v65n6?!Fk2+c8%IYis4i8NWxdSyq|EfPU1ZlcZeFr65B zC6UaB+arw{yPn>nh3^wHoLqMda2ghSZL`bS_ENRQFi}Zl9xN<&?=SFGU1d)?DJ5 zI~St6pjj3&ilX$4}<)KsyFYxhar|w`;6g_=}n#t z@_O1{?FCGlutAcV&nMTO46tnyxM2gPOecfSp;hHh8HA9-0xmTYh_KjT{tgF7UzuOg zRDG&AwxuaOeR9cfb8m>6YJ8N)%b0ByNO9p>*J&f?(+TmFx@oySjAWezb+E2izS za+PNN)_}t@_xYY0We_$KtLBRLSgpBem1;tQ)X(gn_igA@{3F@2ok}Us4irp~;No!m z2!=;z=upY5thY~ zXl_p|d+;ZkLjO1Afoh7C1uuRI&|W@!=nehef-<^t+Jr;R?E}j@Q%xUs-(SBlL2uKV z&e<`UcAX~sf^;hxE~c5RA6Qk# z0%ij*l3>qlWJe~D>)99HleWAT&B;7`r^|5i@PlWy&ROfN*>$PReM{5C37ff7R|J99 zW&h*D8isBE6*+(Lr-4)^;Au})R(g9%{*+%TN!mXH^pH4?b5U-oX=I511GJ)4J!cR1dvN+wtpq+rAkU-hwN{+CLyi>ag&w@H)Pw7wY z(i3M&H%wpX{9t*2y3r*JBZcmw^EddyQubv>TDW5M==vQVSqDSM{9`KH)BB72=~1&t z95+*1pAQirj_sZMc$e}j+6IlOBhZ2^1MsD%@WU%zEkY+FOMVV+y9!Rj#=A%3*gsgG zCiVkIAbZovftqwC?a9!Im*OR5lUmuFSqC`i>Ou&ulcL<--dSn9go&F;=nxlu6QR-X zPM`f7V&n<{a80TBq@$rfCu|79Qu09u>^M7B+R(sR{przm-O-87tb>mv@|AO!fm@B7nGlU@o7&7M*|<;q}l)) z1EE~}OVob*1KNm8txe4hu06A_B{zOYf6z+aSO{p^DB`fl^>nD_*l-nPxvv?UV7@o( zBa8B`L55|Ke~9EFcwZbqrrg=~AtfQjNe-W3$5T~+GQwN9LcCih*!lMUhUWBzMbqIG zmFh&OuPYRMY*&Hu=7S6$XoaWOH3B@px*4o^W*~kKi85rB&PYK>%Vrm4Y{KdKimBnB zeec$BW>eF&9QyfluHAX?v;9&Op5j=ENh!H>yPJVU-c1uzIiC0(pe7-FU^l^$1`aLY zC0K$J2vG^Q80xMep`+W}hxTzy{C$Lr&rS4iEC;eqa!4K)8_P>~ofprI9u3y4xc?-X$x&rsHRDeB{2d zNoWO#CqS;%qea--J+32#dEH-Hg%eblfb3v$F9x8`mto?(Xm}lq) z#&KfQ1UaD>pL`%m+IRtV8}(I6|`&OBdQVDctxj;W5Jf`Sr-bA|L4VN7< zqYK*e8;)D(1+zVh%4fxMB2b`>HigBjxjwZEx+L_SkMXMQ>&-v6uL}OVAU=D2-}uE9 zI>#p^{#W8piIg`K;I~pZ!<%_u6-Uz+j%&9Ev^y#6D`p2}e>PN`&VOipRBv(8XA!Os z4nf1YRX%`z+T4uqBOqg=d$EL9c->lJPiQ||hIa*aYURG0!hU=*qAS#^p2G$pd9xrU zNS5@Gi+&kneL(l6O9brFmkLTr5>Mj_Z0q7SvU5~;<;e)T?@vx~R+%kXpKdD;K71`} z-iFqWs(LU$2^l!s{UkZglPdp2y0&Mk+fYwN%e=whb4#=tSc-fUF9|njR(T+7`^ws4 zqtT%t)I86Y_M8Um2~vqh{q>oT6?ttxduNd)TQ@#&JkO61LjJlLEc%Na5pqU2;%MRG zURR@WBqc{qAbBLO5@@Hyqkt8FIcXv#SfY$rkOMn8(^{=0z_sBUYgUXRBI{T;2G1OH zA?}qxHZa&VNWcGk`3cIv8ONRe*t3|zN&baXFH}&OJ#KOfH_J-t4cj-!Poc078G6=G zc?GXsNW)ZQNsU0xdji|ylfVs(v*X32z4ws;K-pCX#vzlV1<1ajY}l7#?ifCk*9Im7 zp)3vjT9;E3MT)Fk=g$sSC<&dMx&!04_BQhjajah~#RWd4>!Lf~sFSJL{B?gh=gORR z40HmWhdb@HhMep=X5>klV-{x~U4% zH;OwN&9UNva1rk}$&e64Of88JWCP4mRv+*tUnphvV@6^HOM=-g)46uliHJ3m%M!G* zNcCNh@D3w7Y738}RV`s*8U7cqq^I%=$Yq|>z*(xLYBrO1z)Z?p4mpBYi&ASjvR5+^ z?$VX{wcOdM>-65SQ9oDzIOwlnyT-CryNYa424Bac2H7R{m?!Y4nt>G&Q9Fnqi^^C- zYR~2M)a7OgoNP+md;0)%oE1@;fmA`p>VPZX^K|g@(26GY_#dOBx7XqNt)GhQhM4 zW82b-3Z*Y4nlwQqcEQhIzn6mRIj`>jNRl5OUDaP_r{>Bee3Fz53M1wkX+8!rNMbH8 zFI5wqNPm}<{G?aOb2zm30}!dQ4l$Ttb-4WR#A}$emYIO^2;Jk#+O1OQu@R~S=g*vb z{K5XZR5CY9Ewf~qfFGG-l&#%y+mHKvzweJVUND7^7$QZ2Y?$X8wp1}n7E04@h)FK7 zO>jKeqVvn-dYNKVv%!yTY%*t9DZK;&Q#HAMQ`t+_4-?B&N$Ocv_+Ib(Cf|;3N+1|8 zJ%0CoLbJSUWvwGSZz(D+mMv|*)GYk{I~JY`)r*27aGe3&7$uvkFMaHzn= zoi&fZ-!&SA2S|dX&>~D?g;ddn5XNfqC>Ul{q4HT79uq|R7ruYimF~ozR=QUm5d|TE z{^8{6FF5j{Mui5%{#^0r$WU-^=&Q5ycw<5QeDLML`-27%QE7c#sN6-Q!lk-;A`N&E z5T{cf19^G}vlZErG=M(LedZA!Xjf`wS*+XqcQIYS!!>d}QsCAs(qj>h)pDrXKkFg3 zi9^98ba+_lYDXhqsEM?n(ev_{xmcj^QAL&)C{n)l*Ngl#Ra0s>+B!wO%vV)wAs9xC znd*!JX$atP5&3uobF#4BkIUWXa68ItO7A`V$G)CH102-JamxWg#zV*JAQ&s;Z{q2i zcNC&RbomPc5T-}_<-j0wbOInR{;~LjGtguH{7UMhfH1np?!l@pE}!WS4e5)UP`s2R z4%5a(AUDuTt3kG&I@e#Rc5LnuQoN zqqPF_1`k`&Q~jeL_y9Nx>*X*F5VcS)2k{G%Vb?cq2-8Xw%htY)g<$EjttNdg=!;WV zE3yj1>XGU$R-Ku3D4t~#Wo=%-YoJgia#VrH` zGwo?e=gXyRb?8)?$PpP`Sn>k#P{`ZqZbv-M{G8h5_S^DvmByiP&9Snw^0?zD5b||s z{R9Lm?SBjm2f~$xFLLgNOa&&^xt*oj7?GB_v*o9OKqtb9&3$5HMY${cEdq|#{hLmi zKX4fW%*oAIEA;4;BL~dp6prMU0%|>9 zLd1}ZPXj;GiT1@e|Hh}!BwgA~vT&>|s!bBv64pXL$w)sV9Cj+h z4$YHwZJ;+~doC&xU?8q7s9u!tO`Q+T5&Qb2aMYaA3Z=oxFv^Okg8}2Jz?pdZG}M*u zTjPnyJCr!!Y1Nr7(>r#p1)!FL{7zlClJ#lkjB2G0S9+c|#xvPgu$A^B&ox2Xboa`p zyCIIz`gFKhT5ASy9Hap*5$QI2B*1jfy<|;OX^^ec-;8m%10NayCv$pcEHAU&W|^yj za$($2r;|TIWlIC#36X6m)|HY&mHrE}XF!Se1xXmg#*^8TtUJK~0?D}EoI|vobjk#s z6@qbRa9HcQ(3E<^UdiDoo^;3*N7*Wn#2VE3o!2r>U$QNh8KeZpypa}RH?T^)O|#se zEL2$(1(6061ZIh710iujvVJ?YrlVxSiS&Hy%0GcfO6`b`dvq>9{$oy6l}eiXsWg|v z1)xWlbL5GP23kEWAL;JdM{>}0CZ4G<4LpS(XIsXL?cHl^HIn;{4L9+^fRu50`- zr2F=93ystvD(oeD$FO<`+c@AdQ>V!I<};(EqN1Wks7$bN?!J~EnE1x01MXjdXZexZ zkhTm^zgw$)g>?OJR(pmPATV?ewDOG~fBXS2z}$36rtK$QEjH@aUB8k*I)U{*Z|_?P zHSABZDorfk%6?7*$C5v!t{FMvz2Y2u#jt%9@}yCvFz~B}nX}~>xxz~o(3H-JjmZX8w=NW0i>u6jVS2uhwv55YQeq;PP8=Ww|Df$H0v1wRX0 zaxvoI5l(O6K6o7EuXPT!5+Yliy(>?H>gaT zg!E*i^k(%oXNPbF^57x*djVQ64bH~$Dd|=!&yOsL=aDq+gK;(1wf70B9ENQG#PdP; zRNg{1_blKOVks9r*$+I#R(~!*{ydn7wI5fQ+F6$k!1ErJF@5-(dV_+}M1WZS>P!Da-YuO8zq#&E=T;A1CA zf2e+ePB{Kk6o+3GfXwc=4wE{~>Yr9bdN3{K0>oqhva(&Qso`OoQoJd_7bh$$2@hnr~m5UTP z{Jc7pGOi%-p*j5pUV=a;?%vyo;&>pfD!Qo1?xxp`v=qU4J^PP3jKiDKAeNFcBTW_t znMn8>m6$dz>p>YQqPLPnFo{XW-7()K5y7CH`wQV4c9FAo6ziE8@%p!_#3a;of}l{j zG<|VeGci`A>sHBhbVw%ZP1xnTk*sI2vt%kz%#uU4Q16 z|2#BDLHLU1rCwIJS~%xusouSs^8Cpi8m;{9;+un>`V0#uA=fAS-&7&tMJ!TZ2YV-5 zdG#t;c|$$l+@J5c+y_vRJ3%?Mk>8(>h)Ln>N%ZAoxaak+&|s%&GPEUGkE%Yvpje+A zMAPrd>a@A{_=dT}-kZh$@aVi3JK1-UvgF-4G}wA^B#y2e=L5p>pdFjYCD#Q{^S5$!Kt=<2b+> zKW6>0q~4={zq7m5Nw-e4hazZa#vQ7=;SqV(DtNZq6D; zU}>7b_YN`~6Ay5oPy3P4urVPpD-7v@tVQxc$l@#nE?}C#kpzZ+eU|&os4GL+rB7ph zxW~6<8+)HM`o%&Uu|-Db9iu!=`!1LKVuY9;ed8-K36Re9pxx*6cQ@A?9UYRPA8;+O zh1|97B|`7dS9=V8uRlqy_FwE zqCTYM+g(&e8)&AIR4U&XN>fLYt!){@6rLXkt2l6QJ8|)i(;5{oVZTeR=0cli&g?HwDtV`+V-a5+HLmMC73y&!z)8~pOG$Q zd+KUA1t?U$xgNeuzd7GG0C2qT-!~EnlRs7}FU`%7QCsWHOX$&(lcighv~*l#vWHj) zQc(Rmzp2yQ9P)P?VLFytrIEhg-X!T_oQa# z1SoHKPy@_ifDX}f;Y})7KY8&^t9EIb8gp-P8eoAuw0!i`KJR219Q^c)n(-u2@9*I0 zc%q{^FPV=*h&3we2|QXy$FcC&hnjSszoBJ#nDWy=kCiuVk+DuddbI?SRou>r!~lZO zKyMZWA=&;X-7m=~Ie%cjs zkQ0?|u-5t|k?uj`vj);W`=Qxz0OS^!eE-1;k16R@JB|*2`b+EVWnA9W*Yen2QJ*&J zbyW-`R~-eN^lzd6$;%3hHoqJlnj}?$#U+H_}9UeAE`2z1LKZP z#lnhg4ogx<^dJZ&v=A+FxwXyTQK!y5AooS*)(s^V`&7j_)Q5y&vi1yj%<|Gs=HMMZ zBlWmc^I=_`r8#3`q%!h>Ni-B?lru2qt;(tZPzMPhw>W8r-@{_jy6S92v4d?ucjxBA zT$5)jA^fLZjBdsgP0XhcRd3G1Si>8=%>d!)S2Laf9GD70m1bz;!v#xT> zk>9`6%sFW3PL=6e*RltGEm~4%0J}_WYw!Eays_-7nH_kS`T*wqTu^RxKQX7>XB%v~ zV<8}pqShL4=fD~Gc}!u3yewipsneMyO~pUv?>k-Hi%2-W=>F-z1MS!6?u#dl+Vb!> z!y-0_m>E)^g_$xno|L>K-kTp3RM42?8OpMoPg0v_WhqS}Te80n|D@y_@}{0{*mqp) z53)GGYI2@?7S`2 z+M)_fbJClio4yUT859-u|KYXCVkI0+5?idi_*t!Q{{idhi`0x9Q?640R*FP7Ci$l6 zwS3vbM>nR$=|bqI`4>yCnR8Mkjjw_~9%rPA}7f>@)Pnn-jNnjsIS=B$-k@^X;qV zy39{Du5IHNhtS>-Y3BKw%ipN)cD)}o@rxTyC#yU3(q;oCj50qEuNyieBcdC;!*%&a z#3_3f)%&dJBRLdHWvNp93*{mo-L9J+eZC~oQO;nG^C?B`xuj2F-r%G)Z(U1utf!N< zLtVVQU}cPfBA87YvF`<{1&O+LMkg6664g$;MjQCcr=&OR(X}d!O&Nx-_ES-N)JJi; zQlg0D=o)CWQ$%jE+G)y zT?YwHaCdiicXxtIkl^m_Zh_<;p7(zL_`_N=XU^{3T~%FG?P86EqX%uGz=bjfUcu+P zXIDVUAJf3p2tZEu@X4mfr#GoYr7+Y-^M(3g3MY#aic~Tg6%;?qo%Mt;%g$ne=QOM$ zKg(E>(GI)Z=WEJ5V zZDf8Ok4)T_!&0$9xXte=IOMVtXsP=U&)c!P|B-{MhXUQKD!>D4 zHUPnY(_OJVmm-!V7uA=o;ikpYS`Njj6TMAdD=@c!D0tFAgQ0<~Ezf_JP`BUTwDU2T z@g=iU|9U5^?=y8)CC%Pv2KU}S97jV6S~`fmxz+8I%Kh=`aVn^&(EdTb3>;fZ?pyfC zGZQ+0CUX+m@aY%6j}Jw$u|>4Elp!1^lV$sOdP-SvDoQ7Q`xSEeyUzC_bARn4jdJFV z4l0NYN-@k&UaQRBJeKc5WB`pVXpjxTt?wiKI`R{Dof8x(M2~Xn!4Nd{P2z+iujWr0 zuODI}P{ybdBh3bhVbY`^6LP4ubRIP4N`xfV=Yy)IxCyi6_K&=WwVZJi`pqWt(k+;> zFAFJS^Hk6ihr1=Hx+MNYGbN!!+B6GbKN>`|K6U6!bi3}4aU_m7dqNC4a^Xd}DY8p?K|X zT~t|)t{iDD_B1rdPkz#*lOugnc9;)P-X}*F!?0 z+L5%>E}+m$ij2C(E;<|2SJ%?U9qSxzA|3ApW+KRTInlwLz}|423oY}7VhlWzW6V}& zEu^WwZFf+dHW!8G2jW0OLo%cJ7BzDFptXAZfM<**IaX_K&h+-s3G3OCIkOZ29t4Hq z5ausKG|F`dnJGn>y8|mriug(*bOsX;3y*=;J_TRaukp%;B;Dx|;XSm#ub;xm^z43( zJJv^x)6(Kf&~ss+P-W%U*7;|YzKT;z^MR<|+UC{psE&AHDSr^uwnQ(*#`LI*@$!y(HK`a?$zh%f zLjAz2h@Z(09pPTm;!^Pk6>3?|gfE5^%R4sb>ajn$$?#WVQbo@>cS|K! zDELVYRmGI3OH9Aafhnls)b6h4WXZ=QD|BL7cRWgH4OXL>J<+i<UJ-dW<-o6eB}l#|dm}nytvrJ~DXdFyhwX zJ|2w6>+Ie>=1}BI%TyVz*m*bCE8Vf+cFX}@3O0Bsf8Wp0ZuS#tcGpRCP(oj=JHE}$ z%_3admSBW5D{!<&2I{w0$4k=bzKp@Ao%@(j+@dL}E@7qwjc3uO{1iPVRFN;4SS^!o zdB{uD55$I!mw+&V=XE~f7BiF;&!)(TPOz6(e3C$|Lk!)N&0lu5sFUUy!N9;!qx&6a z?vF}n+<9aGbx*nEHFHqiB^_KY+|_HPbFjW#Q4TJ_!W!DZbxsRSdZ3;$vXOO$bhc6>UXP78uT zp9xz`GiCc34x``jjbvvxXeF&M;Pq^3s*^hkUrlHaboEdhULUbjFiTb*~`uH zMc4j#8AE%LwOZ}t@XZTCSO*Eo6cFh60KJy3DOuZD*Tsh1KW6UMbXA9pVgttShy=pO z?5W*f7}d^O6VC6|0Ez|;zV9!35(~qRr7<`MM?3;SW!|uz#~q&W5M+TIPc-Ho2p-fa zeb6 z>s|OFr@!Qz(^uV;?D=-Jj2oQZ+6C|}Wm3&~X9l?Sd9a*Q1+n0XYiYNpy9T_IwwN9@ zYWN^fEga40S?9%wW2Yk~^h^-M35z!g+!7rfMj%=Orrsewwv_#KlW0 z%oA)=e=`Q1ok{Jq*G2Uims+v^Vq~viy}_n6#PuV#oT2vSgk^@AOMQJF|Jw*T#(h|& z-J7)b4kl3ZL`blq-nk*FmUjY-jtR_jd;G9!R|3S)sAy`Y5!s9L!#$1^`2gHmpt;&& zo)}#F?IfQi5MZ$&#T%{vx`P8mh6~O7^M<<1uE2ZhHT~Xyd_b|fmSn+MC`I-Wi%;leb7*6CMdfv zed;2j`B^-huNWCDSR7%t2eWqM0QbOVjV#2AKnnl#MPJ!H6haP{qsCR9gn@>5=S-Bq z2+9WCOh@JpG-2IQitB@-Z`iIjS&EBB{*wq5>_1Shs&73J(e*K&Z_iJ0Ff{ZEZ51F* zKkAU8_#lwzo7y4^vv3I3TDfg=?E0E?JwUELvnpY8r`+~?_L!6PLG&tRHyehZ3Xkg`9-~JOq57h z{op^o8j6J5F)jx6f>HuWEUYU(2*`*haEJi4@iJIte6GwM(%63?tGr)D5(I}4KZO_v4ccnCg*~nOSgK?%54Nfh3xUeldDc!nb4A@psHYq`?SRCu z?hng_^fn}k&OD%2_D=8u$J@qIZnTgtvr}Y}ki0kiq_qY=p|sI$SDS;8j#_Qs9(+z4 zK|qpM6zy0nsTlilumYZNyBFY$wQ>n?@kYUZNd#-*SoB6Oti)$ci+UdGt$! zDsp+bpp~;u21))AdI2ub5ZK z`~y-z3;pzD@;2KU3g}1UaSnJsX7jyp9}Zz;F}u`SOcSaaYZ17bw32`98Fi85A>=70 zhNRB2$;N}bVbsmCnPVO?tEx~$gR+FFA3JXRIxxPMJj=cn!#Bt6I-4fh{i`!=4}ZsK z2SsWUVSIRMi#g77ch{=jRSzaJX-Wlndf*BB`=)>l+RgZfJ@#gnD?loO2p>Nhd0Z~mY9x+(v^sJsVJ!E7(U>=IH=2z& zu2^Pl8;?-yB5+4bnkN_4HU+#BRU)c&nyr$Umg{(uBLl7W1wF{P9?2xy*@;zI4^H`5YbK+mEt`e^aN+2=llbcAPO| zkPL5Mi*9qk73JXQu~%#6#oiN;9{Ighg>i#2wvuMb&GbmMS^in93&%VLqNhT%d3l%I z6{xBt{GiwC7@xxYeArVLm6Hr`dssK%emA6$FW9`iJ$Dy#yWZh?s=f3HGP)#h!8j@h zI=Y|Ys+iaZ$a;Gjx#ok%kQB18&JCf$Gw8lsg4M13EP_1^>tNB+xIhe02 zdQ*F&UZ6CLAOCJ~nUU#VEef&`OD{IQu^lwWO4muRZmuJ)cA3BFPZP&ausN=$Ve1Ka zg1vEN#&)+lAZCMg_Tsu-wHdR?{>)>ufpEjKLSoIgAJS>&C9f`UM^21h^55}|?9B@y zDrcN{N{=~TX__s>zavFV^ky@HHl&`pxpAbUt!ts!1Y8c01>LT;hIRph2mZ0c^>R{~ zix0fso&?y)S**1>Ok50iyt|5eN0t>UJ6AI2S2>&%6U_>DzsV~+zuvBWTq%Y%GkjZ+ zvdx_@v&~)+qz`#e8E5>d83h)uuKVLChve1Ol`Qzyo(@Y(o^_f8_yPC5n0bjk&<~%9 z^%6%3^>H6G%krO~7M<0ssxlHI#C)7PizJh6Xy_+YS;JvNrU@MPGZ7U-ks}o1ODYv3 zQU0PY@4rZ^r3lYHFdQzIA168jl|P_#ij|~_txhoau$RkK1aJ6DV(ErM zsuRJrf}(gkq!0IJq2pM_W%gL&y>TV;1)0POb(786^Bga=&0!CFMIE3~r8<_3CO97O zq6+Hb`?BAeM-qag;e53zMkjc1Oo zBwO;1DYt(Ziz%=SNQi-#YV zrudt@wKL*%c$rAF2gKAgx(w&;wz*npDVajN*~-G)*ly#G)+ji(xM;++8QR)x>`nGl ztNMSLlLXAPsTnc2udf~6d#(kBmFqX?!FDN1HX%~z15Yhh6Z+~rAcNb1Y$B5<;iCPN zscXEnEf1b9$1YP{!Ia$V4* zS1dfVJs)Ho1J0||m4uH#V4C$;Wa|;bM`d||eYd(i|6`V*MEK^hG1-@$2xg1toBfq> zKtQ6X+~m}6;M9JvjN!_I1C35fQm9Q9$T0QWa=n(vrKE31U@k?YI~qUgi#dgVA0O#% ztgTadt5}3JyR`jU+dR(AAuW_Vy6>l3F-U_Q#68#?>M@8D$P_QKo>%^Cp9_sYaYBkh zzvCPZUM3bna5jH$R-z-THj|}YZlCw^&W{43lAQj?@g28A4`_cG;iOs+&QBXaTBr@% zcbnUMA$UYnOerv>wqVi@WF23`3)x(ZW&T}Vt@!%HShD)Go0PKJ`jkOplA*mf&;y*p zKzKj3sx{_|DCgy3rJU-jS-}2R;^`+60e9@Az@yGv0~qXUjS2=%B!pr5F)$ic^gEre zBmwmT)Ar4*`f(`P9>}!J^Z9$5v%>t>011x1eKdi3HV_^o^o_$Kv=@GbxK;iH9?e&| ze(N(7&sZZz2R7|3#5C=rU6G(Jf;L0(k;t51I8=o6i+}>t7u@JtmLrOWBzWFYGxLa1 zEYh8HI*8(CKYPU@$V0_a;sMOPfQTkZ^aL`%<{i#``#?9^R3!L`TOYh5#w|oRKA@4~ zy{Se=JNa#vyZl40l!YQ^nOReLZkov)1;c~VN=g&lv$73ml z-w4_huWfH(3u4S?45| z-xyLBgnsC)DzhHU;lvgnO2#fSvs?#{1OUL8`y-~K)3CBlntvGH(XbeqAEq^;_ zR%(UczIV3bnQw4EhsIkdrvYg2(F$84bJsRKhYG^5y9jqv>7Rq3X}IjY(S;a`oV?*Q>{h=i5rbCZV~uj|UMRyYr@VsV})<pzg)%^aL%E$= zHR`VXp+o6P<)MXne0NVxZafbwKYG|~BcJ?c&FSWAWiO(=SQ5biOJ5qjG5$I7;jrSG zAZ%2(B+BBder}W}QjmA1(_(XX!8`ct-fLE}k=bjRn)}>;@NwyBJ0R+t(@#T%0gUm{ zS^hSrv`d40k3kdo9V4=c{s0q%^cgGfh*0hvQYf%{ldH=wY?+QagK_q`>c;Icd#C0R&)z9{LgeN{*2&I3cQ_ z*4ci;^+NM|gvebUezgp$lF^9Z4h>5#}@ zgah1`@dKWb>B09Y?!OydtP2(}+btsB*qbP};|hiWQ}maZZ5IGV6^+7CRy4l(=jikyB)d}VMGb-?v};L1{YNxWw^gE!_f;o ze8-rzccGhp4}gQb6^fv#NH)-;X0o1p)mAiBlma|3fu=p;8`Ai~w`o3Wx})t|-kH#i zG~AN9c$?UyFjNgNT zA^oh+$sY|9rGF|lHqefv4;WWo64;y7GyZm^3w=gU0}xMP)DdW?u$2h;5zHd?Hibty zp%`?v_>?Wu*fb*5D|>0#{DMd3TsZxT(76?Gs+z}9oY8)=YEY~&BdUQl0l$HNR1$hD zggi70JWe2OnY>BkNTd`Ox@IS%+U)#a?vl(EoWtKh%~{aBr8zFl$K5E=U_8kYJ5>4? z%*36qpmSPL2>3CMoIUj;B-p4y?N{?)If?&^k3>&kt&g2K7kj}hqa9q;iUmg^kR1-5 zIe-UY9=Dc6Sr`7`P|2jrJl9D}=?lnezsh>4AWLyK}YX>iCyZyJaNm&?N2f zc~SokVPC%LFKU$to#y_5V#63&cTP^+tlyBMOL`ff3WJ&6{$O`;;@UZFLCNZO8SSPX zjyM1232Dm9kq;L*XT>7*?P^oR1?7oHy!LAy)?a6RmEo*4G(3M;f73qIH8pgH9u5R) zHx!9Jv24hDhXnZ=@2|?dL71Hh;Z`tq7NiP}K@;s54{tJcn4eLPNHxy{MA|GLV9t^p z%9&vN2UTN$uDCdoTzD`X;RF;G#uF_21G2f|m_1Pe=rf>RP)^}Pf4dai<7DSI+4|*e zWM>BJFq7RRdw*YT=u}WG`8I0GCZP^^ZC0e6R7k#)aIQ+YW)u6)GQJ@hT+;ssYueeN zSb$6)Ou(X4JnOSrfz@cGLP(ffye0Yj+7;LRHUqJ)+f{^m>uQ5V=CW{IHrY*#nl3q? z_)_!J3HhEBPlkB46L$X>N3w$Vp8yH4gO3&&@5#Awn_o~j98sLezcuOh=H5n z9khHf_~}1^A-?Srp89l)068b}`U_@f!nw>KsXq|HG~WnY;NhG+nr-uq<}2mUE#w4U&1!D) z#j28YU$)g9d)@Bp%5f^y-g*An*5%~}X*Xj>VG)}gPJG%LR?tJ8Jo)0Yy*6MRMV_!| zQv`>**6o^>s6B)I-%lJ0s?Ej|U+!bTfL$^|`oS}yuAqSQcEHt>2iWzufPh30@fX0| zS)od+X=Wp{~4*xxuBrOqkr_WIL&Ww!ye_smDd8Q}c=@sx~~`{yv~Z0UEuXId^U z^?%jfFIEaW6B%4FH#b@{%o&`v`DH34GgsUF%r1R&xmWr|n)5O2h;0-+$F&J5D^LV7qFsJxivkeuVL)X|{X?CxS zw^8Ny{tLK`1)(hT2i!v-P>>xuGUR^&U`6q}J@y^21T+KWGsq1Se2;AA3}{*f(mo2p zT7jUJS<8~F13C|lrmP<~qrAToX;mzMK?=a!v2B?! z_M5XYIM|84Fi+sNw3S4Pks8C6NL0FI$Vlnjq!16j=dv=|={V9(bRPbPxh+i8MMh5i zpsdx1jD<)qA(R?Aa$cL^LNZUe7}D^VQt>DxqkLvh1ksyh%{FXBF$>RG`OAp*s)b3< zf>pcaS#hAu*KDRty5B>e)`e>PJzVIv#z%-)V;ek-Z6$Bb<$7^1HR(P&(BT@RBRL}= zZ~D2_=Q4pezbR1$wWU{{R-GuNxIE7pUmnaR3==L*JM`UcZ2Up@sx3=)bX0BaBP5a^Z%HW>2hXTX?;NS4nnUe#|h5zRTAPm6p9aMcl2|3^{1LiR8KS4=r zd!q^X{pUc+cVHt^*WK5bL!o~%U7nA{KvH;?!83q_F1V=8ROul-Y~vO;0BP`XQ4T@d z(CvfGbon8A%q3X(u9jVEI^fe%5yr41c*&t$^R9nAT6AMIi!bvcy4tg)8!+rzZ3;SIW^|^mnyoa3t@{QV zKp*hX?1%1rw&3GwXOS;sp0n$kXfb$>lTmIG73@gXNf0vc34659?f*9a6M;C4TszqumG&NP~4RGNWzaSamo5k5gdW;AW0-mR91Yh;DW|o_$amnQ@ zYVy_C?^6v<)WdGfyqF3zu;MUlYBHz4uwGM_b;~XlrvVkhLspMd@%R>|k@WK5edm6tV4it;9A3t{n}6VyXboy%{rPB{NQU$e zXku!cDKnQxAIHiksx^poTR*F+IG*2Z-4QXoSe<6RDCP)t@;%iR(K5Rr!p}VGja163_8H9BK2FcJxh+Bgwj*FT}ltH~Bw}syllG0z1nqsHYIe^e}%CXYPqs zN|@g9XrLhzg#JnyT8~nf%pcF2r9eRW8s% zbth0CjwUR#UaYeq*L7~Sx(hMXwXrhb(U8M8{0agd6NQjeqhW@RA?Cud?>;{WfgoH z;uNrrq>tUEG%jJ;)p@q0jJi+}77}O}J%J|XZdDbs#~n|lU;qt>_?~hQr%@Q7Bk!RW z!(8zyIpp7*{U#4b1oaQWhq3)At)I!L;#6x@Qh3xUUKr}LsL3(OpjG+;$03i~#XXEU zB4MRahsKHU;)&){?r`N9^ay92b?vzyG;=1-nQb-}{<8nM<#%-X`dn2(i%CWn!&vkLg@mzBQB(Ko( zeu!@g^)}iM&rB1xkvzF`uF84(+i*AM$MuAP6SLJqlh3>}-3Ui)@1P*m!Q7viIn@L- ztExt!Ni{4dFBn1s2y1LqaB8vBg<%mu_$eeM3)zTv@-XUN>DpScSmf}pmKE2{e0VrBvNia5>Ri`j!*8V9 z(!;zWb7^POW`>9{DDufL1o3IR%V;MgjK%x#l}>0Nru}BR@8e2|Efe9n{l_x(8f)N}x8i8;e=~|j1TQs-={KJb!bUhhM`j}YUtRV^G%AeF!{JLx|JrE1sHhKs`174v zH$25Lee?5!IsRX?S8IvvEG+|=AWmBfVg%Cxuo<_4W8#mouS0YvT#zeKbp&}`ks*JWrDX_EuO}fSHsPG9fgPz~n(zE>= z?PksoO&M)^na|C%k{PP@^3=Mu<(WkMB_EIAC^3FR~47Ta#!-ei!Q2Idu297o=knI3r zo7vQL|GA512uT;xwl(E6+U0mg!cNgQOV+pz=*DJ&J5O9Ahj9T@)p`lA(Eqa8$7^%F zw$fx>1`wnsS_6hSDzV@v!(mm8wx5RT^CY}_#r@-yyzvul4F?Gr{Bbvmjb+SOGlgfboxfo=7E3ktcuD-WQY*yB^ihXhAwBAe=7|*wRFU{m; zf}qP?jHJuD;kl2xAN7D|no(WWIhseB_um{F3b<^*e&@qm*Lg|#d;~XLqq1H$r`QLK z5;GZg-7>^JudGO)SaO3>JTJS{G4xeR6pH}yPR-!=4t%edyWcJPZrd=tfNY|yu+Z}1 z)1P52M<9ThJE+3t9EB#xW|4Xz$Z9Dl);4~S5*-L=4G`GC_>{&#HEy8J_twqY!> z+->LUhD-T|u9A>YH{}Da@0fDDXgiNTt+SHGCXCRAL={a<_Jh@Gqp{QpEqjb%So%!6 zn==g3@y5!$6SGsRFz42Xkq9Htc~&c?JRNwbZDHS2A!3Ca2wA8EY(@BpG%Gwa%mv4W zWFox2pd7&NC&so&tmDuchW(r4L^^D>2zxItT!HTLjxS>}EQwVr9UA?neCjpY-!l*| zpQ9qin5Q&P^(^SJQLo>QfA|t5y3&ArLUlBMRiCM(CGqR00oRXecBy!;i!iHm?3no# zR32iTnxmXVB%vWa{Qu3I!l+j$kl@`{Ins3220;kj-Z|aQv2$GW%siPEKz9-h?3#;s zo;Rr*&nEy)Fqi)yzuN@Q&` z)~*(By|pVF`A9902I}05c~#N)PfM}&SCS1ta$@SItDTi-$zZ^eM078?@~8mZUH@c328rZVb-GJ)yglJDDob7v>xOCF+A`B5Rb^rfuF zT5%M@02artiwpGw$)_z;=DxM7nyeGLCzA;5l>(t`56DU*o;iVv-FAx&^PNeG)6~pe zJAp;(z}@z!?+xC&>8GuPzatOp2xfl9@G*iJHZN3FWcx*1N&jJ>faSg?+m&>-ePm8i zQScK`B9~~(BjWbzF*0O+{IC52fJ+hIRTVp<@obIhYRb=B2iSRl$AyJlBao^zLtoRG z&&4E6@ZQQ2za2@jgV$PzXudl--tjExG<-MDb~htGb^-E_zLY3t9RXQmd_NtLs#{w% zlxTzQSB`!coag6Wtar=;1iCB`AjPD~xNY;H@S3VPv9Hh89>tE~_6?g*Zq=ZFtN~M* zn|uq~&gl5S)z%(Yh?h9Lwn(?>-b#A|ul$?JSHahM%k%sXkJbuLM0-tNsmiNPj&}-V z%bLj6U)6e9$&gb{M%v}L2RcY%U7)X!{Z;Laj+3Ri2Vl(Oi9|ACQ)r06**&!;d~YU3 z@PNv`|3cABgKFula#6#QW0d1_rF*oS_w%bFuVAj(WpSlmrg5$51kShj6&YHoVN(Ni zSNS>3D)_ihV}le2_A#Rz1B2Hj$jDO^1PQL7-2v8T*q&?5>yCrO*?zlVyL8SmwAnyn z{uc76i&L9l39KSKZtH);i!u_lXubbezM~*c-NCCJORQ$Y7+VKP)#tEvfbwE?C<_0c zU8Mw{nj)OIBh?#VCeweN0>Z&Xx7hAR)d{L2bpQ-SzQD5+ zZ6Bl;abG}$RQtQ@9Gngliy%T02zn|4={$|7tz;!sa4N$OA1T*MEV2wXhI?1K*vgx9 z4JCgA!yySjyuJiwu^-18RCB~JxYYG=7@SNru4`DPKAwm2@NUT<&ndcFhlbpu7d6fELprZGfz;amF9K0>RzE+%zKTo!_g(yheeXgtQ$Q`J z{GSf_3!m;V{48s@&LA$$@w|t<45rB1ZH8L>bp6Goxq7UH2X+pFgZR{c5Z2kqx*0T%awvnwnL7 z*3rLQrcJ`K`^=>H;ql6t@+}LAgWb#^Ov{>L&H5SX{F`{goN6eSV6`%NJ<|S|34U#z z)*~yCH-Si~boB6hZ;QHzTc6>1)SWTi3qf2~ia1PT8>TBJ-p znDoZ{*?oR%`8yqNYB3!;n%}fZgV8Lk%)_wB%`w0;ZpSqIrr(ef{*=2p_VXwK6W?A2 z*8yj0XoN2O!qAp+Gn?P!^_?$V zx|;vBHXa3dJx1uDP13s?b|ke?-X?fU4;UJsZV({P)bJ?RKXL}cE8&Qrc2U&%#if8Fdiq~8l=c@ zJ{$`0Je;-r+okdhdQ=tLW6ciWAa<#WF5l%0sM<*l6wBy?Uc-`V$)m=WGN(u$cU1jn z)RjSN-21ps^PfhJ1oa2>wBj{7{Ld85@96ouaBB4qq6cHWOs01V*^#;6Ad!hjF4dX* zCJy#;JNp+s(e~we(YC{nkWQZr2%#gmxQ~Tf{gwEo5FukF?K?m5PHsLUsxTHPAd}`4 zSJb!)63#>e_eSWey+pfLI!p#_Z#r}6XA9QeRu3#^7kJTY5UR@}yf_ z{2+CuTY51iT48?9kwzM9?b5B9hjcJVcpQQ>;5oa5J3mfZ|LEmKsP^{eIbSeezExKz z_H0qW;4&C;qa<6YJR)4{a^72X{$pm2L?{4^&|9_1%+5wp!9|AE13Nc@AO4H6BvY2_y)s@JFdqY09&Uq)YU`=`o5&MY*} zO43|RgghSp5ZcsRs}`FrfR^#6#G-f&-=d;^KX{ie$2b@YVXwP!$D)?{qy4vVxB8>QONd z(kA(R9{(bAXkM=4GPM9@`LcPH*GH?K9bG!CNt1dF?20gW#E*$A20FgA%4r^ zY~!ze@&SV}!XT`e?}m8kZ$~{?{(5UO`L-}P?wxsu}!OYNywt3kd?#%V|U!{xx>(@XKP$WsYIN{dOzBZZD1TiFf3Mz$1OOVT~ zxvLE-kX=XcK+gP}ki+nD<<@E*~Dd#g~XfAZxk+&>(YmY?gnc z2lfN1bu9s#E%3vy8U$3kr%@^dZ&HS9k0^-5vKC^n#@1#9-*{&=f zKTCGR(Pw$n&r9|`nFdr;R+W^mD~LPu-XNm?AKK;12hAc3MIAsf;qZY8sAk{g{oTI7 zte10ky+{_@bGN#pDP**$#DR}>yZf1XfP$76zatQ9_@0JpalJFhX!O3Tas2P^WNxhO)fv6H-~4DB~#^!S&zqrhr`ScQ5`G2k(jWye93<9>kavE>JMci-uLTM9tJ zQB(F%GnW8y0(P0|{3PJP{&wNoQ^09E(_j{>(Uo>I?*0XBE1ITqwRO^i)Y`k^%wo&; zoArD>W;rqDR~6c>*mTK-+)UO5kg?RrwqSyz{K$6pJRt{5&R^c1Zzh%Nf@>NwI0SL) zz!}?p6s#!T_|r@fS)c5KSzY%q@c+9{0#Il(z6L%_*2Jpa&mG6q?E&9;ozu9NWcKRPKYAkIlJ~HU~^I| zlR$NB4r(zTM*feNJ8#)623U+BaM!)ss=fCbbeP}d=i-d@@4M01vjeZvD!>j>CJ6+3 zD9&4m4>O312uY%|g6lm0I+4hKRmS`6?pCNNuCErlFpiLPcosd?!Wg$Ikbu6UIA|?t zSMJzfswWTF|K2gk0_IEj7QFttEI;mf;T563LB8VltL>$w??Fjq-lRO9#s?sM= zc&;&&2A{eR#!LylZ2eq@Jueh`+?8LynGv=AQrm0I-pcY2`&No6705vzJ5}X zO8_XsAwCzfYSMLWsUdWFG*0X8aN)70G{GbeXgA z@AQUgxYGyNoq80%b?4<2^U*qhT>?QFia~tv6K&^6!h88{uZO6{HArXfO?u_GqGPZo zviv#s7$+LMi#0RBXaxUycyM4v3^1ZI*ro@GQ|}m(ZOi(C5gtwD{JXO6<OJL&YI>k}_eBS_5$ZonaSc8z^biL3a z1h$aQ#4xB8=ag~)D!O0&bv8!muLcH~$|Vb( z`hVTtyAT2L$Zh!|)jnX7%+18p76ktL=S(*?Q6y-Q2VIV<2JPFm;Vsk|O}GMbHekH> zCdLN1W>Umj8xKWV#?iSjy-nD8iyh|p2)>=D_vBM&yZMKQhig6cN2%+%OKifG!EqV% zLUesT0VMCoAzPlxwb zQI%+3=RE}?<;#~e2rc95J!V;dF6cvl@%iI2S`RtlOOqhl{`{py#OOU)_%49>)mN=rN9G-)VAN^- za{1L`f@5*oG(}hPFxwLxkqC!EBoBzrIRU#&pV?XY?ZwGD3GJzDfn$JLo!1LS!Y^iA z)cbKQ!F!nbJsn27`v=dqdHdhDKi1D@3(23~if#!A6C z@l~mB5YNnG=zbL^dCA}SAdYMf@mw!DIngKy)76{%@OJGU6s#!TGMMJezh4$7mWiNn=}$Z97eyG`4Nqc4OO(ZQHhO zJNwT29s3{Tcrr8h%(d1!7jm<*3up}ZLB7L$5~vFx;U5oL7J0J_1v*(Nr?KGbV-F8R zTK9NF7ZUs~T5l; zb9dzn4i|R~vkeF58wk{EvdeORTanTO`#u^MM*oHE%c|@ZfstdpE3++Z8(3<(Ot7dU z&Ytet!Z@3g-8Y@s41aqmlt$$)O@I>E40K-~&8u0>wfLpHBk(?IWAS;mu4mf=RvlN> zq9>e#B*W07{DX8Syrna$XCT{pL;&o9{B`)buTi+t81$NDUW?j3xPu+67TtAHu)MpE zTRo9=>%GSjQokZK36SJ;w5#Ej6s(KfG-GiOiX2+@J=8Iq;L)`A9G5Fmu$I`g;)Ih# zk69e&tHn4NU9hB{+}uswn$P;u{aI$naHr?7L_{mF9VuxGJJOmka5*Z6MmHjz{k*x6 zbn5m;f-mt%hA+P7Y{QGQtInpHJ0-P`JAf*OpRYA9$+}b>yD~N!xE(NHj*^4}Uk81F zQ^sp_;}myCH%f-|d0dQtMo2l7BHbf_Nc2l8uLq}2voR11!0I_$tP(=itzbBaogfHY~n>C_nS1~!v*p!=SN6bV%locwfz<=%* z>h(=XaJ=0RiiG1C$giT-&PKZg~7eluI(fWYG_AjVm1^b6J8^W?NFZSqE%3)$9KGM2DvR|()&L6`-6U}Xku>J0-XZKtQSyT+b#I#`s%p@2IgPIXB zZkw|L;`#nNFNnNBpaQG^+B4nJ9fbunFyc3A-7X{|=pHefyb8qA`7=6Ptf$NJ-2Iku zPj_54vA>-X`vr`X@6Pl8wLh0+xP}%NEbcL9^u$jB5ZxKzyqG`y1Zz%W6A@_IJyW=S z2Y{huyXZ8^{2#za=gILf>QH_&D9YnE4UeD}1>rczF>>0{PXiG!5)jb~{&pXb%aJ#E z8OpSV5 ztTbzTzNuE{#**_P8%m0QaDW7RLBjpubiRG(K)U&o<$xhwEbg~ZGlBo6v{apNUJ3$% zR|HJiQduyY2s0Sl`E0hOHAkvGj@N)ZMk8+{=~nfcZZ5Jj$0sX8pc4|z^EimESG@F3 z?US+D>Y;`SnmmeKIKO6v-oNaJV9>FywG=34res3GHFtjellr@}l|TRf1xCOx-W^W) zSvDV$aRLGHrvzG;z@UBRU-zRneao*P!mFP(*{*;v0y85Y^cAyPfY@d?655Gzw+BB& zcTAkD(QbGbKF(r)5VuTf)Qldo%}|$t=XySJP`RaRc#K53wRac`BQZJk0bhq7>Z$ejQy# zzrxsMm2Wy*uJ)F1B+Ta?`M#QO&KNS^QNkViV`*#uVpA164JggZ!jok8TofuKjJi!2 zSduSz{8O5I`*)G$Y5H;-X>o0wiSU$x#LXRH-?MMZDa>;J$D@In5VkK5c93>P^{cI) zdKJ~vAja{JG>l&^O-x-jDU8Y?EO{n>p&wcuA4bcw68RQI$PwWlxV9k@|7I#qM|-GE zi42#ljAy%-%}C35kr4(xcY9vRUNfCM(BN)x{1OF%F~Gth7=@`s=mvMz84tr=im^H* z(>%nooJQ+-Cy=ji5A=NNmgV#`zI7=os&z?|ZlE0@|ciT$}f70;u zBx}306q9$g>sXBpx9e%42;Y_)KaAMEC?e#F{!2g;;cS7Bo)8w=7yi6sV}5$yg2i7W zHqf3vuUHK2S4>KF8V!em?$DFoHN=8+R%0LJRku%kmFho(Q1uzGV!pwCTZW?`laa!x z(0*p~@xnFa6L_+j7`;(;S!$CoMgy8H=nWqB*-U$n1AE`=|1M|zgUExT*C7t!`pbpU z7*2V8L6+`IkFqi2#Egk$mV3}YfXj(bNpG?eM592kSWccIfdox7j5Ut{IrEfd-qC5e zY?Bvt9o=Yt%o`)$mz{!5XJ}b2k?^Yfx(-Afvp6|3t+#T)cv;;emy__2aI(Im7Xz-+qa@nnOsXG!f9-p<2weuW=Z?sUT&xFvZuwTs%){RsTnZfZ5{WTj>mVE-Y7E? zMp;WYZ{d)9!C7!>-)C94q(Ozio@SBY|HYdyCRgso`(~Wu{?YjN{vj-4^bO-AKd%R+^cj6yfW9N-__p+Q@lZUbl8USMk>J-Rf zOMmUZ)~t^4{kT(A5Jv^$zV5|^Jz~y-eFP!*Lm*RosuYRV7~n-!(e8$~&8}dj3D4X) z$$8h@MfG3tMI15tojGs%tS`GtQGP+9H2|;At-n1=yA?=riEAy@NQg5?Q2*XtH~lLV)AdAF7Q)tT0YIN63g;(!Bal=X(AHw){2l)z z*j95H4F#>(;CId`dIe=+Sd?^>n)wlgX)%(N3O$iV^`0PtWfs>3i!@wAtFZlxyPs?}B4m9XDfq)y;WmUj3RisO)_WH`l1d}|V;hwS zfda@0K=>39bXwT`zDA|SFB8gsL&xBOkdJbazpZR9KYD}DQOhrl53rZQn2wcQM&>66 zPZ~c~LP(vJd`PFg?KK(EO!)Y1-Mwuw^ zJF;lBXZuo>IL_SOa8Z3tO@a5!1lVeqQRD1bugXeR@-WifgS77<;>E&OO~u3^+qTzf zXf8^=NP!ad%JVvddfW=&!mzAS-VTIsg-0y|djZ4?Y`p>aYIJ>J3!_oRja8#nyDU9T zJYt;qo+?7vtYQ<(@WS`O?WTn*Am#>9wgPP+O@YnG7wMK|Vo=CIwxI@S1G^P7&3pBc z!CwDe0bfN4VEk-752j{+x^(tkFq6LD5@;WrPd+q8*?$@|1TZKiqXBzF<{#*XakLL0L+V4kT-a5oef3#|;sseY^sfSvT2$ z^pHa#94|(W0CkZuY|XAzE#ku1qrc?MS++wqdTbUp~(2%%d5!F?~w+f z2Mg!PDo~CSZH)uF!nuE=L*pe_TU^a#;%@dKtTxR_*V%a^gQ7YS7(v0=$s`{+b^~i- z{bcp$K{ei0(0aoL>a&;dMa_iKl`NZ@%9)4y*jxN5NiUvLiwa&dmIRe5v=*y9`*Y<5Lkjwr?=-F@PHN2LAD|I<*q6b*Ohjt z3G%t?OZ7ivt{*5LVM{h(&C}X3!RYQuh&Lz?4!#W%c18p%y=#=wqHz!qrDO}|DUsET zRcCiGVRI!6MbdQ31|qgK`Kiub$Z|bFRl{>pC4AeRbcmBQsbxryH(-r=wd5f5WycBf zi4Af>2?c?{W%um&OvlMquIxVS^`hY$%EP6mTQv%RJ}~DQ^7m7G^1&yMG_dz&L$yj` z48BoDuwhi`zC(82hIUbLJOX)XUyZxM^9Z_y&^2i7XGemJV#ma+(JpEkB zwPQb|v9|C~6$zrUZb@olyfGVG#+`{bt_GR?b++Lp9k@H9aS_ttemR~SZ)Q}K&Wgs7 z(fA?kcHwtWD^*A2wr{ue*$Iu7BepvN~Q&Kr*n zvfsV;*pP!BxN4gtE(Mv*LRa|Fpq_{QFTFQJed6I)s8G41cm`G zbKioXJe#mwSSKr6Qlk)f{{ibd%DSL4*{tpy{j30&U}VqMQ;tJRZDvZd;B$SotXezn zdPh>piLC-FtQc{faJiR!k*c3=oyVg?s5$nDuQ`*zCbys?dpqkJ2`4ne?mXBibpW!Y zB#}`$B847%hU1WpvrP5U5Tv_KS3v2o1_l*(3W`gdOZu8p3m7P3_JL z^aYk#nfhQoqNEPmBI@FKE^^xt{Qu6RoN$na4r9OG094TV9pxY6nl?DNum-!jV3efXqE06CQF8&iqze@q5PYt$uxEO=K6e^*79Z@Y5L^B10JAY$0 zgVc0q)dv@$O~e>|l3vFY_Hvr!zB5k0(cvb`VF5%OdbqQh=?L`m4Y(JdE6`g7Q; zX0y+1EzC(ltz>N-^%n;Z^x=z8@7b(?W25i|$ZMrmnvf$q(s!j;89wpLfjk&gqRU8I zzp$X(`>glxVuM|K6BFCGpYxzEaCRob9h)-v!Q^ZiI?Ij|ksP-*JEyc{twkdt`kM!q z?KbLGX|oKG8~=#C@W)((Y8%h<1wmd&YkEKFFk2$tcO0b^=<7Hv;^R-YxmE!@6F*}& zX0v1GcBHw_(-dW`+^fUL5G{<>5&E7+fUFP08{FaY(0#Ka5+h-Pr2qwF4B-xpH8e7W z7)>nkj$kMVkO%Z73l5bh>W*OQ!4+v2B_5u~X~YN%Z?qK@>apDk$zRs35xg>CLchpU zDi5Y|Jlj7^!Ik>(6`(H5dzQLR1hX;`-gtC-0E=!jZ3OZA50ySoOz`&l zz&*3xt$=QrZRk8TngLu7BsA-?O=k`RW~Jqj^BOd4{o0-|G^XAjVeE0eIa+SJZF$4T zDgzWfeNQpuC`Gaa=<2M~RU{6Wmg^CyYU_^3t&}fS!ZMWQMXNG=Tq~XyXxagcT@B#l zp{ec3*?iH}(QuD9Eh&UQv23uk@dX@=!i~pwx5bz5;|PGL`D^hLOK(2z;d*L7fQKw&!?V5)@(h zDF+bonJCU4vq-Dmhp4>4l2qbRv2gfsIL(JRl>b=VV1>@Pi7X29U}(60u#}e+ z_?Xwg4Mfyp`w}m`65}}8Hi3^W;E*3|Aduf^gd08e*eEmXGOyyvU{1vZ)yQJk^~_sv zdOjK{K-lE+c2=FTH^llEC0xH7TbO=fxIh;%iA7@m4CT?ERVSYV+eu-E5PiE(U&= zb!*4V@*806m~SY#C{E-J70eY;1>+}f$gQ8eE$cD)4Jsq>uQ**?u=Zi{?@kuZpw*b& z14pqu=rBU&ZWur3v+nFT*lyzVNQTOGF?l@pkJABJI!{CR2~Q4$cG>$uhmgNmy*)|3 z&IiT0R(!1^=qvg&cbqthe8p=7Kk+wpk=4v`gPwOtulilKt9y_i8J7YN%6=@*{X($f zxo*+fH#&~7IDB7dn6k!a!>AgL8Fc{PQj(2I+nD-kz1eMmNn#6Q5W;eBnbAneC6;`@ zh`OtX*+h5k7TG+w@oiS5-Wncd9NDH^1!gm~Ya`@a4y?4ir5q|e7^LVX4Z8oG z!n}kG?jXIgq2{V4s+B;4bB`@97nSKzh?MRG-X&bF{x;e)E#@qVv=RY`2(BbMP1Lr^ ziaz9b(9yg<{!*=F*{4lA=o9#Sdfl|hAzkTw=U;7|&tY9|t8-IU`nKa&4ft zP)4$+WE*zet=Fy33?;!|cYI|Vxt%P+HgC}bvPl-dpnce_I+u7 ze?B=Xlpp^f9FkgK?KHx@%ocuzzZ zCh$!>IC>`h!JBk1kBX~#y(m5*kN%J9Dc|57J;X{~U>~ZhOOGVdfATp|_a3$f#v%a$ zg7ofWL2je8xR_A64q%Q%eCm`Iq)vdW&w7(N3Yo~$T}@;tR%^2w9`cKtl0Jkj;qP9! zSa@|B`!cfiDu=dL8s7m`8cyXGoC8i-4o7X}?K zGLt=_y$)&BlPtup9uJLLV;QEz9N0kcKe*A~hBf`Z8*wXlt>WG z3HDmPdm(ttU`Pk`bu-CNJ2_5Rp`OUw5sDM>R{wC&5WnjfNW$^`KkQSxt~eusQBGI*;yD@9?@sRiP3e(D)(KY1)z{kxB;NY<7E4n zsQ(D}i`@)e1vm~OsjYQK3iQ{pdwV2dQ8%l$O?uDcXn#Mht7CcgI>U=CrP>`ik zjKgCiY!+Y+l&RFzc4z^jsQsG5!W6Kw={fgnOYNJVeXiJyCkZUzjaGAfz@evsyr0a! zwtFm6sb-ep3UNvHT}~4!rk>8|@#V>AU*&vtd1t|mi%IyxHhw@F?$`h!R81FJAer}GitK4Lao5fpA zmR-D#^68CRfUe8D&-W8;vxjHeO8k$l#V+FQ@Z*V05~7s=YBOMsB8(!iD5+;?KU&BSwLwQ*?F z{2?U7&cGd=Rv*mEmV@)zu)~^vNjY_7@`h$CB%+d7WkXn0L9q;{pp}Vxzys} zeC>ACZsI54HaY@i#~eUUodNV#84>98TwN-Ddstk+MZVg|kgYZ2N6B?wsCxb?V=Ec` zqiJWpBy=xuRGpPwu0K0mhjid-Qxz4vB-}?Vr|!7oyO#9h+LdjS5`q}z^_hI;5F3Sm zn9?8lpd2Opxkm*~*N=n?Mm--V`s8QCZWgral$nQZ7?sDCJrQ@EFmQvx4S6migbio1 zh$l7rd21bNgP1=^#{2|m=}Z*gtIvBmmF0Jbl{l1*wlP7=E+BBDPNJyu&E~wf%jsDU z|9Hk(O_s0!`6Ur{V|!Q_w>&x6zEx1(P3tjfRyc^^0x?P;*)kzE13|t z@|7sJ^tUa{K};^veQ3VNMA_$H;>fJmS9czZZ^Fw>2N|Uj;?W$Z==7S>pS&g@34g2x zw4*Vu0X>nmhE2=aIU^AF=nw2}_vUXn{u)FB24fDiiaBE`c*iNJMqy$yN+0<{h3a|-FxJ{1xrQgnjcgI8X zcu94j-uCx{Q^bSqPbHxdh9uVxij=L)?+Sz;_`yXvq|=AYH0U*)>lIF1R;>kL9jL~$ zt*B0JH}|(pt!sdW+Oe{%KeQ@p0)0;$#|x4ZSe?slKdl9uMY6w}(+ziD8f z^pOw+6%<3$X|ug5@b8!OlOW~}BI?EcQ}doAoaVx(ls5lzRjIQbBk|Qt`QN{6ZR?CC zp<$CG60md9VQMFB880QsKv*{AZEIKMD0r@*3?L5=+zwSgE2^P(<>{m-&QjOiZ!8(h7m>Zt_ru=d3%xR=?42861h;+JCNqfup0wg zl*+|?H+bwuOs<}(T-(jDaaT)|uI=p9FC4!ZAR(;GS}m%}2sNWkPehps zoMhbN>_izjm<9wJBhgz&$6c;r-cG(yuy%h>DO9%p&5gelE zvhkxIt{ZJO*pwR>8`+V`ASdi)xywh24B*hWU3~-0WoN8cS@X4{C=CV!b`PVB%}ls) zYBRj6LDrNu*okY@BFoJAdPt!%!mZg#X5!CYj!Q>|tU#!ZLK&oq8g+FYW<&tJy#*1@ zum-A+R92;nOc#!^T}?$#fFctM&z|CcC`I3v*T)TDHJAwl!`>b?v^HKoqw_Z_@aCtt z-Q8yZ)jA)K#}x_H_%gT>-}8~s;c)}{_}CgZ;bXBR;$PKMH;|Y+0_YP3eh8f68=5zB zmL6$Oj-+p-0R!dP1GVJun#ZY<^_`@?a^fxN4c7s9qyFPj- z#7Z75y6z$OLAP|y=G5uDW#ZJqjY~!sU#`$aCxt3vp6RgTE1^X94by# z8t=5K0Hp~k$T4OD1R@a1$)e05oW7J~fB$yHDS9{7_{p+ml7kaq{fswbG}E&-`hsic zc&J?EpvEcwovoL6Bxy8;D{lVWvG386?*4BqKV(8uU?vYE6chr-yk?AE(|u}OTRaQ+@pqM{;y8P z?ZK<;(=ZhDHAxOh4jj&kc-13vcqKzOSv|b( z#B3Yi5x|$qtNSH`d-Ox&w;mW0+-)~Fz|{BMcQ42|O^XJs)f1T%*T?OMc>%?YfCA>S z!M}r6Acp$bwsIX>1N#|e*{l#-TLd(<*o|h>7!h{BMVAL|q4>6oz5NFsQ0}5v95R~C z4+4+tIUkwD>|KnZ)y%u7WQIT|bq>)q1dHkr>?hV{9aZjrI!MNL1wBN+0}(q=TtmEm z8jnG4FmbV7+~FKUMKx<#xI;Gck$$^om_wsdEiA_{_NE)D0D>_8A8^H^7t7McMP^LT z!-GfTqXye}WWdh&WIj{=OGj8bDDTH>@;B1$?(Gezz& zRHe|GNSocVPY~au*UMJH7<>w7@@{~NSXz8>oPOgfG8@irKcdV21)WyvmCZ9ZOKPD^ zl4n{PFPtfNYtl3xqakK*Wq6ZO>}UuiBHwYu+@m5WM3L1 zVBo+EU$D@Vd*})kwZ?Wq%z(0n6|P zF1N5<<{?s#WY5^Z#%-qgQugVT#6BlTF%m``qvfti2C>thGz9BiJ0}K``-nzN@&=P1 zSAizc)}2AH!}{xq6x#-$KY5Y7`^Z(%w;D^mrqirR7Z-nK!bp4hbK=2 zK3@h9@q(rwTLsPS5F61-m7wo1{5j`2Ggj?z#k=6>5!P4Ja-^Q)#F4M#S1*CiPfZ$F(ydE8cD7OFlWC6z ze9m&KvBrboj%On8+j~JXm0SfWe_Gi0G8$m4m%hLr&{m+N5+Er;G>!?SZYx2DQIUD> zkIeqfs(H>|cua;4;o<>08xru+NYMoN2OGR+L8GBpeQbzOUZ8)1kOp!I$aYublVw}$ z8$|%7@lf99L*h0^Wq>?UWVO-${6}8CQ$Q7m4Z*F1=MsS7xtkp{e5V1NwpWmCfcN|sFrfVc>Y8D=>>STmm$s>| zI4x&&6NDmRLaMHJMY6~Hl;YCgaBN(TcgDDi9P)YN^CCI z`dHk~m3Q@43*iDZQj|)|GLYAkayJ?>GIgjKBbXCus=iBoJNtOoq4?MSPMCD_uBpx$ zRLB9c2-bE|fdZms7yD#5@ov$Dj_9_XSQSdNIoIPUrX`9eMKo)Zwb(aQb>o|x6)wNo ztjh_QtE6)@q9E{up7IGQ5>PnP{A3m1RvCo#1`a}m zSe~rS0(>J$IhiP^nahTdAXh0(V{^8`M_PdH0n5fMDAh`BpEZzmd zfI;xz(cNU_koTNUjW_=LWl&0M57RjH!PxPJE3TXg=upT5adO>F^!R74G>+@47xk!? z=OQigmkKlsmDpN8HQBaeH$oo4S|w~Zfcq%ZJwB;Jdr?@^gq{S}h4{gGleg=+inUk2 z2<|tXdFHiQI%@=Um|vEA!+)QR?)=~}rX`vQJ>p{=kiF;-xvhF(Fow50^kShGWJkVx zZXvPBC0%$&(!-F}kP%W|Vd1`~vn; ztNCGir=OYQkSXRXEgn7Fy=xDYrVtDbSqYVG1F`guGhz5e8cq*1=I-M<7DdV~9k+{t zA~D$D-^s}=`z<)eK)}=owqvY|h>b_m=1afo3&nmGZy+Lx8(1&;?bZ-|nU8Zuhgv?< zeE~lX8{|`cp7apcOL%q^>HIFICkO!k`&k z@OlwpBZ)hmgOoVKP0h_IpSAB6F_313ak88t%}&6_5q?GTU&lKq&t)h0GCd55rkHud zvf&l*rpi|=Rhk0wxhzL>R5q*T&a}uQe$A>*(9|f2=LWvrV$z+$Fx4HOJKr_5}ette@`6qd6 z*%U5sB|lMfS)7QgYv{M?Bw;PJTs&%qK$Q&&`AFK~;GWL|{H{Q2BOy7CIQ$^8)V#0> z)DwrAhmX1;DdRd@@CNKA#zbba5vpCG&gi9PTFok12wc;qJmO+sDdOqC(A1bye|S`t zEfw^uoSMAs+;BWRiP~S?X#ggiW9ink0cpO|z;e5np!)3U7D2Y<`J*|08DoD^OAzD^&jO)iBU)CxQTuO!s9z`v1SFB0Etl4JM>^EHiGb5wB|Z2;6vv7YZ&2)~sW8hgj2G6C0M z@T+XU2}$JON?_nU^mPWS9KiMT1Szd%x zu;0ncd^9P`{Gi43i8Py@H-qt~j38JAfLa0r>bC^6FGPv=ONDLEXF`?LSUv*lY2SF)5%!xElecQ$ zc>>d`h8;>na^%8+^8-P{Q6pW_hE{#QAD`#@$I=S|dwHnco0AS)r4+L8Z+ZW|brGcB z-=r#gW6e@%P0JQpQi>S%0TPL>^k|(~rKp`A%G(N@V;>Zi@()&i(4XI8>RUSLPCvMf zJRFUTh(C2o#DF6I2V&?Qr3ZZ7`m}QPbdB~guph&{oE3*?Hnp~ zUR9GK!fJMda*a4KvPFqG!SV87Giz95aZQT;av55+b)PEcWNE6!Ti`V_9Usi5M_*Ke zH5KdtE0RTdmH&ubGM2=Q5QqiCdPEslUFKMGnMaVLsPhUfJ}>%)`}nozVGo-GTfQ^R#C`FbmremTJwpasSPRq?6T zJxt1TZEL}x4r=Yzh(P?_#`bY52yU)yZkaiuyUF>N+ZnnQbnYO~i#cRe%ZH*u`>uWCB*4vU*81Yzr8Cp6{8%({nI4A6M%A`pJ&g~6hfh;i z{A-}7AERkctyG3oRt}{gUB|s+htuM4LPjhWS?jdzAAn7>RLMk+Q#MnA@q6)0iigls z17HDP$y*ssW;%Opssib5Y2vwG>=|EJR78h0ol}_;QB+Nf7wg9*zk*WvDJx&1g0F0u zU(r}iSMt=?_T#ZyIt|ABjwiSpAxAZ8n>~ozI(~^#b`9|rg?wJ3gZGhd-u zEj|U}T*@VV6x;CFuY?gg^d-k<|8XTZS({!5Ins>+m5UM8k&=q&C_I}XgKbJ2pC2SR z3OBAnUlRL!wUGw#z>NKBPABE~2beDmxAMO!TG4VFpbBviXp1-4QW(Sys1tc3{KkD` zKrPTiOQj&h(}^PaJ=t`v9_8m}fuvu_er0DWR!+r7Vy7Hgl0OE(^-ORr8bLrqMbBGKu@z3!I*WgA*=;gc0DqZD}m)a2vDu@e0y|{ zY&KeKIUG;PsuJubrwUieXZeQLs2}ezSD)-18X$RGWYd@q?!;cmIqs$tOjv0D`{@#g zaa)Qt7!7Cb7~<7X<0&v)Q+BN7eJ|lLkT3*EbR*p7BJvr}c__Z0DSCtApc3J!C+ZHx z!9UXZYWYaq7r)VMj=He&67lQLjVT0NhaD7^_UbvJm3fEjjA5QwE2{~MSmJ+LL{2iN zMk*@>v9%H;q!98Km&C=P&0!DF2zU5=^~sGGyFA`}J72+ELmb=k7v!7P9!IW`O7$KQ|4Zxo6TT_f*W!<;39%}d4q6RJ9X&I&{}d~0KZ zenjM=h!7uVIMma4FYtxOtzHJMrvSDD{3xJq*&ev4)>?@(A)g8#?^P~=;jr>}_h4Dr zTRt`gm>3&JueWiPnO2Ta4)OJd%*krH?72UcIP}QQF!fN;c1rc7UzdncCFpdVDr5_) zSDNc3moO5Y)3u~hg%Ga_A1x*cy2OY5nirTAV>@Be&WbbkOcqk_gy)M*R58nZJx04e z6dA2r-x9~cB+um7@^^xFp#2(C+^?57usX+h-w>wX(#3<4E?H7=;?#cDZ}CgE;bl*- z={@Pa`lVp09^z^w%H=!~s3Lp$IxAM2&j}m!fIEJoVJ+9i%>bj13VLk46klP{;Cw4o zqM59yQbUFDY&V+b<9U#eZJ_8${HGo1N1j^y@QAotKMa3%AN^?7zu#L_`UFzat5DsY zf5_o~3~qM%Z7C9oky<^bfukm1LX){irt@#DyBy%IS4ZWFMb$eY?~Q%V+Zlo6)r;-n zWHzf$pu@U-VJy_`1T)eBKs=--n4HCxnPcCd$h6Y3Y*=%=w*j&m^*})Bo1(N-{>u*j z2L<(?iuhd1XVv@f>|&Z8msn3{J=FSVTo%7@R$*`how#zi?N`%ZZMC5dP$L(bwWvme z6NRxC;(BTltu*KIr3tx)`Dls@3)Az>cF~@uBy`v?eSB72bv<>wYi3$D(di;y%AhUp zNXotjLw97I{U~4SE&%_a_t2l4QL!*t#D4E!(`NU?-!E>0B#sDr&*#1{EyeLcDM0Ss{uLL+75T3F^5|&6j`pDev4)cq5&f_Y28AqKA>b}^eKZ)g&=!#T-oVbV zhB_l$r2|Scz-~|rh?v!9^(#b}D}X&evGDAq?sN7I7RDZHdWKgP2UO$@c|5Ec#n}Nm zUKPF$JbScdqu11%4UcKa6Rpd;);0E@sF%fl=twp|^jGirzPDBU%i@(jR zI&_SN{xohtnG!Bg_cOndM=O>w{mUUI3!m^No{!k<9{JEx<>xEai!K%{JQx%xu1`!) z$!=}iNuFf$((u{c1oPrSqt>ydpXZuE{{StcbNadOO(lYk_d?PZOL{lHlT>P5Lg?0k z*1x}yQuBjdT=$iQ^U{wqL`%l$l1-;A9(x2Q8F4+GJBndNsrKER*ZpaROMO_*MK+9I z%f>&Wc*)!@)t}W*VBInf0J{qk7M%bgUPp6uGR%31g{v@hB|0IvW+hy;M^(? zHmy@s6PX(=ztQPb%n+|-R|;ii*GuQ=wAvy;O1qSBt*KD+!d{#kzLOshdCa8lb~qj{ z6}LYQDVH4-d10t1KhFJPd-BGpn%h8T`8oqy{7~BCx^jU!Euze3K6h!8p6l5TkbJ?+ zWM&;4{%FN-4MwyK4MWbDhy9e!bzJs`cyFfv;BWqyL@OgBQw@}!3WZALF4_26$`c~v#uZojllh^%_t z&C@&qIdOeIcvfp^oM)_Up!H{BB?94h)MO8U5+ju3d#f$?(y=i6PQAONs0>c$p2a*) z0DSK`z`ld*oM5Ock0fv#rfZe^s)`-C_-}&^T=vQ}*y?fW%$IiGa(ixxB_G<9RIdW6 z{B_I5+ju+VG#t92R3cp+7q+=Kh!Y?&3%M3m zUE|e3KkoZqECXeXwB!M8o{Xb1k1Ak*F#^4gf?DDR!i8Lx(2Wa**znDBnQ$-k~=GJTig}5My?8>HBMr zU(&g$2Z3w!-4&dgS-HLqXsfJua-UiP>?&sn7I8AHN8cbhTR$J`wlgwpOTYM^DlHGk zZO?o4cHK5!@T}_atKg1k8&-*cUDh_&#iO(4C0OAhpdUtCAH5UFHU562Rklx49=FW% zK|zc55x-pEl<%^x2iDRZRgN!S|MC3q17$FZUj8S}iK#rKf?`fIULj0YxV$GjR52Wd zT)Y>Om@b|4tH5@|3St!mnZVU;oR7J3Q#qIp$m(h{lr$IrYolX9-zsPZ{!oQa()V40M?2syX*$daJGDFiCM_4X z-$Bm9+qUq0dFAnf4#Qjv3P%GsN?FYpi(%T@IoJlO*36?L9VB(8wmwU z&{+>ER=a2XZ;SnJx(Dgo65<%2pSM7#sJ93Av*OMwvizO!aj?Lx;KTPZR5VcKj4mIV z7a%N82e4;bomDRM`bUB0n^}re18e@qBLpU7&!-Ws;W#;7lPItIB_sSL)6#MXC>VhD z-eEz65D2^R;hE~0A2jh?N4Qq4DJaV8$1e_%Rk=NYkfN_ZNmYF)?;uD(p-yEI#BLvk z+bi_drXm)h(b29GJCchCl8~Q2=W1jMh#iu#u&}fn&H^B5)YrQ;y(z@!q1z{2 z2hnqIP31-Hhp9ij%5)37w^izH+mm#^RFmoVJx(jzZEx_$tDwdIc{WPZEqVPlZ`=yZ zNT=DkHVuEhA-jz9~5gMx+Zz34A1=#(sN-e$#=szg?*r9h%h8yOF8Ro0=Yp>&__Hi*>R&=Kb)GT^H>ATRRwF6?Xp5LBuz3Zn z2L({zz!-bVcmVj5Q@3X~crf^j1YQdr!2dSw@vgt5*U@uot@-gePxk3%2WpZzfGm8o zGtb-Y%$b`q9R>t0P9?j6d#b^n#;=ui`nGrVkNCReU`4hD+>{Fqeldg-(h;TdzoleO zND-_s`r}-r3hVu@<)&4;V_?;p`55!HghY zgIi*?M~i~%1ifmhcX4=}i!AzvPv|GOg3ZoRThUs$1KJ$0=V3FQzCp$}5=~j($oDGA zh;UfZK#K$am43V)@a^@JuQI% zHEbh1%(Qoe0?e4}vIhjq0%zI$7WNSPas6BA+ZctuXxVqGC z((n9pXfZss$P%8;Gy*Wh21i>#`1L&i^2PH$@b{z>&?kL&f46cg-jqOBkTk7R4_c8; zUW{PYq~l>CO+Lr=H@D+wt|;t$Rllf}i+!N|h+Z*fGCUYEQWlDoFKiw(Cm;eN=Zp#? zscy+jd?Efe1QD%w+AG0X`~@MH=lL!aKdHMSl5hMv$6|T zef~P_<}w>7A3{DXWkPBTSjh?$B5}}u{4fw%t=rIhXpy02D1O^Wx+3>q0&w*C7fsB68?yJ!M%aI$ zQvOavWSpk+8cbq?0L*7Ho3{3O={W# zu}+=B@`Qv0M|v)V3RA1nMFh5TP2%!$v@=i1E&big4BLT`^uqXf!FFl9&?t~~>~^m2 z_Sn>o+ldmz5=aJ^p^Xgu_+g$*vTxLum@}bK&oB-ILiPCp?qZyayYSB_^S@F7!$7%} z4hPV5XDK6-&X&{dQ6>i;#_IlmG@VscoK3TZad&ry;O?#iAMO%7xVr~;cXxM(;2H>S z0fGki;O-XAn}4lyIajlKrn|bjYS**(^}qN0q=TIF={Heq*Bm73a*|J{;^iDrDvbP) zGi8y$gyfPXhPjD_NYg?I|JB(XGWssWKjyPYZ6ESd*hJX?%0HTo>P`~YI8ny>s_!P> zQRu?<-V(23Af^)REB;sZyFeMbJPVz#^Ff##)tvY`$kbuA^e5H?{k!-@l4tX{wrw*t zH@d?C3AOM@%nQuuDV;Nan6cMRmKLcy67fCR8gxaI^j{T^e(s~?uj#Nj78v=?+kM{m zHa~*DJN3P8Ty~kYz7`*IIBp94sPC;lU8>9JogM?uD$DN{GXVJXu;=V^QQ~bYI@)Ci zniYA!Q}>B5RLZb=+;#~*u27>zjs}c+hiEwEk}EN4fHKH_UO5UF#o?J(#d zAn!7i{G1?F|FF>Alb_UBAB%NDGr$IQYF+^H8`h^PG&7R)t=Wp$0dzN-BXFi#*SwP8 z%Dn2cs#+ZMq=(T6lm~;mYYZN9^1tW^B`?@cU+G}n?6j5WphE{s83HaGLofoxk>hGA ztcY0_&`RRwv8SejO5tzE-Cop1b(lH-@UC^=v})Uy^u4ZBD}mcq8>K}4R!e$o zxVPhd;H(%sJu1yKI~6gqGVB~tk+VUGfTM6L_?(m#@t0-r&GblykaurgWT0;bi_rv~ zK5bBuoa(O+5l=ukmsfeh%cf*PEf?NHn+N%ZQk?cooB&MymcB0W@xiv6>h7~8`lh2g zAG_hJSk7q`@|D9Y^f}adl7H^;I%^dMOFH=b>#HpOjy=~>dO9#s|1e!1UKj4r^9n^) z|DtQtX?^#qL3dE3v3i&-Eo*Xbdu)W2qJ%|?)OSoH zy(!99Z{4v%)Zo2a-@_%D0xBqwZOnm+d4wNcZ=+O)UQwOC!U-o@`-;0G} zT7iT@@A`c`NU?O&L+*FSwu zt9#JpTtlf(`V#(mk}L=R>ul6pl95?{(L%q;_&6pdno925(}wyuPb#v%bE2pJv4AkG zZ0HLLe=%R5lc(qv^b+U^Nfj%Kbl=QNGKt@gU?~M;9o!F-UnvbuIB zT&CDZ#{gGu0dx1i62vm-oudW;`=u#LCwD0LDkK0G$j-4N&>G9Ojqf>!el&0VuA;zS z_aF3Z#d9z2+`70i8F`QIXX-xjAQW&dP>KS^TldxS7Rsq)(p@P>B)NRyja<=(22=lAxw%hi5e`>qxBnw`|r zWOX{#tqYae|5{dmIAXT+W$dleoN7pcf@YNBokN9Ap)=Hx#Y@_TuE#F>Ssk~OGDLq) z8P!gAe4-xFy9?y6q|b51T-D~9bnFMz6)&*|;XWrmMK8Z*uKg(jK$`>FLpP+7A}iBJ z&aYos^*d(UK+s<0*bb3e)hA|vuPuHp=?!2a{JT55+F4WkPv!3ke?V&aaL#>tY159+ z*xwegr>m!T5RA;y*Z_w@0Q!e~BX<`tc{x#)CS5$v_byW6Jn%D$_-b~}iHldX^~>YR zi=Ol=!IFA?KsDHd_*a{OJpIAXeQHCXTr{Yh7j1*>w8exPD8j0sm)@{WY<(LD@fvVf zcd%O-pyC)?%$tU+IXp(|M!|CMBd*eozcC0`hWCsn;CdMUG~t}S9JFzjq~4yYE^N97 z>s#6b@COgB2GQFQyLJX6*8W>>v7WbUh$L56y*)xXP9Ig{r~*LgGg4X`C2HP z>?Y5VZyW3|0`mjW|Faf2Qd?;FrJUYXa&c77o9_MhHd$0VGl+>8AUoBB5v8AXoHb3J z5hBcfWng4HC%=ufF3B{BZr!?~NRIc$Zg3X58KW$dP9S@T_i2TSCt_1s48NB`H+K_aL)+q!EPENQgBU3=lvF za}BL3bqqh3-i3gErz>wM-@qTH@X6#0K8ZKp~Fq!$_;nXD|gj8JfAobr?{Qu2`lujBlHJ$&VXWSPoc^%*OKjsN(@rQnX zXs~8vno~Ae*-*}dB23#B&%$D?kSk=AzuL>dV@}9L;IH6H{tll^aF64qsQXPyKqg@c zTj?^wKssewbkDNO|3Lb~Ksqrg5LKv{45CCP#mmLk3M2Hq}+evJB} zFxtnalRE2rd_i`-!BW>2+cH%bX87-yFzH^1>nLw5u2{p|7P;%&(ZkAuL}B}7tEBVK z8-nHC<$3*B z%ssCaLAz&?2hOK&vu+#v*IgeY>x&OW$p-#%2Rfr&4rR%dDG4tBL7c<*TM5ec7kvyV zRXUwT#Qe%nHT9xOvphmNDw%hxlwL@YtJ_rBimVnb59*U01SQfyg}cdP+oz<13x_ZR zIikr0^cYI0`gY0oPgRns2K*LX5L`%nPM6yr>);R${ZK?Q`BLfr@oeV)!z0+L9Ed=g&49r~tlttllG`^LqYe?)1sTT~ziI47uDm zh$Po@)FkU}?{5<_Q^|K{D*N3RZy9RDU+S_0UKD1;1A|E_Hr*2=0d(ySFbGto!K9BF zmb)msvedmQA4!@;a_!`RuefaR4sy#yFqVmfSqgS}M}$DXH@9kVU6$1I9rx1P3Ds6y zBUOVyhs&VqDDtw>eo2bxJ=sK2?#5Nn;zO!XUlWsMtiq-|G~@#{UsD{|r}81@PMwIK zrB46p7|D5`$EE;RdewQP=!Dn#xZHWda+d?a3=vYI%e;y!mI*EhXgtW3SBC~WiP6SE zdgH*R<_Uw;$5C(xYIrsXsp@F;?kgONgwm>_I#sy1I zK&K=~cgF2QW+n?Mi%}eFqh)EHsc}L#~QT(EtUCUn~%bCSF722{v=)t?7r;3ywVZ z`auHMSO8vqns6I}g?ULh^8>#Jx1YUI$=OYg5hR@#rY_5cW!m9bVOjSG2T!f(P6Ba6m8IvOh`0OT zExPcO!bj_%y7UzqZ>&b|ubbBnxmx36}6BT!ihLHqtKS<>hFc&_E zZcn)if#Gz7-iQf}*ui#g5Y?YNZdXW>>~ho)y~2y1%=)FB-As?dD!cI@99ZT=-H@U` zDionO#00HB6_wRBG$y~*^6-6*64J-Ah;<$)xz1 zfTw$|PLgy$6@Ou|6`7lwiphxzGYhvZjjY{b$^&VM$>DSaj{=z?C0m*U_i`xy`s7CK zARl+1LVg?ka5$W}SZWOzBmhx%(q^2X69vjV6as#guhTEDhfvX?R)*k)w+w1 zeM^tTQwX~sEOH{{C3qZi7v?~Qb~O^7ZN!yM2_#u~rv6+}&?ud*M}g;MJdbih9*WmE zOB#j0Ua<)I4nfX`<;WNR-r-6j5Cm5oDMx?GwRbDnK3)PClV zAr(v|cB5!KPLw<-mGPbhpEau+HOqcubgp1FW2;5>3B5mSG8JwMk`* z!G_>T88}U5hLMVcK?5F-WvsO>BWKoS6x2>PDcdfewn_e6qx-K@kw!`v-I6MvAB2xX z#XFpY7pAf+yM*&{pcdEsyF=YMoP=s#JHZM4uv#6FAH(`&0c-c<-aVV(lM?ItB3JM9 zH8%;1RhA0-L-H@i-qHd{aum?}n9FCh@aqZeThcHyvsWw})6Z>u(*d3vSSxNa3Ho+d zSknI2*AVfSM2NQQoOr@wKlnn#v;dEYAJ?X_6x&@UIESPUf~qe#to*;V!j7SPcja#g z?+H&7oR7F=@~(8bgett!$Ef^eyZX$&AY0kE?QB#yLdX+e_&3Q?0L!Ll>GlVt zNSZX3&AL#3T&kHb-vIhap58_Y$GIe0)io?XJZ7jT*zAS=Shke>zY#Y7K#D8K>pxne zgsg)QUs=_{LsY_%yrjRG? zWL<7I$ALfq^mE7%R3HQKJ^oS=RQ4Ys9g;IMwtwMaMn&eu&8~}hNUh1&r}(#Nhoj(~mkz|^xC>=^w?(oAOJ$*v1U~B_5Y)3#7tf`L$ z^k>fdVI=6n)fP~c+}$bZB+;b08`K2J$j~Nz&sHKiOe8-*%nH%XV4ra~?Z#ERR4LGQ z+#NIg&BwqvVJSHCY{)zLkp7u`Q~rKq-%Y?I;%oG!$i?-$G=Gf}?H?5Siel4gd0fc0 z2)^V%(*iSu4x=(9(!B$8E&0h+Brm@U8|&6=lQ#y2#w)X$*s4nkEk%b!B3p_H)%(1) zTB9nrhv9oy9sj%nybrlW^VzmP-~u`k8!4y|F;5tvSACV4h4JrgG=Lz67|4ML+ixAH z6sAt#&8zUugrxlJHcplH%_t@?Kb>lhdWhH`3?p&{7XiE1>`s(nrdf^2u7~Uj&9UlqB(JYO z7zn!@(rUNb<(A~a?0)yvoR0?&Gq=GkZs;D|QZsW*>L%P={c2UyGi^1-9%wbDBW_XE zIjg9WR>^Rlqc>$i!p;L1)?yy5uBLL6(A@s}wE$qK(W<;N)pH=_`^WvT)M zSod|1g)CpFUTHda)3pP0j9HqDT9{;NQ z#ip93R9=$x{jg6RObU+ES}u7;Ar^+@ROF>;1hViG-KC>bA<@W;@xn2&s>*>Wu=1PE|_77&+ynd}4$ z+4ma98J(2PgBrA5sFN;oC6`)udzWQDov=7VX}ulg%J2)R1NOGIot6aE=Q4A_U%?YU zs;+Od_=#Ye0t4&NW!FZflSNM8qbuz#@NV$_3%7R7K48ULd02Y;?DG5QJBNpSKr*vT zkG3AZ!|0CiInQe^YmPnC#c229xbnlL-1nk{PZv7Ytd)b?lyooKOuAdJ^vHX(IS7UR z+}e!m>v#GgQ;lO6m?715^y?-cJV)?di1Y0`Vm&&gIrlr)LG4;HX_DXl?uKpnO)>dO7k8eXaP9008_J^`&s{ELE#h-P~j>~d5Nz~XuZ+3<5Ib^y*%KW>~k5M zQ97pk3s7a+Qk(3vBcu{SX&`8bQ!>E-aWnNR-T+eVxvkmnE3a$xn#@k*oc;Ke+&ZcC zF_a)U+wKO{+wo)%~5_Ej@|p>6%%c_uWF zhV%&LlJC);aMd28d-I7W$)7v#e&9B3q4{~%?8pC;KQk|%(pdV|n2KdTDip782V=Pk z&_^`tyoo_}#xeqxX7Y3_Nci{523DpF_MD}OG2`RYKoGLG-c~Rkvt!cjLyi4%&48~; zboY{~rCm*t%|QXiY(8T@H8&nl|GY2(@VG$y)64yVS@*b^Nh99&=XpOSU{| zxMSt-$x!YpoPF=`?7nulz6|D=H)s#0zY#Ik%{gW#(x`JK z)!hoO2VIg?LS36CV{OGa60)=}6{AE4ZTK0J+kY3^()@GHa;yc^RW4F%Q1bDT#o|&T;mOFn)@uS-!NmH{1e_INIKAvbjpTNBx0Tb5CHU?=!FA?+)gY7t& z=?>_+g@8)IFGc@ee;2mhKLw9L><83g0LFs)yd)$38@I+Q2aX} zi5D!lp^!W2Gzn$oTNxO5qZkyh)!}TSn`KitT;koS@&pfA`Dd=;v1ju99>)DbhUHec}=sEavoU2FOe_yX;BBm13* z3f7cA5qby3jz)<2=ROF50ZNFP^N= zGd(n&Q@ZJt%BMpd=p%D+GMOd73o(%oszohIojq{wdh%6%UTvsKtkGZQaS4y#y@6+v z+kF1bDLSLP5CK>7?6!Wsk!Dt&}fnlb~Kl~@>BxoYTVj>0-m?mM- zzy5y~0OYXHZX}m%_@6R6jb~@Fw!fH%Y|u*gHIEUpb8{Nbebb)u3WtjIn|#y9bOn!qW$zmVOnirN6qDg%HodK{b}w`DX5H;W zL&~qg8&lDAa#`d`Hk!(R&t!d=N|0DIA0qG2BT%m;TxdY5FyCw2oYn1EXiAfE3#&NZjz@x8qk$m@f2k)T4td94whBp7L~y^ zM-RqiQOK&f#X3iH;MzXzjqBViqZaRL~u17O=qcCqE4qDny?*5Y)w7Kxy*Ig z?Vi#4(2H2+{G_~*`4sj%Y-G@$KFE1TS-mHXA~97}nL663*slXLxsgu7t1T<-U9lob z9P9-+tG{d2^GpfM>ek$<+E&x!6^J?pSmrS!XfCMBL=!hLBiM{6Yrp_KGu3(@k4{CW z1fqQAfjBRsFI(ztWL-O*We)^w=z^uhb8%&sfaWqp>SG7GRe=xCYGi}1Yq^BtlVo@KFh4e9N5^s;NZcvxQU4LaSi+;zH? zmZZl2v|kjP)U0Y~UKA?>zB_)woI@m-^a+%wNUOF-a89z=PJMor;1^vyUO|ggh%1I? zd){N~^M?+Nkp-=Bha8W*qHR3j_G^S)!HbCBPEYT2#8AP6*wLK2U(?X(nKr&g;&=4* zuR7zK^6ry@3FzzDRXoX}*hm&%8nVTpbA^%Vpsu5P!c;lXKq27*%R*lmlLG5@id3c* zas#aB;&aYiCcA+pKTNXU`Y8OyYo)o6Q<|;10=2~RC z?|SBu;kq=m;_0TeD&T+L{qxhfYm_U-&6S~|=U{kj4Hq(**>~5BIl^+pBpxB{Z<1dw zF(m$|1zCVskE%glFOW(dXJ=5s(QIN)-Q>L>zA#F(rTrC5Z6zV|f1g_i_Or+NTC1K4yoe$8f;B4^wcd z#D~BNqzfIQ30iBtK|!>Na^o$wkLY-aSAn!Z3B3`H{oBUiO(FBnUP`Oq zPC7RUZNAHxz55g6arMNE1WnBH)SCHCMq0C*tsAx6^Ece(1FvDNWDSj*4FL+V0ei_E zHX#7yjDM4qglJVEVPGp+`jMo)-9Pjr=8!q> zx0tU3o>V@j`B9MopQ*o$e;G9mJaK=rdea=JG^<|Ds4VSJd@g9cKWbj;orzg>q_X?& zGM#5a*ft)Td2Cp~dEWW`V1Eto(8L@5x(5)f`;fMO;S}i&xyd$l#xU}kqAZ<_;$I*1 z!5lI{^Orr@CW(J9$d+2ez7=JL`Te*(=C5Tx`n;~3KS`!*tn)5qi2RfFFIT}OUr&Y* zFiO*Nr`jyp@2O3yVZm(Z# zs&NDen2{uBLwSK3i5*NKpOI4mPtms&?u3t`ubSE%`=^r%3pUM0&M{|=s;#C@bgf|m zC~kb(s%iV;dy0ZWCzPaVy80=gc} zsMtJqgTbe$OHe;Dd6I^?H^n-B44j8}M${e5$Gf)w7TK>zl+NMTE?V9# z1x+IPanr5#nG$qi5tT4&6{V^lh84SUh?=L?1ec3B%> z6^g<-L+`6=ZXmbYT=vstj?6u82o}ysMYBRjkRNY1kbhS``akCX+SrVBB9N+bNMgfe zGyE~rV`NUd`HOS6=V7^gp#MA-*-H~A_`g=mr|Xduc&Fy35l<47_6shhzAe|?H%nzdq%>xlCSiE) zlq^y|)}Nc%!#JmI|0Ba|3(bL@LmhIgC)O`cvX;zZi}Z_3zvi9BS;>FQ!jx6f*L$cw@0*CKjhJ z=#>=P=JA7=Tj>2b*UEG&uUpLnxaDsXCN>x13bly>;DQ?O;C!&TDp7B@%YL zb*l}V=gGaeEZvs@?XF>+2^y9VF+z}-8ng~-mlPf%j}qo*M4ll|=gU>4CEE`Cg&?B= zhx~a9?(xJt`5d>w)Ot#fV>^~ONMU{bQq;cLnvj@6b5*+lD&F9F$n?-2hk4n&Ij9k; z$Sa|G4mUaZ-cdKO=O72ikx%VN(jEVVT5H=-r-=Q6BHTXuJ;C2!Z9s^qW58aUXapFJ zBz%Y6eEu;u&*OhX_8*tx{XtuEx~HgSYpIV!=1yA|OZ7&rBVCHDAXj^gCpgHS8ec=_ z7^-BX#A@_w5$5LWATf8V(QS~b9 zrvMYPV@)7cRAks;|~z#iaGQ7pT$BDp58*N_+=OBkke zfi>zFxqrnSZYI$wr|hMTtt#&@SSKOI4C>d9CKnL0-^ zVx_QkTUT04yQpTwGU9JdQa#5@)^zF^p>&5J7@~>IwokrYrstzvCy?_-eoRAMan3t3 zSeOTHJ7D*@J}urXp7s@*Est+Y-fNvAf2}J(YmJ=N3Drm|zP%1}Hul=43C&HB}f$K%RRRrDWu(#{5Xr7Sj1DGArw_UNgbCp}7L^Mwg z2$~opRY37N3B7MVy~GAPPqhGleoiZ@op0Rf5Ay`3=fLqkQB(_PULlBnl_9Su=9BVo zwiXXJ8^*yA$q#^_wF^z&@-?&iWx1lptcqJE?0^_&%KcSyJp7%JQn6L~6_IyPH}ok* zvc^0j&Srl%#Ak9kN2Bc$D)#Xw3YHE7@W;x)L4G$C`h=U8IVgN0rlhWW|2Nk!%Z59G zugQY{>v9b$wQws==3t%vJi|<%i{JjD<#rog(d{dia4~fw|F5 z&ozwPc})2w0NmA}$-f#py>x$hE3WcbOcU29&ncS7G0_RMnTT#g$m>i<<+qVQtO^&a zvPEH;*!nB5NaSi^KKeHM9y4T(%E?R*IqP||IX~CYzK!jtZsu#}qoyA8b(+gZOIaKB zFx-2!+5Kv~esE%lUSmhuxfP~;jh=3q;S5q$n}=lm35&}&b6MWD@3$I$MhU*KdAqjK z4uAj6_e6c_7m1gqDo=4eL;q}o_ScBov7Me!*A}g5Ne|EHU|VWYZ)r_ak2(48OYT8n z!*~fVRKrgl=0W(!s|O7z=Nb8PnL@rH^i1o~3rGo9Er z2XpXRW8u_YS>k!zaAf=)%^XPLU|RA@UkR@RFAO2~VoJLwkoC~9bX^7&*>3C>E6cXT zWJ$*+WGemycDkB%L#q@@jABob{tjJ&0a{0b2i;hz_DEP4>5zbuGUJpx77#;Td^57* z|85Slmit%Fi>gW+<}ETY16O{JRB7wy{h!Z@YQJpL(<&7>mJT>5Yf$G}@HQjEUXzDS=-@&V-R4E@Ugnx)|li!i3m$}tzm{T{k>*TAgf))Ba zHA#I*Q!p&C{Zc_>u1{#E2^FfPoBqby(lqjxDZ^pi=R&}~jsA7{uB0hP=BTL~olf>`0Dt}@g2n!4^mP=zeT_78&* ze?!Qwzr(xtC*$RV2MGfH#i(PDSZ}cO{#0D9dKCZDE#;ww@9HP)wuX@9CMVm}st@xd z)Dx82$~2&vhv zdO2x&CHgh?h1*&pDh_!##-v}LB=ozGi44#)_PNWKe!x-USrMX0|9my%Np z3oGzrIV!oUj>0a3@>N6}G_?eRBHDibY*2qQc${@e_LQq(5hJ5z#A4+i6he+hg!Cyh3IG0@9qkbasDvuJ7)YLFNxHnFGyKp{~bs7urQ8g@{!JMJtT*Dq&6bl z$%{_6BpIgCZfcDsr9)SRc|h3zM|AuNb>WmvQ@^sJvXAPwo1F#}I$tu=+s*Kc%cS{!}Lz zU>3{yw|1D@GtVaL&Mu_2O7V?cVE&CSlUqMdXcJ+og-4aZa5sm}lTszOBHWD;?SkfW zh!_KcQ=v>TYLoyffouoAu)O4KCN}>^pf3Mzcv)~&R>|qDY>)FTjC&n-e<|8`mnSk!+I0$*0vyHe1}KjDy(&l_sRlxaqj$R|A5~)NnQUv2LE*e zrV(1?Y+vE8rP3~l$A)^%=1=fYY$zsgHiU_+@iIoqk zC#56}?{CJIqEA@Iv`E_ ziF^GJ&&}PYrTEqBt3mTwoAqbGdjJ1)x}{HtYOvAdTtW#$Ypn6Th?=>91l z3_)YwaXbZw&ZR)3Hx`z3yszURl9H7M?VsGY071j8W~^cxv+S>%Y;!J;NZy9--Wh9d zQ;yr445t#ZV}($uGpqFtw$~M<*w(9yB9RWawG{wrQG_1SCxW>Ng&=Zt&ue3&lH5e( zt#H{DBMi|<#-_d4)XRTwq~|SNThKwh8IEpsdH>~i-ZbpShw_rd%lBuJ{^LcMb}p9S zmx~no;AvxsQ#j+@m^WcLON}*N@hk@M5_uxnnl8Ee4Lq#_FUFy|1lmEmFDWN(^>rgG zUa%EL(=W*tON7K`9U%0#KL7I{L6yCYzSn=*z)*h4-}+AhN|zp~Tm<1%L=ErpLu=aI z&lKkQ#K4XPV;*THVWy-OLg61ZtlC*>gMy!t^TU;nGvH9UZXygcqMCozXD$odJZCw< z1%3Jy7(_9Kh{CqR#s|Z`w>+z6hDAKwwp}RXOu{d=C>z=QcuMUPUzt8?$<$oIJd~uV z<}4)Omu1&!@b&qcMfki4_BxEbeA-Jf%QZQoH0v)@ z3AW#r`w1?w#;DgPn?hnMPwAAgw5-P_-F`g`1*y)y5KuXS*ErMI)b`ACqQAobr#1Va z5l1=g%4@g2dCoVFhJ`;SuZ>IeZxa*1?1~xf&obyVc2LJxx?ql;v1;M>7L3EHNXdkV zK_X1);9O1xRu&V;w^xq+Z-t=1AKa0UC~j=qBZahQ{f!Fi{98X9Az z^zy(Umi-^V(u2t1QCZLCylYi&TC~vA9v!XAcqN!))JU)r+B&?eSRk3RMO&?aKd*wj z5Y7v`Vllm-EG1j3JdO=4OU&)dKBE&4aNc{AbZN>%I2ebBnC$%SCh=v(7W8s`TH~r) zi6eE5A_Y`r{NMJGZ`YA?8a1uKbJUvt9aYYfh$Z2?hrrDq2o{qxI*TOo+7&&Tx#@&V z&&GFk_@~3uOIulu(xHb3#HD3avA{zGABGJE+(Q}^0zWc5d#<}OGr`WpF?AZ~! zB`^3>a_HRzKGUYuqSiQlJ8L?UZF{BaJ?XwCd-K#6xdsvMz}T&x5?Koa8Mr_U1o`@- zQo@0dTGZV+B9&LnaAVy0&pHh;F8Gq2~T*(Ec&by zDz`i&(&l_U zFOZE3Ax_W)hn^ri9gFPiDZvhPUUJkHaG4;4LCA7o(1z(6f$I5~qr}arjAy_IywQ!P zkqkbozg2lzzInjgGYMQjJgn1L>#uxD@n1LeAlz)_heL#@!Am7Qfhg|@GV3`>J_urV zQF$OJ4KWfYF^+_NQl3k?i(c!Zi$bOmx2f_z0ODU(IJG&lV!^Q##iq)GQ*4Qf z4o3ceX*R=B!Ey=Y$0?~EHPGIfQ~;9m#WsuIwHzSLNn5a7u&zClnizAAagVbDn4xd< zmlFdYOo=n1ANp`;By?+zeZ6)qzohDom+HST0`&2sseIuzc9avrliv81Y;M~#Hh_HH z28w@q@g`(93B9}6u&`I$#kywEZWIGts%eiG8Hvfc^?$IT|GR>wfE1~s+(%O9%xJY& zuVx`ja)Uz)eiB?b!J#XN$r;r~JV%K=yy~8sf%q*J11{)B5~S3GN|(;C6Yl#%@|#NM zX{vwIq$A$AMvNyg^H~>5l7689r`vwsq8j&RTHL-^Y||UUJtKw@oBicnzPK9N(nwN# z0FHU6ue4VCO{M|klgAAbBQ5J(+$A&uoL|t366V2K@c!rg$o4|b3~;nK?KMWb`o`x; z@=L5u)>2vw6gj^C@oju7S#g53AQi5(Jw&z+N$i8g&Niw$Og zLr2rN_4dnM@8bk8Imi6*G%9LmQZEm39sFNH@&r=(0=!qXMC?-g$oBpk55v>k{sv(X z2B|+(rO1=(vq(s3O2$*NLVlClA1hk1(rBWPG?1Gf1Mpo0kXV=?nBB(j+Yp>c>}gJ# z$np70xT<(>qY%B$i$p$!e$SMsF6aA_O)=aXZik^2xi05z=ixA{hRNpIjwmjaTXf2A zZwPq0Hc1_n?ASQI+9*LCk@H1L9Me>hXxgluNe=x9p5eovlu(kRk-dt|spe!D6BOXx zIc2(sT_U^Ru9arNG-q!yEl$(k6?!AVxp1oT0Vo9{&N~BPF00lR;{aEe0-IJT^_%JF z1UC6YQdtcCSarfh#&`d<^$Yi9jwb@b3YVltqi4lXo%BY?q@3JjU;7~_f5n+PQy zlSOH~kAn)v!;Zp#`dA5SeMs0}vx@PwZPoN6{z9H`Pn=rATDPS&xh#V&AJKE*IjQzD zn+R{H$e>UuabY{@CS)5T2-XD>Cd+1H`nr@=YHlt7j^a%N#Ypgc$F|W2at#ltdxFd4c^|QWN?xVQL?TQ5!_0Eo z0n~lG^6=t#C2#vq>OCvQtY2z6I`j!bH<1bjB47T&Jq3?H-nTwl6Gro{p%^u-Rya2Q) zNHCFik=;%sIK&a9D3^z7&cw+mf;a}^+seNASoCw)HLXqcgnr~u5@xnVOW8bA-Q)F6*Mq_kv?fH} z@{;d0|8PFJp1VVeQ#vfKCDMul1v$<7Z(?A07}h|_!9u<^ew@LK)d5u z3H5eSnzaSM;XWUp-`-9OHel~aq375&Mdi9q^S8YT+O2PlB+N|x`d@&-3GR<4)>=Eg zz{8SGAN(#*1AbXB8+@Ue9d6&3?+Gj^cU_FbS=-e&j&qjt+HElC%!&Rp#;h26_-1W5?-4x@gWYc~)-7^WdXJyn352eG#mGQ(Zga(9c!kW5!@mnO zVz7Iebq;@7cE8pR?G4#!ZTUTZdF5gLt*!N0zNbhcVuHRRcaDq%hG;#L-So@@{=cG&e^a<2 z@aX9PX=)=MsXF4<`(C!ONak}m7wQk`aDNW>6OH4ozCIK}6P>=!j*@tR>iLxRKVMsd z^2jog|IH$TFrb2*@9n!=EzL8YF^XTk59-U#82z9L(BXn$F!)aOT5odTwNmf6E{I|d zR*eUZIAgE^JLFTt-A;QT5E#q&NZ}o1Q;3}>NVr&x{*R`!42z>{x-~Ar z-I>ANgS)#0m*6~v;O_2jg9Q!l5Fog_lK{cpCAe!&^M2R)&97?-uf*=D*2AObZGG{fw5VlKt58!zj+|@ zWyv&xZ28=wt{1`ABE6dR97rT$TI7RnkK$zIR`M~~3pH)yp7=SRal#ryz?SyeV@>Ol zqTYE=;X8cx6O_&GphlssByKZ^0v-{d4%v}H#l`Hpee_HCz-8O|$5gST@=rPc>9ux> zlu97nRmh#1>n1;PI33_XPqYR7fckGAa{LsfQB_{NU}f=@;cL|IgsaCI!g7~Ls7M0T z7xp^E;K2O)PZiX#bxhO_1H*QkXlBTkI|r^;^4;3~1e}RFQE=QUucWZ{yK!mKBcPfe zvkVs!LhACOMPUpT8DB>S|J>em)`%nZ(Wr0a%vcf)C9zhiiBs>ceMc{dPt5*<{H^F} zxb~qcJrVY{KG9=QUV8x8nLnTFlE9xcHQ7x4_py4d?wM}2-f~=E3%II6^zVUNnKaKW zz^?pq5lKmKpQ$h(Usu*$*i~(D@nBa)WhIVq>~{4mLw}=tZR&luZI%bjwz3-lUrUc+ z>(cGC%-irf$f=**&+=$>u>Zf(9*mSv7Ex2sv@w^d8088Z<@vzsR-Y@~(yOj&9zX=g zv@;CGB!GD@^=SW970D9>xh&nwww z*>$M!spq|POetYzlecLu2XT)~&I2Yqt7<8WY~a=>;=-sgvX2b*V15W&39L)JQOt3a ze9MR61(R`HMTdmkON{lgFz?EKMgoQwp)^oQyqE|`F&&%PaI(5Hs;Mah#%hmx2UxN* z17VDGtv!CkDy zqD`$3Q|a0I<*Q3S8ZWNW?SMm;UDFY6wuU+g5Jy0~@8L}>!QzqYR5pM8dx}YOUpRDH z9U&RNa}n8F7=Zv#DcV;+&}99_j)74J^Cf)@;0b?MKxELzNQXF^`6Pu71vTHFL_H*` z0V_tK@`tkfYtOekI%Vg-HJyMR^w42ZmQoeG@vD}|3R4ax2y{Mg@ZSV-x2d82m9+c; z_jtk02**-ZxtUxueX(^PAsh@iFdjz%egua%j8g1lu90RzuT9Spk^B&7$dn96mQ>v| zm@+EJR&6`xgAU}X=n7#53VlJ2WC5%njBVv@ge8j^@$g3gM6LAQzpN+Z3o4`4ua7wh z(Bl37{W0c<> zq~(wQmDHqt@cVG)fZHNNNuyc}B}x?1Cg*7u8vcO36lj+X@_B#^9%as&%^CK#EAgRl zH}xFq7|9}LJUE701~>Bx6G0bRkp51-Nu3eDYPO6@eO7Ztdmy4Mo*~VYv^0}4o1|Pp zRBn1wHREH>3(UV}#9Y>uzjKVWT>^S{D-NPQJHbFq)kLmH^qOS%!!}CRLmyWg5Ll&; z&!SK5vF4WEN!0)A_CA>)my~jv`BnGrG9h4b{q4QPGN{-JC*Kc*MaQ(A3XH?QVJ}SM zX{z38x!-pNScglq1^}nP@IANiFEH~Bw=Sh#1$Z_K_Ln?$sw*C=qJ~}}s36Wj%4U$N z$fJeNvduHv{{$sO2)pEF-h=Qz*|*1OJ2>i<_jJd9m3cw2k^(Rj< zp_cTlyUr>*1Akt+q7W8P5(Tp8%>|3K)PFar{l3x3OFgQcu^PsDJlfa@*j&Qu%YL6e zdPzYEKreqeCizlX9wIe5t%^~VN_72=h3SB{a`K#rCb}T(JIl?i91>r)f06lVCu+=o3u(_182k-zOjf*4N2n4Y zl^{ctpQ(zwO%2W1s~#?2Gk}JRJ~0W2o!K-K>h|*La_Y@{>PzA0dW$GBdw`$dp>)!5 zJ(beg<&#GD{fIUXaBKn|1`zb!^p}krp7vj>Yi$<7k!+oi+_X&An0t8!YN&R23p`B8P$wI8vpVEGIIcVp!ho@;p#Tg<5 zp;Gn)QOH4cro?I(a+9Hp?8J&PIdSCq>te&wd#k9>eb0Wub)Fu7QcU2DgvZ~GQJ{w6 zqT5Cxlz61MM3^vfgPXzpK-%}n&zr5MqH^>!NVLa41G@yXB(AH*%FSBpb9@ax0Q&~% z@$=1LKtPUeJ_!ZeJx|}ehdb`Rp`+?ukeapuxhTm2oZpCX170> zXElBO321X~Z2Jmk@Whavs9Xsf`Jr5JxxZIDJ1hcfVjRyhy(3}x=|XLuNg<+W0Xpni z%L%q6yX<>++y|+yQ$`e~w0X%%{-xp72EHA;D>o!;1C;ec$$g_yW~yO+f^qJ9Z9hg! zpSp*+vF?`_+77^uO|i#A zcatDk7w@F`f4g5pC|2P#F+ok1^3aqiK%cmM_|Pe{c0n8~VLfDV`ddex~g{Y-QMgPckWpD6l zgzk8AGS2WeI{os2EXiuly7ncQ{@&Z_b;i*<{$|G8DtkutiF|adXqMyhy-7YO3w27g z?C6iG7;S5=^1ExZ&{R?~MyZ*3z5Y;4_kXS=67|zICkf5gq=1{xhBZM?SvsQl+$=aX zFPMZH#xx6LYsO+Gd!s+~AoHV{^G^wS?!bh^`G|0dGXY9Kz|}k4F{ZYxOo$JQ$-bOV zFI$=@L-M=)jF;Y&qktXchG<^dKiR1*jARs_(ca&B_Bi5J1nnx28kHrtZw{sV#Z#D0 z{b;Wgk{ecy;_roVMV{grVw}c>=ulRvVo64AB)arKT10%@MPeFrKYEg5DI}iY>yUkg z_Yr*!wBgk(boe&g_MbtLwl^)=`+u1XZc)2``NJ#cvU<~kZ9;O|?s@55N*qgJt!(vC zmY#FQH^jc}W2)zIFGTA0F6JjJK*E*ZC`zU|W$BDY&C9?g7^Hpka!lxwkD0O9Xy&T} z@BpOr-}uI`p;i1OO4Ex9dV}<528^^na4_rbf3)NJ+aojA5QyZT@;e zJksD#nRijD-=gjmay7w#qT;OPUJ~(im|CJiYI;t=lFWX5(^q#%_^%i9*NIG>+EiC? z*D#oOD}8UGH_N5U>{MAi_~nnX^4T?fluonH&o`wJ4HMI^Tq_s94$&4x64vRUC<03pY7Q z4b^F?w?UvK2S{=CeL5<2uj4QulCvz9oLyK2Ym_Mcc#S3H|Kxr5m*IMU68O?SN-5X8 zzVwIL6s@GAT`gG&Dga&Ky*S?WF9G}R!O|nc=qDRp?Hd3el4d-OB_&n)c0RD9)_{HC zd4vfmB!9QI&78U}I5?coWUB-lrp$wIpz?Ai8R0FmwbBG$NQ~e4t3IJ~!WCX(Bk~g( zjIW0p#-``%r1=JHUu)+uv+OuY#lW?=AU)a?J6j5T6L0jEwfi3y(77;Up zDd?oi;YbV=#&v1^j#7IHiB*i4h5VyQUwu1>D7E`<$WOy#@e1 z#`;m(tPvoVo#x_vzoHt^V=bVIv~5~Nd(maB8r68ca55)5iF$B=twevAx zhJ4g5!d%lEaney9k>SnI5WLchDiV229XS#=lGApDkCpXX{1(5irA3W~+0V;$gzTr; zTg>@eALXC@XY8bxA32VQ;Krb#yWIuG310@5mvFm9g_jqbl6vuf&UAYeqw3MEm*;|4 z{_~%q7Or62wL+X9wWksoo)(dK9nnKw1ta?Z6=Zj;vMR9ZF zTE>h@pIbps*HiH$9E{lI4TUOk^tJ+Hf}PRMJpD@0B?na z7(8N#YHiRX!1G-Ta}7z=%#&7)S=kK*szT+aRp)WmLEo!WMT-dam66Tf*FB&qZXbY- z(mKx8Z3u{LI?;z-jOB9-;*WCSda%B_kE_o24R@~<-*RV8Q=TnWdbi}7%RKq@@}OK$ zSA(`14VLj`{^NIK$50Yi2n-aI-~P88))Ew>GSnE7zKy&KC9iiDe;cfARE1;I!iS|~ zJ1aKenaZ{!ORAy`BanGUBfDrtU7WLyF)(-l;rQ}0B6vl{WBBVqE5N?K(tk!swp|}p zG2!F&7a#}$0t4ekyW;x7v4`7TNyj^;*r2mK`wPep($=m`m9v0Gct*i*9s$~pmUrp@ z=PpbRF}*w&36=4|`268CfY`1(KFB-n=F(hrLZofcxt#Oc^<%XUpmGBR<*fA+ji`caDi1-{Kx>ZF=1 zGp+?f!~UHGgihJ4pU5!y#rS@mDbZ>RL010HMCBfU&Q1YtNV<`4LKR&XdH1E54LR>W zPjm?)!e9&Nc<|zvA25}?x$Qvonn;b0;PiuJPbUKfsmPgVON;O&uPt}i`LG8y!aku)ITPM!4oe1Jm3_0U`4c?MH2`Hyt3X{;&5L-(v+uEmfG1o zuv*|NDA~5x{t|n`0M5rYl}EQvL?4ZJ{tNdV$|RBOkGRvov`wJTFLA_CGLKc$+U^n+ zj-2bMYxnwh5XEZ1ztMD@xx41Ogy_(LBCjlYdSnLty8$CMQcZ#(F@Bs+Hk}TA-5PRAgO|q%{Qypu* zu+*!huhIEW;-*9w^yJlJ-qF{5DePklQa3@l+=3=)@$L9+L|EnB4Ze4gV}O+J7eX#p zul(AQ#3H|wf?%W3`}qr&)rjb7qu%6UwtbCwF3fmJ}n~M1%Mf-EP*3 znh?h?|86nl+_$A)BHr*s?`HotFP-D7e@t;z!Q`8z>}BUYXrm+98`P_`8*g6YIknVF z!I$X?`r_l~o^n%Fl}L_%nS$(upEUA^MqT>8XJuc%>5^7AI7`D`zcJoDw$u}26Njw*Aj_a9sjM*w9DGqo`Yw{`rczAfjD5v|FFPBq45mz5kbWuQ;5Zr zUZh~0ICqH)0FSB3Dai;v)PGrGCVHx-VkX?@m$=N@cp17BvA_F!FIC1p^(`w4o`hTT z4;sWnJ3i5`iVt1n!2~ezhhzAYaOSJvf70nd=u_i!yCOI$zn80UObM$yN0^QL3csh1 zxi7vAVC-hPn(}@cp&`>i7)EqkB#ujRp$8J0u-s^Dg=cp@c%NFGhQGiQiAmE8g^Xpo z1(5zKu)h#G;UsxPg((h)S{F^c{F3l1zK=Nj)V+L7)0BZg)v6RNay{iDSnb5|#^O{<)qM$+O5J)xic2$|R$QDDchpO3M;i!XrwII2O3J3CgF+ldu8vlgV`g^ zcMJ#mz|i2O;Qf3C#s@0cQ!hC>{`xj#@@d*Ut;SjyPm4AbQN0hkO-E=^9T#0gX^R|) z#9p#Ycr7;2!gyXj0+kf|-?wj^UJ2eso(p*0cii{DVk}OJX52;Ic$yZxJgrjg0ey+a z^PpHNu^0TT!aClJxav^T@;6%#8)x*Kl1O)8cqxP_3-F2`c=EB<2Ox9az!+0ukSPagoK zUNCyl94^Cw#Twyd0)8QU}YH0w8}sv9|7F z3w{HF>sL4g<_PG;!qE3`d-=EB>K$FMVF)F$LNrd;Qn}VO`U`~e8+(I!^)q^>neqyynWAMbEk! z9!Q7_k0m8d!x2nOHf*6Z$4u+gOQS+sm`NSamC489&(ZEAX+B5&v>+8Xhfx|_{=(7s zeIc-zF83L4?rQArSZ&SvXxmx(GT!|X0~i5}0Ae7X7XTdbp$T`RFU0--SpdCE$dN`E zu&Yq5@&$>vn3qr0=bEI-FmU&nh-bgOaVRPLvAv}$P6!*zRwAJg-Kf9w<@XOG&(Um# zL4#ff_tZQ#b=ky^i{(3hb*(NFW7`A2op$tu9>kLEJgD_=CwiD6&xi>oTI{|= zRHc%~cTwUwWk5FZYu_qA3Am<11LNvgXIp`8%2O>*t+s5Ze9s{J@T=jU(7>7_ZRO%> zuiLoyQ>J5fXv@LZ5B2Hu%^D^DFZeWn_k+-G;GFG%fsFV1(%8Fm<8Ky^*LnZ`@}D-G z&rDWlblDB-9M_I7r@ZZFIW%=v5!EOBy=C~(-zy0D0VG^Y;IkUi^RBt3WCL>qk^;#b zj_OAqAtWaWOVTlcZB&Vt%u#WBpSJR!U3fcz&Io$nAzS?0vcgv1{(I;EdW;JAuIcDw z*q(K{jy)!6WaH%bVq=3^>-#>FH);uqRB9iZ*qWB2+ z9KS|`e}t%5x7A3Rh%gFmTC)5$tgyh82F}V48%_iox?8>Ktv}ez9;hhr)2IU{R(q4&h|Ru}+QwudwwIz(y?ulz z%!hoOiH3eNl!a#IFOw7&*PCAQ|H783cV^4BhbOi z@_biBbujW-7Tu=%#?yGv()mxAj!okglC(OAzj8xd7014x2ioJx8fQXci?^jgu^>07 zku(2!)@jbQUgF8u z>VM+wpSq*Ph>`eKEE2`PxNLhb%#KK6&GrmuQ_J(31b1OuU+h?7IZ2RT6vlt}+#=Uz zgvFtg858$@JN{m298rOx!iFCEO{SaXqA+U>)La!v<(y59_f^l~C806|$RIQMA8=B2 z=OXf1=}nQAvS$e>xFBr2!`?f0%!k7B{rQ}NvrgM#9tchXJ7I2^5cb`m=u9rw&MAE8 zIj@5@F?!y#A6c%)?=@8a_g3{th)wRKgq&;xs2 zz8!@f0eR+`MB`aCxC%1pS{@=h)RpY7!}Lcl*M(-uN58y*IYnlXq4~{J+|5@ybTIGt9y@4yEu$%n@IvyUc5*El&RZ-kce?B#Meli)(xoy;t zF`;n`7ehSxd#-G6Bpk`Mm|;se_NZ$H{y5?Sm^9|1Sftu}M_a`j2*(JLljxLO zg3qiOsJ~7A!|d{~^)o$S-D+(MqP2c6z`0&j4X&i3-DT#z=F<#*MS}T_U*sh+J{dHQs1tTiE zllG#Yg^G8CYha)A-GJl6de!B*hdEVMxWLL;aVH9jUEj0;?uCCB4Tr1=J9? zTsvXgVW8Oomun;Jb6B})zAMQYXil99^HwOfxzGM~_gTiFyyGiOq#24%CpD=b2zH59aIasf`SPv97p2JsgGXwl^rGI4HCb znWXU*f5Or1WssH2gx$p+mGuv0gNThoy}KcmCK&i(xHB1~v$5S2o2hN(n#jrl`VY zX|w3nOUc9%QV9O73yCG>u8?gcBO|*4{7toM7o#*MMVue|n77Qk5S? zRhgSg9M@NvS?ur`n*97Q>X}*PO5$sp3yHhkI+=Bszos}0>+P-_k?$H{;|n|O(KuYf z{rm+!+WF(;5}2(m@~XntFGfb4nzggJ#$V=feR5AOkIf5MB4lD`RWm76_aPc1ah&}a zm%FEA@NFv2uVMz(? zW5T}&jAvf}(wo9m)6z#ICD6XSmo6%zyu9#pOdOGn8t~=RC^z}NYwEoPum0AkwCmOt zH)2ry>WuOZ`Lp@4-yD1*PhK%aM9Fs~i@3mKd%g6)5)d*pJx6y}sq}o+3FLE=Vz{jf z4yLxN4U2i+AjoZbcZGoq;WoqlLnVrf+CF~7`bm@+CQ6+1Ze&W&ac1&!DhPX&g?c8K ziMI}J6i)WvUD!AX;r8K*?B`n|>2-93GbCjN_csyUaVrRMF!}>QxBI81U>KRcu=|&R za{mr2IWx!MCz6s_!tgPk+RPAoCoc3ktHfxqbBaC)(YgOC&Q#-wfMY4XzF^MdbW;>V6f0jmi=TsJkQpD>pPEt|H}r)w}U6a@A;0K4L0X` zNBPsM4%ig?Dpmwn^f*~*s2t~_i@ZV7WH1`9-lP{sug$gGwskL!6Y%M-9M3|Kw2SLl z*8n$9v1;DBkBi8^m+N}>Q~i}Em&@(Jt976A(VF%%M!>7bQ<(I4eW2*#((t!sC%*o1 zKkMG}4yXWD&K=Cn3r`W}E9=bMTxz?XDtvE#%QoFIR_R{vLtMuVqRNE2usnBvy7TX; zGFdDyA}k$n!TLqSj8m~}d=r#9^YY61*c_GZ~hQ|}3aopIJzgzwEb50&rY!()GP8rLcJ@jsR< zzwpJ^5sGD-q#8%QMRY^EjoSUH$*-H&Hx%MLXaZA2n5{RZzEh$!!gLk)G5Z$cUqC94 z-qv~U>rpt6=ccRl$m;w$O)RQxj0J}I&mi`WGU_hUTI(81Ls-70*9I$HW!N7iw7Rq0v1pN^45LcH-S3k_w-(@4 zoHgio^Y4M-F%ABycoxpuZHNd6ldtWV8KTNrzQ z1r;lC9l)LB%+24uh&{YLpN}te-EkYlli0U>mnHRTJycfQm*z~B#G()CVLP*JLT>Ia zMNJwl^zJ^S2_AYw+FhwyLl{rS%W-}I=`3AlX=DDN(+$EhV?XnVrma_QOf)IAf7HFe(=sLJW==G^_O>e^= zoG?PLQJ=h~iE8HD61i_@B1<)iokS(QU?n%h1tK}2yL#rBE9s9Y{n=th!Iu)`5UzFj z0b~N5RS4{3c-7vz>=TCb$5HXI>5Bn@>bvlxZ?cVr$GFhaU=p~Cv;L=*C49l>N!y~z z2~Cb_+%!I*@%RO!Z*tq9sEQy0*7Tjxe@K(Xg^l8(Fs7D#Fe*QRY8AJZ7q#j}o#wEh(E4 zg(0ky_ zyOX>duCLWboox{t>;#9yTfYu8V42FBrErl3NPb&SgakPEf@`Ciz_N9^hHR~~& zO4OE7aH*YrYxG7YMrnJA%@h%dgQ{iFM2ZeAOAK?FXI>P<9_-N#pXwl zW54FF+mnUsrgN%!UtnA5)z-}JPsN#@DN?M5!`1F+pT}?Ny@x54OwK_SM2#ViHJ~}E zNr70B+XsW8T?yX1`s=FPER-HUHV+#FAQKrRNuH2-I7S-!U1zcSnYT~J_O2ov>=-pX zel1L>dWnxhB|*^?0{!o7OQPAG%|+F0B%D;&ONC(!r(S3w2s)+;82mVx@^~pg`PoEP zk(4dK{ywN(-aXj_30ntKZ_NUn37wtjF%sILfgk!E)O^uG5cZLKCzgqvYpU#k-q=Jb z`NKoe55i_Wy2AZlqV-0xFzIg_ZD+B=C&cF>Nb<=kd&dbnLOtuJua-VxPkndMr^<^z zDLO6Wc0{g_hdYXrN&r=YiwwX^J)3{a{$PKcRaNJ_GR4TDhtVj$dM-_j#-o>70i@4jS7(7Y0K{#`{J zQSzTwoEz#ZxBndU5@N*ZFf4%>9)joT&xOB+{a+hPN`~-)`q5qToL_;i;|MU$@($w| zh{Gw4ne_OCN3gNw5V%$>v}zMr80AgYIa-<&MLA3!OIoNq~ow&V_yTU=0{t8 zSgz6=C)xvnuw`6wJg3QlDxa+;=G^b6DnmXM*x^R? zj@rhr{U5b$W1-A^&sJM!=I3dvtE=lRMzQ&i%L=`vp8?8uUa)mJczN^fbmOgh_<4g# zOvV0YG>ViloN_a&hwa=pX_&x3WAcMU3kOx5C&}ufYJ5}4K*e!@oSJ* zg6?2a8WG~2mH&j5b*>~jrW!Lw2afIuT$+jX7(#ZZ+*Fxo9je~+m%VV`;Zt1?u~2xo zM4WSkJ=bvArF=UMvat~dAM^0>C(=_*$lbK^TSte6ef^QJbUrSOZNzUx;K*-exCiJx_d`nJ_0l4Ec`8@76CgrmqRaXc3vkoHeRkr-1${c#qPg-#qm)&bij<_ICo+ z!c^DmVPV3uP2(w`Lho(?!E6cQ2+KNY4N7zoP@)kACS9j1k+ZEk<+A}sHL0%Sit=To zHAsfe0WpTR55)YQGbRfMUfuj&nw?d8D>MYF>cS`mG7Krsu-fR`!6iYxMH}MHBu@Lh z!oI1l0=}6{2M@PXHwQfVym_!FY)k+sr`3htFoxtw6YMxagajSAO?3-?O+Unj|{p^3!vFi+#k5f<}Lcq zil#tOLbGi1Zjz*vlaqJP;XhYRoIc0~qoq~8R~CK=^G+@eJ_t>(yY49pLn z`81}F6rzG@Wm*zWfrd?6GQr0tZDi7O_Mf^1`r%q16-%?@RAXmN5d1dOmJECesfdx& zmdLgDOMD#0n?#pcak{nHT%>6b7aj%n;|j-loCWl>34X)e<4= zY_4vn61=9)cnyR&MJ)P=z$JnLvZ3e7S=sULX?X`3%kxW13?8da5r9X1Joi5Y7-$=5 z)2C(N75c?sb~7`p|4A#u%zF?|XEC8Q|M_g?HXWW7+9b>cSpRAlI_h!*Ub4#?YQn;B zzJVf00>rM1Ezg621-nCnPX;fGIt~9gpSM<#3^2v(6d6d@Gl3GBh|kdkWAukPLy21# zAPG6GrbsU-`@P|uTcLi0-{Ly}e97k{013$R5R6(E+K<2h*qa(=9mjt3xodT!AAX=O& zZa+(bA=eBEso&hoe`(j74ibVAC)Dl@G|c7!G$+w<-BcSSxBz{7USn+M7&e!#TvVO34T^*!&Kul~dbJ}*8N?4$gQ&b}$Cf>@O# za(#%;YZ;2_&u+3}Ha6yCjniuXi0nMA>K`&t>W>%HK^b_Dcgp^R)6@_C_-kSFRZE8y z?&!O4zCVMkdz?m0P9|^F-UIFEXIDV z00o2D>ZzX_->&;|h(tI5SS3d87(D*P^ZeV?T)7b{37X(g^|1Cklg=`8w`;w`3=y!x4$)33QHRqZ!3il^YZc&;^oQUCX78@xW@MyxCF~OqFyM6myJ&QO_clT6yd>T{s_H+Z+-LeBo69gk4!bMR9zhuK zl>2!kG=*8|rU%xK<(V_lLHzl$&w@u>{09?T$yf8Z0jdO{Pa?p+@3IE3sq}|&^_KU| zNCGS}sUpC1ynI4SN!H;3)X>%mn~Phxa3Ipsth)=fO_ZOmOpaSx^@j%=^A^fXx81t_ zSapkk^fylHTQBt-@F=EDEu|1Ym<7Y75UDN#pt#k@l$?4Zx@q}EF@B64%4}5zt@|bCkp|(>UJ4V>(&a-1^(ReJ->TF^e5XKGX ztI%o#qf2a;NI|qS!@WqxRem-FN*&6x$hXVO4$TfvQMH7ebA*0x zvfuV#hmvgj`;NYYEs?tTmCLnQL8CZTtcw_^6_bt?Y3qpBedX6yDkvCq5{ecq`!kAY z7XokM8<~b$hWMLN#ptdqKcP<=DvETl+1c&EeA`W%Rqrbo`U;!na zUet!0lr(hP$VB|f<49SsU=0quheG!gUfHVi^CrIfO8h7dWtUMNvM>JWF3Kx~31gAZ z5=z@~4l5=0 zaRfyExwwb~n!yR~C`{a&Ke{@FVT-6jf_*`@BH zGuNh>;yW_cagoCYF_8%iqD$t_6Z<^kB{4XD`0q2jR*p*i?4B1p8%pEUfiH|-OfQG> z!_(kOP~~$&>KYMsG2EH7_Mg?Nl|7?EEnE?XQwV&%V6Ark;zHsP*d zB?rdQF^IBpG%|2+n&LLC{HDFj_Jur^sdPpT>77G|W}Pa&*$Yk1PL^51>_c9pA^px$ z=$-e64b9oArSDrJ~ew+luZcH~Qz_l(X8C^P0m%g7tHVtdVtEj_myC zH=ZOS!P^aXOe^xG%j@M6Br_;jq}?^rUp|iqeh*>6L3RG4ZS>U8QQ=_DPxE~7BUGbG zCW^kV$=u>6_*cjWjV1KkH6A@^x75fqALCmX(l_dF4Du$P;-C5i{_=Lrg4jPINIIu0u;{!TKQ7s^56=8+wclRn~ zAWw3edTyviKu8x;!qpx!lLmfi?ugYKhiA2{G}!+Al#r;$v0=kh&b!IG$QIE%g9wWz zSgy7AjHWt}kSt+B#SAqFh(L&a2`pdJW6o^S_U~9T>-=63W|-q&3ai@XTfDuzohq51 z>NLn3nKw&L)!t4RkWlz)u%zKDA%^=V)PKQnu!LqBj4ZWQ>V4jWL^mQ3I{JcrSC}~p zOdjftRa|D?!9N2KSRq}>0-@Cx#8hsZe?3TxEn8SxJZ5ABDi99V?aAz~!Pj-?s7?|h zIp-K>@IOCU`dX8z=k2(c=^Wz*wP1pyV&1||*_Ssd_3?+pqJ~n?VKT-thd-D7ZdT)s zU-l>tvFQ2~BoYJ?MK8$yP4H=YB)ySQnFb6@qG=#z@OxX!bXknfu<%w`cA_0k>BXtD z2}TZ5fjMA=6(?UeDPP@yqssJZ2yM(^T$b$${o_zWdEv=v46O~bz7^46@73|{E8-|a z-Z{S;UT!{|7&Le*+=ukn4$)4F8Qo0d10vA5Z*1Z=N6)DGQwiU!ax$N z!1MRp1DQq&htwt!%#&D9rJ~u+ePoNc7?yeW*4U$@FIZE)FCq?8IPA2r*@rbc!B(IIdXkjNI_#Z>F1 zq|a&+3A&}Yi!ybKDcbw<5ECPow;f%RtV0Z=RwH9zp~>B{74kfKer8hl#Sd zQ6MSxIcnSAP3L|NqHche7y|63|7okvHUtBSt0lQAL~Hc-T^%ZQPLW58m*y8|t}O?e zK%fQ^+-7iXjyfJZHoPf&JobF%LQ72$q8tq-R1eZa5-QXsa>r31)mhRn=yfC%AWh5s z?Xde$mNDJwAjEBvI&Mb^b}z6E{c-Z@It!sc-A$>ZXb!Qzb-}ZVJmThAcYP#`x zYUsDbx+cHz>84d3CKs}vk{_m2U3_BE&wVwk)IVhg~L*?D`2a!WbdtPX%5KC7e3_Y#cPoIDGX5CmvwXN+J2FEGDSM zN+zr!sp;%S=+kU8{x=W?jLMuS$}gp4OzdRStIlIdl_@BpmKsd-{8>O(A1J#7lIM`W zCUH8*x0AY!DtOs=mHPJ9+mFYr*tL6G*SYJ64T~K7wx=wb0~1C=$;o2E5@v6HGZxqx z!;ufEyOgGo?k_pwB|X8!)nuHl(x7&G9n#Vapw3MOOJjO`vdG18z;>uJx{-u%Y$Q&f zkoAj+9&f@s6{_%Wz#jbM616rquMj!$&$gz+bI9iWYPduNRS;)E62)^P{O95~mCub< zu!01XANmvb&F7axb@|6}N;ZWq%OG#d(()n$073QLnK!_?J(jR!92LLf7bhmZ6tX;R z_rOXA4cXNxla8FEpJ-;I{o=ZH)Kb!ohPU1?U0oiUq@pDi^Es@TUsuv{=71qGIj zSB%2qEfj4yii-)NS;_!nT}bkW8EDUB-=58Bj3AtlFPT!%Lirg~=T3sj`toz~YL#sJhIXl8-@@Z_-uCEjj4XS57NVya`|*w5*1gHiVE|ePizzZDaSfms1i}GPV@vQ96g5GCSqwAvvpYQ2$+|^ z{Xd${Ij+wC{o~o4tYzDFt+lMRytHc7vW=5%F1wa(+gvu6ZT;?jzK`F3=g)KQ`+ctW zrPuRC#qAo6L|(Zg)S`9t5SqndQj$+$Wzb(DtNc-%#nxc3n>c|!J>C_X02Y2G`wI@E z0pwma_T_F-`q~SX?i9d&Ie+G4Ud+pNwW`P13r`pk-?J<1=dhGTq zVN9d9D|9x^l*UAzrx2;vA>6limjlGLdJnIkOw=wz4j z-eQLW$F$n;^fcM^$BL3Wv+oHi7g}+-L~ixvVWvoG74B-xW(B^C)s%lOxfIW%i+TmE zZ08Q?V)IX%ZcBNo3^(Q`e7mz}I85>)D27oB6VuR0{2}zcAxC-2lSEb!Zn^6F$H4=t z5N~^n_!IL}%wML+ytG7Q>jsy1$E~g9YcaGa+M5@NsBQzShmf8LT*{wi1VKldcp(@w zJPR-%MP3BxzU(K<2SCffZs-3+V!HS!QcU;M-xn=v5RaXDK)2VBM9#Sminxqa-Ktc`W5bDdh)`>H}K+;On0hl^zE$)gXc+-S>f1602d2P^&< zStkw16L$f_JZ28*Ls4ynUy#dF5ru>sdME!Ww6PZUU`qgBu{@Y5rvNjGsyy8UgLtLRp&zu zI1&Y??8V5Be6W~CSDq<1qb|HsM}azLI**CJBUWaAlwqXAfB0pLJZmx-EWR;oQ$IYY zpvz(L-P@VIAl*B9@!QsT^s-6MkT)SV9Ve5W^p}#49}I^$M}CYD-mDUhku$+N^6|nu zHFUz;@}?UJSm&q|UE~#D9^v}Pple!l^x2_ZL3dImoaYa<@m-DcDGwCK8xoC>LRVCs zr(P512L8k}+2ZvnySC(f4PrcCEpZ(!D4m>@^xcba@jIpN?$I9WHK8-1f$ni*C)`FnhsH-VrV%W~F{ba_;*i9mO#UUv1xoDl&mBG4@8Xg=fK zS0Y_yBw-p%|4Y(EKa=OvnQqnROt)HzyTuL{2UMasKuZ1*6Na2&3`{f<>Cc}|%b$H+ z`yh0TV+^Le3^H0D=G8tHpJ>vJGuFe_N;TCix*T=Tl;a)(I|o@j^B?<>@`HspU^{BP zdth(-J=L$;Iyo*I#=NQQ{GPmP573pd{jF#2x znV<IwUi;98W| zK19*7N#zd&MH^Mp*DeQ+m6g3!;v2M`=8u7`Y9cwKC(x%sE{|W4=SvNqy*|{c5;-g_nF$OX##k#daBx5~rxfHtmPf@H_4Qz=1}ccX>Y0DZkn!B<8RR zURU55_RWX8?E270((y&*@dldZ^$QEpR=PjmYB)!X|2LJ44X3JW_Klt8o#?!DPde-)G6iF};A~Qo+QbIaBbBF$O!h-HY#3$GgNnXkXQ+pyy?$2h zmrNfIpe`?wtUFa^)uT$w5>j||tZfB)9*ebWdT-ehZx@S5{O*(BtH;ZFjz2S%jQ#Y7 z>h#oFkdJ(azThjLceA*1T8#@)~0B+ZF3A&YvH;mWbq6hgL% z+E4;X{NqjDVTvm@#g4OR#@*tQNc%fO=-MIc6LW?`T*3SghMF)(WrqdzY8?G_ z(I$U*`#%JfghxRvly*fG%nl~$e-d&JTk33593JUeRPEf|ofEDeN0R)JVeUIX_Mx+brX2A;ui3$yJ(u zlDOtJ>TQZul*3OC{v~$X9l>4CtdT(G`_*$Ui#eB$-o5RcXCi-<%}SOH1iI;@^DC9Z zt8j>A_c{kjmlreax^o8ij%$WaRsAu>$GeqQo!v001okGLMrZ$yfzSd^Z{~69&X%0!&N%Dx;soQMP2DO<67JspwPoBH(WF1Agq7 zKq%?8-nRp)oNbx`d>hPJwch;NROk6vhz4*k3DUWbZ2V8osDk9?M5sI_&%JuJ{!&uW_bzaF1zk2)NBm z(n}F7$hP!@a|bX8q3U1DtQ3FunVaJ2i|6(B81O_^vR=v%3l*x&e=LaZT&MAfE;+@) zzeR*T%Kqd_fHBOiIet;ff}`M2Me<3Dv)p5>?#g!Jg@!)7M1Hyj=@6FM{bgi`wZQxJ z`4T=I-$rk_yefe3I^1*WJLBZf8tWGx491 zan!_II>^E*QW7lxkW{Lo4aa$U ze79?T*+2V1AXJrA|3l{<4pA#;-t2M2DZFsar`okm>)R{UD z@{4nLP@IEJspS<+VGUcn8XhSW-ulXS43&N!!8`wfiunn#WX&XM>wLl<_-beWD+DRO z$lVWThA~0i{7eptaRaFN5bzFP#kLyL^PH6UeG=b@MzFo9!ll1MW|6rj^&r~OUOHjx z_s54ce$|r|rVLUsfjR?XTZc`|Uj>pTVM#H=?e^c zrlDBygY081<Cl;S7HHv^2o8~3^q$hT&#|_&g?9xttcM1~+PTIc+SxAC@gBI1Uk&7L6^^%VM+lx4Sz!Bj#&VqIaQd>< zeP-(<{ft)0qb7BGzXjnx=|hSFZoMcO<8n6jNmT7(*G9xdi!n}oHvQ4UG<>*a6`Fo|$9Fb}m#UPlec|13G z)!KxqbJ$lio@qL*t8&{PP&kt^M=MpD#wI#o7s|xIl~c zK4W^$lgxHNJo0LA@E60(vQBQgc;`fx}cA=#AISI__ki*+S2k z$GGdKBshX|IYLeO2)vv&>Gsf9%m|kQwtzE8;d4=oqo>Ib>lpN3UNiX~<&L zX+rMqXGgTVl7(~v`w{X8|Cw|9FZTI1MksIeE_i{zD2cm^`mm2?Uu7Oyzw0UgcuQB(Hmg-hw*Zi4|LtHCFLwUM=tbtXVYSSV^?#HdH2;lGwya;W<^Ro@TasuBy#2lkR1I z;X{AOtmoUF*;}({XSvE8sRroz>cArAOmca~X@RAD6o}Ncp z82D*5#RvkQ%Ub)Uk6A9^AzMr$b|T)N!h}IJW}Iq6I(t(D?%-u4^q4Q5fHv`xZyS{m zeplwZtU0}#{5I<0vz_MwS!ouVYcQX0@3ay=D?k2xct~h#R3CAcM#t|xkr6aeOe;&B zM~uKvI`x}5k6(cuBu5MbALApuL)q+-K*_E-JOy2LX-_HrhA($@JPKW(VI>{N5Ye(Y zJ}Gt#WSu3Nyd^*mVR|XFQb7%#3QFsF)^e1sWmcE1My)$!r$4#X+cRqYB`2w9EL#;2 zEHyPkI$6DbSpoE{j(sZd*LwZnZm+4PoH=T%=^bhtmGiU_>??@Ck*~kw$nw}W;SF`l z0|<|iLO}AgS8}=JL~PK_@-qQ;&BO|RD2BOw@=CV=G_km81nY9I!244-({UBml2~0% zRL(?p2iS~LG~bxHsIU@&4r&ddYJ6WRO11~qO=1Q5H5c<*L&jt;5l>a0>-H1td)s?y ztG4k&mv@a6BqHxVWFMh)um1Ylm`<}0&=MK_u9D;1b;wC*Y@i$ITg6bLb0^a(WTMqf zTqk#1CYbcY%}IT@qJXB*yEdYm9nMjPuXEQgm5145%tI?fwK|_7Baz5^hC7iyj#2sd zU+J<7fs@$FKEQM`5qe8mL?$Lo+!zYv8LX*45(sbT=dQ>k_jn-qb;2IoJXx-DE{JSM zf(YdHv3*qHHG~oUGZQ0o-%6(3$n3mPVRD?yT6`l>tLD%uAHR7R+pl$)G%6<6KOsg=O96>-v!- zhSK{;;H6u%kR|zQ(#33qu-@5C&)FwjsKYg*?EHxGbbcWq@Vuh7A3rkkdzp*(r4%9F z<+_`3#!anAn&MK0x}JN{ctc$7*gnQB)K%Y>=HPZn>4$AG;UIq;!gUSM;_H0g&o1ff zVgzhdFdt9HutnzdhPY`!6c|nVC@dVp32z@_m(cN(Dl7jv&uEXk- zxowb}k3w=p-H{Y`(;o{#6E%lmPrEA!{UzdN8U4pCg;L{XkWrn`Um5&Bqxp^ zr2@}H3lF!)8&W~qsvq^(xZ6f2adO9z)^tBs9(3sH}&jzprT9%d-^Y z8DXCEM87Wy)+gVa%_FnRdp(}OY6G^SuQTYaM9QQ!-h;oZzx@*-6Ct#{%M>ZdCjMO5 zk)|Exi)kc%JUOmOP@TOChPc5wVnYxY-q(_IdF#znun(vw(JtV#g<)mZq18b-qZCA$ z%+l3*qxzi?x8T_q)OAz+x~KDuk^pR+GXoac*K*p%X@*|AWfHk)uHT_+p(uZ6{#oV0 z)r%3D?LnExwexAtF95;)DqwP_U}?L-hmYKA#!lSZ7UcWQ$&x%loLcA_pq7qs*9@>C~8 zxE942toeVFchD!P4O+d|$$vs>Lokc6cXyEtmS3e=eDbAgeTg&j-b0lA8#@=O1M0jI zcumxXA3fwnTTo75%PzVy9trUHS}2WTmEz|<@j(L$w6{rhImS0DL|YwyP~y^;@o=?_ zOxxiyMED}|<{tdAPOM0gvSl%0d};fyxyvvsY?Fa zPUcMVf{-cwLU5@dGvko+()2HHHPo{VB?05zm=6|3nKP=Z@=Py^E}Xp&!h<(z@_AP} z3;v2S%(U=@DsZXWBM&UKg@#deg^)>U4ASpfq%yK=kL}~KVSX>bP#=7E^I0Cg&CdJY zI-bw|iGBoP*7%Ae66<)-AdIbWGd6`ebr^-z{uf+GvAwFo<@#1T#6&dnQA~4XMQu^E zBFUeahcAdJ*3st0tSlDs?=5x(e`x;UDi$R=+nj81TivX(f*Oi2j_amT z^yL+_F{B|O+jca2x+^>4{iH*w!5u8tUd-%<+}mOZV_x;TM?areMtNY7G|?w-p`V6C zH>~4XPq%CUL&KVa*5ty#xrZJWUXgv;2S zpuI@aGMm53iVxk>+Q0addu$NM|v zPfgFRoYx+~z$fi|0i7+$f+ba$FA~09Wsq@X8L(JxGz(B;w)LxD@nh~=tRObY}w zTkEwsk<1b^lRbm*TlOR!6Z5n&y1uG1VS8P1XK989x(p`}*YJ|+0=Kf&#j@}DjbW6^vlE=tx8=y|aG$G;!4Ji*C+d{m zha@18DVU4wNsuH44RUkoLbO7VCJ}uQxQ33nl+cW$yD$O~p^MIT)v_IueM1lSG;}8+ z!g(g!s=Y&wQ1+1?XfnL3T}j)Ov8dkeEe{Oa$&~%T^^VnGRVDh>>v?3){^bS?)YAnE z_J+FbGAr5UxZ|QnR3an><1`KQu1b!}X4A4?_S9hFB(vjO*qkV&UP1S3Py9tb?GwCE ze-D0lms_1D{5ke3^UV-q0Orck)rBz-P_yMFg_?7Zz^*`C;Hb9A%ls1ioo450Gq29> zj8X8gh><&Jdr6%BGD(b@EqB%FSOD@e^|ossoxWNXJ;HF9A)uFx<4geupB3(??79F# z`eV?SLpNdM@H`DqnN=yRKt8B|A1g`m7iB=eU$V-2*9x)13D3Gka-h7#=XM7bHzxJijAH%i7pnBcNR`#frItUYm@3Wg0V`R4S2zy7Ygb#cr&xeOKbm5UEgcUSScwLPb`a)LFG;{<$Hn zYq2$RrUp4AYarT0b<8Q+HcWs9o$JrNC^JvyD5^HdvX2Z#%%B{iChy z{Ku~ehbO0XrQ=`zr*$*PX`mrAKGBpX8EDnLu{C)N)>#NU7!EFTsHgzNZ=Z6rJZTRH zW!emtudW5tOq7j8fnA-OC(2H@zF8Jksk8yXwE?Kxq zWa%mgTXVmd&3C!IC9^ruecyU`@;U6kir~$O$DC7W7bZ^{-ae$lnh94BUpMALjM?eL)i?+7)>H>*NY^N4TI5H@80;!RKk+Ch=Xkv3njWM}??Ud!U?) zLJ!5@bqG3QJWL+haO;C5Fyw;xe?jnP=k&@bJSrJjU!7~VA#=lZ8@$z9nnL2yN6QZpoRUP zy1Z-cT%KA#htkQb?ibH=pY=Q{CHBX3=|?qOhG>}qqQ4!xf4R6aHhk{sR&v_jI^F_8 zuE6<5(2#kS4fe?@LNIY;l@XaU%*%cvW1p3VpaZR70Q-%`AGs{mKI|g=!~$r z>^fpEa$X~?G-`vYCS)=3i1d14`4;EEj=v3Uu>|A%BR}3kg(lr|=cLVTB8`drgtjT; zq+qfi-R4AYuwq!pGiKthy?(I@Ueh&w71T7GWwpm1&Y;!zMvJy+;?=1rNI6lbkN}W0 zFof%?8JoRqp!GzHClrZKVNRdkAGQUL zO~#VeaM%0eM4IYK7b=n`KxMBa8+^1)*n|>)Z)PGj|7r#P>wuv8ZJ6Bijvh69Xx_I= zNe(;VY*1Mi=+~QtTd+R%0e{Q$u#s%_w8U_+@tmX4$W+190 zpk=0DL&$V7N&97vm4YtiNK!SwjW?)mfjn!*V?Z7t&5lr*luI(O$Jfs}!7U(f!E3ta zGBSRXaqq7;`;$eQPm`+qH)ADe{)?TKKhXJ=XVP@$^JDV&Pb4gZ1{0RGxRP2Cd&l5K z8J>nKz03D7%e$r8?cKfrJ2b|&M*6@8A$|a%oe&_wSh0V$nY@iGpI|?$i#kD$0oI2U zkew8yfM@g@7=3L#*uoK0E3Q>9+m3N`63_EBX|K9loG$ac6E@I-M>J#ln0T#o#E+0ec8)Q_y}-kW)l()@ z929SyH}&2q!)blxn0d7FVF1Hzg4Z#vfV6Ie zoAy%{IkuEYqGLF;WTXVfg_tif7JSYGm@8}0oDgxL79g5{FU5DZ@YY-Ct>SzcMFKsuXe<; z3JS?YqU|0}nW^u^2UQ4=hEP2?E9Lxf%YpX&eHX<195}g1G7(JI#Nt z2rYOoX3NJzYn&}t$l+I9(g$C`5O%*+VgAW55umCPq&hXmK~JzDyni7Qr;;@swAAg_ zuemZ*nb#Pa3(eQ>=argL1^wI(>Yt0s03JVj<{sGC6@6FfY`a%c$}apAz`}2Jm{s zFhas0o==#TM~Z6(2{QTma$5W7lLr7xXUC+2jnm&Lm$4o!yz7CAwS6^?&*9oFRxpy2 z*x;Yy5c>XR#D3zm-hays2>dEP;?F@-^2%j${@_`} zS071QlqkP^34L}xhx<97%Gb%{ck{6wx`T=}V-ddn^W#IcvqYQsD{Nx-xTv%qy0Dx5 zkPp$h5Mm?nqk1;|S>IiGV?}I(j54U32i(IcSD+sxUj3m#wvs74u8))oIEH&apsimG z9dfLK{)_-(_E=7U^1O^{f;MP^0TOZfQX#6V?! zj#E@v_({+%tm15vN4L=nqbw^lg0?rZq7~0dEI$(i&&v{vCYLNF68fNcx63FacopU3 zL~+fE8C94kU-Bg&VwIZgokHH?MSzBmnl+4lOkF&kXy;)q%B6S99`s~}735JxE$YP; zJpa`fy}sQ>7aetLQm5gG6}6y5!t2ERdcqMrDng?21iK0$VK!G8KA>yoWKG0V8 z@a+hFCxbNw71~BZ@)6BiEKb+r}1xm(_V*ubAsb_ zc)}A<#(e6ssDi5TWhn>K%5dk8(i?pf!wtYsk2eVCNC}f|Sc39;3I<k{?1UiHD%EqWEeNU9x$L>ig$0ScoTVG+hsR!U^YQ4zeev z?~x`pAv1`+K)Wc?qCQV}U|1+ZMOjhIP-{tHg6`Ab>{#i8iRJVki&Y0AnP_s(;eiF} zM@>I%=Bfz3as0!oh?%3xmtBQdAYS@X06g(xce%NnYkU#bCpD7lVSo9*dEzZzhF@-D ztg)o#hB_z527hR@c$kx{LnVr1*pm4|GI`Su4P+>>H|<5q@GRYK4v5hl)?Zp*aK@P< z$b5{fW<&ip>pngyV2PrC7Bb;`{7hEPCk+#$PODenX4|&{OovA7=B*1nBF{`;gOIQZ zVt`H~)Y+EQ6>PvK>=~3Mf0Qtb7!)n#3cY;tBUmQ=rb3Nocg#VDU1kdn;~vy=hTZ5L zVUvu3X)3EKLWXTqon9V{y&q5g+($y8d~>`_O-Gf)sXI168KPA`Z&%yH;)1WosKk00 zQDjF(DmncZkMpvquo*w; z#!5Ev-5mY71EB8yW*U3Xc!*%JQb1akXrZ{+gp0KDb9a_%>0-TydQD?7^luhGhM|Mv z7b9bR`UJ}UOAh4(Bl`3++81CSLH)_@M3>e)IVd4vI2?$Z&ZAIRJDTJ@@v2*?= z!k^L89ZtGYa-N1oLS*f)hD<}YP59G4!L_VZ*Cc$u>|htOkGG>pqpdru8%zg}X@Ot&0JbF~Q{b8}T-!4p0B zV7;;G5#xDoa89g|vkBYJ#I#OTyiK7wGE71(+?lU4A4WDx!Bp54GOHzvkz&_*@T0}B z9AhU5@e)#rkM-mDcpSPLz2rJM@I{)?f-_?EJv&tkPXHs+W~YO%yUT+bBZ|GxM+5LM zpQ3@kSvCSb!owfo2r@N?Uw;O>e?#&aeB zgr_GX#P~O;WSSyhT(I{1ZK_2+HP!h!iN$7=;Sms*HU_EsA6?b^W@xt*sK5M*p+Faf zaw9>fY*egaW>x1He78$oyJ0WR)2I@QmKG^_Z8qe4u; z2@Q!h{zM;0H^JJxx9w-CY~ZhLM^5yu#BEjo*Ym4-^HZOKtK9!yA{|r~g%~k!@x&Kqh%YXP zrIqT)islE`f8{hr{$eBw_jB2(%Bc+eJWO&{Sh&HIFzEJ!t#QBo`A?yaLco!)At0B; z6zj6?HrOF*waj(6Q0a0j<=O|$>vm;aQdyb&&---U``PN5QRl(@RE6LlZ$Yvd?OyRMH)gX zXOkXzl9}G^k~CI2j0>4WmSUqCeL2ooo&&S^#vQvy(xJpG6s-zem#6HVsLwJFGK()Gdw zBuaU9|4{ANMm`N)pactiRREFF&H<(TzeC?dschxtCx~?Bk~1j&?|HQh{&vZuu#Ge6 z_U>L&z-g@@{DDr)$t*f6tEKnz@H5qorWp)?Mm8CUAaEv$5`A+`74~qhe0h0V=uEPx zY@hG&nU=&Go-0xHcx>JZBHaDwxO4t~Tj`T{+PI+yfMY3>^}XF#JDb?;ccu9c^W%2` zzfF6u%>8jDxPyroyQ+VODak4U>x#eVuP&fu{&xK-UcPpyaTqb)CSA5=W!}ktpv-Kx zL3y1Fb^D=bqy;*Cb%5BfBB&p z6>@v7SyS-zaaht|?r^xf$3p@+j!av3_BL1eiSRTB+fe+m)lod{;a6PAE?Ouwp$p&B z+MJwjn)!~`QyaPWxAocE&5cOM*4MigVbzy2mre_v1}A6dkuV&_f2^B?(#j6)3H}43 zl^ScnmG}xJZ2(%+cr#esApz`-ua#k}L$oW8&p#5_{bZ~NwNobX0k#wQ%(9w!<41%= z!agXrByUHHju={_j69ed`^e&XU>+m8th$gifq)gNl!(OBdY*XI=(U?a3mg(+u#R7#EwNeBjfnY92OIZaWPcS~Iz zz)M3D-VH^0Sp(b_XQmC=8H0M~W&@G&KDfANeqUxNEI4bwU$+O~S|ctU*Tl^iJ;+u{ zqJWv%X-T=Tgt0>)2o>5(J`KvvPmzT_xM@1J#~o$%PEW`MISpcale@&Rw+~s%uzCB> zR+h=>2c*YAD;3H--qLEsrj<+`X0tBw^hc+Q@D0&SU8}+BhqZc+YtFSasq`u(f1&FV zoX8DeMTl}Kh$Eyo)&Tkt%5*-bY3Ada*eeY9VE=+hmPv+#SJdz1xvx{D|bGyztSm`Dk&mF>sJ;DV)#y!z; zQ+%@T7xGuk6N(^Xgl*^?`0o(J^fO2jEct=(#-B~mghrari5BThNtZK3mIHrI|NI+X*hf_LOS^nsbdU7 zI43x0h7IP)6L`N7nO9dN#PK6i^OUpB4B;IShK|@fO?WCo;TXo#bSk4M__0Q`6`mw| zgSMU13=?nFnr24jum9CFVPbIzV({u3B#?hOiQ@Z8pp%ufyj;m`Pu8LL9;wUqqLE!l zKV#~rF4NJH#wc0HX6R`*F%&=vVr(W%Y1RG!EKDrFW7#+yOyI=W<$aE{cW=zncNpj1 zPXCT{+((#vXwcVeWLCtyuYMZoGD}yx-*1pRp9R_~HFG*JX`fpIO z8`|ZTlpo3-+DE|BKs){O5iWcdq=jf7))C*r7Ke#TW>Ix06e6!SvVh4&%l>oVf!#c6 z<&9WF4pT3nN3m0X@|vqn!{yQUozxm3 z-8|B&!nqt&3-ABaHToL8)P1t)qz zf@30Yujf843edB1?2>c9Q}MH&&Xt7PW+~oLEFoLF`fFC-$10C+*@_{hSJTVd6Eg>y z8WV&Ql`JHF?hgb0*f$|!=33;ldH4eRID^PfrWC_rJF?jpBt(}?rEpKq>#caq8)v7O zI-)D_Bc`!fM{&?pd2HL>Te`W}Jl3|iHAv{esTesuH-l>{sLrfDL;!2SV~e*^@_s?7 zzAzUrXXM`kN|=}>LRDq7YEigC6Vc~S8NCYkqd84DtTV&UXmQEw3?20=K(p>@-0P~* z%})#b)r)I->bi&gq7O@HQB|@!w0ovN&dQ>;ykU7{0$#dtUj07E7`U38n@ls^2JSrG zU+-520f00u8(gVIWkW9)k9A!T5|IoNq;yKxGCcH)y)hzo2t~Y=?;MqQToB(-vZ8it zKRp(56Hz?+!5*Lv0zC@wH_Dj#8JuP~a$nmi z(d>BGKLpTJIeK0cwj&3G##!u6cX9k8{<{+^z`nb&n`*Gfe6Zrg=w*Q8Yk+s`FWvW?{LLL;w>EH?+6nAS(qQ{tqfe8cl3mEpOQ*AU73 zd$TP1XQ-O;$S=wNI#9l8Bv{-NvLG~F7C5Ok!MQtW-^LifHDBr$TX(dow#NCU&EP51JKiEVN1~ z2gQ_CLAy^x(&3*dW(K2i?ey%?;py}gPo#&M|MZ(Oy(_iNvnc7@I={Ndf^WTe<7!~8Beb>VN;q#+Gzf5% zHUnE`KtF^EYRYJFAt)mE$WNRU?2Yg$a~ppW{?1w(Jfy**M^9E=7zMKSjgtf!L`FNU zvb_Je4}NDdMu;nnvlgHF(%JkGB7k5Ouk%520Tso%?eeo$lP$32cQv~GIm9sR5CC{k zh`t^w73AcI7b<3ap!3Pd$guy%qj-6|Ht7jKtU0b|g+t1MpG>iCTu5``;fHdQZgRt* za*J7tMxo-GiY?j``|8&OlX^HPz6G%!!)@J0p#PzdP=<5g-+U*;!zxe}dY+xLH2cmZ zTC}RnFQzA7S0r#btvV0Li2W5&CGpW$Wf*>W!uyTv^KSe(vRNoUX819^WpARnQX~gg zoTLe&@v8V2O?=mi7*V>>vpfD4zQcygcnyNPw1QC*Y+enUiPhFadH>!4$qqH`nV@uG zq@wj<3ZJbB(QiczL}6ScNX?Wr&+GAqv8?CSgKs9H+aZ*eGpB`V)^W9yBCW}!XIx>Z z*c~?otU&knko8GJ->bge5PGN~TJ%j*&+At05xA4Bdd>hg=OKwt1bOu9ua8@1B9o+C@)N1Z=a%uGblTowOy?vk_nbG6 zETh}ZO?v5{-(;G`*KJ}v54t=@{s#G1%x?vSt&a*rv9{mDwcGUojGchiV1Yo9O<(8} zokeBH9`|3B7a=PzjNE6uX}6{-I3)B=b*+ z2cax6a(xbI`;waEyaTW!@Dc~IA4r3AiW&J7_=h-hE* zRRAo>h%kMyqc8tagvOgnqh{wO9_Tj4q6<96)+<`wB+=o%#PB%v>s1J-qwO~<{C6*g z{dLQi{PvMyRiJ|*A5L>Nv9#Zu_;*s=yyw3@0ya$cXbEyKgoxPj0Mb@fxFGf*s)f$NC^G-* zAID7YR~%gHWN#zQ90cA3)kqWeIUE!_pacvlx#(h4e=fxGtVOXFIb&oBPm)|Jg%%_JQ+pW0--Jzv)Aj9y!HFf5TE|FNAuNr+o@&F5Z8k< zcq(JhN#o9So8u+KjMV?dqb^aXm#V{iiS+lB(q2>T7F(xm0wtEo&T^Sdz{*#|b!O9* zA_9NZ516RgI|YC9uz%xKupRxmL8>!x3I-_H*x+qS-|hz!G@j8wG_GMhTJ9lWCQA{l z@PSMR_15$^yW3YE{yhiiy=LmQR?fR*kvsmggYlf+H()u?GQ6~G_j&N8{wg96hwbiI z8F#XC34+{(*CG;{Rp+db~Aq3OvoyX)rKNo0=ddS6|WZ?YCTM~u^)xzfVwe!iy&R#=ars!Ogk+kBZW+0aFRLg*}T#G`BPoCE6 zsvdXA0vc=0}IVLP{C)Y!yLDYcE-)>nR8h$)3%7i^${O^{w%)j%bh2Ml9lwiXGPkOMsIltCw7`|M zicIIJoz~vrC!Are;82-iW})IHkt8#M83Vh{%#O)_gj||%SN`l)qwZYn2uq%(X*Khe zD?|e`ASRVmp5WHMpFO!Of!zOT*m~Y^Mu=a&y4QI(nWVL3?*6zYR7Es}IN%ED zNfTEA*8o*2H}d$__UY{3&1lp}q8zI#pH*A7I)Hjk>CY^or1(7lq+a)-?CRg2av8zk z5K>e?Y1tl!Svcc&+9YP{LkF(b`V2kqm|T)4<&wHhtW}XFC*R#h$)Yi#oT>~jMUIqY zb~Zu^^kx1q5A7$KW?xgS7#pgVD-ODVnl5lNR;B%d^5V>h)Q6^OZ&&)9NzK`x)xwW+ z?2&f^aC;ZS+x(%8kgv}pp|h>L{ugon=Mx0SU{rw*vgG(~;G|fFVmP;IN z*W{f$r%rZ3tN*Q-kJ?3+O> zCCiHDdG#R4)ywsyoRpMQ^n)9?sB5!eY7o&7_pGqZA(4&ODht-?8BX(B94=?y%+1VV z{t>EsuL*71R3=2mduMX{&^z4;Hh#1^-jJ3m?Sd{mFTzyqoRDaklDJ9+A(jX|^3eq7+ z4&6Bn-7PI4sidNG_t4z}5>i7q4BgGy{J-y}x8WyyYO!8c@+45jI zIU}oe|BuYQtA3-mY=j7I!L*YR`tGyKwom|N*0cX&wQT;_bt|nYrAYMIzZ8Hczxj;!(!X!bN{GVn){<5Md`>wVvbMZ}) zJPP1PvUh}iK~$YZG)wRJv5HFGw+oRM1#=YBWmPFOJpi@!Dc|2%Uj~_9?EP~Aa$9Gw zlqU{={;_(6>aUD)L%lb(U`Gc9*FY7eA1@f?D9bo`x;rUpNmQILA~ zh^-Ake~K-htciHTlem2&G$z%S#uQqd_o#^-2B`bpH2Tue;Qw0E!f0=1!PQ*v$ZB&S ztUS;{l(Uc1KA+7$XanI=PX_bsq7L(Nqe6w9eSJr?%Z}G-xd+D_5r9(pe63eP`MYhR z$+?HFH>AO4`z!F|%(+$LwB)AH0HruozjWbrGE++kX;j+lW7}nriKsM%Ly1^oSZ!ov zjGwt*0NM!Mq=~7=QR~$u!=hAfVh{SpRN3zFRXwvE;csSBNNIya$80@Wfq}!XU{hLV)or& zRH(e!EAlJPau8QiLlFnnYPesAa=_ls2jSa^6qjk~*m@Ui0v0=A;tO%>xvf?7m#Yh< zvy~;zneKCcj>yrllh?})xC=%X{b#ErFYENKx}g_p&cFxq~{w&kai6sDJmj34;~MKfmAYz|DH~ z!UAFtioMNb2BGPp=T4xO?!qN|EoBnsv7P0qsHv$L&z28F9ydI-sT(uiRS6W@k@SQqni ztpRrXMA&vkDvvVzRz7CsN)LBy;I;Nq{U1c%L8ayc`D=3}1;q28|H(Auj8gV{UwR7* zH%`W1-rA6eILjgyeIFzOGF14&j0ts6d>GW(EI?xh?#5rm7=9w>22a~bPvQ!Z8h|zcztB1uKs=+&EI&P7ZBB!n4(LVXo1WWdxtn$vd=+;C?haTgKf#>)sV(mg z8X5w{k#tGF72iJh1#GNpKY|UpwgVe|8zd84XMcBA{7S?}p=@`)JLx}-p4>Y~Y_vzA zWFcBqnfocNU8cv=tQXT3?#%Qh*?}XTrZU&H#;m)hbWl;b-vO}6-jI-s4i;0&y6To3 zfA&Wk{ABO{S19w$Txqsm0!QyH&VSqT#0Lcb6n)Fy2$5T&^E0}omBO69w2;2v=uGiI zVN$ACUwR0GIte14LhWqiWOboK7rC!g+p4^T359OsXmYB{=KXiQ?sRa8c3HJT9Z)U? zBXMfK?&Wddd2TyKg|{pM59$KMi_WHkw?1Ib2Ceo>K2~uWKq2pwzZHwvPjhzqIE21% zPqH(ZbPQ$b2Qr8a7-n0icBR&0Dfkt^(A5{)zpy9ksgcfi*TD*qKh;(v6dA9Z0VMALuUqYoc=Me`4$tfvu{yR2I4y~F;{K)*Q1^On zo~Rz?PU5Pch2jthfUXy|C9L~TVw%%8I5gpwz`TehysY66zaj@~gVtV;ZdsM{{&W0r z{C5ws2|}0qlPdl&@m(4~0Or_v17ON2<*k@E) zL)SxbjN~1~mJ9J_nqBz&^jHADcX$6sWTvweVFXUy{guSB5JU`YSXqwZIgO^pSHPYr zh0jWX1lZnl2eYlc=X460O|z90EYIFaDG2gdoVPI~;3272tF+I$A;*p;Bl9gdt17I8 zzckHHNtcac%com>o#%G7=-D9ner5D$etUU2cZN-OE5H;g0#(gQ!uyro`^NV6CC_?S zeUxA+{?&+6fa`np1hDbl{LDT)0;WAg0N;-=#!}0-5+6w>|5e=$r`v!%$9lK+GubP= zZ=4W2toCnhc^uVmUNT$96KPp5t!Rm0low)MFNFbraBV_xx-iPoEs_-SrL8t7ahMph zgb{e7J0@QO~;1A&6>d`vlN_hg6qIV+d-Siws# z17l+zmMphKm8Mo8Dpx%FJ1NtjTvlWCc@y%KG#+10+N~sHt8JiF`J}j?V|Xam8`yy) zmmN}ANE?Q0#}{S3pNU_kzrzfKFcm>mbE7Y)uXg0MPtxU*O4r3J7zf2Fw(~iU-+S*Y zGmUwTiHTUg<(e)w1rm!eK2t($^kHmcJhmxOzfSqHC?<1_{c2?M1NS?;7SGRV?P*?FozX2{}ulghgO|nI9X~0J}=EU~PAY9Ph)=jTYLS zmfJ4he$?%KcosVW#;iJGC0_jUo4>g8S`W?D2-X0q@GkaOJ1HuxnG+9jFXIuqO zU-F4&DeR21kDQwiftM=kU9Bm{>ikBV%LeEFxuw*V*dARnV||f=nofRRFJ07DYY+$w z3N6(maO&vVc1EIm6E!Ytkzf0^LSaP1I6&{moVe)*AcfTBXPP`%kZ>0yd)d zAvlp)8!%0!dCMtnWJT#uJJyvR$X}gzkr`Ow&>2e$y)#`*POW35pGkk-)SpFCJGRb^ zKJEMsKFt8aFaQLa3iJ=WG2A`~W9B;D$tAhzZV*f<`sGs`;7z|2^i!oxk5+%S?~E}< zza5d<9asS$w8$poi{Rg)u4D?fLLH=Rm)dGigY(_|Z_ihY z{Ha7eO7C~o0u#^1B$tiu4#G%{DvucVfs5Bhgyj9tmy`mfa^KR^(`jZB2t%ED>;-!^ z`#*LbNB65yDcsUeD?jI2Si&uqPZmiy{IqTR9R&|~`VVKmaq!hnydE_VFroiYBF(b; z!CNioA077epLN`fW+ZaKj;sKEnc-A%8mKIeSvllR`mxW9ehfv z&x?T03H`@INcXp(ZSSNif{mX`-*sA{1h1#XdLpD^>t>yF{KjpSqov##R+wNd)6T`J zZe82yJ=mh!lDywhsO~2xUhhd^t84;YQ7pP}$DT<1HKv`R!SI$I=`NSzGTV=u+y|xE zImi7e6HRRu%Cy_@x_=Z$3wO=tmq14qDUw-a0o`8;`E0Jw@l1T2bE!AvOOVgG9S|`-%8`-myQeeUE6Vf#Q)nv z5z8E?GF3Rv^or!u-$F8TP8*}xb2CJIT|AVJJ~g>PoDP6jJ}|pE+tSLz%5x~|yX%qv z=yr{$E39$bZ!8OxeaCSUbCus)-=+w(Q!8JGR1R*FF1t2MRLHqF$}iw|iGM}F@XA6M z&4awz6lQ;v3mKd#yS~cygL=xqZda8gy*@hBIDI<~LcJP?&{$>6mz2wa ze%q8Z>dHd%FUcLggXKyeI(Z|6NK_#WJ~lp4rB4!VYwuo9M`ah7TiTND$QYoh6;hiSCHR_iu0djuq}1WsfbhpDy-yxe{)4W9IevY-X>! zB23!_DmBC1GdT86Au57K0N30 zmktBx77M!5PP0S-{G>xnKQ#ym3nM{_4`b)9R(G^}(4l?uvdp{R$IwH+eSLgMt3-Ry zv0?F*@8$kU3C$|x@v@;^4~dLK>YM1zMpBtOjrRsV2QLusO-xKY-7@}5ZWyTAvf-i- z1ZVE3i?_ko?tqq+4WLatX+2J~+;rUd@s!m2;-AiDijL7&@M07HAJ4V4Q0chLS)cmv zCgFZpFx7ec1VWFgflvAO8O+4e4TDL+8L;mP@p ziQGO0MB1>@>&-6|a53*y8fL2Lgm`)ceEp8@6dz z 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 XvkAWYr>|453-Ju7^w=lA~rQ~o&l literal 0 HcmV?d00001 From 657f662e6202a304618a89573232000aef08d82f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 30 Jul 2024 07:25:51 -0700 Subject: [PATCH 04/43] Bump types-setuptools from 71.0.0.20240722 to 71.1.0.20240726 (#720) Bumps [types-setuptools](https://github.com/python/typeshed) from 71.0.0.20240722 to 71.1.0.20240726. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index b258dbe8..e5f2b0fa 100644 --- a/poetry.lock +++ b/poetry.lock @@ -805,13 +805,13 @@ files = [ [[package]] name = "types-setuptools" -version = "71.0.0.20240722" +version = "71.1.0.20240726" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-71.0.0.20240722.tar.gz", hash = "sha256:8f1fd5281945ed8f5a896f05dd50bc31917d6e2487ff9508f4bac522d13ad395"}, - {file = "types_setuptools-71.0.0.20240722-py3-none-any.whl", hash = "sha256:04a383bd1a2dcdb6a85397516ce2d7b46617d89f1d758f686d0d9069943d9811"}, + {file = "types-setuptools-71.1.0.20240726.tar.gz", hash = "sha256:85ba28e9461bb1be86ebba4db0f1c2408f2b11115b1966334ea9dc464e29303e"}, + {file = "types_setuptools-71.1.0.20240726-py3-none-any.whl", hash = "sha256:a7775376f36e0ff09bcad236bf265777590a66b11623e48c20bfc30f1444ea36"}, ] [[package]] @@ -963,4 +963,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "0d5a56908d1fdb653867db55416e55c841b5f5ac94f8607b51dddc177115d6d1" +content-hash = "dd52ab51430e0d0f4fcd405037304b756c019837bec333e0c0b53a2c2e0a9bef" diff --git a/pyproject.toml b/pyproject.toml index 931d9805..ddd0697e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^2.0.0" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^71.0.0" +types-setuptools = "^71.1.0" pook = "^2.0.0" orjson = "^3.10.6" From 53c5a1181b89cf751633aad6bf0725119aaff453 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 00:48:54 -0700 Subject: [PATCH 05/43] Bump mypy from 1.11.0 to 1.11.1 (#723) Bumps [mypy](https://github.com/python/mypy) from 1.11.0 to 1.11.1. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.11...v1.11.1) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 56 ++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/poetry.lock b/poetry.lock index e5f2b0fa..f1d1dbe0 100644 --- a/poetry.lock +++ b/poetry.lock @@ -312,38 +312,38 @@ files = [ [[package]] name = "mypy" -version = "1.11.0" +version = "1.11.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.11.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a3824187c99b893f90c845bab405a585d1ced4ff55421fdf5c84cb7710995229"}, - {file = "mypy-1.11.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:96f8dbc2c85046c81bcddc246232d500ad729cb720da4e20fce3b542cab91287"}, - {file = "mypy-1.11.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1a5d8d8dd8613a3e2be3eae829ee891b6b2de6302f24766ff06cb2875f5be9c6"}, - {file = "mypy-1.11.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:72596a79bbfb195fd41405cffa18210af3811beb91ff946dbcb7368240eed6be"}, - {file = "mypy-1.11.0-cp310-cp310-win_amd64.whl", hash = "sha256:35ce88b8ed3a759634cb4eb646d002c4cef0a38f20565ee82b5023558eb90c00"}, - {file = "mypy-1.11.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:98790025861cb2c3db8c2f5ad10fc8c336ed2a55f4daf1b8b3f877826b6ff2eb"}, - {file = "mypy-1.11.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:25bcfa75b9b5a5f8d67147a54ea97ed63a653995a82798221cca2a315c0238c1"}, - {file = "mypy-1.11.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bea2a0e71c2a375c9fa0ede3d98324214d67b3cbbfcbd55ac8f750f85a414e3"}, - {file = "mypy-1.11.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:d2b3d36baac48e40e3064d2901f2fbd2a2d6880ec6ce6358825c85031d7c0d4d"}, - {file = "mypy-1.11.0-cp311-cp311-win_amd64.whl", hash = "sha256:d8e2e43977f0e09f149ea69fd0556623919f816764e26d74da0c8a7b48f3e18a"}, - {file = "mypy-1.11.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:1d44c1e44a8be986b54b09f15f2c1a66368eb43861b4e82573026e04c48a9e20"}, - {file = "mypy-1.11.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:cea3d0fb69637944dd321f41bc896e11d0fb0b0aa531d887a6da70f6e7473aba"}, - {file = "mypy-1.11.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a83ec98ae12d51c252be61521aa5731f5512231d0b738b4cb2498344f0b840cd"}, - {file = "mypy-1.11.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:c7b73a856522417beb78e0fb6d33ef89474e7a622db2653bc1285af36e2e3e3d"}, - {file = "mypy-1.11.0-cp312-cp312-win_amd64.whl", hash = "sha256:f2268d9fcd9686b61ab64f077be7ffbc6fbcdfb4103e5dd0cc5eaab53a8886c2"}, - {file = "mypy-1.11.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:940bfff7283c267ae6522ef926a7887305945f716a7704d3344d6d07f02df850"}, - {file = "mypy-1.11.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:14f9294528b5f5cf96c721f231c9f5b2733164e02c1c018ed1a0eff8a18005ac"}, - {file = "mypy-1.11.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d7b54c27783991399046837df5c7c9d325d921394757d09dbcbf96aee4649fe9"}, - {file = "mypy-1.11.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:65f190a6349dec29c8d1a1cd4aa71284177aee5949e0502e6379b42873eddbe7"}, - {file = "mypy-1.11.0-cp38-cp38-win_amd64.whl", hash = "sha256:dbe286303241fea8c2ea5466f6e0e6a046a135a7e7609167b07fd4e7baf151bf"}, - {file = "mypy-1.11.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:104e9c1620c2675420abd1f6c44bab7dd33cc85aea751c985006e83dcd001095"}, - {file = "mypy-1.11.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f006e955718ecd8d159cee9932b64fba8f86ee6f7728ca3ac66c3a54b0062abe"}, - {file = "mypy-1.11.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:becc9111ca572b04e7e77131bc708480cc88a911adf3d0239f974c034b78085c"}, - {file = "mypy-1.11.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:6801319fe76c3f3a3833f2b5af7bd2c17bb93c00026a2a1b924e6762f5b19e13"}, - {file = "mypy-1.11.0-cp39-cp39-win_amd64.whl", hash = "sha256:c1a184c64521dc549324ec6ef7cbaa6b351912be9cb5edb803c2808a0d7e85ac"}, - {file = "mypy-1.11.0-py3-none-any.whl", hash = "sha256:56913ec8c7638b0091ef4da6fcc9136896914a9d60d54670a75880c3e5b99ace"}, - {file = "mypy-1.11.0.tar.gz", hash = "sha256:93743608c7348772fdc717af4aeee1997293a1ad04bc0ea6efa15bf65385c538"}, + {file = "mypy-1.11.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a32fc80b63de4b5b3e65f4be82b4cfa362a46702672aa6a0f443b4689af7008c"}, + {file = "mypy-1.11.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c1952f5ea8a5a959b05ed5f16452fddadbaae48b5d39235ab4c3fc444d5fd411"}, + {file = "mypy-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1e30dc3bfa4e157e53c1d17a0dad20f89dc433393e7702b813c10e200843b03"}, + {file = "mypy-1.11.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2c63350af88f43a66d3dfeeeb8d77af34a4f07d760b9eb3a8697f0386c7590b4"}, + {file = "mypy-1.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:a831671bad47186603872a3abc19634f3011d7f83b083762c942442d51c58d58"}, + {file = "mypy-1.11.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7b6343d338390bb946d449677726edf60102a1c96079b4f002dedff375953fc5"}, + {file = "mypy-1.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4fe9f4e5e521b458d8feb52547f4bade7ef8c93238dfb5bbc790d9ff2d770ca"}, + {file = "mypy-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:886c9dbecc87b9516eff294541bf7f3655722bf22bb898ee06985cd7269898de"}, + {file = "mypy-1.11.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fca4a60e1dd9fd0193ae0067eaeeb962f2d79e0d9f0f66223a0682f26ffcc809"}, + {file = "mypy-1.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:0bd53faf56de9643336aeea1c925012837432b5faf1701ccca7fde70166ccf72"}, + {file = "mypy-1.11.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f39918a50f74dc5969807dcfaecafa804fa7f90c9d60506835036cc1bc891dc8"}, + {file = "mypy-1.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0bc71d1fb27a428139dd78621953effe0d208aed9857cb08d002280b0422003a"}, + {file = "mypy-1.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b868d3bcff720dd7217c383474008ddabaf048fad8d78ed948bb4b624870a417"}, + {file = "mypy-1.11.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a707ec1527ffcdd1c784d0924bf5cb15cd7f22683b919668a04d2b9c34549d2e"}, + {file = "mypy-1.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:64f4a90e3ea07f590c5bcf9029035cf0efeae5ba8be511a8caada1a4893f5525"}, + {file = "mypy-1.11.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:749fd3213916f1751fff995fccf20c6195cae941dc968f3aaadf9bb4e430e5a2"}, + {file = "mypy-1.11.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b639dce63a0b19085213ec5fdd8cffd1d81988f47a2dec7100e93564f3e8fb3b"}, + {file = "mypy-1.11.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c956b49c5d865394d62941b109728c5c596a415e9c5b2be663dd26a1ff07bc0"}, + {file = "mypy-1.11.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45df906e8b6804ef4b666af29a87ad9f5921aad091c79cc38e12198e220beabd"}, + {file = "mypy-1.11.1-cp38-cp38-win_amd64.whl", hash = "sha256:d44be7551689d9d47b7abc27c71257adfdb53f03880841a5db15ddb22dc63edb"}, + {file = "mypy-1.11.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2684d3f693073ab89d76da8e3921883019ea8a3ec20fa5d8ecca6a2db4c54bbe"}, + {file = "mypy-1.11.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:79c07eb282cb457473add5052b63925e5cc97dfab9812ee65a7c7ab5e3cb551c"}, + {file = "mypy-1.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11965c2f571ded6239977b14deebd3f4c3abd9a92398712d6da3a772974fad69"}, + {file = "mypy-1.11.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a2b43895a0f8154df6519706d9bca8280cda52d3d9d1514b2d9c3e26792a0b74"}, + {file = "mypy-1.11.1-cp39-cp39-win_amd64.whl", hash = "sha256:1a81cf05975fd61aec5ae16501a091cfb9f605dc3e3c878c0da32f250b74760b"}, + {file = "mypy-1.11.1-py3-none-any.whl", hash = "sha256:0624bdb940255d2dd24e829d99a13cfeb72e4e9031f9492148f410ed30bcab54"}, + {file = "mypy-1.11.1.tar.gz", hash = "sha256:f404a0b069709f18bbdb702eb3dcfe51910602995de00bd39cea3050b5772d08"}, ] [package.dependencies] From efa133b23c931e5718cf465f28e34df24d163094 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Aug 2024 01:08:31 -0700 Subject: [PATCH 06/43] Bump black from 24.4.2 to 24.8.0 (#724) Bumps [black](https://github.com/psf/black) from 24.4.2 to 24.8.0. - [Release notes](https://github.com/psf/black/releases) - [Changelog](https://github.com/psf/black/blob/main/CHANGES.md) - [Commits](https://github.com/psf/black/compare/24.4.2...24.8.0) --- updated-dependencies: - dependency-name: black dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 48 ++++++++++++++++++++++++------------------------ pyproject.toml | 2 +- 2 files changed, 25 insertions(+), 25 deletions(-) diff --git a/poetry.lock b/poetry.lock index f1d1dbe0..bcd6bc43 100644 --- a/poetry.lock +++ b/poetry.lock @@ -44,33 +44,33 @@ pytz = ">=2015.7" [[package]] name = "black" -version = "24.4.2" +version = "24.8.0" description = "The uncompromising code formatter." optional = false python-versions = ">=3.8" files = [ - {file = "black-24.4.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:dd1b5a14e417189db4c7b64a6540f31730713d173f0b63e55fabd52d61d8fdce"}, - {file = "black-24.4.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8e537d281831ad0e71007dcdcbe50a71470b978c453fa41ce77186bbe0ed6021"}, - {file = "black-24.4.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:eaea3008c281f1038edb473c1aa8ed8143a5535ff18f978a318f10302b254063"}, - {file = "black-24.4.2-cp310-cp310-win_amd64.whl", hash = "sha256:7768a0dbf16a39aa5e9a3ded568bb545c8c2727396d063bbaf847df05b08cd96"}, - {file = "black-24.4.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:257d724c2c9b1660f353b36c802ccece186a30accc7742c176d29c146df6e474"}, - {file = "black-24.4.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bdde6f877a18f24844e381d45e9947a49e97933573ac9d4345399be37621e26c"}, - {file = "black-24.4.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e151054aa00bad1f4e1f04919542885f89f5f7d086b8a59e5000e6c616896ffb"}, - {file = "black-24.4.2-cp311-cp311-win_amd64.whl", hash = "sha256:7e122b1c4fb252fd85df3ca93578732b4749d9be076593076ef4d07a0233c3e1"}, - {file = "black-24.4.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:accf49e151c8ed2c0cdc528691838afd217c50412534e876a19270fea1e28e2d"}, - {file = "black-24.4.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:88c57dc656038f1ab9f92b3eb5335ee9b021412feaa46330d5eba4e51fe49b04"}, - {file = "black-24.4.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:be8bef99eb46d5021bf053114442914baeb3649a89dc5f3a555c88737e5e98fc"}, - {file = "black-24.4.2-cp312-cp312-win_amd64.whl", hash = "sha256:415e686e87dbbe6f4cd5ef0fbf764af7b89f9057b97c908742b6008cc554b9c0"}, - {file = "black-24.4.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:bf10f7310db693bb62692609b397e8d67257c55f949abde4c67f9cc574492cc7"}, - {file = "black-24.4.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:98e123f1d5cfd42f886624d84464f7756f60ff6eab89ae845210631714f6db94"}, - {file = "black-24.4.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:48a85f2cb5e6799a9ef05347b476cce6c182d6c71ee36925a6c194d074336ef8"}, - {file = "black-24.4.2-cp38-cp38-win_amd64.whl", hash = "sha256:b1530ae42e9d6d5b670a34db49a94115a64596bc77710b1d05e9801e62ca0a7c"}, - {file = "black-24.4.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:37aae07b029fa0174d39daf02748b379399b909652a806e5708199bd93899da1"}, - {file = "black-24.4.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:da33a1a5e49c4122ccdfd56cd021ff1ebc4a1ec4e2d01594fef9b6f267a9e741"}, - {file = "black-24.4.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ef703f83fc32e131e9bcc0a5094cfe85599e7109f896fe8bc96cc402f3eb4b6e"}, - {file = "black-24.4.2-cp39-cp39-win_amd64.whl", hash = "sha256:b9176b9832e84308818a99a561e90aa479e73c523b3f77afd07913380ae2eab7"}, - {file = "black-24.4.2-py3-none-any.whl", hash = "sha256:d36ed1124bb81b32f8614555b34cc4259c3fbc7eec17870e8ff8ded335b58d8c"}, - {file = "black-24.4.2.tar.gz", hash = "sha256:c872b53057f000085da66a19c55d68f6f8ddcac2642392ad3a355878406fbd4d"}, + {file = "black-24.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:09cdeb74d494ec023ded657f7092ba518e8cf78fa8386155e4a03fdcc44679e6"}, + {file = "black-24.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:81c6742da39f33b08e791da38410f32e27d632260e599df7245cccee2064afeb"}, + {file = "black-24.8.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:707a1ca89221bc8a1a64fb5e15ef39cd755633daa672a9db7498d1c19de66a42"}, + {file = "black-24.8.0-cp310-cp310-win_amd64.whl", hash = "sha256:d6417535d99c37cee4091a2f24eb2b6d5ec42b144d50f1f2e436d9fe1916fe1a"}, + {file = "black-24.8.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:fb6e2c0b86bbd43dee042e48059c9ad7830abd5c94b0bc518c0eeec57c3eddc1"}, + {file = "black-24.8.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:837fd281f1908d0076844bc2b801ad2d369c78c45cf800cad7b61686051041af"}, + {file = "black-24.8.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:62e8730977f0b77998029da7971fa896ceefa2c4c4933fcd593fa599ecbf97a4"}, + {file = "black-24.8.0-cp311-cp311-win_amd64.whl", hash = "sha256:72901b4913cbac8972ad911dc4098d5753704d1f3c56e44ae8dce99eecb0e3af"}, + {file = "black-24.8.0-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:7c046c1d1eeb7aea9335da62472481d3bbf3fd986e093cffd35f4385c94ae368"}, + {file = "black-24.8.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:649f6d84ccbae73ab767e206772cc2d7a393a001070a4c814a546afd0d423aed"}, + {file = "black-24.8.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2b59b250fdba5f9a9cd9d0ece6e6d993d91ce877d121d161e4698af3eb9c1018"}, + {file = "black-24.8.0-cp312-cp312-win_amd64.whl", hash = "sha256:6e55d30d44bed36593c3163b9bc63bf58b3b30e4611e4d88a0c3c239930ed5b2"}, + {file = "black-24.8.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:505289f17ceda596658ae81b61ebbe2d9b25aa78067035184ed0a9d855d18afd"}, + {file = "black-24.8.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b19c9ad992c7883ad84c9b22aaa73562a16b819c1d8db7a1a1a49fb7ec13c7d2"}, + {file = "black-24.8.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:1f13f7f386f86f8121d76599114bb8c17b69d962137fc70efe56137727c7047e"}, + {file = "black-24.8.0-cp38-cp38-win_amd64.whl", hash = "sha256:f490dbd59680d809ca31efdae20e634f3fae27fba3ce0ba3208333b713bc3920"}, + {file = "black-24.8.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:eab4dd44ce80dea27dc69db40dab62d4ca96112f87996bca68cd75639aeb2e4c"}, + {file = "black-24.8.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:3c4285573d4897a7610054af5a890bde7c65cb466040c5f0c8b732812d7f0e5e"}, + {file = "black-24.8.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9e84e33b37be070ba135176c123ae52a51f82306def9f7d063ee302ecab2cf47"}, + {file = "black-24.8.0-cp39-cp39-win_amd64.whl", hash = "sha256:73bbf84ed136e45d451a260c6b73ed674652f90a2b3211d6a35e78054563a9bb"}, + {file = "black-24.8.0-py3-none-any.whl", hash = "sha256:972085c618ee94f402da1af548a4f218c754ea7e5dc70acb168bfaca4c2542ed"}, + {file = "black-24.8.0.tar.gz", hash = "sha256:2500945420b6784c38b9ee885af039f5e7471ef284ab03fa35ecdde4688cd83f"}, ] [package.dependencies] @@ -963,4 +963,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "dd52ab51430e0d0f4fcd405037304b756c019837bec333e0c0b53a2c2e0a9bef" +content-hash = "727e999503d474aca451156967f9dde6653456d4b13553d2838606cb3f4c6a85" diff --git a/pyproject.toml b/pyproject.toml index ddd0697e..dba65afe 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -30,7 +30,7 @@ websockets = ">=10.3,<13.0" certifi = ">=2022.5.18,<2025.0.0" [tool.poetry.dev-dependencies] -black = "^24.4.2" +black = "^24.8.0" mypy = "^1.11" types-urllib3 = "^1.26.25" Sphinx = "^7.1.2" From b88c1f2308ad888ced3597b5ba5a14ae4c114bd0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 16:40:39 +0000 Subject: [PATCH 07/43] Bump orjson from 3.10.6 to 3.10.7 (#727) --- poetry.lock | 112 ++++++++++++++++++++++++++----------------------- pyproject.toml | 2 +- 2 files changed, 60 insertions(+), 54 deletions(-) diff --git a/poetry.lock b/poetry.lock index bcd6bc43..fa02ba6b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -384,62 +384,68 @@ six = ">=1.8.0" [[package]] name = "orjson" -version = "3.10.6" +version = "3.10.7" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.10.6-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:fb0ee33124db6eaa517d00890fc1a55c3bfe1cf78ba4a8899d71a06f2d6ff5c7"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c1c4b53b24a4c06547ce43e5fee6ec4e0d8fe2d597f4647fc033fd205707365"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eadc8fd310edb4bdbd333374f2c8fec6794bbbae99b592f448d8214a5e4050c0"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:61272a5aec2b2661f4fa2b37c907ce9701e821b2c1285d5c3ab0207ebd358d38"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:57985ee7e91d6214c837936dc1608f40f330a6b88bb13f5a57ce5257807da143"}, - {file = "orjson-3.10.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:633a3b31d9d7c9f02d49c4ab4d0a86065c4a6f6adc297d63d272e043472acab5"}, - {file = "orjson-3.10.6-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:1c680b269d33ec444afe2bdc647c9eb73166fa47a16d9a75ee56a374f4a45f43"}, - {file = "orjson-3.10.6-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:f759503a97a6ace19e55461395ab0d618b5a117e8d0fbb20e70cfd68a47327f2"}, - {file = "orjson-3.10.6-cp310-none-win32.whl", hash = "sha256:95a0cce17f969fb5391762e5719575217bd10ac5a189d1979442ee54456393f3"}, - {file = "orjson-3.10.6-cp310-none-win_amd64.whl", hash = "sha256:df25d9271270ba2133cc88ee83c318372bdc0f2cd6f32e7a450809a111efc45c"}, - {file = "orjson-3.10.6-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:b1ec490e10d2a77c345def52599311849fc063ae0e67cf4f84528073152bb2ba"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:55d43d3feb8f19d07e9f01e5b9be4f28801cf7c60d0fa0d279951b18fae1932b"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ac3045267e98fe749408eee1593a142e02357c5c99be0802185ef2170086a863"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c27bc6a28ae95923350ab382c57113abd38f3928af3c80be6f2ba7eb8d8db0b0"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d27456491ca79532d11e507cadca37fb8c9324a3976294f68fb1eff2dc6ced5a"}, - {file = "orjson-3.10.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:05ac3d3916023745aa3b3b388e91b9166be1ca02b7c7e41045da6d12985685f0"}, - {file = "orjson-3.10.6-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:1335d4ef59ab85cab66fe73fd7a4e881c298ee7f63ede918b7faa1b27cbe5212"}, - {file = "orjson-3.10.6-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:4bbc6d0af24c1575edc79994c20e1b29e6fb3c6a570371306db0993ecf144dc5"}, - {file = "orjson-3.10.6-cp311-none-win32.whl", hash = "sha256:450e39ab1f7694465060a0550b3f6d328d20297bf2e06aa947b97c21e5241fbd"}, - {file = "orjson-3.10.6-cp311-none-win_amd64.whl", hash = "sha256:227df19441372610b20e05bdb906e1742ec2ad7a66ac8350dcfd29a63014a83b"}, - {file = "orjson-3.10.6-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ea2977b21f8d5d9b758bb3f344a75e55ca78e3ff85595d248eee813ae23ecdfb"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:b6f3d167d13a16ed263b52dbfedff52c962bfd3d270b46b7518365bcc2121eed"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f710f346e4c44a4e8bdf23daa974faede58f83334289df80bc9cd12fe82573c7"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:7275664f84e027dcb1ad5200b8b18373e9c669b2a9ec33d410c40f5ccf4b257e"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0943e4c701196b23c240b3d10ed8ecd674f03089198cf503105b474a4f77f21f"}, - {file = "orjson-3.10.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:446dee5a491b5bc7d8f825d80d9637e7af43f86a331207b9c9610e2f93fee22a"}, - {file = "orjson-3.10.6-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:64c81456d2a050d380786413786b057983892db105516639cb5d3ee3c7fd5148"}, - {file = "orjson-3.10.6-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:960db0e31c4e52fa0fc3ecbaea5b2d3b58f379e32a95ae6b0ebeaa25b93dfd34"}, - {file = "orjson-3.10.6-cp312-none-win32.whl", hash = "sha256:a6ea7afb5b30b2317e0bee03c8d34c8181bc5a36f2afd4d0952f378972c4efd5"}, - {file = "orjson-3.10.6-cp312-none-win_amd64.whl", hash = "sha256:874ce88264b7e655dde4aeaacdc8fd772a7962faadfb41abe63e2a4861abc3dc"}, - {file = "orjson-3.10.6-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:66680eae4c4e7fc193d91cfc1353ad6d01b4801ae9b5314f17e11ba55e934183"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:caff75b425db5ef8e8f23af93c80f072f97b4fb3afd4af44482905c9f588da28"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3722fddb821b6036fd2a3c814f6bd9b57a89dc6337b9924ecd614ebce3271394"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c2c116072a8533f2fec435fde4d134610f806bdac20188c7bd2081f3e9e0133f"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6eeb13218c8cf34c61912e9df2de2853f1d009de0e46ea09ccdf3d757896af0a"}, - {file = "orjson-3.10.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:965a916373382674e323c957d560b953d81d7a8603fbeee26f7b8248638bd48b"}, - {file = "orjson-3.10.6-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:03c95484d53ed8e479cade8628c9cea00fd9d67f5554764a1110e0d5aa2de96e"}, - {file = "orjson-3.10.6-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:e060748a04cccf1e0a6f2358dffea9c080b849a4a68c28b1b907f272b5127e9b"}, - {file = "orjson-3.10.6-cp38-none-win32.whl", hash = "sha256:738dbe3ef909c4b019d69afc19caf6b5ed0e2f1c786b5d6215fbb7539246e4c6"}, - {file = "orjson-3.10.6-cp38-none-win_amd64.whl", hash = "sha256:d40f839dddf6a7d77114fe6b8a70218556408c71d4d6e29413bb5f150a692ff7"}, - {file = "orjson-3.10.6-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:697a35a083c4f834807a6232b3e62c8b280f7a44ad0b759fd4dce748951e70db"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fd502f96bf5ea9a61cbc0b2b5900d0dd68aa0da197179042bdd2be67e51a1e4b"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f215789fb1667cdc874c1b8af6a84dc939fd802bf293a8334fce185c79cd359b"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a2debd8ddce948a8c0938c8c93ade191d2f4ba4649a54302a7da905a81f00b56"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5410111d7b6681d4b0d65e0f58a13be588d01b473822483f77f513c7f93bd3b2"}, - {file = "orjson-3.10.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bb1f28a137337fdc18384079fa5726810681055b32b92253fa15ae5656e1dddb"}, - {file = "orjson-3.10.6-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:bf2fbbce5fe7cd1aa177ea3eab2b8e6a6bc6e8592e4279ed3db2d62e57c0e1b2"}, - {file = "orjson-3.10.6-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:79b9b9e33bd4c517445a62b90ca0cc279b0f1f3970655c3df9e608bc3f91741a"}, - {file = "orjson-3.10.6-cp39-none-win32.whl", hash = "sha256:30b0a09a2014e621b1adf66a4f705f0809358350a757508ee80209b2d8dae219"}, - {file = "orjson-3.10.6-cp39-none-win_amd64.whl", hash = "sha256:49e3bc615652617d463069f91b867a4458114c5b104e13b7ae6872e5f79d0844"}, - {file = "orjson-3.10.6.tar.gz", hash = "sha256:e54b63d0a7c6c54a5f5f726bc93a2078111ef060fec4ecbf34c5db800ca3b3a7"}, + {file = "orjson-3.10.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:74f4544f5a6405b90da8ea724d15ac9c36da4d72a738c64685003337401f5c12"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34a566f22c28222b08875b18b0dfbf8a947e69df21a9ed5c51a6bf91cfb944ac"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bf6ba8ebc8ef5792e2337fb0419f8009729335bb400ece005606336b7fd7bab7"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac7cf6222b29fbda9e3a472b41e6a5538b48f2c8f99261eecd60aafbdb60690c"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de817e2f5fc75a9e7dd350c4b0f54617b280e26d1631811a43e7e968fa71e3e9"}, + {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:348bdd16b32556cf8d7257b17cf2bdb7ab7976af4af41ebe79f9796c218f7e91"}, + {file = "orjson-3.10.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:479fd0844ddc3ca77e0fd99644c7fe2de8e8be1efcd57705b5c92e5186e8a250"}, + {file = "orjson-3.10.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:fdf5197a21dd660cf19dfd2a3ce79574588f8f5e2dbf21bda9ee2d2b46924d84"}, + {file = "orjson-3.10.7-cp310-none-win32.whl", hash = "sha256:d374d36726746c81a49f3ff8daa2898dccab6596864ebe43d50733275c629175"}, + {file = "orjson-3.10.7-cp310-none-win_amd64.whl", hash = "sha256:cb61938aec8b0ffb6eef484d480188a1777e67b05d58e41b435c74b9d84e0b9c"}, + {file = "orjson-3.10.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7db8539039698ddfb9a524b4dd19508256107568cdad24f3682d5773e60504a2"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:480f455222cb7a1dea35c57a67578848537d2602b46c464472c995297117fa09"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8a9c9b168b3a19e37fe2778c0003359f07822c90fdff8f98d9d2a91b3144d8e0"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8de062de550f63185e4c1c54151bdddfc5625e37daf0aa1e75d2a1293e3b7d9a"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6b0dd04483499d1de9c8f6203f8975caf17a6000b9c0c54630cef02e44ee624e"}, + {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b58d3795dafa334fc8fd46f7c5dc013e6ad06fd5b9a4cc98cb1456e7d3558bd6"}, + {file = "orjson-3.10.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:33cfb96c24034a878d83d1a9415799a73dc77480e6c40417e5dda0710d559ee6"}, + {file = "orjson-3.10.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e724cebe1fadc2b23c6f7415bad5ee6239e00a69f30ee423f319c6af70e2a5c0"}, + {file = "orjson-3.10.7-cp311-none-win32.whl", hash = "sha256:82763b46053727a7168d29c772ed5c870fdae2f61aa8a25994c7984a19b1021f"}, + {file = "orjson-3.10.7-cp311-none-win_amd64.whl", hash = "sha256:eb8d384a24778abf29afb8e41d68fdd9a156cf6e5390c04cc07bbc24b89e98b5"}, + {file = "orjson-3.10.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:44a96f2d4c3af51bfac6bc4ef7b182aa33f2f054fd7f34cc0ee9a320d051d41f"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76ac14cd57df0572453543f8f2575e2d01ae9e790c21f57627803f5e79b0d3c3"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bdbb61dcc365dd9be94e8f7df91975edc9364d6a78c8f7adb69c1cdff318ec93"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b48b3db6bb6e0a08fa8c83b47bc169623f801e5cc4f24442ab2b6617da3b5313"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23820a1563a1d386414fef15c249040042b8e5d07b40ab3fe3efbfbbcbcb8864"}, + {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0c6a008e91d10a2564edbb6ee5069a9e66df3fbe11c9a005cb411f441fd2c09"}, + {file = "orjson-3.10.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d352ee8ac1926d6193f602cbe36b1643bbd1bbcb25e3c1a657a4390f3000c9a5"}, + {file = "orjson-3.10.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d2d9f990623f15c0ae7ac608103c33dfe1486d2ed974ac3f40b693bad1a22a7b"}, + {file = "orjson-3.10.7-cp312-none-win32.whl", hash = "sha256:7c4c17f8157bd520cdb7195f75ddbd31671997cbe10aee559c2d613592e7d7eb"}, + {file = "orjson-3.10.7-cp312-none-win_amd64.whl", hash = "sha256:1d9c0e733e02ada3ed6098a10a8ee0052dd55774de3d9110d29868d24b17faa1"}, + {file = "orjson-3.10.7-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:77d325ed866876c0fa6492598ec01fe30e803272a6e8b10e992288b009cbe149"}, + {file = "orjson-3.10.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ea2c232deedcb605e853ae1db2cc94f7390ac776743b699b50b071b02bea6fe"}, + {file = "orjson-3.10.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3dcfbede6737fdbef3ce9c37af3fb6142e8e1ebc10336daa05872bfb1d87839c"}, + {file = "orjson-3.10.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:11748c135f281203f4ee695b7f80bb1358a82a63905f9f0b794769483ea854ad"}, + {file = "orjson-3.10.7-cp313-none-win32.whl", hash = "sha256:a7e19150d215c7a13f39eb787d84db274298d3f83d85463e61d277bbd7f401d2"}, + {file = "orjson-3.10.7-cp313-none-win_amd64.whl", hash = "sha256:eef44224729e9525d5261cc8d28d6b11cafc90e6bd0be2157bde69a52ec83024"}, + {file = "orjson-3.10.7-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6ea2b2258eff652c82652d5e0f02bd5e0463a6a52abb78e49ac288827aaa1469"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:430ee4d85841e1483d487e7b81401785a5dfd69db5de01314538f31f8fbf7ee1"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4b6146e439af4c2472c56f8540d799a67a81226e11992008cb47e1267a9b3225"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:084e537806b458911137f76097e53ce7bf5806dda33ddf6aaa66a028f8d43a23"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4829cf2195838e3f93b70fd3b4292156fc5e097aac3739859ac0dcc722b27ac0"}, + {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1193b2416cbad1a769f868b1749535d5da47626ac29445803dae7cc64b3f5c98"}, + {file = "orjson-3.10.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:4e6c3da13e5a57e4b3dca2de059f243ebec705857522f188f0180ae88badd354"}, + {file = "orjson-3.10.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c31008598424dfbe52ce8c5b47e0752dca918a4fdc4a2a32004efd9fab41d866"}, + {file = "orjson-3.10.7-cp38-none-win32.whl", hash = "sha256:7122a99831f9e7fe977dc45784d3b2edc821c172d545e6420c375e5a935f5a1c"}, + {file = "orjson-3.10.7-cp38-none-win_amd64.whl", hash = "sha256:a763bc0e58504cc803739e7df040685816145a6f3c8a589787084b54ebc9f16e"}, + {file = "orjson-3.10.7-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e76be12658a6fa376fcd331b1ea4e58f5a06fd0220653450f0d415b8fd0fbe20"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed350d6978d28b92939bfeb1a0570c523f6170efc3f0a0ef1f1df287cd4f4960"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:144888c76f8520e39bfa121b31fd637e18d4cc2f115727865fdf9fa325b10412"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09b2d92fd95ad2402188cf51573acde57eb269eddabaa60f69ea0d733e789fe9"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b24a579123fa884f3a3caadaed7b75eb5715ee2b17ab5c66ac97d29b18fe57f"}, + {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591bcfe7512353bd609875ab38050efe3d55e18934e2f18950c108334b4ff"}, + {file = "orjson-3.10.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f4db56635b58cd1a200b0a23744ff44206ee6aa428185e2b6c4a65b3197abdcd"}, + {file = "orjson-3.10.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0fa5886854673222618638c6df7718ea7fe2f3f2384c452c9ccedc70b4a510a5"}, + {file = "orjson-3.10.7-cp39-none-win32.whl", hash = "sha256:8272527d08450ab16eb405f47e0f4ef0e5ff5981c3d82afe0efd25dcbef2bcd2"}, + {file = "orjson-3.10.7-cp39-none-win_amd64.whl", hash = "sha256:974683d4618c0c7dbf4f69c95a979734bf183d0658611760017f6e70a145af58"}, + {file = "orjson-3.10.7.tar.gz", hash = "sha256:75ef0640403f945f3a1f9f6400686560dbfb0fb5b16589ad62cd477043c4eee3"}, ] [[package]] @@ -963,4 +969,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "727e999503d474aca451156967f9dde6653456d4b13553d2838606cb3f4c6a85" +content-hash = "c6ddcb49a381dd1d80b6d99fbf334924b3cc748b3a00ab8234440f955b45963c" diff --git a/pyproject.toml b/pyproject.toml index dba65afe..fdf6139c 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" types-setuptools = "^71.1.0" pook = "^2.0.0" -orjson = "^3.10.6" +orjson = "^3.10.7" [build-system] requires = ["poetry-core>=1.0.0"] From 2ef5fdaaebb1491ad4f4f99c84bc95cabd2cef83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 09:48:06 -0700 Subject: [PATCH 08/43] Bump types-setuptools from 71.1.0.20240726 to 71.1.0.20240806 (#726) Bumps [types-setuptools](https://github.com/python/typeshed) from 71.1.0.20240726 to 71.1.0.20240806. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index fa02ba6b..7710783e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -811,13 +811,13 @@ files = [ [[package]] name = "types-setuptools" -version = "71.1.0.20240726" +version = "71.1.0.20240806" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-71.1.0.20240726.tar.gz", hash = "sha256:85ba28e9461bb1be86ebba4db0f1c2408f2b11115b1966334ea9dc464e29303e"}, - {file = "types_setuptools-71.1.0.20240726-py3-none-any.whl", hash = "sha256:a7775376f36e0ff09bcad236bf265777590a66b11623e48c20bfc30f1444ea36"}, + {file = "types-setuptools-71.1.0.20240806.tar.gz", hash = "sha256:ae5e7b4d643ab9e99fc00ac00041804118cabe72a56183c30d524fb064897ad6"}, + {file = "types_setuptools-71.1.0.20240806-py3-none-any.whl", hash = "sha256:3bd8dd02039be0bb79ad880d8893b8eefcb022fabbeeb61245c61b20c9ab1ed0"}, ] [[package]] From b40efbb23ee9b86bca4c50a513cc05af581d3958 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 20 Aug 2024 05:59:37 -0700 Subject: [PATCH 09/43] Bump types-setuptools from 71.1.0.20240806 to 71.1.0.20240818 (#731) Bumps [types-setuptools](https://github.com/python/typeshed) from 71.1.0.20240806 to 71.1.0.20240818. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 7710783e..02e4f5d8 100644 --- a/poetry.lock +++ b/poetry.lock @@ -811,13 +811,13 @@ files = [ [[package]] name = "types-setuptools" -version = "71.1.0.20240806" +version = "71.1.0.20240818" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-71.1.0.20240806.tar.gz", hash = "sha256:ae5e7b4d643ab9e99fc00ac00041804118cabe72a56183c30d524fb064897ad6"}, - {file = "types_setuptools-71.1.0.20240806-py3-none-any.whl", hash = "sha256:3bd8dd02039be0bb79ad880d8893b8eefcb022fabbeeb61245c61b20c9ab1ed0"}, + {file = "types-setuptools-71.1.0.20240818.tar.gz", hash = "sha256:f62eaffaa39774462c65fbb49368c4dc1d91a90a28371cb14e1af090ff0e41e3"}, + {file = "types_setuptools-71.1.0.20240818-py3-none-any.whl", hash = "sha256:c4f95302f88369ac0ac46c67ddbfc70c6c4dbbb184d9fed356244217a2934025"}, ] [[package]] From 72d43180dff56b2a93948f8047704245aad8986a Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:02:53 -0700 Subject: [PATCH 10/43] Bump mypy from 1.11.1 to 1.11.2 (#735) Bumps [mypy](https://github.com/python/mypy) from 1.11.1 to 1.11.2. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.11.1...v1.11.2) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 56 ++++++++++++++++++++++++++--------------------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/poetry.lock b/poetry.lock index 02e4f5d8..2b4ec39c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -312,38 +312,38 @@ files = [ [[package]] name = "mypy" -version = "1.11.1" +version = "1.11.2" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.11.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a32fc80b63de4b5b3e65f4be82b4cfa362a46702672aa6a0f443b4689af7008c"}, - {file = "mypy-1.11.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:c1952f5ea8a5a959b05ed5f16452fddadbaae48b5d39235ab4c3fc444d5fd411"}, - {file = "mypy-1.11.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e1e30dc3bfa4e157e53c1d17a0dad20f89dc433393e7702b813c10e200843b03"}, - {file = "mypy-1.11.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:2c63350af88f43a66d3dfeeeb8d77af34a4f07d760b9eb3a8697f0386c7590b4"}, - {file = "mypy-1.11.1-cp310-cp310-win_amd64.whl", hash = "sha256:a831671bad47186603872a3abc19634f3011d7f83b083762c942442d51c58d58"}, - {file = "mypy-1.11.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7b6343d338390bb946d449677726edf60102a1c96079b4f002dedff375953fc5"}, - {file = "mypy-1.11.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e4fe9f4e5e521b458d8feb52547f4bade7ef8c93238dfb5bbc790d9ff2d770ca"}, - {file = "mypy-1.11.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:886c9dbecc87b9516eff294541bf7f3655722bf22bb898ee06985cd7269898de"}, - {file = "mypy-1.11.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:fca4a60e1dd9fd0193ae0067eaeeb962f2d79e0d9f0f66223a0682f26ffcc809"}, - {file = "mypy-1.11.1-cp311-cp311-win_amd64.whl", hash = "sha256:0bd53faf56de9643336aeea1c925012837432b5faf1701ccca7fde70166ccf72"}, - {file = "mypy-1.11.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:f39918a50f74dc5969807dcfaecafa804fa7f90c9d60506835036cc1bc891dc8"}, - {file = "mypy-1.11.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:0bc71d1fb27a428139dd78621953effe0d208aed9857cb08d002280b0422003a"}, - {file = "mypy-1.11.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b868d3bcff720dd7217c383474008ddabaf048fad8d78ed948bb4b624870a417"}, - {file = "mypy-1.11.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a707ec1527ffcdd1c784d0924bf5cb15cd7f22683b919668a04d2b9c34549d2e"}, - {file = "mypy-1.11.1-cp312-cp312-win_amd64.whl", hash = "sha256:64f4a90e3ea07f590c5bcf9029035cf0efeae5ba8be511a8caada1a4893f5525"}, - {file = "mypy-1.11.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:749fd3213916f1751fff995fccf20c6195cae941dc968f3aaadf9bb4e430e5a2"}, - {file = "mypy-1.11.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:b639dce63a0b19085213ec5fdd8cffd1d81988f47a2dec7100e93564f3e8fb3b"}, - {file = "mypy-1.11.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:4c956b49c5d865394d62941b109728c5c596a415e9c5b2be663dd26a1ff07bc0"}, - {file = "mypy-1.11.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:45df906e8b6804ef4b666af29a87ad9f5921aad091c79cc38e12198e220beabd"}, - {file = "mypy-1.11.1-cp38-cp38-win_amd64.whl", hash = "sha256:d44be7551689d9d47b7abc27c71257adfdb53f03880841a5db15ddb22dc63edb"}, - {file = "mypy-1.11.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2684d3f693073ab89d76da8e3921883019ea8a3ec20fa5d8ecca6a2db4c54bbe"}, - {file = "mypy-1.11.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:79c07eb282cb457473add5052b63925e5cc97dfab9812ee65a7c7ab5e3cb551c"}, - {file = "mypy-1.11.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:11965c2f571ded6239977b14deebd3f4c3abd9a92398712d6da3a772974fad69"}, - {file = "mypy-1.11.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a2b43895a0f8154df6519706d9bca8280cda52d3d9d1514b2d9c3e26792a0b74"}, - {file = "mypy-1.11.1-cp39-cp39-win_amd64.whl", hash = "sha256:1a81cf05975fd61aec5ae16501a091cfb9f605dc3e3c878c0da32f250b74760b"}, - {file = "mypy-1.11.1-py3-none-any.whl", hash = "sha256:0624bdb940255d2dd24e829d99a13cfeb72e4e9031f9492148f410ed30bcab54"}, - {file = "mypy-1.11.1.tar.gz", hash = "sha256:f404a0b069709f18bbdb702eb3dcfe51910602995de00bd39cea3050b5772d08"}, + {file = "mypy-1.11.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d42a6dd818ffce7be66cce644f1dff482f1d97c53ca70908dff0b9ddc120b77a"}, + {file = "mypy-1.11.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:801780c56d1cdb896eacd5619a83e427ce436d86a3bdf9112527f24a66618fef"}, + {file = "mypy-1.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41ea707d036a5307ac674ea172875f40c9d55c5394f888b168033177fce47383"}, + {file = "mypy-1.11.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6e658bd2d20565ea86da7d91331b0eed6d2eee22dc031579e6297f3e12c758c8"}, + {file = "mypy-1.11.2-cp310-cp310-win_amd64.whl", hash = "sha256:478db5f5036817fe45adb7332d927daa62417159d49783041338921dcf646fc7"}, + {file = "mypy-1.11.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75746e06d5fa1e91bfd5432448d00d34593b52e7e91a187d981d08d1f33d4385"}, + {file = "mypy-1.11.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a976775ab2256aadc6add633d44f100a2517d2388906ec4f13231fafbb0eccca"}, + {file = "mypy-1.11.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd953f221ac1379050a8a646585a29574488974f79d8082cedef62744f0a0104"}, + {file = "mypy-1.11.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:57555a7715c0a34421013144a33d280e73c08df70f3a18a552938587ce9274f4"}, + {file = "mypy-1.11.2-cp311-cp311-win_amd64.whl", hash = "sha256:36383a4fcbad95f2657642a07ba22ff797de26277158f1cc7bd234821468b1b6"}, + {file = "mypy-1.11.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e8960dbbbf36906c5c0b7f4fbf2f0c7ffb20f4898e6a879fcf56a41a08b0d318"}, + {file = "mypy-1.11.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:06d26c277962f3fb50e13044674aa10553981ae514288cb7d0a738f495550b36"}, + {file = "mypy-1.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e7184632d89d677973a14d00ae4d03214c8bc301ceefcdaf5c474866814c987"}, + {file = "mypy-1.11.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3a66169b92452f72117e2da3a576087025449018afc2d8e9bfe5ffab865709ca"}, + {file = "mypy-1.11.2-cp312-cp312-win_amd64.whl", hash = "sha256:969ea3ef09617aff826885a22ece0ddef69d95852cdad2f60c8bb06bf1f71f70"}, + {file = "mypy-1.11.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:37c7fa6121c1cdfcaac97ce3d3b5588e847aa79b580c1e922bb5d5d2902df19b"}, + {file = "mypy-1.11.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4a8a53bc3ffbd161b5b2a4fff2f0f1e23a33b0168f1c0778ec70e1a3d66deb86"}, + {file = "mypy-1.11.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ff93107f01968ed834f4256bc1fc4475e2fecf6c661260066a985b52741ddce"}, + {file = "mypy-1.11.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:edb91dded4df17eae4537668b23f0ff6baf3707683734b6a818d5b9d0c0c31a1"}, + {file = "mypy-1.11.2-cp38-cp38-win_amd64.whl", hash = "sha256:ee23de8530d99b6db0573c4ef4bd8f39a2a6f9b60655bf7a1357e585a3486f2b"}, + {file = "mypy-1.11.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:801ca29f43d5acce85f8e999b1e431fb479cb02d0e11deb7d2abb56bdaf24fd6"}, + {file = "mypy-1.11.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:af8d155170fcf87a2afb55b35dc1a0ac21df4431e7d96717621962e4b9192e70"}, + {file = "mypy-1.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7821776e5c4286b6a13138cc935e2e9b6fde05e081bdebf5cdb2bb97c9df81d"}, + {file = "mypy-1.11.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:539c570477a96a4e6fb718b8d5c3e0c0eba1f485df13f86d2970c91f0673148d"}, + {file = "mypy-1.11.2-cp39-cp39-win_amd64.whl", hash = "sha256:3f14cd3d386ac4d05c5a39a51b84387403dadbd936e17cb35882134d4f8f0d24"}, + {file = "mypy-1.11.2-py3-none-any.whl", hash = "sha256:b499bc07dbdcd3de92b0a8b29fdf592c111276f6a12fe29c30f6c417dd546d12"}, + {file = "mypy-1.11.2.tar.gz", hash = "sha256:7f9993ad3e0ffdc95c2a14b66dee63729f021968bff8ad911867579c65d13a79"}, ] [package.dependencies] From 7fe4e37107f5017552de5f3562396706b46a217c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 12:22:05 -0700 Subject: [PATCH 11/43] Bump types-setuptools from 71.1.0.20240818 to 73.0.0.20240822 (#733) Bumps [types-setuptools](https://github.com/python/typeshed) from 71.1.0.20240818 to 73.0.0.20240822. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 2b4ec39c..80a4da1d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -811,13 +811,13 @@ files = [ [[package]] name = "types-setuptools" -version = "71.1.0.20240818" +version = "73.0.0.20240822" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-71.1.0.20240818.tar.gz", hash = "sha256:f62eaffaa39774462c65fbb49368c4dc1d91a90a28371cb14e1af090ff0e41e3"}, - {file = "types_setuptools-71.1.0.20240818-py3-none-any.whl", hash = "sha256:c4f95302f88369ac0ac46c67ddbfc70c6c4dbbb184d9fed356244217a2934025"}, + {file = "types-setuptools-73.0.0.20240822.tar.gz", hash = "sha256:3a060681098eb3fbc2fea0a86f7f6af6aa1ca71906039d88d891ea2cecdd4dbf"}, + {file = "types_setuptools-73.0.0.20240822-py3-none-any.whl", hash = "sha256:b9eba9b68546031317a0fa506d4973641d987d74f79e7dd8369ad4f7a93dea17"}, ] [[package]] @@ -969,4 +969,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "c6ddcb49a381dd1d80b6d99fbf334924b3cc748b3a00ab8234440f955b45963c" +content-hash = "178096d92862139d0e26ac6cba4bb8e92dcf546c0fc46784f2d4dffc0e76da8a" diff --git a/pyproject.toml b/pyproject.toml index fdf6139c..e715e604 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^2.0.0" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^71.1.0" +types-setuptools = "^73.0.0" pook = "^2.0.0" orjson = "^3.10.7" From 2931b2d045bce86f0d3c99cb7c4ad1e15a42a096 Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Mon, 2 Sep 2024 16:04:00 -0700 Subject: [PATCH 12/43] Add dividend and split ids (#736) * Add dividend and split ids * Added spec updates --- .polygon/rest.json | 22 +++++++++++++++++++--- polygon/rest/models/dividends.py | 1 + polygon/rest/models/splits.py | 1 + 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/.polygon/rest.json b/.polygon/rest.json index 94dd8286..4eb0f967 100644 --- a/.polygon/rest.json +++ b/.polygon/rest.json @@ -24328,7 +24328,7 @@ "operationId": "ListDividends", "parameters": [ { - "description": "Return the dividends that contain this ticker.", + "description": "Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc.", "in": "query", "name": "ticker", "schema": { @@ -24708,6 +24708,7 @@ "dividend_type": "CD", "ex_dividend_date": "2021-11-05", "frequency": 4, + "id": "E8e3c4f794613e9205e2f178a36c53fcc57cdabb55e1988c87b33f9e52e221444", "pay_date": "2021-11-11", "record_date": "2021-11-08", "ticker": "AAPL" @@ -24718,6 +24719,7 @@ "dividend_type": "CD", "ex_dividend_date": "2021-08-06", "frequency": 4, + "id": "E6436c5475706773f03490acf0b63fdb90b2c72bfeed329a6eb4afc080acd80ae", "pay_date": "2021-08-12", "record_date": "2021-08-09", "ticker": "AAPL" @@ -24806,6 +24808,10 @@ ] } }, + "id": { + "description": "The unique identifier of the dividend.", + "type": "string" + }, "pay_date": { "description": "The date that the dividend is paid out.", "type": "string" @@ -24832,7 +24838,8 @@ "ex_dividend_date", "frequency", "cash_amount", - "dividend_type" + "dividend_type", + "id" ], "type": "object", "x-polygon-go-struct-tags": { @@ -25841,12 +25848,14 @@ "results": [ { "execution_date": "2020-08-31", + "id": "E36416cce743c3964c5da63e1ef1626c0aece30fb47302eea5a49c0055c04e8d0", "split_from": 1, "split_to": 4, "ticker": "AAPL" }, { "execution_date": "2005-02-28", + "id": "E90a77bdf742661741ed7c8fc086415f0457c2816c45899d73aaa88bdc8ff6025", "split_from": 1, "split_to": 2, "ticker": "AAPL" @@ -25870,6 +25879,10 @@ "description": "The execution date of the stock split. On this date the stock split was applied.", "type": "string" }, + "id": { + "description": "The unique identifier for this stock split.", + "type": "string" + }, "split_from": { "description": "The second number in the split ratio.\n\nFor example: In a 2-for-1 split, split_from would be 1.", "format": "float", @@ -25887,7 +25900,10 @@ }, "required": [ "split_from", - "split_to" + "split_to", + "id", + "ticker", + "execution_date" ], "type": "object" }, diff --git a/polygon/rest/models/dividends.py b/polygon/rest/models/dividends.py index ef9adff0..68db98a9 100644 --- a/polygon/rest/models/dividends.py +++ b/polygon/rest/models/dividends.py @@ -5,6 +5,7 @@ @modelclass class Dividend: "Dividend contains data for a historical cash dividend, including the ticker symbol, declaration date, ex-dividend date, record date, pay date, frequency, and amount." + id: Optional[int] = None cash_amount: Optional[float] = None currency: Optional[str] = None declaration_date: Optional[str] = None diff --git a/polygon/rest/models/splits.py b/polygon/rest/models/splits.py index 93244c50..5fb27129 100644 --- a/polygon/rest/models/splits.py +++ b/polygon/rest/models/splits.py @@ -5,6 +5,7 @@ @modelclass class Split: "Split contains data for a historical stock split, including the ticker symbol, the execution date, and the factors of the split ratio." + id: Optional[int] = None execution_date: Optional[str] = None split_from: Optional[int] = None split_to: Optional[int] = None From 362af904352f4118fcb1676cc44ac83058330fba Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 16:11:19 -0700 Subject: [PATCH 13/43] Bump certifi from 2024.7.4 to 2024.8.30 (#739) Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.7.4 to 2024.8.30. - [Commits](https://github.com/certifi/python-certifi/compare/2024.07.04...2024.08.30) --- updated-dependencies: - dependency-name: certifi dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: justinpolygon <123573436+justinpolygon@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 80a4da1d..9302736c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -90,13 +90,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2024.7.4" +version = "2024.8.30" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.7.4-py3-none-any.whl", hash = "sha256:c198e21b1289c2ab85ee4e67bb4b4ef3ead0892059901a8d5b622f24a1101e90"}, - {file = "certifi-2024.7.4.tar.gz", hash = "sha256:5a1e7645bc0ec61a09e26c36f6106dd4cf40c6db3a1fb6352b0244e7fb057c7b"}, + {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, + {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, ] [[package]] From df58cad69b0e83ac9558e9ccd3232c6d00a18b83 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Sep 2024 16:14:04 -0700 Subject: [PATCH 14/43] Bump types-setuptools from 73.0.0.20240822 to 74.0.0.20240831 (#740) Bumps [types-setuptools](https://github.com/python/typeshed) from 73.0.0.20240822 to 74.0.0.20240831. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: justinpolygon <123573436+justinpolygon@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 9302736c..22d7e54e 100644 --- a/poetry.lock +++ b/poetry.lock @@ -811,13 +811,13 @@ files = [ [[package]] name = "types-setuptools" -version = "73.0.0.20240822" +version = "74.0.0.20240831" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-73.0.0.20240822.tar.gz", hash = "sha256:3a060681098eb3fbc2fea0a86f7f6af6aa1ca71906039d88d891ea2cecdd4dbf"}, - {file = "types_setuptools-73.0.0.20240822-py3-none-any.whl", hash = "sha256:b9eba9b68546031317a0fa506d4973641d987d74f79e7dd8369ad4f7a93dea17"}, + {file = "types-setuptools-74.0.0.20240831.tar.gz", hash = "sha256:8b4a544cc91d42a019dc1e41fd397608b4bc7e20c7d7d5bc326589ffd9e8f8a1"}, + {file = "types_setuptools-74.0.0.20240831-py3-none-any.whl", hash = "sha256:4d9d18ea9214828d695a384633130009f5dee2681a157ee873d3680b62931590"}, ] [[package]] @@ -969,4 +969,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "178096d92862139d0e26ac6cba4bb8e92dcf546c0fc46784f2d4dffc0e76da8a" +content-hash = "a34da38dfba3acda825e45480cb029afcb8147842b1f2a3e270f61155b36b84f" diff --git a/pyproject.toml b/pyproject.toml index e715e604..93cf0e65 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^2.0.0" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^73.0.0" +types-setuptools = "^74.0.0" pook = "^2.0.0" orjson = "^3.10.7" From 95ef6e8654373f307aa3104abf604ae1716fd50e Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Thu, 5 Sep 2024 08:31:29 -0700 Subject: [PATCH 15/43] Updated ws spec to latest (#741) --- .polygon/websocket.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.polygon/websocket.json b/.polygon/websocket.json index 8d7d539b..f565e7d1 100644 --- a/.polygon/websocket.json +++ b/.polygon/websocket.json @@ -269,7 +269,7 @@ }, "c": { "type": "array", - "description": "The trade conditions. See Conditions and Indicators\" for Polygon.io's trade conditions glossary.\n", + "description": "The trade conditions. See Conditions and Indicators for Polygon.io's trade conditions glossary.\n", "items": { "type": "integer", "description": "The ID of the condition." @@ -3964,7 +3964,7 @@ }, "c": { "type": "array", - "description": "The trade conditions. See Conditions and Indicators\" for Polygon.io's trade conditions glossary.\n", + "description": "The trade conditions. See Conditions and Indicators for Polygon.io's trade conditions glossary.\n", "items": { "type": "integer", "description": "The ID of the condition." From 293e2a43485c40f3761ce63f546c13d83a738f8c Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 9 Sep 2024 10:17:13 -0700 Subject: [PATCH 16/43] Bump types-setuptools from 74.0.0.20240831 to 74.1.0.20240907 (#744) Bumps [types-setuptools](https://github.com/python/typeshed) from 74.0.0.20240831 to 74.1.0.20240907. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 22d7e54e..3f759304 100644 --- a/poetry.lock +++ b/poetry.lock @@ -811,13 +811,13 @@ files = [ [[package]] name = "types-setuptools" -version = "74.0.0.20240831" +version = "74.1.0.20240907" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-74.0.0.20240831.tar.gz", hash = "sha256:8b4a544cc91d42a019dc1e41fd397608b4bc7e20c7d7d5bc326589ffd9e8f8a1"}, - {file = "types_setuptools-74.0.0.20240831-py3-none-any.whl", hash = "sha256:4d9d18ea9214828d695a384633130009f5dee2681a157ee873d3680b62931590"}, + {file = "types-setuptools-74.1.0.20240907.tar.gz", hash = "sha256:0abdb082552ca966c1e5fc244e4853adc62971f6cd724fb1d8a3713b580e5a65"}, + {file = "types_setuptools-74.1.0.20240907-py3-none-any.whl", hash = "sha256:15b38c8e63ca34f42f6063ff4b1dd662ea20086166d5ad6a102e670a52574120"}, ] [[package]] @@ -969,4 +969,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "a34da38dfba3acda825e45480cb029afcb8147842b1f2a3e270f61155b36b84f" +content-hash = "9558ba75da8bc1c8f294ecb05556f1de044b126c01f638b2a0bc0e2ab47cfc1d" diff --git a/pyproject.toml b/pyproject.toml index 93cf0e65..30c395b6 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^2.0.0" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^74.0.0" +types-setuptools = "^74.1.0" pook = "^2.0.0" orjson = "^3.10.7" From d9a3e393fa085cdb491143a4271d1869a90fe08f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 16 Sep 2024 09:48:14 -0700 Subject: [PATCH 17/43] Bump urllib3 from 2.2.2 to 2.2.3 (#747) Bumps [urllib3](https://github.com/urllib3/urllib3) from 2.2.2 to 2.2.3. - [Release notes](https://github.com/urllib3/urllib3/releases) - [Changelog](https://github.com/urllib3/urllib3/blob/main/CHANGES.rst) - [Commits](https://github.com/urllib3/urllib3/compare/2.2.2...2.2.3) --- updated-dependencies: - dependency-name: urllib3 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3f759304..a38a516a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -844,13 +844,13 @@ files = [ [[package]] name = "urllib3" -version = "2.2.2" +version = "2.2.3" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.8" files = [ - {file = "urllib3-2.2.2-py3-none-any.whl", hash = "sha256:a448b2f64d686155468037e1ace9f2d2199776e17f0a46610480d311f73e3472"}, - {file = "urllib3-2.2.2.tar.gz", hash = "sha256:dd505485549a7a552833da5e6063639d0d177c04f23bc3864e41e5dc5f612168"}, + {file = "urllib3-2.2.3-py3-none-any.whl", hash = "sha256:ca899ca043dcb1bafa3e262d73aa25c465bfb49e0bd9dd5d59f1d0acba2f8fac"}, + {file = "urllib3-2.2.3.tar.gz", hash = "sha256:e7d814a81dad81e6caf2ec9fdedb284ecc9c73076b62654547cc64ccdcae26e9"}, ] [package.extras] From 39b3d5475832a932aa6f0ba9a369a22f38fbf138 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 12:14:48 -0700 Subject: [PATCH 18/43] Bump websockets from 12.0 to 13.1 (#751) Bumps [websockets](https://github.com/python-websockets/websockets) from 12.0 to 13.1. - [Release notes](https://github.com/python-websockets/websockets/releases) - [Commits](https://github.com/python-websockets/websockets/compare/12.0...13.1) --- updated-dependencies: - dependency-name: websockets dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 162 +++++++++++++++++++++++++++---------------------- pyproject.toml | 2 +- 2 files changed, 89 insertions(+), 75 deletions(-) diff --git a/poetry.lock b/poetry.lock index a38a516a..8414eda6 100644 --- a/poetry.lock +++ b/poetry.lock @@ -861,83 +861,97 @@ zstd = ["zstandard (>=0.18.0)"] [[package]] name = "websockets" -version = "12.0" +version = "13.1" 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"}, + {file = "websockets-13.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:f48c749857f8fb598fb890a75f540e3221d0976ed0bf879cf3c7eef34151acee"}, + {file = "websockets-13.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c7e72ce6bda6fb9409cc1e8164dd41d7c91466fb599eb047cfda72fe758a34a7"}, + {file = "websockets-13.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f779498eeec470295a2b1a5d97aa1bc9814ecd25e1eb637bd9d1c73a327387f6"}, + {file = "websockets-13.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4676df3fe46956fbb0437d8800cd5f2b6d41143b6e7e842e60554398432cf29b"}, + {file = "websockets-13.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a7affedeb43a70351bb811dadf49493c9cfd1ed94c9c70095fd177e9cc1541fa"}, + {file = "websockets-13.1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1971e62d2caa443e57588e1d82d15f663b29ff9dfe7446d9964a4b6f12c1e700"}, + {file = "websockets-13.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:5f2e75431f8dc4a47f31565a6e1355fb4f2ecaa99d6b89737527ea917066e26c"}, + {file = "websockets-13.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:58cf7e75dbf7e566088b07e36ea2e3e2bd5676e22216e4cad108d4df4a7402a0"}, + {file = "websockets-13.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c90d6dec6be2c7d03378a574de87af9b1efea77d0c52a8301dd831ece938452f"}, + {file = "websockets-13.1-cp310-cp310-win32.whl", hash = "sha256:730f42125ccb14602f455155084f978bd9e8e57e89b569b4d7f0f0c17a448ffe"}, + {file = "websockets-13.1-cp310-cp310-win_amd64.whl", hash = "sha256:5993260f483d05a9737073be197371940c01b257cc45ae3f1d5d7adb371b266a"}, + {file = "websockets-13.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:61fc0dfcda609cda0fc9fe7977694c0c59cf9d749fbb17f4e9483929e3c48a19"}, + {file = "websockets-13.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ceec59f59d092c5007e815def4ebb80c2de330e9588e101cf8bd94c143ec78a5"}, + {file = "websockets-13.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:c1dca61c6db1166c48b95198c0b7d9c990b30c756fc2923cc66f68d17dc558fd"}, + {file = "websockets-13.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:308e20f22c2c77f3f39caca508e765f8725020b84aa963474e18c59accbf4c02"}, + {file = "websockets-13.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:62d516c325e6540e8a57b94abefc3459d7dab8ce52ac75c96cad5549e187e3a7"}, + {file = "websockets-13.1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:87c6e35319b46b99e168eb98472d6c7d8634ee37750d7693656dc766395df096"}, + {file = "websockets-13.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5f9fee94ebafbc3117c30be1844ed01a3b177bb6e39088bc6b2fa1dc15572084"}, + {file = "websockets-13.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:7c1e90228c2f5cdde263253fa5db63e6653f1c00e7ec64108065a0b9713fa1b3"}, + {file = "websockets-13.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6548f29b0e401eea2b967b2fdc1c7c7b5ebb3eeb470ed23a54cd45ef078a0db9"}, + {file = "websockets-13.1-cp311-cp311-win32.whl", hash = "sha256:c11d4d16e133f6df8916cc5b7e3e96ee4c44c936717d684a94f48f82edb7c92f"}, + {file = "websockets-13.1-cp311-cp311-win_amd64.whl", hash = "sha256:d04f13a1d75cb2b8382bdc16ae6fa58c97337253826dfe136195b7f89f661557"}, + {file = "websockets-13.1-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:9d75baf00138f80b48f1eac72ad1535aac0b6461265a0bcad391fc5aba875cfc"}, + {file = "websockets-13.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:9b6f347deb3dcfbfde1c20baa21c2ac0751afaa73e64e5b693bb2b848efeaa49"}, + {file = "websockets-13.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:de58647e3f9c42f13f90ac7e5f58900c80a39019848c5547bc691693098ae1bd"}, + {file = "websockets-13.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a1b54689e38d1279a51d11e3467dd2f3a50f5f2e879012ce8f2d6943f00e83f0"}, + {file = "websockets-13.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:cf1781ef73c073e6b0f90af841aaf98501f975d306bbf6221683dd594ccc52b6"}, + {file = "websockets-13.1-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d23b88b9388ed85c6faf0e74d8dec4f4d3baf3ecf20a65a47b836d56260d4b9"}, + {file = "websockets-13.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:3c78383585f47ccb0fcf186dcb8a43f5438bd7d8f47d69e0b56f71bf431a0a68"}, + {file = "websockets-13.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:d6d300f8ec35c24025ceb9b9019ae9040c1ab2f01cddc2bcc0b518af31c75c14"}, + {file = "websockets-13.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:a9dcaf8b0cc72a392760bb8755922c03e17a5a54e08cca58e8b74f6902b433cf"}, + {file = "websockets-13.1-cp312-cp312-win32.whl", hash = "sha256:2f85cf4f2a1ba8f602298a853cec8526c2ca42a9a4b947ec236eaedb8f2dc80c"}, + {file = "websockets-13.1-cp312-cp312-win_amd64.whl", hash = "sha256:38377f8b0cdeee97c552d20cf1865695fcd56aba155ad1b4ca8779a5b6ef4ac3"}, + {file = "websockets-13.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:a9ab1e71d3d2e54a0aa646ab6d4eebfaa5f416fe78dfe4da2839525dc5d765c6"}, + {file = "websockets-13.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:b9d7439d7fab4dce00570bb906875734df13d9faa4b48e261c440a5fec6d9708"}, + {file = "websockets-13.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:327b74e915cf13c5931334c61e1a41040e365d380f812513a255aa804b183418"}, + {file = "websockets-13.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:325b1ccdbf5e5725fdcb1b0e9ad4d2545056479d0eee392c291c1bf76206435a"}, + {file = "websockets-13.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:346bee67a65f189e0e33f520f253d5147ab76ae42493804319b5716e46dddf0f"}, + {file = "websockets-13.1-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:91a0fa841646320ec0d3accdff5b757b06e2e5c86ba32af2e0815c96c7a603c5"}, + {file = "websockets-13.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:18503d2c5f3943e93819238bf20df71982d193f73dcecd26c94514f417f6b135"}, + {file = "websockets-13.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:a9cd1af7e18e5221d2878378fbc287a14cd527fdd5939ed56a18df8a31136bb2"}, + {file = "websockets-13.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:70c5be9f416aa72aab7a2a76c90ae0a4fe2755c1816c153c1a2bcc3333ce4ce6"}, + {file = "websockets-13.1-cp313-cp313-win32.whl", hash = "sha256:624459daabeb310d3815b276c1adef475b3e6804abaf2d9d2c061c319f7f187d"}, + {file = "websockets-13.1-cp313-cp313-win_amd64.whl", hash = "sha256:c518e84bb59c2baae725accd355c8dc517b4a3ed8db88b4bc93c78dae2974bf2"}, + {file = "websockets-13.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:c7934fd0e920e70468e676fe7f1b7261c1efa0d6c037c6722278ca0228ad9d0d"}, + {file = "websockets-13.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:149e622dc48c10ccc3d2760e5f36753db9cacf3ad7bc7bbbfd7d9c819e286f23"}, + {file = "websockets-13.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:a569eb1b05d72f9bce2ebd28a1ce2054311b66677fcd46cf36204ad23acead8c"}, + {file = "websockets-13.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:95df24ca1e1bd93bbca51d94dd049a984609687cb2fb08a7f2c56ac84e9816ea"}, + {file = "websockets-13.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d8dbb1bf0c0a4ae8b40bdc9be7f644e2f3fb4e8a9aca7145bfa510d4a374eeb7"}, + {file = "websockets-13.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:035233b7531fb92a76beefcbf479504db8c72eb3bff41da55aecce3a0f729e54"}, + {file = "websockets-13.1-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:e4450fc83a3df53dec45922b576e91e94f5578d06436871dce3a6be38e40f5db"}, + {file = "websockets-13.1-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:463e1c6ec853202dd3657f156123d6b4dad0c546ea2e2e38be2b3f7c5b8e7295"}, + {file = "websockets-13.1-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:6d6855bbe70119872c05107e38fbc7f96b1d8cb047d95c2c50869a46c65a8e96"}, + {file = "websockets-13.1-cp38-cp38-win32.whl", hash = "sha256:204e5107f43095012b00f1451374693267adbb832d29966a01ecc4ce1db26faf"}, + {file = "websockets-13.1-cp38-cp38-win_amd64.whl", hash = "sha256:485307243237328c022bc908b90e4457d0daa8b5cf4b3723fd3c4a8012fce4c6"}, + {file = "websockets-13.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:9b37c184f8b976f0c0a231a5f3d6efe10807d41ccbe4488df8c74174805eea7d"}, + {file = "websockets-13.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:163e7277e1a0bd9fb3c8842a71661ad19c6aa7bb3d6678dc7f89b17fbcc4aeb7"}, + {file = "websockets-13.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4b889dbd1342820cc210ba44307cf75ae5f2f96226c0038094455a96e64fb07a"}, + {file = "websockets-13.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:586a356928692c1fed0eca68b4d1c2cbbd1ca2acf2ac7e7ebd3b9052582deefa"}, + {file = "websockets-13.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7bd6abf1e070a6b72bfeb71049d6ad286852e285f146682bf30d0296f5fbadfa"}, + {file = "websockets-13.1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6d2aad13a200e5934f5a6767492fb07151e1de1d6079c003ab31e1823733ae79"}, + {file = "websockets-13.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:df01aea34b6e9e33572c35cd16bae5a47785e7d5c8cb2b54b2acdb9678315a17"}, + {file = "websockets-13.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e54affdeb21026329fb0744ad187cf812f7d3c2aa702a5edb562b325191fcab6"}, + {file = "websockets-13.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:9ef8aa8bdbac47f4968a5d66462a2a0935d044bf35c0e5a8af152d58516dbeb5"}, + {file = "websockets-13.1-cp39-cp39-win32.whl", hash = "sha256:deeb929efe52bed518f6eb2ddc00cc496366a14c726005726ad62c2dd9017a3c"}, + {file = "websockets-13.1-cp39-cp39-win_amd64.whl", hash = "sha256:7c65ffa900e7cc958cd088b9a9157a8141c991f8c53d11087e6fb7277a03f81d"}, + {file = "websockets-13.1-pp310-pypy310_pp73-macosx_10_15_x86_64.whl", hash = "sha256:5dd6da9bec02735931fccec99d97c29f47cc61f644264eb995ad6c0c27667238"}, + {file = "websockets-13.1-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:2510c09d8e8df777177ee3d40cd35450dc169a81e747455cc4197e63f7e7bfe5"}, + {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f1c3cf67185543730888b20682fb186fc8d0fa6f07ccc3ef4390831ab4b388d9"}, + {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:bcc03c8b72267e97b49149e4863d57c2d77f13fae12066622dc78fe322490fe6"}, + {file = "websockets-13.1-pp310-pypy310_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:004280a140f220c812e65f36944a9ca92d766b6cc4560be652a0a3883a79ed8a"}, + {file = "websockets-13.1-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:e2620453c075abeb0daa949a292e19f56de518988e079c36478bacf9546ced23"}, + {file = "websockets-13.1-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:9156c45750b37337f7b0b00e6248991a047be4aa44554c9886fe6bdd605aab3b"}, + {file = "websockets-13.1-pp38-pypy38_pp73-macosx_11_0_arm64.whl", hash = "sha256:80c421e07973a89fbdd93e6f2003c17d20b69010458d3a8e37fb47874bd67d51"}, + {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82d0ba76371769d6a4e56f7e83bb8e81846d17a6190971e38b5de108bde9b0d7"}, + {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e9875a0143f07d74dc5e1ded1c4581f0d9f7ab86c78994e2ed9e95050073c94d"}, + {file = "websockets-13.1-pp38-pypy38_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a11e38ad8922c7961447f35c7b17bffa15de4d17c70abd07bfbe12d6faa3e027"}, + {file = "websockets-13.1-pp38-pypy38_pp73-win_amd64.whl", hash = "sha256:4059f790b6ae8768471cddb65d3c4fe4792b0ab48e154c9f0a04cefaabcd5978"}, + {file = "websockets-13.1-pp39-pypy39_pp73-macosx_10_15_x86_64.whl", hash = "sha256:25c35bf84bf7c7369d247f0b8cfa157f989862c49104c5cf85cb5436a641d93e"}, + {file = "websockets-13.1-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:83f91d8a9bb404b8c2c41a707ac7f7f75b9442a0a876df295de27251a856ad09"}, + {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7a43cfdcddd07f4ca2b1afb459824dd3c6d53a51410636a2c7fc97b9a8cf4842"}, + {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:48a2ef1381632a2f0cb4efeff34efa97901c9fbc118e01951ad7cfc10601a9bb"}, + {file = "websockets-13.1-pp39-pypy39_pp73-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:459bf774c754c35dbb487360b12c5727adab887f1622b8aed5755880a21c4a20"}, + {file = "websockets-13.1-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:95858ca14a9f6fa8413d29e0a585b31b278388aa775b8a81fa24830123874678"}, + {file = "websockets-13.1-py3-none-any.whl", hash = "sha256:a9a396a6ad26130cdae92ae10c36af09d9bfe6cafe69670fd3b6da9b07b4044f"}, + {file = "websockets-13.1.tar.gz", hash = "sha256:a3b3366087c1bc0a2795111edcadddb8b3b59509d5db5d7ea3fdd69f954a8878"}, ] [[package]] @@ -969,4 +983,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "9558ba75da8bc1c8f294ecb05556f1de044b126c01f638b2a0bc0e2ab47cfc1d" +content-hash = "16ce959b3125225677cc5534a9dd13ef463ff413838e4712f6c8657708911961" diff --git a/pyproject.toml b/pyproject.toml index 30c395b6..183611be 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,7 +26,7 @@ packages = [ [tool.poetry.dependencies] python = "^3.8" urllib3 = ">=1.26.9,<3.0.0" -websockets = ">=10.3,<13.0" +websockets = ">=10.3,<14.0" certifi = ">=2022.5.18,<2025.0.0" [tool.poetry.dev-dependencies] From 4ec616fba2dd61cfb5a8b5fde5b907d3edf77882 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Oct 2024 12:19:24 -0700 Subject: [PATCH 19/43] Bump sphinx-rtd-theme from 2.0.0 to 3.0.1 (#759) Bumps [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) from 2.0.0 to 3.0.1. - [Changelog](https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst) - [Commits](https://github.com/readthedocs/sphinx_rtd_theme/compare/2.0.0...3.0.1) --- updated-dependencies: - dependency-name: sphinx-rtd-theme dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 16 ++++++++-------- pyproject.toml | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/poetry.lock b/poetry.lock index 8414eda6..1b7841cc 100644 --- a/poetry.lock +++ b/poetry.lock @@ -667,22 +667,22 @@ testing = ["covdefaults (>=2.3)", "coverage (>=7.4.2)", "diff-cover (>=8.0.3)", [[package]] name = "sphinx-rtd-theme" -version = "2.0.0" +version = "3.0.1" description = "Read the Docs theme for Sphinx" optional = false -python-versions = ">=3.6" +python-versions = ">=3.8" files = [ - {file = "sphinx_rtd_theme-2.0.0-py2.py3-none-any.whl", hash = "sha256:ec93d0856dc280cf3aee9a4c9807c60e027c7f7b461b77aeffed682e68f0e586"}, - {file = "sphinx_rtd_theme-2.0.0.tar.gz", hash = "sha256:bd5d7b80622406762073a04ef8fadc5f9151261563d47027de09910ce03afe6b"}, + {file = "sphinx_rtd_theme-3.0.1-py2.py3-none-any.whl", hash = "sha256:921c0ece75e90633ee876bd7b148cfaad136b481907ad154ac3669b6fc957916"}, + {file = "sphinx_rtd_theme-3.0.1.tar.gz", hash = "sha256:a4c5745d1b06dfcb80b7704fe532eb765b44065a8fad9851e4258c8804140703"}, ] [package.dependencies] -docutils = "<0.21" -sphinx = ">=5,<8" +docutils = ">0.18,<0.22" +sphinx = ">=6,<9" sphinxcontrib-jquery = ">=4,<5" [package.extras] -dev = ["bump2version", "sphinxcontrib-httpdomain", "transifex-client", "wheel"] +dev = ["bump2version", "transifex-client", "twine", "wheel"] [[package]] name = "sphinxcontrib-applehelp" @@ -983,4 +983,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "16ce959b3125225677cc5534a9dd13ef463ff413838e4712f6c8657708911961" +content-hash = "dade83f0be3416b5ec775808a02e09b23f46dddf7dadf735c8ce2ac423f397f7" diff --git a/pyproject.toml b/pyproject.toml index 183611be..4b388065 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,7 @@ black = "^24.8.0" mypy = "^1.11" types-urllib3 = "^1.26.25" Sphinx = "^7.1.2" -sphinx-rtd-theme = "^2.0.0" +sphinx-rtd-theme = "^3.0.1" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" From 435f785b52f4d20592d613fab230c1e90fd6e308 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 11 Oct 2024 15:33:31 -0700 Subject: [PATCH 20/43] Bump types-setuptools from 74.1.0.20240907 to 75.1.0.20240917 (#752) Bumps [types-setuptools](https://github.com/python/typeshed) from 74.1.0.20240907 to 75.1.0.20240917. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1b7841cc..6bb7182c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -811,13 +811,13 @@ files = [ [[package]] name = "types-setuptools" -version = "74.1.0.20240907" +version = "75.1.0.20240917" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-74.1.0.20240907.tar.gz", hash = "sha256:0abdb082552ca966c1e5fc244e4853adc62971f6cd724fb1d8a3713b580e5a65"}, - {file = "types_setuptools-74.1.0.20240907-py3-none-any.whl", hash = "sha256:15b38c8e63ca34f42f6063ff4b1dd662ea20086166d5ad6a102e670a52574120"}, + {file = "types-setuptools-75.1.0.20240917.tar.gz", hash = "sha256:12f12a165e7ed383f31def705e5c0fa1c26215dd466b0af34bd042f7d5331f55"}, + {file = "types_setuptools-75.1.0.20240917-py3-none-any.whl", hash = "sha256:06f78307e68d1bbde6938072c57b81cf8a99bc84bd6dc7e4c5014730b097dc0c"}, ] [[package]] @@ -983,4 +983,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "dade83f0be3416b5ec775808a02e09b23f46dddf7dadf735c8ce2ac423f397f7" +content-hash = "8ba6db5af50543ec90432b2ad8f573275a95135148d7b520694496ed51eb3535" diff --git a/pyproject.toml b/pyproject.toml index 4b388065..b0b64686 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^3.0.1" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^74.1.0" +types-setuptools = "^75.1.0" pook = "^2.0.0" orjson = "^3.10.7" From 850c3043b2abea04ba81c575fcca105035abc916 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 20:32:33 -0700 Subject: [PATCH 21/43] Bump mypy from 1.11.2 to 1.12.1 (#770) Bumps [mypy](https://github.com/python/mypy) from 1.11.2 to 1.12.1. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.11.2...v1.12.1) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 63 +++++++++++++++++++++++++++----------------------- pyproject.toml | 2 +- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/poetry.lock b/poetry.lock index 6bb7182c..a7c4353d 100644 --- a/poetry.lock +++ b/poetry.lock @@ -312,38 +312,43 @@ files = [ [[package]] name = "mypy" -version = "1.11.2" +version = "1.12.1" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.11.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d42a6dd818ffce7be66cce644f1dff482f1d97c53ca70908dff0b9ddc120b77a"}, - {file = "mypy-1.11.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:801780c56d1cdb896eacd5619a83e427ce436d86a3bdf9112527f24a66618fef"}, - {file = "mypy-1.11.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:41ea707d036a5307ac674ea172875f40c9d55c5394f888b168033177fce47383"}, - {file = "mypy-1.11.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:6e658bd2d20565ea86da7d91331b0eed6d2eee22dc031579e6297f3e12c758c8"}, - {file = "mypy-1.11.2-cp310-cp310-win_amd64.whl", hash = "sha256:478db5f5036817fe45adb7332d927daa62417159d49783041338921dcf646fc7"}, - {file = "mypy-1.11.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:75746e06d5fa1e91bfd5432448d00d34593b52e7e91a187d981d08d1f33d4385"}, - {file = "mypy-1.11.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a976775ab2256aadc6add633d44f100a2517d2388906ec4f13231fafbb0eccca"}, - {file = "mypy-1.11.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:cd953f221ac1379050a8a646585a29574488974f79d8082cedef62744f0a0104"}, - {file = "mypy-1.11.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:57555a7715c0a34421013144a33d280e73c08df70f3a18a552938587ce9274f4"}, - {file = "mypy-1.11.2-cp311-cp311-win_amd64.whl", hash = "sha256:36383a4fcbad95f2657642a07ba22ff797de26277158f1cc7bd234821468b1b6"}, - {file = "mypy-1.11.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:e8960dbbbf36906c5c0b7f4fbf2f0c7ffb20f4898e6a879fcf56a41a08b0d318"}, - {file = "mypy-1.11.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:06d26c277962f3fb50e13044674aa10553981ae514288cb7d0a738f495550b36"}, - {file = "mypy-1.11.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:6e7184632d89d677973a14d00ae4d03214c8bc301ceefcdaf5c474866814c987"}, - {file = "mypy-1.11.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:3a66169b92452f72117e2da3a576087025449018afc2d8e9bfe5ffab865709ca"}, - {file = "mypy-1.11.2-cp312-cp312-win_amd64.whl", hash = "sha256:969ea3ef09617aff826885a22ece0ddef69d95852cdad2f60c8bb06bf1f71f70"}, - {file = "mypy-1.11.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:37c7fa6121c1cdfcaac97ce3d3b5588e847aa79b580c1e922bb5d5d2902df19b"}, - {file = "mypy-1.11.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4a8a53bc3ffbd161b5b2a4fff2f0f1e23a33b0168f1c0778ec70e1a3d66deb86"}, - {file = "mypy-1.11.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2ff93107f01968ed834f4256bc1fc4475e2fecf6c661260066a985b52741ddce"}, - {file = "mypy-1.11.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:edb91dded4df17eae4537668b23f0ff6baf3707683734b6a818d5b9d0c0c31a1"}, - {file = "mypy-1.11.2-cp38-cp38-win_amd64.whl", hash = "sha256:ee23de8530d99b6db0573c4ef4bd8f39a2a6f9b60655bf7a1357e585a3486f2b"}, - {file = "mypy-1.11.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:801ca29f43d5acce85f8e999b1e431fb479cb02d0e11deb7d2abb56bdaf24fd6"}, - {file = "mypy-1.11.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:af8d155170fcf87a2afb55b35dc1a0ac21df4431e7d96717621962e4b9192e70"}, - {file = "mypy-1.11.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f7821776e5c4286b6a13138cc935e2e9b6fde05e081bdebf5cdb2bb97c9df81d"}, - {file = "mypy-1.11.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:539c570477a96a4e6fb718b8d5c3e0c0eba1f485df13f86d2970c91f0673148d"}, - {file = "mypy-1.11.2-cp39-cp39-win_amd64.whl", hash = "sha256:3f14cd3d386ac4d05c5a39a51b84387403dadbd936e17cb35882134d4f8f0d24"}, - {file = "mypy-1.11.2-py3-none-any.whl", hash = "sha256:b499bc07dbdcd3de92b0a8b29fdf592c111276f6a12fe29c30f6c417dd546d12"}, - {file = "mypy-1.11.2.tar.gz", hash = "sha256:7f9993ad3e0ffdc95c2a14b66dee63729f021968bff8ad911867579c65d13a79"}, + {file = "mypy-1.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3d7d4371829184e22fda4015278fbfdef0327a4b955a483012bd2d423a788801"}, + {file = "mypy-1.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f59f1dfbf497d473201356966e353ef09d4daec48caeacc0254db8ef633a28a5"}, + {file = "mypy-1.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b947097fae68004b8328c55161ac9db7d3566abfef72d9d41b47a021c2fba6b1"}, + {file = "mypy-1.12.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:96af62050971c5241afb4701c15189ea9507db89ad07794a4ee7b4e092dc0627"}, + {file = "mypy-1.12.1-cp310-cp310-win_amd64.whl", hash = "sha256:d90da248f4c2dba6c44ddcfea94bb361e491962f05f41990ff24dbd09969ce20"}, + {file = "mypy-1.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1230048fec1380faf240be6385e709c8570604d2d27ec6ca7e573e3bc09c3735"}, + {file = "mypy-1.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:02dcfe270c6ea13338210908f8cadc8d31af0f04cee8ca996438fe6a97b4ec66"}, + {file = "mypy-1.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a5a437c9102a6a252d9e3a63edc191a3aed5f2fcb786d614722ee3f4472e33f6"}, + {file = "mypy-1.12.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:186e0c8346efc027ee1f9acf5ca734425fc4f7dc2b60144f0fbe27cc19dc7931"}, + {file = "mypy-1.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:673ba1140a478b50e6d265c03391702fa11a5c5aff3f54d69a62a48da32cb811"}, + {file = "mypy-1.12.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9fb83a7be97c498176fb7486cafbb81decccaef1ac339d837c377b0ce3743a7f"}, + {file = "mypy-1.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:389e307e333879c571029d5b93932cf838b811d3f5395ed1ad05086b52148fb0"}, + {file = "mypy-1.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:94b2048a95a21f7a9ebc9fbd075a4fcd310410d078aa0228dbbad7f71335e042"}, + {file = "mypy-1.12.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ee5932370ccf7ebf83f79d1c157a5929d7ea36313027b0d70a488493dc1b179"}, + {file = "mypy-1.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:19bf51f87a295e7ab2894f1d8167622b063492d754e69c3c2fed6563268cb42a"}, + {file = "mypy-1.12.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d34167d43613ffb1d6c6cdc0cc043bb106cac0aa5d6a4171f77ab92a3c758bcc"}, + {file = "mypy-1.12.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:427878aa54f2e2c5d8db31fa9010c599ed9f994b3b49e64ae9cd9990c40bd635"}, + {file = "mypy-1.12.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5fcde63ea2c9f69d6be859a1e6dd35955e87fa81de95bc240143cf00de1f7f81"}, + {file = "mypy-1.12.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d54d840f6c052929f4a3d2aab2066af0f45a020b085fe0e40d4583db52aab4e4"}, + {file = "mypy-1.12.1-cp313-cp313-win_amd64.whl", hash = "sha256:20db6eb1ca3d1de8ece00033b12f793f1ea9da767334b7e8c626a4872090cf02"}, + {file = "mypy-1.12.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b16fe09f9c741d85a2e3b14a5257a27a4f4886c171d562bc5a5e90d8591906b8"}, + {file = "mypy-1.12.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0dcc1e843d58f444fce19da4cce5bd35c282d4bde232acdeca8279523087088a"}, + {file = "mypy-1.12.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e10ba7de5c616e44ad21005fa13450cd0de7caaa303a626147d45307492e4f2d"}, + {file = "mypy-1.12.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0e6fe449223fa59fbee351db32283838a8fee8059e0028e9e6494a03802b4004"}, + {file = "mypy-1.12.1-cp38-cp38-win_amd64.whl", hash = "sha256:dc6e2a2195a290a7fd5bac3e60b586d77fc88e986eba7feced8b778c373f9afe"}, + {file = "mypy-1.12.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:de5b2a8988b4e1269a98beaf0e7cc71b510d050dce80c343b53b4955fff45f19"}, + {file = "mypy-1.12.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:843826966f1d65925e8b50d2b483065c51fc16dc5d72647e0236aae51dc8d77e"}, + {file = "mypy-1.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9fe20f89da41a95e14c34b1ddb09c80262edcc295ad891f22cc4b60013e8f78d"}, + {file = "mypy-1.12.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8135ffec02121a75f75dc97c81af7c14aa4ae0dda277132cfcd6abcd21551bfd"}, + {file = "mypy-1.12.1-cp39-cp39-win_amd64.whl", hash = "sha256:a7b76fa83260824300cc4834a3ab93180db19876bce59af921467fd03e692810"}, + {file = "mypy-1.12.1-py3-none-any.whl", hash = "sha256:ce561a09e3bb9863ab77edf29ae3a50e65685ad74bba1431278185b7e5d5486e"}, + {file = "mypy-1.12.1.tar.gz", hash = "sha256:f5b3936f7a6d0e8280c9bdef94c7ce4847f5cdfc258fbb2c29a8c1711e8bb96d"}, ] [package.dependencies] @@ -983,4 +988,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "8ba6db5af50543ec90432b2ad8f573275a95135148d7b520694496ed51eb3535" +content-hash = "21290a9d5e817ae5903571bd5e7cb6bf580ce43e73de9080e93be06af9887999" diff --git a/pyproject.toml b/pyproject.toml index b0b64686..187d93e2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ certifi = ">=2022.5.18,<2025.0.0" [tool.poetry.dev-dependencies] black = "^24.8.0" -mypy = "^1.11" +mypy = "^1.12" types-urllib3 = "^1.26.25" Sphinx = "^7.1.2" sphinx-rtd-theme = "^3.0.1" From 49221494705cf8ffd682ce43f3afc0914c87dbbc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 21:03:28 -0700 Subject: [PATCH 22/43] Bump types-setuptools from 75.1.0.20240917 to 75.2.0.20241019 (#769) Bumps [types-setuptools](https://github.com/python/typeshed) from 75.1.0.20240917 to 75.2.0.20241019. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index a7c4353d..e15b2b06 100644 --- a/poetry.lock +++ b/poetry.lock @@ -816,13 +816,13 @@ files = [ [[package]] name = "types-setuptools" -version = "75.1.0.20240917" +version = "75.2.0.20241019" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-75.1.0.20240917.tar.gz", hash = "sha256:12f12a165e7ed383f31def705e5c0fa1c26215dd466b0af34bd042f7d5331f55"}, - {file = "types_setuptools-75.1.0.20240917-py3-none-any.whl", hash = "sha256:06f78307e68d1bbde6938072c57b81cf8a99bc84bd6dc7e4c5014730b097dc0c"}, + {file = "types-setuptools-75.2.0.20241019.tar.gz", hash = "sha256:86ea31b5f6df2c6b8f2dc8ae3f72b213607f62549b6fa2ed5866e5299f968694"}, + {file = "types_setuptools-75.2.0.20241019-py3-none-any.whl", hash = "sha256:2e48ff3acd4919471e80d5e3f049cce5c177e108d5d36d2d4cee3fa4d4104258"}, ] [[package]] @@ -988,4 +988,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "21290a9d5e817ae5903571bd5e7cb6bf580ce43e73de9080e93be06af9887999" +content-hash = "1280173331a0e498864db3e9f55fda22bd8254c44bf06487e34096d554341396" diff --git a/pyproject.toml b/pyproject.toml index 187d93e2..1ffcf71d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^3.0.1" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^75.1.0" +types-setuptools = "^75.2.0" pook = "^2.0.0" orjson = "^3.10.7" From f0b59296e2cfa723b07a3e987ebc25f1cbfcac5d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 21:09:55 -0700 Subject: [PATCH 23/43] Bump orjson from 3.10.7 to 3.10.9 (#768) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.7 to 3.10.9. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](https://github.com/ijl/orjson/compare/3.10.7...3.10.9) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 118 ++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 60 insertions(+), 60 deletions(-) diff --git a/poetry.lock b/poetry.lock index e15b2b06..14d1093b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -389,68 +389,68 @@ six = ">=1.8.0" [[package]] name = "orjson" -version = "3.10.7" +version = "3.10.9" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.10.7-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:74f4544f5a6405b90da8ea724d15ac9c36da4d72a738c64685003337401f5c12"}, - {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:34a566f22c28222b08875b18b0dfbf8a947e69df21a9ed5c51a6bf91cfb944ac"}, - {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bf6ba8ebc8ef5792e2337fb0419f8009729335bb400ece005606336b7fd7bab7"}, - {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac7cf6222b29fbda9e3a472b41e6a5538b48f2c8f99261eecd60aafbdb60690c"}, - {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:de817e2f5fc75a9e7dd350c4b0f54617b280e26d1631811a43e7e968fa71e3e9"}, - {file = "orjson-3.10.7-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:348bdd16b32556cf8d7257b17cf2bdb7ab7976af4af41ebe79f9796c218f7e91"}, - {file = "orjson-3.10.7-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:479fd0844ddc3ca77e0fd99644c7fe2de8e8be1efcd57705b5c92e5186e8a250"}, - {file = "orjson-3.10.7-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:fdf5197a21dd660cf19dfd2a3ce79574588f8f5e2dbf21bda9ee2d2b46924d84"}, - {file = "orjson-3.10.7-cp310-none-win32.whl", hash = "sha256:d374d36726746c81a49f3ff8daa2898dccab6596864ebe43d50733275c629175"}, - {file = "orjson-3.10.7-cp310-none-win_amd64.whl", hash = "sha256:cb61938aec8b0ffb6eef484d480188a1777e67b05d58e41b435c74b9d84e0b9c"}, - {file = "orjson-3.10.7-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7db8539039698ddfb9a524b4dd19508256107568cdad24f3682d5773e60504a2"}, - {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:480f455222cb7a1dea35c57a67578848537d2602b46c464472c995297117fa09"}, - {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8a9c9b168b3a19e37fe2778c0003359f07822c90fdff8f98d9d2a91b3144d8e0"}, - {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8de062de550f63185e4c1c54151bdddfc5625e37daf0aa1e75d2a1293e3b7d9a"}, - {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6b0dd04483499d1de9c8f6203f8975caf17a6000b9c0c54630cef02e44ee624e"}, - {file = "orjson-3.10.7-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b58d3795dafa334fc8fd46f7c5dc013e6ad06fd5b9a4cc98cb1456e7d3558bd6"}, - {file = "orjson-3.10.7-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:33cfb96c24034a878d83d1a9415799a73dc77480e6c40417e5dda0710d559ee6"}, - {file = "orjson-3.10.7-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:e724cebe1fadc2b23c6f7415bad5ee6239e00a69f30ee423f319c6af70e2a5c0"}, - {file = "orjson-3.10.7-cp311-none-win32.whl", hash = "sha256:82763b46053727a7168d29c772ed5c870fdae2f61aa8a25994c7984a19b1021f"}, - {file = "orjson-3.10.7-cp311-none-win_amd64.whl", hash = "sha256:eb8d384a24778abf29afb8e41d68fdd9a156cf6e5390c04cc07bbc24b89e98b5"}, - {file = "orjson-3.10.7-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:44a96f2d4c3af51bfac6bc4ef7b182aa33f2f054fd7f34cc0ee9a320d051d41f"}, - {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:76ac14cd57df0572453543f8f2575e2d01ae9e790c21f57627803f5e79b0d3c3"}, - {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bdbb61dcc365dd9be94e8f7df91975edc9364d6a78c8f7adb69c1cdff318ec93"}, - {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b48b3db6bb6e0a08fa8c83b47bc169623f801e5cc4f24442ab2b6617da3b5313"}, - {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:23820a1563a1d386414fef15c249040042b8e5d07b40ab3fe3efbfbbcbcb8864"}, - {file = "orjson-3.10.7-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a0c6a008e91d10a2564edbb6ee5069a9e66df3fbe11c9a005cb411f441fd2c09"}, - {file = "orjson-3.10.7-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:d352ee8ac1926d6193f602cbe36b1643bbd1bbcb25e3c1a657a4390f3000c9a5"}, - {file = "orjson-3.10.7-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:d2d9f990623f15c0ae7ac608103c33dfe1486d2ed974ac3f40b693bad1a22a7b"}, - {file = "orjson-3.10.7-cp312-none-win32.whl", hash = "sha256:7c4c17f8157bd520cdb7195f75ddbd31671997cbe10aee559c2d613592e7d7eb"}, - {file = "orjson-3.10.7-cp312-none-win_amd64.whl", hash = "sha256:1d9c0e733e02ada3ed6098a10a8ee0052dd55774de3d9110d29868d24b17faa1"}, - {file = "orjson-3.10.7-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:77d325ed866876c0fa6492598ec01fe30e803272a6e8b10e992288b009cbe149"}, - {file = "orjson-3.10.7-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9ea2c232deedcb605e853ae1db2cc94f7390ac776743b699b50b071b02bea6fe"}, - {file = "orjson-3.10.7-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:3dcfbede6737fdbef3ce9c37af3fb6142e8e1ebc10336daa05872bfb1d87839c"}, - {file = "orjson-3.10.7-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:11748c135f281203f4ee695b7f80bb1358a82a63905f9f0b794769483ea854ad"}, - {file = "orjson-3.10.7-cp313-none-win32.whl", hash = "sha256:a7e19150d215c7a13f39eb787d84db274298d3f83d85463e61d277bbd7f401d2"}, - {file = "orjson-3.10.7-cp313-none-win_amd64.whl", hash = "sha256:eef44224729e9525d5261cc8d28d6b11cafc90e6bd0be2157bde69a52ec83024"}, - {file = "orjson-3.10.7-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6ea2b2258eff652c82652d5e0f02bd5e0463a6a52abb78e49ac288827aaa1469"}, - {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:430ee4d85841e1483d487e7b81401785a5dfd69db5de01314538f31f8fbf7ee1"}, - {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4b6146e439af4c2472c56f8540d799a67a81226e11992008cb47e1267a9b3225"}, - {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:084e537806b458911137f76097e53ce7bf5806dda33ddf6aaa66a028f8d43a23"}, - {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4829cf2195838e3f93b70fd3b4292156fc5e097aac3739859ac0dcc722b27ac0"}, - {file = "orjson-3.10.7-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1193b2416cbad1a769f868b1749535d5da47626ac29445803dae7cc64b3f5c98"}, - {file = "orjson-3.10.7-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:4e6c3da13e5a57e4b3dca2de059f243ebec705857522f188f0180ae88badd354"}, - {file = "orjson-3.10.7-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:c31008598424dfbe52ce8c5b47e0752dca918a4fdc4a2a32004efd9fab41d866"}, - {file = "orjson-3.10.7-cp38-none-win32.whl", hash = "sha256:7122a99831f9e7fe977dc45784d3b2edc821c172d545e6420c375e5a935f5a1c"}, - {file = "orjson-3.10.7-cp38-none-win_amd64.whl", hash = "sha256:a763bc0e58504cc803739e7df040685816145a6f3c8a589787084b54ebc9f16e"}, - {file = "orjson-3.10.7-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e76be12658a6fa376fcd331b1ea4e58f5a06fd0220653450f0d415b8fd0fbe20"}, - {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ed350d6978d28b92939bfeb1a0570c523f6170efc3f0a0ef1f1df287cd4f4960"}, - {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:144888c76f8520e39bfa121b31fd637e18d4cc2f115727865fdf9fa325b10412"}, - {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09b2d92fd95ad2402188cf51573acde57eb269eddabaa60f69ea0d733e789fe9"}, - {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5b24a579123fa884f3a3caadaed7b75eb5715ee2b17ab5c66ac97d29b18fe57f"}, - {file = "orjson-3.10.7-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e72591bcfe7512353bd609875ab38050efe3d55e18934e2f18950c108334b4ff"}, - {file = "orjson-3.10.7-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:f4db56635b58cd1a200b0a23744ff44206ee6aa428185e2b6c4a65b3197abdcd"}, - {file = "orjson-3.10.7-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0fa5886854673222618638c6df7718ea7fe2f3f2384c452c9ccedc70b4a510a5"}, - {file = "orjson-3.10.7-cp39-none-win32.whl", hash = "sha256:8272527d08450ab16eb405f47e0f4ef0e5ff5981c3d82afe0efd25dcbef2bcd2"}, - {file = "orjson-3.10.7-cp39-none-win_amd64.whl", hash = "sha256:974683d4618c0c7dbf4f69c95a979734bf183d0658611760017f6e70a145af58"}, - {file = "orjson-3.10.7.tar.gz", hash = "sha256:75ef0640403f945f3a1f9f6400686560dbfb0fb5b16589ad62cd477043c4eee3"}, + {file = "orjson-3.10.9-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a377186a11b48c55969e34f0aa414c2826a234f212d6f2b312ba512e3cdb2c6f"}, + {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bf37bf0ca538065c34efe1803378b2dadd7e05b06610a086c2857f15ee59e12"}, + {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7d9d83a91168aa48309acba804e393b7d9216b66f15e38f339b9fbb00db8986d"}, + {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0014038a17a1fe273da0a5489787677ef5a64566ab383ad6d929e44ed5683f4"}, + {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6ae1b1733e4528e45675ed09a732b6ac37d716bce2facaf467f84ce774adecd"}, + {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe91c2259c4a859356b6db1c6e649b40577492f66d483da8b8af6da0f87c00e3"}, + {file = "orjson-3.10.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a04f912c32463386ba117591c99a3d9e40b3b69bed9c5123d89dff06f0f5a4b0"}, + {file = "orjson-3.10.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ae82ca347829ca47431767b079f96bb977f592189250ccdede676339a80c8982"}, + {file = "orjson-3.10.9-cp310-none-win32.whl", hash = "sha256:fd5083906825d7f5d23089425ce5424d783d6294020bcabb8518a3e1f97833e5"}, + {file = "orjson-3.10.9-cp310-none-win_amd64.whl", hash = "sha256:e9ff9521b5be0340c8e686bcfe2619777fd7583f71e7b494601cc91ad3919d2e"}, + {file = "orjson-3.10.9-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f3bd9df47385b8fabb3b2ee1e83f9960b8accc1905be971a1c257f16c32b491e"}, + {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4948961b6bce1e2086b2cf0b56cc454cdab589d40c7f85be71fb5a5556c51d3"}, + {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a9fc7a6cf2b229ddc323e136df13b3fb4466c50d84ed600cd0898223dd2fea3"}, + {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2314846e1029a2d2b899140f350eaaf3a73281df43ba84ac44d94ca861b5b269"}, + {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f52d993504827503411df2d60e60acf52885561458d6273f99ecd172f31c4352"}, + {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e29bbf08d907756c145a3a3a1f7ce2f11f15e3edbd3342842589d6030981b76f"}, + {file = "orjson-3.10.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7ae82992c00b480c3cc7dac6739324554be8c5d8e858a90044928506a3333ef4"}, + {file = "orjson-3.10.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6fdf8d32b6d94019dc15163542d345e9ce4c4661f56b318608aa3088a1a3a23b"}, + {file = "orjson-3.10.9-cp311-none-win32.whl", hash = "sha256:01f5fef452b4d7615f2e94153479370a4b59e0c964efb32dd902978f807a45cd"}, + {file = "orjson-3.10.9-cp311-none-win_amd64.whl", hash = "sha256:95361c4197c7ce9afdf56255de6f4e2474c39d16a277cce31d1b99a2520486d8"}, + {file = "orjson-3.10.9-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:43ad5560db54331c007dc38be5ba7706cb72974a29ae8227019d89305d750a6f"}, + {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1471c3274b1a4a9b8f4b9ed6effaea9ad885796373797515c44b365b375c256d"}, + {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:41d8cac575acd15918903d74cfaabb5dbe57b357b93341332f647d1013928dcc"}, + {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2920c8754f1aedc98bd357ec172af18ce48f5f1017a92244c85fe41d16d3c6e0"}, + {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c7fa3ff6a0d9d15a0d0d2254cca16cd919156a18423654ce5574591392fe9914"}, + {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1e91b90c0c26bd79593967c1adef421bcff88c9e723d49c93bb7ad8af80bc6b"}, + {file = "orjson-3.10.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f11949024f785ace1a516db32fa6255f6227226b2c988abf66f5aee61d43d8f7"}, + {file = "orjson-3.10.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:060e020d85d0ec145bc1b536b1fd9c10a0519c91991ead9724d6f759ebe26b9a"}, + {file = "orjson-3.10.9-cp312-none-win32.whl", hash = "sha256:71f73439999fe662843da3607cdf6e75b1551c330f487e5801d463d969091c63"}, + {file = "orjson-3.10.9-cp312-none-win_amd64.whl", hash = "sha256:12e2efe81356b8448f1cd130f8d75d3718de583112d71f2e2f8baa81bd835bb9"}, + {file = "orjson-3.10.9-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:0ab6e3ad10e964392f0e838751bcce2ef9c8fa8be7deddffff83088e5791566d"}, + {file = "orjson-3.10.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68ef65223baab00f469c8698f771ab3e6ccf6af2a987e77de5b566b4ec651150"}, + {file = "orjson-3.10.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6f130848205fea90a2cb9fa2b11cafff9a9f31f4efad225800bc8b9e4a702f24"}, + {file = "orjson-3.10.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2ea7a98f3295ed8adb6730a5788cc78dafea28300d19932a1d2143457f7db802"}, + {file = "orjson-3.10.9-cp313-none-win32.whl", hash = "sha256:bdce39f96149a74fddeb2674c54f1da5e57724d32952eb6df2ac719b66d453cc"}, + {file = "orjson-3.10.9-cp313-none-win_amd64.whl", hash = "sha256:d11383701d4b58e795039b662ada46987744293d57bfa2719e7379b8d67bc796"}, + {file = "orjson-3.10.9-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1c3a1e845916a3739ab4162bb48dee66e0e727a19faf397176a7db0d9826cc3c"}, + {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:063ca59d93d93d1387f0c4bb766c6d4f5b0e423fe7c366d0bd4401a56d1669d1"}, + {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:938b7fcd79cf06fe348fb24b6163fbaa2fdc9fbed8b1f06318f24467f1487e63"}, + {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cc32a9e43c7693011ccde6f8eff8cba75ca0d2a55de11092faa4a716101e67f5"}, + {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1b3069b7e2f57f3eef2282029b9c2ba21f08a55f1018e483663a3356f046af4c"}, + {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4289b5d1f88fd05dcafdd7a1f3b17bb722e77712b7618f98e86bdda560e0a1a"}, + {file = "orjson-3.10.9-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:74f5a7a7f282d326be71b722b0c350da7af6f5f15b9378da177e0e4a09bd91a3"}, + {file = "orjson-3.10.9-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:80e0c013e50cf7198319d8137931684eb9f32daa067e8276d9dbdd4010bb4add"}, + {file = "orjson-3.10.9-cp38-none-win32.whl", hash = "sha256:9d989152df8f60a76867354e0e08d896292ab9fb96a7ef89a5b3838de174522c"}, + {file = "orjson-3.10.9-cp38-none-win_amd64.whl", hash = "sha256:485358fe9892d6bfd88e5885b66bf88496e1842c8f35f61682ff9928b12a6cf0"}, + {file = "orjson-3.10.9-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ca54e6f320e33c8a6e471c424ee16576361d905c15d69e134c2906d3fcb31795"}, + {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9a9eb03a29c9b30b6c8bb35e5fa20d96589a76e0042005be59b7c3af10a7e43"}, + {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:731e8859fc99b398c286320726906404091141e9223dd5e9e6917f7e32e1cc68"}, + {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:75b061c11f5aab979a95927a76394b4a85e3e4d63d0a2a16b56a4f7c6503afab"}, + {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b61b08f6397f004570fd6a840f4a58946b63b4c7029408cdedb45fe85c7d17f7"}, + {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c4f5e0360b7f0aba91dafe12469108109a0e8973956d4a9865ca262a6881406"}, + {file = "orjson-3.10.9-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e403429e2947a059545e305d97e4b0eb90d3bb44b396d6f327d7ae2018391e13"}, + {file = "orjson-3.10.9-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0e492b93e122264c2dc78700859122631a4715bda88fabf57d9226954cfe7ec5"}, + {file = "orjson-3.10.9-cp39-none-win32.whl", hash = "sha256:bfba9605e85bfd19b83a21c2c25c2bed2000d5f097f3fa3ad5b5f8a7263a3148"}, + {file = "orjson-3.10.9-cp39-none-win_amd64.whl", hash = "sha256:77d277fa138d4bf145e8b24042004891c188c52ac8492724a183f42b0031cf0c"}, + {file = "orjson-3.10.9.tar.gz", hash = "sha256:c378074e0c46035dc66e57006993233ec66bf8487d501bab41649b4b7289ed4d"}, ] [[package]] @@ -988,4 +988,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "1280173331a0e498864db3e9f55fda22bd8254c44bf06487e34096d554341396" +content-hash = "c16a9ab276c6bf2483af108f69d559f48eeb2dd9480c2991813c774f3717f696" diff --git a/pyproject.toml b/pyproject.toml index 1ffcf71d..ebdc10c0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" types-setuptools = "^75.2.0" pook = "^2.0.0" -orjson = "^3.10.7" +orjson = "^3.10.9" [build-system] requires = ["poetry-core>=1.0.0"] From 36250182f930a44db0cb7d5bd62f4e2adda88619 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 21 Oct 2024 21:13:27 -0700 Subject: [PATCH 24/43] Bump pook from 2.0.0 to 2.0.1 (#765) Bumps [pook](https://github.com/h2non/pook) from 2.0.0 to 2.0.1. - [Release notes](https://github.com/h2non/pook/releases) - [Changelog](https://github.com/h2non/pook/blob/master/History.rst) - [Commits](https://github.com/h2non/pook/compare/v2.0.0...v2.0.1) --- updated-dependencies: - dependency-name: pook dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 14d1093b..6c9cf217 100644 --- a/poetry.lock +++ b/poetry.lock @@ -503,13 +503,13 @@ test = ["appdirs (==1.4.4)", "pytest (>=7.2)", "pytest-cov (>=4)", "pytest-mock [[package]] name = "pook" -version = "2.0.0" +version = "2.0.1" description = "HTTP traffic mocking and expectations made easy" optional = false python-versions = ">=3.8" files = [ - {file = "pook-2.0.0-py3-none-any.whl", hash = "sha256:b3993cf00b8335f19b407fca39febd048c97749eb7c06eaddd9fbaff3b0a1ac3"}, - {file = "pook-2.0.0.tar.gz", hash = "sha256:b106ebc088417fa7b68d1f6ee21a9720fd171ea96d4b86ef308eaffac1e5c4f8"}, + {file = "pook-2.0.1-py3-none-any.whl", hash = "sha256:30d73c95e0520f45c1e3889f3bf486e990b6f04b4915aa9daf86cf0d8136b2e1"}, + {file = "pook-2.0.1.tar.gz", hash = "sha256:e04c0e698f256438b4dfbf3ab1b27559f0ec25e42176823167f321f4e8b9c9e4"}, ] [package.dependencies] @@ -988,4 +988,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "c16a9ab276c6bf2483af108f69d559f48eeb2dd9480c2991813c774f3717f696" +content-hash = "bc73d9f5843ac26c73d8a9f755037f1deac6b9d5d84e9d111492bea26841e747" diff --git a/pyproject.toml b/pyproject.toml index ebdc10c0..168dc906 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -39,7 +39,7 @@ sphinx-rtd-theme = "^3.0.1" sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" types-setuptools = "^75.2.0" -pook = "^2.0.0" +pook = "^2.0.1" orjson = "^3.10.9" [build-system] From 53808f8a5b81841447867b28856ea0a75573b30b Mon Sep 17 00:00:00 2001 From: Hunter <6395201+HunterL@users.noreply.github.com> Date: Tue, 22 Oct 2024 10:26:17 -0400 Subject: [PATCH 25/43] add regular_trading_change and regular_trading_change_percent to the universal snapshot session response (#771) --- polygon/rest/models/snapshot.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/polygon/rest/models/snapshot.py b/polygon/rest/models/snapshot.py index ceb5f7f8..3d38abe2 100644 --- a/polygon/rest/models/snapshot.py +++ b/polygon/rest/models/snapshot.py @@ -308,6 +308,8 @@ class UniversalSnapshotSession: change_percent: Optional[float] = None early_trading_change: Optional[float] = None early_trading_change_percent: Optional[float] = None + regular_trading_change: Optional[float] = None + regular_trading_change_percent: Optional[float] = None late_trading_change: Optional[float] = None late_trading_change_percent: Optional[float] = None open: Optional[float] = None From 8034ba4d920df82bd838147e41404f6c45b5b47c Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Tue, 5 Nov 2024 09:47:36 -0800 Subject: [PATCH 26/43] Add Hunting Anomalies in the Stock Market scripts (#780) * Add Hunting Anomalies in the Stock Market scripts * Fix lint * Ignore type and fix typo * Fix type def from linter * Removed json dump --- examples/tools/hunting-anomalies/README.md | 49 +++ .../aggregates_day/README.md | 1 + .../hunting-anomalies/build-lookup-table.py | 91 ++++++ .../hunting-anomalies/gui-lookup-table.py | 302 ++++++++++++++++++ .../hunting-anomalies/query-lookup-table.py | 63 ++++ 5 files changed, 506 insertions(+) create mode 100644 examples/tools/hunting-anomalies/README.md create mode 100644 examples/tools/hunting-anomalies/aggregates_day/README.md create mode 100644 examples/tools/hunting-anomalies/build-lookup-table.py create mode 100644 examples/tools/hunting-anomalies/gui-lookup-table.py create mode 100644 examples/tools/hunting-anomalies/query-lookup-table.py diff --git a/examples/tools/hunting-anomalies/README.md b/examples/tools/hunting-anomalies/README.md new file mode 100644 index 00000000..4b36f1b5 --- /dev/null +++ b/examples/tools/hunting-anomalies/README.md @@ -0,0 +1,49 @@ +# Hunting Anomalies in the Stock Market + +This repository contains all the necessary scripts and data directories used in the [Hunting Anomalies in the Stock Market](https://polygon.io/blog/hunting-anomalies-in-stock-market/) tutorial, hosted on Polygon.io's blog. The tutorial demonstrates how to detect statistical anomalies in historical US stock market data through a comprehensive workflow that involves downloading data, building a lookup table, querying for anomalies, and visualizing them through a web interface. + +### Prerequisites + +- Python 3.8+ +- Access to Polygon.io's historical data via Flat Files +- An active Polygon.io API key, obtainable by signing up for a Stocks paid plan + +### Repository Contents + +- `README.md`: This file, outlining setup and execution instructions. +- `aggregates_day`: Directory where downloaded CSV data files are stored. +- `build-lookup-table.py`: Python script to build a lookup table from the historical data. +- `query-lookup-table.py`: Python script to query the lookup table for anomalies. +- `gui-lookup-table.py`: Python script for a browser-based interface to explore anomalies visually. + +### Running the Tutorial + +1. **Ensure Python 3.8+ is installed:** Check your Python version and ensure all required libraries (polygon-api-client, pandas, pickle, and argparse) are installed. + +2. **Set up your API key:** Make sure you have an active paid Polygon.io Stock subscription for accessing Flat Files. Set up your API key in your environment or directly in the scripts where required. + +3. **Download Historical Data:** Use the MinIO client to download historical stock market data. Adjust the commands and paths based on the data you are interested in. + ```bash + mc alias set s3polygon https://files.polygon.io YOUR_ACCESS_KEY YOUR_SECRET_KEY + mc cp --recursive s3polygon/flatfiles/us_stocks_sip/day_aggs_v1/2024/08/ ./aggregates_day/ + mc cp --recursive s3polygon/flatfiles/us_stocks_sip/day_aggs_v1/2024/09/ ./aggregates_day/ + mc cp --recursive s3polygon/flatfiles/us_stocks_sip/day_aggs_v1/2024/10/ ./aggregates_day/ + gunzip ./aggregates_day/*.gz + ``` + +4. **Build the Lookup Table:** This script processes the downloaded data and builds a lookup table, saving it as `lookup_table.pkl`. + ```bash + python build-lookup-table.py + ``` + +5. **Query Anomalies:** Replace `2024-10-18` with the date you want to analyze for anomalies. + ```bash + python query-lookup-table.py 2024-10-18 + ``` + +6. **Run the GUI:** Access the web interface at `http://localhost:8888` to explore the anomalies visually. + ```bash + python gui-lookup-table.py + ``` + +For a complete step-by-step guide on each phase of the anomaly detection process, including additional configurations and troubleshooting, refer to the detailed [tutorial on our blog](https://polygon.io/blog/hunting-anomalies-in-stock-market/). diff --git a/examples/tools/hunting-anomalies/aggregates_day/README.md b/examples/tools/hunting-anomalies/aggregates_day/README.md new file mode 100644 index 00000000..a0ade480 --- /dev/null +++ b/examples/tools/hunting-anomalies/aggregates_day/README.md @@ -0,0 +1 @@ +Download flat files into here. diff --git a/examples/tools/hunting-anomalies/build-lookup-table.py b/examples/tools/hunting-anomalies/build-lookup-table.py new file mode 100644 index 00000000..16abca2d --- /dev/null +++ b/examples/tools/hunting-anomalies/build-lookup-table.py @@ -0,0 +1,91 @@ +import os +import pandas as pd # type: ignore +from collections import defaultdict +import pickle +import json +from typing import DefaultDict, Dict, Any, BinaryIO + +# Directory containing the daily CSV files +data_dir = "./aggregates_day/" + +# Initialize a dictionary to hold trades data +trades_data = defaultdict(list) + +# List all CSV files in the directory +files = sorted([f for f in os.listdir(data_dir) if f.endswith(".csv")]) + +print("Starting to process files...") + +# Process each file (assuming files are named in order) +for file in files: + print(f"Processing {file}") + file_path = os.path.join(data_dir, file) + df = pd.read_csv(file_path) + # For each stock, store the date and relevant data + for _, row in df.iterrows(): + ticker = row["ticker"] + date = pd.to_datetime(row["window_start"], unit="ns").date() + trades = row["transactions"] + close_price = row["close"] # Ensure 'close' column exists in your CSV + trades_data[ticker].append( + {"date": date, "trades": trades, "close_price": close_price} + ) + +print("Finished processing files.") +print("Building lookup table...") + +# Now, build the lookup table with rolling averages and percentage price change +lookup_table: DefaultDict[str, Dict[str, Any]] = defaultdict( + dict +) # Nested dict: ticker -> date -> stats + +for ticker, records in trades_data.items(): + # Convert records to DataFrame + df_ticker = pd.DataFrame(records) + # Sort records by date + df_ticker.sort_values("date", inplace=True) + df_ticker.set_index("date", inplace=True) + + # Calculate the percentage change in close_price + df_ticker["price_diff"] = ( + df_ticker["close_price"].pct_change() * 100 + ) # Multiply by 100 for percentage + + # Shift trades to exclude the current day from rolling calculations + df_ticker["trades_shifted"] = df_ticker["trades"].shift(1) + # Calculate rolling average and standard deviation over the previous 5 days + df_ticker["avg_trades"] = df_ticker["trades_shifted"].rolling(window=5).mean() + df_ticker["std_trades"] = df_ticker["trades_shifted"].rolling(window=5).std() + # Store the data in the lookup table + for date, row in df_ticker.iterrows(): + # Convert date to string for JSON serialization + date_str = date.strftime("%Y-%m-%d") + # Ensure rolling stats are available + if pd.notnull(row["avg_trades"]) and pd.notnull(row["std_trades"]): + lookup_table[ticker][date_str] = { + "trades": row["trades"], + "close_price": row["close_price"], + "price_diff": row["price_diff"], + "avg_trades": row["avg_trades"], + "std_trades": row["std_trades"], + } + else: + # Store data without rolling stats if not enough data points + lookup_table[ticker][date_str] = { + "trades": row["trades"], + "close_price": row["close_price"], + "price_diff": row["price_diff"], + "avg_trades": None, + "std_trades": None, + } + +print("Lookup table built successfully.") + +# Convert defaultdict to regular dict for JSON serialization +lookup_table_dict = {k: v for k, v in lookup_table.items()} + +# Save the lookup table to a file for later use +with open("lookup_table.pkl", "wb") as f: # type: BinaryIO + pickle.dump(lookup_table_dict, f) + +print("Lookup table saved to 'lookup_table.pkl'.") diff --git a/examples/tools/hunting-anomalies/gui-lookup-table.py b/examples/tools/hunting-anomalies/gui-lookup-table.py new file mode 100644 index 00000000..df58746c --- /dev/null +++ b/examples/tools/hunting-anomalies/gui-lookup-table.py @@ -0,0 +1,302 @@ +import os +import pickle +import json +from datetime import datetime +from polygon import RESTClient +from polygon.rest.models import Agg +import http.server +import socketserver +import traceback +from urllib.parse import urlparse, parse_qs + +PORT = 8888 + +# Load the lookup_table +with open("lookup_table.pkl", "rb") as f: + lookup_table = pickle.load(f) + + +class handler(http.server.SimpleHTTPRequestHandler): + def do_GET(self): + # Parse the path and query parameters + parsed_path = urlparse(self.path) + path = parsed_path.path + query_params = parse_qs(parsed_path.query) + + if path == "/": + # Handle the root path + # Get the date parameter if provided + date_param = query_params.get("date", [None])[0] + + # Get all dates from the lookup table + all_dates = set() + for ticker_data in lookup_table.values(): + all_dates.update(ticker_data.keys()) + all_dates = sorted(all_dates) + + # If date is None, get the latest date from the lookup table + if date_param is None: + if all_dates: + latest_date = max(all_dates) + else: + self.send_response(200) + self.send_header("Content-type", "text/html") + self.end_headers() + html_content = ( + "

No data available.

" + ) + self.wfile.write(html_content.encode()) + return + else: + latest_date = date_param + + # Ensure latest_date is in all_dates + if latest_date not in all_dates: + # Handle the case where the provided date is invalid + self.send_response(400) + self.send_header("Content-type", "text/html") + self.end_headers() + error_html = f"

Error: No data available for date {latest_date}

" + self.wfile.write(error_html.encode()) + return + + # Now, get the anomalies for the latest_date + anomalies = [] + for ticker, date_data in lookup_table.items(): + if latest_date in date_data: + data = date_data[latest_date] + trades = data["trades"] + avg_trades = data["avg_trades"] + std_trades = data["std_trades"] + if ( + avg_trades is not None + and std_trades is not None + and std_trades > 0 + ): + z_score = (trades - avg_trades) / std_trades + threshold_multiplier = 3 # Adjust as needed + if z_score > threshold_multiplier: + anomalies.append( + { + "ticker": ticker, + "date": latest_date, + "trades": trades, + "avg_trades": avg_trades, + "std_trades": std_trades, + "z_score": z_score, + "close_price": data["close_price"], + "price_diff": data["price_diff"], + } + ) + # Sort anomalies by trades in descending order + anomalies.sort(key=lambda x: x["trades"], reverse=True) + # Generate the HTML to display the anomalies + self.send_response(200) + self.send_header("Content-type", "text/html") + self.end_headers() + # Build the HTML content + html_content = 'Anomalies for {}'.format( + latest_date + ) + html_content += '

Anomalies for {}

'.format( + latest_date + ) + # Add navigation links (prev and next dates) + current_index = all_dates.index(latest_date) + prev_date = all_dates[current_index - 1] if current_index > 0 else None + next_date = ( + all_dates[current_index + 1] + if current_index < len(all_dates) - 1 + else None + ) + html_content += "

" + if prev_date: + html_content += 'Previous Date '.format( + prev_date + ) + if next_date: + html_content += 'Next Date '.format(next_date) + html_content += "

" + # Display the anomalies in a table + html_content += ( + '' + ) + html_content += "" + html_content += "" + html_content += "" + html_content += "" + html_content += "" + html_content += "" + html_content += "" + html_content += "" + html_content += "" + html_content += "" + for anomaly in anomalies: + html_content += "" + html_content += "".format(anomaly["ticker"]) + html_content += "".format(anomaly["trades"]) + html_content += "".format(anomaly["avg_trades"]) + html_content += "".format(anomaly["std_trades"]) + html_content += "".format(anomaly["z_score"]) + html_content += "".format(anomaly["close_price"]) + html_content += "".format(anomaly["price_diff"]) + # Add a link to the chart + html_content += ( + ''.format( + anomaly["ticker"], latest_date + ) + ) + html_content += "" + html_content += '
TickerTradesAvg TradesStd DevZ-scoreClose PricePrice DiffChart
{}{}{:.2f}{:.2f}{:.2f}{:.2f}{:.2f}View Chart
' + html_content += "
" + self.wfile.write(html_content.encode()) + elif path == "/chart": + # Handle the chart page + # Get 'ticker' and 'date' from query parameters + ticker = query_params.get("ticker", [None])[0] + date = query_params.get("date", [None])[0] + if ticker is None or date is None: + # Return an error page + self.send_response(400) + self.send_header("Content-type", "text/html") + self.end_headers() + error_html = "

Error: Missing ticker or date parameter

" + self.wfile.write(error_html.encode()) + else: + # Fetch minute aggregates for the ticker and date + client = RESTClient( + trace=True + ) # POLYGON_API_KEY environment variable is used + try: + aggs = [] + date_from = date + date_to = date + for a in client.list_aggs( + ticker, + 1, + "minute", + date_from, + date_to, + limit=50000, + ): + aggs.append(a) + # Prepare data for the chart + data = [] + for agg in aggs: + if isinstance(agg, Agg) and isinstance(agg.timestamp, int): + new_record = [ + agg.timestamp, + agg.open, + agg.high, + agg.low, + agg.close, + ] + data.append(new_record) + # Generate the HTML for the chart page + chart_html = """ + + + + + + + + + + + + +
+ +
+ + + """ % ( + json.dumps(data), + ticker, + date, + ticker, + ) + self.send_response(200) + self.send_header("Content-type", "text/html") + self.send_header("Access-Control-Allow-Origin", "*") + self.end_headers() + self.wfile.write(chart_html.encode()) + except Exception as e: + # Handle exceptions + self.send_response(500) + self.send_header("Content-type", "text/html") + self.end_headers() + error_html = "

Error fetching data: {}

".format( + str(e) + ) + self.wfile.write(error_html.encode()) + else: + # Serve files from the current directory + super().do_GET() + + +def run_server(): + with socketserver.TCPServer(("", PORT), handler) as httpd: + print("serving at port", PORT) + try: + httpd.serve_forever() + except KeyboardInterrupt: + print("\nExiting gracefully...") + httpd.shutdown() + httpd.server_close() + + +if __name__ == "__main__": + run_server() diff --git a/examples/tools/hunting-anomalies/query-lookup-table.py b/examples/tools/hunting-anomalies/query-lookup-table.py new file mode 100644 index 00000000..38bb86cf --- /dev/null +++ b/examples/tools/hunting-anomalies/query-lookup-table.py @@ -0,0 +1,63 @@ +import pickle +import argparse + +# Parse command-line arguments +parser = argparse.ArgumentParser(description="Anomaly Detection Script") +parser.add_argument("date", type=str, help="Target date in YYYY-MM-DD format") +args = parser.parse_args() + +# Load the lookup_table +with open("lookup_table.pkl", "rb") as f: + lookup_table = pickle.load(f) + +# Threshold for considering an anomaly (e.g., 3 standard deviations) +threshold_multiplier = 3 + +# Date for which we want to find anomalies +target_date_str = args.date + +# List to store anomalies +anomalies = [] + +# Iterate over all tickers in the lookup table +for ticker, date_data in lookup_table.items(): + if target_date_str in date_data: + data = date_data[target_date_str] + trades = data["trades"] + avg_trades = data["avg_trades"] + std_trades = data["std_trades"] + if avg_trades is not None and std_trades is not None and std_trades > 0: + z_score = (trades - avg_trades) / std_trades + if z_score > threshold_multiplier: + anomalies.append( + { + "ticker": ticker, + "date": target_date_str, + "trades": trades, + "avg_trades": avg_trades, + "std_trades": std_trades, + "z_score": z_score, + "close_price": data["close_price"], + "price_diff": data["price_diff"], + } + ) + +# Sort anomalies by trades in descending order +anomalies.sort(key=lambda x: x["trades"], reverse=True) + +# Print the anomalies with aligned columns +print(f"\nAnomalies Found for {target_date_str}:\n") +print( + f"{'Ticker':<10}{'Trades':>10}{'Avg Trades':>15}{'Std Dev':>10}{'Z-score':>10}{'Close Price':>12}{'Price Diff':>12}" +) +print("-" * 91) +for anomaly in anomalies: + print( + f"{anomaly['ticker']:<10}" + f"{anomaly['trades']:>10.0f}" + f"{anomaly['avg_trades']:>15.2f}" + f"{anomaly['std_trades']:>10.2f}" + f"{anomaly['z_score']:>10.2f}" + f"{anomaly['close_price']:>12.2f}" + f"{anomaly['price_diff']:>12.2f}" + ) From 3ac9548b42fb00da708563a678763e68715680c1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 11 Nov 2024 15:54:53 +0000 Subject: [PATCH 27/43] Bump orjson from 3.10.9 to 3.10.11 (#779) --- poetry.lock | 119 +++++++++++++++++++++++++------------------------ pyproject.toml | 2 +- 2 files changed, 61 insertions(+), 60 deletions(-) diff --git a/poetry.lock b/poetry.lock index 6c9cf217..1ab68672 100644 --- a/poetry.lock +++ b/poetry.lock @@ -389,68 +389,69 @@ six = ">=1.8.0" [[package]] name = "orjson" -version = "3.10.9" +version = "3.10.11" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.10.9-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a377186a11b48c55969e34f0aa414c2826a234f212d6f2b312ba512e3cdb2c6f"}, - {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0bf37bf0ca538065c34efe1803378b2dadd7e05b06610a086c2857f15ee59e12"}, - {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7d9d83a91168aa48309acba804e393b7d9216b66f15e38f339b9fbb00db8986d"}, - {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e0014038a17a1fe273da0a5489787677ef5a64566ab383ad6d929e44ed5683f4"}, - {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d6ae1b1733e4528e45675ed09a732b6ac37d716bce2facaf467f84ce774adecd"}, - {file = "orjson-3.10.9-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fe91c2259c4a859356b6db1c6e649b40577492f66d483da8b8af6da0f87c00e3"}, - {file = "orjson-3.10.9-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:a04f912c32463386ba117591c99a3d9e40b3b69bed9c5123d89dff06f0f5a4b0"}, - {file = "orjson-3.10.9-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:ae82ca347829ca47431767b079f96bb977f592189250ccdede676339a80c8982"}, - {file = "orjson-3.10.9-cp310-none-win32.whl", hash = "sha256:fd5083906825d7f5d23089425ce5424d783d6294020bcabb8518a3e1f97833e5"}, - {file = "orjson-3.10.9-cp310-none-win_amd64.whl", hash = "sha256:e9ff9521b5be0340c8e686bcfe2619777fd7583f71e7b494601cc91ad3919d2e"}, - {file = "orjson-3.10.9-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f3bd9df47385b8fabb3b2ee1e83f9960b8accc1905be971a1c257f16c32b491e"}, - {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a4948961b6bce1e2086b2cf0b56cc454cdab589d40c7f85be71fb5a5556c51d3"}, - {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:0a9fc7a6cf2b229ddc323e136df13b3fb4466c50d84ed600cd0898223dd2fea3"}, - {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2314846e1029a2d2b899140f350eaaf3a73281df43ba84ac44d94ca861b5b269"}, - {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f52d993504827503411df2d60e60acf52885561458d6273f99ecd172f31c4352"}, - {file = "orjson-3.10.9-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e29bbf08d907756c145a3a3a1f7ce2f11f15e3edbd3342842589d6030981b76f"}, - {file = "orjson-3.10.9-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:7ae82992c00b480c3cc7dac6739324554be8c5d8e858a90044928506a3333ef4"}, - {file = "orjson-3.10.9-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:6fdf8d32b6d94019dc15163542d345e9ce4c4661f56b318608aa3088a1a3a23b"}, - {file = "orjson-3.10.9-cp311-none-win32.whl", hash = "sha256:01f5fef452b4d7615f2e94153479370a4b59e0c964efb32dd902978f807a45cd"}, - {file = "orjson-3.10.9-cp311-none-win_amd64.whl", hash = "sha256:95361c4197c7ce9afdf56255de6f4e2474c39d16a277cce31d1b99a2520486d8"}, - {file = "orjson-3.10.9-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:43ad5560db54331c007dc38be5ba7706cb72974a29ae8227019d89305d750a6f"}, - {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1471c3274b1a4a9b8f4b9ed6effaea9ad885796373797515c44b365b375c256d"}, - {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:41d8cac575acd15918903d74cfaabb5dbe57b357b93341332f647d1013928dcc"}, - {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:2920c8754f1aedc98bd357ec172af18ce48f5f1017a92244c85fe41d16d3c6e0"}, - {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:c7fa3ff6a0d9d15a0d0d2254cca16cd919156a18423654ce5574591392fe9914"}, - {file = "orjson-3.10.9-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e1e91b90c0c26bd79593967c1adef421bcff88c9e723d49c93bb7ad8af80bc6b"}, - {file = "orjson-3.10.9-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f11949024f785ace1a516db32fa6255f6227226b2c988abf66f5aee61d43d8f7"}, - {file = "orjson-3.10.9-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:060e020d85d0ec145bc1b536b1fd9c10a0519c91991ead9724d6f759ebe26b9a"}, - {file = "orjson-3.10.9-cp312-none-win32.whl", hash = "sha256:71f73439999fe662843da3607cdf6e75b1551c330f487e5801d463d969091c63"}, - {file = "orjson-3.10.9-cp312-none-win_amd64.whl", hash = "sha256:12e2efe81356b8448f1cd130f8d75d3718de583112d71f2e2f8baa81bd835bb9"}, - {file = "orjson-3.10.9-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:0ab6e3ad10e964392f0e838751bcce2ef9c8fa8be7deddffff83088e5791566d"}, - {file = "orjson-3.10.9-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:68ef65223baab00f469c8698f771ab3e6ccf6af2a987e77de5b566b4ec651150"}, - {file = "orjson-3.10.9-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:6f130848205fea90a2cb9fa2b11cafff9a9f31f4efad225800bc8b9e4a702f24"}, - {file = "orjson-3.10.9-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:2ea7a98f3295ed8adb6730a5788cc78dafea28300d19932a1d2143457f7db802"}, - {file = "orjson-3.10.9-cp313-none-win32.whl", hash = "sha256:bdce39f96149a74fddeb2674c54f1da5e57724d32952eb6df2ac719b66d453cc"}, - {file = "orjson-3.10.9-cp313-none-win_amd64.whl", hash = "sha256:d11383701d4b58e795039b662ada46987744293d57bfa2719e7379b8d67bc796"}, - {file = "orjson-3.10.9-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1c3a1e845916a3739ab4162bb48dee66e0e727a19faf397176a7db0d9826cc3c"}, - {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:063ca59d93d93d1387f0c4bb766c6d4f5b0e423fe7c366d0bd4401a56d1669d1"}, - {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:938b7fcd79cf06fe348fb24b6163fbaa2fdc9fbed8b1f06318f24467f1487e63"}, - {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cc32a9e43c7693011ccde6f8eff8cba75ca0d2a55de11092faa4a716101e67f5"}, - {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1b3069b7e2f57f3eef2282029b9c2ba21f08a55f1018e483663a3356f046af4c"}, - {file = "orjson-3.10.9-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4289b5d1f88fd05dcafdd7a1f3b17bb722e77712b7618f98e86bdda560e0a1a"}, - {file = "orjson-3.10.9-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:74f5a7a7f282d326be71b722b0c350da7af6f5f15b9378da177e0e4a09bd91a3"}, - {file = "orjson-3.10.9-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:80e0c013e50cf7198319d8137931684eb9f32daa067e8276d9dbdd4010bb4add"}, - {file = "orjson-3.10.9-cp38-none-win32.whl", hash = "sha256:9d989152df8f60a76867354e0e08d896292ab9fb96a7ef89a5b3838de174522c"}, - {file = "orjson-3.10.9-cp38-none-win_amd64.whl", hash = "sha256:485358fe9892d6bfd88e5885b66bf88496e1842c8f35f61682ff9928b12a6cf0"}, - {file = "orjson-3.10.9-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ca54e6f320e33c8a6e471c424ee16576361d905c15d69e134c2906d3fcb31795"}, - {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f9a9eb03a29c9b30b6c8bb35e5fa20d96589a76e0042005be59b7c3af10a7e43"}, - {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:731e8859fc99b398c286320726906404091141e9223dd5e9e6917f7e32e1cc68"}, - {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:75b061c11f5aab979a95927a76394b4a85e3e4d63d0a2a16b56a4f7c6503afab"}, - {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b61b08f6397f004570fd6a840f4a58946b63b4c7029408cdedb45fe85c7d17f7"}, - {file = "orjson-3.10.9-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0c4f5e0360b7f0aba91dafe12469108109a0e8973956d4a9865ca262a6881406"}, - {file = "orjson-3.10.9-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e403429e2947a059545e305d97e4b0eb90d3bb44b396d6f327d7ae2018391e13"}, - {file = "orjson-3.10.9-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:0e492b93e122264c2dc78700859122631a4715bda88fabf57d9226954cfe7ec5"}, - {file = "orjson-3.10.9-cp39-none-win32.whl", hash = "sha256:bfba9605e85bfd19b83a21c2c25c2bed2000d5f097f3fa3ad5b5f8a7263a3148"}, - {file = "orjson-3.10.9-cp39-none-win_amd64.whl", hash = "sha256:77d277fa138d4bf145e8b24042004891c188c52ac8492724a183f42b0031cf0c"}, - {file = "orjson-3.10.9.tar.gz", hash = "sha256:c378074e0c46035dc66e57006993233ec66bf8487d501bab41649b4b7289ed4d"}, + {file = "orjson-3.10.11-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6dade64687f2bd7c090281652fe18f1151292d567a9302b34c2dbb92a3872f1f"}, + {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82f07c550a6ccd2b9290849b22316a609023ed851a87ea888c0456485a7d196a"}, + {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd9a187742d3ead9df2e49240234d728c67c356516cf4db018833a86f20ec18c"}, + {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77b0fed6f209d76c1c39f032a70df2d7acf24b1812ca3e6078fd04e8972685a3"}, + {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63fc9d5fe1d4e8868f6aae547a7b8ba0a2e592929245fff61d633f4caccdcdd6"}, + {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65cd3e3bb4fbb4eddc3c1e8dce10dc0b73e808fcb875f9fab40c81903dd9323e"}, + {file = "orjson-3.10.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6f67c570602300c4befbda12d153113b8974a3340fdcf3d6de095ede86c06d92"}, + {file = "orjson-3.10.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1f39728c7f7d766f1f5a769ce4d54b5aaa4c3f92d5b84817053cc9995b977acc"}, + {file = "orjson-3.10.11-cp310-none-win32.whl", hash = "sha256:1789d9db7968d805f3d94aae2c25d04014aae3a2fa65b1443117cd462c6da647"}, + {file = "orjson-3.10.11-cp310-none-win_amd64.whl", hash = "sha256:5576b1e5a53a5ba8f8df81872bb0878a112b3ebb1d392155f00f54dd86c83ff6"}, + {file = "orjson-3.10.11-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1444f9cb7c14055d595de1036f74ecd6ce15f04a715e73f33bb6326c9cef01b6"}, + {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdec57fe3b4bdebcc08a946db3365630332dbe575125ff3d80a3272ebd0ddafe"}, + {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4eed32f33a0ea6ef36ccc1d37f8d17f28a1d6e8eefae5928f76aff8f1df85e67"}, + {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80df27dd8697242b904f4ea54820e2d98d3f51f91e97e358fc13359721233e4b"}, + {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:705f03cee0cb797256d54de6695ef219e5bc8c8120b6654dd460848d57a9af3d"}, + {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03246774131701de8e7059b2e382597da43144a9a7400f178b2a32feafc54bd5"}, + {file = "orjson-3.10.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8b5759063a6c940a69c728ea70d7c33583991c6982915a839c8da5f957e0103a"}, + {file = "orjson-3.10.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:677f23e32491520eebb19c99bb34675daf5410c449c13416f7f0d93e2cf5f981"}, + {file = "orjson-3.10.11-cp311-none-win32.whl", hash = "sha256:a11225d7b30468dcb099498296ffac36b4673a8398ca30fdaec1e6c20df6aa55"}, + {file = "orjson-3.10.11-cp311-none-win_amd64.whl", hash = "sha256:df8c677df2f9f385fcc85ab859704045fa88d4668bc9991a527c86e710392bec"}, + {file = "orjson-3.10.11-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:360a4e2c0943da7c21505e47cf6bd725588962ff1d739b99b14e2f7f3545ba51"}, + {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:496e2cb45de21c369079ef2d662670a4892c81573bcc143c4205cae98282ba97"}, + {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7dfa8db55c9792d53c5952900c6a919cfa377b4f4534c7a786484a6a4a350c19"}, + {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:51f3382415747e0dbda9dade6f1e1a01a9d37f630d8c9049a8ed0e385b7a90c0"}, + {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f35a1b9f50a219f470e0e497ca30b285c9f34948d3c8160d5ad3a755d9299433"}, + {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2f3b7c5803138e67028dde33450e054c87e0703afbe730c105f1fcd873496d5"}, + {file = "orjson-3.10.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f91d9eb554310472bd09f5347950b24442600594c2edc1421403d7610a0998fd"}, + {file = "orjson-3.10.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dfbb2d460a855c9744bbc8e36f9c3a997c4b27d842f3d5559ed54326e6911f9b"}, + {file = "orjson-3.10.11-cp312-none-win32.whl", hash = "sha256:d4a62c49c506d4d73f59514986cadebb7e8d186ad510c518f439176cf8d5359d"}, + {file = "orjson-3.10.11-cp312-none-win_amd64.whl", hash = "sha256:f1eec3421a558ff7a9b010a6c7effcfa0ade65327a71bb9b02a1c3b77a247284"}, + {file = "orjson-3.10.11-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c46294faa4e4d0eb73ab68f1a794d2cbf7bab33b1dda2ac2959ffb7c61591899"}, + {file = "orjson-3.10.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52e5834d7d6e58a36846e059d00559cb9ed20410664f3ad156cd2cc239a11230"}, + {file = "orjson-3.10.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2fc947e5350fdce548bfc94f434e8760d5cafa97fb9c495d2fef6757aa02ec0"}, + {file = "orjson-3.10.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0efabbf839388a1dab5b72b5d3baedbd6039ac83f3b55736eb9934ea5494d258"}, + {file = "orjson-3.10.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a3f29634260708c200c4fe148e42b4aae97d7b9fee417fbdd74f8cfc265f15b0"}, + {file = "orjson-3.10.11-cp313-none-win32.whl", hash = "sha256:1a1222ffcee8a09476bbdd5d4f6f33d06d0d6642df2a3d78b7a195ca880d669b"}, + {file = "orjson-3.10.11-cp313-none-win_amd64.whl", hash = "sha256:bc274ac261cc69260913b2d1610760e55d3c0801bb3457ba7b9004420b6b4270"}, + {file = "orjson-3.10.11-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:19b3763e8bbf8ad797df6b6b5e0fc7c843ec2e2fc0621398534e0c6400098f87"}, + {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1be83a13312e5e58d633580c5eb8d0495ae61f180da2722f20562974188af205"}, + {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:afacfd1ab81f46dedd7f6001b6d4e8de23396e4884cd3c3436bd05defb1a6446"}, + {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cb4d0bea56bba596723d73f074c420aec3b2e5d7d30698bc56e6048066bd560c"}, + {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96ed1de70fcb15d5fed529a656df29f768187628727ee2788344e8a51e1c1350"}, + {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bfb30c891b530f3f80e801e3ad82ef150b964e5c38e1fb8482441c69c35c61c"}, + {file = "orjson-3.10.11-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d496c74fc2b61341e3cefda7eec21b7854c5f672ee350bc55d9a4997a8a95204"}, + {file = "orjson-3.10.11-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:655a493bac606655db9a47fe94d3d84fc7f3ad766d894197c94ccf0c5408e7d3"}, + {file = "orjson-3.10.11-cp38-none-win32.whl", hash = "sha256:b9546b278c9fb5d45380f4809e11b4dd9844ca7aaf1134024503e134ed226161"}, + {file = "orjson-3.10.11-cp38-none-win_amd64.whl", hash = "sha256:b592597fe551d518f42c5a2eb07422eb475aa8cfdc8c51e6da7054b836b26782"}, + {file = "orjson-3.10.11-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c95f2ecafe709b4e5c733b5e2768ac569bed308623c85806c395d9cca00e08af"}, + {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80c00d4acded0c51c98754fe8218cb49cb854f0f7eb39ea4641b7f71732d2cb7"}, + {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:461311b693d3d0a060439aa669c74f3603264d4e7a08faa68c47ae5a863f352d"}, + {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52ca832f17d86a78cbab86cdc25f8c13756ebe182b6fc1a97d534051c18a08de"}, + {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c57ea78a753812f528178aa2f1c57da633754c91d2124cb28991dab4c79a54"}, + {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7fcfc6f7ca046383fb954ba528587e0f9336828b568282b27579c49f8e16aad"}, + {file = "orjson-3.10.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:86b9dd983857970c29e4c71bb3e95ff085c07d3e83e7c46ebe959bac07ebd80b"}, + {file = "orjson-3.10.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4d83f87582d223e54efb2242a79547611ba4ebae3af8bae1e80fa9a0af83bb7f"}, + {file = "orjson-3.10.11-cp39-none-win32.whl", hash = "sha256:9fd0ad1c129bc9beb1154c2655f177620b5beaf9a11e0d10bac63ef3fce96950"}, + {file = "orjson-3.10.11-cp39-none-win_amd64.whl", hash = "sha256:10f416b2a017c8bd17f325fb9dee1fb5cdd7a54e814284896b7c3f2763faa017"}, + {file = "orjson-3.10.11.tar.gz", hash = "sha256:e35b6d730de6384d5b2dab5fd23f0d76fae8bbc8c353c2f78210aa5fa4beb3ef"}, ] [[package]] @@ -988,4 +989,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "bc73d9f5843ac26c73d8a9f755037f1deac6b9d5d84e9d111492bea26841e747" +content-hash = "da77bece324a6ae9696517f2df926377a0d1faac253aca6754bf3d35cbc4a7c2" diff --git a/pyproject.toml b/pyproject.toml index 168dc906..01a2dc4f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" types-setuptools = "^75.2.0" pook = "^2.0.1" -orjson = "^3.10.9" +orjson = "^3.10.11" [build-system] requires = ["poetry-core>=1.0.0"] From b389b9eba65fb56a924f1ff3ef7b80de21a694fd Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Nov 2024 04:46:58 -0800 Subject: [PATCH 28/43] Bump types-setuptools from 75.2.0.20241019 to 75.3.0.20241107 (#783) Bumps [types-setuptools](https://github.com/python/typeshed) from 75.2.0.20241019 to 75.3.0.20241107. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 1ab68672..d409ab5c 100644 --- a/poetry.lock +++ b/poetry.lock @@ -817,13 +817,13 @@ files = [ [[package]] name = "types-setuptools" -version = "75.2.0.20241019" +version = "75.3.0.20241107" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-75.2.0.20241019.tar.gz", hash = "sha256:86ea31b5f6df2c6b8f2dc8ae3f72b213607f62549b6fa2ed5866e5299f968694"}, - {file = "types_setuptools-75.2.0.20241019-py3-none-any.whl", hash = "sha256:2e48ff3acd4919471e80d5e3f049cce5c177e108d5d36d2d4cee3fa4d4104258"}, + {file = "types-setuptools-75.3.0.20241107.tar.gz", hash = "sha256:f66710e1cd4a936e5fcc12d4e49be1a67c34372cf753e87ebe704426451b4012"}, + {file = "types_setuptools-75.3.0.20241107-py3-none-any.whl", hash = "sha256:bc6de6e2bcb6d610556304d0a69fe4ca208ac4896162647314ecfd9fd73d8550"}, ] [[package]] @@ -989,4 +989,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "da77bece324a6ae9696517f2df926377a0d1faac253aca6754bf3d35cbc4a7c2" +content-hash = "6cbbf3e12525e3d5faa1bb19be793935af7dc75935ec97a6ba2941417e93b207" diff --git a/pyproject.toml b/pyproject.toml index 01a2dc4f..633c26a4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^3.0.1" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^75.2.0" +types-setuptools = "^75.3.0" pook = "^2.0.1" orjson = "^3.10.11" From dc7e9e27b43b702de2965230f7530af5cda1c036 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 12 Nov 2024 04:50:20 -0800 Subject: [PATCH 29/43] Bump mypy from 1.12.1 to 1.13.0 (#776) Bumps [mypy](https://github.com/python/mypy) from 1.12.1 to 1.13.0. - [Changelog](https://github.com/python/mypy/blob/master/CHANGELOG.md) - [Commits](https://github.com/python/mypy/compare/v1.12.1...v1.13.0) --- updated-dependencies: - dependency-name: mypy dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 69 +++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 36 insertions(+), 35 deletions(-) diff --git a/poetry.lock b/poetry.lock index d409ab5c..b25eefae 100644 --- a/poetry.lock +++ b/poetry.lock @@ -312,43 +312,43 @@ files = [ [[package]] name = "mypy" -version = "1.12.1" +version = "1.13.0" description = "Optional static typing for Python" optional = false python-versions = ">=3.8" files = [ - {file = "mypy-1.12.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:3d7d4371829184e22fda4015278fbfdef0327a4b955a483012bd2d423a788801"}, - {file = "mypy-1.12.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:f59f1dfbf497d473201356966e353ef09d4daec48caeacc0254db8ef633a28a5"}, - {file = "mypy-1.12.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:b947097fae68004b8328c55161ac9db7d3566abfef72d9d41b47a021c2fba6b1"}, - {file = "mypy-1.12.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:96af62050971c5241afb4701c15189ea9507db89ad07794a4ee7b4e092dc0627"}, - {file = "mypy-1.12.1-cp310-cp310-win_amd64.whl", hash = "sha256:d90da248f4c2dba6c44ddcfea94bb361e491962f05f41990ff24dbd09969ce20"}, - {file = "mypy-1.12.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1230048fec1380faf240be6385e709c8570604d2d27ec6ca7e573e3bc09c3735"}, - {file = "mypy-1.12.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:02dcfe270c6ea13338210908f8cadc8d31af0f04cee8ca996438fe6a97b4ec66"}, - {file = "mypy-1.12.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:a5a437c9102a6a252d9e3a63edc191a3aed5f2fcb786d614722ee3f4472e33f6"}, - {file = "mypy-1.12.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:186e0c8346efc027ee1f9acf5ca734425fc4f7dc2b60144f0fbe27cc19dc7931"}, - {file = "mypy-1.12.1-cp311-cp311-win_amd64.whl", hash = "sha256:673ba1140a478b50e6d265c03391702fa11a5c5aff3f54d69a62a48da32cb811"}, - {file = "mypy-1.12.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:9fb83a7be97c498176fb7486cafbb81decccaef1ac339d837c377b0ce3743a7f"}, - {file = "mypy-1.12.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:389e307e333879c571029d5b93932cf838b811d3f5395ed1ad05086b52148fb0"}, - {file = "mypy-1.12.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:94b2048a95a21f7a9ebc9fbd075a4fcd310410d078aa0228dbbad7f71335e042"}, - {file = "mypy-1.12.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:4ee5932370ccf7ebf83f79d1c157a5929d7ea36313027b0d70a488493dc1b179"}, - {file = "mypy-1.12.1-cp312-cp312-win_amd64.whl", hash = "sha256:19bf51f87a295e7ab2894f1d8167622b063492d754e69c3c2fed6563268cb42a"}, - {file = "mypy-1.12.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:d34167d43613ffb1d6c6cdc0cc043bb106cac0aa5d6a4171f77ab92a3c758bcc"}, - {file = "mypy-1.12.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:427878aa54f2e2c5d8db31fa9010c599ed9f994b3b49e64ae9cd9990c40bd635"}, - {file = "mypy-1.12.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:5fcde63ea2c9f69d6be859a1e6dd35955e87fa81de95bc240143cf00de1f7f81"}, - {file = "mypy-1.12.1-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d54d840f6c052929f4a3d2aab2066af0f45a020b085fe0e40d4583db52aab4e4"}, - {file = "mypy-1.12.1-cp313-cp313-win_amd64.whl", hash = "sha256:20db6eb1ca3d1de8ece00033b12f793f1ea9da767334b7e8c626a4872090cf02"}, - {file = "mypy-1.12.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:b16fe09f9c741d85a2e3b14a5257a27a4f4886c171d562bc5a5e90d8591906b8"}, - {file = "mypy-1.12.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:0dcc1e843d58f444fce19da4cce5bd35c282d4bde232acdeca8279523087088a"}, - {file = "mypy-1.12.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e10ba7de5c616e44ad21005fa13450cd0de7caaa303a626147d45307492e4f2d"}, - {file = "mypy-1.12.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:0e6fe449223fa59fbee351db32283838a8fee8059e0028e9e6494a03802b4004"}, - {file = "mypy-1.12.1-cp38-cp38-win_amd64.whl", hash = "sha256:dc6e2a2195a290a7fd5bac3e60b586d77fc88e986eba7feced8b778c373f9afe"}, - {file = "mypy-1.12.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:de5b2a8988b4e1269a98beaf0e7cc71b510d050dce80c343b53b4955fff45f19"}, - {file = "mypy-1.12.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:843826966f1d65925e8b50d2b483065c51fc16dc5d72647e0236aae51dc8d77e"}, - {file = "mypy-1.12.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:9fe20f89da41a95e14c34b1ddb09c80262edcc295ad891f22cc4b60013e8f78d"}, - {file = "mypy-1.12.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:8135ffec02121a75f75dc97c81af7c14aa4ae0dda277132cfcd6abcd21551bfd"}, - {file = "mypy-1.12.1-cp39-cp39-win_amd64.whl", hash = "sha256:a7b76fa83260824300cc4834a3ab93180db19876bce59af921467fd03e692810"}, - {file = "mypy-1.12.1-py3-none-any.whl", hash = "sha256:ce561a09e3bb9863ab77edf29ae3a50e65685ad74bba1431278185b7e5d5486e"}, - {file = "mypy-1.12.1.tar.gz", hash = "sha256:f5b3936f7a6d0e8280c9bdef94c7ce4847f5cdfc258fbb2c29a8c1711e8bb96d"}, + {file = "mypy-1.13.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:6607e0f1dd1fb7f0aca14d936d13fd19eba5e17e1cd2a14f808fa5f8f6d8f60a"}, + {file = "mypy-1.13.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:8a21be69bd26fa81b1f80a61ee7ab05b076c674d9b18fb56239d72e21d9f4c80"}, + {file = "mypy-1.13.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7b2353a44d2179846a096e25691d54d59904559f4232519d420d64da6828a3a7"}, + {file = "mypy-1.13.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:0730d1c6a2739d4511dc4253f8274cdd140c55c32dfb0a4cf8b7a43f40abfa6f"}, + {file = "mypy-1.13.0-cp310-cp310-win_amd64.whl", hash = "sha256:c5fc54dbb712ff5e5a0fca797e6e0aa25726c7e72c6a5850cfd2adbc1eb0a372"}, + {file = "mypy-1.13.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:581665e6f3a8a9078f28d5502f4c334c0c8d802ef55ea0e7276a6e409bc0d82d"}, + {file = "mypy-1.13.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:3ddb5b9bf82e05cc9a627e84707b528e5c7caaa1c55c69e175abb15a761cec2d"}, + {file = "mypy-1.13.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:20c7ee0bc0d5a9595c46f38beb04201f2620065a93755704e141fcac9f59db2b"}, + {file = "mypy-1.13.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3790ded76f0b34bc9c8ba4def8f919dd6a46db0f5a6610fb994fe8efdd447f73"}, + {file = "mypy-1.13.0-cp311-cp311-win_amd64.whl", hash = "sha256:51f869f4b6b538229c1d1bcc1dd7d119817206e2bc54e8e374b3dfa202defcca"}, + {file = "mypy-1.13.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:5c7051a3461ae84dfb5dd15eff5094640c61c5f22257c8b766794e6dd85e72d5"}, + {file = "mypy-1.13.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:39bb21c69a5d6342f4ce526e4584bc5c197fd20a60d14a8624d8743fffb9472e"}, + {file = "mypy-1.13.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:164f28cb9d6367439031f4c81e84d3ccaa1e19232d9d05d37cb0bd880d3f93c2"}, + {file = "mypy-1.13.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:a4c1bfcdbce96ff5d96fc9b08e3831acb30dc44ab02671eca5953eadad07d6d0"}, + {file = "mypy-1.13.0-cp312-cp312-win_amd64.whl", hash = "sha256:a0affb3a79a256b4183ba09811e3577c5163ed06685e4d4b46429a271ba174d2"}, + {file = "mypy-1.13.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:a7b44178c9760ce1a43f544e595d35ed61ac2c3de306599fa59b38a6048e1aa7"}, + {file = "mypy-1.13.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:5d5092efb8516d08440e36626f0153b5006d4088c1d663d88bf79625af3d1d62"}, + {file = "mypy-1.13.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:de2904956dac40ced10931ac967ae63c5089bd498542194b436eb097a9f77bc8"}, + {file = "mypy-1.13.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:7bfd8836970d33c2105562650656b6846149374dc8ed77d98424b40b09340ba7"}, + {file = "mypy-1.13.0-cp313-cp313-win_amd64.whl", hash = "sha256:9f73dba9ec77acb86457a8fc04b5239822df0c14a082564737833d2963677dbc"}, + {file = "mypy-1.13.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:100fac22ce82925f676a734af0db922ecfea991e1d7ec0ceb1e115ebe501301a"}, + {file = "mypy-1.13.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:7bcb0bb7f42a978bb323a7c88f1081d1b5dee77ca86f4100735a6f541299d8fb"}, + {file = "mypy-1.13.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bde31fc887c213e223bbfc34328070996061b0833b0a4cfec53745ed61f3519b"}, + {file = "mypy-1.13.0-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:07de989f89786f62b937851295ed62e51774722e5444a27cecca993fc3f9cd74"}, + {file = "mypy-1.13.0-cp38-cp38-win_amd64.whl", hash = "sha256:4bde84334fbe19bad704b3f5b78c4abd35ff1026f8ba72b29de70dda0916beb6"}, + {file = "mypy-1.13.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:0246bcb1b5de7f08f2826451abd947bf656945209b140d16ed317f65a17dc7dc"}, + {file = "mypy-1.13.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:7f5b7deae912cf8b77e990b9280f170381fdfbddf61b4ef80927edd813163732"}, + {file = "mypy-1.13.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7029881ec6ffb8bc233a4fa364736789582c738217b133f1b55967115288a2bc"}, + {file = "mypy-1.13.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:3e38b980e5681f28f033f3be86b099a247b13c491f14bb8b1e1e134d23bb599d"}, + {file = "mypy-1.13.0-cp39-cp39-win_amd64.whl", hash = "sha256:a6789be98a2017c912ae6ccb77ea553bbaf13d27605d2ca20a76dfbced631b24"}, + {file = "mypy-1.13.0-py3-none-any.whl", hash = "sha256:9c250883f9fd81d212e0952c92dbfcc96fc237f4b7c92f56ac81fd48460b3e5a"}, + {file = "mypy-1.13.0.tar.gz", hash = "sha256:0291a61b6fbf3e6673e3405cfcc0e7650bebc7939659fdca2702958038bd835e"}, ] [package.dependencies] @@ -358,6 +358,7 @@ typing-extensions = ">=4.6.0" [package.extras] dmypy = ["psutil (>=4.0)"] +faster-cache = ["orjson"] install-types = ["pip"] mypyc = ["setuptools (>=50)"] reports = ["lxml"] @@ -989,4 +990,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "6cbbf3e12525e3d5faa1bb19be793935af7dc75935ec97a6ba2941417e93b207" +content-hash = "30f3e19d533a319f875b07103455ee6657c5ee92260666909cd47aa503ad29bf" diff --git a/pyproject.toml b/pyproject.toml index 633c26a4..20db1464 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,7 +31,7 @@ certifi = ">=2022.5.18,<2025.0.0" [tool.poetry.dev-dependencies] black = "^24.8.0" -mypy = "^1.12" +mypy = "^1.13" types-urllib3 = "^1.26.25" Sphinx = "^7.1.2" sphinx-rtd-theme = "^3.0.1" From b090f5ed3869057f6e73a725b1795bd738cc618f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 10:36:50 -0800 Subject: [PATCH 30/43] Bump types-setuptools from 75.3.0.20241107 to 75.5.0.20241116 (#786) Bumps [types-setuptools](https://github.com/python/typeshed) from 75.3.0.20241107 to 75.5.0.20241116. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index b25eefae..3749fc71 100644 --- a/poetry.lock +++ b/poetry.lock @@ -818,13 +818,13 @@ files = [ [[package]] name = "types-setuptools" -version = "75.3.0.20241107" +version = "75.5.0.20241116" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-75.3.0.20241107.tar.gz", hash = "sha256:f66710e1cd4a936e5fcc12d4e49be1a67c34372cf753e87ebe704426451b4012"}, - {file = "types_setuptools-75.3.0.20241107-py3-none-any.whl", hash = "sha256:bc6de6e2bcb6d610556304d0a69fe4ca208ac4896162647314ecfd9fd73d8550"}, + {file = "types-setuptools-75.5.0.20241116.tar.gz", hash = "sha256:b6939ffdbc50ffdc0bcfbf14f7a6de1ddc5510906c1ca2bd62c23646e5798b1a"}, + {file = "types_setuptools-75.5.0.20241116-py3-none-any.whl", hash = "sha256:1144b2ab8fa986061f963391fdbde16df20582e3cc39c94340e71aa61cc7203f"}, ] [[package]] @@ -990,4 +990,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "30f3e19d533a319f875b07103455ee6657c5ee92260666909cd47aa503ad29bf" +content-hash = "92cf31e5fe27f276b9c319d1742d5865ee52b5a8589230a994907ad74e426fde" diff --git a/pyproject.toml b/pyproject.toml index 20db1464..0b1d4f7f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^3.0.1" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^75.3.0" +types-setuptools = "^75.5.0" pook = "^2.0.1" orjson = "^3.10.11" From 83dfc92f11039a2956fe353b32d2385d3b83fecc Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 18 Nov 2024 11:36:00 -0800 Subject: [PATCH 31/43] Bump sphinx-rtd-theme from 3.0.1 to 3.0.2 (#787) Bumps [sphinx-rtd-theme](https://github.com/readthedocs/sphinx_rtd_theme) from 3.0.1 to 3.0.2. - [Changelog](https://github.com/readthedocs/sphinx_rtd_theme/blob/master/docs/changelog.rst) - [Commits](https://github.com/readthedocs/sphinx_rtd_theme/compare/3.0.1...3.0.2) --- updated-dependencies: - dependency-name: sphinx-rtd-theme dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3749fc71..150e23c4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -674,13 +674,13 @@ testing = ["covdefaults (>=2.3)", "coverage (>=7.4.2)", "diff-cover (>=8.0.3)", [[package]] name = "sphinx-rtd-theme" -version = "3.0.1" +version = "3.0.2" description = "Read the Docs theme for Sphinx" optional = false python-versions = ">=3.8" files = [ - {file = "sphinx_rtd_theme-3.0.1-py2.py3-none-any.whl", hash = "sha256:921c0ece75e90633ee876bd7b148cfaad136b481907ad154ac3669b6fc957916"}, - {file = "sphinx_rtd_theme-3.0.1.tar.gz", hash = "sha256:a4c5745d1b06dfcb80b7704fe532eb765b44065a8fad9851e4258c8804140703"}, + {file = "sphinx_rtd_theme-3.0.2-py2.py3-none-any.whl", hash = "sha256:422ccc750c3a3a311de4ae327e82affdaf59eb695ba4936538552f3b00f4ee13"}, + {file = "sphinx_rtd_theme-3.0.2.tar.gz", hash = "sha256:b7457bc25dda723b20b086a670b9953c859eab60a2a03ee8eb2bb23e176e5f85"}, ] [package.dependencies] @@ -990,4 +990,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "92cf31e5fe27f276b9c319d1742d5865ee52b5a8589230a994907ad74e426fde" +content-hash = "7e985cdc0c18c1888f9b6ef92fbad423b529ce066e96f360f0bf01dfe6ed312c" diff --git a/pyproject.toml b/pyproject.toml index 0b1d4f7f..dc25d905 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,7 @@ black = "^24.8.0" mypy = "^1.13" types-urllib3 = "^1.26.25" Sphinx = "^7.1.2" -sphinx-rtd-theme = "^3.0.1" +sphinx-rtd-theme = "^3.0.2" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" From 3756b5380d04043deb8a2eaea8b8f8d104650995 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 09:29:20 -0800 Subject: [PATCH 32/43] Bump orjson from 3.10.11 to 3.10.12 (#794) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.11 to 3.10.12. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](https://github.com/ijl/orjson/compare/3.10.11...3.10.12) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 137 +++++++++++++++++++++++++++---------------------- pyproject.toml | 2 +- 2 files changed, 78 insertions(+), 61 deletions(-) diff --git a/poetry.lock b/poetry.lock index 150e23c4..c86acd29 100644 --- a/poetry.lock +++ b/poetry.lock @@ -390,69 +390,86 @@ six = ">=1.8.0" [[package]] name = "orjson" -version = "3.10.11" +version = "3.10.12" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.10.11-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:6dade64687f2bd7c090281652fe18f1151292d567a9302b34c2dbb92a3872f1f"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:82f07c550a6ccd2b9290849b22316a609023ed851a87ea888c0456485a7d196a"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bd9a187742d3ead9df2e49240234d728c67c356516cf4db018833a86f20ec18c"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:77b0fed6f209d76c1c39f032a70df2d7acf24b1812ca3e6078fd04e8972685a3"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:63fc9d5fe1d4e8868f6aae547a7b8ba0a2e592929245fff61d633f4caccdcdd6"}, - {file = "orjson-3.10.11-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:65cd3e3bb4fbb4eddc3c1e8dce10dc0b73e808fcb875f9fab40c81903dd9323e"}, - {file = "orjson-3.10.11-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:6f67c570602300c4befbda12d153113b8974a3340fdcf3d6de095ede86c06d92"}, - {file = "orjson-3.10.11-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:1f39728c7f7d766f1f5a769ce4d54b5aaa4c3f92d5b84817053cc9995b977acc"}, - {file = "orjson-3.10.11-cp310-none-win32.whl", hash = "sha256:1789d9db7968d805f3d94aae2c25d04014aae3a2fa65b1443117cd462c6da647"}, - {file = "orjson-3.10.11-cp310-none-win_amd64.whl", hash = "sha256:5576b1e5a53a5ba8f8df81872bb0878a112b3ebb1d392155f00f54dd86c83ff6"}, - {file = "orjson-3.10.11-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1444f9cb7c14055d595de1036f74ecd6ce15f04a715e73f33bb6326c9cef01b6"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:cdec57fe3b4bdebcc08a946db3365630332dbe575125ff3d80a3272ebd0ddafe"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:4eed32f33a0ea6ef36ccc1d37f8d17f28a1d6e8eefae5928f76aff8f1df85e67"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:80df27dd8697242b904f4ea54820e2d98d3f51f91e97e358fc13359721233e4b"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:705f03cee0cb797256d54de6695ef219e5bc8c8120b6654dd460848d57a9af3d"}, - {file = "orjson-3.10.11-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03246774131701de8e7059b2e382597da43144a9a7400f178b2a32feafc54bd5"}, - {file = "orjson-3.10.11-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8b5759063a6c940a69c728ea70d7c33583991c6982915a839c8da5f957e0103a"}, - {file = "orjson-3.10.11-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:677f23e32491520eebb19c99bb34675daf5410c449c13416f7f0d93e2cf5f981"}, - {file = "orjson-3.10.11-cp311-none-win32.whl", hash = "sha256:a11225d7b30468dcb099498296ffac36b4673a8398ca30fdaec1e6c20df6aa55"}, - {file = "orjson-3.10.11-cp311-none-win_amd64.whl", hash = "sha256:df8c677df2f9f385fcc85ab859704045fa88d4668bc9991a527c86e710392bec"}, - {file = "orjson-3.10.11-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:360a4e2c0943da7c21505e47cf6bd725588962ff1d739b99b14e2f7f3545ba51"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:496e2cb45de21c369079ef2d662670a4892c81573bcc143c4205cae98282ba97"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7dfa8db55c9792d53c5952900c6a919cfa377b4f4534c7a786484a6a4a350c19"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:51f3382415747e0dbda9dade6f1e1a01a9d37f630d8c9049a8ed0e385b7a90c0"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f35a1b9f50a219f470e0e497ca30b285c9f34948d3c8160d5ad3a755d9299433"}, - {file = "orjson-3.10.11-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e2f3b7c5803138e67028dde33450e054c87e0703afbe730c105f1fcd873496d5"}, - {file = "orjson-3.10.11-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:f91d9eb554310472bd09f5347950b24442600594c2edc1421403d7610a0998fd"}, - {file = "orjson-3.10.11-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:dfbb2d460a855c9744bbc8e36f9c3a997c4b27d842f3d5559ed54326e6911f9b"}, - {file = "orjson-3.10.11-cp312-none-win32.whl", hash = "sha256:d4a62c49c506d4d73f59514986cadebb7e8d186ad510c518f439176cf8d5359d"}, - {file = "orjson-3.10.11-cp312-none-win_amd64.whl", hash = "sha256:f1eec3421a558ff7a9b010a6c7effcfa0ade65327a71bb9b02a1c3b77a247284"}, - {file = "orjson-3.10.11-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c46294faa4e4d0eb73ab68f1a794d2cbf7bab33b1dda2ac2959ffb7c61591899"}, - {file = "orjson-3.10.11-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52e5834d7d6e58a36846e059d00559cb9ed20410664f3ad156cd2cc239a11230"}, - {file = "orjson-3.10.11-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a2fc947e5350fdce548bfc94f434e8760d5cafa97fb9c495d2fef6757aa02ec0"}, - {file = "orjson-3.10.11-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0efabbf839388a1dab5b72b5d3baedbd6039ac83f3b55736eb9934ea5494d258"}, - {file = "orjson-3.10.11-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a3f29634260708c200c4fe148e42b4aae97d7b9fee417fbdd74f8cfc265f15b0"}, - {file = "orjson-3.10.11-cp313-none-win32.whl", hash = "sha256:1a1222ffcee8a09476bbdd5d4f6f33d06d0d6642df2a3d78b7a195ca880d669b"}, - {file = "orjson-3.10.11-cp313-none-win_amd64.whl", hash = "sha256:bc274ac261cc69260913b2d1610760e55d3c0801bb3457ba7b9004420b6b4270"}, - {file = "orjson-3.10.11-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:19b3763e8bbf8ad797df6b6b5e0fc7c843ec2e2fc0621398534e0c6400098f87"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1be83a13312e5e58d633580c5eb8d0495ae61f180da2722f20562974188af205"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:afacfd1ab81f46dedd7f6001b6d4e8de23396e4884cd3c3436bd05defb1a6446"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:cb4d0bea56bba596723d73f074c420aec3b2e5d7d30698bc56e6048066bd560c"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96ed1de70fcb15d5fed529a656df29f768187628727ee2788344e8a51e1c1350"}, - {file = "orjson-3.10.11-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4bfb30c891b530f3f80e801e3ad82ef150b964e5c38e1fb8482441c69c35c61c"}, - {file = "orjson-3.10.11-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:d496c74fc2b61341e3cefda7eec21b7854c5f672ee350bc55d9a4997a8a95204"}, - {file = "orjson-3.10.11-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:655a493bac606655db9a47fe94d3d84fc7f3ad766d894197c94ccf0c5408e7d3"}, - {file = "orjson-3.10.11-cp38-none-win32.whl", hash = "sha256:b9546b278c9fb5d45380f4809e11b4dd9844ca7aaf1134024503e134ed226161"}, - {file = "orjson-3.10.11-cp38-none-win_amd64.whl", hash = "sha256:b592597fe551d518f42c5a2eb07422eb475aa8cfdc8c51e6da7054b836b26782"}, - {file = "orjson-3.10.11-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:c95f2ecafe709b4e5c733b5e2768ac569bed308623c85806c395d9cca00e08af"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:80c00d4acded0c51c98754fe8218cb49cb854f0f7eb39ea4641b7f71732d2cb7"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:461311b693d3d0a060439aa669c74f3603264d4e7a08faa68c47ae5a863f352d"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:52ca832f17d86a78cbab86cdc25f8c13756ebe182b6fc1a97d534051c18a08de"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f4c57ea78a753812f528178aa2f1c57da633754c91d2124cb28991dab4c79a54"}, - {file = "orjson-3.10.11-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b7fcfc6f7ca046383fb954ba528587e0f9336828b568282b27579c49f8e16aad"}, - {file = "orjson-3.10.11-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:86b9dd983857970c29e4c71bb3e95ff085c07d3e83e7c46ebe959bac07ebd80b"}, - {file = "orjson-3.10.11-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:4d83f87582d223e54efb2242a79547611ba4ebae3af8bae1e80fa9a0af83bb7f"}, - {file = "orjson-3.10.11-cp39-none-win32.whl", hash = "sha256:9fd0ad1c129bc9beb1154c2655f177620b5beaf9a11e0d10bac63ef3fce96950"}, - {file = "orjson-3.10.11-cp39-none-win_amd64.whl", hash = "sha256:10f416b2a017c8bd17f325fb9dee1fb5cdd7a54e814284896b7c3f2763faa017"}, - {file = "orjson-3.10.11.tar.gz", hash = "sha256:e35b6d730de6384d5b2dab5fd23f0d76fae8bbc8c353c2f78210aa5fa4beb3ef"}, + {file = "orjson-3.10.12-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ece01a7ec71d9940cc654c482907a6b65df27251255097629d0dea781f255c6d"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c34ec9aebc04f11f4b978dd6caf697a2df2dd9b47d35aa4cc606cabcb9df69d7"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd6ec8658da3480939c79b9e9e27e0db31dffcd4ba69c334e98c9976ac29140e"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f17e6baf4cf01534c9de8a16c0c611f3d94925d1701bf5f4aff17003677d8ced"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6402ebb74a14ef96f94a868569f5dccf70d791de49feb73180eb3c6fda2ade56"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0000758ae7c7853e0a4a6063f534c61656ebff644391e1f81698c1b2d2fc8cd2"}, + {file = "orjson-3.10.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:888442dcee99fd1e5bd37a4abb94930915ca6af4db50e23e746cdf4d1e63db13"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c1f7a3ce79246aa0e92f5458d86c54f257fb5dfdc14a192651ba7ec2c00f8a05"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:802a3935f45605c66fb4a586488a38af63cb37aaad1c1d94c982c40dcc452e85"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1da1ef0113a2be19bb6c557fb0ec2d79c92ebd2fed4cfb1b26bab93f021fb885"}, + {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a3273e99f367f137d5b3fecb5e9f45bcdbfac2a8b2f32fbc72129bbd48789c2"}, + {file = "orjson-3.10.12-cp310-none-win32.whl", hash = "sha256:475661bf249fd7907d9b0a2a2421b4e684355a77ceef85b8352439a9163418c3"}, + {file = "orjson-3.10.12-cp310-none-win_amd64.whl", hash = "sha256:87251dc1fb2b9e5ab91ce65d8f4caf21910d99ba8fb24b49fd0c118b2362d509"}, + {file = "orjson-3.10.12-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a734c62efa42e7df94926d70fe7d37621c783dea9f707a98cdea796964d4cf74"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:750f8b27259d3409eda8350c2919a58b0cfcd2054ddc1bd317a643afc646ef23"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb52c22bfffe2857e7aa13b4622afd0dd9d16ea7cc65fd2bf318d3223b1b6252"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:440d9a337ac8c199ff8251e100c62e9488924c92852362cd27af0e67308c16ef"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9e15c06491c69997dfa067369baab3bf094ecb74be9912bdc4339972323f252"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:362d204ad4b0b8724cf370d0cd917bb2dc913c394030da748a3bb632445ce7c4"}, + {file = "orjson-3.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b57cbb4031153db37b41622eac67329c7810e5f480fda4cfd30542186f006ae"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:165c89b53ef03ce0d7c59ca5c82fa65fe13ddf52eeb22e859e58c237d4e33b9b"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5dee91b8dfd54557c1a1596eb90bcd47dbcd26b0baaed919e6861f076583e9da"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a4e1cfb72de6f905bdff061172adfb3caf7a4578ebf481d8f0530879476c07"}, + {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:038d42c7bc0606443459b8fe2d1f121db474c49067d8d14c6a075bbea8bf14dd"}, + {file = "orjson-3.10.12-cp311-none-win32.whl", hash = "sha256:03b553c02ab39bed249bedd4abe37b2118324d1674e639b33fab3d1dafdf4d79"}, + {file = "orjson-3.10.12-cp311-none-win_amd64.whl", hash = "sha256:8b8713b9e46a45b2af6b96f559bfb13b1e02006f4242c156cbadef27800a55a8"}, + {file = "orjson-3.10.12-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:53206d72eb656ca5ac7d3a7141e83c5bbd3ac30d5eccfe019409177a57634b0d"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac8010afc2150d417ebda810e8df08dd3f544e0dd2acab5370cfa6bcc0662f8f"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed459b46012ae950dd2e17150e838ab08215421487371fa79d0eced8d1461d70"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dcb9673f108a93c1b52bfc51b0af422c2d08d4fc710ce9c839faad25020bb69"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22a51ae77680c5c4652ebc63a83d5255ac7d65582891d9424b566fb3b5375ee9"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910fdf2ac0637b9a77d1aad65f803bac414f0b06f720073438a7bd8906298192"}, + {file = "orjson-3.10.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:24ce85f7100160936bc2116c09d1a8492639418633119a2224114f67f63a4559"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a76ba5fc8dd9c913640292df27bff80a685bed3a3c990d59aa6ce24c352f8fc"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ff70ef093895fd53f4055ca75f93f047e088d1430888ca1229393a7c0521100f"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f4244b7018b5753ecd10a6d324ec1f347da130c953a9c88432c7fbc8875d13be"}, + {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:16135ccca03445f37921fa4b585cff9a58aa8d81ebcb27622e69bfadd220b32c"}, + {file = "orjson-3.10.12-cp312-none-win32.whl", hash = "sha256:2d879c81172d583e34153d524fcba5d4adafbab8349a7b9f16ae511c2cee8708"}, + {file = "orjson-3.10.12-cp312-none-win_amd64.whl", hash = "sha256:fc23f691fa0f5c140576b8c365bc942d577d861a9ee1142e4db468e4e17094fb"}, + {file = "orjson-3.10.12-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:47962841b2a8aa9a258b377f5188db31ba49af47d4003a32f55d6f8b19006543"}, + {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6334730e2532e77b6054e87ca84f3072bee308a45a452ea0bffbbbc40a67e296"}, + {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:accfe93f42713c899fdac2747e8d0d5c659592df2792888c6c5f829472e4f85e"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7974c490c014c48810d1dede6c754c3cc46598da758c25ca3b4001ac45b703f"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3f250ce7727b0b2682f834a3facff88e310f52f07a5dcfd852d99637d386e79e"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f31422ff9486ae484f10ffc51b5ab2a60359e92d0716fcce1b3593d7bb8a9af6"}, + {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5f29c5d282bb2d577c2a6bbde88d8fdcc4919c593f806aac50133f01b733846e"}, + {file = "orjson-3.10.12-cp313-none-win32.whl", hash = "sha256:f45653775f38f63dc0e6cd4f14323984c3149c05d6007b58cb154dd080ddc0dc"}, + {file = "orjson-3.10.12-cp313-none-win_amd64.whl", hash = "sha256:229994d0c376d5bdc91d92b3c9e6be2f1fbabd4cc1b59daae1443a46ee5e9825"}, + {file = "orjson-3.10.12-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7d69af5b54617a5fac5c8e5ed0859eb798e2ce8913262eb522590239db6c6763"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ed119ea7d2953365724a7059231a44830eb6bbb0cfead33fcbc562f5fd8f935"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c5fc1238ef197e7cad5c91415f524aaa51e004be5a9b35a1b8a84ade196f73f"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:43509843990439b05f848539d6f6198d4ac86ff01dd024b2f9a795c0daeeab60"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f72e27a62041cfb37a3de512247ece9f240a561e6c8662276beaf4d53d406db4"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a904f9572092bb6742ab7c16c623f0cdccbad9eeb2d14d4aa06284867bddd31"}, + {file = "orjson-3.10.12-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:855c0833999ed5dc62f64552db26f9be767434917d8348d77bacaab84f787d7b"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:897830244e2320f6184699f598df7fb9db9f5087d6f3f03666ae89d607e4f8ed"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:0b32652eaa4a7539f6f04abc6243619c56f8530c53bf9b023e1269df5f7816dd"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:36b4aa31e0f6a1aeeb6f8377769ca5d125db000f05c20e54163aef1d3fe8e833"}, + {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5535163054d6cbf2796f93e4f0dbc800f61914c0e3c4ed8499cf6ece22b4a3da"}, + {file = "orjson-3.10.12-cp38-none-win32.whl", hash = "sha256:90a5551f6f5a5fa07010bf3d0b4ca2de21adafbbc0af6cb700b63cd767266cb9"}, + {file = "orjson-3.10.12-cp38-none-win_amd64.whl", hash = "sha256:703a2fb35a06cdd45adf5d733cf613cbc0cb3ae57643472b16bc22d325b5fb6c"}, + {file = "orjson-3.10.12-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f29de3ef71a42a5822765def1febfb36e0859d33abf5c2ad240acad5c6a1b78d"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de365a42acc65d74953f05e4772c974dad6c51cfc13c3240899f534d611be967"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:91a5a0158648a67ff0004cb0df5df7dcc55bfc9ca154d9c01597a23ad54c8d0c"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c47ce6b8d90fe9646a25b6fb52284a14ff215c9595914af63a5933a49972ce36"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0eee4c2c5bfb5c1b47a5db80d2ac7aaa7e938956ae88089f098aff2c0f35d5d8"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35d3081bbe8b86587eb5c98a73b97f13d8f9fea685cf91a579beddacc0d10566"}, + {file = "orjson-3.10.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73c23a6e90383884068bc2dba83d5222c9fcc3b99a0ed2411d38150734236755"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5472be7dc3269b4b52acba1433dac239215366f89dc1d8d0e64029abac4e714e"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:7319cda750fca96ae5973efb31b17d97a5c5225ae0bc79bf5bf84df9e1ec2ab6"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:74d5ca5a255bf20b8def6a2b96b1e18ad37b4a122d59b154c458ee9494377f80"}, + {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ff31d22ecc5fb85ef62c7d4afe8301d10c558d00dd24274d4bbe464380d3cd69"}, + {file = "orjson-3.10.12-cp39-none-win32.whl", hash = "sha256:c22c3ea6fba91d84fcb4cda30e64aff548fcf0c44c876e681f47d61d24b12e6b"}, + {file = "orjson-3.10.12-cp39-none-win_amd64.whl", hash = "sha256:be604f60d45ace6b0b33dd990a66b4526f1a7a186ac411c942674625456ca548"}, + {file = "orjson-3.10.12.tar.gz", hash = "sha256:0a78bbda3aea0f9f079057ee1ee8a1ecf790d4f1af88dd67493c6b8ee52506ff"}, ] [[package]] @@ -990,4 +1007,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "7e985cdc0c18c1888f9b6ef92fbad423b529ce066e96f360f0bf01dfe6ed312c" +content-hash = "58888751f16e4ddaa6fc85cbb70f4155c933f3bb6ff2427715981a1ac346c6df" diff --git a/pyproject.toml b/pyproject.toml index dc25d905..0ee1a26d 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" types-setuptools = "^75.5.0" pook = "^2.0.1" -orjson = "^3.10.11" +orjson = "^3.10.12" [build-system] requires = ["poetry-core>=1.0.0"] From 04f594ebc2fd74d1b29184781cfdcbd92272c4b5 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 25 Nov 2024 09:51:18 -0800 Subject: [PATCH 33/43] Bump types-setuptools from 75.5.0.20241116 to 75.5.0.20241122 (#793) Bumps [types-setuptools](https://github.com/python/typeshed) from 75.5.0.20241116 to 75.5.0.20241122. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index c86acd29..d7ce31a2 100644 --- a/poetry.lock +++ b/poetry.lock @@ -835,13 +835,13 @@ files = [ [[package]] name = "types-setuptools" -version = "75.5.0.20241116" +version = "75.5.0.20241122" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types-setuptools-75.5.0.20241116.tar.gz", hash = "sha256:b6939ffdbc50ffdc0bcfbf14f7a6de1ddc5510906c1ca2bd62c23646e5798b1a"}, - {file = "types_setuptools-75.5.0.20241116-py3-none-any.whl", hash = "sha256:1144b2ab8fa986061f963391fdbde16df20582e3cc39c94340e71aa61cc7203f"}, + {file = "types_setuptools-75.5.0.20241122-py3-none-any.whl", hash = "sha256:d69c445f7bdd5e49d1b2441aadcee1388febcc9ad9d9d5fd33648b555e0b1c31"}, + {file = "types_setuptools-75.5.0.20241122.tar.gz", hash = "sha256:196aaf1811cbc1c77ac1d4c4879d5308b6fdf426e56b73baadbca2a1827dadef"}, ] [[package]] From 609dd5cb5de1850bed3f9594006d14cfbeb4e319 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 2 Dec 2024 10:26:45 -0800 Subject: [PATCH 34/43] Bump types-setuptools from 75.5.0.20241122 to 75.6.0.20241126 (#797) Bumps [types-setuptools](https://github.com/python/typeshed) from 75.5.0.20241122 to 75.6.0.20241126. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- pyproject.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/poetry.lock b/poetry.lock index d7ce31a2..3949798f 100644 --- a/poetry.lock +++ b/poetry.lock @@ -835,13 +835,13 @@ files = [ [[package]] name = "types-setuptools" -version = "75.5.0.20241122" +version = "75.6.0.20241126" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types_setuptools-75.5.0.20241122-py3-none-any.whl", hash = "sha256:d69c445f7bdd5e49d1b2441aadcee1388febcc9ad9d9d5fd33648b555e0b1c31"}, - {file = "types_setuptools-75.5.0.20241122.tar.gz", hash = "sha256:196aaf1811cbc1c77ac1d4c4879d5308b6fdf426e56b73baadbca2a1827dadef"}, + {file = "types_setuptools-75.6.0.20241126-py3-none-any.whl", hash = "sha256:aaae310a0e27033c1da8457d4d26ac673b0c8a0de7272d6d4708e263f2ea3b9b"}, + {file = "types_setuptools-75.6.0.20241126.tar.gz", hash = "sha256:7bf25ad4be39740e469f9268b6beddda6e088891fa5a27e985c6ce68bf62ace0"}, ] [[package]] @@ -1007,4 +1007,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "58888751f16e4ddaa6fc85cbb70f4155c933f3bb6ff2427715981a1ac346c6df" +content-hash = "a99c5c1c9f15bc1f023ae438382b1abd4007705c25b4ace778082b019cce5a2a" diff --git a/pyproject.toml b/pyproject.toml index 0ee1a26d..98ffccb9 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,7 @@ sphinx-rtd-theme = "^3.0.2" # keep this in sync with docs/requirements.txt for readthedocs.org sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" -types-setuptools = "^75.5.0" +types-setuptools = "^75.6.0" pook = "^2.0.1" orjson = "^3.10.12" From 92dabcae60e4039b04bd304f6f1df0517e3ce190 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 21 Dec 2024 13:27:25 -0800 Subject: [PATCH 35/43] Bump certifi from 2024.8.30 to 2024.12.14 (#807) Bumps [certifi](https://github.com/certifi/python-certifi) from 2024.8.30 to 2024.12.14. - [Commits](https://github.com/certifi/python-certifi/compare/2024.08.30...2024.12.14) --- updated-dependencies: - dependency-name: certifi dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/poetry.lock b/poetry.lock index 3949798f..ca2c7ce4 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,4 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. +# This file is automatically @generated by Poetry 1.8.5 and should not be changed by hand. [[package]] name = "alabaster" @@ -90,13 +90,13 @@ uvloop = ["uvloop (>=0.15.2)"] [[package]] name = "certifi" -version = "2024.8.30" +version = "2024.12.14" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.6" files = [ - {file = "certifi-2024.8.30-py3-none-any.whl", hash = "sha256:922820b53db7a7257ffbda3f597266d435245903d80737e34f8a45ff3e3230d8"}, - {file = "certifi-2024.8.30.tar.gz", hash = "sha256:bec941d2aa8195e248a60b31ff9f0558284cf01a52591ceda73ea9afffd69fd9"}, + {file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"}, + {file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"}, ] [[package]] From a25ece56c824056e478fb53d1d7d90efe21aae9d Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Mon, 23 Dec 2024 08:52:57 -0800 Subject: [PATCH 36/43] Update CODEOWNERS (#808) --- .github/CODEOWNERS | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 02c7785c..d7105d15 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1 @@ -* @jbonzo @mmoghaddam385 @justinpolygon +* @justinpolygon @penelopus @davidwf-polygonio From 6acf3b4665282ac542c7988a71539372ebe01263 Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Mon, 23 Dec 2024 14:37:31 -0800 Subject: [PATCH 37/43] Update websockets & certifi dependencies (#813) * Update pyproject.toml * Bump poetry.lock --- poetry.lock | 2 +- pyproject.toml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index ca2c7ce4..70633895 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1007,4 +1007,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "a99c5c1c9f15bc1f023ae438382b1abd4007705c25b4ace778082b019cce5a2a" +content-hash = "e73a36a9983ec3dfaa1c08df0fdcc97daeaf9513ae47d89dcf86fc404e0354de" diff --git a/pyproject.toml b/pyproject.toml index 98ffccb9..bc6e6a0b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -26,8 +26,8 @@ packages = [ [tool.poetry.dependencies] python = "^3.8" urllib3 = ">=1.26.9,<3.0.0" -websockets = ">=10.3,<14.0" -certifi = ">=2022.5.18,<2025.0.0" +websockets = ">=10.3,<15.0" +certifi = ">=2022.5.18,<2026.0.0" [tool.poetry.dev-dependencies] black = "^24.8.0" From 816a8d668d33cb7f65f8480eb4829ec40728f6c2 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2024 14:40:48 -0800 Subject: [PATCH 38/43] Bump jinja2 from 3.1.4 to 3.1.5 (#814) Bumps [jinja2](https://github.com/pallets/jinja) from 3.1.4 to 3.1.5. - [Release notes](https://github.com/pallets/jinja/releases) - [Changelog](https://github.com/pallets/jinja/blob/main/CHANGES.rst) - [Commits](https://github.com/pallets/jinja/compare/3.1.4...3.1.5) --- updated-dependencies: - dependency-name: jinja2 dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 70633895..5c20b91a 100644 --- a/poetry.lock +++ b/poetry.lock @@ -225,13 +225,13 @@ testing = ["flake8 (<5)", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-chec [[package]] name = "jinja2" -version = "3.1.4" +version = "3.1.5" description = "A very fast and expressive template engine." optional = false python-versions = ">=3.7" files = [ - {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, - {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, + {file = "jinja2-3.1.5-py3-none-any.whl", hash = "sha256:aba0f4dc9ed8013c424088f68a5c226f7d6097ed89b246d7749c2ec4175c6adb"}, + {file = "jinja2-3.1.5.tar.gz", hash = "sha256:8fefff8dc3034e27bb80d67c671eb8a9bc424c0ef4c0826edbff304cceff43bb"}, ] [package.dependencies] From d4e62055547759df0464a4ec013b7b6093baae74 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 23 Dec 2024 14:44:15 -0800 Subject: [PATCH 39/43] Bump types-setuptools from 75.6.0.20241126 to 75.6.0.20241223 (#811) Bumps [types-setuptools](https://github.com/python/typeshed) from 75.6.0.20241126 to 75.6.0.20241223. - [Commits](https://github.com/python/typeshed/commits) --- updated-dependencies: - dependency-name: types-setuptools dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: justinpolygon <123573436+justinpolygon@users.noreply.github.com> --- poetry.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/poetry.lock b/poetry.lock index 5c20b91a..845fca15 100644 --- a/poetry.lock +++ b/poetry.lock @@ -835,13 +835,13 @@ files = [ [[package]] name = "types-setuptools" -version = "75.6.0.20241126" +version = "75.6.0.20241223" description = "Typing stubs for setuptools" optional = false python-versions = ">=3.8" files = [ - {file = "types_setuptools-75.6.0.20241126-py3-none-any.whl", hash = "sha256:aaae310a0e27033c1da8457d4d26ac673b0c8a0de7272d6d4708e263f2ea3b9b"}, - {file = "types_setuptools-75.6.0.20241126.tar.gz", hash = "sha256:7bf25ad4be39740e469f9268b6beddda6e088891fa5a27e985c6ce68bf62ace0"}, + {file = "types_setuptools-75.6.0.20241223-py3-none-any.whl", hash = "sha256:7cbfd3bf2944f88bbcdd321b86ddd878232a277be95d44c78a53585d78ebc2f6"}, + {file = "types_setuptools-75.6.0.20241223.tar.gz", hash = "sha256:d9478a985057ed48a994c707f548e55aababa85fe1c9b212f43ab5a1fffd3211"}, ] [[package]] From 3c95d68ca2444a3baf90668870bc3a32e4d7c05f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 30 Dec 2024 08:58:51 -0800 Subject: [PATCH 40/43] Bump orjson from 3.10.12 to 3.10.13 (#824) Bumps [orjson](https://github.com/ijl/orjson) from 3.10.12 to 3.10.13. - [Release notes](https://github.com/ijl/orjson/releases) - [Changelog](https://github.com/ijl/orjson/blob/master/CHANGELOG.md) - [Commits](https://github.com/ijl/orjson/compare/3.10.12...3.10.13) --- updated-dependencies: - dependency-name: orjson dependency-type: direct:development update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- poetry.lock | 154 ++++++++++++++++++++++++------------------------- pyproject.toml | 2 +- 2 files changed, 78 insertions(+), 78 deletions(-) diff --git a/poetry.lock b/poetry.lock index 845fca15..59cdd317 100644 --- a/poetry.lock +++ b/poetry.lock @@ -390,86 +390,86 @@ six = ">=1.8.0" [[package]] name = "orjson" -version = "3.10.12" +version = "3.10.13" description = "Fast, correct Python JSON library supporting dataclasses, datetimes, and numpy" optional = false python-versions = ">=3.8" files = [ - {file = "orjson-3.10.12-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:ece01a7ec71d9940cc654c482907a6b65df27251255097629d0dea781f255c6d"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c34ec9aebc04f11f4b978dd6caf697a2df2dd9b47d35aa4cc606cabcb9df69d7"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:fd6ec8658da3480939c79b9e9e27e0db31dffcd4ba69c334e98c9976ac29140e"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f17e6baf4cf01534c9de8a16c0c611f3d94925d1701bf5f4aff17003677d8ced"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6402ebb74a14ef96f94a868569f5dccf70d791de49feb73180eb3c6fda2ade56"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:0000758ae7c7853e0a4a6063f534c61656ebff644391e1f81698c1b2d2fc8cd2"}, - {file = "orjson-3.10.12-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:888442dcee99fd1e5bd37a4abb94930915ca6af4db50e23e746cdf4d1e63db13"}, - {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:c1f7a3ce79246aa0e92f5458d86c54f257fb5dfdc14a192651ba7ec2c00f8a05"}, - {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:802a3935f45605c66fb4a586488a38af63cb37aaad1c1d94c982c40dcc452e85"}, - {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1da1ef0113a2be19bb6c557fb0ec2d79c92ebd2fed4cfb1b26bab93f021fb885"}, - {file = "orjson-3.10.12-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:7a3273e99f367f137d5b3fecb5e9f45bcdbfac2a8b2f32fbc72129bbd48789c2"}, - {file = "orjson-3.10.12-cp310-none-win32.whl", hash = "sha256:475661bf249fd7907d9b0a2a2421b4e684355a77ceef85b8352439a9163418c3"}, - {file = "orjson-3.10.12-cp310-none-win_amd64.whl", hash = "sha256:87251dc1fb2b9e5ab91ce65d8f4caf21910d99ba8fb24b49fd0c118b2362d509"}, - {file = "orjson-3.10.12-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a734c62efa42e7df94926d70fe7d37621c783dea9f707a98cdea796964d4cf74"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:750f8b27259d3409eda8350c2919a58b0cfcd2054ddc1bd317a643afc646ef23"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:bb52c22bfffe2857e7aa13b4622afd0dd9d16ea7cc65fd2bf318d3223b1b6252"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:440d9a337ac8c199ff8251e100c62e9488924c92852362cd27af0e67308c16ef"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9e15c06491c69997dfa067369baab3bf094ecb74be9912bdc4339972323f252"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:362d204ad4b0b8724cf370d0cd917bb2dc913c394030da748a3bb632445ce7c4"}, - {file = "orjson-3.10.12-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2b57cbb4031153db37b41622eac67329c7810e5f480fda4cfd30542186f006ae"}, - {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:165c89b53ef03ce0d7c59ca5c82fa65fe13ddf52eeb22e859e58c237d4e33b9b"}, - {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:5dee91b8dfd54557c1a1596eb90bcd47dbcd26b0baaed919e6861f076583e9da"}, - {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:77a4e1cfb72de6f905bdff061172adfb3caf7a4578ebf481d8f0530879476c07"}, - {file = "orjson-3.10.12-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:038d42c7bc0606443459b8fe2d1f121db474c49067d8d14c6a075bbea8bf14dd"}, - {file = "orjson-3.10.12-cp311-none-win32.whl", hash = "sha256:03b553c02ab39bed249bedd4abe37b2118324d1674e639b33fab3d1dafdf4d79"}, - {file = "orjson-3.10.12-cp311-none-win_amd64.whl", hash = "sha256:8b8713b9e46a45b2af6b96f559bfb13b1e02006f4242c156cbadef27800a55a8"}, - {file = "orjson-3.10.12-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:53206d72eb656ca5ac7d3a7141e83c5bbd3ac30d5eccfe019409177a57634b0d"}, - {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac8010afc2150d417ebda810e8df08dd3f544e0dd2acab5370cfa6bcc0662f8f"}, - {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:ed459b46012ae950dd2e17150e838ab08215421487371fa79d0eced8d1461d70"}, - {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8dcb9673f108a93c1b52bfc51b0af422c2d08d4fc710ce9c839faad25020bb69"}, - {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:22a51ae77680c5c4652ebc63a83d5255ac7d65582891d9424b566fb3b5375ee9"}, - {file = "orjson-3.10.12-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:910fdf2ac0637b9a77d1aad65f803bac414f0b06f720073438a7bd8906298192"}, - {file = "orjson-3.10.12-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:24ce85f7100160936bc2116c09d1a8492639418633119a2224114f67f63a4559"}, - {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:8a76ba5fc8dd9c913640292df27bff80a685bed3a3c990d59aa6ce24c352f8fc"}, - {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:ff70ef093895fd53f4055ca75f93f047e088d1430888ca1229393a7c0521100f"}, - {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:f4244b7018b5753ecd10a6d324ec1f347da130c953a9c88432c7fbc8875d13be"}, - {file = "orjson-3.10.12-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:16135ccca03445f37921fa4b585cff9a58aa8d81ebcb27622e69bfadd220b32c"}, - {file = "orjson-3.10.12-cp312-none-win32.whl", hash = "sha256:2d879c81172d583e34153d524fcba5d4adafbab8349a7b9f16ae511c2cee8708"}, - {file = "orjson-3.10.12-cp312-none-win_amd64.whl", hash = "sha256:fc23f691fa0f5c140576b8c365bc942d577d861a9ee1142e4db468e4e17094fb"}, - {file = "orjson-3.10.12-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:47962841b2a8aa9a258b377f5188db31ba49af47d4003a32f55d6f8b19006543"}, - {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6334730e2532e77b6054e87ca84f3072bee308a45a452ea0bffbbbc40a67e296"}, - {file = "orjson-3.10.12-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:accfe93f42713c899fdac2747e8d0d5c659592df2792888c6c5f829472e4f85e"}, - {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a7974c490c014c48810d1dede6c754c3cc46598da758c25ca3b4001ac45b703f"}, - {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:3f250ce7727b0b2682f834a3facff88e310f52f07a5dcfd852d99637d386e79e"}, - {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:f31422ff9486ae484f10ffc51b5ab2a60359e92d0716fcce1b3593d7bb8a9af6"}, - {file = "orjson-3.10.12-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:5f29c5d282bb2d577c2a6bbde88d8fdcc4919c593f806aac50133f01b733846e"}, - {file = "orjson-3.10.12-cp313-none-win32.whl", hash = "sha256:f45653775f38f63dc0e6cd4f14323984c3149c05d6007b58cb154dd080ddc0dc"}, - {file = "orjson-3.10.12-cp313-none-win_amd64.whl", hash = "sha256:229994d0c376d5bdc91d92b3c9e6be2f1fbabd4cc1b59daae1443a46ee5e9825"}, - {file = "orjson-3.10.12-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:7d69af5b54617a5fac5c8e5ed0859eb798e2ce8913262eb522590239db6c6763"}, - {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7ed119ea7d2953365724a7059231a44830eb6bbb0cfead33fcbc562f5fd8f935"}, - {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9c5fc1238ef197e7cad5c91415f524aaa51e004be5a9b35a1b8a84ade196f73f"}, - {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:43509843990439b05f848539d6f6198d4ac86ff01dd024b2f9a795c0daeeab60"}, - {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f72e27a62041cfb37a3de512247ece9f240a561e6c8662276beaf4d53d406db4"}, - {file = "orjson-3.10.12-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a904f9572092bb6742ab7c16c623f0cdccbad9eeb2d14d4aa06284867bddd31"}, - {file = "orjson-3.10.12-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:855c0833999ed5dc62f64552db26f9be767434917d8348d77bacaab84f787d7b"}, - {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:897830244e2320f6184699f598df7fb9db9f5087d6f3f03666ae89d607e4f8ed"}, - {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:0b32652eaa4a7539f6f04abc6243619c56f8530c53bf9b023e1269df5f7816dd"}, - {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:36b4aa31e0f6a1aeeb6f8377769ca5d125db000f05c20e54163aef1d3fe8e833"}, - {file = "orjson-3.10.12-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:5535163054d6cbf2796f93e4f0dbc800f61914c0e3c4ed8499cf6ece22b4a3da"}, - {file = "orjson-3.10.12-cp38-none-win32.whl", hash = "sha256:90a5551f6f5a5fa07010bf3d0b4ca2de21adafbbc0af6cb700b63cd767266cb9"}, - {file = "orjson-3.10.12-cp38-none-win_amd64.whl", hash = "sha256:703a2fb35a06cdd45adf5d733cf613cbc0cb3ae57643472b16bc22d325b5fb6c"}, - {file = "orjson-3.10.12-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:f29de3ef71a42a5822765def1febfb36e0859d33abf5c2ad240acad5c6a1b78d"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:de365a42acc65d74953f05e4772c974dad6c51cfc13c3240899f534d611be967"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:91a5a0158648a67ff0004cb0df5df7dcc55bfc9ca154d9c01597a23ad54c8d0c"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c47ce6b8d90fe9646a25b6fb52284a14ff215c9595914af63a5933a49972ce36"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0eee4c2c5bfb5c1b47a5db80d2ac7aaa7e938956ae88089f098aff2c0f35d5d8"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:35d3081bbe8b86587eb5c98a73b97f13d8f9fea685cf91a579beddacc0d10566"}, - {file = "orjson-3.10.12-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:73c23a6e90383884068bc2dba83d5222c9fcc3b99a0ed2411d38150734236755"}, - {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:5472be7dc3269b4b52acba1433dac239215366f89dc1d8d0e64029abac4e714e"}, - {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:7319cda750fca96ae5973efb31b17d97a5c5225ae0bc79bf5bf84df9e1ec2ab6"}, - {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:74d5ca5a255bf20b8def6a2b96b1e18ad37b4a122d59b154c458ee9494377f80"}, - {file = "orjson-3.10.12-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:ff31d22ecc5fb85ef62c7d4afe8301d10c558d00dd24274d4bbe464380d3cd69"}, - {file = "orjson-3.10.12-cp39-none-win32.whl", hash = "sha256:c22c3ea6fba91d84fcb4cda30e64aff548fcf0c44c876e681f47d61d24b12e6b"}, - {file = "orjson-3.10.12-cp39-none-win_amd64.whl", hash = "sha256:be604f60d45ace6b0b33dd990a66b4526f1a7a186ac411c942674625456ca548"}, - {file = "orjson-3.10.12.tar.gz", hash = "sha256:0a78bbda3aea0f9f079057ee1ee8a1ecf790d4f1af88dd67493c6b8ee52506ff"}, + {file = "orjson-3.10.13-cp310-cp310-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:1232c5e873a4d1638ef957c5564b4b0d6f2a6ab9e207a9b3de9de05a09d1d920"}, + {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d26a0eca3035619fa366cbaf49af704c7cb1d4a0e6c79eced9f6a3f2437964b6"}, + {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d4b6acd7c9c829895e50d385a357d4b8c3fafc19c5989da2bae11783b0fd4977"}, + {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1884e53c6818686891cc6fc5a3a2540f2f35e8c76eac8dc3b40480fb59660b00"}, + {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:6a428afb5720f12892f64920acd2eeb4d996595bf168a26dd9190115dbf1130d"}, + {file = "orjson-3.10.13-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba5b13b8739ce5b630c65cb1c85aedbd257bcc2b9c256b06ab2605209af75a2e"}, + {file = "orjson-3.10.13-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:cab83e67f6aabda1b45882254b2598b48b80ecc112968fc6483fa6dae609e9f0"}, + {file = "orjson-3.10.13-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:62c3cc00c7e776c71c6b7b9c48c5d2701d4c04e7d1d7cdee3572998ee6dc57cc"}, + {file = "orjson-3.10.13-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:dc03db4922e75bbc870b03fc49734cefbd50fe975e0878327d200022210b82d8"}, + {file = "orjson-3.10.13-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:22f1c9a30b43d14a041a6ea190d9eca8a6b80c4beb0e8b67602c82d30d6eec3e"}, + {file = "orjson-3.10.13-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:b42f56821c29e697c68d7d421410d7c1d8f064ae288b525af6a50cf99a4b1200"}, + {file = "orjson-3.10.13-cp310-cp310-win32.whl", hash = "sha256:0dbf3b97e52e093d7c3e93eb5eb5b31dc7535b33c2ad56872c83f0160f943487"}, + {file = "orjson-3.10.13-cp310-cp310-win_amd64.whl", hash = "sha256:46c249b4e934453be4ff2e518cd1adcd90467da7391c7a79eaf2fbb79c51e8c7"}, + {file = "orjson-3.10.13-cp311-cp311-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a36c0d48d2f084c800763473020a12976996f1109e2fcb66cfea442fdf88047f"}, + {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0065896f85d9497990731dfd4a9991a45b0a524baec42ef0a63c34630ee26fd6"}, + {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:92b4ec30d6025a9dcdfe0df77063cbce238c08d0404471ed7a79f309364a3d19"}, + {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a94542d12271c30044dadad1125ee060e7a2048b6c7034e432e116077e1d13d2"}, + {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3723e137772639af8adb68230f2aa4bcb27c48b3335b1b1e2d49328fed5e244c"}, + {file = "orjson-3.10.13-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:5f00c7fb18843bad2ac42dc1ce6dd214a083c53f1e324a0fd1c8137c6436269b"}, + {file = "orjson-3.10.13-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:0e2759d3172300b2f892dee85500b22fca5ac49e0c42cfff101aaf9c12ac9617"}, + {file = "orjson-3.10.13-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:ee948c6c01f6b337589c88f8e0bb11e78d32a15848b8b53d3f3b6fea48842c12"}, + {file = "orjson-3.10.13-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:aa6fe68f0981fba0d4bf9cdc666d297a7cdba0f1b380dcd075a9a3dd5649a69e"}, + {file = "orjson-3.10.13-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:dbcd7aad6bcff258f6896abfbc177d54d9b18149c4c561114f47ebfe74ae6bfd"}, + {file = "orjson-3.10.13-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:2149e2fcd084c3fd584881c7f9d7f9e5ad1e2e006609d8b80649655e0d52cd02"}, + {file = "orjson-3.10.13-cp311-cp311-win32.whl", hash = "sha256:89367767ed27b33c25c026696507c76e3d01958406f51d3a2239fe9e91959df2"}, + {file = "orjson-3.10.13-cp311-cp311-win_amd64.whl", hash = "sha256:dca1d20f1af0daff511f6e26a27354a424f0b5cf00e04280279316df0f604a6f"}, + {file = "orjson-3.10.13-cp312-cp312-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:a3614b00621c77f3f6487792238f9ed1dd8a42f2ec0e6540ee34c2d4e6db813a"}, + {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9c976bad3996aa027cd3aef78aa57873f3c959b6c38719de9724b71bdc7bd14b"}, + {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f74d878d1efb97a930b8a9f9898890067707d683eb5c7e20730030ecb3fb930"}, + {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:33ef84f7e9513fb13b3999c2a64b9ca9c8143f3da9722fbf9c9ce51ce0d8076e"}, + {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dd2bcde107221bb9c2fa0c4aaba735a537225104173d7e19cf73f70b3126c993"}, + {file = "orjson-3.10.13-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:064b9dbb0217fd64a8d016a8929f2fae6f3312d55ab3036b00b1d17399ab2f3e"}, + {file = "orjson-3.10.13-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c0044b0b8c85a565e7c3ce0a72acc5d35cda60793edf871ed94711e712cb637d"}, + {file = "orjson-3.10.13-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7184f608ad563032e398f311910bc536e62b9fbdca2041be889afcbc39500de8"}, + {file = "orjson-3.10.13-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:d36f689e7e1b9b6fb39dbdebc16a6f07cbe994d3644fb1c22953020fc575935f"}, + {file = "orjson-3.10.13-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:54433e421618cd5873e51c0e9d0b9fb35f7bf76eb31c8eab20b3595bb713cd3d"}, + {file = "orjson-3.10.13-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e1ba0c5857dd743438acecc1cd0e1adf83f0a81fee558e32b2b36f89e40cee8b"}, + {file = "orjson-3.10.13-cp312-cp312-win32.whl", hash = "sha256:a42b9fe4b0114b51eb5cdf9887d8c94447bc59df6dbb9c5884434eab947888d8"}, + {file = "orjson-3.10.13-cp312-cp312-win_amd64.whl", hash = "sha256:3a7df63076435f39ec024bdfeb4c9767ebe7b49abc4949068d61cf4857fa6d6c"}, + {file = "orjson-3.10.13-cp313-cp313-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:2cdaf8b028a976ebab837a2c27b82810f7fc76ed9fb243755ba650cc83d07730"}, + {file = "orjson-3.10.13-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:48a946796e390cbb803e069472de37f192b7a80f4ac82e16d6eb9909d9e39d56"}, + {file = "orjson-3.10.13-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7d64f1db5ecbc21eb83097e5236d6ab7e86092c1cd4c216c02533332951afc"}, + {file = "orjson-3.10.13-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:711878da48f89df194edd2ba603ad42e7afed74abcd2bac164685e7ec15f96de"}, + {file = "orjson-3.10.13-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:cf16f06cb77ce8baf844bc222dbcb03838f61d0abda2c3341400c2b7604e436e"}, + {file = "orjson-3.10.13-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:8257c3fb8dd7b0b446b5e87bf85a28e4071ac50f8c04b6ce2d38cb4abd7dff57"}, + {file = "orjson-3.10.13-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:d9c3a87abe6f849a4a7ac8a8a1dede6320a4303d5304006b90da7a3cd2b70d2c"}, + {file = "orjson-3.10.13-cp313-cp313-win32.whl", hash = "sha256:527afb6ddb0fa3fe02f5d9fba4920d9d95da58917826a9be93e0242da8abe94a"}, + {file = "orjson-3.10.13-cp313-cp313-win_amd64.whl", hash = "sha256:b5f7c298d4b935b222f52d6c7f2ba5eafb59d690d9a3840b7b5c5cda97f6ec5c"}, + {file = "orjson-3.10.13-cp38-cp38-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:e49333d1038bc03a25fdfe11c86360df9b890354bfe04215f1f54d030f33c342"}, + {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:003721c72930dbb973f25c5d8e68d0f023d6ed138b14830cc94e57c6805a2eab"}, + {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:63664bf12addb318dc8f032160e0f5dc17eb8471c93601e8f5e0d07f95003784"}, + {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6066729cf9552d70de297b56556d14b4f49c8f638803ee3c90fd212fa43cc6af"}, + {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8a1152e2761025c5d13b5e1908d4b1c57f3797ba662e485ae6f26e4e0c466388"}, + {file = "orjson-3.10.13-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:69b21d91c5c5ef8a201036d207b1adf3aa596b930b6ca3c71484dd11386cf6c3"}, + {file = "orjson-3.10.13-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:b12a63f48bb53dba8453d36ca2661f2330126d54e26c1661e550b32864b28ce3"}, + {file = "orjson-3.10.13-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:a5a7624ab4d121c7e035708c8dd1f99c15ff155b69a1c0affc4d9d8b551281ba"}, + {file = "orjson-3.10.13-cp38-cp38-musllinux_1_2_armv7l.whl", hash = "sha256:0fee076134398d4e6cb827002468679ad402b22269510cf228301b787fdff5ae"}, + {file = "orjson-3.10.13-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:ae537fcf330b3947e82c6ae4271e092e6cf16b9bc2cef68b14ffd0df1fa8832a"}, + {file = "orjson-3.10.13-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:f81b26c03f5fb5f0d0ee48d83cea4d7bc5e67e420d209cc1a990f5d1c62f9be0"}, + {file = "orjson-3.10.13-cp38-cp38-win32.whl", hash = "sha256:0bc858086088b39dc622bc8219e73d3f246fb2bce70a6104abd04b3a080a66a8"}, + {file = "orjson-3.10.13-cp38-cp38-win_amd64.whl", hash = "sha256:3ca6f17467ebbd763f8862f1d89384a5051b461bb0e41074f583a0ebd7120e8e"}, + {file = "orjson-3.10.13-cp39-cp39-macosx_10_15_x86_64.macosx_11_0_arm64.macosx_10_15_universal2.whl", hash = "sha256:4a11532cbfc2f5752c37e84863ef8435b68b0e6d459b329933294f65fa4bda1a"}, + {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c96d2fb80467d1d0dfc4d037b4e1c0f84f1fe6229aa7fea3f070083acef7f3d7"}, + {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:dda4ba4d3e6f6c53b6b9c35266788053b61656a716a7fef5c884629c2a52e7aa"}, + {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4f998bbf300690be881772ee9c5281eb9c0044e295bcd4722504f5b5c6092ff"}, + {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:dce1cc42ed75b585c0c4dc5eb53a90a34ccb493c09a10750d1a1f9b9eff2bd12"}, + {file = "orjson-3.10.13-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03b0f29d485411e3c13d79604b740b14e4e5fb58811743f6f4f9693ee6480a8f"}, + {file = "orjson-3.10.13-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:233aae4474078d82f425134bb6a10fb2b3fc5a1a1b3420c6463ddd1b6a97eda8"}, + {file = "orjson-3.10.13-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:e384e330a67cf52b3597ee2646de63407da6f8fc9e9beec3eaaaef5514c7a1c9"}, + {file = "orjson-3.10.13-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:4222881d0aab76224d7b003a8e5fdae4082e32c86768e0e8652de8afd6c4e2c1"}, + {file = "orjson-3.10.13-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:e400436950ba42110a20c50c80dff4946c8e3ec09abc1c9cf5473467e83fd1c5"}, + {file = "orjson-3.10.13-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:f47c9e7d224b86ffb086059cdcf634f4b3f32480f9838864aa09022fe2617ce2"}, + {file = "orjson-3.10.13-cp39-cp39-win32.whl", hash = "sha256:a9ecea472f3eb653e1c0a3d68085f031f18fc501ea392b98dcca3e87c24f9ebe"}, + {file = "orjson-3.10.13-cp39-cp39-win_amd64.whl", hash = "sha256:5385935a73adce85cc7faac9d396683fd813566d3857fa95a0b521ef84a5b588"}, + {file = "orjson-3.10.13.tar.gz", hash = "sha256:eb9bfb14ab8f68d9d9492d4817ae497788a15fd7da72e14dfabc289c3bb088ec"}, ] [[package]] @@ -1007,4 +1007,4 @@ test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more-it [metadata] lock-version = "2.0" python-versions = "^3.8" -content-hash = "e73a36a9983ec3dfaa1c08df0fdcc97daeaf9513ae47d89dcf86fc404e0354de" +content-hash = "183ba57707ae02b4b27fc68f294181edf9f15d33bd3c24dcfb58c9fdc4e3e93a" diff --git a/pyproject.toml b/pyproject.toml index bc6e6a0b..83794997 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -40,7 +40,7 @@ sphinx-autodoc-typehints = "^2.0.1" types-certifi = "^2021.10.8" types-setuptools = "^75.6.0" pook = "^2.0.1" -orjson = "^3.10.12" +orjson = "^3.10.13" [build-system] requires = ["poetry-core>=1.0.0"] From 0ebde261f6ba9005815e2c8de32efd7a97ae9bf1 Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Wed, 8 Jan 2025 05:16:07 -0800 Subject: [PATCH 41/43] Spec update 2024-12-24 (#815) * Spec update 2024-12-24 * Added latest updates --- .polygon/rest.json | 457 +++++++++++++++++++++++++++++++++++++--- .polygon/websocket.json | 8 +- 2 files changed, 426 insertions(+), 39 deletions(-) diff --git a/.polygon/rest.json b/.polygon/rest.json index 4eb0f967..425d2c2d 100644 --- a/.polygon/rest.json +++ b/.polygon/rest.json @@ -14644,7 +14644,7 @@ "volume": 37 }, "ticker": "NCLH", - "type": "stock" + "type": "stocks" }, { "last_updated": 1679597116344223500, @@ -14895,6 +14895,16 @@ "format": "double", "type": "number" }, + "regular_trading_change": { + "description": "Today's change in regular trading hours, difference between current price and previous trading day's close, otherwise difference between today's close and previous day's close.", + "format": "double", + "type": "number" + }, + "regular_trading_change_percent": { + "description": "Today's regular trading change as a percentage.", + "format": "double", + "type": "number" + }, "volume": { "description": "The trading volume for the asset for the day.", "format": "double", @@ -14931,15 +14941,7 @@ } }, "required": [ - "ticker", - "name", - "price", - "branding", - "market_status", - "type", - "session", - "options", - "last_updated" + "ticker" ], "type": "object", "x-polygon-go-type": { @@ -18576,6 +18578,11 @@ "properties": { "sentiment": { "description": "The sentiment of the insight.", + "enum": [ + "positive", + "neutral", + "negative" + ], "type": "string" }, "sentiment_reasoning": { @@ -27213,8 +27220,6 @@ } }, "required": [ - "last_updated", - "timeframe", "ask", "bid", "last_updated", @@ -27288,9 +27293,6 @@ } }, "required": [ - "last_updated", - "timeframe", - "participant_timestamp", "price", "size" ], @@ -27378,6 +27380,16 @@ "format": "double", "type": "number" }, + "regular_trading_change": { + "description": "Today's change in regular trading hours, difference between current price and previous trading day's close, otherwise difference between today's close and previous day's close.", + "format": "double", + "type": "number" + }, + "regular_trading_change_percent": { + "description": "Today's regular trading change as a percentage.", + "format": "double", + "type": "number" + }, "volume": { "description": "The trading volume for the asset for the day.", "format": "double", @@ -27454,8 +27466,6 @@ } }, "required": [ - "last_updated", - "timeframe", "ticker", "change_to_break_even" ], @@ -27769,9 +27779,7 @@ } }, "required": [ - "ticker", - "timeframe", - "last_updated" + "ticker" ], "type": "object", "x-polygon-go-type": { @@ -28030,7 +28038,8 @@ "bid": 120.28, "bid_size": 8, "last_updated": 1605195918507251700, - "midpoint": 120.29 + "midpoint": 120.29, + "timeframe": "REAL-TIME" }, "last_trade": { "conditions": [ @@ -28131,7 +28140,6 @@ } }, "required": [ - "last_updated", "open", "high", "low", @@ -28305,8 +28313,6 @@ } }, "required": [ - "last_updated", - "timeframe", "ask", "ask_size", "bid_size", @@ -28359,7 +28365,6 @@ } }, "required": [ - "timeframe", "exchange", "price", "sip_timestamp", @@ -28416,8 +28421,6 @@ } }, "required": [ - "last_updated", - "timeframe", "ticker", "change_to_break_even" ], @@ -28432,7 +28435,6 @@ "last_quote", "underlying_asset", "details", - "cha", "break_even_price", "open_interest" ], @@ -28667,7 +28669,6 @@ } }, "required": [ - "last_updated", "open", "high", "low", @@ -28841,8 +28842,6 @@ } }, "required": [ - "last_updated", - "timeframe", "ask", "ask_size", "bid_size", @@ -28895,7 +28894,6 @@ } }, "required": [ - "timeframe", "exchange", "price", "sip_timestamp", @@ -28952,8 +28950,6 @@ } }, "required": [ - "last_updated", - "timeframe", "ticker", "change_to_break_even" ], @@ -28968,7 +28964,6 @@ "last_quote", "underlying_asset", "details", - "cha", "break_even_price", "open_interest" ], @@ -30502,6 +30497,388 @@ } } }, + "/vX/reference/ipos": { + "get": { + "description": "The IPOs API provides access to detailed information about Initial Public Offerings (IPOs), including both upcoming and historical events. With this API, you can query for a comprehensive list of IPOs, along with key details such as the issuer name, ticker symbol, ISIN, IPO date, number of shares offered, expected price range, and final offering price. You can filter the results by status to focus on new, rumors, pending, historical, and more.", + "operationId": "ListIPOs", + "parameters": [ + { + "description": "Specify a case-sensitive ticker symbol. For example, AAPL represents Apple Inc.", + "in": "query", + "name": "ticker", + "schema": { + "type": "string" + } + }, + { + "description": "Specify a us_code. This is a unique nine-character alphanumeric code that identifies a North American financial security for the purposes of facilitating clearing and settlement of trades.", + "in": "query", + "name": "us_code", + "schema": { + "type": "string" + } + }, + { + "description": "Specify an International Securities Identification Number (ISIN). This is a unique twelve-digit code that is assigned to every security issuance in the world.", + "in": "query", + "name": "isin", + "schema": { + "type": "string" + } + }, + { + "description": "Specify a listing date. This is the first trading date for the newly listed entity.", + "in": "query", + "name": "listing_date", + "schema": { + "format": "date", + "type": "string" + }, + "x-polygon-filter-field": { + "range": true, + "type": "string" + } + }, + { + "description": "Specify an IPO status.", + "in": "query", + "name": "ipo_status", + "schema": { + "enum": [ + "direct_listing_process", + "history", + "new", + "pending", + "postponed", + "rumor", + "withdrawn" + ], + "type": "string" + } + }, + { + "description": "Range by listing_date.", + "in": "query", + "name": "listing_date.gte", + "schema": { + "format": "date", + "type": "string" + } + }, + { + "description": "Range by listing_date.", + "in": "query", + "name": "listing_date.gt", + "schema": { + "format": "date", + "type": "string" + } + }, + { + "description": "Range by listing_date.", + "in": "query", + "name": "listing_date.lte", + "schema": { + "format": "date", + "type": "string" + } + }, + { + "description": "Range by listing_date.", + "in": "query", + "name": "listing_date.lt", + "schema": { + "format": "date", + "type": "string" + } + }, + { + "description": "Order results based on the `sort` field.", + "in": "query", + "name": "order", + "schema": { + "default": "desc", + "enum": [ + "asc", + "desc" + ], + "example": "asc", + "type": "string" + } + }, + { + "description": "Limit the number of results returned, default is 10 and max is 1000.", + "in": "query", + "name": "limit", + "schema": { + "default": 10, + "example": 10, + "maximum": 1000, + "minimum": 1, + "type": "integer" + } + }, + { + "description": "Sort field used for ordering.", + "in": "query", + "name": "sort", + "schema": { + "default": "listing_date", + "enum": [ + "listing_date", + "ticker", + "last_updated", + "security_type", + "issuer_name", + "currency_code", + "isin", + "us_code", + "final_issue_price", + "min_shares_offered", + "max_shares_offered", + "lowest_offer_price", + "highest_offer_price", + "total_offer_size", + "shares_outstanding", + "primary_exchange", + "lot_size", + "security_description", + "ipo_status" + ], + "example": "listing_date", + "type": "string" + } + } + ], + "responses": { + "200": { + "content": { + "application/json": { + "example": { + "next_url": "https://api.polygon.io/vX/reference/ipos?cursor=YWN0aXZlPXRydWUmZGF0ZT0yMDIxLTA0LTI1JmxpbWl0PTEmb3JkZXI9YXNjJnBhZ2VfbWFya2VyPUElN0M5YWRjMjY0ZTgyM2E1ZjBiOGUyNDc5YmZiOGE1YmYwNDVkYzU0YjgwMDcyMWE2YmI1ZjBjMjQwMjU4MjFmNGZiJnNvcnQ9dGlja2Vy", + "request_id": "6a7e466379af0a71039d60cc78e72282", + "results": [ + { + "currency_code": "USD", + "final_issue_price": 17, + "highest_offer_price": 17, + "ipo_status": "history", + "isin": "US75383L1026", + "issue_end_date": "2024-06-06", + "issue_start_date": "2024-06-01", + "issuer_name": "Rapport Therapeutics Inc.", + "last_updated": "2024-06-27", + "listing_date": "2024-06-07", + "lot_size": 100, + "lowest_offer_price": 17, + "max_shares_offered": 8000000, + "min_shares_offered": 1000000, + "primary_exchange": "XNAS", + "security_description": "Ordinary Shares", + "security_type": "CS", + "shares_outstanding": 35376457, + "ticker": "RAPP", + "total_offer_size": 136000000, + "us_code": "75383L102" + } + ], + "status": "OK" + }, + "schema": { + "properties": { + "next_url": { + "description": "If present, this value can be used to fetch the next page of data.", + "type": "string" + }, + "request_id": { + "description": "A request id assigned by the server.", + "type": "string" + }, + "results": { + "description": "An array of results containing the requested data.", + "items": { + "properties": { + "currency_code": { + "description": "Underlying currency of the security.", + "example": "USD", + "type": "string" + }, + "final_issue_price": { + "description": "The price set by the company and its underwriters before the IPO goes live.", + "example": 14.5, + "format": "float", + "type": "number" + }, + "highest_offer_price": { + "description": "The highest price within the IPO price range that the company might use to price the shares.", + "example": 20, + "format": "float", + "type": "number" + }, + "ipo_status": { + "description": "The status of the IPO event. IPO events start out as status \"rumor\" or \"pending\". On listing day, the status changes to \"new\". After the listing day, the status changes to \"history\".\n\nThe status \"direct_listing_process\" corresponds to a type of offering where, instead of going through all the IPO processes, the company decides to list its shares directly on an exchange, without using an investment bank or other intermediaries. This is called a direct listing, direct placement, or direct public offering (DPO).", + "enum": [ + "direct_listing_process", + "history", + "new", + "pending", + "postponed", + "rumor", + "withdrawn" + ], + "example": "history", + "type": "string" + }, + "isin": { + "description": "International Securities Identification Number. This is a unique twelve-digit code that is assigned to every security issuance in the world.", + "example": "US0378331005", + "type": "string" + }, + "issuer_name": { + "description": "Name of issuer.", + "example": "Apple Inc.", + "type": "string" + }, + "last_updated": { + "description": "The date when the IPO event was last modified.", + "example": "2023-01-02", + "format": "date", + "type": "string" + }, + "listing_date": { + "description": "First trading date for the newly listed entity.", + "example": "2023-02-01", + "format": "date", + "type": "string" + }, + "lot_size": { + "description": "The minimum number of shares that can be bought or sold in a single transaction.", + "example": 100, + "type": "number" + }, + "lowest_offer_price": { + "description": "The lowest price within the IPO price range that the company is willing to offer its shares to investors.", + "example": 10, + "format": "float", + "type": "number" + }, + "max_shares_offered": { + "description": "The upper limit of the shares that the company is offering to investors.", + "example": 1000, + "type": "number" + }, + "min_shares_offered": { + "description": "The lower limit of shares that the company is willing to sell in the IPO.", + "example": 1000, + "type": "number" + }, + "primary_exchange": { + "description": "Market Identifier Code (MIC) of the primary exchange where the security is listed. The Market Identifier Code (MIC) (ISO 10383) is a unique identification code used to identify securities trading exchanges, regulated and non-regulated trading markets.", + "example": "XNAS", + "type": "string" + }, + "security_description": { + "description": "Description of the security.", + "example": "Ordinary Shares - Class A", + "type": "string" + }, + "security_type": { + "description": "The classification of the stock. For example, \"CS\" stands for Common Stock.", + "example": "CS", + "type": "string" + }, + "shares_outstanding": { + "description": "The total number of shares that the company has issued and are held by investors.", + "example": 1000000, + "type": "number" + }, + "ticker": { + "description": "The ticker symbol of the IPO event.", + "example": "AAPL", + "type": "string" + }, + "total_offer_size": { + "description": "The total amount raised by the company for IPO.", + "example": 1000000, + "format": "float", + "type": "number" + }, + "us_code": { + "description": "This is a unique nine-character alphanumeric code that identifies a North American financial security for the purposes of facilitating clearing and settlement of trades.", + "example": 37833100, + "type": "string" + } + }, + "required": [ + "name", + "last_updated", + "primary_exchange", + "security_type", + "security_description", + "ipo_status" + ], + "type": "object", + "x-polygon-go-type": { + "name": "IPOsResult" + } + }, + "type": "array" + }, + "status": { + "description": "The status of this request's response.", + "type": "string" + } + }, + "type": "object" + } + } + }, + "description": "A list of IPO events." + } + }, + "summary": "IPOs", + "tags": [ + "reference:stocks:ipos" + ], + "x-polygon-entitlement-data-type": { + "description": "Reference data", + "name": "reference" + }, + "x-polygon-paginate": { + "limit": { + "default": 10, + "max": 1000 + }, + "order": { + "default": "desc" + }, + "sort": { + "default": "listing_date", + "enum": [ + "listing_date", + "ticker", + "last_updated", + "security_type", + "issuer_name", + "currency_code", + "isin", + "us_code", + "final_issue_price", + "min_shares_offered", + "max_shares_offered", + "lowest_offer_price", + "highest_offer_price", + "total_offer_size", + "shares_outstanding", + "primary_exchange", + "lot_size", + "security_description", + "ipo_status" + ] + } + } + } + }, "/vX/reference/tickers/taxonomies": { "get": { "description": "Many investors place a high value on sector data. It is used to measure economic activity, identify peers and competitors, build ETF products, quantify market share, and compare company performance. However, there are some limitations to industry standard sectors:\n* They have difficulty identifying the primary area of activity for large, complex businesses.\n* Studies confirm significant disagreement between classification schemes when attempting to categorize the same companies.\n* The systems' hierarchical nature is inflexible and struggles to convey business nuances.\n
\n
\nAs a result, we've developed a new taxonomy to supplement existing sector classifications. The taxonomy is created by reviewing related 10K filings to create a set of structured categories and tags.\n
\n
\nThe categories are based on company operating models and are industry agnostic. Our current version only supports one category, Revenue Streams, with future plans to support more.\n
\n
\nThe tags define a specific type within the category. Within the Revenue Streams category, for example, tags for \"product sales\" and \"advertising\" may be found. A company may have many tags in a given category. The complete Revenue Streams taxonomy is shown below.\n
\n
\nOur taxonomy is powered by AI and is currently in early beta testing. You should expect some inaccuracies in the responses.\n
\n
\n## **Revenue Streams**\n *Latest Revision (7/7/2023)*\n
\n
\n- **Physical Product Sales:**\n Revenue generated from the sale of tangible goods or physical products to customers, either in-store or online.\n - Consumer Goods\n - Industrial Goods\n - Electronics\n - Vehicles\n - Healthcare Products\n
\n
\n- **Digital Product Sales:**\n Revenue earned from the sale of digital goods or products, such as software licenses, e-books, music downloads, or digital media content. It also includes revenue obtained by selling aggregated, anonymized, or processed data to third parties for market research, analytics, or other purposes.\n - Software\n - E-books and Digital Media\n - Mobile Applications\n - Games\n - Online Courses\n - Market Research Data\n - Customer Behavior Data\n
\n
\n- **Professional Services:**\n Revenue obtained by providing specialized services, expertise, or consulting to clients in exchange for fees. This includes services offered by professionals such as lawyers, accountants, or consultants.\n - Consulting\n - Legal Services\n - Financial Services\n - Marketing Services\n - Construction Services\n - Education & Tutoring\n
\n
\n- **Consumer Services:**\n Revenue earned from providing services directly to consumers, including services like healthcare, personal grooming, fitness, or hospitality.\n - Dining & Hospitality\n - Personal Care\n - Entertainment & Recreation\n - Fitness & Wellness\n - Travel & Tourism\n - Transportation\n - Home Services\n - Child & Family Care\n - Automotive\n
\n
\n- **Subscription-based Revenue:**\n Revenue obtained from recurring fees charged to customers for accessing a product or service over a defined period. This includes revenue from subscription-based models, membership programs, or software-as-a-service (SaaS) offerings.\n - Software as a Service (SaaS)\n - Streaming Services\n - Physical Media\n - Memberships\n
\n
\n- **Licensing and Royalties:**\n Revenue generated from the licensing of intellectual property rights to third parties, including franchise rights, patent licensing, brand licensing, and the receipt of royalties for authorized use of intellectual property like music royalties, book royalties, or patent royalties.\n - Franchise Fees\n - Patent Licensing\n - Brand Licensing\n - Media Royalties\n
\n
\n- **Advertising:**\n Revenue generated by displaying ads or promotional content to customers, whether through traditional or digital advertising channels, including revenue from display ads, sponsored content, or affiliate marketing.\n - Print Advertising\n - Online Display Advertising\n - Social Media Advertising\n - Influencer Marketing\n
\n
\n- **Commission-Based Revenue:**\n Revenue earned by acting as an intermediary and receiving a percentage or commission on sales made on behalf of another party. This includes revenue from affiliate programs, referral fees, or any other commission-based revenue models.\n - Real Estate Commissions\n - Affiliate Marketing Commissions\n - Online Marketplace Commissions\n
\n
\n- **Rentals or Leasing:**\n Revenue earned by leasing or renting out assets, properties, or equipment to customers, including rental income from real estate properties, equipment leasing, or vehicle rentals.\n - Property Rentals\n - Equipment Leasing\n - Vehicle Rentals", @@ -31437,6 +31814,16 @@ "paths": [ "/v1/related-companies/{ticker}" ] + }, + { + "paths": [ + "/vX/reference/ipos" + ] + }, + { + "paths": [ + "/vX/reference/short-interest/{identifier_type}/{identifier}" + ] } ] } diff --git a/.polygon/websocket.json b/.polygon/websocket.json index f565e7d1..ff09762a 100644 --- a/.polygon/websocket.json +++ b/.polygon/websocket.json @@ -277,7 +277,7 @@ }, "t": { "type": "integer", - "description": "The Timestamp in Unix MS." + "description": "The SIP timestamp in Unix MS." }, "q": { "type": "integer", @@ -407,7 +407,7 @@ }, "t": { "type": "integer", - "description": "The Timestamp in Unix MS." + "description": "The SIP timestamp in Unix MS." }, "q": { "type": "integer", @@ -3972,7 +3972,7 @@ }, "t": { "type": "integer", - "description": "The Timestamp in Unix MS." + "description": "The SIP timestamp in Unix MS." }, "q": { "type": "integer", @@ -4041,7 +4041,7 @@ }, "t": { "type": "integer", - "description": "The Timestamp in Unix MS." + "description": "The SIP timestamp in Unix MS." }, "q": { "type": "integer", From d89bcecfa9c6f7beb7e518d6b47a108305e21e70 Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Wed, 8 Jan 2025 05:23:31 -0800 Subject: [PATCH 42/43] Add IPOs support (#816) --- examples/rest/stocks-ipos.py | 13 ++++++++ polygon/rest/models/tickers.py | 57 ++++++++++++++++++++++++++++++++++ polygon/rest/vX.py | 45 +++++++++++++++++++++++++-- 3 files changed, 113 insertions(+), 2 deletions(-) create mode 100644 examples/rest/stocks-ipos.py diff --git a/examples/rest/stocks-ipos.py b/examples/rest/stocks-ipos.py new file mode 100644 index 00000000..54852335 --- /dev/null +++ b/examples/rest/stocks-ipos.py @@ -0,0 +1,13 @@ +from polygon import RESTClient + +# docs +# https://polygon.io/docs/stocks/get_vx_reference_ipos + +# client = RESTClient("XXXXXX") # hardcoded api_key is used +client = RESTClient() # POLYGON_API_KEY environment variable is used + +ipos = [] +for ipo in client.vx.list_ipos(ticker="RDDT"): + ipos.append(ipo) + +print(ipos) diff --git a/polygon/rest/models/tickers.py b/polygon/rest/models/tickers.py index 2554927e..317275ed 100644 --- a/polygon/rest/models/tickers.py +++ b/polygon/rest/models/tickers.py @@ -253,3 +253,60 @@ class TickerChangeResults: @staticmethod def from_dict(d): return TickerChangeResults(**d) + + +from typing import Optional +from ...modelclass import modelclass + + +@modelclass +class IPOListing: + """ + IPO Listing data as returned by the /vX/reference/ipos endpoint. + """ + + announced_date: Optional[str] = None + currency_code: Optional[str] = None + final_issue_price: Optional[float] = None + highest_offer_price: Optional[float] = None + ipo_status: Optional[str] = None + isin: Optional[str] = None + issuer_name: Optional[str] = None + last_updated: Optional[str] = None + listing_date: Optional[str] = None + lot_size: Optional[int] = None + lowest_offer_price: Optional[float] = None + max_shares_offered: Optional[int] = None + min_shares_offered: Optional[int] = None + primary_exchange: Optional[str] = None + security_description: Optional[str] = None + security_type: Optional[str] = None + shares_outstanding: Optional[int] = None + ticker: Optional[str] = None + total_offer_size: Optional[float] = None + us_code: Optional[str] = None + + @staticmethod + def from_dict(d): + return IPOListing( + announced_date=d.get("announced_date"), + currency_code=d.get("currency_code"), + final_issue_price=d.get("final_issue_price"), + highest_offer_price=d.get("highest_offer_price"), + ipo_status=d.get("ipo_status"), + isin=d.get("isin"), + issuer_name=d.get("issuer_name"), + last_updated=d.get("last_updated"), + listing_date=d.get("listing_date"), + lot_size=d.get("lot_size"), + lowest_offer_price=d.get("lowest_offer_price"), + max_shares_offered=d.get("max_shares_offered"), + min_shares_offered=d.get("min_shares_offered"), + primary_exchange=d.get("primary_exchange"), + security_description=d.get("security_description"), + security_type=d.get("security_type"), + shares_outstanding=d.get("shares_outstanding"), + ticker=d.get("ticker"), + total_offer_size=d.get("total_offer_size"), + us_code=d.get("us_code"), + ) diff --git a/polygon/rest/vX.py b/polygon/rest/vX.py index a7c13a2f..228134d4 100644 --- a/polygon/rest/vX.py +++ b/polygon/rest/vX.py @@ -1,6 +1,6 @@ from .base import BaseClient -from typing import Optional, Any, Dict, Union, Iterator -from .models import StockFinancial, Timeframe, Sort, Order +from typing import Optional, Any, Dict, List, Union, Iterator +from .models import StockFinancial, IPOListing, Timeframe, Sort, Order from urllib3 import HTTPResponse from datetime import datetime, date @@ -70,3 +70,44 @@ def list_stock_financials( deserializer=StockFinancial.from_dict, options=options, ) + + def list_ipos( + self, + ticker: Optional[str] = None, + us_code: Optional[str] = None, + isin: Optional[str] = None, + listing_date: Optional[str] = None, + ipo_status: Optional[str] = None, + limit: Optional[int] = None, + sort: Optional[Union[str, Sort]] = None, + order: Optional[Union[str, Order]] = None, + params: Optional[Dict[str, Any]] = None, + raw: bool = False, + options: Optional[RequestOptionBuilder] = None, + ) -> Union[List[IPOListing], HTTPResponse]: + """ + Retrieve upcoming or historical IPOs. + + :param ticker: Filter by a case-sensitive ticker symbol. + :param us_code: Filter by a US code (unique identifier for a North American financial security). + :param isin: Filter by an International Securities Identification Number (ISIN). + :param listing_date: Filter by the listing date (YYYY-MM-DD). + :param ipo_status: Filter by IPO status (e.g. "new", "pending", "history", etc.). + :param limit: Limit the number of results per page. Default 10, max 1000. + :param sort: Field to sort by. Default is "listing_date". + :param order: Order results based on the sort field ("asc" or "desc"). Default "desc". + :param params: Additional query params. + :param raw: Return raw HTTPResponse object if True, else return List[IPOListing]. + :param options: RequestOptionBuilder for additional headers or params. + :return: A list of IPOListing objects or HTTPResponse if raw=True. + """ + url = "/vX/reference/ipos" + + return self._paginate( + path=url, + params=self._get_params(self.list_ipos, locals()), + deserializer=IPOListing.from_dict, + raw=raw, + result_key="results", + options=options, + ) From bbf0b29b7ab9cc207f89fa94f36ba7facbb6f504 Mon Sep 17 00:00:00 2001 From: justinpolygon <123573436+justinpolygon@users.noreply.github.com> Date: Thu, 9 Jan 2025 08:03:02 -0800 Subject: [PATCH 43/43] Update StockFinancial model (net income, EPS, and parent net income loss) (#817) * Update StockFinancial model (net income, EPS, and parent net income loss) * Fix test * Patch json to remove other_than_fixed_noncurrent_assets * Removed top level values to match spec * Updated StockFinancial to remove nested values * Update comment * Remove vX experimental test * Refactored to use typed classes and explicit fields rather than raw dictionaries. * Fix lint --- examples/rest/stocks-stock_financials.py | 9 +- polygon/rest/models/financials.py | 721 ++++++++++++------- test_rest/mocks/vX/reference/financials.json | 6 - test_rest/test_financials.py | 234 ------ 4 files changed, 456 insertions(+), 514 deletions(-) delete mode 100644 test_rest/test_financials.py diff --git a/examples/rest/stocks-stock_financials.py b/examples/rest/stocks-stock_financials.py index dc356494..a75087e7 100644 --- a/examples/rest/stocks-stock_financials.py +++ b/examples/rest/stocks-stock_financials.py @@ -8,6 +8,13 @@ client = RESTClient() # POLYGON_API_KEY environment variable is used financials = [] -for f in client.vx.list_stock_financials("AAPL"): +for f in client.vx.list_stock_financials("AAPL", filing_date="2024-11-01"): financials.append(f) + + # get diluted_earnings_per_share + # print(f.financials.income_statement.diluted_earnings_per_share) + + # get net_income_loss + # print(f.financials.income_statement.net_income_loss) + print(financials) diff --git a/polygon/rest/models/financials.py b/polygon/rest/models/financials.py index 1a480c48..5443e4f6 100644 --- a/polygon/rest/models/financials.py +++ b/polygon/rest/models/financials.py @@ -1,328 +1,503 @@ -from typing import Optional, Dict +from dataclasses import dataclass +from typing import Any, Dict, List, Optional from ...modelclass import modelclass @modelclass +@dataclass class DataPoint: - "An individual financial data point." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None + """Represents a single numeric or textual data point in the financials.""" - @staticmethod - def from_dict(d): - return DataPoint(**d) - - -@modelclass -class ExchangeGainsLosses: - "Contains exchange gains losses data for a cash flow statement." - formula: Optional[str] = None label: Optional[str] = None order: Optional[int] = None unit: Optional[str] = None value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return ExchangeGainsLosses(**d) - - -@modelclass -class NetCashFlow: - "Contains net cash flow data for a cash flow statement." + derived_from: Optional[List[str]] = None formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None + source: Optional[Dict[str, str]] = None xpath: Optional[str] = None @staticmethod - def from_dict(d): - return NetCashFlow(**d) + def from_dict(d: Optional[Dict[str, Any]]) -> "DataPoint": + if not d: + return DataPoint() + return DataPoint( + label=d.get("label"), + order=d.get("order"), + unit=d.get("unit"), + value=d.get("value"), + derived_from=d.get("derived_from"), + formula=d.get("formula"), + source=d.get("source"), + xpath=d.get("xpath"), + ) +@dataclass @modelclass -class NetCashFlowFromFinancingActivities: - "Contains net cash flow from financing activities data for a cash flow statement." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None +class BalanceSheet: + assets: Optional[DataPoint] = None + current_assets: Optional[DataPoint] = None + cash: Optional[DataPoint] = None + accounts_receivable: Optional[DataPoint] = None + inventory: Optional[DataPoint] = None + prepaid_expenses: Optional[DataPoint] = None + other_current_assets: Optional[DataPoint] = None + noncurrent_assets: Optional[DataPoint] = None + long_term_investments: Optional[DataPoint] = None + fixed_assets: Optional[DataPoint] = None + intangible_assets: Optional[DataPoint] = None + noncurrent_prepaid_expense: Optional[DataPoint] = None + other_noncurrent_assets: Optional[DataPoint] = None + liabilities: Optional[DataPoint] = None + current_liabilities: Optional[DataPoint] = None + accounts_payable: Optional[DataPoint] = None + interest_payable: Optional[DataPoint] = None + wages: Optional[DataPoint] = None + other_current_liabilities: Optional[DataPoint] = None + noncurrent_liabilities: Optional[DataPoint] = None + long_term_debt: Optional[DataPoint] = None + other_noncurrent_liabilities: Optional[DataPoint] = None + commitments_and_contingencies: Optional[DataPoint] = None + redeemable_noncontrolling_interest: Optional[DataPoint] = None + redeemable_noncontrolling_interest_common: Optional[DataPoint] = None + redeemable_noncontrolling_interest_other: Optional[DataPoint] = None + redeemable_noncontrolling_interest_preferred: Optional[DataPoint] = None + equity: Optional[DataPoint] = None + equity_attributable_to_noncontrolling_interest: Optional[DataPoint] = None + equity_attributable_to_parent: Optional[DataPoint] = None + temporary_equity: Optional[DataPoint] = None + temporary_equity_attributable_to_parent: Optional[DataPoint] = None + liabilities_and_equity: Optional[DataPoint] = None @staticmethod - def from_dict(d): - return NetCashFlowFromFinancingActivities(**d) + def from_dict(d: Optional[Dict[str, Any]]) -> "BalanceSheet": + if not d: + return BalanceSheet() + return BalanceSheet( + assets=DataPoint.from_dict(d.get("assets")), + current_assets=DataPoint.from_dict(d.get("current_assets")), + cash=DataPoint.from_dict(d.get("cash")), + accounts_receivable=DataPoint.from_dict(d.get("accounts_receivable")), + inventory=DataPoint.from_dict(d.get("inventory")), + prepaid_expenses=DataPoint.from_dict(d.get("prepaid_expenses")), + other_current_assets=DataPoint.from_dict(d.get("other_current_assets")), + noncurrent_assets=DataPoint.from_dict(d.get("noncurrent_assets")), + long_term_investments=DataPoint.from_dict(d.get("long_term_investments")), + fixed_assets=DataPoint.from_dict(d.get("fixed_assets")), + intangible_assets=DataPoint.from_dict(d.get("intangible_assets")), + noncurrent_prepaid_expense=DataPoint.from_dict( + d.get("noncurrent_prepaid_expense") + ), + other_noncurrent_assets=DataPoint.from_dict( + d.get("other_noncurrent_assets") + ), + liabilities=DataPoint.from_dict(d.get("liabilities")), + current_liabilities=DataPoint.from_dict(d.get("current_liabilities")), + accounts_payable=DataPoint.from_dict(d.get("accounts_payable")), + interest_payable=DataPoint.from_dict(d.get("interest_payable")), + wages=DataPoint.from_dict(d.get("wages")), + other_current_liabilities=DataPoint.from_dict( + d.get("other_current_liabilities") + ), + noncurrent_liabilities=DataPoint.from_dict(d.get("noncurrent_liabilities")), + long_term_debt=DataPoint.from_dict(d.get("long_term_debt")), + other_noncurrent_liabilities=DataPoint.from_dict( + d.get("other_noncurrent_liabilities") + ), + commitments_and_contingencies=DataPoint.from_dict( + d.get("commitments_and_contingencies") + ), + redeemable_noncontrolling_interest=DataPoint.from_dict( + d.get("redeemable_noncontrolling_interest") + ), + redeemable_noncontrolling_interest_common=DataPoint.from_dict( + d.get("redeemable_noncontrolling_interest_common") + ), + redeemable_noncontrolling_interest_other=DataPoint.from_dict( + d.get("redeemable_noncontrolling_interest_other") + ), + redeemable_noncontrolling_interest_preferred=DataPoint.from_dict( + d.get("redeemable_noncontrolling_interest_preferred") + ), + equity=DataPoint.from_dict(d.get("equity")), + equity_attributable_to_noncontrolling_interest=DataPoint.from_dict( + d.get("equity_attributable_to_noncontrolling_interest") + ), + equity_attributable_to_parent=DataPoint.from_dict( + d.get("equity_attributable_to_parent") + ), + temporary_equity=DataPoint.from_dict(d.get("temporary_equity")), + temporary_equity_attributable_to_parent=DataPoint.from_dict( + d.get("temporary_equity_attributable_to_parent") + ), + liabilities_and_equity=DataPoint.from_dict(d.get("liabilities_and_equity")), + ) +@dataclass @modelclass class CashFlowStatement: - "Contains cash flow statement data." - exchange_gains_losses: Optional[ExchangeGainsLosses] = None - net_cash_flow: Optional[NetCashFlow] = None - net_cash_flow_from_financing_activities: Optional[ - NetCashFlowFromFinancingActivities - ] = None + net_cash_flow_from_operating_activities: Optional[DataPoint] = None + net_cash_flow_from_operating_activities_continuing: Optional[DataPoint] = None + net_cash_flow_from_operating_activities_discontinued: Optional[DataPoint] = None + net_cash_flow_from_investing_activities: Optional[DataPoint] = None + net_cash_flow_from_investing_activities_continuing: Optional[DataPoint] = None + net_cash_flow_from_investing_activities_discontinued: Optional[DataPoint] = None + net_cash_flow_from_financing_activities: Optional[DataPoint] = None + net_cash_flow_from_financing_activities_continuing: Optional[DataPoint] = None + net_cash_flow_from_financing_activities_discontinued: Optional[DataPoint] = None + exchange_gains_losses: Optional[DataPoint] = None + net_cash_flow: Optional[DataPoint] = None + net_cash_flow_continuing: Optional[DataPoint] = None + net_cash_flow_discontinued: Optional[DataPoint] = None @staticmethod - def from_dict(d): + def from_dict(d: Optional[Dict[str, Any]]) -> "CashFlowStatement": + if not d: + return CashFlowStatement() return CashFlowStatement( - exchange_gains_losses=( - None - if "exchange_gains_losses" not in d - else ExchangeGainsLosses.from_dict(d["exchange_gains_losses"]) - ), - net_cash_flow=( - None - if "net_cash_flow" not in d - else NetCashFlow.from_dict(d["net_cash_flow"]) - ), - net_cash_flow_from_financing_activities=( - None - if "net_cash_flow_from_financing_activities" not in d - else NetCashFlowFromFinancingActivities.from_dict( - d["net_cash_flow_from_financing_activities"] - ) + net_cash_flow_from_operating_activities=DataPoint.from_dict( + d.get("net_cash_flow_from_operating_activities") + ), + net_cash_flow_from_operating_activities_continuing=DataPoint.from_dict( + d.get("net_cash_flow_from_operating_activities_continuing") + ), + net_cash_flow_from_operating_activities_discontinued=DataPoint.from_dict( + d.get("net_cash_flow_from_operating_activities_discontinued") + ), + net_cash_flow_from_investing_activities=DataPoint.from_dict( + d.get("net_cash_flow_from_investing_activities") + ), + net_cash_flow_from_investing_activities_continuing=DataPoint.from_dict( + d.get("net_cash_flow_from_investing_activities_continuing") + ), + net_cash_flow_from_investing_activities_discontinued=DataPoint.from_dict( + d.get("net_cash_flow_from_investing_activities_discontinued") + ), + net_cash_flow_from_financing_activities=DataPoint.from_dict( + d.get("net_cash_flow_from_financing_activities") + ), + net_cash_flow_from_financing_activities_continuing=DataPoint.from_dict( + d.get("net_cash_flow_from_financing_activities_continuing") + ), + net_cash_flow_from_financing_activities_discontinued=DataPoint.from_dict( + d.get("net_cash_flow_from_financing_activities_discontinued") + ), + exchange_gains_losses=DataPoint.from_dict(d.get("exchange_gains_losses")), + net_cash_flow=DataPoint.from_dict(d.get("net_cash_flow")), + net_cash_flow_continuing=DataPoint.from_dict( + d.get("net_cash_flow_continuing") + ), + net_cash_flow_discontinued=DataPoint.from_dict( + d.get("net_cash_flow_discontinued") ), ) -@modelclass -class ComprehensiveIncomeLoss: - "Contains comprehensive income loss data for comprehensive income." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return ComprehensiveIncomeLoss(**d) - - -@modelclass -class ComprehensiveIncomeLossAttributableToParent: - "Contains comprehensive income loss attributable to parent data for comprehensive income." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return ComprehensiveIncomeLossAttributableToParent(**d) - - -@modelclass -class OtherComprehensiveIncomeLoss: - "Contains other comprehensive income loss data for comprehensive income." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return OtherComprehensiveIncomeLoss(**d) - - +@dataclass @modelclass class ComprehensiveIncome: - "Contains comprehensive income data." - comprehensive_income_loss: Optional[ComprehensiveIncomeLoss] = None - comprehensive_income_loss_attributable_to_parent: Optional[ - ComprehensiveIncomeLossAttributableToParent + comprehensive_income_loss: Optional[DataPoint] = None + comprehensive_income_loss_attributable_to_noncontrolling_interest: Optional[ + DataPoint + ] = None + comprehensive_income_loss_attributable_to_parent: Optional[DataPoint] = None + other_comprehensive_income_loss: Optional[DataPoint] = None + other_comprehensive_income_loss_attributable_to_noncontrolling_interest: Optional[ + DataPoint ] = None - other_comprehensive_income_loss: Optional[OtherComprehensiveIncomeLoss] = None + other_comprehensive_income_loss_attributable_to_parent: Optional[DataPoint] = None @staticmethod - def from_dict(d): + def from_dict(d: Optional[Dict[str, Any]]) -> "ComprehensiveIncome": + if not d: + return ComprehensiveIncome() return ComprehensiveIncome( - comprehensive_income_loss=( - None - if "comprehensive_income_loss" not in d - else ComprehensiveIncomeLoss.from_dict(d["comprehensive_income_loss"]) - ), - comprehensive_income_loss_attributable_to_parent=( - None - if "comprehensive_income_loss_attributable_to_parent" not in d - else ComprehensiveIncomeLossAttributableToParent.from_dict( - d["comprehensive_income_loss_attributable_to_parent"] + comprehensive_income_loss=DataPoint.from_dict( + d.get("comprehensive_income_loss") + ), + comprehensive_income_loss_attributable_to_noncontrolling_interest=DataPoint.from_dict( + d.get( + "comprehensive_income_loss_attributable_to_noncontrolling_interest" ) ), - other_comprehensive_income_loss=( - None - if "other_comprehensive_income_loss" not in d - else OtherComprehensiveIncomeLoss.from_dict( - d["other_comprehensive_income_loss"] + comprehensive_income_loss_attributable_to_parent=DataPoint.from_dict( + d.get("comprehensive_income_loss_attributable_to_parent") + ), + other_comprehensive_income_loss=DataPoint.from_dict( + d.get("other_comprehensive_income_loss") + ), + other_comprehensive_income_loss_attributable_to_noncontrolling_interest=DataPoint.from_dict( + d.get( + "other_comprehensive_income_loss_attributable_to_noncontrolling_interest" ) ), + other_comprehensive_income_loss_attributable_to_parent=DataPoint.from_dict( + d.get("other_comprehensive_income_loss_attributable_to_parent") + ), ) -@modelclass -class BasicEarningsPerShare: - "Contains basic earning per share data for an income statement." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return BasicEarningsPerShare(**d) - - -@modelclass -class CostOfRevenue: - "Contains cost of revenue data for an income statement." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return CostOfRevenue(**d) - - -@modelclass -class GrossProfit: - "Contains gross profit data for an income statement." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return GrossProfit(**d) - - -@modelclass -class OperatingExpenses: - "Contains operating expenses data for an income statement." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return OperatingExpenses(**d) - - -@modelclass -class Revenues: - "Contains revenues data for an income statement." - formula: Optional[str] = None - label: Optional[str] = None - order: Optional[int] = None - unit: Optional[str] = None - value: Optional[float] = None - xpath: Optional[str] = None - - @staticmethod - def from_dict(d): - return Revenues(**d) - - +@dataclass @modelclass class IncomeStatement: - "Contains income statement data." - basic_earnings_per_share: Optional[BasicEarningsPerShare] = None - cost_of_revenue: Optional[CostOfRevenue] = None - gross_profit: Optional[GrossProfit] = None - operating_expenses: Optional[OperatingExpenses] = None - revenues: Optional[Revenues] = None + revenues: Optional[DataPoint] = None + benefits_costs_expenses: Optional[DataPoint] = None + cost_of_revenue: Optional[DataPoint] = None + cost_of_revenue_goods: Optional[DataPoint] = None + cost_of_revenue_services: Optional[DataPoint] = None + costs_and_expenses: Optional[DataPoint] = None + gross_profit: Optional[DataPoint] = None + gain_loss_on_sale_properties_net_tax: Optional[DataPoint] = None + nonoperating_income_loss: Optional[DataPoint] = None + operating_expenses: Optional[DataPoint] = None + selling_general_and_administrative_expenses: Optional[DataPoint] = None + depreciation_and_amortization: Optional[DataPoint] = None + research_and_development: Optional[DataPoint] = None + other_operating_expenses: Optional[DataPoint] = None + operating_income_loss: Optional[DataPoint] = None + other_operating_income_expenses: Optional[DataPoint] = None + income_loss_before_equity_method_investments: Optional[DataPoint] = None + income_loss_from_continuing_operations_after_tax: Optional[DataPoint] = None + income_loss_from_continuing_operations_before_tax: Optional[DataPoint] = None + income_loss_from_discontinued_operations_net_of_tax: Optional[DataPoint] = None + income_loss_from_discontinued_operations_net_of_tax_adjustment_to_prior_year_gain_loss_on_disposal: Optional[ + DataPoint + ] = None + income_loss_from_discontinued_operations_net_of_tax_during_phase_out: Optional[ + DataPoint + ] = None + income_loss_from_discontinued_operations_net_of_tax_gain_loss_on_disposal: Optional[ + DataPoint + ] = None + income_loss_from_discontinued_operations_net_of_tax_provision_for_gain_loss_on_disposal: Optional[ + DataPoint + ] = None + income_loss_from_equity_method_investments: Optional[DataPoint] = None + income_tax_expense_benefit: Optional[DataPoint] = None + income_tax_expense_benefit_current: Optional[DataPoint] = None + income_tax_expense_benefit_deferred: Optional[DataPoint] = None + interest_and_debt_expense: Optional[DataPoint] = None + interest_and_dividend_income_operating: Optional[DataPoint] = None + interest_expense_operating: Optional[DataPoint] = None + interest_income_expense_after_provision_for_losses: Optional[DataPoint] = None + interest_income_expense_operating_net: Optional[DataPoint] = None + noninterest_expense: Optional[DataPoint] = None + noninterest_income: Optional[DataPoint] = None + provision_for_loan_lease_and_other_losses: Optional[DataPoint] = None + net_income_loss: Optional[DataPoint] = None + net_income_loss_attributable_to_noncontrolling_interest: Optional[DataPoint] = None + net_income_loss_attributable_to_nonredeemable_noncontrolling_interest: Optional[ + DataPoint + ] = None + net_income_loss_attributable_to_parent: Optional[DataPoint] = None + net_income_loss_attributable_to_redeemable_noncontrolling_interest: Optional[ + DataPoint + ] = None + net_income_loss_available_to_common_stockholders_basic: Optional[DataPoint] = None + participating_securities_distributed_and_undistributed_earnings_loss_basic: ( + Optional[DataPoint] + ) = (None) + undistributed_earnings_loss_allocated_to_participating_securities_basic: Optional[ + DataPoint + ] = None + preferred_stock_dividends_and_other_adjustments: Optional[DataPoint] = None + basic_earnings_per_share: Optional[DataPoint] = None + diluted_earnings_per_share: Optional[DataPoint] = None + basic_average_shares: Optional[DataPoint] = None + diluted_average_shares: Optional[DataPoint] = None + common_stock_dividends: Optional[DataPoint] = None @staticmethod - def from_dict(d): + def from_dict(d: Optional[Dict[str, Any]]) -> "IncomeStatement": + if not d: + return IncomeStatement() return IncomeStatement( - basic_earnings_per_share=( - None - if "basic_earnings_per_share" not in d - else BasicEarningsPerShare.from_dict(d["basic_earnings_per_share"]) - ), - cost_of_revenue=( - None - if "cost_of_revenue" not in d - else CostOfRevenue.from_dict(d["cost_of_revenue"]) - ), - gross_profit=( - None - if "gross_profit" not in d - else GrossProfit.from_dict(d["gross_profit"]) - ), - operating_expenses=( - None - if "operating_expenses" not in d - else OperatingExpenses.from_dict(d["operating_expenses"]) - ), - revenues=None if "revenues" not in d else Revenues.from_dict(d["revenues"]), + revenues=DataPoint.from_dict(d.get("revenues")), + benefits_costs_expenses=DataPoint.from_dict( + d.get("benefits_costs_expenses") + ), + cost_of_revenue=DataPoint.from_dict(d.get("cost_of_revenue")), + cost_of_revenue_goods=DataPoint.from_dict(d.get("cost_of_revenue_goods")), + cost_of_revenue_services=DataPoint.from_dict( + d.get("cost_of_revenue_services") + ), + costs_and_expenses=DataPoint.from_dict(d.get("costs_and_expenses")), + gross_profit=DataPoint.from_dict(d.get("gross_profit")), + gain_loss_on_sale_properties_net_tax=DataPoint.from_dict( + d.get("gain_loss_on_sale_properties_net_tax") + ), + nonoperating_income_loss=DataPoint.from_dict( + d.get("nonoperating_income_loss") + ), + operating_expenses=DataPoint.from_dict(d.get("operating_expenses")), + selling_general_and_administrative_expenses=DataPoint.from_dict( + d.get("selling_general_and_administrative_expenses") + ), + depreciation_and_amortization=DataPoint.from_dict( + d.get("depreciation_and_amortization") + ), + research_and_development=DataPoint.from_dict( + d.get("research_and_development") + ), + other_operating_expenses=DataPoint.from_dict( + d.get("other_operating_expenses") + ), + operating_income_loss=DataPoint.from_dict(d.get("operating_income_loss")), + other_operating_income_expenses=DataPoint.from_dict( + d.get("other_operating_income_expenses") + ), + income_loss_before_equity_method_investments=DataPoint.from_dict( + d.get("income_loss_before_equity_method_investments") + ), + income_loss_from_continuing_operations_after_tax=DataPoint.from_dict( + d.get("income_loss_from_continuing_operations_after_tax") + ), + income_loss_from_continuing_operations_before_tax=DataPoint.from_dict( + d.get("income_loss_from_continuing_operations_before_tax") + ), + income_loss_from_discontinued_operations_net_of_tax=DataPoint.from_dict( + d.get("income_loss_from_discontinued_operations_net_of_tax") + ), + income_loss_from_discontinued_operations_net_of_tax_adjustment_to_prior_year_gain_loss_on_disposal=DataPoint.from_dict( + d.get( + "income_loss_from_discontinued_operations_net_of_tax_adjustment_to_prior_year_gain_loss_on_disposal" + ) + ), + income_loss_from_discontinued_operations_net_of_tax_during_phase_out=DataPoint.from_dict( + d.get( + "income_loss_from_discontinued_operations_net_of_tax_during_phase_out" + ) + ), + income_loss_from_discontinued_operations_net_of_tax_gain_loss_on_disposal=DataPoint.from_dict( + d.get( + "income_loss_from_discontinued_operations_net_of_tax_gain_loss_on_disposal" + ) + ), + income_loss_from_discontinued_operations_net_of_tax_provision_for_gain_loss_on_disposal=DataPoint.from_dict( + d.get( + "income_loss_from_discontinued_operations_net_of_tax_provision_for_gain_loss_on_disposal" + ) + ), + income_loss_from_equity_method_investments=DataPoint.from_dict( + d.get("income_loss_from_equity_method_investments") + ), + income_tax_expense_benefit=DataPoint.from_dict( + d.get("income_tax_expense_benefit") + ), + income_tax_expense_benefit_current=DataPoint.from_dict( + d.get("income_tax_expense_benefit_current") + ), + income_tax_expense_benefit_deferred=DataPoint.from_dict( + d.get("income_tax_expense_benefit_deferred") + ), + interest_and_debt_expense=DataPoint.from_dict( + d.get("interest_and_debt_expense") + ), + interest_and_dividend_income_operating=DataPoint.from_dict( + d.get("interest_and_dividend_income_operating") + ), + interest_expense_operating=DataPoint.from_dict( + d.get("interest_expense_operating") + ), + interest_income_expense_after_provision_for_losses=DataPoint.from_dict( + d.get("interest_income_expense_after_provision_for_losses") + ), + interest_income_expense_operating_net=DataPoint.from_dict( + d.get("interest_income_expense_operating_net") + ), + noninterest_expense=DataPoint.from_dict(d.get("noninterest_expense")), + noninterest_income=DataPoint.from_dict(d.get("noninterest_income")), + provision_for_loan_lease_and_other_losses=DataPoint.from_dict( + d.get("provision_for_loan_lease_and_other_losses") + ), + net_income_loss=DataPoint.from_dict(d.get("net_income_loss")), + net_income_loss_attributable_to_noncontrolling_interest=DataPoint.from_dict( + d.get("net_income_loss_attributable_to_noncontrolling_interest") + ), + net_income_loss_attributable_to_nonredeemable_noncontrolling_interest=DataPoint.from_dict( + d.get( + "net_income_loss_attributable_to_nonredeemable_noncontrolling_interest" + ) + ), + net_income_loss_attributable_to_parent=DataPoint.from_dict( + d.get("net_income_loss_attributable_to_parent") + ), + net_income_loss_attributable_to_redeemable_noncontrolling_interest=DataPoint.from_dict( + d.get( + "net_income_loss_attributable_to_redeemable_noncontrolling_interest" + ) + ), + net_income_loss_available_to_common_stockholders_basic=DataPoint.from_dict( + d.get("net_income_loss_available_to_common_stockholders_basic") + ), + participating_securities_distributed_and_undistributed_earnings_loss_basic=DataPoint.from_dict( + d.get( + "participating_securities_distributed_and_undistributed_earnings_loss_basic" + ) + ), + undistributed_earnings_loss_allocated_to_participating_securities_basic=DataPoint.from_dict( + d.get( + "undistributed_earnings_loss_allocated_to_participating_securities_basic" + ) + ), + preferred_stock_dividends_and_other_adjustments=DataPoint.from_dict( + d.get("preferred_stock_dividends_and_other_adjustments") + ), + basic_earnings_per_share=DataPoint.from_dict( + d.get("basic_earnings_per_share") + ), + diluted_earnings_per_share=DataPoint.from_dict( + d.get("diluted_earnings_per_share") + ), + basic_average_shares=DataPoint.from_dict(d.get("basic_average_shares")), + diluted_average_shares=DataPoint.from_dict(d.get("diluted_average_shares")), + common_stock_dividends=DataPoint.from_dict(d.get("common_stock_dividends")), ) +@dataclass @modelclass class Financials: - "Contains financial data." - balance_sheet: Optional[Dict[str, DataPoint]] = None + """ + Contains data for: + - balance_sheet (BalanceSheet) + - cash_flow_statement (CashFlowStatement) + - comprehensive_income (ComprehensiveIncome) + - income_statement (IncomeStatement) + """ + + balance_sheet: Optional[BalanceSheet] = None cash_flow_statement: Optional[CashFlowStatement] = None comprehensive_income: Optional[ComprehensiveIncome] = None income_statement: Optional[IncomeStatement] = None @staticmethod - def from_dict(d): + def from_dict(d: Optional[Dict[str, Any]]) -> "Financials": + if not d: + return Financials() return Financials( - balance_sheet=( - None - if "balance_sheet" not in d - else { - k: DataPoint.from_dict(v) for (k, v) in d["balance_sheet"].items() - } - ), - cash_flow_statement=( - None - if "cash_flow_statement" not in d - else CashFlowStatement.from_dict(d["cash_flow_statement"]) - ), - comprehensive_income=( - None - if "comprehensive_income" not in d - else ComprehensiveIncome.from_dict(d["comprehensive_income"]) - ), - income_statement=( - None - if "income_statement" not in d - else IncomeStatement.from_dict(d["income_statement"]) + balance_sheet=BalanceSheet.from_dict(d.get("balance_sheet")), + cash_flow_statement=CashFlowStatement.from_dict( + d.get("cash_flow_statement") + ), + comprehensive_income=ComprehensiveIncome.from_dict( + d.get("comprehensive_income") ), + income_statement=IncomeStatement.from_dict(d.get("income_statement")), ) +@dataclass @modelclass class StockFinancial: - "StockFinancial contains historical financial data for a stock ticker." + """ + StockFinancial contains historical financial data for a stock ticker. + The 'financials' attribute references an instance of Financials + which has typed sub-statements. + """ + cik: Optional[str] = None company_name: Optional[str] = None end_date: Optional[str] = None @@ -335,18 +510,18 @@ class StockFinancial: start_date: Optional[str] = None @staticmethod - def from_dict(d): + def from_dict(d: Optional[Dict[str, Any]]) -> "StockFinancial": + if not d: + return StockFinancial() return StockFinancial( - cik=d.get("cik", None), - company_name=d.get("company_name", None), - end_date=d.get("end_date", None), - filing_date=d.get("filing_date", None), - financials=( - None if "financials" not in d else Financials.from_dict(d["financials"]) - ), - fiscal_period=d.get("fiscal_period", None), - fiscal_year=d.get("fiscal_year", None), - source_filing_file_url=d.get("source_filing_file_url", None), - source_filing_url=d.get("source_filing_url", None), - start_date=d.get("start_date", None), + cik=d.get("cik"), + company_name=d.get("company_name"), + end_date=d.get("end_date"), + filing_date=d.get("filing_date"), + financials=Financials.from_dict(d.get("financials", {})), + fiscal_period=d.get("fiscal_period"), + fiscal_year=d.get("fiscal_year"), + source_filing_file_url=d.get("source_filing_file_url"), + source_filing_url=d.get("source_filing_url"), + start_date=d.get("start_date"), ) diff --git a/test_rest/mocks/vX/reference/financials.json b/test_rest/mocks/vX/reference/financials.json index c5e18621..ae84513b 100644 --- a/test_rest/mocks/vX/reference/financials.json +++ b/test_rest/mocks/vX/reference/financials.json @@ -45,12 +45,6 @@ "unit": "USD", "order": 400 }, - "other_than_fixed_noncurrent_assets": { - "label": "Other Than Fixed Noncurrent Assets", - "value": 1.6046e+10, - "unit": "USD", - "order": 500 - }, "noncurrent_liabilities": { "label": "Noncurrent Liabilities", "value": 1.1716e+10, diff --git a/test_rest/test_financials.py b/test_rest/test_financials.py deleted file mode 100644 index f5196212..00000000 --- a/test_rest/test_financials.py +++ /dev/null @@ -1,234 +0,0 @@ -from polygon.rest.models import ( - StockFinancial, - Financials, - DataPoint, - CashFlowStatement, - ExchangeGainsLosses, - NetCashFlow, - NetCashFlowFromFinancingActivities, - ComprehensiveIncome, - ComprehensiveIncomeLoss, - ComprehensiveIncomeLossAttributableToParent, - OtherComprehensiveIncomeLoss, - IncomeStatement, - BasicEarningsPerShare, - CostOfRevenue, - GrossProfit, - OperatingExpenses, - Revenues, -) -from base import BaseTest - - -class FinancialsTest(BaseTest): - def test_list_stock_financials(self): - financials = [f for f in self.c.vx.list_stock_financials()] - expected = [ - StockFinancial( - cik="0001413447", - company_name="NXP Semiconductors N.V.", - end_date="2022-04-03", - filing_date="2022-05-03", - financials=Financials( - balance_sheet={ - "equity_attributable_to_noncontrolling_interest": DataPoint( - formula=None, - label="Equity Attributable To Noncontrolling Interest", - order=1500, - unit="USD", - value=251000000.0, - xpath=None, - ), - "liabilities": DataPoint( - formula=None, - label="Liabilities", - order=600, - unit="USD", - value=14561000000.0, - xpath=None, - ), - "equity_attributable_to_parent": DataPoint( - formula=None, - label="Equity Attributable To Parent", - order=1600, - unit="USD", - value=6509000000.0, - xpath=None, - ), - "noncurrent_assets": DataPoint( - formula=None, - label="Noncurrent Assets", - order=300, - unit="USD", - value=16046000000.0, - xpath=None, - ), - "liabilities_and_equity": DataPoint( - formula=None, - label="Liabilities And Equity", - order=1900, - unit="USD", - value=21321000000.0, - xpath=None, - ), - "assets": DataPoint( - formula=None, - label="Assets", - order=100, - unit="USD", - value=21321000000.0, - xpath=None, - ), - "fixed_assets": DataPoint( - formula=None, - label="Fixed Assets", - order=400, - unit="USD", - value=2814000000.0, - xpath=None, - ), - "other_than_fixed_noncurrent_assets": DataPoint( - formula=None, - label="Other Than Fixed Noncurrent Assets", - order=500, - unit="USD", - value=16046000000.0, - xpath=None, - ), - "noncurrent_liabilities": DataPoint( - formula=None, - label="Noncurrent Liabilities", - order=800, - unit="USD", - value=11716000000.0, - xpath=None, - ), - "current_assets": DataPoint( - formula=None, - label="Current Assets", - order=200, - unit="USD", - value=5275000000.0, - xpath=None, - ), - "equity": DataPoint( - formula=None, - label="Equity", - order=1400, - unit="USD", - value=6760000000.0, - xpath=None, - ), - "current_liabilities": DataPoint( - formula=None, - label="Current Liabilities", - order=700, - unit="USD", - value=2845000000.0, - xpath=None, - ), - }, - cash_flow_statement=CashFlowStatement( - exchange_gains_losses=ExchangeGainsLosses( - formula=None, - label="Exchange Gains/Losses", - order=1000, - unit="USD", - value=0, - xpath=None, - ), - net_cash_flow=NetCashFlow( - formula=None, - label="Net Cash Flow", - order=1100, - unit="USD", - value=-147000000.0, - xpath=None, - ), - net_cash_flow_from_financing_activities=NetCashFlowFromFinancingActivities( - formula=None, - label="Net Cash Flow From Financing Activities", - order=700, - unit="USD", - value=-674000000.0, - xpath=None, - ), - ), - comprehensive_income=ComprehensiveIncome( - comprehensive_income_loss=ComprehensiveIncomeLoss( - formula=None, - label="Comprehensive Income/Loss", - order=100, - unit="USD", - value=644000000.0, - xpath=None, - ), - comprehensive_income_loss_attributable_to_parent=ComprehensiveIncomeLossAttributableToParent( - formula=None, - label="Comprehensive Income/Loss Attributable To Parent", - order=300, - unit="USD", - value=635000000.0, - xpath=None, - ), - other_comprehensive_income_loss=OtherComprehensiveIncomeLoss( - formula=None, - label="Other Comprehensive Income/Loss", - order=400, - unit="USD", - value=-22000000.0, - xpath=None, - ), - ), - income_statement=IncomeStatement( - basic_earnings_per_share=BasicEarningsPerShare( - formula=None, - label="Basic Earnings Per Share", - order=4200, - unit="USD / shares", - value=2.5, - xpath=None, - ), - cost_of_revenue=CostOfRevenue( - formula=None, - label="Cost Of Revenue", - order=300, - unit="USD", - value=1359000000.0, - xpath=None, - ), - gross_profit=GrossProfit( - formula=None, - label="Gross Profit", - order=800, - unit="USD", - value=1777000000.0, - xpath=None, - ), - operating_expenses=OperatingExpenses( - formula=None, - label="Operating Expenses", - order=1000, - unit="USD", - value=904000000.0, - xpath=None, - ), - revenues=Revenues( - formula=None, - label="Revenues", - order=100, - unit="USD", - value=3136000000.0, - xpath=None, - ), - ), - ), - fiscal_period="Q1", - fiscal_year="2022", - source_filing_file_url="https://api.polygon.io/v1/reference/sec/filings/0001413447-22-000014/files/nxpi-20220403_htm.xml", - source_filing_url="https://api.polygon.io/v1/reference/sec/filings/0001413447-22-000014", - start_date="2022-01-01", - ) - ] - - self.assertEqual(financials, expected) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy