Repository: AcademySoftwareFoundation/aswf-docker (language: python)

Issue:
Add MaterialX to ci-usd and ci-vfxall images
Since MaterialX is now well integrated into USD it is time to update the ASWF docker images to include it!
MaterialX doesn't seem to bring any new dependency and should be fairly easy to build as its own package.


Discussion / hints:

Fix patch:
diff --git a/.github/workflows/docker-builds.yml b/.github/workflows/docker-builds.yml
index c9a45a30..7cce3602 100644
--- a/.github/workflows/docker-builds.yml
+++ b/.github/workflows/docker-builds.yml
@@ -55,19 +55,19 @@ jobs:
             type: IMAGE
             name: vfx1
             common_version: 2-clang10
-            version: 2021
+            version: 2022
             test: openvdb
-          - group: img-vfx2-2021
+          - group: img-vfx2-2022
             type: IMAGE
             name: vfx2
             common_version: 2-clang10
-            version: 2021
+            version: 2022
             test: ""
-          - group: img-vfx3-2021
+          - group: img-vfx3-2022
             type: IMAGE
             name: vfx3
             common_version: 2-clang10
-            version: 2021
+            version: 2022
             test: ""
 
     steps:
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index de01c9bd..c8db91aa 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,6 +1,6 @@
 repos:
 -   repo: https://github.com/ambv/black
-    rev: 21.9b0
+    rev: 22.3.0
     hooks:
     - id: black
       language_version: python3.9
diff --git a/CHANGELOG.md b/CHANGELOG.md
index caa1582d..d73bdc22 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,6 +2,36 @@
 
 All notable changes to this project will be documented in this file.
 
+## 2022-06-06
+
+* Updated ci-common-v2 to CentOS-7.9 and CUDA-11.4
+* Added clang-14 for ci-common-v2
+* Updated Conan to 1.47.0 (from 1.42.0)
+* Added MaterialX 1.38.0 (version required by USD 22.05a)
+* Updated 2022 Packages
+  * Imath 3.1.5 (from 3.1.3)
+  * OpenColorIO 2.1.1 (from 2.1.0)
+  * OpenImageIO 2.3.16.0 (from 2.3.9.1)
+  * OpenEXR 3.1.5 (from 3.1.3)
+  * OpenShadingLanguage 1.11.17.0 (from 1.11.16.0)
+  * OpenTimelineIO 0.14.1 (from 0.14)
+  * Python 3.9.11 (from 3.9.7)
+  * USD 22.05a (from 21.11)
+
+### New CI Images
+
+* `aswf/ci-common:2-clang10.5`, `aswf/ci-common:2-clang11.6`, `aswf/ci-common:2-clang12.1`, `aswf/ci-common:2-clang13.1`, `aswf/ci-common:2-clang14.0`
+* `aswf/ci-base:2022.3`, `aswf/ci-baseqt:2022.3`
+* `aswf/ci-opencue:2022.2`
+* `aswf/ci-openexr:2022.2`
+* `aswf/ci-ocio:2022.3`
+* `aswf/ci-otio:2022.2`
+* `aswf/ci-materialx:2022.0`
+* `aswf/ci-usd:2022.3`
+* `aswf/ci-osl:2022-clang10.10`, `aswf/ci-osl:2022-clang11.10`, `aswf/ci-osl:2022-clang12.1`, `aswf/ci-osl:2022-clang13.1`, `aswf/ci-osl:2022-clang14.0`
+* `aswf/ci-openvdb:2022-clang10.10`, `aswf/ci-openvdb:2022-clang11.10`, `aswf/ci-openvdb:2022-clang12.1`, `aswf/ci-openvdb:2022-clang13.1`, `aswf/ci-openvdb:2022-clang14.0`
+* `aswf/ci-vfxall:2022-clang10.10`, `aswf/ci-vfxall:2022-clang11.10`, `aswf/ci-vfxall:2022-clang12.1`, `aswf/ci-vfxall:2022-clang13.1`, `aswf/ci-vfxall:2022-clang14.0`
+
 ## 2021-11-20
 
 * Updated 2022 Packages:
diff --git a/Pipfile b/Pipfile
index c229d473..94b2c93b 100644
--- a/Pipfile
+++ b/Pipfile
@@ -8,7 +8,7 @@ pytest = "*"
 atomicwrites = {version = "*", markers = "platform_system == 'Windows'"}
 pytest-cov = "*"
 pylint = "*"
-black = "==21.9b0"
+black = "==22.3"
 mypy = "*"
 pre-commit = "*"
 pytest-pylint = "*"
@@ -16,19 +16,19 @@ types-click = "*"
 types-jinja2 = "*"
 types-pyyaml = "*"
 types-requests = "*"
-# pipenv-setup = "*" # commented for now as it requires a very old black version!
+pipenv-setup = "*"
 aswfdocker = {editable = true, path = "."}
 twine = "*"
 
 [packages]
 aswfdocker = {editable = true, path = "."}
 click = "*"
-pygithub = "==1.53" # Needed to work with Conan 1.41
+pygithub = "*"
 pyyaml = "*"
 jinja2 = "*"
 requests = "*"
 importlib-resources = "*"
-conan = "==1.42"
+conan = "==1.47"
 
 [requires]
 python_version = "3.9"
diff --git a/Pipfile.lock b/Pipfile.lock
index f7884eea..2882fa1b 100644
--- a/Pipfile.lock
+++ b/Pipfile.lock
@@ -1,7 +1,7 @@
 {
     "_meta": {
         "hash": {
-            "sha256": "e1b6dbc1b8cbafb422fc0f46af941d7362a931b2bca570c1b283a68569c67009"
+            "sha256": "6c97175f4e077103512518e9b305884ec8d1f56c6d10c1ce295fc1b370f38e44"
         },
         "pipfile-spec": 6,
         "requires": {
@@ -29,26 +29,27 @@
         },
         "certifi": {
             "hashes": [
-                "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872",
-                "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"
+                "sha256:9c5705e395cd70084351dd8ad5c41e65655e08ce46f2ec9cf6c2c08390f71eb7",
+                "sha256:f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"
             ],
-            "version": "==2021.10.8"
+            "markers": "python_version >= '3.6'",
+            "version": "==2022.5.18.1"
         },
         "charset-normalizer": {
             "hashes": [
-                "sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0",
-                "sha256:f7af805c321bfa1ce6714c51f254e0d5bb5e5834039bc17db7ebe3a4cec9492b"
+                "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597",
+                "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"
             ],
             "markers": "python_version >= '3'",
-            "version": "==2.0.7"
+            "version": "==2.0.12"
         },
         "click": {
             "hashes": [
-                "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3",
-                "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"
+                "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e",
+                "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"
             ],
             "index": "pypi",
-            "version": "==8.0.3"
+            "version": "==8.1.3"
         },
         "colorama": {
             "hashes": [
@@ -60,10 +61,10 @@
         },
         "conan": {
             "hashes": [
-                "sha256:ad19a75ecaefc1ce67dc73cda92a502bad62a6961f1ebd6bf034045a7cb1323d"
+                "sha256:c0f066be1871ae23a9dbe7465929ae38f221531b7025f85cdd56d4790c1816be"
             ],
             "index": "pypi",
-            "version": "==1.42"
+            "version": "==1.47"
         },
         "deprecated": {
             "hashes": [
@@ -78,14 +79,16 @@
                 "sha256:83f5e5a09f9c5f68f60173de572930effbcc0287bb84fdc4426cb4168c088424",
                 "sha256:c8713330ab31a034623a9515663ed87696700b55f04556b97c39cd261aa70dc7"
             ],
+            "markers": "sys_platform == 'linux' or sys_platform == 'linux2'",
             "version": "==1.6.0"
         },
         "fasteners": {
             "hashes": [
-                "sha256:8408e52656455977053871990bd25824d85803b9417aa348f10ba29ef0c751f7",
-                "sha256:b1ab4e5adfbc28681ce44b3024421c4f567e705cc3963c732bf1cba3348307de"
+                "sha256:a9a42a208573d4074c77d041447336cf4e3c1389a256fd3e113ef59cf29b7980",
+                "sha256:cae0772df265923e71435cc5057840138f4e8b6302f888a567d06ed8e1cbca03"
             ],
-            "version": "==0.16.3"
+            "markers": "python_version >= '3.6'",
+            "version": "==0.17.3"
         },
         "idna": {
             "hashes": [
@@ -97,94 +100,65 @@
         },
         "importlib-resources": {
             "hashes": [
-                "sha256:33a95faed5fc19b4bc16b29a6eeae248a3fe69dd55d4d229d2b480e23eeaad45",
-                "sha256:d756e2f85dd4de2ba89be0b21dba2a3bbec2e871a42a3a16719258a11f87506b"
+                "sha256:b6062987dfc51f0fcb809187cffbd60f35df7acb4589091f154214af6d0d49d3",
+                "sha256:e447dc01619b1e951286f3929be820029d48c75eb25d265c28b92a16548212b8"
             ],
             "index": "pypi",
-            "version": "==5.4.0"
+            "version": "==5.7.1"
         },
         "jinja2": {
             "hashes": [
-                "sha256:03e47ad063331dd6a3f04a43eddca8a966a26ba0c5b7207a9a9e4e08f1b29419",
-                "sha256:a6d58433de0ae800347cab1fa3043cebbabe8baa9d29e668f1c768cb87a333c6"
+                "sha256:31351a702a408a9e7595a8fc6150fc3f43bb6bf7e319770cbc0db9df9437e852",
+                "sha256:6088930bfe239f0e6710546ab9c19c9ef35e29792895fed6e6e31a023a182a61"
             ],
             "index": "pypi",
-            "version": "==2.11.3"
+            "version": "==3.1.2"
         },
         "markupsafe": {
             "hashes": [
-                "sha256:01a9b8ea66f1658938f65b93a85ebe8bc016e6769611be228d797c9d998dd298",
-                "sha256:023cb26ec21ece8dc3907c0e8320058b2e0cb3c55cf9564da612bc325bed5e64",
-                "sha256:0446679737af14f45767963a1a9ef7620189912317d095f2d9ffa183a4d25d2b",
-                "sha256:04635854b943835a6ea959e948d19dcd311762c5c0c6e1f0e16ee57022669194",
-                "sha256:0717a7390a68be14b8c793ba258e075c6f4ca819f15edfc2a3a027c823718567",
-                "sha256:0955295dd5eec6cb6cc2fe1698f4c6d84af2e92de33fbcac4111913cd100a6ff",
-                "sha256:0d4b31cc67ab36e3392bbf3862cfbadac3db12bdd8b02a2731f509ed5b829724",
-                "sha256:10f82115e21dc0dfec9ab5c0223652f7197feb168c940f3ef61563fc2d6beb74",
-                "sha256:168cd0a3642de83558a5153c8bd34f175a9a6e7f6dc6384b9655d2697312a646",
-                "sha256:1d609f577dc6e1aa17d746f8bd3c31aa4d258f4070d61b2aa5c4166c1539de35",
-                "sha256:1f2ade76b9903f39aa442b4aadd2177decb66525062db244b35d71d0ee8599b6",
-                "sha256:20dca64a3ef2d6e4d5d615a3fd418ad3bde77a47ec8a23d984a12b5b4c74491a",
-                "sha256:2a7d351cbd8cfeb19ca00de495e224dea7e7d919659c2841bbb7f420ad03e2d6",
-                "sha256:2d7d807855b419fc2ed3e631034685db6079889a1f01d5d9dac950f764da3dad",
-                "sha256:2ef54abee730b502252bcdf31b10dacb0a416229b72c18b19e24a4509f273d26",
-                "sha256:36bc903cbb393720fad60fc28c10de6acf10dc6cc883f3e24ee4012371399a38",
-                "sha256:37205cac2a79194e3750b0af2a5720d95f786a55ce7df90c3af697bfa100eaac",
-                "sha256:3c112550557578c26af18a1ccc9e090bfe03832ae994343cfdacd287db6a6ae7",
-                "sha256:3dd007d54ee88b46be476e293f48c85048603f5f516008bee124ddd891398ed6",
-                "sha256:4296f2b1ce8c86a6aea78613c34bb1a672ea0e3de9c6ba08a960efe0b0a09047",
-                "sha256:47ab1e7b91c098ab893b828deafa1203de86d0bc6ab587b160f78fe6c4011f75",
-                "sha256:49e3ceeabbfb9d66c3aef5af3a60cc43b85c33df25ce03d0031a608b0a8b2e3f",
-                "sha256:4dc8f9fb58f7364b63fd9f85013b780ef83c11857ae79f2feda41e270468dd9b",
-                "sha256:4efca8f86c54b22348a5467704e3fec767b2db12fc39c6d963168ab1d3fc9135",
-                "sha256:53edb4da6925ad13c07b6d26c2a852bd81e364f95301c66e930ab2aef5b5ddd8",
-                "sha256:5855f8438a7d1d458206a2466bf82b0f104a3724bf96a1c781ab731e4201731a",
-                "sha256:594c67807fb16238b30c44bdf74f36c02cdf22d1c8cda91ef8a0ed8dabf5620a",
-                "sha256:5b6d930f030f8ed98e3e6c98ffa0652bdb82601e7a016ec2ab5d7ff23baa78d1",
-                "sha256:5bb28c636d87e840583ee3adeb78172efc47c8b26127267f54a9c0ec251d41a9",
-                "sha256:60bf42e36abfaf9aff1f50f52644b336d4f0a3fd6d8a60ca0d054ac9f713a864",
-                "sha256:611d1ad9a4288cf3e3c16014564df047fe08410e628f89805e475368bd304914",
-                "sha256:6300b8454aa6930a24b9618fbb54b5a68135092bc666f7b06901f897fa5c2fee",
-                "sha256:63f3268ba69ace99cab4e3e3b5840b03340efed0948ab8f78d2fd87ee5442a4f",
-                "sha256:6557b31b5e2c9ddf0de32a691f2312a32f77cd7681d8af66c2692efdbef84c18",
-                "sha256:693ce3f9e70a6cf7d2fb9e6c9d8b204b6b39897a2c4a1aa65728d5ac97dcc1d8",
-                "sha256:6a7fae0dd14cf60ad5ff42baa2e95727c3d81ded453457771d02b7d2b3f9c0c2",
-                "sha256:6c4ca60fa24e85fe25b912b01e62cb969d69a23a5d5867682dd3e80b5b02581d",
-                "sha256:6fcf051089389abe060c9cd7caa212c707e58153afa2c649f00346ce6d260f1b",
-                "sha256:7d91275b0245b1da4d4cfa07e0faedd5b0812efc15b702576d103293e252af1b",
-                "sha256:89c687013cb1cd489a0f0ac24febe8c7a666e6e221b783e53ac50ebf68e45d86",
-                "sha256:8d206346619592c6200148b01a2142798c989edcb9c896f9ac9722a99d4e77e6",
-                "sha256:905fec760bd2fa1388bb5b489ee8ee5f7291d692638ea5f67982d968366bef9f",
-                "sha256:97383d78eb34da7e1fa37dd273c20ad4320929af65d156e35a5e2d89566d9dfb",
-                "sha256:984d76483eb32f1bcb536dc27e4ad56bba4baa70be32fa87152832cdd9db0833",
-                "sha256:99df47edb6bda1249d3e80fdabb1dab8c08ef3975f69aed437cb69d0a5de1e28",
-                "sha256:9f02365d4e99430a12647f09b6cc8bab61a6564363f313126f775eb4f6ef798e",
-                "sha256:a30e67a65b53ea0a5e62fe23682cfe22712e01f453b95233b25502f7c61cb415",
-                "sha256:ab3ef638ace319fa26553db0624c4699e31a28bb2a835c5faca8f8acf6a5a902",
-                "sha256:aca6377c0cb8a8253e493c6b451565ac77e98c2951c45f913e0b52facdcff83f",
-                "sha256:add36cb2dbb8b736611303cd3bfcee00afd96471b09cda130da3581cbdc56a6d",
-                "sha256:b2f4bf27480f5e5e8ce285a8c8fd176c0b03e93dcc6646477d4630e83440c6a9",
-                "sha256:b7f2d075102dc8c794cbde1947378051c4e5180d52d276987b8d28a3bd58c17d",
-                "sha256:baa1a4e8f868845af802979fcdbf0bb11f94f1cb7ced4c4b8a351bb60d108145",
-                "sha256:be98f628055368795d818ebf93da628541e10b75b41c559fdf36d104c5787066",
-                "sha256:bf5d821ffabf0ef3533c39c518f3357b171a1651c1ff6827325e4489b0e46c3c",
-                "sha256:c47adbc92fc1bb2b3274c4b3a43ae0e4573d9fbff4f54cd484555edbf030baf1",
-                "sha256:cdfba22ea2f0029c9261a4bd07e830a8da012291fbe44dc794e488b6c9bb353a",
-                "sha256:d6c7ebd4e944c85e2c3421e612a7057a2f48d478d79e61800d81468a8d842207",
-                "sha256:d7f9850398e85aba693bb640262d3611788b1f29a79f0c93c565694658f4071f",
-                "sha256:d8446c54dc28c01e5a2dbac5a25f071f6653e6e40f3a8818e8b45d790fe6ef53",
-                "sha256:deb993cacb280823246a026e3b2d81c493c53de6acfd5e6bfe31ab3402bb37dd",
-                "sha256:e0f138900af21926a02425cf736db95be9f4af72ba1bb21453432a07f6082134",
-                "sha256:e9936f0b261d4df76ad22f8fee3ae83b60d7c3e871292cd42f40b81b70afae85",
-                "sha256:f0567c4dc99f264f49fe27da5f735f414c4e7e7dd850cfd8e69f0862d7c74ea9",
-                "sha256:f5653a225f31e113b152e56f154ccbe59eeb1c7487b39b9d9f9cdb58e6c79dc5",
-                "sha256:f826e31d18b516f653fe296d967d700fddad5901ae07c622bb3705955e1faa94",
-                "sha256:f8ba0e8349a38d3001fae7eadded3f6606f0da5d748ee53cc1dab1d6527b9509",
-                "sha256:f9081981fe268bd86831e5c75f7de206ef275defcb82bc70740ae6dc507aee51",
-                "sha256:fa130dd50c57d53368c9d59395cb5526eda596d3ffe36666cd81a44d56e48872"
-            ],
-            "markers": "python_version >= '3.6'",
-            "version": "==2.0.1"
+                "sha256:0212a68688482dc52b2d45013df70d169f542b7394fc744c02a57374a4207003",
+                "sha256:089cf3dbf0cd6c100f02945abeb18484bd1ee57a079aefd52cffd17fba910b88",
+                "sha256:10c1bfff05d95783da83491be968e8fe789263689c02724e0c691933c52994f5",
+                "sha256:33b74d289bd2f5e527beadcaa3f401e0df0a89927c1559c8566c066fa4248ab7",
+                "sha256:3799351e2336dc91ea70b034983ee71cf2f9533cdff7c14c90ea126bfd95d65a",
+                "sha256:3ce11ee3f23f79dbd06fb3d63e2f6af7b12db1d46932fe7bd8afa259a5996603",
+                "sha256:421be9fbf0ffe9ffd7a378aafebbf6f4602d564d34be190fc19a193232fd12b1",
+                "sha256:43093fb83d8343aac0b1baa75516da6092f58f41200907ef92448ecab8825135",
+                "sha256:46d00d6cfecdde84d40e572d63735ef81423ad31184100411e6e3388d405e247",
+                "sha256:4a33dea2b688b3190ee12bd7cfa29d39c9ed176bda40bfa11099a3ce5d3a7ac6",
+                "sha256:4b9fe39a2ccc108a4accc2676e77da025ce383c108593d65cc909add5c3bd601",
+                "sha256:56442863ed2b06d19c37f94d999035e15ee982988920e12a5b4ba29b62ad1f77",
+                "sha256:671cd1187ed5e62818414afe79ed29da836dde67166a9fac6d435873c44fdd02",
+                "sha256:694deca8d702d5db21ec83983ce0bb4b26a578e71fbdbd4fdcd387daa90e4d5e",
+                "sha256:6a074d34ee7a5ce3effbc526b7083ec9731bb3cbf921bbe1d3005d4d2bdb3a63",
+                "sha256:6d0072fea50feec76a4c418096652f2c3238eaa014b2f94aeb1d56a66b41403f",
+                "sha256:6fbf47b5d3728c6aea2abb0589b5d30459e369baa772e0f37a0320185e87c980",
+                "sha256:7f91197cc9e48f989d12e4e6fbc46495c446636dfc81b9ccf50bb0ec74b91d4b",
+                "sha256:86b1f75c4e7c2ac2ccdaec2b9022845dbb81880ca318bb7a0a01fbf7813e3812",
+                "sha256:8dc1c72a69aa7e082593c4a203dcf94ddb74bb5c8a731e4e1eb68d031e8498ff",
+                "sha256:8e3dcf21f367459434c18e71b2a9532d96547aef8a871872a5bd69a715c15f96",
+                "sha256:8e576a51ad59e4bfaac456023a78f6b5e6e7651dcd383bcc3e18d06f9b55d6d1",
+                "sha256:96e37a3dc86e80bf81758c152fe66dbf60ed5eca3d26305edf01892257049925",
+                "sha256:97a68e6ada378df82bc9f16b800ab77cbf4b2fada0081794318520138c088e4a",
+                "sha256:99a2a507ed3ac881b975a2976d59f38c19386d128e7a9a18b7df6fff1fd4c1d6",
+                "sha256:a49907dd8420c5685cfa064a1335b6754b74541bbb3706c259c02ed65b644b3e",
+                "sha256:b09bf97215625a311f669476f44b8b318b075847b49316d3e28c08e41a7a573f",
+                "sha256:b7bd98b796e2b6553da7225aeb61f447f80a1ca64f41d83612e6139ca5213aa4",
+                "sha256:b87db4360013327109564f0e591bd2a3b318547bcef31b468a92ee504d07ae4f",
+                "sha256:bcb3ed405ed3222f9904899563d6fc492ff75cce56cba05e32eff40e6acbeaa3",
+                "sha256:d4306c36ca495956b6d568d276ac11fdd9c30a36f1b6eb928070dc5360b22e1c",
+                "sha256:d5ee4f386140395a2c818d149221149c54849dfcfcb9f1debfe07a8b8bd63f9a",
+                "sha256:dda30ba7e87fbbb7eab1ec9f58678558fd9a6b8b853530e176eabd064da81417",
+                "sha256:e04e26803c9c3851c931eac40c695602c6295b8d432cbe78609649ad9bd2da8a",
+                "sha256:e1c0b87e09fa55a220f058d1d49d3fb8df88fbfab58558f1198e08c1e1de842a",
+                "sha256:e72591e9ecd94d7feb70c1cbd7be7b3ebea3f548870aa91e2732960fa4d57a37",
+                "sha256:e8c843bbcda3a2f1e3c2ab25913c80a3c5376cd00c6e8c4a86a89a28c8dc5452",
+                "sha256:efc1913fd2ca4f334418481c7e595c00aad186563bbc1ec76067848c7ca0a933",
+                "sha256:f121a1420d4e173a5d96e47e9a0c0dcff965afdf1626d28de1460815f7c4ee7a",
+                "sha256:fc7b548b17d238737688817ab67deebb30e8073c95749d55538ed473130ec0c7"
+            ],
+            "markers": "python_version >= '3.7'",
+            "version": "==2.1.1"
         },
         "node-semver": {
             "hashes": [
@@ -207,19 +181,19 @@
         },
         "pygithub": {
             "hashes": [
-                "sha256:776befaddab9d8fddd525d52a6ca1ac228cf62b5b1e271836d766f4925e1452e",
-                "sha256:8ad656bf79958e775ec59f7f5a3dbcbadac12147ae3dc42708b951064096af15"
+                "sha256:300bc16e62886ca6537b0830e8f516ea4bc3ef12d308e0c5aff8bdbd099173d4",
+                "sha256:87afd6a67ea582aa7533afdbf41635725f13d12581faed7e3e04b1579c0c0627"
             ],
             "index": "pypi",
-            "version": "==1.53"
+            "version": "==1.54.1"
         },
         "pygments": {
             "hashes": [
-                "sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380",
-                "sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"
+                "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb",
+                "sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519"
             ],
-            "markers": "python_version >= '3.5'",
-            "version": "==2.10.0"
+            "markers": "python_version >= '3.6'",
+            "version": "==2.12.0"
         },
         "pyjwt": {
             "hashes": [
@@ -233,7 +207,7 @@
                 "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86",
                 "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"
             ],
-            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
             "version": "==2.8.2"
         },
         "pyyaml": {
@@ -273,100 +247,113 @@
         },
         "requests": {
             "hashes": [
-                "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24",
-                "sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"
+                "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61",
+                "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"
             ],
             "index": "pypi",
-            "version": "==2.26.0"
+            "version": "==2.27.1"
         },
         "six": {
             "hashes": [
                 "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
                 "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
             ],
-            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
             "version": "==1.16.0"
         },
         "tqdm": {
             "hashes": [
-                "sha256:8dd278a422499cd6b727e6ae4061c40b48fce8b76d1ccbf5d34fca9b7f925b0c",
-                "sha256:d359de7217506c9851b7869f3708d8ee53ed70a1b8edbba4dbcb47442592920d"
+                "sha256:40be55d30e200777a307a7585aee69e4eabb46b4ec6a4b4a5f2d9f11e7d5408d",
+                "sha256:74a2cdefe14d11442cedf3ba4e21a3b84ff9a2dbdc6cfae2c34addb2a14a5ea6"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
-            "version": "==4.62.3"
+            "version": "==4.64.0"
         },
         "urllib3": {
             "hashes": [
-                "sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece",
-                "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844"
+                "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14",
+                "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
-            "version": "==1.26.7"
+            "version": "==1.26.9"
         },
         "wrapt": {
             "hashes": [
-                "sha256:086218a72ec7d986a3eddb7707c8c4526d677c7b35e355875a0fe2918b059179",
-                "sha256:0877fe981fd76b183711d767500e6b3111378ed2043c145e21816ee589d91096",
-                "sha256:0a017a667d1f7411816e4bf214646d0ad5b1da2c1ea13dec6c162736ff25a374",
-                "sha256:0cb23d36ed03bf46b894cfec777eec754146d68429c30431c99ef28482b5c1df",
-                "sha256:1fea9cd438686e6682271d36f3481a9f3636195578bab9ca3382e2f5f01fc185",
-                "sha256:220a869982ea9023e163ba915077816ca439489de6d2c09089b219f4e11b6785",
-                "sha256:25b1b1d5df495d82be1c9d2fad408f7ce5ca8a38085e2da41bb63c914baadff7",
-                "sha256:2dded5496e8f1592ec27079b28b6ad2a1ef0b9296d270f77b8e4a3a796cf6909",
-                "sha256:2ebdde19cd3c8cdf8df3fc165bc7827334bc4e353465048b36f7deeae8ee0918",
-                "sha256:43e69ffe47e3609a6aec0fe723001c60c65305784d964f5007d5b4fb1bc6bf33",
-                "sha256:46f7f3af321a573fc0c3586612db4decb7eb37172af1bc6173d81f5b66c2e068",
-                "sha256:47f0a183743e7f71f29e4e21574ad3fa95676136f45b91afcf83f6a050914829",
-                "sha256:498e6217523111d07cd67e87a791f5e9ee769f9241fcf8a379696e25806965af",
-                "sha256:4b9c458732450ec42578b5642ac53e312092acf8c0bfce140ada5ca1ac556f79",
-                "sha256:51799ca950cfee9396a87f4a1240622ac38973b6df5ef7a41e7f0b98797099ce",
-                "sha256:5601f44a0f38fed36cc07db004f0eedeaadbdcec90e4e90509480e7e6060a5bc",
-                "sha256:5f223101f21cfd41deec8ce3889dc59f88a59b409db028c469c9b20cfeefbe36",
-                "sha256:610f5f83dd1e0ad40254c306f4764fcdc846641f120c3cf424ff57a19d5f7ade",
-                "sha256:6a03d9917aee887690aa3f1747ce634e610f6db6f6b332b35c2dd89412912bca",
-                "sha256:705e2af1f7be4707e49ced9153f8d72131090e52be9278b5dbb1498c749a1e32",
-                "sha256:766b32c762e07e26f50d8a3468e3b4228b3736c805018e4b0ec8cc01ecd88125",
-                "sha256:77416e6b17926d953b5c666a3cb718d5945df63ecf922af0ee576206d7033b5e",
-                "sha256:778fd096ee96890c10ce96187c76b3e99b2da44e08c9e24d5652f356873f6709",
-                "sha256:78dea98c81915bbf510eb6a3c9c24915e4660302937b9ae05a0947164248020f",
-                "sha256:7dd215e4e8514004c8d810a73e342c536547038fb130205ec4bba9f5de35d45b",
-                "sha256:7dde79d007cd6dfa65afe404766057c2409316135cb892be4b1c768e3f3a11cb",
-                "sha256:81bd7c90d28a4b2e1df135bfbd7c23aee3050078ca6441bead44c42483f9ebfb",
-                "sha256:85148f4225287b6a0665eef08a178c15097366d46b210574a658c1ff5b377489",
-                "sha256:865c0b50003616f05858b22174c40ffc27a38e67359fa1495605f96125f76640",
-                "sha256:87883690cae293541e08ba2da22cacaae0a092e0ed56bbba8d018cc486fbafbb",
-                "sha256:8aab36778fa9bba1a8f06a4919556f9f8c7b33102bd71b3ab307bb3fecb21851",
-                "sha256:8c73c1a2ec7c98d7eaded149f6d225a692caa1bd7b2401a14125446e9e90410d",
-                "sha256:936503cb0a6ed28dbfa87e8fcd0a56458822144e9d11a49ccee6d9a8adb2ac44",
-                "sha256:944b180f61f5e36c0634d3202ba8509b986b5fbaf57db3e94df11abee244ba13",
-                "sha256:96b81ae75591a795d8c90edc0bfaab44d3d41ffc1aae4d994c5aa21d9b8e19a2",
-                "sha256:981da26722bebb9247a0601e2922cedf8bb7a600e89c852d063313102de6f2cb",
-                "sha256:ae9de71eb60940e58207f8e71fe113c639da42adb02fb2bcbcaccc1ccecd092b",
-                "sha256:b73d4b78807bd299b38e4598b8e7bd34ed55d480160d2e7fdaabd9931afa65f9",
-                "sha256:d4a5f6146cfa5c7ba0134249665acd322a70d1ea61732723c7d3e8cc0fa80755",
-                "sha256:dd91006848eb55af2159375134d724032a2d1d13bcc6f81cd8d3ed9f2b8e846c",
-                "sha256:e05e60ff3b2b0342153be4d1b597bbcfd8330890056b9619f4ad6b8d5c96a81a",
-                "sha256:e6906d6f48437dfd80464f7d7af1740eadc572b9f7a4301e7dd3d65db285cacf",
-                "sha256:e92d0d4fa68ea0c02d39f1e2f9cb5bc4b4a71e8c442207433d8db47ee79d7aa3",
-                "sha256:e94b7d9deaa4cc7bac9198a58a7240aaf87fe56c6277ee25fa5b3aa1edebd229",
-                "sha256:ea3e746e29d4000cd98d572f3ee2a6050a4f784bb536f4ac1f035987fc1ed83e",
-                "sha256:ec7e20258ecc5174029a0f391e1b948bf2906cd64c198a9b8b281b811cbc04de",
-                "sha256:ec9465dd69d5657b5d2fa6133b3e1e989ae27d29471a672416fd729b429eb554",
-                "sha256:f122ccd12fdc69628786d0c947bdd9cb2733be8f800d88b5a37c57f1f1d73c10",
-                "sha256:f99c0489258086308aad4ae57da9e8ecf9e1f3f30fa35d5e170b4d4896554d80",
-                "sha256:f9c51d9af9abb899bd34ace878fbec8bf357b3194a10c4e8e0a25512826ef056",
-                "sha256:fd76c47f20984b43d93de9a82011bb6e5f8325df6c9ed4d8310029a55fa361ea"
+                "sha256:00b6d4ea20a906c0ca56d84f93065b398ab74b927a7a3dbd470f6fc503f95dc3",
+                "sha256:01c205616a89d09827986bc4e859bcabd64f5a0662a7fe95e0d359424e0e071b",
+                "sha256:02b41b633c6261feff8ddd8d11c711df6842aba629fdd3da10249a53211a72c4",
+                "sha256:07f7a7d0f388028b2df1d916e94bbb40624c59b48ecc6cbc232546706fac74c2",
+                "sha256:11871514607b15cfeb87c547a49bca19fde402f32e2b1c24a632506c0a756656",
+                "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3",
+                "sha256:21ac0156c4b089b330b7666db40feee30a5d52634cc4560e1905d6529a3897ff",
+                "sha256:257fd78c513e0fb5cdbe058c27a0624c9884e735bbd131935fd49e9fe719d310",
+                "sha256:2b39d38039a1fdad98c87279b48bc5dce2c0ca0d73483b12cb72aa9609278e8a",
+                "sha256:2cf71233a0ed05ccdabe209c606fe0bac7379fdcf687f39b944420d2a09fdb57",
+                "sha256:2fe803deacd09a233e4762a1adcea5db5d31e6be577a43352936179d14d90069",
+                "sha256:3232822c7d98d23895ccc443bbdf57c7412c5a65996c30442ebe6ed3df335383",
+                "sha256:34aa51c45f28ba7f12accd624225e2b1e5a3a45206aa191f6f9aac931d9d56fe",
+                "sha256:36f582d0c6bc99d5f39cd3ac2a9062e57f3cf606ade29a0a0d6b323462f4dd87",
+                "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d",
+                "sha256:40e7bc81c9e2b2734ea4bc1aceb8a8f0ceaac7c5299bc5d69e37c44d9081d43b",
+                "sha256:43ca3bbbe97af00f49efb06e352eae40434ca9d915906f77def219b88e85d907",
+                "sha256:4fcc4649dc762cddacd193e6b55bc02edca674067f5f98166d7713b193932b7f",
+                "sha256:5a0f54ce2c092aaf439813735584b9537cad479575a09892b8352fea5e988dc0",
+                "sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28",
+                "sha256:5b02d65b9ccf0ef6c34cba6cf5bf2aab1bb2f49c6090bafeecc9cd81ad4ea1c1",
+                "sha256:60db23fa423575eeb65ea430cee741acb7c26a1365d103f7b0f6ec412b893853",
+                "sha256:642c2e7a804fcf18c222e1060df25fc210b9c58db7c91416fb055897fc27e8cc",
+                "sha256:6a9a25751acb379b466ff6be78a315e2b439d4c94c1e99cb7266d40a537995d3",
+                "sha256:6b1a564e6cb69922c7fe3a678b9f9a3c54e72b469875aa8018f18b4d1dd1adf3",
+                "sha256:6d323e1554b3d22cfc03cd3243b5bb815a51f5249fdcbb86fda4bf62bab9e164",
+                "sha256:6e743de5e9c3d1b7185870f480587b75b1cb604832e380d64f9504a0535912d1",
+                "sha256:709fe01086a55cf79d20f741f39325018f4df051ef39fe921b1ebe780a66184c",
+                "sha256:7b7c050ae976e286906dd3f26009e117eb000fb2cf3533398c5ad9ccc86867b1",
+                "sha256:7d2872609603cb35ca513d7404a94d6d608fc13211563571117046c9d2bcc3d7",
+                "sha256:7ef58fb89674095bfc57c4069e95d7a31cfdc0939e2a579882ac7d55aadfd2a1",
+                "sha256:80bb5c256f1415f747011dc3604b59bc1f91c6e7150bd7db03b19170ee06b320",
+                "sha256:81b19725065dcb43df02b37e03278c011a09e49757287dca60c5aecdd5a0b8ed",
+                "sha256:833b58d5d0b7e5b9832869f039203389ac7cbf01765639c7309fd50ef619e0b1",
+                "sha256:88bd7b6bd70a5b6803c1abf6bca012f7ed963e58c68d76ee20b9d751c74a3248",
+                "sha256:8ad85f7f4e20964db4daadcab70b47ab05c7c1cf2a7c1e51087bfaa83831854c",
+                "sha256:8c0ce1e99116d5ab21355d8ebe53d9460366704ea38ae4d9f6933188f327b456",
+                "sha256:8d649d616e5c6a678b26d15ece345354f7c2286acd6db868e65fcc5ff7c24a77",
+                "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef",
+                "sha256:9736af4641846491aedb3c3f56b9bc5568d92b0692303b5a305301a95dfd38b1",
+                "sha256:988635d122aaf2bdcef9e795435662bcd65b02f4f4c1ae37fbee7401c440b3a7",
+                "sha256:9cca3c2cdadb362116235fdbd411735de4328c61425b0aa9f872fd76d02c4e86",
+                "sha256:9e0fd32e0148dd5dea6af5fee42beb949098564cc23211a88d799e434255a1f4",
+                "sha256:9f3e6f9e05148ff90002b884fbc2a86bd303ae847e472f44ecc06c2cd2fcdb2d",
+                "sha256:a85d2b46be66a71bedde836d9e41859879cc54a2a04fad1191eb50c2066f6e9d",
+                "sha256:a9a52172be0b5aae932bef82a79ec0a0ce87288c7d132946d645eba03f0ad8a8",
+                "sha256:aa31fdcc33fef9eb2552cbcbfee7773d5a6792c137b359e82879c101e98584c5",
+                "sha256:b014c23646a467558be7da3d6b9fa409b2c567d2110599b7cf9a0c5992b3b471",
+                "sha256:b21bb4c09ffabfa0e85e3a6b623e19b80e7acd709b9f91452b8297ace2a8ab00",
+                "sha256:b5901a312f4d14c59918c221323068fad0540e34324925c8475263841dbdfe68",
+                "sha256:b9b7a708dd92306328117d8c4b62e2194d00c365f18eff11a9b53c6f923b01e3",
+                "sha256:d1967f46ea8f2db647c786e78d8cc7e4313dbd1b0aca360592d8027b8508e24d",
+                "sha256:d52a25136894c63de15a35bc0bdc5adb4b0e173b9c0d07a2be9d3ca64a332735",
+                "sha256:d77c85fedff92cf788face9bfa3ebaa364448ebb1d765302e9af11bf449ca36d",
+                "sha256:d79d7d5dc8a32b7093e81e97dad755127ff77bcc899e845f41bf71747af0c569",
+                "sha256:dbcda74c67263139358f4d188ae5faae95c30929281bc6866d00573783c422b7",
+                "sha256:ddaea91abf8b0d13443f6dac52e89051a5063c7d014710dcb4d4abb2ff811a59",
+                "sha256:dee0ce50c6a2dd9056c20db781e9c1cfd33e77d2d569f5d1d9321c641bb903d5",
+                "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb",
+                "sha256:e2f83e18fe2f4c9e7db597e988f72712c0c3676d337d8b101f6758107c42425b",
+                "sha256:e3fb1677c720409d5f671e39bac6c9e0e422584e5f518bfd50aa4cbbea02433f",
+                "sha256:ee2b1b1769f6707a8a445162ea16dddf74285c3964f605877a20e38545c3c462",
+                "sha256:ee6acae74a2b91865910eef5e7de37dc6895ad96fa23603d1d27ea69df545015",
+                "sha256:ef3f72c9666bba2bab70d2a8b79f2c6d2c1a42a7f7e2b0ec83bb2f9e383950af"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
-            "version": "==1.13.3"
+            "version": "==1.14.1"
         },
         "zipp": {
             "hashes": [
-                "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832",
-                "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"
+                "sha256:56bf8aadb83c24db6c4b577e13de374ccfb67da2078beba1d037c17980bf43ad",
+                "sha256:c4f6e5bbf48e74f7a38e7cc5b0480ff42b0ae5178957d564d18932525d5cf099"
             ],
             "markers": "python_version < '3.10'",
-            "version": "==3.6.0"
+            "version": "==3.8.0"
         }
     },
     "develop": {
@@ -392,42 +379,69 @@
         },
         "attrs": {
             "hashes": [
-                "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1",
-                "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"
+                "sha256:2d27e3784d7a565d36ab851fe94887c5eccd6a463168875832a1be79c82828b4",
+                "sha256:626ba8234211db98e869df76230a137c4c40a12d72445c45d5f5b716f076e2fd"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
-            "version": "==21.2.0"
-        },
-        "backports.entry-points-selectable": {
-            "hashes": [
-                "sha256:7fceed9532a7aa2bd888654a7314f864a3c16a4e710b34a58cfc0f08114c663b",
-                "sha256:914b21a479fde881635f7af5adc7f6e38d6b274be32269070c53b698c60d5386"
-            ],
-            "markers": "python_version >= '2.7'",
-            "version": "==1.1.1"
+            "version": "==21.4.0"
         },
         "black": {
             "hashes": [
-                "sha256:380f1b5da05e5a1429225676655dddb96f5ae8c75bdf91e53d798871b902a115",
-                "sha256:7de4cfc7eb6b710de325712d40125689101d21d25283eed7e9998722cf10eb91"
+                "sha256:06f9d8846f2340dfac80ceb20200ea5d1b3f181dd0556b47af4e8e0b24fa0a6b",
+                "sha256:10dbe6e6d2988049b4655b2b739f98785a884d4d6b85bc35133a8fb9a2233176",
+                "sha256:2497f9c2386572e28921fa8bec7be3e51de6801f7459dffd6e62492531c47e09",
+                "sha256:30d78ba6bf080eeaf0b7b875d924b15cd46fec5fd044ddfbad38c8ea9171043a",
+                "sha256:328efc0cc70ccb23429d6be184a15ce613f676bdfc85e5fe8ea2a9354b4e9015",
+                "sha256:35020b8886c022ced9282b51b5a875b6d1ab0c387b31a065b84db7c33085ca79",
+                "sha256:5795a0375eb87bfe902e80e0c8cfaedf8af4d49694d69161e5bd3206c18618bb",
+                "sha256:5891ef8abc06576985de8fa88e95ab70641de6c1fca97e2a15820a9b69e51b20",
+                "sha256:637a4014c63fbf42a692d22b55d8ad6968a946b4a6ebc385c5505d9625b6a464",
+                "sha256:67c8301ec94e3bcc8906740fe071391bce40a862b7be0b86fb5382beefecd968",
+                "sha256:6d2fc92002d44746d3e7db7cf9313cf4452f43e9ea77a2c939defce3b10b5c82",
+                "sha256:6ee227b696ca60dd1c507be80a6bc849a5a6ab57ac7352aad1ffec9e8b805f21",
+                "sha256:863714200ada56cbc366dc9ae5291ceb936573155f8bf8e9de92aef51f3ad0f0",
+                "sha256:9b542ced1ec0ceeff5b37d69838106a6348e60db7b8fdd245294dc1d26136265",
+                "sha256:a6342964b43a99dbc72f72812bf88cad8f0217ae9acb47c0d4f141a6416d2d7b",
+                "sha256:ad4efa5fad66b903b4a5f96d91461d90b9507a812b3c5de657d544215bb7877a",
+                "sha256:bc58025940a896d7e5356952228b68f793cf5fcb342be703c3a2669a1488cb72",
+                "sha256:cc1e1de68c8e5444e8f94c3670bb48a2beef0e91dddfd4fcc29595ebd90bb9ce",
+                "sha256:cee3e11161dde1b2a33a904b850b0899e0424cc331b7295f2a9698e79f9a69a0",
+                "sha256:e3556168e2e5c49629f7b0f377070240bd5511e45e25a4497bb0073d9dda776a",
+                "sha256:e8477ec6bbfe0312c128e74644ac8a02ca06bcdb8982d4ee06f209be28cdf163",
+                "sha256:ee8f1f7228cce7dffc2b464f07ce769f478968bfb3dd1254a4c2eeed84928aad",
+                "sha256:fd57160949179ec517d32ac2ac898b5f20d68ed1a9c977346efbac9c2f1e779d"
             ],
             "index": "pypi",
-            "version": "==21.9b0"
+            "version": "==22.3"
         },
         "bleach": {
             "hashes": [
-                "sha256:0900d8b37eba61a802ee40ac0061f8c2b5dee29c1927dd1d233e075ebf5a71da",
-                "sha256:4d2651ab93271d1129ac9cbc679f524565cc8a1b791909c4a51eac4446a15994"
+                "sha256:08a1fe86d253b5c88c92cc3d810fd8048a16d15762e1e5b74d502256e5926aa1",
+                "sha256:c6d6cc054bdc9c83b48b8083e236e5f00f238428666d2ce2e083eaa5fd568565"
             ],
-            "markers": "python_version >= '3.6'",
-            "version": "==4.1.0"
+            "markers": "python_version >= '3.7'",
+            "version": "==5.0.0"
+        },
+        "cached-property": {
+            "hashes": [
+                "sha256:9fa5755838eecbb2d234c3aa390bd80fbd3ac6b6869109bfc1b499f7bd89a130",
+                "sha256:df4f613cf7ad9a588cc381aaf4a512d26265ecebd5eb9e1ba12f1319eb85a6a0"
+            ],
+            "version": "==1.5.2"
+        },
+        "cerberus": {
+            "hashes": [
+                "sha256:d1b21b3954b2498d9a79edf16b3170a3ac1021df88d197dc2ce5928ba519237c"
+            ],
+            "version": "==1.3.4"
         },
         "certifi": {
             "hashes": [
-                "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872",
-                "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"
+                "sha256:9c5705e395cd70084351dd8ad5c41e65655e08ce46f2ec9cf6c2c08390f71eb7",
+                "sha256:f1d53542ee8cbedbe2118b5686372fb33c297fcd6379b050cca0ef13a597382a"
             ],
-            "version": "==2021.10.8"
+            "markers": "python_version >= '3.6'",
+            "version": "==2022.5.18.1"
         },
         "cffi": {
             "hashes": [
@@ -492,21 +506,29 @@
             "markers": "python_full_version >= '3.6.1'",
             "version": "==3.3.1"
         },
+        "chardet": {
+            "hashes": [
+                "sha256:0d6f53a15db4120f2b08c94f11e7d93d2c911ee118b6b30a04ec3ee8310179fa",
+                "sha256:f864054d66fd9118f2e67044ac8981a54775ec5b67aed0441892edb553d21da5"
+            ],
+            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+            "version": "==4.0.0"
+        },
         "charset-normalizer": {
             "hashes": [
-                "sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0",
-                "sha256:f7af805c321bfa1ce6714c51f254e0d5bb5e5834039bc17db7ebe3a4cec9492b"
+                "sha256:2857e29ff0d34db842cd7ca3230549d1a697f96ee6d3fb071cfa6c7393832597",
+                "sha256:6881edbebdb17b39b4eaaa821b438bf6eddffb4468cf344f09f89def34a8b1df"
             ],
             "markers": "python_version >= '3'",
-            "version": "==2.0.7"
+            "version": "==2.0.12"
         },
         "click": {
             "hashes": [
-                "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3",
-                "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"
+                "sha256:7682dc8afb30297001674575ea00d1814d808d6a36af415a82bd481d37ba7b8e",
+                "sha256:bb4d8133cb15a609f44e8213d9b391b0809795062913b383c62be0ee95b1db48"
             ],
             "index": "pypi",
-            "version": "==8.0.3"
+            "version": "==8.1.3"
         },
         "colorama": {
             "hashes": [
@@ -516,118 +538,121 @@
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
             "version": "==0.4.4"
         },
+        "commonmark": {
+            "hashes": [
+                "sha256:452f9dc859be7f06631ddcb328b6919c67984aca654e5fefb3914d54691aed60",
+                "sha256:da2f38c92590f83de410ba1a3cbceafbc74fee9def35f9251ba9a971d6d66fd9"
+            ],
+            "version": "==0.9.1"
+        },
         "coverage": {
             "extras": [
                 "toml"
             ],
             "hashes": [
-                "sha256:046647b96969fda1ae0605f61288635209dd69dcd27ba3ec0bf5148bc157f954",
-                "sha256:06d009e8a29483cbc0520665bc46035ffe9ae0e7484a49f9782c2a716e37d0a0",
-                "sha256:0cde7d9fe2fb55ff68ebe7fb319ef188e9b88e0a3d1c9c5db7dd829cd93d2193",
-                "sha256:1de9c6f5039ee2b1860b7bad2c7bc3651fbeb9368e4c4d93e98a76358cdcb052",
-                "sha256:24ed38ec86754c4d5a706fbd5b52b057c3df87901a8610d7e5642a08ec07087e",
-                "sha256:27a3df08a855522dfef8b8635f58bab81341b2fb5f447819bc252da3aa4cf44c",
-                "sha256:310c40bed6b626fd1f463e5a83dba19a61c4eb74e1ac0d07d454ebbdf9047e9d",
-                "sha256:3348865798c077c695cae00da0924136bb5cc501f236cfd6b6d9f7a3c94e0ec4",
-                "sha256:35b246ae3a2c042dc8f410c94bcb9754b18179cdb81ff9477a9089dbc9ecc186",
-                "sha256:3f546f48d5d80a90a266769aa613bc0719cb3e9c2ef3529d53f463996dd15a9d",
-                "sha256:586d38dfc7da4a87f5816b203ff06dd7c1bb5b16211ccaa0e9788a8da2b93696",
-                "sha256:5d3855d5d26292539861f5ced2ed042fc2aa33a12f80e487053aed3bcb6ced13",
-                "sha256:610c0ba11da8de3a753dc4b1f71894f9f9debfdde6559599f303286e70aeb0c2",
-                "sha256:62646d98cf0381ffda301a816d6ac6c35fc97aa81b09c4c52d66a15c4bef9d7c",
-                "sha256:66af99c7f7b64d050d37e795baadf515b4561124f25aae6e1baa482438ecc388",
-                "sha256:675adb3b3380967806b3cbb9c5b00ceb29b1c472692100a338730c1d3e59c8b9",
-                "sha256:6e5a8c947a2a89c56655ecbb789458a3a8e3b0cbf4c04250331df8f647b3de59",
-                "sha256:7a39590d1e6acf6a3c435c5d233f72f5d43b585f5be834cff1f21fec4afda225",
-                "sha256:80cb70264e9a1d04b519cdba3cd0dc42847bf8e982a4d55c769b9b0ee7cdce1e",
-                "sha256:82fdcb64bf08aa5db881db061d96db102c77397a570fbc112e21c48a4d9cb31b",
-                "sha256:8492d37acdc07a6eac6489f6c1954026f2260a85a4c2bb1e343fe3d35f5ee21a",
-                "sha256:94f558f8555e79c48c422045f252ef41eb43becdd945e9c775b45ebfc0cbd78f",
-                "sha256:958ac66272ff20e63d818627216e3d7412fdf68a2d25787b89a5c6f1eb7fdd93",
-                "sha256:95a58336aa111af54baa451c33266a8774780242cab3704b7698d5e514840758",
-                "sha256:96129e41405887a53a9cc564f960d7f853cc63d178f3a182fdd302e4cab2745b",
-                "sha256:97ef6e9119bd39d60ef7b9cd5deea2b34869c9f0b9777450a7e3759c1ab09b9b",
-                "sha256:98d44a8136eebbf544ad91fef5bd2b20ef0c9b459c65a833c923d9aa4546b204",
-                "sha256:9d2c2e3ce7b8cc932a2f918186964bd44de8c84e2f9ef72dc616f5bb8be22e71",
-                "sha256:a300b39c3d5905686c75a369d2a66e68fd01472ea42e16b38c948bd02b29e5bd",
-                "sha256:a34fccb45f7b2d890183a263578d60a392a1a218fdc12f5bce1477a6a68d4373",
-                "sha256:a4d48e42e17d3de212f9af44f81ab73b9378a4b2b8413fd708d0d9023f2bbde4",
-                "sha256:af45eea024c0e3a25462fade161afab4f0d9d9e0d5a5d53e86149f74f0a35ecc",
-                "sha256:ba6125d4e55c0b8e913dad27b22722eac7abdcb1f3eab1bd090eee9105660266",
-                "sha256:bc1ee1318f703bc6c971da700d74466e9b86e0c443eb85983fb2a1bd20447263",
-                "sha256:c18725f3cffe96732ef96f3de1939d81215fd6d7d64900dcc4acfe514ea4fcbf",
-                "sha256:c8e9c4bcaaaa932be581b3d8b88b677489975f845f7714efc8cce77568b6711c",
-                "sha256:cc799916b618ec9fd00135e576424165691fec4f70d7dc12cfaef09268a2478c",
-                "sha256:cd2d11a59afa5001ff28073ceca24ae4c506da4355aba30d1e7dd2bd0d2206dc",
-                "sha256:d0a595a781f8e186580ff8e3352dd4953b1944289bec7705377c80c7e36c4d6c",
-                "sha256:d3c5f49ce6af61154060640ad3b3281dbc46e2e0ef2fe78414d7f8a324f0b649",
-                "sha256:d9a635114b88c0ab462e0355472d00a180a5fbfd8511e7f18e4ac32652e7d972",
-                "sha256:e5432d9c329b11c27be45ee5f62cf20a33065d482c8dec1941d6670622a6fb8f",
-                "sha256:eab14fdd410500dae50fd14ccc332e65543e7b39f6fc076fe90603a0e5d2f929",
-                "sha256:ebcc03e1acef4ff44f37f3c61df478d6e469a573aa688e5a162f85d7e4c3860d",
-                "sha256:fae3fe111670e51f1ebbc475823899524e3459ea2db2cb88279bbfb2a0b8a3de",
-                "sha256:fd92ece726055e80d4e3f01fff3b91f54b18c9c357c48fcf6119e87e2461a091",
-                "sha256:ffa545230ca2ad921ad066bf8fd627e7be43716b6e0fcf8e32af1b8188ccb0ab"
-            ],
-            "markers": "python_version >= '3.6'",
-            "version": "==6.1.2"
+                "sha256:00c8544510f3c98476bbd58201ac2b150ffbcce46a8c3e4fb89ebf01998f806a",
+                "sha256:016d7f5cf1c8c84f533a3c1f8f36126fbe00b2ec0ccca47cc5731c3723d327c6",
+                "sha256:03014a74023abaf5a591eeeaf1ac66a73d54eba178ff4cb1fa0c0a44aae70383",
+                "sha256:033ebec282793bd9eb988d0271c211e58442c31077976c19c442e24d827d356f",
+                "sha256:21e6686a95025927775ac501e74f5940cdf6fe052292f3a3f7349b0abae6d00f",
+                "sha256:26f8f92699756cb7af2b30720de0c5bb8d028e923a95b6d0c891088025a1ac8f",
+                "sha256:2e76bd16f0e31bc2b07e0fb1379551fcd40daf8cdf7e24f31a29e442878a827c",
+                "sha256:341e9c2008c481c5c72d0e0dbf64980a4b2238631a7f9780b0fe2e95755fb018",
+                "sha256:3cfd07c5889ddb96a401449109a8b97a165be9d67077df6802f59708bfb07720",
+                "sha256:4002f9e8c1f286e986fe96ec58742b93484195defc01d5cc7809b8f7acb5ece3",
+                "sha256:50ed480b798febce113709846b11f5d5ed1e529c88d8ae92f707806c50297abf",
+                "sha256:543e172ce4c0de533fa892034cce260467b213c0ea8e39da2f65f9a477425211",
+                "sha256:5a78cf2c43b13aa6b56003707c5203f28585944c277c1f3f109c7b041b16bd39",
+                "sha256:5cd698341626f3c77784858427bad0cdd54a713115b423d22ac83a28303d1d95",
+                "sha256:60c2147921da7f4d2d04f570e1838db32b95c5509d248f3fe6417e91437eaf41",
+                "sha256:62d382f7d77eeeaff14b30516b17bcbe80f645f5cf02bb755baac376591c653c",
+                "sha256:69432946f154c6add0e9ede03cc43b96e2ef2733110a77444823c053b1ff5166",
+                "sha256:727dafd7f67a6e1cad808dc884bd9c5a2f6ef1f8f6d2f22b37b96cb0080d4f49",
+                "sha256:742fb8b43835078dd7496c3c25a1ec8d15351df49fb0037bffb4754291ef30ce",
+                "sha256:750e13834b597eeb8ae6e72aa58d1d831b96beec5ad1d04479ae3772373a8088",
+                "sha256:7b546cf2b1974ddc2cb222a109b37c6ed1778b9be7e6b0c0bc0cf0438d9e45a6",
+                "sha256:83bd142cdec5e4a5c4ca1d4ff6fa807d28460f9db919f9f6a31babaaa8b88426",
+                "sha256:8d2e80dd3438e93b19e1223a9850fa65425e77f2607a364b6fd134fcd52dc9df",
+                "sha256:9229d074e097f21dfe0643d9d0140ee7433814b3f0fc3706b4abffd1e3038632",
+                "sha256:968ed5407f9460bd5a591cefd1388cc00a8f5099de9e76234655ae48cfdbe2c3",
+                "sha256:9c82f2cd69c71698152e943f4a5a6b83a3ab1db73b88f6e769fabc86074c3b08",
+                "sha256:a00441f5ea4504f5abbc047589d09e0dc33eb447dc45a1a527c8b74bfdd32c65",
+                "sha256:a022394996419142b33a0cf7274cb444c01d2bb123727c4bb0b9acabcb515dea",
+                "sha256:af5b9ee0fc146e907aa0f5fb858c3b3da9199d78b7bb2c9973d95550bd40f701",
+                "sha256:b5578efe4038be02d76c344007b13119b2b20acd009a88dde8adec2de4f630b5",
+                "sha256:b84ab65444dcc68d761e95d4d70f3cfd347ceca5a029f2ffec37d4f124f61311",
+                "sha256:c53ad261dfc8695062fc8811ac7c162bd6096a05a19f26097f411bdf5747aee7",
+                "sha256:cc173f1ce9ffb16b299f51c9ce53f66a62f4d975abe5640e976904066f3c835d",
+                "sha256:d548edacbf16a8276af13063a2b0669d58bbcfca7c55a255f84aac2870786a61",
+                "sha256:d55fae115ef9f67934e9f1103c9ba826b4c690e4c5bcf94482b8b2398311bf9c",
+                "sha256:d8099ea680201c2221f8468c372198ceba9338a5fec0e940111962b03b3f716a",
+                "sha256:e35217031e4b534b09f9b9a5841b9344a30a6357627761d4218818b865d45055",
+                "sha256:e4f52c272fdc82e7c65ff3f17a7179bc5f710ebc8ce8a5cadac81215e8326740",
+                "sha256:e637ae0b7b481905358624ef2e81d7fb0b1af55f5ff99f9ba05442a444b11e45",
+                "sha256:eef5292b60b6de753d6e7f2d128d5841c7915fb1e3321c3a1fe6acfe76c38052",
+                "sha256:fb45fe08e1abc64eb836d187b20a59172053999823f7f6ef4f18a819c44ba16f"
+            ],
+            "markers": "python_version >= '3.7'",
+            "version": "==6.4"
         },
         "cryptography": {
             "hashes": [
-                "sha256:07bb7fbfb5de0980590ddfc7f13081520def06dc9ed214000ad4372fb4e3c7f6",
-                "sha256:18d90f4711bf63e2fb21e8c8e51ed8189438e6b35a6d996201ebd98a26abbbe6",
-                "sha256:1ed82abf16df40a60942a8c211251ae72858b25b7421ce2497c2eb7a1cee817c",
-                "sha256:22a38e96118a4ce3b97509443feace1d1011d0571fae81fc3ad35f25ba3ea999",
-                "sha256:2d69645f535f4b2c722cfb07a8eab916265545b3475fdb34e0be2f4ee8b0b15e",
-                "sha256:4a2d0e0acc20ede0f06ef7aa58546eee96d2592c00f450c9acb89c5879b61992",
-                "sha256:54b2605e5475944e2213258e0ab8696f4f357a31371e538ef21e8d61c843c28d",
-                "sha256:7075b304cd567694dc692ffc9747f3e9cb393cc4aa4fb7b9f3abd6f5c4e43588",
-                "sha256:7b7ceeff114c31f285528ba8b390d3e9cfa2da17b56f11d366769a807f17cbaa",
-                "sha256:7eba2cebca600a7806b893cb1d541a6e910afa87e97acf2021a22b32da1df52d",
-                "sha256:928185a6d1ccdb816e883f56ebe92e975a262d31cc536429041921f8cb5a62fd",
-                "sha256:9933f28f70d0517686bd7de36166dda42094eac49415459d9bdf5e7df3e0086d",
-                "sha256:a688ebcd08250eab5bb5bca318cc05a8c66de5e4171a65ca51db6bd753ff8953",
-                "sha256:abb5a361d2585bb95012a19ed9b2c8f412c5d723a9836418fab7aaa0243e67d2",
-                "sha256:c10c797ac89c746e488d2ee92bd4abd593615694ee17b2500578b63cad6b93a8",
-                "sha256:ced40344e811d6abba00295ced98c01aecf0c2de39481792d87af4fa58b7b4d6",
-                "sha256:d57e0cdc1b44b6cdf8af1d01807db06886f10177469312fbde8f44ccbb284bc9",
-                "sha256:d99915d6ab265c22873f1b4d6ea5ef462ef797b4140be4c9d8b179915e0985c6",
-                "sha256:eb80e8a1f91e4b7ef8b33041591e6d89b2b8e122d787e87eeb2b08da71bb16ad",
-                "sha256:ebeddd119f526bcf323a89f853afb12e225902a24d29b55fe18dd6fcb2838a76"
+                "sha256:093cb351031656d3ee2f4fa1be579a8c69c754cf874206be1d4cf3b542042804",
+                "sha256:0cc20f655157d4cfc7bada909dc5cc228211b075ba8407c46467f63597c78178",
+                "sha256:1b9362d34363f2c71b7853f6251219298124aa4cc2075ae2932e64c91a3e2717",
+                "sha256:1f3bfbd611db5cb58ca82f3deb35e83af34bb8cf06043fa61500157d50a70982",
+                "sha256:2bd1096476aaac820426239ab534b636c77d71af66c547b9ddcd76eb9c79e004",
+                "sha256:31fe38d14d2e5f787e0aecef831457da6cec68e0bb09a35835b0b44ae8b988fe",
+                "sha256:3b8398b3d0efc420e777c40c16764d6870bcef2eb383df9c6dbb9ffe12c64452",
+                "sha256:3c81599befb4d4f3d7648ed3217e00d21a9341a9a688ecdd615ff72ffbed7336",
+                "sha256:419c57d7b63f5ec38b1199a9521d77d7d1754eb97827bbb773162073ccd8c8d4",
+                "sha256:46f4c544f6557a2fefa7ac8ac7d1b17bf9b647bd20b16decc8fbcab7117fbc15",
+                "sha256:471e0d70201c069f74c837983189949aa0d24bb2d751b57e26e3761f2f782b8d",
+                "sha256:59b281eab51e1b6b6afa525af2bd93c16d49358404f814fe2c2410058623928c",
+                "sha256:731c8abd27693323b348518ed0e0705713a36d79fdbd969ad968fbef0979a7e0",
+                "sha256:95e590dd70642eb2079d280420a888190aa040ad20f19ec8c6e097e38aa29e06",
+                "sha256:a68254dd88021f24a68b613d8c51d5c5e74d735878b9e32cc0adf19d1f10aaf9",
+                "sha256:a7d5137e556cc0ea418dca6186deabe9129cee318618eb1ffecbd35bee55ddc1",
+                "sha256:aeaba7b5e756ea52c8861c133c596afe93dd716cbcacae23b80bc238202dc023",
+                "sha256:dc26bb134452081859aa21d4990474ddb7e863aa39e60d1592800a8865a702de",
+                "sha256:e53258e69874a306fcecb88b7534d61820db8a98655662a3dd2ec7f1afd9132f",
+                "sha256:ef15c2df7656763b4ff20a9bc4381d8352e6640cfeb95c2972c38ef508e75181",
+                "sha256:f224ad253cc9cea7568f49077007d2263efa57396a2f2f78114066fd54b5c68e",
+                "sha256:f8ec91983e638a9bcd75b39f1396e5c0dc2330cbd9ce4accefe68717e6779e0a"
             ],
             "markers": "python_version >= '3.6'",
-            "version": "==35.0.0"
+            "version": "==37.0.2"
         },
         "distlib": {
             "hashes": [
-                "sha256:c8b54e8454e5bf6237cc84c20e8264c3e991e824ef27e8f1e81049867d861e31",
-                "sha256:d982d0751ff6eaaab5e2ec8e691d949ee80eddf01a62eaa96ddb11531fe16b05"
+                "sha256:6564fe0a8f51e734df6333d08b8b94d4ea8ee6b99b5ed50613f731fd4089f34b",
+                "sha256:e4b58818180336dc9c529bfb9a0b58728ffc09ad92027a3f30b7cd91e3458579"
             ],
-            "version": "==0.3.3"
+            "version": "==0.3.4"
         },
         "docutils": {
             "hashes": [
-                "sha256:6c9a32514c7aea91b507093d695e4fefcd68112237155ac8ab039962c6bc88bb",
-                "sha256:803900c9fb1ab4a0ec549a51ac3949f545497cec0b40805ba702bc1986e1fe1b"
+                "sha256:23010f129180089fbcd3bc08cfefccb3b890b0050e1ca00c867036e9d161b98c",
+                "sha256:679987caf361a7539d76e584cbeddc311e3aee937877c87346f31debc63e9d06"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
-            "version": "==0.18.1b0"
+            "version": "==0.18.1"
         },
         "filelock": {
             "hashes": [
-                "sha256:2e139a228bcf56dd8b2274a65174d005c4a6b68540ee0bdbb92c76f43f29f7e8",
-                "sha256:93d512b32a23baf4cac44ffd72ccf70732aeff7b8050fcaf6d3ec406d954baf4"
+                "sha256:b795f1b42a61bbf8ec7113c341dad679d772567b936fbd1bf43c9a238e673e20",
+                "sha256:c7b5fdb219b398a5b28c8e4c1893ef5f98ece6a38c6ab2c22e26ec161556fed6"
             ],
-            "markers": "python_version >= '3.6'",
-            "version": "==3.4.0"
+            "markers": "python_version >= '3.7'",
+            "version": "==3.7.0"
         },
         "identify": {
             "hashes": [
-                "sha256:a33ae873287e81651c7800ca309dc1f84679b763c9c8b30680e16fbfa82f0107",
-                "sha256:eba31ca80258de6bb51453084bff4a923187cd2193b9c13710f2516ab30732cc"
+                "sha256:0dca2ea3e4381c435ef9c33ba100a78a9b40c0bab11189c7cf121f75815efeaa",
+                "sha256:3d11b16f3fe19f52039fb7e39c9c884b21cb1b586988114fbe42671f03de3e82"
             ],
-            "markers": "python_full_version >= '3.6.1'",
-            "version": "==2.4.0"
+            "markers": "python_version >= '3.7'",
+            "version": "==2.5.1"
         },
         "idna": {
             "hashes": [
@@ -639,11 +664,11 @@
         },
         "importlib-metadata": {
             "hashes": [
-                "sha256:53ccfd5c134223e497627b9815d5030edf77d2ed573922f7a0b8f8bb81a1c100",
-                "sha256:75bdec14c397f528724c1bfd9709d660b33a4d2e77387a3358f20b848bb5e5fb"
+                "sha256:5d26852efe48c0a32b0509ffbc583fda1a2266545a78d104a6f4aff3db17d700",
+                "sha256:c58c8eb8a762858f49e18436ff552e83914778e50e9d2f1660535ffb364552ec"
             ],
-            "markers": "python_version >= '3.6'",
-            "version": "==4.8.2"
+            "markers": "python_version >= '3.7'",
+            "version": "==4.11.4"
         },
         "iniconfig": {
             "hashes": [
@@ -657,52 +682,67 @@
                 "sha256:6f62d78e2f89b4500b080fe3a81690850cd254227f27f75c3a0c491a1f351ba7",
                 "sha256:e8443a5e7a020e9d7f97f1d7d9cd17c88bcb3bc7e218bf9cf5095fe550be2951"
             ],
-            "markers": "python_version < '4' and python_full_version >= '3.6.1'",
+            "markers": "python_full_version >= '3.6.1' and python_version < '4'",
             "version": "==5.10.1"
         },
         "jeepney": {
             "hashes": [
-                "sha256:1b5a0ea5c0e7b166b2f5895b91a08c14de8915afda4407fb5022a195224958ac",
-                "sha256:fa9e232dfa0c498bd0b8a3a73b8d8a31978304dcef0515adc859d4e096f96f4f"
+                "sha256:5efe48d255973902f6badc3ce55e2aa6c5c3b3bc642059ef3a91247bcfcc5806",
+                "sha256:c0a454ad016ca575060802ee4d590dd912e35c122fa04e70306de3d076cce755"
             ],
             "markers": "sys_platform == 'linux'",
-            "version": "==0.7.1"
+            "version": "==0.8.0"
         },
         "keyring": {
             "hashes": [
-                "sha256:6334aee6073db2fb1f30892697b1730105b5e9a77ce7e61fca6b435225493efe",
-                "sha256:bd2145a237ed70c8ce72978b497619ddfcae640b6dcf494402d5143e37755c6e"
+                "sha256:9ef58314bcc823f426b49ec787539a2d73571b37de4cd498f839803b01acff1e",
+                "sha256:dee502cdf18a98211bef428eea11456a33c00718b2f08524fd5727c7f424bffd"
             ],
-            "markers": "python_version >= '3.6'",
-            "version": "==23.2.1"
+            "markers": "python_version >= '3.7'",
+            "version": "==23.5.1"
         },
         "lazy-object-proxy": {
             "hashes": [
-                "sha256:17e0967ba374fc24141738c69736da90e94419338fd4c7c7bef01ee26b339653",
-                "sha256:1fee665d2638491f4d6e55bd483e15ef21f6c8c2095f235fef72601021e64f61",
-                "sha256:22ddd618cefe54305df49e4c069fa65715be4ad0e78e8d252a33debf00f6ede2",
-                "sha256:24a5045889cc2729033b3e604d496c2b6f588c754f7a62027ad4437a7ecc4837",
-                "sha256:410283732af311b51b837894fa2f24f2c0039aa7f220135192b38fcc42bd43d3",
-                "sha256:4732c765372bd78a2d6b2150a6e99d00a78ec963375f236979c0626b97ed8e43",
-                "sha256:489000d368377571c6f982fba6497f2aa13c6d1facc40660963da62f5c379726",
-                "sha256:4f60460e9f1eb632584c9685bccea152f4ac2130e299784dbaf9fae9f49891b3",
-                "sha256:5743a5ab42ae40caa8421b320ebf3a998f89c85cdc8376d6b2e00bd12bd1b587",
-                "sha256:85fb7608121fd5621cc4377a8961d0b32ccf84a7285b4f1d21988b2eae2868e8",
-                "sha256:9698110e36e2df951c7c36b6729e96429c9c32b3331989ef19976592c5f3c77a",
-                "sha256:9d397bf41caad3f489e10774667310d73cb9c4258e9aed94b9ec734b34b495fd",
-                "sha256:b579f8acbf2bdd9ea200b1d5dea36abd93cabf56cf626ab9c744a432e15c815f",
-                "sha256:b865b01a2e7f96db0c5d12cfea590f98d8c5ba64ad222300d93ce6ff9138bcad",
-                "sha256:bf34e368e8dd976423396555078def5cfc3039ebc6fc06d1ae2c5a65eebbcde4",
-                "sha256:c6938967f8528b3668622a9ed3b31d145fab161a32f5891ea7b84f6b790be05b",
-                "sha256:d1c2676e3d840852a2de7c7d5d76407c772927addff8d742b9808fe0afccebdf",
-                "sha256:d7124f52f3bd259f510651450e18e0fd081ed82f3c08541dffc7b94b883aa981",
-                "sha256:d900d949b707778696fdf01036f58c9876a0d8bfe116e8d220cfd4b15f14e741",
-                "sha256:ebfd274dcd5133e0afae738e6d9da4323c3eb021b3e13052d8cbd0e457b1256e",
-                "sha256:ed361bb83436f117f9917d282a456f9e5009ea12fd6de8742d1a4752c3017e93",
-                "sha256:f5144c75445ae3ca2057faac03fda5a902eff196702b0a24daf1d6ce0650514b"
-            ],
-            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4, 3.5'",
-            "version": "==1.6.0"
+                "sha256:043651b6cb706eee4f91854da4a089816a6606c1428fd391573ef8cb642ae4f7",
+                "sha256:07fa44286cda977bd4803b656ffc1c9b7e3bc7dff7d34263446aec8f8c96f88a",
+                "sha256:12f3bb77efe1367b2515f8cb4790a11cffae889148ad33adad07b9b55e0ab22c",
+                "sha256:2052837718516a94940867e16b1bb10edb069ab475c3ad84fd1e1a6dd2c0fcfc",
+                "sha256:2130db8ed69a48a3440103d4a520b89d8a9405f1b06e2cc81640509e8bf6548f",
+                "sha256:39b0e26725c5023757fc1ab2a89ef9d7ab23b84f9251e28f9cc114d5b59c1b09",
+                "sha256:46ff647e76f106bb444b4533bb4153c7370cdf52efc62ccfc1a28bdb3cc95442",
+                "sha256:4dca6244e4121c74cc20542c2ca39e5c4a5027c81d112bfb893cf0790f96f57e",
+                "sha256:553b0f0d8dbf21890dd66edd771f9b1b5f51bd912fa5f26de4449bfc5af5e029",
+                "sha256:677ea950bef409b47e51e733283544ac3d660b709cfce7b187f5ace137960d61",
+                "sha256:6a24357267aa976abab660b1d47a34aaf07259a0c3859a34e536f1ee6e76b5bb",
+                "sha256:6a6e94c7b02641d1311228a102607ecd576f70734dc3d5e22610111aeacba8a0",
+                "sha256:6aff3fe5de0831867092e017cf67e2750c6a1c7d88d84d2481bd84a2e019ec35",
+                "sha256:6ecbb350991d6434e1388bee761ece3260e5228952b1f0c46ffc800eb313ff42",
+                "sha256:7096a5e0c1115ec82641afbdd70451a144558ea5cf564a896294e346eb611be1",
+                "sha256:70ed0c2b380eb6248abdef3cd425fc52f0abd92d2b07ce26359fcbc399f636ad",
+                "sha256:8561da8b3dd22d696244d6d0d5330618c993a215070f473b699e00cf1f3f6443",
+                "sha256:85b232e791f2229a4f55840ed54706110c80c0a210d076eee093f2b2e33e1bfd",
+                "sha256:898322f8d078f2654d275124a8dd19b079080ae977033b713f677afcfc88e2b9",
+                "sha256:8f3953eb575b45480db6568306893f0bd9d8dfeeebd46812aa09ca9579595148",
+                "sha256:91ba172fc5b03978764d1df5144b4ba4ab13290d7bab7a50f12d8117f8630c38",
+                "sha256:9d166602b525bf54ac994cf833c385bfcc341b364e3ee71e3bf5a1336e677b55",
+                "sha256:a57d51ed2997e97f3b8e3500c984db50a554bb5db56c50b5dab1b41339b37e36",
+                "sha256:b9e89b87c707dd769c4ea91f7a31538888aad05c116a59820f28d59b3ebfe25a",
+                "sha256:bb8c5fd1684d60a9902c60ebe276da1f2281a318ca16c1d0a96db28f62e9166b",
+                "sha256:c19814163728941bb871240d45c4c30d33b8a2e85972c44d4e63dd7107faba44",
+                "sha256:c4ce15276a1a14549d7e81c243b887293904ad2d94ad767f42df91e75fd7b5b6",
+                "sha256:c7a683c37a8a24f6428c28c561c80d5f4fd316ddcf0c7cab999b15ab3f5c5c69",
+                "sha256:d609c75b986def706743cdebe5e47553f4a5a1da9c5ff66d76013ef396b5a8a4",
+                "sha256:d66906d5785da8e0be7360912e99c9188b70f52c422f9fc18223347235691a84",
+                "sha256:dd7ed7429dbb6c494aa9bc4e09d94b778a3579be699f9d67da7e6804c422d3de",
+                "sha256:df2631f9d67259dc9620d831384ed7732a198eb434eadf69aea95ad18c587a28",
+                "sha256:e368b7f7eac182a59ff1f81d5f3802161932a41dc1b1cc45c1f757dc876b5d2c",
+                "sha256:e40f2013d96d30217a51eeb1db28c9ac41e9d0ee915ef9d00da639c5b63f01a1",
+                "sha256:f769457a639403073968d118bc70110e7dce294688009f5c24ab78800ae56dc8",
+                "sha256:fccdf7c2c5821a8cbd0a9440a456f5050492f2270bd54e94360cac663398739b",
+                "sha256:fd45683c3caddf83abbb1249b653a266e7069a09f486daa8863fb0e7496a9fdb"
+            ],
+            "markers": "python_version >= '3.6'",
+            "version": "==1.7.1"
         },
         "mccabe": {
             "hashes": [
@@ -713,32 +753,32 @@
         },
         "mypy": {
             "hashes": [
-                "sha256:088cd9c7904b4ad80bec811053272986611b84221835e079be5bcad029e79dd9",
-                "sha256:0aadfb2d3935988ec3815952e44058a3100499f5be5b28c34ac9d79f002a4a9a",
-                "sha256:119bed3832d961f3a880787bf621634ba042cb8dc850a7429f643508eeac97b9",
-                "sha256:1a85e280d4d217150ce8cb1a6dddffd14e753a4e0c3cf90baabb32cefa41b59e",
-                "sha256:3c4b8ca36877fc75339253721f69603a9c7fdb5d4d5a95a1a1b899d8b86a4de2",
-                "sha256:3e382b29f8e0ccf19a2df2b29a167591245df90c0b5a2542249873b5c1d78212",
-                "sha256:42c266ced41b65ed40a282c575705325fa7991af370036d3f134518336636f5b",
-                "sha256:53fd2eb27a8ee2892614370896956af2ff61254c275aaee4c230ae771cadd885",
-                "sha256:704098302473cb31a218f1775a873b376b30b4c18229421e9e9dc8916fd16150",
-                "sha256:7df1ead20c81371ccd6091fa3e2878559b5c4d4caadaf1a484cf88d93ca06703",
-                "sha256:866c41f28cee548475f146aa4d39a51cf3b6a84246969f3759cb3e9c742fc072",
-                "sha256:a155d80ea6cee511a3694b108c4494a39f42de11ee4e61e72bc424c490e46457",
-                "sha256:adaeee09bfde366d2c13fe6093a7df5df83c9a2ba98638c7d76b010694db760e",
-                "sha256:b6fb13123aeef4a3abbcfd7e71773ff3ff1526a7d3dc538f3929a49b42be03f0",
-                "sha256:b94e4b785e304a04ea0828759172a15add27088520dc7e49ceade7834275bedb",
-                "sha256:c0df2d30ed496a08de5daed2a9ea807d07c21ae0ab23acf541ab88c24b26ab97",
-                "sha256:c6c2602dffb74867498f86e6129fd52a2770c48b7cd3ece77ada4fa38f94eba8",
-                "sha256:ceb6e0a6e27fb364fb3853389607cf7eb3a126ad335790fa1e14ed02fba50811",
-                "sha256:d9dd839eb0dc1bbe866a288ba3c1afc33a202015d2ad83b31e875b5905a079b6",
-                "sha256:e4dab234478e3bd3ce83bac4193b2ecd9cf94e720ddd95ce69840273bf44f6de",
-                "sha256:ec4e0cd079db280b6bdabdc807047ff3e199f334050db5cbb91ba3e959a67504",
-                "sha256:ecd2c3fe726758037234c93df7e98deb257fd15c24c9180dacf1ef829da5f921",
-                "sha256:ef565033fa5a958e62796867b1df10c40263ea9ded87164d67572834e57a174d"
+                "sha256:0ebfb3f414204b98c06791af37a3a96772203da60636e2897408517fcfeee7a8",
+                "sha256:239d6b2242d6c7f5822163ee082ef7a28ee02e7ac86c35593ef923796826a385",
+                "sha256:29dc94d9215c3eb80ac3c2ad29d0c22628accfb060348fd23d73abe3ace6c10d",
+                "sha256:2c7f8bb9619290836a4e167e2ef1f2cf14d70e0bc36c04441e41487456561409",
+                "sha256:33d53a232bb79057f33332dbbb6393e68acbcb776d2f571ba4b1d50a2c8ba873",
+                "sha256:3a3e525cd76c2c4f90f1449fd034ba21fcca68050ff7c8397bb7dd25dd8b8248",
+                "sha256:3eabcbd2525f295da322dff8175258f3fc4c3eb53f6d1929644ef4d99b92e72d",
+                "sha256:481f98c6b24383188c928f33dd2f0776690807e12e9989dd0419edd5c74aa53b",
+                "sha256:7a76dc4f91e92db119b1be293892df8379b08fd31795bb44e0ff84256d34c251",
+                "sha256:7d390248ec07fa344b9f365e6ed9d205bd0205e485c555bed37c4235c868e9d5",
+                "sha256:826a2917c275e2ee05b7c7b736c1e6549a35b7ea5a198ca457f8c2ebea2cbecf",
+                "sha256:85cf2b14d32b61db24ade8ac9ae7691bdfc572a403e3cb8537da936e74713275",
+                "sha256:8d645e9e7f7a5da3ec3bbcc314ebb9bb22c7ce39e70367830eb3c08d0140b9ce",
+                "sha256:925aa84369a07846b7f3b8556ccade1f371aa554f2bd4fb31cb97a24b73b036e",
+                "sha256:a85a20b43fa69efc0b955eba1db435e2ffecb1ca695fe359768e0503b91ea89f",
+                "sha256:bfd4f6536bd384c27c392a8b8f790fd0ed5c0cf2f63fc2fed7bce56751d53026",
+                "sha256:cb7752b24528c118a7403ee955b6a578bfcf5879d5ee91790667c8ea511d2085",
+                "sha256:cc537885891382e08129d9862553b3d00d4be3eb15b8cae9e2466452f52b0117",
+                "sha256:d4fccf04c1acf750babd74252e0f2db6bd2ac3aa8fe960797d9f3ef41cf2bfd4",
+                "sha256:f1ba54d440d4feee49d8768ea952137316d454b15301c44403db3f2cb51af024",
+                "sha256:f47322796c412271f5aea48381a528a613f33e0a115452d03ae35d673e6064f8",
+                "sha256:fbfb873cf2b8d8c3c513367febde932e061a5f73f762896826ba06391d932b2a",
+                "sha256:ffdad80a92c100d1b0fe3d3cf1a4724136029a29afe8566404c0146747114382"
             ],
             "index": "pypi",
-            "version": "==0.910"
+            "version": "==0.960"
         },
         "mypy-extensions": {
             "hashes": [
@@ -754,13 +794,20 @@
             ],
             "version": "==1.6.0"
         },
+        "orderedmultidict": {
+            "hashes": [
+                "sha256:04070bbb5e87291cc9bfa51df413677faf2141c73c61d2a5f7b26bea3cd882ad",
+                "sha256:43c839a17ee3cdd62234c47deca1a8508a3f2ca1d0678a3bf791c87cf84adbf3"
+            ],
+            "version": "==1.0.1"
+        },
         "packaging": {
             "hashes": [
-                "sha256:dd47c42927d89ab911e606518907cc2d3a1f38bbd026385970643f9c5b8ecfeb",
-                "sha256:ef103e05f519cdc783ae24ea4e2e0f508a9c99b2d4969652eed6a2e1ea5bd522"
+                "sha256:5b327ac1320dc863dca72f4514ecc086f31186744b84a230374cc1fd776feae5",
+                "sha256:67714da7f7bc052e064859c05c595155bd1ee9f69f76557e21f051443c20947a"
             ],
-            "markers": "python_version >= '3.6'",
-            "version": "==21.3"
+            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+            "version": "==20.9"
         },
         "pathspec": {
             "hashes": [
@@ -769,20 +816,68 @@
             ],
             "version": "==0.9.0"
         },
+        "pep517": {
+            "hashes": [
+                "sha256:931378d93d11b298cf511dd634cf5ea4cb249a28ef84160b3247ee9afb4e8ab0",
+                "sha256:dd884c326898e2c6e11f9e0b64940606a93eb10ea022a2e067959f3a110cf161"
+            ],
+            "version": "==0.12.0"
+        },
+        "pip": {
+            "hashes": [
+                "sha256:8dfb15d8a1c3d3085a4cbe11f29e19527dfaf2ba99354326fd62cec013eaee81",
+                "sha256:e7bcf0b2cbdec2af84cc1b7b79b25fdbd7228fbdb61a4dca0b82810d0ba9d18b"
+            ],
+            "markers": "python_version >= '3.7'",
+            "version": "==22.1.1"
+        },
+        "pip-shims": {
+            "hashes": [
+                "sha256:116466de9f6bd9a5799cf5f16fe383cd07a45073f2f7e3390af0b73ed3675317",
+                "sha256:de39106ae4e43f3b7c98e4edf74efb71da308c3ae41b33dc484ba7965bcc1a52"
+            ],
+            "markers": "python_version >= '3.6'",
+            "version": "==0.7.0"
+        },
+        "pipenv-setup": {
+            "hashes": [
+                "sha256:0def7ec3363f58b38a43dc59b2078fcee67b47301fd51a41b8e34e6f79812b1a",
+                "sha256:6ceda7145a3088494d8ca68fded4b0473022dc62eb786a021c137632c44298b5"
+            ],
+            "index": "pypi",
+            "version": "==3.2.0"
+        },
+        "pipfile": {
+            "hashes": [
+                "sha256:f7d9f15de8b660986557eb3cc5391aa1a16207ac41bc378d03f414762d36c984"
+            ],
+            "version": "==0.0.2"
+        },
         "pkginfo": {
             "hashes": [
-                "sha256:65175ffa2c807220673a41c371573ac9a1ea1b19ffd5eef916278f428319934f",
-                "sha256:bb55a6c017d50f2faea5153abc7b05a750e7ea7ae2cbb7fb3ad6f1dcf8d40988"
+                "sha256:542e0d0b6750e2e21c20179803e40ab50598d8066d51097a0e382cba9eb02bff",
+                "sha256:c24c487c6a7f72c66e816ab1796b96ac6c3d14d49338293d2141664330b55ffc"
             ],
-            "version": "==1.8.1"
+            "version": "==1.8.2"
         },
         "platformdirs": {
             "hashes": [
-                "sha256:367a5e80b3d04d2428ffa76d33f124cf11e8fff2acdaa9b43d545f5c7d661ef2",
-                "sha256:8868bbe3c3c80d42f20156f22e7131d2fb321f5bc86a2a345375c6481a67021d"
+                "sha256:027d8e83a2d7de06bbac4e5ef7e023c02b863d7ea5d079477e722bb41ab25788",
+                "sha256:58c8abb07dcb441e6ee4b11d8df0ac856038f944ab98b7be6b27b2a3c7feef19"
             ],
-            "markers": "python_version >= '3.6'",
-            "version": "==2.4.0"
+            "markers": "python_version >= '3.7'",
+            "version": "==2.5.2"
+        },
+        "plette": {
+            "extras": [
+                "validation"
+            ],
+            "hashes": [
+                "sha256:46402c03e36d6eadddad2a5125990e322dd74f98160c8f2dcd832b2291858a26",
+                "sha256:d6c9b96981b347bddd333910b753b6091a2c1eb2ef85bb373b4a67c9d91dca16"
+            ],
+            "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+            "version": "==0.2.3"
         },
         "pluggy": {
             "hashes": [
@@ -794,11 +889,11 @@
         },
         "pre-commit": {
             "hashes": [
-                "sha256:3c25add78dbdfb6a28a651780d5c311ac40dd17f160eb3954a0c59da40a505a7",
-                "sha256:a4ed01000afcb484d9eb8d504272e642c4c4099bbad3a6b27e519bd6a3e928a6"
+                "sha256:10c62741aa5704faea2ad69cb550ca78082efe5697d6f04e5710c3c229afdd10",
+                "sha256:4233a1e38621c87d9dda9808c6606d7e7ba0e087cd56d3fe03202a01d2919615"
             ],
             "index": "pypi",
-            "version": "==2.15.0"
+            "version": "==2.19.0"
         },
         "py": {
             "hashes": [
@@ -817,11 +912,11 @@
         },
         "pygments": {
             "hashes": [
-                "sha256:b8e67fe6af78f492b3c4b3e2970c0624cbf08beb1e493b2c99b9fa1b67a20380",
-                "sha256:f398865f7eb6874156579fdf36bc840a03cab64d1cde9e93d68f46a425ec52c6"
+                "sha256:5eb116118f9612ff1ee89ac96437bb6b49e8f04d8a13b514ba26f620208e26eb",
+                "sha256:dc9c10fb40944260f6ed4c688ece0cd2048414940f1cea51b8b226318411c519"
             ],
-            "markers": "python_version >= '3.5'",
-            "version": "==2.10.0"
+            "markers": "python_version >= '3.6'",
+            "version": "==2.12.0"
         },
         "pylint": {
             "hashes": [
@@ -833,19 +928,19 @@
         },
         "pyparsing": {
             "hashes": [
-                "sha256:04ff808a5b90911829c55c4e26f75fa5ca8a2f5f36aa3a51f68e27033341d3e4",
-                "sha256:d9bdec0013ef1eb5a84ab39a3b3868911598afa494f5faa038647101504e2b81"
+                "sha256:c203ec8783bf771a155b207279b9bccb8dea02d8f0c9e5f8ead507bc3246ecc1",
+                "sha256:ef9d7589ef3c200abe66653d3f1ab1033c3c419ae9b9bdb1240a85b024efc88b"
             ],
-            "markers": "python_version >= '3.6'",
-            "version": "==3.0.6"
+            "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'",
+            "version": "==2.4.7"
         },
         "pytest": {
             "hashes": [
-                "sha256:131b36680866a76e6781d13f101efb86cf674ebb9762eb70d3082b6f29889e89",
-                "sha256:7310f8d27bc79ced999e760ca304d69f6ba6c6649c0b60fb0e04a4a77cacc134"
+                "sha256:13d0e3ccfc2b6e26be000cb6568c832ba67ba32e719443bfe725814d3c42433c",
+                "sha256:a06a0425453864a270bc45e71f783330a7428defb4230fb5e6a731fde06ecd45"
             ],
             "index": "pypi",
-            "version": "==6.2.5"
+            "version": "==7.1.2"
         },
         "pytest-cov": {
             "hashes": [
@@ -863,6 +958,14 @@
             "index": "pypi",
             "version": "==0.18.0"
         },
+        "python-dateutil": {
+            "hashes": [
+                "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86",
+                "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"
+            ],
+            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
+            "version": "==2.8.2"
+        },
         "pyyaml": {
             "hashes": [
                 "sha256:08682f6b72c722394747bddaf0aa62277e02557c0fd1c42cb853016a38f8dedf",
@@ -900,72 +1003,19 @@
         },
         "readme-renderer": {
             "hashes": [
-                "sha256:3286806450d9961d6e3b5f8a59f77e61503799aca5155c8d8d40359b4e1e1adc",
-                "sha256:8299700d7a910c304072a7601eafada6712a5b011a20139417e1b1e9f04645d8"
-            ],
-            "version": "==30.0"
-        },
-        "regex": {
-            "hashes": [
-                "sha256:05b7d6d7e64efe309972adab77fc2af8907bb93217ec60aa9fe12a0dad35874f",
-                "sha256:0617383e2fe465732af4509e61648b77cbe3aee68b6ac8c0b6fe934db90be5cc",
-                "sha256:07856afef5ffcc052e7eccf3213317fbb94e4a5cd8177a2caa69c980657b3cb4",
-                "sha256:162abfd74e88001d20cb73ceaffbfe601469923e875caf9118333b1a4aaafdc4",
-                "sha256:2207ae4f64ad3af399e2d30dde66f0b36ae5c3129b52885f1bffc2f05ec505c8",
-                "sha256:30ab804ea73972049b7a2a5c62d97687d69b5a60a67adca07eb73a0ddbc9e29f",
-                "sha256:3b5df18db1fccd66de15aa59c41e4f853b5df7550723d26aa6cb7f40e5d9da5a",
-                "sha256:3c5fb32cc6077abad3bbf0323067636d93307c9fa93e072771cf9a64d1c0f3ef",
-                "sha256:416c5f1a188c91e3eb41e9c8787288e707f7d2ebe66e0a6563af280d9b68478f",
-                "sha256:432bd15d40ed835a51617521d60d0125867f7b88acf653e4ed994a1f8e4995dc",
-                "sha256:4aaa4e0705ef2b73dd8e36eeb4c868f80f8393f5f4d855e94025ce7ad8525f50",
-                "sha256:537ca6a3586931b16a85ac38c08cc48f10fc870a5b25e51794c74df843e9966d",
-                "sha256:53db2c6be8a2710b359bfd3d3aa17ba38f8aa72a82309a12ae99d3c0c3dcd74d",
-                "sha256:5537f71b6d646f7f5f340562ec4c77b6e1c915f8baae822ea0b7e46c1f09b733",
-                "sha256:6650f16365f1924d6014d2ea770bde8555b4a39dc9576abb95e3cd1ff0263b36",
-                "sha256:666abff54e474d28ff42756d94544cdfd42e2ee97065857413b72e8a2d6a6345",
-                "sha256:68a067c11463de2a37157930d8b153005085e42bcb7ad9ca562d77ba7d1404e0",
-                "sha256:780b48456a0f0ba4d390e8b5f7c661fdd218934388cde1a974010a965e200e12",
-                "sha256:788aef3549f1924d5c38263104dae7395bf020a42776d5ec5ea2b0d3d85d6646",
-                "sha256:7ee1227cf08b6716c85504aebc49ac827eb88fcc6e51564f010f11a406c0a667",
-                "sha256:7f301b11b9d214f83ddaf689181051e7f48905568b0c7017c04c06dfd065e244",
-                "sha256:83ee89483672b11f8952b158640d0c0ff02dc43d9cb1b70c1564b49abe92ce29",
-                "sha256:85bfa6a5413be0ee6c5c4a663668a2cad2cbecdee367630d097d7823041bdeec",
-                "sha256:9345b6f7ee578bad8e475129ed40123d265464c4cfead6c261fd60fc9de00bcf",
-                "sha256:93a5051fcf5fad72de73b96f07d30bc29665697fb8ecdfbc474f3452c78adcf4",
-                "sha256:962b9a917dd7ceacbe5cd424556914cb0d636001e393b43dc886ba31d2a1e449",
-                "sha256:98ba568e8ae26beb726aeea2273053c717641933836568c2a0278a84987b2a1a",
-                "sha256:a3feefd5e95871872673b08636f96b61ebef62971eab044f5124fb4dea39919d",
-                "sha256:b43c2b8a330a490daaef5a47ab114935002b13b3f9dc5da56d5322ff218eeadb",
-                "sha256:b483c9d00a565633c87abd0aaf27eb5016de23fed952e054ecc19ce32f6a9e7e",
-                "sha256:ba05430e819e58544e840a68b03b28b6d328aff2e41579037e8bab7653b37d83",
-                "sha256:ca5f18a75e1256ce07494e245cdb146f5a9267d3c702ebf9b65c7f8bd843431e",
-                "sha256:d5ca078bb666c4a9d1287a379fe617a6dccd18c3e8a7e6c7e1eb8974330c626a",
-                "sha256:da1a90c1ddb7531b1d5ff1e171b4ee61f6345119be7351104b67ff413843fe94",
-                "sha256:dba70f30fd81f8ce6d32ddeef37d91c8948e5d5a4c63242d16a2b2df8143aafc",
-                "sha256:dd33eb9bdcfbabab3459c9ee651d94c842bc8a05fabc95edf4ee0c15a072495e",
-                "sha256:e0538c43565ee6e703d3a7c3bdfe4037a5209250e8502c98f20fea6f5fdf2965",
-                "sha256:e1f54b9b4b6c53369f40028d2dd07a8c374583417ee6ec0ea304e710a20f80a0",
-                "sha256:e32d2a2b02ccbef10145df9135751abea1f9f076e67a4e261b05f24b94219e36",
-                "sha256:e71255ba42567d34a13c03968736c5d39bb4a97ce98188fafb27ce981115beec",
-                "sha256:ed2e07c6a26ed4bea91b897ee2b0835c21716d9a469a96c3e878dc5f8c55bb23",
-                "sha256:eef2afb0fd1747f33f1ee3e209bce1ed582d1896b240ccc5e2697e3275f037c7",
-                "sha256:f23222527b307970e383433daec128d769ff778d9b29343fb3496472dc20dabe",
-                "sha256:f341ee2df0999bfdf7a95e448075effe0db212a59387de1a70690e4acb03d4c6",
-                "sha256:f7f325be2804246a75a4f45c72d4ce80d2443ab815063cdf70ee8fb2ca59ee1b",
-                "sha256:f8af619e3be812a2059b212064ea7a640aff0568d972cd1b9e920837469eb3cb",
-                "sha256:fa8c626d6441e2d04b6ee703ef2d1e17608ad44c7cb75258c09dd42bacdfc64b",
-                "sha256:fbb9dc00e39f3e6c0ef48edee202f9520dafb233e8b51b06b8428cfcb92abd30",
-                "sha256:fff55f3ce50a3ff63ec8e2a8d3dd924f1941b250b0aac3d3d42b687eeff07a8e"
-            ],
-            "version": "==2021.11.10"
+                "sha256:73b84905d091c31f36e50b4ae05ae2acead661f6a09a9abb4df7d2ddcdb6a698",
+                "sha256:a727999acfc222fc21d82a12ed48c957c4989785e5865807c65a487d21677497"
+            ],
+            "markers": "python_version >= '3.7'",
+            "version": "==35.0"
         },
         "requests": {
             "hashes": [
-                "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24",
-                "sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"
+                "sha256:68d7c56fd5a8999887728ef304a6d12edc7be74f1cfa47714fc8b414525c9a61",
+                "sha256:f22fa1e554c9ddfd16e6e41ac79759e17be9e492b3587efa038054674760e72d"
             ],
             "index": "pypi",
-            "version": "==2.26.0"
+            "version": "==2.27.1"
         },
         "requests-toolbelt": {
             "hashes": [
@@ -974,27 +1024,52 @@
             ],
             "version": "==0.9.1"
         },
+        "requirementslib": {
+            "hashes": [
+                "sha256:c17a9bf51155d4428e3f031d5555bff2d3b896e5037a3f876c1494329332d23c",
+                "sha256:cab88c78e74e24853fa079e7612b819f28ac80e539216a4f2a2303b62515f31c"
+            ],
+            "markers": "python_version >= '3.7'",
+            "version": "==1.6.4"
+        },
         "rfc3986": {
             "hashes": [
-                "sha256:270aaf10d87d0d4e095063c65bf3ddbc6ee3d0b226328ce21e036f946e421835",
-                "sha256:a86d6e1f5b1dc238b218b012df0aa79409667bb209e58da56d0b94704e712a97"
+                "sha256:50b1502b60e289cb37883f3dfd34532b8873c7de9f49bb546641ce9cbd256ebd",
+                "sha256:97aacf9dbd4bfd829baad6e6309fa6573aaf1be3f6fa735c8ab05e46cecb261c"
             ],
-            "version": "==1.5.0"
+            "markers": "python_version >= '3.7'",
+            "version": "==2.0.0"
+        },
+        "rich": {
+            "hashes": [
+                "sha256:4c586de507202505346f3e32d1363eb9ed6932f0c2f63184dea88983ff4971e2",
+                "sha256:d2bbd99c320a2532ac71ff6a3164867884357da3e3301f0240090c5d2fdac7ec"
+            ],
+            "markers": "python_full_version >= '3.6.3' and python_version < '4'",
+            "version": "==12.4.4"
         },
         "secretstorage": {
             "hashes": [
-                "sha256:422d82c36172d88d6a0ed5afdec956514b189ddbfb72fefab0c8a1cee4eaf71f",
-                "sha256:fd666c51a6bf200643495a04abb261f83229dcb6fd8472ec393df7ffc8b6f195"
+                "sha256:0a8eb9645b320881c222e827c26f4cfcf55363e8b374a021981ef886657a912f",
+                "sha256:755dc845b6ad76dcbcbc07ea3da75ae54bb1ea529eb72d15f83d26499a5df319"
             ],
             "markers": "sys_platform == 'linux'",
-            "version": "==3.3.1"
+            "version": "==3.3.2"
+        },
+        "setuptools": {
+            "hashes": [
+                "sha256:68e45d17c9281ba25dc0104eadd2647172b3472d9e01f911efa57965e8d51a36",
+                "sha256:a43bdedf853c670e5fed28e5623403bad2f73cf02f9a2774e91def6bda8265a7"
+            ],
+            "markers": "python_version >= '3.7'",
+            "version": "==62.3.2"
         },
         "six": {
             "hashes": [
                 "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926",
                 "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"
             ],
-            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
             "version": "==1.16.0"
         },
         "toml": {
@@ -1002,94 +1077,110 @@
                 "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b",
                 "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"
             ],
-            "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+            "markers": "python_version >= '2.6' and python_version not in '3.0, 3.1, 3.2'",
             "version": "==0.10.2"
         },
         "tomli": {
             "hashes": [
-                "sha256:c6ce0015eb38820eaf32b5db832dbc26deb3dd427bd5f6556cf0acac2c214fee",
-                "sha256:f04066f68f5554911363063a30b108d2b5a5b1a010aa8b6132af78489fe3aade"
+                "sha256:939de3e7a6161af0c887ef91b7d41a53e7c5a1ca976325f429cb46ea9bc30ecc",
+                "sha256:de526c12914f0c550d15924c62d72abc48d6fe7364aa87328337a31007fe8a4f"
             ],
-            "version": "==1.2.2"
+            "markers": "python_version < '3.11'",
+            "version": "==2.0.1"
         },
-        "tqdm": {
+        "tomlkit": {
             "hashes": [
-                "sha256:8dd278a422499cd6b727e6ae4061c40b48fce8b76d1ccbf5d34fca9b7f925b0c",
-                "sha256:d359de7217506c9851b7869f3708d8ee53ed70a1b8edbba4dbcb47442592920d"
+                "sha256:0f4050db66fd445b885778900ce4dd9aea8c90c4721141fde0d6ade893820ef1",
+                "sha256:71ceb10c0eefd8b8f11fe34e8a51ad07812cb1dc3de23247425fbc9ddc47b9dd"
             ],
-            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
-            "version": "==4.62.3"
+            "markers": "python_version >= '3.6' and python_version < '4'",
+            "version": "==0.11.0"
         },
         "twine": {
             "hashes": [
-                "sha256:4caad5ef4722e127b3749052fcbffaaf71719b19d4fd4973b29c469957adeba2",
-                "sha256:916070f8ecbd1985ebed5dbb02b9bda9a092882a96d7069d542d4fc0bb5c673c"
+                "sha256:6f7496cf14a3a8903474552d5271c79c71916519edb42554f23f42a8563498a9",
+                "sha256:817aa0c0bdc02a5ebe32051e168e23c71a0608334e624c793011f120dbbc05b7"
             ],
             "index": "pypi",
-            "version": "==3.6.0"
+            "version": "==4.0.0"
         },
         "types-click": {
             "hashes": [
-                "sha256:64dd3dc1fe5ed7e105b7a0479a6aebdd3c132c474c54f42a744af1bfba1989fd",
-                "sha256:fff7ea52619581401a90cb9247e1a7e95c29084cfdbc26b7a49ed94c40fcd3d8"
+                "sha256:8cb030a669e2e927461be9827375f83c16b8178c365852c060a34e24871e7e81",
+                "sha256:b6604968be6401dc516311ca50708a0a28baa7a0cb840efd7412f0dbbff4e092"
             ],
             "index": "pypi",
-            "version": "==7.1.7"
+            "version": "==7.1.8"
         },
         "types-jinja2": {
             "hashes": [
-                "sha256:8331174ba46bc4570b65edc5c6828bb0aec8a93b1e487fc5e878aad5e373ae21",
-                "sha256:f80f29dbf8fec4a3c0f3ee1c9504235757232e739881325a78c14858814012a4"
+                "sha256:60a1e21e8296979db32f9374d8a239af4cb541ff66447bb915d8ad398f9c63b2",
+                "sha256:dbdc74a40aba7aed520b7e4d89e8f0fe4286518494208b35123bcf084d4b8c81"
             ],
             "index": "pypi",
-            "version": "==2.11.8"
+            "version": "==2.11.9"
         },
         "types-markupsafe": {
             "hashes": [
-                "sha256:08ca3cf19abab0476a1efe4a82af6d21471573e08c1e5e065e26aa78a1b552ad",
-                "sha256:b2940f4faab46be0f9509b2f98ea9ff36d058f89fa113d98ae07cdc7958ec15f"
+                "sha256:85b3a872683d02aea3a5ac2a8ef590193c344092032f58457287fbf8e06711b1",
+                "sha256:ca2bee0f4faafc45250602567ef38d533e877d2ddca13003b319c551ff5b3cc5"
             ],
-            "version": "==1.1.8"
+            "version": "==1.1.10"
         },
         "types-pyyaml": {
             "hashes": [
-                "sha256:2e27b0118ca4248a646101c5c318dc02e4ca2866d6bc42e84045dbb851555a76",
-                "sha256:d5b318269652e809b5c30a5fe666c50159ab80bfd41cd6bafe655bf20b29fcba"
+                "sha256:59480cf44595d836aaae050f35e3c39f197f3a833679ef3978d97aa9f2fb7def",
+                "sha256:7b273a34f32af9910cf9405728c9d2ad3afc4be63e4048091a1a73d76681fe67"
             ],
             "index": "pypi",
-            "version": "==6.0.1"
+            "version": "==6.0.7"
         },
         "types-requests": {
             "hashes": [
-                "sha256:809b5dcd3c408ac39d11d593835b6aff32420b3e7ddb79c7f3e823330f040466",
-                "sha256:df5ec8c34b413a42ebb38e4f96bdeb68090b875bdfcc5138dc82989c95445883"
+                "sha256:6d8463ffe1f6edcf2e5361740a6140e7a16d427c267d83c7c1d3d1298f4e67c5",
+                "sha256:d618d9809fa32f514cf17cea8460814da671c56366fb1c908accca8bf183112b"
             ],
             "index": "pypi",
-            "version": "==2.26.0"
+            "version": "==2.27.27"
+        },
+        "types-urllib3": {
+            "hashes": [
+                "sha256:2a2578e4b36341ccd240b00fccda9826988ff0589a44ba4a664bbd69ef348d27",
+                "sha256:5d2388aa76395b1e3999ff789ea5b3283677dad8e9bcf3d9117ba19271fd35d9"
+            ],
+            "version": "==1.26.14"
         },
         "typing-extensions": {
             "hashes": [
-                "sha256:2cdf80e4e04866a9b3689a51869016d36db0814d84b8d8a568d22781d45d27ed",
-                "sha256:829704698b22e13ec9eaf959122315eabb370b0884400e9818334d8b677023d9"
+                "sha256:6657594ee297170d19f67d55c05852a874e7eb634f4f753dbd667855e07c1708",
+                "sha256:f1c24655a0da0d1b67f07e17a5e6b2a105894e6824b92096378bb3668ef02376"
             ],
-            "markers": "python_version >= '3.6'",
-            "version": "==4.0.0"
+            "markers": "python_version < '3.10'",
+            "version": "==4.2.0"
         },
         "urllib3": {
             "hashes": [
-                "sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece",
-                "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844"
+                "sha256:44ece4d53fb1706f667c9bd1c648f5469a2ec925fcf3a776667042d645472c14",
+                "sha256:aabaf16477806a5e1dd19aa41f8c2b7950dd3c746362d7e3223dbe6de6ac448e"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
-            "version": "==1.26.7"
+            "version": "==1.26.9"
         },
         "virtualenv": {
             "hashes": [
-                "sha256:4b02e52a624336eece99c96e3ab7111f469c24ba226a53ec474e8e787b365814",
-                "sha256:576d05b46eace16a9c348085f7d0dc8ef28713a2cabaa1cf0aea41e8f12c9218"
+                "sha256:e617f16e25b42eb4f6e74096b9c9e37713cf10bf30168fb4a739f3fa8f898a3a",
+                "sha256:ef589a79795589aada0c1c5b319486797c03b67ac3984c48c669c0e4f50df3a5"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
-            "version": "==20.10.0"
+            "version": "==20.14.1"
+        },
+        "vistir": {
+            "hashes": [
+                "sha256:a37079cdbd85d31a41cdd18457fe521e15ec08b255811e81aa061fd5f48a20fb",
+                "sha256:eff1d19ef50c703a329ed294e5ec0b0fbb35b96c1b3ee6dcdb266dddbe1e935a"
+            ],
+            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+            "version": "==0.5.2"
         },
         "webencodings": {
             "hashes": [
@@ -1098,70 +1189,91 @@
             ],
             "version": "==0.5.1"
         },
+        "wheel": {
+            "hashes": [
+                "sha256:4bdcd7d840138086126cd09254dc6195fb4fc6f01c050a1d7236f2630db1d22a",
+                "sha256:e9a504e793efbca1b8e0e9cb979a249cf4a0a7b5b8c9e8b65a5e39d49529c1c4"
+            ],
+            "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+            "version": "==0.37.1"
+        },
         "wrapt": {
             "hashes": [
-                "sha256:086218a72ec7d986a3eddb7707c8c4526d677c7b35e355875a0fe2918b059179",
-                "sha256:0877fe981fd76b183711d767500e6b3111378ed2043c145e21816ee589d91096",
-                "sha256:0a017a667d1f7411816e4bf214646d0ad5b1da2c1ea13dec6c162736ff25a374",
-                "sha256:0cb23d36ed03bf46b894cfec777eec754146d68429c30431c99ef28482b5c1df",
-                "sha256:1fea9cd438686e6682271d36f3481a9f3636195578bab9ca3382e2f5f01fc185",
-                "sha256:220a869982ea9023e163ba915077816ca439489de6d2c09089b219f4e11b6785",
-                "sha256:25b1b1d5df495d82be1c9d2fad408f7ce5ca8a38085e2da41bb63c914baadff7",
-                "sha256:2dded5496e8f1592ec27079b28b6ad2a1ef0b9296d270f77b8e4a3a796cf6909",
-                "sha256:2ebdde19cd3c8cdf8df3fc165bc7827334bc4e353465048b36f7deeae8ee0918",
-                "sha256:43e69ffe47e3609a6aec0fe723001c60c65305784d964f5007d5b4fb1bc6bf33",
-                "sha256:46f7f3af321a573fc0c3586612db4decb7eb37172af1bc6173d81f5b66c2e068",
-                "sha256:47f0a183743e7f71f29e4e21574ad3fa95676136f45b91afcf83f6a050914829",
-                "sha256:498e6217523111d07cd67e87a791f5e9ee769f9241fcf8a379696e25806965af",
-                "sha256:4b9c458732450ec42578b5642ac53e312092acf8c0bfce140ada5ca1ac556f79",
-                "sha256:51799ca950cfee9396a87f4a1240622ac38973b6df5ef7a41e7f0b98797099ce",
-                "sha256:5601f44a0f38fed36cc07db004f0eedeaadbdcec90e4e90509480e7e6060a5bc",
-                "sha256:5f223101f21cfd41deec8ce3889dc59f88a59b409db028c469c9b20cfeefbe36",
-                "sha256:610f5f83dd1e0ad40254c306f4764fcdc846641f120c3cf424ff57a19d5f7ade",
-                "sha256:6a03d9917aee887690aa3f1747ce634e610f6db6f6b332b35c2dd89412912bca",
-                "sha256:705e2af1f7be4707e49ced9153f8d72131090e52be9278b5dbb1498c749a1e32",
-                "sha256:766b32c762e07e26f50d8a3468e3b4228b3736c805018e4b0ec8cc01ecd88125",
-                "sha256:77416e6b17926d953b5c666a3cb718d5945df63ecf922af0ee576206d7033b5e",
-                "sha256:778fd096ee96890c10ce96187c76b3e99b2da44e08c9e24d5652f356873f6709",
-                "sha256:78dea98c81915bbf510eb6a3c9c24915e4660302937b9ae05a0947164248020f",
-                "sha256:7dd215e4e8514004c8d810a73e342c536547038fb130205ec4bba9f5de35d45b",
-                "sha256:7dde79d007cd6dfa65afe404766057c2409316135cb892be4b1c768e3f3a11cb",
-                "sha256:81bd7c90d28a4b2e1df135bfbd7c23aee3050078ca6441bead44c42483f9ebfb",
-                "sha256:85148f4225287b6a0665eef08a178c15097366d46b210574a658c1ff5b377489",
-                "sha256:865c0b50003616f05858b22174c40ffc27a38e67359fa1495605f96125f76640",
-                "sha256:87883690cae293541e08ba2da22cacaae0a092e0ed56bbba8d018cc486fbafbb",
-                "sha256:8aab36778fa9bba1a8f06a4919556f9f8c7b33102bd71b3ab307bb3fecb21851",
-                "sha256:8c73c1a2ec7c98d7eaded149f6d225a692caa1bd7b2401a14125446e9e90410d",
-                "sha256:936503cb0a6ed28dbfa87e8fcd0a56458822144e9d11a49ccee6d9a8adb2ac44",
-                "sha256:944b180f61f5e36c0634d3202ba8509b986b5fbaf57db3e94df11abee244ba13",
-                "sha256:96b81ae75591a795d8c90edc0bfaab44d3d41ffc1aae4d994c5aa21d9b8e19a2",
-                "sha256:981da26722bebb9247a0601e2922cedf8bb7a600e89c852d063313102de6f2cb",
-                "sha256:ae9de71eb60940e58207f8e71fe113c639da42adb02fb2bcbcaccc1ccecd092b",
-                "sha256:b73d4b78807bd299b38e4598b8e7bd34ed55d480160d2e7fdaabd9931afa65f9",
-                "sha256:d4a5f6146cfa5c7ba0134249665acd322a70d1ea61732723c7d3e8cc0fa80755",
-                "sha256:dd91006848eb55af2159375134d724032a2d1d13bcc6f81cd8d3ed9f2b8e846c",
-                "sha256:e05e60ff3b2b0342153be4d1b597bbcfd8330890056b9619f4ad6b8d5c96a81a",
-                "sha256:e6906d6f48437dfd80464f7d7af1740eadc572b9f7a4301e7dd3d65db285cacf",
-                "sha256:e92d0d4fa68ea0c02d39f1e2f9cb5bc4b4a71e8c442207433d8db47ee79d7aa3",
-                "sha256:e94b7d9deaa4cc7bac9198a58a7240aaf87fe56c6277ee25fa5b3aa1edebd229",
-                "sha256:ea3e746e29d4000cd98d572f3ee2a6050a4f784bb536f4ac1f035987fc1ed83e",
-                "sha256:ec7e20258ecc5174029a0f391e1b948bf2906cd64c198a9b8b281b811cbc04de",
-                "sha256:ec9465dd69d5657b5d2fa6133b3e1e989ae27d29471a672416fd729b429eb554",
-                "sha256:f122ccd12fdc69628786d0c947bdd9cb2733be8f800d88b5a37c57f1f1d73c10",
-                "sha256:f99c0489258086308aad4ae57da9e8ecf9e1f3f30fa35d5e170b4d4896554d80",
-                "sha256:f9c51d9af9abb899bd34ace878fbec8bf357b3194a10c4e8e0a25512826ef056",
-                "sha256:fd76c47f20984b43d93de9a82011bb6e5f8325df6c9ed4d8310029a55fa361ea"
+                "sha256:00b6d4ea20a906c0ca56d84f93065b398ab74b927a7a3dbd470f6fc503f95dc3",
+                "sha256:01c205616a89d09827986bc4e859bcabd64f5a0662a7fe95e0d359424e0e071b",
+                "sha256:02b41b633c6261feff8ddd8d11c711df6842aba629fdd3da10249a53211a72c4",
+                "sha256:07f7a7d0f388028b2df1d916e94bbb40624c59b48ecc6cbc232546706fac74c2",
+                "sha256:11871514607b15cfeb87c547a49bca19fde402f32e2b1c24a632506c0a756656",
+                "sha256:1b376b3f4896e7930f1f772ac4b064ac12598d1c38d04907e696cc4d794b43d3",
+                "sha256:21ac0156c4b089b330b7666db40feee30a5d52634cc4560e1905d6529a3897ff",
+                "sha256:257fd78c513e0fb5cdbe058c27a0624c9884e735bbd131935fd49e9fe719d310",
+                "sha256:2b39d38039a1fdad98c87279b48bc5dce2c0ca0d73483b12cb72aa9609278e8a",
+                "sha256:2cf71233a0ed05ccdabe209c606fe0bac7379fdcf687f39b944420d2a09fdb57",
+                "sha256:2fe803deacd09a233e4762a1adcea5db5d31e6be577a43352936179d14d90069",
+                "sha256:3232822c7d98d23895ccc443bbdf57c7412c5a65996c30442ebe6ed3df335383",
+                "sha256:34aa51c45f28ba7f12accd624225e2b1e5a3a45206aa191f6f9aac931d9d56fe",
+                "sha256:36f582d0c6bc99d5f39cd3ac2a9062e57f3cf606ade29a0a0d6b323462f4dd87",
+                "sha256:380a85cf89e0e69b7cfbe2ea9f765f004ff419f34194018a6827ac0e3edfed4d",
+                "sha256:40e7bc81c9e2b2734ea4bc1aceb8a8f0ceaac7c5299bc5d69e37c44d9081d43b",
+                "sha256:43ca3bbbe97af00f49efb06e352eae40434ca9d915906f77def219b88e85d907",
+                "sha256:4fcc4649dc762cddacd193e6b55bc02edca674067f5f98166d7713b193932b7f",
+                "sha256:5a0f54ce2c092aaf439813735584b9537cad479575a09892b8352fea5e988dc0",
+                "sha256:5a9a0d155deafd9448baff28c08e150d9b24ff010e899311ddd63c45c2445e28",
+                "sha256:5b02d65b9ccf0ef6c34cba6cf5bf2aab1bb2f49c6090bafeecc9cd81ad4ea1c1",
+                "sha256:60db23fa423575eeb65ea430cee741acb7c26a1365d103f7b0f6ec412b893853",
+                "sha256:642c2e7a804fcf18c222e1060df25fc210b9c58db7c91416fb055897fc27e8cc",
+                "sha256:6a9a25751acb379b466ff6be78a315e2b439d4c94c1e99cb7266d40a537995d3",
+                "sha256:6b1a564e6cb69922c7fe3a678b9f9a3c54e72b469875aa8018f18b4d1dd1adf3",
+                "sha256:6d323e1554b3d22cfc03cd3243b5bb815a51f5249fdcbb86fda4bf62bab9e164",
+                "sha256:6e743de5e9c3d1b7185870f480587b75b1cb604832e380d64f9504a0535912d1",
+                "sha256:709fe01086a55cf79d20f741f39325018f4df051ef39fe921b1ebe780a66184c",
+                "sha256:7b7c050ae976e286906dd3f26009e117eb000fb2cf3533398c5ad9ccc86867b1",
+                "sha256:7d2872609603cb35ca513d7404a94d6d608fc13211563571117046c9d2bcc3d7",
+                "sha256:7ef58fb89674095bfc57c4069e95d7a31cfdc0939e2a579882ac7d55aadfd2a1",
+                "sha256:80bb5c256f1415f747011dc3604b59bc1f91c6e7150bd7db03b19170ee06b320",
+                "sha256:81b19725065dcb43df02b37e03278c011a09e49757287dca60c5aecdd5a0b8ed",
+                "sha256:833b58d5d0b7e5b9832869f039203389ac7cbf01765639c7309fd50ef619e0b1",
+                "sha256:88bd7b6bd70a5b6803c1abf6bca012f7ed963e58c68d76ee20b9d751c74a3248",
+                "sha256:8ad85f7f4e20964db4daadcab70b47ab05c7c1cf2a7c1e51087bfaa83831854c",
+                "sha256:8c0ce1e99116d5ab21355d8ebe53d9460366704ea38ae4d9f6933188f327b456",
+                "sha256:8d649d616e5c6a678b26d15ece345354f7c2286acd6db868e65fcc5ff7c24a77",
+                "sha256:903500616422a40a98a5a3c4ff4ed9d0066f3b4c951fa286018ecdf0750194ef",
+                "sha256:9736af4641846491aedb3c3f56b9bc5568d92b0692303b5a305301a95dfd38b1",
+                "sha256:988635d122aaf2bdcef9e795435662bcd65b02f4f4c1ae37fbee7401c440b3a7",
+                "sha256:9cca3c2cdadb362116235fdbd411735de4328c61425b0aa9f872fd76d02c4e86",
+                "sha256:9e0fd32e0148dd5dea6af5fee42beb949098564cc23211a88d799e434255a1f4",
+                "sha256:9f3e6f9e05148ff90002b884fbc2a86bd303ae847e472f44ecc06c2cd2fcdb2d",
+                "sha256:a85d2b46be66a71bedde836d9e41859879cc54a2a04fad1191eb50c2066f6e9d",
+                "sha256:a9a52172be0b5aae932bef82a79ec0a0ce87288c7d132946d645eba03f0ad8a8",
+                "sha256:aa31fdcc33fef9eb2552cbcbfee7773d5a6792c137b359e82879c101e98584c5",
+                "sha256:b014c23646a467558be7da3d6b9fa409b2c567d2110599b7cf9a0c5992b3b471",
+                "sha256:b21bb4c09ffabfa0e85e3a6b623e19b80e7acd709b9f91452b8297ace2a8ab00",
+                "sha256:b5901a312f4d14c59918c221323068fad0540e34324925c8475263841dbdfe68",
+                "sha256:b9b7a708dd92306328117d8c4b62e2194d00c365f18eff11a9b53c6f923b01e3",
+                "sha256:d1967f46ea8f2db647c786e78d8cc7e4313dbd1b0aca360592d8027b8508e24d",
+                "sha256:d52a25136894c63de15a35bc0bdc5adb4b0e173b9c0d07a2be9d3ca64a332735",
+                "sha256:d77c85fedff92cf788face9bfa3ebaa364448ebb1d765302e9af11bf449ca36d",
+                "sha256:d79d7d5dc8a32b7093e81e97dad755127ff77bcc899e845f41bf71747af0c569",
+                "sha256:dbcda74c67263139358f4d188ae5faae95c30929281bc6866d00573783c422b7",
+                "sha256:ddaea91abf8b0d13443f6dac52e89051a5063c7d014710dcb4d4abb2ff811a59",
+                "sha256:dee0ce50c6a2dd9056c20db781e9c1cfd33e77d2d569f5d1d9321c641bb903d5",
+                "sha256:dee60e1de1898bde3b238f18340eec6148986da0455d8ba7848d50470a7a32fb",
+                "sha256:e2f83e18fe2f4c9e7db597e988f72712c0c3676d337d8b101f6758107c42425b",
+                "sha256:e3fb1677c720409d5f671e39bac6c9e0e422584e5f518bfd50aa4cbbea02433f",
+                "sha256:ee2b1b1769f6707a8a445162ea16dddf74285c3964f605877a20e38545c3c462",
+                "sha256:ee6acae74a2b91865910eef5e7de37dc6895ad96fa23603d1d27ea69df545015",
+                "sha256:ef3f72c9666bba2bab70d2a8b79f2c6d2c1a42a7f7e2b0ec83bb2f9e383950af"
             ],
             "markers": "python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
-            "version": "==1.13.3"
+            "version": "==1.14.1"
         },
         "zipp": {
             "hashes": [
-                "sha256:71c644c5369f4a6e07636f0aa966270449561fcea2e3d6747b8d23efaa9d7832",
-                "sha256:9fe5ea21568a0a70e50f273397638d39b03353731e6cbbb3fd8502a33fec40bc"
+                "sha256:56bf8aadb83c24db6c4b577e13de374ccfb67da2078beba1d037c17980bf43ad",
+                "sha256:c4f6e5bbf48e74f7a38e7cc5b0480ff42b0ae5178957d564d18932525d5cf099"
             ],
             "markers": "python_version < '3.10'",
-            "version": "==3.6.0"
+            "version": "==3.8.0"
         }
     }
 }
diff --git a/ci-base/README.md b/ci-base/README.md
index 60d45af4..802c3ebc 100644
--- a/ci-base/README.md
+++ b/ci-base/README.md
@@ -65,7 +65,7 @@ Contains:
 * numpy-1.19
 * vfxplatform-2021
 
-## [aswf/ci-base:2022.2](https://hub.docker.com/r/aswf/ci-base/tags?page=1&name=2022.2)
+## [aswf/ci-base:2022.3](https://hub.docker.com/r/aswf/ci-base/tags?page=1&name=2022.3)
 
 Contains:
 * boost-1.76.0
@@ -76,7 +76,7 @@ Contains:
 * gtest-1.11.0
 * log4cplus-1.1.2
 * pybind11-2.8.1
-* python-3.9.7
+* python-3.9.11
 * tbb-2020_U3
 * numpy-1.20
 * vfxplatform-2022
diff --git a/ci-baseqt/README.md b/ci-baseqt/README.md
index 411fdb98..48ffdc99 100644
--- a/ci-baseqt/README.md
+++ b/ci-baseqt/README.md
@@ -65,7 +65,7 @@ Contains:
 * numpy-1.19
 * vfxplatform-2021
 
-## [aswf/ci-baseqt:2022.2](https://hub.docker.com/r/aswf/ci-baseqt/tags?page=1&name=2022.2)
+## [aswf/ci-baseqt:2022.3](https://hub.docker.com/r/aswf/ci-baseqt/tags?page=1&name=2022.3)
 
 Contains:
 * boost-1.76.0
@@ -74,7 +74,7 @@ Contains:
 * glew-2.1.0
 * glfw-3.1.2
 * log4cplus-1.1.2
-* python-3.9.7
+* python-3.9.11
 * tbb-2020_U3
 * qt-5.15.2
 * pyside-5.15.2
diff --git a/ci-common/README.md b/ci-common/README.md
index 2524a0d0..8461d9e7 100644
--- a/ci-common/README.md
+++ b/ci-common/README.md
@@ -26,7 +26,7 @@ Contains:
 * ccache-4.0
 * dts-6
 * sonar-4.6.2.2472
-* conan-1.42.0
+* conan-1.47.0
 
 ## [aswf/ci-common:1-clang7.8](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=1-clang7.8)
 
@@ -37,7 +37,7 @@ Contains:
 * ccache-4.0
 * dts-6
 * sonar-4.6.2.2472
-* conan-1.42.0
+* conan-1.47.0
 
 ## [aswf/ci-common:1-clang8.8](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=1-clang8.8)
 
@@ -48,7 +48,7 @@ Contains:
 * ccache-4.0
 * dts-6
 * sonar-4.6.2.2472
-* conan-1.42.0
+* conan-1.47.0
 
 ## [aswf/ci-common:1-clang9.8](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=1-clang9.8)
 
@@ -59,7 +59,7 @@ Contains:
 * ccache-4.0
 * dts-6
 * sonar-4.6.2.2472
-* conan-1.42.0
+* conan-1.47.0
 
 ## [aswf/ci-common:1-clang10.8](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=1-clang10.8)
 
@@ -70,49 +70,60 @@ Contains:
 * ccache-4.0
 * dts-6
 * sonar-4.6.2.2472
-* conan-1.42.0
+* conan-1.47.0
 
-## [aswf/ci-common:2-clang10.4](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=2-clang10.4)
+## [aswf/ci-common:2-clang10.5](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=2-clang10.5)
 
 Contains:
 * clang-10.0.1
-* ninja-1.10.1
-* cuda-11.1
+* ninja-1.11.0
+* cuda-11.4.0
 * ccache-4.0
 * dts-9
-* sonar-4.6.2.2472
-* conan-1.42.0
+* sonar-4.7.0.2747
+* conan-1.47.0
 
-## [aswf/ci-common:2-clang11.5](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=2-clang11.5)
+## [aswf/ci-common:2-clang11.6](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=2-clang11.6)
 
 Contains:
 * clang-11.1.0
-* ninja-1.10.1
-* cuda-11.1
+* ninja-1.11.0
+* cuda-11.4.0
 * ccache-4.0
 * dts-9
-* sonar-4.6.2.2472
-* conan-1.42.0
+* sonar-4.7.0.2747
+* conan-1.47.0
 
-## [aswf/ci-common:2-clang12.0](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=2-clang12.0)
+## [aswf/ci-common:2-clang12.1](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=2-clang12.1)
 
 Contains:
 * clang-12.0.1
-* ninja-1.10.1
-* cuda-11.1
+* ninja-1.11.0
+* cuda-11.4.0
 * ccache-4.0
 * dts-9
-* sonar-4.6.2.2472
-* conan-1.42.0
+* sonar-4.7.0.2747
+* conan-1.47.0
 
-## [aswf/ci-common:2-clang13.0](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=2-clang13.0)
+## [aswf/ci-common:2-clang13.1](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=2-clang13.1)
 
 Contains:
-* clang-13.0.0
-* ninja-1.10.1
-* cuda-11.1
+* clang-13.0.1
+* ninja-1.11.0
+* cuda-11.4.0
 * ccache-4.0
 * dts-9
-* sonar-4.6.2.2472
-* conan-1.42.0
+* sonar-4.7.0.2747
+* conan-1.47.0
+
+## [aswf/ci-common:2-clang14.0](https://hub.docker.com/r/aswf/ci-common/tags?page=1&name=2-clang14.0)
+
+Contains:
+* clang-14.0.0
+* ninja-1.11.0
+* cuda-11.4.0
+* ccache-4.0
+* dts-9
+* sonar-4.7.0.2747
+* conan-1.47.0
 
diff --git a/ci-materialx/Dockerfile b/ci-materialx/Dockerfile
new file mode 100644
index 00000000..1288ac4c
--- /dev/null
+++ b/ci-materialx/Dockerfile
@@ -0,0 +1,109 @@
+# syntax=docker/dockerfile:1.3-labs
+# Copyright (c) Contributors to the aswf-docker Project. All rights reserved.
+# SPDX-License-Identifier: Apache-2.0
+
+# !!! This file is automatically generated from a template and the `image.yaml` file in the same folder !!!
+
+ARG ASWF_ORG
+ARG ASWF_PKG_ORG
+ARG CI_COMMON_VERSION
+ARG ASWF_CLANG_MAJOR_VERSION
+ARG ASWF_CONAN_CHANNEL
+
+ARG ASWF_VFXPLATFORM_VERSION
+
+
+ARG ASWF_PYTHON_VERSION
+ARG ASWF_PYBIND11_VERSION
+ARG ASWF_CMAKE_VERSION
+ARG ASWF_NUMPY_VERSION
+ARG ASWF_VFXPLATFORM_VERSION
+ARG ASWF_PYTHON_MAJOR_MINOR_VERSION
+
+
+# Comment out this block to use Conan packages
+FROM ${ASWF_PKG_ORG}/ci-package-python:$ASWF_VFXPLATFORM_VERSION-$ASWF_PYTHON_VERSION as ci-package-python
+FROM ${ASWF_PKG_ORG}/ci-package-pybind11:$ASWF_VFXPLATFORM_VERSION-$ASWF_PYBIND11_VERSION as ci-package-pybind11
+FROM ${ASWF_PKG_ORG}/ci-package-cmake:$ASWF_VFXPLATFORM_VERSION-$ASWF_CMAKE_VERSION as ci-package-cmake
+FROM ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} as ci-materialx
+
+
+ARG ASWF_ORG
+ARG ASWF_PKG_ORG
+ARG ASWF_VERSION
+ARG CI_COMMON_VERSION
+ARG ASWF_CONAN_CHANNEL
+
+ARG ASWF_PYTHON_VERSION
+ARG ASWF_PYBIND11_VERSION
+ARG ASWF_CMAKE_VERSION
+ARG ASWF_NUMPY_VERSION
+ARG ASWF_VFXPLATFORM_VERSION
+ARG ASWF_PYTHON_MAJOR_MINOR_VERSION
+
+
+LABEL org.opencontainers.image.name="$ASWF_ORG/ci-materialx"
+LABEL org.opencontainers.image.title="MaterialX CI Docker Image"
+LABEL org.opencontainers.image.description="Contains: Python, Boost and other MaterialX upstream dependencies\
+Warning: this image does *not* contain MaterialX itself as it is used to *build* MaterialX!"
+LABEL org.opencontainers.image.url="http://aswf.io/"
+LABEL org.opencontainers.image.source="https://github.com/AcademySoftwareFoundation/aswf-docker/blob/master/ci-materialx/Dockerfile"
+LABEL org.opencontainers.image.vendor="AcademySoftwareFoundation"
+LABEL org.opencontainers.image.authors="Built by aswf.io CI Working Group"
+LABEL org.opencontainers.image.version="${ASWF_VERSION}"
+
+
+LABEL com.vfxplatform.version="${ASWF_VFXPLATFORM_VERSION}"
+
+
+LABEL io.aswf.docker.versions.python="$ASWF_PYTHON_VERSION"
+LABEL io.aswf.docker.versions.pybind11="$ASWF_PYBIND11_VERSION"
+LABEL io.aswf.docker.versions.cmake="$ASWF_CMAKE_VERSION"
+LABEL io.aswf.docker.versions.numpy="$ASWF_NUMPY_VERSION"
+LABEL io.aswf.docker.versions.vfxplatform="$ASWF_VFXPLATFORM_VERSION"
+
+
+ENV ASWF_ORG=${ASWF_ORG}
+ENV ASWF_VERSION=${ASWF_VERSION}
+
+ENV ASWF_VFXPLATFORM_VERSION=${ASWF_VFXPLATFORM_VERSION}
+
+
+ENV ASWF_PYTHON_VERSION=$ASWF_PYTHON_VERSION
+ENV ASWF_PYBIND11_VERSION=$ASWF_PYBIND11_VERSION
+ENV ASWF_CMAKE_VERSION=$ASWF_CMAKE_VERSION
+ENV ASWF_NUMPY_VERSION=$ASWF_NUMPY_VERSION
+ENV ASWF_VFXPLATFORM_VERSION=$ASWF_VFXPLATFORM_VERSION
+ENV ASWF_PYTHON_MAJOR_MINOR_VERSION=$ASWF_PYTHON_MAJOR_MINOR_VERSION
+
+
+# Comment out this block to use Conan packages
+COPY --from=ci-package-python /. /usr/local/
+COPY --from=ci-package-pybind11 /. /usr/local/
+COPY --from=ci-package-cmake /. /usr/local/
+COPY ci-materialx/README.md ci-materialx/image.yaml /usr/local/aswf/
+
+
+
+ENV PYTHONPATH=/usr/local/lib/python${ASWF_PYTHON_MAJOR_MINOR_VERSION}/site-packages:/usr/local/lib64/python${ASWF_PYTHON_MAJOR_MINOR_VERSION}/site-packages:/usr/local/lib/python:${PYTHONPATH}
+
+RUN conan config set general.default_profile=vfx${ASWF_VFXPLATFORM_VERSION}
+
+
+
+# conan-only packages
+COPY <<EOF /usr/local/conanfile.txt
+[generators]
+[imports]
+., * -> .
+[requires]
+# Uncomment to use Conan packages instead of Docker ones
+# python/${ASWF_PYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}
+# pybind11/${ASWF_PYBIND11_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}
+# cmake/${ASWF_CMAKE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}
+EOF
+
+RUN <<EOF
+cd /usr/local/
+conan install .
+EOF
\ No newline at end of file
diff --git a/ci-materialx/README.md b/ci-materialx/README.md
new file mode 100644
index 00000000..9cbee04e
--- /dev/null
+++ b/ci-materialx/README.md
@@ -0,0 +1,29 @@
+<!--
+Copyright (c) Contributors to the aswf-docker Project. All rights reserved.
+SPDX-License-Identifier: Apache-2.0
+
+Warning: this file is automatically generated from a template!
+-->
+
+# Academy Software Foundation Docker Image
+
+See [aswf.io](https://aswf.io) and [aswf-docker](https://github.com/AcademySoftwareFoundation/aswf-docker)
+for further information, and participate in the discussion on the
+[ASWF Slack #wg-ci channel](https://academysoftwarefdn.slack.com/archives/C0169RX7MMK).
+
+## MaterialX CI Docker Image
+
+Contains: Python, Boost and other MaterialX upstream dependencies
+Warning: this image does *not* contain MaterialX itself as it is used to *build* MaterialX!
+
+[Docker Image Source](https://github.com/AcademySoftwareFoundation/aswf-docker/blob/master/ci-materialx/Dockerfile)
+
+## [aswf/ci-materialx:2022.0](https://hub.docker.com/r/aswf/ci-materialx/tags?page=1&name=2022.0)
+
+Contains:
+* python-3.9.11
+* pybind11-2.8.1
+* cmake-3.22.0
+* numpy-1.20
+* vfxplatform-2022
+
diff --git a/ci-materialx/image.yaml b/ci-materialx/image.yaml
new file mode 100644
index 00000000..3b18acaf
--- /dev/null
+++ b/ci-materialx/image.yaml
@@ -0,0 +1,14 @@
+name: "materialx"
+title: "MaterialX CI Docker Image"
+description: |
+  Contains: Python, Boost and other MaterialX upstream dependencies
+  Warning: this image does *not* contain MaterialX itself as it is used to *build* MaterialX!
+packages:
+  - python
+  - pybind11
+  - cmake
+implicit_packages:
+  - numpy
+  - vfxplatform
+docker_from: ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION}
+docker_package_version: $ASWF_VFXPLATFORM_VERSION
diff --git a/ci-ocio/README.md b/ci-ocio/README.md
index cfb133a3..e1b2b4e3 100644
--- a/ci-ocio/README.md
+++ b/ci-ocio/README.md
@@ -78,23 +78,23 @@ Contains:
 * numpy-1.19
 * vfxplatform-2021
 
-## [aswf/ci-ocio:2022.2](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2022.2)
+## [aswf/ci-ocio:2022.3](https://hub.docker.com/r/aswf/ci-ocio/tags?page=1&name=2022.3)
 
 Contains:
-* python-3.9.7
+* python-3.9.11
 * pybind11-2.8.1
 * tbb-2020_U3
 * boost-1.76.0
 * glew-2.1.0
 * glfw-3.1.2
 * cmake-3.22.0
-* imath-3.1.3
-* openexr-3.1.3
-* oiio-2.3.9.1
+* imath-3.1.5
+* openexr-3.1.5
+* oiio-2.3.16.0
 * blosc-1.5.0
 * partio-1.14.0
 * openvdb-9.0.0
-* osl-1.11.16.0
+* osl-1.11.17.0
 * numpy-1.20
 * vfxplatform-2022
 
diff --git a/ci-opencue/README.md b/ci-opencue/README.md
index 541f7896..29edf100 100644
--- a/ci-opencue/README.md
+++ b/ci-opencue/README.md
@@ -42,10 +42,10 @@ Contains:
 * numpy-1.19
 * vfxplatform-2021
 
-## [aswf/ci-opencue:2022.1](https://hub.docker.com/r/aswf/ci-opencue/tags?page=1&name=2022.1)
+## [aswf/ci-opencue:2022.2](https://hub.docker.com/r/aswf/ci-opencue/tags?page=1&name=2022.2)
 
 Contains:
-* python-3.9.7
+* python-3.9.11
 * cmake-3.22.0
 * numpy-1.20
 * vfxplatform-2022
diff --git a/ci-openexr/README.md b/ci-openexr/README.md
index 2ed29eda..94774935 100644
--- a/ci-openexr/README.md
+++ b/ci-openexr/README.md
@@ -45,10 +45,10 @@ Contains:
 * numpy-1.19
 * vfxplatform-2021
 
-## [aswf/ci-openexr:2022.1](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2022.1)
+## [aswf/ci-openexr:2022.2](https://hub.docker.com/r/aswf/ci-openexr/tags?page=1&name=2022.2)
 
 Contains:
-* python-3.9.7
+* python-3.9.11
 * boost-1.76.0
 * cmake-3.22.0
 * numpy-1.20
diff --git a/ci-openvdb/README.md b/ci-openvdb/README.md
index 7061b352..8210fb92 100644
--- a/ci-openvdb/README.md
+++ b/ci-openvdb/README.md
@@ -114,7 +114,7 @@ Contains:
 * numpy-1.19
 * vfxplatform-2021
 
-## [aswf/ci-openvdb:2022-clang10.9](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2022-clang10.9)
+## [aswf/ci-openvdb:2022-clang10.10](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2022-clang10.10)
 
 Contains:
 * boost-1.76.0
@@ -122,15 +122,15 @@ Contains:
 * gtest-1.11.0
 * cppunit-1.15.1
 * glfw-3.1.2
-* python-3.9.7
+* python-3.9.11
 * tbb-2020_U3
-* imath-3.1.3
-* openexr-3.1.3
+* imath-3.1.5
+* openexr-3.1.5
 * blosc-1.5.0
 * numpy-1.20
 * vfxplatform-2022
 
-## [aswf/ci-openvdb:2022-clang11.9](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2022-clang11.9)
+## [aswf/ci-openvdb:2022-clang11.10](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2022-clang11.10)
 
 Contains:
 * boost-1.76.0
@@ -138,15 +138,15 @@ Contains:
 * gtest-1.11.0
 * cppunit-1.15.1
 * glfw-3.1.2
-* python-3.9.7
+* python-3.9.11
 * tbb-2020_U3
-* imath-3.1.3
-* openexr-3.1.3
+* imath-3.1.5
+* openexr-3.1.5
 * blosc-1.5.0
 * numpy-1.20
 * vfxplatform-2022
 
-## [aswf/ci-openvdb:2022-clang12.0](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2022-clang12.0)
+## [aswf/ci-openvdb:2022-clang12.1](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2022-clang12.1)
 
 Contains:
 * boost-1.76.0
@@ -154,15 +154,15 @@ Contains:
 * gtest-1.11.0
 * cppunit-1.15.1
 * glfw-3.1.2
-* python-3.9.7
+* python-3.9.11
 * tbb-2020_U3
-* imath-3.1.3
-* openexr-3.1.3
+* imath-3.1.5
+* openexr-3.1.5
 * blosc-1.5.0
 * numpy-1.20
 * vfxplatform-2022
 
-## [aswf/ci-openvdb:2022-clang13.0](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2022-clang13.0)
+## [aswf/ci-openvdb:2022-clang13.1](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2022-clang13.1)
 
 Contains:
 * boost-1.76.0
@@ -170,10 +170,26 @@ Contains:
 * gtest-1.11.0
 * cppunit-1.15.1
 * glfw-3.1.2
-* python-3.9.7
+* python-3.9.11
 * tbb-2020_U3
-* imath-3.1.3
-* openexr-3.1.3
+* imath-3.1.5
+* openexr-3.1.5
+* blosc-1.5.0
+* numpy-1.20
+* vfxplatform-2022
+
+## [aswf/ci-openvdb:2022-clang14.0](https://hub.docker.com/r/aswf/ci-openvdb/tags?page=1&name=2022-clang14.0)
+
+Contains:
+* boost-1.76.0
+* cmake-3.22.0
+* gtest-1.11.0
+* cppunit-1.15.1
+* glfw-3.1.2
+* python-3.9.11
+* tbb-2020_U3
+* imath-3.1.5
+* openexr-3.1.5
 * blosc-1.5.0
 * numpy-1.20
 * vfxplatform-2022
diff --git a/ci-osl/README.md b/ci-osl/README.md
index 7d22ce1c..845bdcd7 100644
--- a/ci-osl/README.md
+++ b/ci-osl/README.md
@@ -162,17 +162,17 @@ Contains:
 * numpy-1.19
 * vfxplatform-2021
 
-## [aswf/ci-osl:2022-clang10.9](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2022-clang10.9)
+## [aswf/ci-osl:2022-clang10.10](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2022-clang10.10)
 
 Contains:
 * boost-1.76.0
 * cmake-3.22.0
-* python-3.9.7
+* python-3.9.11
 * qt-5.15.2
-* imath-3.1.3
-* openexr-3.1.3
-* oiio-2.3.9.1
-* ocio-2.1.0
+* imath-3.1.5
+* openexr-3.1.5
+* oiio-2.3.16.0
+* ocio-2.1.1
 * partio-1.14.0
 * tbb-2020_U3
 * blosc-1.5.0
@@ -180,17 +180,17 @@ Contains:
 * numpy-1.20
 * vfxplatform-2022
 
-## [aswf/ci-osl:2022-clang11.9](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2022-clang11.9)
+## [aswf/ci-osl:2022-clang11.10](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2022-clang11.10)
 
 Contains:
 * boost-1.76.0
 * cmake-3.22.0
-* python-3.9.7
+* python-3.9.11
 * qt-5.15.2
-* imath-3.1.3
-* openexr-3.1.3
-* oiio-2.3.9.1
-* ocio-2.1.0
+* imath-3.1.5
+* openexr-3.1.5
+* oiio-2.3.16.0
+* ocio-2.1.1
 * partio-1.14.0
 * tbb-2020_U3
 * blosc-1.5.0
@@ -198,17 +198,17 @@ Contains:
 * numpy-1.20
 * vfxplatform-2022
 
-## [aswf/ci-osl:2022-clang12.0](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2022-clang12.0)
+## [aswf/ci-osl:2022-clang12.1](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2022-clang12.1)
 
 Contains:
 * boost-1.76.0
 * cmake-3.22.0
-* python-3.9.7
+* python-3.9.11
 * qt-5.15.2
-* imath-3.1.3
-* openexr-3.1.3
-* oiio-2.3.9.1
-* ocio-2.1.0
+* imath-3.1.5
+* openexr-3.1.5
+* oiio-2.3.16.0
+* ocio-2.1.1
 * partio-1.14.0
 * tbb-2020_U3
 * blosc-1.5.0
@@ -216,17 +216,35 @@ Contains:
 * numpy-1.20
 * vfxplatform-2022
 
-## [aswf/ci-osl:2022-clang13.0](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2022-clang13.0)
+## [aswf/ci-osl:2022-clang13.1](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2022-clang13.1)
 
 Contains:
 * boost-1.76.0
 * cmake-3.22.0
-* python-3.9.7
+* python-3.9.11
 * qt-5.15.2
-* imath-3.1.3
-* openexr-3.1.3
-* oiio-2.3.9.1
-* ocio-2.1.0
+* imath-3.1.5
+* openexr-3.1.5
+* oiio-2.3.16.0
+* ocio-2.1.1
+* partio-1.14.0
+* tbb-2020_U3
+* blosc-1.5.0
+* openvdb-9.0.0
+* numpy-1.20
+* vfxplatform-2022
+
+## [aswf/ci-osl:2022-clang14.0](https://hub.docker.com/r/aswf/ci-osl/tags?page=1&name=2022-clang14.0)
+
+Contains:
+* boost-1.76.0
+* cmake-3.22.0
+* python-3.9.11
+* qt-5.15.2
+* imath-3.1.5
+* openexr-3.1.5
+* oiio-2.3.16.0
+* ocio-2.1.1
 * partio-1.14.0
 * tbb-2020_U3
 * blosc-1.5.0
diff --git a/ci-otio/README.md b/ci-otio/README.md
index 09fd1208..5eac4d64 100644
--- a/ci-otio/README.md
+++ b/ci-otio/README.md
@@ -48,10 +48,10 @@ Contains:
 * numpy-1.19
 * vfxplatform-2021
 
-## [aswf/ci-otio:2022.1](https://hub.docker.com/r/aswf/ci-otio/tags?page=1&name=2022.1)
+## [aswf/ci-otio:2022.2](https://hub.docker.com/r/aswf/ci-otio/tags?page=1&name=2022.2)
 
 Contains:
-* python-3.9.7
+* python-3.9.11
 * cmake-3.22.0
 * qt-5.15.2
 * pyside-5.15.2
diff --git a/ci-usd/Dockerfile b/ci-usd/Dockerfile
index 61fb9a3d..7bec3fa4 100644
--- a/ci-usd/Dockerfile
+++ b/ci-usd/Dockerfile
@@ -23,6 +23,7 @@ ARG ASWF_QT_VERSION
 ARG ASWF_PYSIDE_VERSION
 ARG ASWF_CMAKE_VERSION
 ARG ASWF_IMATH_VERSION
+ARG ASWF_MATERIALX_VERSION
 ARG ASWF_OPENEXR_VERSION
 ARG ASWF_OIIO_VERSION
 ARG ASWF_OCIO_VERSION
@@ -75,6 +76,7 @@ ARG ASWF_QT_VERSION
 ARG ASWF_PYSIDE_VERSION
 ARG ASWF_CMAKE_VERSION
 ARG ASWF_IMATH_VERSION
+ARG ASWF_MATERIALX_VERSION
 ARG ASWF_OPENEXR_VERSION
 ARG ASWF_OIIO_VERSION
 ARG ASWF_OCIO_VERSION
@@ -113,6 +115,7 @@ LABEL io.aswf.docker.versions.qt="$ASWF_QT_VERSION"
 LABEL io.aswf.docker.versions.pyside="$ASWF_PYSIDE_VERSION"
 LABEL io.aswf.docker.versions.cmake="$ASWF_CMAKE_VERSION"
 LABEL io.aswf.docker.versions.imath="$ASWF_IMATH_VERSION"
+LABEL io.aswf.docker.versions.materialx="$ASWF_MATERIALX_VERSION"
 LABEL io.aswf.docker.versions.openexr="$ASWF_OPENEXR_VERSION"
 LABEL io.aswf.docker.versions.oiio="$ASWF_OIIO_VERSION"
 LABEL io.aswf.docker.versions.ocio="$ASWF_OCIO_VERSION"
@@ -142,6 +145,7 @@ ENV ASWF_QT_VERSION=$ASWF_QT_VERSION
 ENV ASWF_PYSIDE_VERSION=$ASWF_PYSIDE_VERSION
 ENV ASWF_CMAKE_VERSION=$ASWF_CMAKE_VERSION
 ENV ASWF_IMATH_VERSION=$ASWF_IMATH_VERSION
+ENV ASWF_MATERIALX_VERSION=$ASWF_MATERIALX_VERSION
 ENV ASWF_OPENEXR_VERSION=$ASWF_OPENEXR_VERSION
 ENV ASWF_OIIO_VERSION=$ASWF_OIIO_VERSION
 ENV ASWF_OCIO_VERSION=$ASWF_OCIO_VERSION
@@ -202,6 +206,7 @@ COPY <<EOF /usr/local/conanfile.txt
 # pyside/${ASWF_PYSIDE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}
 # cmake/${ASWF_CMAKE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}
 # imath/${ASWF_IMATH_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}
+materialx/${ASWF_MATERIALX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}
 # openexr/${ASWF_OPENEXR_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}
 # oiio/${ASWF_OIIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}
 # ocio/${ASWF_OCIO_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}
diff --git a/ci-usd/README.md b/ci-usd/README.md
index 7a127f2b..b250c556 100644
--- a/ci-usd/README.md
+++ b/ci-usd/README.md
@@ -93,10 +93,10 @@ Contains:
 * hdf5-1.8.21
 * vfxplatform-2021
 
-## [aswf/ci-usd:2022.2](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2022.2)
+## [aswf/ci-usd:2022.3](https://hub.docker.com/r/aswf/ci-usd/tags?page=1&name=2022.3)
 
 Contains:
-* python-3.9.7
+* python-3.9.11
 * tbb-2020_U3
 * boost-1.76.0
 * glew-2.1.0
@@ -105,10 +105,11 @@ Contains:
 * qt-5.15.2
 * pyside-5.15.2
 * cmake-3.22.0
-* imath-3.1.3
-* openexr-3.1.3
-* oiio-2.3.9.1
-* ocio-2.1.0
+* imath-3.1.5
+* materialx-1.38.0
+* openexr-3.1.5
+* oiio-2.3.16.0
+* ocio-2.1.1
 * ptex-2.4.0
 * opensubdiv-3_4_4
 * alembic-1.8.2
diff --git a/ci-usd/image.yaml b/ci-usd/image.yaml
index 3bf17cbe..2c7f1b99 100644
--- a/ci-usd/image.yaml
+++ b/ci-usd/image.yaml
@@ -14,6 +14,7 @@ packages:
   - pyside
   - cmake
   - imath
+  - materialx
   - openexr
   - oiio
   - ocio
diff --git a/ci-vfxall/README.md b/ci-vfxall/README.md
index b72c2071..ab7f8731 100644
--- a/ci-vfxall/README.md
+++ b/ci-vfxall/README.md
@@ -197,10 +197,10 @@ Contains:
 * hdf5-1.8.21
 * vfxplatform-2021
 
-## [aswf/ci-vfxall:2022-clang10.9](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang10.9)
+## [aswf/ci-vfxall:2022-clang10.10](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang10.10)
 
 Contains:
-* python-3.9.7
+* python-3.9.11
 * tbb-2020_U3
 * boost-1.76.0
 * cppunit-1.15.1
@@ -210,27 +210,27 @@ Contains:
 * qt-5.15.2
 * pyside-5.15.2
 * cmake-3.22.0
-* imath-3.1.3
-* openexr-3.1.3
+* imath-3.1.5
+* openexr-3.1.5
 * blosc-1.5.0
 * alembic-1.8.2
-* oiio-2.3.9.1
-* ocio-2.1.0
+* oiio-2.3.16.0
+* ocio-2.1.1
 * opensubdiv-3_4_4
 * ptex-2.4.0
 * openvdb-9.0.0
-* usd-21.11
+* usd-22.05a
 * partio-1.14.0
-* osl-1.11.16.0
-* otio-0.14
+* osl-1.11.17.0
+* otio-0.14.1
 * numpy-1.20
 * hdf5-1.8.21
 * vfxplatform-2022
 
-## [aswf/ci-vfxall:2022-clang11.9](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang11.9)
+## [aswf/ci-vfxall:2022-clang11.10](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang11.10)
 
 Contains:
-* python-3.9.7
+* python-3.9.11
 * tbb-2020_U3
 * boost-1.76.0
 * cppunit-1.15.1
@@ -240,27 +240,27 @@ Contains:
 * qt-5.15.2
 * pyside-5.15.2
 * cmake-3.22.0
-* imath-3.1.3
-* openexr-3.1.3
+* imath-3.1.5
+* openexr-3.1.5
 * blosc-1.5.0
 * alembic-1.8.2
-* oiio-2.3.9.1
-* ocio-2.1.0
+* oiio-2.3.16.0
+* ocio-2.1.1
 * opensubdiv-3_4_4
 * ptex-2.4.0
 * openvdb-9.0.0
-* usd-21.11
+* usd-22.05a
 * partio-1.14.0
-* osl-1.11.16.0
-* otio-0.14
+* osl-1.11.17.0
+* otio-0.14.1
 * numpy-1.20
 * hdf5-1.8.21
 * vfxplatform-2022
 
-## [aswf/ci-vfxall:2022-clang12.0](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang12.0)
+## [aswf/ci-vfxall:2022-clang12.1](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang12.1)
 
 Contains:
-* python-3.9.7
+* python-3.9.11
 * tbb-2020_U3
 * boost-1.76.0
 * cppunit-1.15.1
@@ -270,27 +270,27 @@ Contains:
 * qt-5.15.2
 * pyside-5.15.2
 * cmake-3.22.0
-* imath-3.1.3
-* openexr-3.1.3
+* imath-3.1.5
+* openexr-3.1.5
 * blosc-1.5.0
 * alembic-1.8.2
-* oiio-2.3.9.1
-* ocio-2.1.0
+* oiio-2.3.16.0
+* ocio-2.1.1
 * opensubdiv-3_4_4
 * ptex-2.4.0
 * openvdb-9.0.0
-* usd-21.11
+* usd-22.05a
 * partio-1.14.0
-* osl-1.11.16.0
-* otio-0.14
+* osl-1.11.17.0
+* otio-0.14.1
 * numpy-1.20
 * hdf5-1.8.21
 * vfxplatform-2022
 
-## [aswf/ci-vfxall:2022-clang13.0](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang13.0)
+## [aswf/ci-vfxall:2022-clang13.1](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang13.1)
 
 Contains:
-* python-3.9.7
+* python-3.9.11
 * tbb-2020_U3
 * boost-1.76.0
 * cppunit-1.15.1
@@ -300,19 +300,49 @@ Contains:
 * qt-5.15.2
 * pyside-5.15.2
 * cmake-3.22.0
-* imath-3.1.3
-* openexr-3.1.3
+* imath-3.1.5
+* openexr-3.1.5
 * blosc-1.5.0
 * alembic-1.8.2
-* oiio-2.3.9.1
-* ocio-2.1.0
+* oiio-2.3.16.0
+* ocio-2.1.1
 * opensubdiv-3_4_4
 * ptex-2.4.0
 * openvdb-9.0.0
-* usd-21.11
+* usd-22.05a
 * partio-1.14.0
-* osl-1.11.16.0
-* otio-0.14
+* osl-1.11.17.0
+* otio-0.14.1
+* numpy-1.20
+* hdf5-1.8.21
+* vfxplatform-2022
+
+## [aswf/ci-vfxall:2022-clang14.0](https://hub.docker.com/r/aswf/ci-vfxall/tags?page=1&name=2022-clang14.0)
+
+Contains:
+* python-3.9.11
+* tbb-2020_U3
+* boost-1.76.0
+* cppunit-1.15.1
+* log4cplus-1.1.2
+* glew-2.1.0
+* glfw-3.1.2
+* qt-5.15.2
+* pyside-5.15.2
+* cmake-3.22.0
+* imath-3.1.5
+* openexr-3.1.5
+* blosc-1.5.0
+* alembic-1.8.2
+* oiio-2.3.16.0
+* ocio-2.1.1
+* opensubdiv-3_4_4
+* ptex-2.4.0
+* openvdb-9.0.0
+* usd-22.05a
+* partio-1.14.0
+* osl-1.11.17.0
+* otio-0.14.1
 * numpy-1.20
 * hdf5-1.8.21
 * vfxplatform-2022
diff --git a/packages/conan/data/.empty b/packages/conan/data/.empty
new file mode 100644
index 00000000..e69de29b
diff --git a/packages/conan/recipes/materialx/conanfile.py b/packages/conan/recipes/materialx/conanfile.py
new file mode 100644
index 00000000..ebaf82ba
--- /dev/null
+++ b/packages/conan/recipes/materialx/conanfile.py
@@ -0,0 +1,64 @@
+from conans import ConanFile, tools, CMake
+import os
+
+required_conan_version = ">=1.38.0"
+
+
+class MaterialXConan(ConanFile):
+    name = "materialx"
+    description = "MaterialX is an open standard for the exchange of rich material and look-development content across applications and renderers."
+    topics = "conan", "materialx", "python", "vfx"
+    homepage = "https://github.com/AcademySoftwareFoundation/MaterialX"
+    license = "BSD-3-Clause"
+    url = "https://github.com/AcademySoftwareFoundation/aswf-docker"
+    settings = (
+        "os",
+        "arch",
+        "compiler",
+        "build_type",
+        "python",
+    )
+    generators = "cmake_find_package_multi"
+
+    _cmake = None
+    _source_subfolder = "source_subfolder"
+
+    def requirements(self):
+        self.requires(f"python/(latest)@{self.user}/{self.channel}")
+        self.requires(f"pybind11/(latest)@{self.user}/{self.channel}")
+
+    def build_requirements(self):
+        self.build_requires(f"cmake/(latest)@{self.user}/{self.channel}")
+
+    def source(self):
+        tools.get(
+            f"https://github.com/AcademySoftwareFoundation/MaterialX/archive/v{self.version}.tar.gz"
+        )
+        os.rename(f"MaterialX-{self.version}", self._source_subfolder)
+
+    def _configure_cmake(self):
+        if self._cmake:
+            return self._cmake
+
+        with tools.environment_append(tools.RunEnvironment(self).vars):
+            self._cmake = CMake(self)
+            self._cmake.definitions["MATERIALX_BUILD_PYTHON"] = "ON"
+            self._cmake.configure(source_folder=self._source_subfolder)
+            return self._cmake
+
+    def build(self):
+        cmake = self._configure_cmake()
+        cmake.build()
+
+    def package(self):
+        self.copy("LICENSE.md", src=self._source_subfolder, dst="licenses")
+        cmake = self._configure_cmake()
+        cmake.install()
+
+    def package_info(self):
+        self.cpp_info.requires.append("python::PythonLibs")
+        self.cpp_info.requires.append("pybind11::main")
+        self.env_info.PYTHONPATH.append(os.path.join(self.package_folder, "python"))
+        self.env_info.CMAKE_PREFIX_PATH.append(
+            os.path.join(self.package_folder, "lib", "cmake")
+        )
diff --git a/packages/conan/recipes/ninja/conandata.yml b/packages/conan/recipes/ninja/conandata.yml
index 82019152..034b47a5 100644
--- a/packages/conan/recipes/ninja/conandata.yml
+++ b/packages/conan/recipes/ninja/conandata.yml
@@ -8,6 +8,9 @@ sources:
   "1.10.2":
     url: "https://github.com/ninja-build/ninja/archive/v1.10.2.tar.gz"
     sha256: "ce35865411f0490368a8fc383f29071de6690cbadc27704734978221f25e2bed"
+  "1.11.0":
+    url: "https://github.com/ninja-build/ninja/archive/v1.11.0.tar.gz"
+    sha256: "3c6ba2e66400fe3f1ae83deb4b235faf3137ec20bd5b08c29bfc368db143e4c6"
 patches:
   "1.10.0":
    - base_path: source_subfolder
diff --git a/packages/conan/recipes/python/conanfile.py b/packages/conan/recipes/python/conanfile.py
index 3c770e67..1b1382ba 100644
--- a/packages/conan/recipes/python/conanfile.py
+++ b/packages/conan/recipes/python/conanfile.py
@@ -1,5 +1,6 @@
 from conans import AutoToolsBuildEnvironment, ConanFile, tools
 from contextlib import contextmanager
+from conan.tools.files.symlinks import absolute_to_relative_symlinks
 import os
 
 
@@ -119,6 +120,9 @@ def package(self):
             )
 
         py_exe = os.path.join(self.package_folder, "bin", f"python{self.major_minor}")
+        py_exe_nover = os.path.join(self.package_folder, "bin", f"python")
+        self.run(f"ln -s {py_exe} {py_exe_nover}")
+
         with tools.environment_append(
             {
                 "PATH": os.path.join(self.package_folder, "bin"),
@@ -126,12 +130,23 @@ def package(self):
             }
         ):
             self.run(f"{py_exe} get-pip.py")
+
+            # Replace first line of pip to fix the hardcoded shebang line
+            pip_exe = os.path.join(os.path.join(self.package_folder, "bin"), "pip")
+            with open(pip_exe) as f:
+                lines = f.readlines()
+            lines[0] = "#!/usr/bin/env python3\n"
+            with open(pip_exe, "w") as f:
+                f.writelines(lines)
+
             self.run(f"{py_exe} -m pip install nose coverage docutils epydoc")
             if self.options.get_safe("with_numpy"):
                 self.run(
                     f"{py_exe} -m pip install numpy=={os.environ['ASWF_NUMPY_VERSION']}"
                 )
 
+        absolute_to_relative_symlinks(self, self.package_folder)
+
     def package_info(self):
         self.cpp_info.filenames["pkg_config"] = "python"
         self.user_info.python_interp = f"python{self.major_minor}"
diff --git a/packages/conan/recipes/python/run-with-system-python b/packages/conan/recipes/python/run-with-system-python
index ad3f7050..be74986a 100755
--- a/packages/conan/recipes/python/run-with-system-python
+++ b/packages/conan/recipes/python/run-with-system-python
@@ -6,4 +6,4 @@ unset LIBRARY_PATH
 unset PKG_CONFIG_PATH
 export LD_LIBRARY_PATH=/opt/rh/devtoolset-${ASWF_DTS_VERSION}/root/usr/lib64:/opt/rh/devtoolset-${ASWF_DTS_VERSION}/root/usr/lib
 export PATH=/opt/rh/devtoolset-${ASWF_DTS_VERSION}/root/usr/bin:/opt/app-root/src/bin:/opt/rh/devtoolset-${ASWF_DTS_VERSION}/root/usr/bin/:/usr/sbin:/usr/bin:/sbin:/bin
-exec "\$@"
+exec "$@"
diff --git a/packages/conan/recipes/python/yum b/packages/conan/recipes/python/yum
index 772db91f..a084340d 100755
--- a/packages/conan/recipes/python/yum
+++ b/packages/conan/recipes/python/yum
@@ -1,3 +1,3 @@
 #!/bin/sh
 # This runs yum with system python
-exec "${ASWF_INSTALL_PREFIX}/bin/run-with-system-python" /usr/bin/yum "\$@"
+exec "${ASWF_INSTALL_PREFIX}/bin/run-with-system-python" /usr/bin/yum "$@"
diff --git a/packages/conan/settings/conan.conf b/packages/conan/settings/conan.conf
index fd20fd00..5ce8e3ed 100644
--- a/packages/conan/settings/conan.conf
+++ b/packages/conan/settings/conan.conf
@@ -6,7 +6,7 @@ print_run_commands = False  # environment CONAN_PRINT_RUN_COMMANDS
 
 [general]
 revisions_enabled = 1
-default_profile = vfx2019
+default_profile = vfx2022
 compression_level = 9                 # environment CONAN_COMPRESSION_LEVEL
 sysrequires_sudo = True               # environment CONAN_SYSREQUIRES_SUDO
 request_timeout = 60                  # environment CONAN_REQUEST_TIMEOUT (seconds)
diff --git a/packages/conan/settings/settings.yml b/packages/conan/settings/settings.yml
index 1c1fa3ab..ef92e6ba 100644
--- a/packages/conan/settings/settings.yml
+++ b/packages/conan/settings/settings.yml
@@ -1,6 +1,6 @@
 
 # Only for cross building, 'os_build/arch_build' is the system that runs Conan
-os_build: [Windows, WindowsStore, Linux, Macos, FreeBSD, SunOS, AIX]
+os_build: [Windows, WindowsStore, Linux, Macos, FreeBSD, SunOS, AIX, VxWorks]
 arch_build: [x86, x86_64, ppc32be, ppc32, ppc64le, ppc64, armv5el, armv5hf, armv6, armv7, armv7hf, armv7s, armv7k, armv8, armv8_32, armv8.3, sparc, sparcv9, mips, mips64, avr, s390, s390x, sh4le, e2k-v2, e2k-v3, e2k-v4, e2k-v5, e2k-v6, e2k-v7]
 
 # Only for building cross compilation tools, 'os_target/arch_target' is the system for
@@ -21,27 +21,40 @@ os:
         version: ["5.0", "6.0", "7.0", "8.0"]
     Linux:
         version: [None, rhel7, rhel8]
-    Macos:
-        version: [None, "10.6", "10.7", "10.8", "10.9", "10.10", "10.11", "10.12", "10.13", "10.14", "10.15", "11.0", "12.0", "13.0"]
-        sdk: [None, "macosx"]
-        subsystem: [None, catalyst]
-    Android:
-        api_level: ANY
     iOS:
-        version: ["7.0", "7.1", "8.0", "8.1", "8.2", "8.3", "9.0", "9.1", "9.2", "9.3", "10.0", "10.1", "10.2", "10.3",
+        version: &ios_version
+                 ["7.0", "7.1", "8.0", "8.1", "8.2", "8.3", "9.0", "9.1", "9.2", "9.3", "10.0", "10.1", "10.2", "10.3",
                   "11.0", "11.1", "11.2", "11.3", "11.4", "12.0", "12.1", "12.2", "12.3", "12.4",
                   "13.0", "13.1", "13.2", "13.3", "13.4", "13.5", "13.6", "13.7",
-                  "14.0", "14.1", "14.2", "14.3", "14.4", "14.5", "14.6", "14.7", "14.8", "15.0", "15.1"]
+                  "14.0", "14.1", "14.2", "14.3", "14.4", "14.5", "14.6", "14.7", "14.8",
+                  "15.0", "15.1", "15.2", "15.3", "15.4"]
         sdk: [None, "iphoneos", "iphonesimulator"]
+        sdk_version: [None, "11.3", "11.4", "12.0", "12.1", "12.2", "12.4",
+                      "13.0", "13.1", "13.2", "13.4", "13.5", "13.6", "13.7",
+                      "14.0", "14.1", "14.2", "14.3", "14.4", "14.5", "15.0", "15.2", "15.4"]
     watchOS:
         version: ["4.0", "4.1", "4.2", "4.3", "5.0", "5.1", "5.2", "5.3", "6.0", "6.1", "6.2",
-                  "7.0", "7.1", "7.2", "7.3", "7.4", "7.5", "7.6", "8.0", "8.1"]
+                  "7.0", "7.1", "7.2", "7.3", "7.4", "7.5", "7.6", "8.0", "8.1", "8.3", "8.4", "8.5"]
         sdk: [None, "watchos", "watchsimulator"]
+        sdk_version: [None, "4.3", "5.0", "5.1", "5.2", "5.3", "6.0", "6.1", "6.2",
+                      "7.0", "7.1", "7.2", "7.4", "8.0", "8.0.1", "8.3", "8.5"]
     tvOS:
         version: ["11.0", "11.1", "11.2", "11.3", "11.4", "12.0", "12.1", "12.2", "12.3", "12.4",
                   "13.0", "13.2", "13.3", "13.4", "14.0", "14.2", "14.3", "14.4", "14.5", "14.6", "14.7",
-                  "15.0", "15.1"]
+                  "15.0", "15.1", "15.2", "15.3", "15.4"]
         sdk: [None, "appletvos", "appletvsimulator"]
+        sdk_version: [None, "11.3", "11.4", "12.0", "12.1", "12.2", "12.4",
+                      "13.0", "13.1", "13.2", "13.4", "14.0", "14.2", "14.3", "14.5", "15.0", "15.2", "15.4"]
+    Macos:
+        version: [None, "10.6", "10.7", "10.8", "10.9", "10.10", "10.11", "10.12", "10.13", "10.14", "10.15", "11.0", "12.0", "13.0"]
+        sdk: [None, "macosx"]
+        sdk_version: [None, "10.13", "10.14", "10.15", "11.0", "11.1", "11.3", "12.0", "12.1", "12.3"]
+        subsystem:
+            None:
+            catalyst:
+                ios_version: *ios_version
+    Android:
+        api_level: ANY
     FreeBSD:
     SunOS:
     AIX:
@@ -50,6 +63,9 @@ os:
     Emscripten:
     Neutrino:
         version: ["6.4", "6.5", "6.6", "7.0", "7.1"]
+    baremetal:
+    VxWorks:
+        version: ["7"]
 arch: [x86, x86_64, ppc32be, ppc32, ppc64le, ppc64, armv4, armv4i, armv5el, armv5hf, armv6, armv7, armv7hf, armv7s, armv7k, armv8, armv8_32, armv8.3, sparc, sparcv9, mips, mips64, avr, s390, s390x, asm.js, wasm, sh4le, e2k-v2, e2k-v3, e2k-v4, e2k-v5, e2k-v6, e2k-v7, xtensalx6, xtensalx106]
 compiler:
     sun-cc:
@@ -64,10 +80,11 @@ compiler:
                   "8", "8.1", "8.2", "8.3", "8.4",
                   "9", "9.1", "9.2", "9.3",
                   "10", "10.1", "10.2", "10.3",
-                  "11", "11.1"]
+                  "11", "11.1", "11.2",
+                  "12"]
         libcxx: [libstdc++, libstdc++11]
-        threads: [None, posix, win32] #  Windows MinGW
-        exception: [None, dwarf2, sjlj, seh] # Windows MinGW
+        threads: [None, posix, win32]  # Windows MinGW
+        exception: [None, dwarf2, sjlj, seh]  # Windows MinGW
         cppstd: [None, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20, 23, gnu23]
     Visual Studio: &visual_studio
         runtime: [MD, MT, MTd, MDd]
@@ -77,24 +94,24 @@ compiler:
                   LLVM-vs2013, LLVM-vs2013_xp, LLVM-vs2014, LLVM-vs2014_xp,
                   LLVM-vs2017, LLVM-vs2017_xp, v141, v141_xp, v141_clang_c2, v142,
                   llvm, ClangCL, v143]
-        cppstd: [None, 14, 17, 20]
+        cppstd: [None, 14, 17, 20, 23]
     msvc:
-        version: ["19.0",
-                  "19.1", "19.10", "19.11", "19.12", "19.13", "19.14", "19.15", "19.16",
-                  "19.2", "19.20", "19.21", "19.22", "19.23", "19.24", "19.25", "19.26", "19.27", "19.28", "19.29",
-                  "19.3", "19.30"]
+        version: [170, 180, 190, 191, 192, 193]
+        update: [None, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
         runtime: [static, dynamic]
         runtime_type: [Debug, Release]
-        cppstd: [14, 17, 20, 23]
+        cppstd: [98, 14, 17, 20, 23]
+        toolset: [None, v110_xp, v120_xp, v140_xp, v141_xp]
     clang:
         version: ["3.3", "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "4.0",
                   "5.0", "6.0", "7.0", "7.1",
-                  "8", "9", "10", "11", "12", "13"]
+                  "8", "9", "10", "11", "12", "13", "14", "15"]
         libcxx: [None, libstdc++, libstdc++11, libc++, c++_shared, c++_static]
         cppstd: [None, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20, 23, gnu23]
-        runtime: [None, MD, MT, MTd, MDd]
+        runtime: [None, MD, MT, MTd, MDd, static, dynamic]
+        runtime_type: [None, Debug, Release]
     apple-clang: &apple_clang
-        version: ["5.0", "5.1", "6.0", "6.1", "7.0", "7.3", "8.0", "8.1", "9.0", "9.1", "10.0", "11.0", "12.0", "13.0"]
+        version: ["5.0", "5.1", "6.0", "6.1", "7.0", "7.3", "8.0", "8.1", "9.0", "9.1", "10.0", "11.0", "12.0", "13", "13.0", "13.1"]
         libcxx: [libstdc++, libc++]
         cppstd: [None, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20]
     intel:
@@ -131,8 +148,8 @@ compiler:
 
 build_type: [None, Debug, Release, RelWithDebInfo, MinSizeRel]
 
-# ASWF-specific settings
-python: [None, "2.7", "3.7", "3.9"]
-
 
 cppstd: [None, 98, gnu98, 11, gnu11, 14, gnu14, 17, gnu17, 20, gnu20, 23, gnu23]  # Deprecated, use compiler.cppstd
+
+# ASWF-specific settings
+python: [None, "2.7", "3.7", "3.9"]
diff --git a/packages/conan/settings/version.txt b/packages/conan/settings/version.txt
index 1933dfa1..245744f3 100644
--- a/packages/conan/settings/version.txt
+++ b/packages/conan/settings/version.txt
@@ -1,1 +1,1 @@
-1.42.0
\ No newline at end of file
+1.47.0
\ No newline at end of file
diff --git a/packages/vfx2/Dockerfile b/packages/vfx2/Dockerfile
index 9f4132a3..1b1e420a 100644
--- a/packages/vfx2/Dockerfile
+++ b/packages/vfx2/Dockerfile
@@ -1,4 +1,4 @@
-# syntax = docker/dockerfile:experimental
+# syntax = docker/dockerfile:1.3-labs
 # Copyright (c) Contributors to the aswf-docker Project. All rights reserved.
 # SPDX-License-Identifier: Apache-2.0
 
@@ -14,6 +14,7 @@ ARG ASWF_CPPUNIT_VERSION
 ARG ASWF_GLEW_VERSION
 ARG ASWF_GLFW_VERSION
 ARG ASWF_PYBIND11_VERSION
+ARG ASWF_NUMPY_VERSION
 ARG ASWF_PYTHON_VERSION
 ARG ASWF_PYTHON_MAJOR_MINOR_VERSION
 ARG ASWF_TBB_VERSION
@@ -58,9 +59,40 @@ FROM ${ASWF_ORG}/ci-package-ocio:${ASWF_VFXPLATFORM_VERSION}-${ASWF_OCIO_VERSION
 #################### ci-base-builder ####################
 FROM ${ASWF_ORG}/ci-common:${CI_COMMON_VERSION}-clang${ASWF_CLANG_MAJOR_VERSION} as ci-base-builder
 
-COPY --from=ci-package-cmake-external /. /usr/local/
-COPY --from=ci-package-python-external /. /usr/local/
-COPY --from=ci-package-boost-external /. /usr/local/
+ARG ASWF_CMAKE_VERSION
+ARG ASWF_PYTHON_VERSION
+ARG ASWF_NUMPY_VERSION
+ARG ASWF_BOOST_VERSION
+ARG ASWF_PKG_ORG
+ARG ASWF_CONAN_CHANNEL
+
+ENV ASWF_CMAKE_VERSION=${ASWF_CMAKE_VERSION}
+ENV ASWF_PYTHON_VERSION=${ASWF_PYTHON_VERSION}
+ENV ASWF_NUMPY_VERSION=${ASWF_NUMPY_VERSION}
+ENV ASWF_BOOST_VERSION=${ASWF_BOOST_VERSION}
+
+# Copy local conan packages if any
+COPY packages/conan/data/ /opt/conan_home/d/
+COPY packages/conan/settings/ /opt/conan_home/.conan/
+
+# Use conan to install MaterialX
+COPY <<EOF /usr/local/conanfile.txt
+[generators]
+[imports]
+., * -> .
+[requires]
+cmake/${ASWF_CMAKE_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}
+python/${ASWF_PYTHON_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}
+boost/${ASWF_BOOST_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}
+EOF
+
+RUN <<EOF
+cd /usr/local/
+cat /usr/local/conanfile.txt
+conan install .
+# Replace first line of pip to fix the hardcoded shebang line
+sed -i "1s/.*/\#\!\/usr\/bin\/env python3/" /usr/local/bin/pip
+EOF
 
 COPY ../scripts/common/before_build.sh \
      ../scripts/common/copy_new_files.sh \
@@ -259,8 +291,14 @@ COPY --from=ci-opensubdiv-builder /package/. /
 #################### ci-usd-builder ####################
 FROM ci-opensubdiv-builder as ci-usd-builder
 
+ARG ASWF_MATERIALX_VERSION
+ARG ASWF_PKG_ORG
+ARG ASWF_CONAN_CHANNEL
 ARG ASWF_USD_VERSION
+ARG ASWF_NUMPY_VERSION
+
 ENV ASWF_USD_VERSION=${ASWF_USD_VERSION}
+ENV ASWF_NUMPY_VERSION=${ASWF_NUMPY_VERSION}
 
 COPY --from=ci-package-imath-external /. /usr/local/
 COPY --from=ci-package-openexr-external /. /usr/local/
@@ -275,6 +313,20 @@ COPY --from=ci-package-pyside-external /. /usr/local/
 COPY ../scripts/vfx/build_usd.sh \
      /tmp/
 
+# Use conan to install MaterialX
+COPY <<EOF /usr/local/conanfile.txt
+[generators]
+[imports]
+., * -> .
+[requires]
+materialx/${ASWF_MATERIALX_VERSION}@${ASWF_PKG_ORG}/${ASWF_CONAN_CHANNEL}
+EOF
+
+RUN <<EOF
+cd /usr/local/
+conan install .
+EOF
+
 RUN --mount=type=cache,target=/tmp/ccache \
      --mount=type=cache,sharing=private,target=/tmp/downloads \
      /tmp/before_build.sh && \
diff --git a/python/aswfdocker/data/ci-image-readme.jinja2 b/python/aswfdocker/data/ci-image-readme.jinja2
index 66ee31fd..9b893587 100644
--- a/python/aswfdocker/data/ci-image-readme.jinja2
+++ b/python/aswfdocker/data/ci-image-readme.jinja2
@@ -22,6 +22,8 @@ for further information, and participate in the discussion on the
 
 Contains:
 {% for package in packages + implicit_packages -%}
+{% if ("ASWF_" + package.upper() + "_VERSION") in index.version_info(version.split(".")[0]).all_package_versions -%}
 * {{package}}-{{ index.version_info(version.split(".")[0]).all_package_versions["ASWF_" + package.upper() + "_VERSION"] }}
+{% endif -%}
 {% endfor %}
 {% endfor %}
diff --git a/python/aswfdocker/data/versions.yaml b/python/aswfdocker/data/versions.yaml
index f97d0526..7aafa4ec 100644
--- a/python/aswfdocker/data/versions.yaml
+++ b/python/aswfdocker/data/versions.yaml
@@ -12,8 +12,8 @@ versions:
       ASWF_DTS_VERSION: "6"
       ASWF_CUDA_VERSION: "10.2"
       ASWF_CCACHE_VERSION: "4.0"
-      ASWF_CONAN_VERSION: "1.42.0"
-      ASWF_CONAN_PYTHON_VERSION: "3.9.5"
+      ASWF_CONAN_VERSION: "1.47.0"
+      ASWF_CONAN_PYTHON_VERSION: "3.9.11"
       ASWF_NINJA_VERSION: "1.10.1"
       ASWF_SONAR_VERSION: "4.6.2.2472"
   "1-clang6":
@@ -60,12 +60,12 @@ versions:
     conan_profile: "ci_common2"
     package_versions:
       ASWF_DTS_VERSION: "9"
-      ASWF_CONAN_VERSION: "1.42.0"
-      ASWF_CONAN_PYTHON_VERSION: "3.9.5"
-      ASWF_CUDA_VERSION: "11.1"
+      ASWF_CONAN_VERSION: "1.47.0"
+      ASWF_CONAN_PYTHON_VERSION: "3.9.11"
+      ASWF_CUDA_VERSION: "11.4.0"
       ASWF_CCACHE_VERSION: "4.0"
-      ASWF_NINJA_VERSION: "1.10.1"
-      ASWF_SONAR_VERSION: "4.6.2.2472"
+      ASWF_NINJA_VERSION: "1.11.0"
+      ASWF_SONAR_VERSION: "4.7.0.2747"
   "2-clang10":
     parent_versions: ["2"]
     major_version: "2"
@@ -95,7 +95,14 @@ versions:
     ci_common_version: "2"
     package_versions:
       ASWF_CLANG_MAJOR_VERSION: "13"
-      ASWF_CLANG_VERSION: "13.0.0"
+      ASWF_CLANG_VERSION: "13.0.1"
+  "2-clang14":
+    parent_versions: ["2"]
+    major_version: "2"
+    ci_common_version: "2"
+    package_versions:
+      ASWF_CLANG_MAJOR_VERSION: "14"
+      ASWF_CLANG_VERSION: "14.0.0"
   "2019":
     parent_versions: ["1", "1-clang7"]
     major_version: "2019"
@@ -260,26 +267,27 @@ versions:
       ASWF_GLFW_VERSION: "3.1.2"
       ASWF_GTEST_VERSION: "1.11.0"
       ASWF_HDF5_VERSION: "1.8.21"
-      ASWF_IMATH_VERSION: "3.1.3"
+      ASWF_IMATH_VERSION: "3.1.5"
       ASWF_LOG4CPLUS_VERSION: "1.1.2"
+      ASWF_MATERIALX_VERSION: "1.38.0"
       ASWF_NUMPY_VERSION: "1.20"
       ASWF_OCIO_CONFIGS_VERSION: "1.0_r2"
-      ASWF_OCIO_VERSION: "2.1.0"
-      ASWF_OIIO_VERSION: "2.3.9.1"
-      ASWF_OPENEXR_VERSION: "3.1.3"
+      ASWF_OCIO_VERSION: "2.1.1"
+      ASWF_OIIO_VERSION: "2.3.16.0"
+      ASWF_OPENEXR_VERSION: "3.1.5"
       ASWF_OPENSUBDIV_VERSION: "3_4_4"
       ASWF_OPENVDB_VERSION: "9.0.0"
-      ASWF_OSL_VERSION: "1.11.16.0"
-      ASWF_OTIO_VERSION: "0.14"
+      ASWF_OSL_VERSION: "1.11.17.0"
+      ASWF_OTIO_VERSION: "0.14.1"
       ASWF_PARTIO_VERSION: "1.14.0"
       ASWF_PTEX_VERSION: "2.4.0"
       ASWF_PYBIND11_VERSION: "2.8.1"
       ASWF_PYSIDE_VERSION: "5.15.2"
-      ASWF_PYTHON_VERSION: "3.9.7"
+      ASWF_PYTHON_VERSION: "3.9.11"
       ASWF_PYTHON_MAJOR_MINOR_VERSION: "3.9"
       ASWF_QT_VERSION: "5.15.2"
       ASWF_TBB_VERSION: "2020_U3"
-      ASWF_USD_VERSION: "21.11"
+      ASWF_USD_VERSION: "22.05a"
       ASWF_VFXPLATFORM_VERSION: "2022"
   "2022-clang10":
     parent_versions: ["2", "2-clang10", "2022"]
@@ -298,6 +306,10 @@ versions:
     parent_versions: ["2", "2-clang13", "2022"]
     major_version: "2022"
     ci_common_version: "2"
+  "2022-clang14":
+    parent_versions: ["2", "2-clang14", "2022"]
+    major_version: "2022"
+    ci_common_version: "2"
 
 ci-packages:
   clang:
@@ -306,13 +318,14 @@ ci-packages:
     - "1-clang8.2"
     - "1-clang9.2"
     - "1-clang10.2"
-    - "2-clang10.2"
-    - "2-clang11.3"
-    - "2-clang12.0"
-    - "2-clang13.0"
+    - "2-clang10.3"
+    - "2-clang11.4"
+    - "2-clang12.1"
+    - "2-clang13.1"
+    - "2-clang14.0"
   ninja:
     - "1.3"
-    - "2.1"
+    - "2.2"
   cmake:
     - "2019.0"
     - "2020.0"
@@ -322,47 +335,47 @@ ci-packages:
     - "2019.2"
     - "2020.2"
     - "2021.2"
-    - "2022.1"
+    - "2022.2"
   pybind11:
     - "2019.0"
     - "2020.0"
     - "2021.0"
-    - "2022.2"
+    - "2022.3"
   boost:
     - "2019.2"
     - "2020.2"
     - "2021.2"
-    - "2022.1"
+    - "2022.2"
   tbb:
     - "2019.2"
     - "2020.2"
     - "2021.2"
-    - "2022.0"
+    - "2022.1"
   cppunit:
     - "2019.2"
     - "2020.2"
     - "2021.1"
-    - "2022.0"
+    - "2022.1"
   glew:
     - "2019.2"
     - "2020.2"
     - "2021.2"
-    - "2022.0"
+    - "2022.1"
   glfw:
     - "2019.2"
     - "2020.2"
     - "2021.2"
-    - "2022.0"
+    - "2022.1"
   log4cplus:
     - "2019.2"
     - "2020.2"
     - "2021.1"
-    - "2022.0"
+    - "2022.1"
   gtest:
     - "2019.0"
     - "2020.0"
     - "2021.0"
-    - "2022.0"
+    - "2022.1"
   qt:
     - "2019.2"
     - "2020.2"
@@ -377,67 +390,72 @@ ci-packages:
     - "2019.2"
     - "2020.2"
     - "2021.1"
-    - "2022.0"
+    - "2022.1"
   imath:
     - "2019.0"
     - "2020.0"
     - "2021.0"
-    - "2022.1"
+    - "2022.2"
   openexr:
     - "2019.2"
     - "2020.2"
     - "2021.3"
-    - "2022.2"
+    - "2022.3"
   alembic:
     - "2019.2"
     - "2020.2"
     - "2021.2"
-    - "2022.1"
+    - "2022.2"
   ocio:
     - "2019.2"
     - "2020.2"
     - "2021.4"
-    - "2022.1"
+    - "2022.2"
   oiio:
     - "2019.2"
     - "2020.2"
     - "2021.4"
-    - "2022.2"
+    - "2022.3"
   opensubdiv:
     - "2019.2"
     - "2020.2"
     - "2021.2"
-    - "2022.1"
+    - "2022.2"
   ptex:
     - "2019.2"
     - "2020.2"
     - "2021.1"
-    - "2022.1"
+    - "2022.2"
   openvdb:
     - "2019.2"
     - "2020.2"
     - "2021.3"
-    - "2022.2"
+    - "2022.3"
   usd:
     - "2019.3"
     - "2020.2"
     - "2021.5"
-    - "2022.2"
+    - "2022.3"
   partio:
     - "2019.1"
     - "2020.1"
     - "2021.2"
-    - "2022.1"
+    - "2022.2"
   osl:
     - "2019.1"
     - "2020.1"
     - "2021.3"
-    - "2022.2"
+    - "2022.3"
   otio:
     - "2019.1"
     - "2020.1"
     - "2021.3"
-    - "2022.2"
+    - "2022.3"
+  materialx:
+    - "2019.0"
+    - "2020.0"
+    - "2021.0"
+    - "2022.0"
 
 ci-images:
   common:
@@ -446,45 +464,48 @@ ci-images:
     - "1-clang8.8"
     - "1-clang9.8"
     - "1-clang10.8"
-    - "2-clang10.4"
-    - "2-clang11.5"
-    - "2-clang12.0"
-    - "2-clang13.0"
+    - "2-clang10.5"
+    - "2-clang11.6"
+    - "2-clang12.1"
+    - "2-clang13.1"
+    - "2-clang14.0"
   base:
     - "2019.9"
     - "2020.9"
     - "2021.6"
-    - "2022.2"
+    - "2022.3"
   baseqt:
     - "2019.2"
     - "2020.2"
     - "2021.3"
-    - "2022.2"
+    - "2022.3"
   openexr:
     - "2019.8"
     - "2020.8"
     - "2021.5"
-    - "2022.1"
+    - "2022.2"
   ocio:
     - "2019.9"
     - "2020.8"
     - "2021.6"
-    - "2022.2"
+    - "2022.3"
   opencue:
     - "2019.10"
     - "2020.10"
     - "2021.7"
-    - "2022.1"
+    - "2022.2"
   usd:
     - "2019.9"
     - "2020.8"
     - "2021.6"
-    - "2022.2"
+    - "2022.3"
   otio:
     - "2019.3"
     - "2020.3"
     - "2021.5"
-    - "2022.1"
+    - "2022.2"
+  materialx:
+    - "2022.0"
   osl:
     - "2019-clang6.5"
     - "2019-clang7.5"
@@ -494,10 +515,11 @@ ci-images:
     - "2020-clang7.5"
     - "2021-clang10.7"
     - "2021-clang11.7"
-    - "2022-clang10.9"
-    - "2022-clang11.9"
-    - "2022-clang12.0"
-    - "2022-clang13.0"
+    - "2022-clang10.10"
+    - "2022-clang11.10"
+    - "2022-clang12.1"
+    - "2022-clang13.1"
+    - "2022-clang14.0"
   openvdb:
     - "2019-clang6.8"
     - "2019-clang7.8"
@@ -505,10 +527,11 @@ ci-images:
     - "2019-clang9.8"
     - "2020-clang7.8"
     - "2021-clang10.6"
-    - "2022-clang10.9"
-    - "2022-clang11.9"
-    - "2022-clang12.0"
-    - "2022-clang13.0"
+    - "2022-clang10.10"
+    - "2022-clang11.10"
+    - "2022-clang12.1"
+    - "2022-clang13.1"
+    - "2022-clang14.0"
   vfxall:
     - "2019-clang6.12"
     - "2019-clang7.12"
@@ -516,10 +539,11 @@ ci-images:
     - "2019-clang9.12"
     - "2020-clang7.10"
     - "2021-clang10.7"
-    - "2022-clang10.9"
-    - "2022-clang11.9"
-    - "2022-clang12.0"
-    - "2022-clang13.0"
+    - "2022-clang10.10"
+    - "2022-clang11.10"
+    - "2022-clang12.1"
+    - "2022-clang13.1"
+    - "2022-clang14.0"
 
 groups:
   package:
@@ -555,6 +579,7 @@ groups:
         - otio
         - partio
         - ptex
+        - materialx
         - usd
   image:
       common:
@@ -568,6 +593,7 @@ groups:
       vfx2:
         - ocio
         - otio
+        - materialx
         - usd
       vfx3:
         - osl
@@ -586,3 +612,4 @@ package_data:
 
 conan_only:
   - gtest
+  - materialx
diff --git a/scripts/common/build_clang.sh b/scripts/common/build_clang.sh
index 19495f26..27044ca1 100755
--- a/scripts/common/build_clang.sh
+++ b/scripts/common/build_clang.sh
@@ -14,14 +14,14 @@ cd "llvm-project-llvmorg-${ASWF_CLANG_VERSION}/llvm"
 mkdir build
 cd build
 
-if [[ $ASWF_CLANG_VERSION == 12.* || $ASWF_CLANG_VERSION == 13.* ]]; then
+if [[ $ASWF_CLANG_VERSION != 7.* && $ASWF_CLANG_VERSION != 8.* && $ASWF_CLANG_VERSION != 9.* && $ASWF_CLANG_VERSION != 10.* && $ASWF_CLANG_VERSION != 11.* ]]; then
     # Recent llvm requires python3 to build
     export PATH=/tmp/pytmp/bin:$PATH
     export LD_LIBRARY_PATH=/tmp/pytmp/lib:$LD_LIBRARY_PATH
-    ASWF_INSTALL_PREFIX=/tmp/pytmp ASWF_PYTHON_VERSION=3.9.7 ASWF_NUMPY_VERSION=1.20 /tmp/build_python.sh
+    ASWF_INSTALL_PREFIX=/tmp/pytmp ASWF_PYTHON_VERSION=3.9.11 ASWF_NUMPY_VERSION=1.20 /tmp/build_python.sh
 fi
 
-if [[ $ASWF_CLANG_VERSION == 13.* ]]; then
+if [[ $ASWF_CLANG_VERSION == 13.* || $ASWF_CLANG_VERSION == 14.* ]]; then
 llvm_projects="clang;clang-tools-extra;compiler-rt;lld"
 else
 llvm_projects="clang;clang-tools-extra;libcxx;libcxxabi;compiler-rt;lld"
diff --git a/scripts/common/install_yumpackages.sh b/scripts/common/install_yumpackages.sh
index a8690b0f..f0a71690 100755
--- a/scripts/common/install_yumpackages.sh
+++ b/scripts/common/install_yumpackages.sh
@@ -200,6 +200,7 @@ yum install -y \
     libcaca-devel \
     libdb4-devel \
     libdc1394-devel \
+    opencl-headers \
     openssl11-devel \
     p7zip \
     yasm-devel \
diff --git a/scripts/vfx/build_usd.sh b/scripts/vfx/build_usd.sh
index a64efbdf..05417c6b 100755
--- a/scripts/vfx/build_usd.sh
+++ b/scripts/vfx/build_usd.sh
@@ -63,6 +63,8 @@ cmake \
      -DTBB_LOCATION="${ASWF_INSTALL_PREFIX}" \
      -DILMBASE_LOCATION="${ASWF_INSTALL_PREFIX}" \
      -DGLEW_LOCATION="${ASWF_INSTALL_PREFIX}" \
+     -DMATERIALX_LOCATION="${ASWF_INSTALL_PREFIX}" \
+     -DPXR_ENABLE_MATERIALX_SUPPORT=ON \
      -DPXR_BUILD_TESTS=OFF \
      -DUSD_ROOT_DIR="${ASWF_INSTALL_PREFIX}" \
      -DPXR_BUILD_ALEMBIC_PLUGIN=OFF \
diff --git a/setup.py b/setup.py
index 1fa5bc5d..44d2b107 100644
--- a/setup.py
+++ b/setup.py
@@ -7,7 +7,7 @@
 
 setup(
     name="aswfdocker",
-    version="0.6.0",
+    version="0.7.0",
     author="Aloys Baillet",
     author_email="aloys.baillet+github@gmail.com",
     description="ASWF Docker Utilities",
@@ -26,32 +26,32 @@
     # Empty list of requirements before running `pipenv update` to avoid conflicts
     install_requires=[
         "bottle==0.12.19",
-        "certifi==2021.10.8",
-        "charset-normalizer==2.0.7; python_version >= '3'",
-        "click==8.0.3",
+        "certifi==2022.5.18.1; python_version >= '3.6'",
+        "charset-normalizer==2.0.12; python_version >= '3'",
+        "click==8.1.3",
         "colorama==0.4.4; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
-        "conan==1.42",
+        "conan==1.47",
         "deprecated==1.2.13; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
-        "distro==1.6.0",
-        "fasteners==0.16.3",
+        "distro==1.6.0; sys_platform == 'linux' or sys_platform == 'linux2'",
+        "fasteners==0.17.3; python_version >= '3.6'",
         "idna==3.3; python_version >= '3'",
-        "importlib-resources==5.4.0",
-        "jinja2==2.11.3",
-        "markupsafe==2.0.1; python_version >= '3.6'",
+        "importlib-resources==5.7.1",
+        "jinja2==3.1.2",
+        "markupsafe==2.1.1; python_version >= '3.7'",
         "node-semver==0.6.1",
         "patch-ng==1.17.4",
         "pluginbase==1.0.1",
-        "pygithub==1.53",
-        "pygments==2.10.0; python_version >= '3.5'",
+        "pygithub==1.54.1",
+        "pygments==2.12.0; python_version >= '3.6'",
         "pyjwt==1.7.1",
-        "python-dateutil==2.8.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+        "python-dateutil==2.8.2; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
         "pyyaml==5.4.1",
-        "requests==2.26.0",
-        "six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
-        "tqdm==4.62.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
-        "urllib3==1.26.7; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
-        "wrapt==1.13.3; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
-        "zipp==3.6.0; python_version < '3.10'",
+        "requests==2.27.1",
+        "six==1.16.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2'",
+        "tqdm==4.64.0; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3'",
+        "urllib3==1.26.9; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4' and python_version < '4'",
+        "wrapt==1.14.1; python_version >= '2.7' and python_version not in '3.0, 3.1, 3.2, 3.3, 3.4'",
+        "zipp==3.8.0; python_version < '3.10'",
     ],
     python_requires=">=3.6",
     entry_points={


Test patch:
diff --git a/packages/conan/recipes/materialx/test_package/CMakeLists.txt b/packages/conan/recipes/materialx/test_package/CMakeLists.txt
new file mode 100644
index 00000000..ef6e64c7
--- /dev/null
+++ b/packages/conan/recipes/materialx/test_package/CMakeLists.txt
@@ -0,0 +1,12 @@
+cmake_minimum_required(VERSION 3.12)
+project(testmaterialx_exe LANGUAGES CXX)
+
+message("CMAKE_MODULE_PATH: $ENV{CMAKE_MODULE_PATH}")
+
+find_package(materialx REQUIRED)
+
+add_executable(${PROJECT_NAME} testmaterialx.cpp)
+
+target_include_directories(${PROJECT_NAME} PRIVATE ${MaterialX_INCLUDE_DIRS})
+message("MATERIALX: ${MaterialX_INCLUDE_DIRS}")
+target_link_libraries(${PROJECT_NAME} materialx::materialx)
diff --git a/packages/conan/recipes/materialx/test_package/conanfile.py b/packages/conan/recipes/materialx/test_package/conanfile.py
new file mode 100644
index 00000000..d50b95ac
--- /dev/null
+++ b/packages/conan/recipes/materialx/test_package/conanfile.py
@@ -0,0 +1,23 @@
+from conans import ConanFile, tools, CMake
+import os
+
+
+class TestPackageConan(ConanFile):
+    settings = "os", "compiler", "build_type", "arch", "python"
+    generators = "cmake_find_package_multi"
+
+    def build(self):
+        cmake = CMake(self)
+        with tools.environment_append(tools.RunEnvironment(self).vars):
+            cmake.configure()
+            cmake.build(args=["--", "VERBOSE=1"])
+
+    def test(self):
+        self.run("./testmaterialx_exe", run_environment=True)
+        self.run(
+            "{} {}".format(
+                self.deps_user_info["python"].python_interp,
+                os.path.join(self.source_folder, "testmaterialx.py"),
+            ),
+            run_environment=True,
+        )
diff --git a/packages/conan/recipes/materialx/test_package/testmaterialx.cpp b/packages/conan/recipes/materialx/test_package/testmaterialx.cpp
new file mode 100644
index 00000000..8dd15bf9
--- /dev/null
+++ b/packages/conan/recipes/materialx/test_package/testmaterialx.cpp
@@ -0,0 +1,12 @@
+#include <MaterialXCore/Types.h>
+#include <iostream>
+
+namespace mx = MaterialX;
+
+int main(int argc, char *argv[])
+{
+  mx::Vector3 v(1, 2, 3);
+  std::cerr << "res=" << v.getMagnitude() << std::endl; 
+  std::cout << "ok\n" << std::endl;
+  return 0;
+}
diff --git a/packages/conan/recipes/materialx/test_package/testmaterialx.py b/packages/conan/recipes/materialx/test_package/testmaterialx.py
new file mode 100644
index 00000000..4bdc3c90
--- /dev/null
+++ b/packages/conan/recipes/materialx/test_package/testmaterialx.py
@@ -0,0 +1,3 @@
+import MaterialX as mx
+
+print(mx.Vector3(1, 2, 3))
diff --git a/packages/conan/recipes/python/test_package/conanfile.py b/packages/conan/recipes/python/test_package/conanfile.py
index a4a482dc..e4b9e24e 100644
--- a/packages/conan/recipes/python/test_package/conanfile.py
+++ b/packages/conan/recipes/python/test_package/conanfile.py
@@ -21,3 +21,4 @@ def test(self):
             ),
             run_environment=True,
         )
+        self.run("pip --version", run_environment=True)
diff --git a/python/aswfdocker/tests/test_builder.py b/python/aswfdocker/tests/test_builder.py
index f754437b..320f6c62 100644
--- a/python/aswfdocker/tests/test_builder.py
+++ b/python/aswfdocker/tests/test_builder.py
@@ -142,8 +142,8 @@ def test_image_base_2019clang_dict(self):
                             "ASWF_CMAKE_VERSION": "3.12.4",
                             "ASWF_CPPUNIT_VERSION": "1.14.0",
                             "ASWF_CONAN_CHANNEL": "vfx2019",
-                            "ASWF_CONAN_PYTHON_VERSION": "3.9.5",
-                            "ASWF_CONAN_VERSION": "1.42.0",
+                            "ASWF_CONAN_PYTHON_VERSION": "3.9.11",
+                            "ASWF_CONAN_VERSION": "1.47.0",
                             "ASWF_CUDA_VERSION": "10.2",
                             "ASWF_DTS_VERSION": "6",
                             "ASWF_GLEW_VERSION": "2.1.0",
@@ -224,8 +224,8 @@ def test_image_base_2019_2020_dict(self):
                             "ASWF_CPPUNIT_VERSION": "1.15.1",
                             "ASWF_CUDA_VERSION": "10.2",
                             "ASWF_CONAN_CHANNEL": "vfx2020",
-                            "ASWF_CONAN_PYTHON_VERSION": "3.9.5",
-                            "ASWF_CONAN_VERSION": "1.42.0",
+                            "ASWF_CONAN_PYTHON_VERSION": "3.9.11",
+                            "ASWF_CONAN_VERSION": "1.47.0",
                             "ASWF_DTS_VERSION": "6",
                             "ASWF_GLEW_VERSION": "2.1.0",
                             "ASWF_GLFW_VERSION": "3.1.2",
@@ -283,8 +283,8 @@ def test_image_base_2019_2020_dict(self):
                             "ASWF_CPPUNIT_VERSION": "1.14.0",
                             "ASWF_CUDA_VERSION": "10.2",
                             "ASWF_CONAN_CHANNEL": "vfx2019",
-                            "ASWF_CONAN_PYTHON_VERSION": "3.9.5",
-                            "ASWF_CONAN_VERSION": "1.42.0",
+                            "ASWF_CONAN_PYTHON_VERSION": "3.9.11",
+                            "ASWF_CONAN_VERSION": "1.47.0",
                             "ASWF_DTS_VERSION": "6",
                             "ASWF_GLEW_VERSION": "2.1.0",
                             "ASWF_GLFW_VERSION": "3.1.2",
@@ -543,7 +543,7 @@ def test_builder_cli_allversions(self):
         bake_path = os.path.join(
             tempfile.gettempdir(),
             "docker-bake-IMAGE-common-1-clang10-1-clang6-1-clang7-1"
-            "-clang8-1-clang9-2-clang10-2-clang11-2-clang12-2-clang13.json",
+            "-clang8-1-clang9-2-clang10-2-clang11-2-clang12-2-clang13-2-clang14.json",
         )
         cmd = f"docker buildx bake -f {bake_path} --progress auto"
         self.assertEqual(
diff --git a/scripts/tests/2/test_common.sh b/scripts/tests/2/test_common.sh
index 56a00145..68aae9cb 100755
--- a/scripts/tests/2/test_common.sh
+++ b/scripts/tests/2/test_common.sh
@@ -4,6 +4,12 @@
 
 set -ex
 
+os_v=$(cat /etc/redhat-release)
+if [[ $os_v != CentOS\ Linux\ release\ 7.9.2009* ]]
+then
+    exit 1
+fi
+
 clang_v=$(clang --version)
 if [[ $clang_v != clang\ version\ 10.0* ]]
 then